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

Posted city-hunter

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了完全开源基于插件的开发框架(使用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插件框架开发群,获取所有源码。

 

 

技术分享图片技术分享图片

 
























以上是关于完全开源基于插件的开发框架(使用DEV实现Ribbon界面)的主要内容,如果未能解决你的问题,请参考以下文章

基于SpringBoot 的MCMS系统,完全开源,直接商用太爽了

开源框架---WaterCloud

hdwiki 框架简介

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

Dubbo 压测插件的实现——基于 Gatling

基于 Quartz 开发企业级任务调度应用