完全开源基于插件的开发框架(使用DEV实现Ribbon界面)

以前写了几篇关于插件的文章:

C#一步一步实现插件框架的示例(一)

C#一步一步实现插件框架的示例(二)

C#一步一步实现插件框架的示例(三)

C#一步一步实现插件框架的示例(四)

按以上步骤可以即可实现自己的插件框架,可以大大地提高开发的效率和程序的稳定性。依据此思路,参考了网上的一些方法和代码,并使用DEV界面库实习了一套基于插件的开发框架,集成了一个简单实用的权限管理,开发一些小型的管理软件很方便,现在完全开源。在上述开源的代码中,有权限管理的模块可以做为开发插件的例子,同时也使用了一个NorthWind数据库的查看示例,即各个插件之间如何通信获取数据的方法。

向系统增加一个功能的代码如下:

class NorthWindCommand:td.Core.AbstractToolButtonCommand
    {
        public override void Run()
        {
            var p = WorkBenchSingleTon.WorkBench.GetTabPage("Customers");
            if (p == null)
            {
                NorthWindView view = new NorthWindView();
                WorkBenchSingleTon.WorkBench.AddView(view);
            }
        }
        public override bool IsEnabled
        {
            get
            {
                CustomPrincipal cp = (CustomPrincipal)Thread.CurrentPrincipal; ;
                bool r =  (cp.IsAuthorized("Test 1") || cp.IsInRole("Admin"));
                return   r&&( null== WorkBenchSingleTon.WorkBench.GetTabPage("Customers"));

}
            set
            {
                base.IsEnabled = value;
            }
        }
    }

以上代码就实现了该功能的权限控制和状态的控制了。非常方便告别到处判断按钮或窗口的状态。

开源所有的代码,请加QQ群732846120插件框架开发群,获取所有源码。

原文地址:https://www.cnblogs.com/city-hunter/p/9162169.html

时间: 2024-08-08 09:58:45

完全开源基于插件的开发框架(使用DEV实现Ribbon界面)的相关文章

fusionjs uber开源的通用web插件化开发框架

fusionjs uber开源的web 插件化开发框架 核心特性: 基于插件的开发,依赖注入开发 开箱即用的服务器端渲染,构建结果拆分,模块热加载 Tree-shaking 支持 集成的插件 redux react router rpc 模式的数据访问,同时支持graphql 安全,自动添加csrf 校验 服务器以及浏览器性能,日志,错误,通用事件流分析 性能,支持font 的延迟加载策略,以及原子css 处理(styletron) 国际化支持 参考资料 https://fusionjs.com

基于NopCommerce的开发框架——缓存、网站设置、系统日志、用户操作日志

最近忙于学车,抽时间将Nop的一些公用模块添加进来,反应的一些小问题也做了修复.另外有园友指出Nop内存消耗大,作为一个开源电商项目,性能方面不是该团队首要考虑的,开发容易,稳定,代码结构清晰简洁也是很重要的一个方面,另外性能的优化也不仅仅是在框架层面.笔者在使用其开发一些中小型的项目,性能还在可以接受范围.前篇——基于nopCommerce的开发框架(附源码):http://www.cnblogs.com/dreling/p/6906688.html. 最新的代码已经同布到GitHub:htt

程序员必备,C#各类项目、开源项目插件资料收藏

一.AOP框架 Encase 是C#编写开发的为.NET平台提供的AOP框架.Encase独特的提供了把方面(aspects)部署到运行时代码,而其它AOP框架依赖配置文件的方式.这种部署方面(aspects)的方法帮助缺少经验的开发人员提高开发效率. NKalore是一款编程语言,它扩展了C#允许在.net平台使用AOP.NKalore的语法简单.直观,它的编译器是基于Mono C#编译器(MCS).NKalore目前只能在命令行或#Develop内部使用.NKalore兼容公共语言规范CLS

H2O是开源基于大数据的机器学习库包

H2O是开源基于大数据的机器学习库包 H2O能够让Hadoop做数学,H2O是基于大数据的 统计分析 机器学习和数学库包,让用户基于核心的数学积木搭建应用块代码,采取类似R语言 Excel或JSON等熟悉接口,使的BigData爱好者和专家可以利用一系列简单的先进算法对数据集进行探索,建模和评估.数据收集是很容易,但是决 策是很难的. H2O使得能用更快更好的预测模型源实现快速和方便地数据的挖掘. H2O愿意将在线评分和建模融合在一个单一平台上. H2O提供了机器学习的培训手册供学习:H2O训练

Qt 插件综合编程-基于插件的OpenStreetMap瓦片查看器client(5) 小结

经过不断试用与改动,这个查看器终于还是完毕了设计.实现.查看器,顾名思义,没有编辑功能:说的白一点,仅仅是一个以OpenStreetMap为底图的显示装置罢了.和专业GIS相比,这款基于插件的OpenStreetMap瓦片查看器client显得单薄.和消费类GIS(如面向浏览器的地图API)相比,它是本地的.似乎和Native应用更加合拍. 事实上一直以来想利用业余时间做这样一个工具,使得非计算机专业的project师们能够拥有一款支持漫游.标图.动画效果的轻量级地理信息插件,特别是掌握C++.

android基于插件式开发

之前没有听过app插件式开发今天就做一下学习的笔记.这里的插件式开发通俗的讲就是把一个很大的app分成n多个比较小的app,其中有一个app是主app.网上查了一下采用了这种开发模式的有支付宝客户端.QQ换肤其他的就不得而知了有人说微信也是基于插件的但是微信在更新的时候会下载全部的应用程序把旧的完全覆盖所以猜想应该目前不是吧. 基于插件的开发列举两个比较突出的优点: 1.应用程序非常容易扩招,比如有一个新的领域要加到旧的应用程序中来只需把这个新的领域做为一个插件,只开发这个小的app就可以了旧的

Joda开源扩展插件,神马日期工具类都是浮云!!Demo下载运行即可查看,注释齐全,真心好用,分享大家。

原文:Joda开源扩展插件,神马日期工具类都是浮云!!Demo下载运行即可查看,注释齐全,真心好用,分享大家. 源代码下载地址:http://www.zuidaima.com/share/1550463610604544.htm 真心好用,分享大家.

之前项目中用到的简单的自定义弹出提示框的实现,整理整理,当然开源的插件很多,但自己写的可以随意发挥

效果如下: html代码: <div class="container"> <div class="wrapper" style="background-color:white; position:relative;"> <div class="box" style="background-color:red; position:absolute; left:100px; top:300

Winform开发框架之Office Ribbon界面

在前面几篇文章介绍我的Winform框架随笔文章,包括有<Winform开发框架之字典数据管理>.<Winform开发框架之权限管理系统>.<Winform开发框架之终极应用>,其中Winform开发框架之终极应用是集众多功能与一身,提供综合一站式.整体性的传统应用系统的开发框架,在此基础上开发新的业务系统,开发工作则是事半功倍,而且提供了高效.统一的界面布局以及支持多种数据库的数据访问层支持,提供了基于大量数据的数据分页解决方案,提供了传统Excel报表以及自定义模板