完全开源基于插件的开发框架(使用DEV实现Ribbon界面) C#一步一步实现插件框架的示例(一) C#一步一步实现插件框架的示例(二) C#一步一步实现插件框架的示例(三)

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

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插件框架开发群,获取所有源码。

猜你喜欢

转载自www.cnblogs.com/city-hunter/p/9162169.html