WinフォームABP、ABP現像枠端フレーム系列発達基づく迅速な開発前後ABPフロントエンド開発シリーズ---開発フレームワーク(14)···(8)Winフォームインターフェース開発フレームワークABP

ステップバイABPの一連の記事、ステップの多くの前に導入されたWeb APIサービス建物、ログインログおよび業務監査ログ、辞書管理モジュール、情報省の都市整備組織の権利管理モジュールに関連する日常の開発、ユーザー、ロール、権限、メニューやその他のコンテンツ、および高度なクエリ処理構成管理モジュール、インタフェースの内容、我々は我々のコード生成ツールDatabase2Sharp急速な発展を組み合わせた全体のコンセプトを開発し、急速な発展は二つの部分に分かれています。物理層、アプリケーションサービス層、共通DTOと界面層のフィールドを含むABPのスケルトンコードのWeb API部分発生は、ある、APIは、生成されたコードをよりコンパクトになるように、コンテンツの発信者層など、基本クラスの統合私たちのパッケージを生成呼び出ししかし、パフォーマンスの機能を使用して簡単に、より強力で、他の部分は、インターフェース生成の急速な世代である、我々は開発の分野で長年に基づいWinフォーム、インターフェイスに基づいて基本的なページング、公共図書館とWinフォームクラスの統合が速い可能Winフォームインターフェースの生成、及びインターフェース緑色Winフォーム あなたは、自動的に一般的なルールへの全体的な枠組みとABP迅速なコールを持っている検索条件、リスト表示、インターフェイスフィールドショーなど多くの編集、そして得られたWinフォームインタフェースのリストに従って設定することができます。

1、ABPフレームの背景情報

ABPは、 ABPは、ASP.NETボイラープレートの略で、オープンソースやドキュメントに優しいアプリケーションフレームワークABPは、それが提供する、単なるフレームワークではありませんWaがベストプラクティスベースのドメイン駆動設計(DDD)構造モデルシステムを。ABPはまた、常に、いくつかの時間のためのフレームワークを使用することを学ぶ、私は完全にこのフレームワークの全体の文脈を理解するために、そしてシリーズの仕上げコースが出てきたとして、それを使用したいと思ったが、私はこの記事を書くために始まる書いていない、洞察力を得るために期待されていますその後、いくつかの深い理解が、我々は徹底的に一部が満ちていない、コンテンツおよびオンラインステレオタイプの翻訳公式サイトを望んでいないことができます理解することができるように願って、英語のプレゼンテーションの公式ウェブサイトでは、非常に詳細であるので、私はそれが特定の実際の使用にあると思います統合は良くなります。

ABPは、まず、それは基本的に、我々は、フィールド名を行.NET技術のほとんどすべての種類を含むマスター.NETアーキテクチャ分野、である、それはまだ非常に素晴らしいです、フレームワークを理解し、それが自分自身と.NET Frameworkをサポートすることができます.NETのコア二つの技術のジャンルは、その導入も非常に興味を持っています。

1)フレームワークABPの特性

