分享一个漂亮WPF界面框架创做过程及其源码(转)

本文会做为一个系列,分为如下部分来介绍:数据库

(1)见识一下这个界面框架;架构

(2)界面框架如何进行开发;框架

(3)辅助开发支持:Demo、模板、VsPackage制做。模块化

框架源码以下所示。post

本文介绍第(1)部分。ui

 

1 安装编码

如今咱们就先来见识一下这个界面框架。首先,你能够经过如下连接来下载到这个框架的VS插件安装包:下载地址。下载解压后,文件以下:插件

image_thumb1

双击这个文件,进行安装(目前只支持VS2012和VS2013,抛弃了VS2010,I am sorry)。xml

image_thumb3

点击安装,便可完成。blog

2 建立主程序

接着打开Visual Studio 2013,新建项目,选择默认iOpenWorksExtension。

image_thumb5

这里面有两个模板,一个是主程序、一个是插件。在这里,咱们先建立一个主程序,你能够发现主程序已经包含了一些通用的功能插件,好比界面框架、配置服务、数据库服务、权限管理等。在编译主程序以前,须要确保已经安装了iOpenWorksSDK和Nuget。

image_thumb8

这里编译时须要OSGi.NET框架支持,并使用Nuget去下载一些第三方库。编译经过后,能够直接运行主程序。

首先是一个SplashWindow。

image_thumb9

接着是一个Login窗体,输入默认管理员admin/admin。

image_thumb11

登陆成功后,显示以下主界面,左边是可扩展导航栏、右边是可扩展显示区域、底下是状态栏,右上角有可扩展的系统菜单。

image_thumb13

3 建立插件

接着,咱们在项目中来添加一个新建插件。须要注意的是:插件目录必须位于主程序的bin/Plugins目录。

image_thumb16

插件建立完成后,其项目结构以下所示。

image_thumb18

这是一个使用MVVM架构开发的典型的应用。Model表示数据库模型、DataAccessor表示数据库访问类、ViewModel表示视图模型。接着咱们来运行项目。你能够发现界面多了一个功能模块。

image_thumb20

插件定义了一个CourseManagementUserControl.xaml页面,当点击“课程管理”菜单时,便在右边显示区域动态展现出 来。点击“增长/编辑”时,在右边弹出一个输入框,加载了AddOrEditCourseUserControl.xaml控件。在插件的 Manifest.xml文件,你能够看到,插件是经过如下配置将菜单和现实内容注册到界面框架的。

image_thumb22

另外,在插件的BundleActivator里面定义了以下服务供插件直接调用。

image_thumb24

服务即通用功能,有:

(1)PermissionService权限检测服务:编码方式来判断当前用户是否具备某个权限;

(2)ConfigurationService配置服务:持久化保存界面位置、大小、颜色等个性化信息;

(3)DbConnectionFactoryService数据库链接工厂:获取数据库链接;

(4)MainWindowService主窗体服务:用于关闭当前显示区域和打开/关闭侧边框。

在插件开发过程当中,咱们能够直接来写模型、数据库访问、视图模型、视图代码,若是须要使用框架功能,你就调用上述4个服务便可,再也不须要与任何框架 打交道。下面咱们能够尝试来添加一个新的XAML页面ContactsManagementUserControl.xaml,并更改 Manifest.xml作以下配置。

image_thumb26

此时,运行后,新页面即可以加载到内容区域了。

image_thumb28

下来就能够在这个页面上根据业务来编写页面显示、ViewModel等代码了。

4 框架体验总结

经过上述简单演示,你能够发现这样的框架有以下好处:

(1)高复用:界面可服用、通用功能可服用;

(2)标准化:每个插件都是用标准的架构、标准的代码来进行开发,容易维护;

(3)模块化:能够将一个大软件分红不一样模块,由不一样人开发不一样插件来组合;

(4)分层:强制将基础插件与业务插件分为不一样层次,不至于出现基础插件调用业务插件的功能;

(5)一致的用户体验:框架提供标准化UI,使整个系统有了一致的展现。

此外,在OSGi.NET基础上,还能够支持动态模块化(动态安装、启动、中止、更新、卸载模块)、自动化部署与更新功能。

 

Creative Commons License 有任何技术问题,能够加入iOpenWorks插件仓库平台QQ交流群: 121369588。

本文基于 Creative Commons Attribution 2.5 China Mainland License发布,欢迎转载,演绎或用于商业目的,可是必须保留本文的署名 道法天然(包含连接)。如您有任何疑问或者受权方面的协商,请给我留言。
相关文章
相关标签/搜索