分享⼀个漂亮WPF界⾯框架创作过程及其源码(转)
本⽂会作为⼀个系列,分为以下部分来介绍:
(1)见识⼀下这个界⾯框架;
(2)界⾯框架如何进⾏开发;
(3)辅助开发⽀持:Demo、模板、VsPackage制作。
框架源码如下所⽰。
本⽂介绍第(1)部分。
1 安装
现在我们就先来见识⼀下这个界⾯框架。⾸先,你可以通过以下链接来下载到这个框架的VS插件安装包:。下载解压后,⽂件如下:
双击这个⽂件,进⾏安装(⽬前只⽀持VS2012和VS2013,抛弃了VS2010,I am sorry)。
点击安装,即可完成。
2 创建主程序
接着打开Visual Studio 2013,新建项⽬,选择默认iOpenWorksExtension。
这⾥⾯有两个模板,⼀个是主程序、⼀个是插件。在这⾥,我们先创建⼀个主程序,你可以发现主程序已经包含了⼀些通⽤的功能插件,⽐如界⾯框架、配置服务、数据库服务、权限管理等。在编译主程序之前,需要确保已经安装了iOpenWorksSDK和Nuget。
这⾥编译时需要OSGi.NET框架⽀持,并使⽤Nuget去下载⼀些第三⽅库。编译通过后,可以直接运⾏主程序。
⾸先是⼀个SplashWindow。
接着是⼀个Login窗体,输⼊默认管理员admin/admin。
登录成功后,显⽰如下主界⾯,左边是可扩展导航栏、右边是可扩展显⽰区域、底下是状态栏,右上⾓有可扩展的系统菜单。
3 创建插件
接着,我们在项⽬中来添加⼀个新建插件。需要注意的是:插件⽬录必须位于主程序的bin/Plugins⽬录。
插件创建完成后,其项⽬结构如下所⽰。
这是⼀个使⽤MVVM架构开发的典型的应⽤。Model表⽰数据库模型、DataAccessor表⽰数据库访问类、ViewModel表⽰视图模型。接着我们来运⾏项⽬。你可以发现界⾯多了⼀个功能模块。
插件定义了⼀个CourseManagementUserControl.xaml页⾯,当点击“课程管理”菜单时,便在右边显⽰区域动态展⽰出来。点击“增加/编辑”时,在右边弹出⼀个输⼊框,加载了AddOrEditCourseUserControl.xaml控件。在插件的 l⽂件,你可以看到,插件是通过以下配置将菜单和现实内容注册到界⾯框架的。
另外,在插件的BundleActivator⾥⾯定义了如下服务供插件直接调⽤。
服务即通⽤功能,有:
(1)PermissionService权限检测服务:编码⽅式来判断当前⽤户是否具有某个权限;
(2)ConfigurationService配置服务:持久化保存界⾯位置、⼤⼩、颜⾊等个性化信息;
(3)DbConnectionFactoryService数据库连接⼯⼚:获取数据库连接;
(4)MainWindowService主窗体服务:⽤于关闭当前显⽰区域和打开/关闭侧边框。
在插件开发过程中,我们可以直接来写模型、数据库访问、视图模型、视图代码,如果需要使⽤框架功能,你就调⽤上述4个服务即可,不再需要与任何框架打交道。下⾯我们可以尝试来添加⼀个新的XAML页⾯ContactsManagementUserControl.xaml,并更改 l做如下配置。
此时,运⾏后,新页⾯便可以加载到内容区域了。
下来就可以在这个页⾯上根据业务来编写页⾯显⽰、ViewModel等代码了。
免费分享网站源码
4 框架体验总结
通过上述简单演⽰,你可以发现这样的框架有如下好处:
(1)⾼复⽤:界⾯可服⽤、通⽤功能可服⽤;
(2)标准化:每⼀个插件都是⽤标准的架构、标准的代码来进⾏开发,容易维护;
(3)模块化:可以将⼀个⼤软件分成不同模块,由不同⼈开发不同插件来组合;
(4)分层:强制将基础插件与业务插件分为不同层次,不⾄于出现基础插件调⽤业务插件的功能;
(5)⼀致的⽤户体验:框架提供标准化UI,使整个系统有了⼀致的展⽰。
此外,在OSGi.NET基础上,还可以⽀持动态模块化(动态安装、启动、停⽌、更新、卸载模块)、⾃动化部署与更新功能。
有任何技术问题,可以加⼊iOpenWorks插件仓库平台QQ交流: 121369588。
本⽂基于发布,欢迎转载,演绎或⽤于商业⽬的,但是必须保留本⽂的署名(包含链接)。如您有任何疑问或者授权⽅⾯的协商,请给我留⾔。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。