私たちは、関係する枠組みの下でABPの内容を知って来ます。

  • 依存性の注入は、このセクションでは、依存性注入を達成するために城ウィンザー(依存性注入コンテナ)を使用し、これは我々が頻繁に処理されたIOCを使用する方法です。
  • ストレージリポジトリパターンは Entity Frameworkは、NHibernateは、MangoDB、メモリデータベース、ストレージモードはデータインターフェースを呼び出す素早く実施することが可能で達成されました。
  • 認証と権限管理は、各インターフェイスの設定を呼び出すための許可を、プロパティは非常にきめの細かい方法を通じて、検証するユーザーがログインしている方法、またはインターフェイスの権限を宣言されて使用することができます。
  • データ検証、ABPオブジェクトインタフェース入力パラメータは自動的に非空決定すること、及び有効性は、属性情報要求属性に応じて確認することができます。
  • 監査ログは、それが私たちの記録である、人員を処理し、レコードを削除、各インターフェイス、および記録の作成のための通話記録を修正。
  • 作業モードのワークユニットのユニット、アプリケーション層と、自動的にデータベーストランザクションの記憶層方法は、デフォルトですべてのアプリケーション・サービス・レイヤ・インターフェースは、それらが異なるストレージ・オブジェクトの処理、すべてを呼び出す場合でも、方法作業単位で実行されていますこれは論理トランザクション。
  • 例外処理、ABPフレームワークはかなり完全なプロセスフローオペレーションのセットを提供し、異常を容易に記録し、送信することができます。
  • ロギングは、私は、私たちは情報とエラーメッセージを処理を支援するプログラムを追跡し、log4netのルーチンログをどのように使用することができます。
  • 多言語/ローカライズサポートは、複数の言語のABPフレーム処理は、比較的優しい設定処理XML、JSON言語情報を提供します。
  • オートマッピング自動マッピング、これは目的を達成し、AutoMaperを使用してマッピングドメインDTOオブジェクト属性にするには、次の2つの間の論理関係を分離することができますが、簡単に属性情報を割り当てることができ、ABPの概念分離の非常に重要な標的です。
  • 動的なWeb API層、このダイナミックなプロセスを利用して、アプリケーションサービスは、面倒な各Web APIマニュアルコントローラの非常に便利なのビジネス・オブジェクトを作成する必要なしに、ウェブAPI層に直接公開することができます。
  • JavaScriptのの動的なAJAXプロキシ処理、自動的にウェブアピ、Web層の使用を使用する方が便利なように、プロキシ層Javascriptを作成することができます。

これらの重要な機能に加えて、特別な機能や概念の多くは、ABPのフレームワークがあります。

  • マルチテナントサポート(自動的に各テナントのデータを分離する、ビジネス・モジュールの開発者は、あなたがデータを保存し、クエリ時にコードを対応する記述する必要はありません。
  • ソフト削除サポート(対応継承ベースクラスまたは適切なインターフェースを自動的ソフト削除されます実装)
  • 管理システム設定(レベルシステム、テナントレベル、ユーザレベル、自動管理範囲)
  • EventBusフィールドイベント(ドメインイベント)を達成
  • 処理プラグインのモジュールを実装する依存モジュールおよびモジュール、等

ABPのフレームワークは、インフラストラクチャ全体を構築するために主に含まれているドライブの領域は、ドメインがオブジェクト・リポジトリ、フィールドサービス・インターフェース層ドメインサービス、ドメインイベントドメインイベント、アプリケーションサービスインタフェースアプリケーションサービス、データ伝送を倉庫、エンティティオブジェクトであるという概念は、電界駆動哲学に基づいていますDTOおよびその他のオブジェクト。

ABPの公式ウェブサイト:のhttp://www.aspnetboilerplate.com、あなたは非常に詳細なケースやドキュメントを参照してくださいすることができ、そこから、あなたが必要な基本的な枠組みの異なるタイプをダウンロードすることができます。

ABPのGitHub元アドレスします。https://github.com/aspnetboilerplateは、あなたが全体のコンテンツベースのフレームワーク、および関連するモデルケースのコードをダウンロードすることができます。

 

ABPに基づいてフレームワークに基づいて、私たちは一緒に入れている私たちが一緒に置かれているの後に辞書モジュールに一例として、(以下に示すように、この急速な発展、急速な開発フレームワークフレームワークアイコンABPの基礎に基づいて全体の権限のシステムだけでなく、ビジネスシステムを改善しました)

ウェブAPIインタフェースは、一緒に様々なモジュール間の呼び出しを容易にするために、別の封止層として、クライアントのオブジェクト、パッケージを呼び出すために迅速に対応するために、パッケージを求めています。

 

2、ABP機能のWinフォームの導入に基づいて迅速な開発フレームワーク

1)ログイン画面

2)メインフレーム・インターフェース

