这个通用界面框架是基于OSGi.NET插件框架来做的,先看一下运行效果。
换个皮肤试试看!
这个界面框架是OSGi.NET面向服务插件平台的一个通用的界面插件,OSGi.NET面向服务插件框架是一个支持WinForm、Web、WPF、Silverlight,甚至是移动应用的插件平台,提供动态插件化与模块化、面向服务和插件扩展三大功能。这个界面框架插件利用OSGi.NET的扩展功能暴露了左边的导航栏和右边显示区域的扩展点,允许新开发的插件通过注册扩展的方式将自定义的界面功能注册到这个节目框架。我们来看一个使用示例,在这个示例里,我们新建了一个联系人插件。这个联系人插件通过Manifest.xml这个插件配置文件的Extension节点定义了对界面框架的扩展。如下所示。
<?xml version="1.0" encoding="utf-8"?>
<Bundle xmlns="urn:uiosp-bundle-manifest-2.0" Name="ContactsPlugin" SymbolicName="ContactsPlugin" Version="1.0.0.0" InitializedState="Active">
<Activator Type="ContactsPlugin.Activator" Policy="Immediate" />
<Runtime>
<Assembly Path="bin\ContactsPlugin.dll" Share="false" />
<Dependency BundleSymbolicName="UIShell.DbManagerService" Resolution="Mandatory" />
</Runtime>
<!-- 定义界面功能的扩展,将自定义的两个窗体注册到界面框架 -->
<Extension Point="UIShell.Applications">
<Application Title="ContactsPlugin" ToolTip="ContactsPlugin" Icon="ContactsPlugin.Resources.shell.png">
<Menu Text="Create Contact" ToolTip="Create a contact" Icon="ContactsPlugin.Resources.shell.png" Class="ContactsPlugin.CreateContactForm" />
<Menu Text="View Contacts" ToolTip="View all contacts" Icon="ContactsPlugin.Resources.shell.png" Class="ContactsPlugin.ContactsForm" />
</Application>
</Extension>
<!-- 定义一个数据源,从而来使用轻量级ORM数据访问服务 -->
<Extension Point="UIShell.DataSources">
<DataSource Name="Default"
ConnectionString="data source='{BundleLocation}\App_Data\Contact.sdf';"
ProviderName="Microsoft.SqlServerCe.Client.3.5"
Description="Contact data source." />
</Extension>
</Bundle>
<Bundle xmlns="urn:uiosp-bundle-manifest-2.0" Name="ContactsPlugin" SymbolicName="ContactsPlugin" Version="1.0.0.0" InitializedState="Active">
<Activator Type="ContactsPlugin.Activator" Policy="Immediate" />
<Runtime>
<Assembly Path="bin\ContactsPlugin.dll" Share="false" />
<Dependency BundleSymbolicName="UIShell.DbManagerService" Resolution="Mandatory" />
</Runtime>
<!-- 定义界面功能的扩展,将自定义的两个窗体注册到界面框架 -->
<Extension Point="UIShell.Applications">
<Application Title="ContactsPlugin" ToolTip="ContactsPlugin" Icon="ContactsPlugin.Resources.shell.png">
<Menu Text="Create Contact" ToolTip="Create a contact" Icon="ContactsPlugin.Resources.shell.png" Class="ContactsPlugin.CreateContactForm" />
<Menu Text="View Contacts" ToolTip="View all contacts" Icon="ContactsPlugin.Resources.shell.png" Class="ContactsPlugin.ContactsForm" />
</Application>
</Extension>
<!-- 定义一个数据源,从而来使用轻量级ORM数据访问服务 -->
<Extension Point="UIShell.DataSources">
<DataSource Name="Default"
ConnectionString="data source='{BundleLocation}\App_Data\Contact.sdf';"
ProviderName="Microsoft.SqlServerCe.Client.3.5"
Description="Contact data source." />
</Extension>
</Bundle>
运行插件项目后,你可以发现这个联系人管理应用便显示在左边的导航区域,一旦点击导航菜单,便在右边显示了注册的窗体。
有关界面框架的使用,你可以访问:http://www.iopenworks.com/Products/ProductDetails/Introduction?proID=8
有关联系人插件的介绍、开发教程、源码和部署文件,你可以访问:http://www.iopenworks.com/Products/ProductDetails/Introduction?proID=20
如果有更多疑问,可以加入QQ交流群:121369588。