分享一个漂亮WPF界面框架创作过程及其源码

转载 2016年05月30日 11:03:26

本文会作为一个系列,分为以下部分来介绍:

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

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

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

框架源码如下所示。

本文介绍第(1)部分。

 

1 安装

现在我们就先来见识一下这个界面框架。首先,你可以通过以下链接来下载到这个框架的VS插件安装包:下载地址。下载解压后,文件如下:

image_thumb1

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

image_thumb3

点击安装,即可完成。

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基础上,还可以支持动态模块化(动态安装、启动、停止、更新、卸载模块)、自动化部署与更新功能。

相关文章推荐

分享一款Metro风格的WPFUI

直接上效果图: 源码下载:点击打开链接

9款WPF用户界面控件对比评测

WPF(Windows Presentation Foundation)是微软推出的基于Vista的用户界面框架,它提供了统一的编程模型、语言和框架,真正做到了分离界面设计人员与开发人员的工作;同时它...

WPF Ribbon UI插件式开发框架(2)-主框架

接上文,说说主框架。主框架作为一个宿主,提供整个应用程序的菜单及插件展示。框架菜单如图 系统管理插件组 小工具组菜单2 类似windows开始菜单组 工具栏菜单在所有菜单最上面 这些菜...

.Net界面库总结[附免费下载]

.NET界面设计是应用开发中尤为重要的一块。良好的界面不仅会让应用看起来更加专业,更重要的是让用户操作更加智能和友好。本文全面总结了国际上几大知名厂商的.NET界面控件,让你对这些优秀的工具有一个全面...

SQL Server 2012 OFFSET/FETCH NEXT分页示例

原文:http://beyondrelational.com/modules/29/presentations/483/scripts/12983/sql-server-2012-server-sid...

WPF Ribbon UI插件式开发框架

WPF Ribbon UI插件式开发框架 先说点题外话,以前没写过文章,文笔也不行,拍砖请轻点... 使用.net 4.0+Telerik第三方控件开发,设计模式使用MVVM(使用的不正规,...

视图中干嘛不能用Order by排序

这个问题不高深,甚至有那么一点多此一举.既然都用到视图了,干嘛还要在视图中用排序呢?视图就存了sql语句了,那我们在使用视图的时候只在视图后面指定ORDERY BY不就行了.   先来看看语句: ...

WPF框架剖析(从头开始自己写WPF框架)

首先,在这里我要说明的是:这里的例子,都是通过控制台程序来创建WPF应用,而非使用现成的WPF模版。因为WPF模版封装了创建WPF应用所需要的各种基本元素,并不利于我们学习。   创建一个WPF需要...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)