`
yyzhpq
  • 浏览: 310895 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

构建插件式的应用程序框架(二)-订立契约

阅读更多
 无论是用COM的方式,还是普通DLL,抑或.NET方式来实现插件框架,首先要面临的问题就是如何订立契约。如同我上一篇文章讲到的一样,契约是应用程序和插件之间进行交互的依据和凭证。应用程序必须声明我有什么样的功能可被插件使用,并且插件必须符合什么条件才能被我使用。反之,插件必须要知道应用程序提供什么样的功能,我才能将自己的功能融入到应用程序的体系中。本系列文章主要讲如何使用.NET实现插件式的应用程序框架,所以其它的方式我就不再提了。

如何使用.NET订立契约呢?首先想到的Interface,其次是抽象类,但是在插件模式中我使用接口,因为我们是在满足应用程序的主要目的的基础上来提供附加的插件功能,就这一点来说,接口更灵活,更容易扩展。接下来,如何订立契约的内容呢?这就要根据你的业务需求了,为了讲解的方便,我们定义一个最最基本的插件式应用程序的插件契约。我们做一个假定,我们的应用程序是一个多文档的应用程序,包含一个主菜单栏,一个工具栏,菜单栏可以在程序的上下左右四个方向停靠,另外还有一个状态栏。到后边,如果有必要,我会扩展这个应用程序,让他本身提供更多的可供插件使用的功能。所以就目前而言,我想实现的功能就是让插件为主程序添加工具条,菜单项并实现一些简单的功能。

应用程序向插件提供服务有两种方式,一种是直接再应用程序接口中声明属性或者方法,一种是将应用程序接口声明成一个服务容器。我打算两种方式都用,明确的功能就在接口中直接声明成属性或者方法,另外将应用程序声明成一个服务容器,以方便插入更多的服务功能,提高应用程序的可扩展性。    

下边是一个非常简单的应用程序接口定义,对于我们的假定已经足够了。
 
using System;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel.Design;
using System.Windows.Forms;

namespace PluginFramework
{
    public interface IApplication : IServiceContainer
    {
        ToolStripPanel LeftToolPanel { get; }
        ToolStripPanel RightToolPanel { get; }
        ToolStripPanel TopToolPanel { get; }
        ToolStripPanel BottomToolPanel { get; }

        MenuStrip MainMenuStrip { get; }
        StatusStrip StatusBar { get; }
    }
}

插件的接口定义:
 
using System;
using System.Collections.Generic;
using System.Text;

namespace PluginFramework
{
    public interface IPlugin
    {
        IApplication Application { get; set; }
        String Name { get; set; }
        String Description { get; set; }
        void Load();
        void UnLoad();

        event EventHandler<EventArgs> Loading;
    }
}
分享到:
评论

相关推荐

    合同范本-退伙契约书.doc

    《退伙契约书》是法律领域中一种常见的合同形式,主要应用于合伙企业中某一合伙人决定退出合伙关系时,规范退伙过程及后续责任分配。以下将详细解释该契约书中涉及的关键知识点: 1. **合伙契约**:合伙契约是合伙...

    参考资料-房屋典权契约1.zip

    3. **典权的设立**:讲解如何订立典权契约,包括双方协商、签订书面契约、登记备案等步骤,强调合法性和有效性的重要性。 4. **典权的效力**:分析典权对出典人和典权人的法律约束力,例如出典人在典期内不能处置...

    WHVK-QP-13-01合同订立程序.docx

    文档“WHVK-QP-13-01合同订立程序.docx”主要涉及的是企业内部合同管理的规范流程,确保合同的合法性和有效性,提高合同审批效率,防止潜在风险。以下是该文档中涵盖的关键知识点: 1. **合同订立原则**: - **...

    合同范本-货样买卖契约书.doc

    1. **订立契约**: 契约书明确了出卖人(甲方)和承买人(乙方)的身份,双方同意按照约定的条款进行货样买卖。这表明双方都有明确的法律义务和权益。 2. **货物交付**: 第一条规定了货物交付的时间和方式,即甲方需...

    00976 人力资源劳合同法培训教材-合同订立程序(PPT 16页).ppt

    在现代商业活动中,合同作为规范双方或多方权利义务关系的法律文本,其订立程序的正确性和合法性至关重要。合同不仅涉及交易的实现,还关系到各方利益的保护。正确的合同订立程序能够有效预防和减少合同纠纷,确保...

    合同范本-船舶买卖契约书.doc

    在多数情况下,这些主体都是具有法人资格的有限公司,它们在进行船舶买卖时,必须遵守契约书中订立的各项条款。 买卖条款的设定直接关系到交易的核心内容。契约书的第一条便是关于买卖双方同意船舶买卖的条款。此...

    C#网络编程(订立协议和发送文件)

    在C#网络编程中,订立协议和发送文件是一项核心技能,尤其对于构建复杂网络应用如文件共享系统、在线游戏或是即时通讯软件等至关重要。在本文档中,我们深入探讨了如何在C#中实现这一功能,特别是通过订立协议和发送...

    合同范本-工程保证契约书.doc

    《工程保证契约书》是建筑工程领域中常见的法律文件,它涉及到工程承包、责任担保和权益保障等多个关键知识点。以下是对这些知识点的详细说明: 1. **工程承包**:描述中的"水电工程承包人 x x 工程行与业主 x x x ...

    第二章合同订立的一般程序.pptx

    了解和掌握合同订立的一般程序,对于任何参与合同谈判与签订的个人或机构来说都是基本的法律素养。《合同订立的一般程序》作为一个专题,针对的是合同形成过程中的核心要素——要约和要约邀请。本章节深入探讨了两者...

    员工入职相关范文模板-20-410订立劳动合同要参考哪些企业文件.doc

    在企业的人事管理中,订立劳动合同是一项至关重要的工作,它不仅明确了员工的工作职责和待遇,也是保护企业和员工权益的法律文件。根据标题和描述,本文将深入探讨订立劳动合同时需要参考的企业文件,以及如何处理...

    合同模板协议范文2021-附条件动产赠与契约书.doc

    契约一式两份,甲乙双方各执一份,作为法律凭证。这意味着双方都必须遵守契约条款,违反契约可能会承担法律责任。因此,在签订契约之前,甲乙双方都应该仔细阅读并理解契约的每一条款,必要时可以寻求法律专业人士的...

    合同模板协议范文2021-合并公司设立契约书.doc

    以上内容详细阐述了合并公司设立契约书的核心要点,包括合作基础、出资方式、权利义务分配、管理架构以及法律程序,这些都构成了新公司设立和运营的法律框架。在实际操作中,此类契约书需要根据具体情况进行定制,以...

    地役权设定契约书.zip

    - 地役权的设定需经双方协商一致,并以书面形式订立契约,契约应符合《物权法》等相关法律规定。 - 契约书经双方签字后,应在相关部门进行登记,以便公示并保障权益。 4. **期限与期限届满**: - 地役权的期限...

    网络技术-网络基础-论电子合同的订立.pdf

    二、电子合同的订立过程 电子合同的订立通常包括要约、承诺两个主要阶段: 1. 要约:通过电子方式提出合同条款的一方发出要约,这可能通过网站上的订单系统、电子邮件或在线聊天工具完成。 2. 承诺:另一方接受...

    连锁企业仓储与配送综合实训方案--仓储合同订立

    连锁企业仓储与配送综合实训方案中,重点在于仓储合同的订立过程。该实训方案主要面向连锁经营管理专业的学生,目的是让学生通过模拟实训的方式,熟悉并掌握仓储合同的订立流程和关键要素。实训方案涉及的项目内容...

    定期性赠与契约书.doc

    定期性赠与契约书是一种法律文件,用于规定赠与者(甲方)向受赠者(乙方)定期提供特定财物或资金的行为。在这种情况下,甲方同意每年分两次(六月底和十二月底)向乙方提供用于养育丙方(甲方的子嗣)的补助费。...

    合同订立的一般程序.pptx

    《合同订立的一般程序》 合同的订立是商业活动中至关重要的环节,涉及到双方当事人在法律框架下的权利和义务的约定。它不仅包括了合同从接触、洽谈直至达成一致的过程,还包括了合同的成立与生效。合同订立是双方...

    死因赠与契约书.doc

    在订立契约时,双方需清楚地在契约书中注明各自的身份信息和角色,确保契约的明确性和执行的可行性。 赠与标的物是指赠与人愿意在去世后无偿转移的财产。这些财产通常包括但不限于土地、建筑物等不动产,也可以是...

    第二章、合同订立的一般程序.pptx

    《合同订立的一般程序》 合同,是民事活动中至关重要的一环,它是平等主体的自然人、法人和其他组织之间设立、变更、终止民事权利义务关系的协议。婚姻、收养、监护等涉及身份关系的协议,则不受合同法的直接调整,...

Global site tag (gtag.js) - Google Analytics