所谓组件式开发平台,它所有的功能模块都是以组件的形式扩展的,下面我来演示一个简单的组件开发例程。

Agile.Net开发管理平台项目,已经托管在开源中国码云平台(http://git.oschina.net

登陆码云平台进入项目主页(http://git.oschina.net/MuAgile/AgileDevelop)即可浏览下载源代码。

1.开发环境搭建

   软件安装请参考文章《Agile.Net 组件式开发平台 - 开发环境部署》

下载项目【AgileDevelop】->【附件】中的数据库备份文件,恢复数据库到SqlServer,建议数据库命名"Agile"。

2.获取项目源代码

1. 启动 Microsoft Visual Studio,进入菜单项【工具】->【选项】->【源代码管理】-> 设置选项【当前源代码管理插件】下拉框中选择【Microsoft Git 提供程序】。

2. VS切换到团队资源管理器界面,进入菜单项【项目】->【连接到团队项目】。

3. 在本地Git存储库栏目中,输入Git项目地址,克隆"AgileDevelop"项目。

4. 关于Git的源代码管理系统的使用方法,请参考相关文档学习。

3.项目配置

   开发管理平台建议采用直连方式比较方便调试,首先设置System.Config配置文件,如下:

<Root>
<!--服务端配置-->
<REM>
<!--服务端配置-->
<Server>
<Config Address="127.0.0.1" Port="10000" Enabled="false" />
</Server>
<!--消息总线配置-->
<Message>
<Config Address="127.0.0.1" Port="10010" Enabled="false" />
</Message>
<!--升级地址配置-->
<Upgrade>
<Config Address="Ftp://127.0.0.1:10021" Enabled="false" />
</Upgrade>
</REM>
<!--数据源配置-->
<DBS>
<Config Caption="Default" Description="默认数据库" Provider="SqlServer" Connection="Data Source=localHost;Initial Catalog=Agile;Integrated Security=SSPI;" />
<Config Caption="Report" Description="报表数据库" Provider="SqlServer" Connection="Data Source=(LocalDB)\ProjectsV12;Initial Catalog=Agile;Integrated Security=SSPI;" />
</DBS>
</Root>

4.组件开发

1. 新建一个类库命名为"Plugin.Master",框架版本为Net4.0,引用 Agile.Core.dll,Agile.Library.dll, Agile.Controls.dll, Agile.Entity.dll 等平台SDK库文件。

2. 添一个窗体项并继承【Agile.Core.Addin.PluginFormBase】窗体组件基类。

namespace Plugin.Master
{
public partial class FormUser : Agile.Core.Addin.PluginFormBase
{
public FormUser()
{
InitializeComponent();
}

2.拖入DevExpress控件根据功能需求设计窗体。示例:

3.设置组件窗体属性

4. 重写组件加载事件(OnStartup),此方法为窗体组件入口。

注:” OnStartup” 事件为同步方法,参数<args>用于组件间相互调用时的传参。

 protected override void OnStartUp(Agile.Core.Addin.PluginArgs args)//组件入口方法
{
     ////绑定部门
     //var deptService = Agile.Library.Controller.GetService<IDept>();
     //tree_Dept.DataSource = deptService.GetAllDept();
     //tree_Dept.CollapseAll();
     //tree_Dept.ExpandToLevel(0);
           
     ////绑定用户
    //var userService = Agile.Library.Controller.GetService<IUser>();
     //grc_Employee.DataSource = userService.GetAllUser();
     //grv_Employee.BestFitColumns();
}

至此一个简单的平台组件已经开发完成了,下面咱们来调用试试看。

5.首先在开发管理平台[Agile.Develop]项目中引用"Plugin.Master"类库,

然后在NavBarControl中添加一个Item并在单击事件下调用组件窗体,示例:

private void item_DeptMgmt_LinkPressed(object sender, NavBarLinkEventArgs e)
{
//通过以下四种方式调用窗体组件
//方式一
//var plugin = Controller.GetIPlugin(Guid.Parse("cb3cb6cd-0d8b-4861-8b43-8d4cce2ef272")) as IPluginForm;
//方式二
//var plugin = Controller.GetIPlugin("Plugin.Master.dll", "Plugin.Master.FormDept", "Plugins") as IPluginForm;
//方式三
//var plugin = Agile.Library.Controller.GetIPlugin("Plugin.Master.FormDept") as IPluginForm;
//方式四
var plugin = Agile.Library.Controller.GetIPlugin<Plugin.Master.FormDept>() as IPluginForm;
//启动组件
plugin.Open();
}

5.运行开发平台测试调用组件。

OK 运行成功,那么咱们第一个组件【用户管理】已经开发好了,Agile.Net开发管理平台中包含本案例完整源代码。

Agile.Net 组件式开发平台 - 组件开发示例的更多相关文章

  1. 嵌入式开发平台-iTOP-4418开发板

    详情转自:http://topeetboard.com S5P4418核心板可以无缝支持核心系统S5P6818,并保持底板设计不变,将兼顾更高端 的应用领域,为项目和产品提供更好的灵活性以及可伸缩性. ...

  2. Agile.Net 组件式开发平台 - 驱动开发示例

    首先讲一下概念,此驱动非彼驱动.在Agle.Net中我们将组件规划成两种类型,一种是基于业务的窗体组件,一种是提供扩展功能的驱动组件. 打个比方例如一般系统中需要提供身份证读卡功能,然而市面上有很多种 ...

  3. Agile.Net 组件式开发平台 - 服务开发示例

    在上一篇文章中已经讲解了组件的开发,这篇文章讲解平台服务开发. Agile.Net开发管理平台项目,已经托管在开源中国码云平台(http://git.oschina.net) 登陆码云平台进入项目主页 ...

  4. 开发指南专题4:JEECG高速微云开发平台--JEECG开发环境的搭建

    开发指南专题4:JEECG微云高速开发平台开发环境搭建 1. JEECG开发环境搭建 JEECG推荐的开发环境为Myeclipse8.5/Eclipse3.7+JDK1.6+Tomcat6.0 1.1 ...

  5. GForms开发平台

    1. 开发平台概述 1.1. 产品概述 GForms开发平台让开发人员甚至非技术人员在短短几分钟内创建全功能的展现服务,让开发团队更加适应客户和市场的需求,从而提高客户服务和速度实现收益. GForm ...

  6. GForms展现服务云开发平台

    GForms完全基于开放标准,使用XForms作为面向服务的架构简单易用的前端,帮助用户跨多个行业加速数据整合.GForms提供可视化设计器,实现展现服务开发中数据与模型完全分离,加快开发速度快速投入 ...

  7. winform快速开发平台->让有限的资源创造无限的价值!

    最近一直在维护一套自己的快速开发平台. 主要应对针对C/S架构下的项目.然而对winform这快,还真没有看到过相对好的快速开发平台, 何为快速,在博客园逛了了好久, 预览了很多通用权限管理系统. 确 ...

  8. Train-Alypay-Cloud:mPaaS 移动开发平台培训(第一次)

    ylbtech-Train-Alypay-Cloud:mPaaS 移动开发平台培训(第一次) 1.返回顶部 1. 大家好! 欢迎大家参加蚂蚁金融云 即将在2018年1月17日到1月18日 在北京 环球 ...

  9. 快速开发平台 WebBuilder 8.6发布

    WebBuilder下载:http://www.geejing.com/download.html WebBuilder快速开发平台是基于Web面向服务的应用系统开发平台,可以方便快捷的搭建各类型企业 ...

随机推荐

  1. word2010 ctrl v not work

    终于解决了word 2010中ctrl v 不能用的问题. 0 word ctrl c 可以用,右键粘贴可以正常使用,快捷键ctrl v不能用. 1 在excel中ctrl c 和ctrl v,可以正 ...

  2. 【不积跬步,无以致千里】vim复制

    用vim这么久 了,始终也不知道怎么在vim中使用系统粘贴板,通常要在网上复制一段代码都是先gedit打开文件,中键粘贴后关闭,然后再用vim打开编辑,真的不 爽:上次论坛上有人问到了怎么在vim中使 ...

  3. Unix-Linux编程实践 学习点滴

    1.结构体最后定义一个char p[0]有什么作用 2. 3. 4. 1.结构体最后定义一个char p[0] 有什么作用 这是个广泛使用的常见技巧,常用来构成缓冲区.比起指针,用空数组有这样的优势: ...

  4. 让table 居于页面的正中间(上下左右均居中的方法)

    ? <table bgcolor="#jnkc" width="300" height="200" style="posit ...

  5. 关于MVC中DropDownListFor的一个bug

    如以下代码: //后台 代码 ViewData["source_type"] = new List<SelectListItem> { "}, "} ...

  6. cdoj 1255 斓少摘苹果 贪心

    斓少摘苹果 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/problem/show/1255 Descr ...

  7. .Net语言 APP开发平台——Smobiler学习日志:开发APP时,如何快速地实现屏幕自适应

    最前面的话:Smobiler是一个在VS环境中使用.Net语言来开发APP的开发平台,也许比Xamarin更方便 一.属性介绍 设置控件在客户端屏幕可见并超出客户端屏幕时,是否自动调节高度以适应屏幕高 ...

  8. TOJ 4325 RMQ with Shifts / 线段树单点更新

    RMQ with Shifts 时间限制(普通/Java):1000MS/3000MS     运行内存限制:65536KByte 描述 In the traditional RMQ (Range M ...

  9. Android进阶笔记06:Android 实现扫描二维码实现网页登录

    一. 扫描二维码登录的实现机制: 详细流程图: (1)PC端打开网页(显示出二维码),这时候会保存对应的randnumber(比如:12345678). (2)Android客户端扫码登录,Andro ...

  10. android-ramdisk.img分析、recovery.img&boot.img执行过程

    转载请注明来源:cuixiaolei的技术博客 一.ramdisk介绍 ramdisk通过直面意思就大概能理解意思,ram disk虚拟内存盘,将ram模拟成硬盘来使用的文件系统.对于传统的磁盘文件系 ...