アーキテクチャが導入さDatabase2Sharpコード生成ツール

1)コード生成ツールの概要

Database2Sharpは、コード生成ツールと2005年に始まったデータベースドキュメント生成ツールであり、プロジェクト開発のさまざまな経験を通じて、当社の顧客やファンを伴ってきた、実際の開発の効率化をもたらすことができますプログラミングと幸福を向上させます。

C#のコード生成とデータベースがドキュメントを生成するために、コード生成ソフトウェアは、Oracle、のSQLServer、MySQLやPostgreSQLの、sqliteは、アクセスと夢と他のデータベースのローカライズをサポートしていますDatabase2Sharpが主要なツールである、あなたはWinフォームインタフェースを生成するために様々なアーキテクチャ用のコードを生成することができますコード、SQLスクリプトを生成し、クエリデータをデータベーススキーマを閲覧し、データベースの文書をエクスポートするには、Entity Frameworkのエンティティフレームワークコード(EasyUIとBootstrapWebインタフェースを含む)だけでなく、カスタムテンプレートとデータベース情報エンジンの統合でのWebインターフェイスのコード、カスタム書きやすいですテンプレートのデバッグと開発。コードの結果のフレームが一緒に使用される複数のデータベースをサポートするだけでなく、ダイシングを使用して、複数のライブラリの異なるビジネスデータベースをサポートするために、アプリケーション・フレームワークの非常に適応性、優れた柔軟性です。

Database2Sharpは、ソフトウェア機能「推奨エンタープライズライブラリのコードジェネレータ」プロジェクト、プロジェクト全体の発電システムアーキテクチャフレームワークのコードを生成するために、エンティティ・クラス、データアクセスクラス、ビジネスクラス、Webページのコード、WCFサービス層(オプション)、ウェブが含まれていますがAPIサービス層(任意)、およびコード層包装および他のサービスを呼び出します。アーキテクチャと一般的なキャッシュメカニズムの使用は、優れたアーキテクチャが大幅にさえスムーズに実行するためにコードを一行も書かずに、あなたのベースクラスを作成するコード、パワフルなサウンドのメカニズムを簡素化します。簡単な数回のクリックは、1週間のコードのコード生成ツール、効率、驚くほどフレンドリーで思いやり、本当に良い開発パートナーの量を完了することができます。

もちろん、開発プロセスは、複雑で、デリケートなプロセスであるDatabase2Sharpも私たち自身の実際の需要と、同僚や友人への貴重なアドバイスをたくさん吸収して、改善されてきた、より完璧を達成するために、より良いやろうとしてきました、よりユーザーフレンドリーなレベル。

我々は特定の階層構造に基づいてプロジェクトのためのソフトウェアソリューションを開発する場合、各クラス間の階層関係の各項目は、すぐに私たちに必要なコードを生成することができます(テンプレートエンジンと一緒に)補助ツールによって決定され、大幅に私たちのソフトウェアの開発の効率を向上させる、Database2Sharpは、具体的な開発ツールをサポートする当社独自のフレームワークのコード生成ツールです。

Database2Sharpコード生成ツール、主に抽出されたメタデータ情報データベースに基づいて、コンテンツ情報テーブルに基づいて、フィールド情報、我々は階層的なフレームワークを必要とするクラスコード。

Winフォームの開発のために、標準的なインタフェースコードを作成するために、フォームインタフェースクラスWinフォームフレームワークまたは混合フレームワークに基づいて、ページングクエリ、インポートおよびエクスポート、高度なクエリ、編集、とデフォルトのリストのインターフェースがバインドイベントを削除、編集インターフェースし、データを取得する必要がありますコントロールに表示、更新を実行した後に保存したり、操作を記述します。

また、デフォルトのクエリ、インポートおよびエクスポート、及び記憶されたデータの詳細表示で表示されるタブを有しながらWeb開発者のために、異なる制御インターフェース又はEasyUIブートストラップ制御インターフェース・ビューによれば、HTMLクラスコードに対応するコード、及びコントローラを生成しました。

2)ソフトウェアプロジェクトの構造と機能のインタフェース

主要なソフトウェアインターフェースを以下に示します。

図機能インタフェースソフトウェアに示すように、左右のサイド情報やコード情報テーブルショーを示すデータベース情報は、左または右ボタンインタフェースを介してツリーの主な機能を実現します。

次のプロジェクト構造に示すコード生成手段。

 