車体フレームを使用してインターフェイスを動的使用の非常に良好な外観と使いやすさを有する、メニュー、ならびに複数のドキュメントインターフェイスのレイアウトに基づいて生成されます。

ダイナミックな役割を構築する権限を持っている上左と上のメニューモジュールのリスト上の機能ツリーをベースとすることができるテストユーザーがログイン・インターフェースを持っていて、異なる役割は、さまざまなメニュー機能のポイントを持っています。

 

3)ユーザ管理インタフェース

ユーザーリストは、ページングクエリ、インポート、エクスポートのユーザデータを含み、かつ、編集する顧客レコードを追加したり、ユーザーのパスワードのリセット動作を指定するには、右クリックメニューを使用することができます。

ユーザーの編集インターフェースは、以下に示します。

当然可以查看这个用户本身拥有的权限功能点,如下界面所示。

用户数据导入 ,可以根据指定模板的格式进行填写后,然后导入指定的文件内容,如下所示。

导出文件则是把列表中现有的数据进行导入,导出后提示是否打开Excel文件进行查看。

 

4)组织机构管理

组织机构主要就是一个层级的对象关系,一般包含但不限于公司、部门、工作组等的定义,其中组织机构包含用户成员和角色成员的关系,如下界面所示。

组织机构的树形列表可以进行拖动实现不同层级的变化

或者通过右键菜单进行编辑修改操作

 

组织机构可以修改机构名称和对应的父类节点,如下界面所示。

组织机构包含的成员可以添加多个人员记录,添加界面如下所示。

 

添加角色界面如下所示。

 

5)角色管理

角色信息没有层级关系,可以通过列表展示。

其中角色包含权限分配、角色成员和拥有菜单的维护,如下是角色编辑界面,包含角色基本信息、拥有权限、包含成员、拥有菜单的管理等。菜单对于角色来说,应该是一种界面资源,可以通过配置进行管理对应角色用户的菜单。

菜单编辑界面如下所示。

角色的权限包含系统可以用的权限,并可以勾选为角色设置所需的功能点,如下界面所示。

用户成员则和机构的用户管理一样,可以指定多个用户,这里不再赘述。

而菜单对于角色来说,应该是一种界面资源,可以通过配置进行管理对应角色用户的菜单,如下界面所示。

通过配置好的菜单,用户登录系统后,系统根据当前用户具有的菜单项目,动态构建显示对应的列表菜单和工具栏菜单。

 

 

6)功能管理

 严格来说,ABP框架并没有统一管理好权限功能点的,它没有任何表来存储这个功能集合,而是通过派生AuthorizationProvider的子类来定义权限功能点

我在这个基础上引入了一个权限功能的表用来存储功能点的,然后提供管理界面来动态维护这些功能点。如下界面所示。

我们刚才在角色里面看到可以分配的权限内容,就是基于这个权限表的信息展示。

这样我们可以动态添加或者批量添加所需要的功能点,并且和整个权限管理模块串联起来,形成一个完整的控制体系。

 

另外我们还可以通过左侧树列表的右键菜单管理列表,如下所示可以级联删除对应的节点及其下面所有子节点。

系统登录后,客户端自动获取对应用户的角色功能点,然后我们每次打开一个新的业务窗体,客户端会进行界面的权限逻辑控制,如果没有权限的,那么不可以访问操作,如下是禁止了产品信息的导入、导出、新增、编辑等操作功能,如下界面所示产品界面被动态取消相关权限后,界面禁止了某些操作功能。

 

7)菜单管理

Winform主界面的开发,基本上都是标准的界面,在顶部放置工具栏,中间区域则放置多文档的内容,但是在顶部菜单比较多的时候,就需要把菜单分为几级处理,如可以在顶部菜单放置一二级菜单,这种方式在一般功能点不算太多的情况下,呈现的界面效果较为直观、也较为美观。不过随着一些系统功能的增多,这种方式可能就会显得工具栏比较拥挤,那么我们是否可以在左侧放置一个树形列表,这样通过树形列表的收缩折叠,就可以放置非常多的菜单功能了。

在ABP快速开发框架里面,我们依旧采用Winform开发框架里面用到的菜单维护方式,在权限模块系统中维护菜单内容,并在用户登录系统后,动态加载菜单展示,并通过菜单的配置信息,可以动态展示不同的窗体信息。

菜单资源管理的列表界面界面如下所示

左侧列表依旧可以通过右键菜单进行维护管理。

双击树列表或者右侧的列表,都可以对已有的菜单进行编辑,菜单编辑界面如下所示。

我们可以通过选择图标按钮进行菜单图标的选择,如下是选择菜单图片的界面。

这样我们可以采用DevExpress内置漂亮的系统图标,也可选择系统文件里面的图标文件。

如果用户登录系统后,觉得自己管理的菜单有些多,那么可以通过菜单配置的方式,选择性的呈现某些菜单,把其他部分的菜单隐藏起来,这个就是自定义应用菜单界面,界面如下所示。

 

8)系统登录日志

登录日志,这个就是用户尝试登录的时候,留下的记录信息,其中包括用户的登录用户名,ID,IP地址、登录时间,以及登录是否成功的状态等信息。

 这个登录日志,就是在系统登录尝试的时候,留下的记录,可供管理员进行跟踪了解某个账户的使用情况,也可以根据这些登录信息进行一个统计报表的分析。

 

9)系统审计日志 

审计日志,设置我们在访问或者调用某个应用服务层接口的时候,横切面流下的一系列操作记录,其中记录我们访问的服务接口,参数,客户端IP地址,访问时间,以及异常等信息,这些操作都是在ABP系统自动记录的,如果我们需要屏蔽某些服务类或者接口,则这些就不会记录在里面,否则默认是记录的。

审计日志的明细展示界面如下所示。

 

10)字典管理

字典管理界面,左侧列出字典类型,并对字典类型下的字典数据进行分页展示,右侧则利用分页展示对应字典类型的字典数据,字典管理界面如下所示。

新增或者编辑窗体界面如下

批量添加字典内容的界面如下所示。

省份城市行政区的模块管理,也主要是为了提供一个三级联动的字典列表给界面使用,因此这里对这些统计局的数据进行一个维护和展示出来,如下界面所示。

 

11)参数配置模块

一般来说,一个系统或多或少都会涉及到一些系统参数或者用户信息的配置,而ABP框架也提供了一套配置信息的管理模块,ABP框架的配置信息,必须提前定义好配置的各项内容,然后才能在系统中初始化或者通过接口查询来使用,本ABP快速开发框架引入了另外一种配置信息的定义,实现更加简化的处理。

参数配置管理模块界面如下所示。

配置模块使用主要特点是以键为操作对象,然后内容是JSON序列化后的内容,可以存储用户自定义的类的序列号字符串,通过整合了SettingsProvider.net组件,使得我们操作配置内容更加方便和动态化。

 

以上就是框架里面主要的模块内容展示,当然我们可以结合代码生成工具来快速开发自己的业务管理模块,而这些主要就是设计好数据库后,对框架代码和界面代码的统一生成后进行整合到主体框架里面即可,可以获得高效、统一、快速的开发体验。

详细的代码生成工具开发过程,可以了解随笔《利用代码生成工具生成基于ABP框架的代码 》、《ABP开发框架前后端开发系列---(8)ABP框架之Winform界面的开发过程

ABP框架代码生成

最终根据根据选择数据库表信息,一键生成相关ABP架构分层代码,文件结构如下所示。

ABP框架的Winform界面开发

设置好后直接生成,代码工具就可以依照模板来生成所需要的WInform列表界面和编辑界面的内容了,如下是生成的界面代码。

放到VS项目里面,就看到对应的窗体界面效果了。

生成界面后,进行一定的布局调整就可以实际用于生产环境了,省却了很多时间。

おすすめ

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