モジュールのフレームワークプログラムをミキシングコアデータモジュール、モジュール設定ファイル、Winフォームプロジェクトモジュール、Webプロジェクトのモジュールに分け、コンテンツの各項目、を担当する、プロジェクトのデータベース・スクリプト・モジュール、EF Entity Frameworkのプロジェクトのモジュール、文書データベースモジュール、下図のように。

 

実際のコード生成によれば、我々は、さらに、複数のプロジェクトテンプレートコードを生成するために、基礎となるデータベースのメタデータとテンプレートエンジンを使用して、アプリケーション・モジュールを拡張することができます。

 

3)メタデータオブジェクトと階層

WHC.CodeGenerator.Coreコンテンツテーブルデータベース、フィールド情報、ストアドプロシージャ、および異なるデータベースおよびデータベースの他のタイプの情報を表示する関連情報を取得するための主原因である要素取得処理コアモジュール、あるプロジェクト。

其中各个对象的层级关系如下所示:每个数据库实例,包含多个数据库信息,一个数据库对象包括多个表、多个视图、多个存储过程对象,一个表则包含多个字段对象,而每个字段可能包含一个到多个Key对象信息,如外键、主键信息等。

代码生成工具支持几种不同的数据库元素获取,数据库元素的获取通过实现IListData接口,从而支持多种数据库类型,包括MS SQLServer、Oracle、Mysql、PostgreSQL、SQLite、Access等数据库,他们从Database基类扩展,形成自己数据库特点的子类,如SQLServer、Mysql类,数据库的操作也是基于Enterprise Library数据库访问模块实现的。继承关系如下所示。

 

 

 4)工具界面向导功能介绍

 代码生成工具里面,我们生成代码的时候,一般需要选择哪个库,然后选择表,以及一些配置项,才能进行代码的生成,这个是一个配置向导的功能,主要是基于Microsoft.ApplicationBlocks.UIProcess 组件进行的一个动态配置(UIProcess是微软早期的一个界面管理组件),它是读取配置文件进行的界面处理。如下面是App.config配置文件的内容。

其中每个View代表一个配置一个向导界面,如SelectDatabaseView,它对应一个控制器SimpleController。

另外,配置文件的navigationGraph是一个配置型的导向,主要配置我们处理的场景,详细配置如下所示。

 

和这些导航图的配置信息对应,我们代码生成工具也需要提供对应名称的窗体,如下图所示。这些窗体就是我们操作某个代码生成过程的操作界面,如选择数据库界面,选择表界面,确认生成功能界面等。

 

 另外配置文件里面会定义我们一组处理的导航窗体,用来构建我们一个业务场景,如EnterpriseLibrary架构代码生成操作。

 

然后我们在界面需要定义一个按钮,实现这个代码生成功能的时候,只需要调用这组视图的名称即可,如下代码所示。

这样启动后,整个处理导航逻辑就会按照配置文件的顺序一个个调用界面,最后统一生成代码即可。

5)自定义模板代码生成

代码生成工具是基于比较有名的NVelocity模板进行代码文件生成的,因此熟悉NVelocity语法可以修改模板,以适应需要,生成不同内容的文件。

除了可以利用NVelocity模板语法,实现变量定义或者赋值、控制逻辑处理等功能外,还可以利用模板和后台变量进行交互处理。

模板引擎的后台控制规则是在代码生成工具里面封装的,因此可以在NVelocity模板文件里面访问对应的数据库对象,选择的表对象、字段信息等元素内容,或者访问自定义的变量。

基于模板方式的代码生成方式,可以提高生成效率,并且减少维护成本(相对某些硬编码代码生成的方式更优),方便用户对模板进行适当的修改等特点。

关于NVelocity模板语法,详细介绍可以参考伍华聪博客《强大的模板引擎开源软件NVelocity》随笔。

在实际开发当中,自定义模板生成是很多代码生成工具生成代码的重要补充,例如有些项目代码片段需要(例如控件赋值语句,或者控件数据显示语句等),如果能通过自定义模板方式,利用模板引擎的灵活特点,以及已有数据库的结构信息,就很方便生成重复性强、有一定规律的代码。

用【选表进行代码生成】方式,可以很好利用后台的数据库表、字段等信息,结合模板生成高效的代码。

 另外,为了方便大家对模板引擎NVelocity的了解,在软件工具安装的时候,附带了几个常见的例子,如下所示。

例子的代码大致如下所示,主要是让大家快速了解Nvelocity的模板语言VTL的使用。如果对模板引擎更加深入的了解,可以查看我之前的随笔《强大的模板引擎开源软件NVelocity》进一步了解。

 

おすすめ

転載: www.cnblogs.com/wuhuacong/p/10967935.html