02 2013 档案
摘要:Demo 点击下载【目录】- 【面向服务架构支持】-【实例】 这次我们继续延续“模块化和插件化”那个实例来做展示。 现有的代码,主程序依赖接口和接口实现的Calculator.Demo1程序集,也就说主程序不仅得知道具体的接口定义,还得知道这个接口具体实现的定义。理论上说,这是面向对象,但也是紧耦合。如果你要替换成另外一个接口实现,你就得重新修改、编译、发布主程序。如何避免这种修改呢?可以通过服务总线来重构它、隔离它、松耦合它。 好在OSGi.NET的“服务总线”功能是以服务的形式发布的,有两种注册服务方式 1) 一个是在激活器当中,通过IBundleContext.AddServi...
阅读全文
摘要:【目录】- 面向服务架构支持】-【概念】 面向服务的体系结构,SOA,也是OSGi.NET中一个重要功能,主要是为了各个模块可以以一种统一和通用的方式进行交互。官方文档是这么说的 1) 服务绑定模型:支持典型的“服务注册 – 服务搜索 – 服务绑定”的服务绑定模型。服务提供商想服务注册表注册服务,服务消费者搜索服务注册表并绑定需要的服务。 2) 接口与实现隔离:每一个服务由“接口 + 实现”组成,接口相当于服务契约,而实现则是实现服务接口的具体类的实例。 这里的“服务绑定模型”,像是一个服务总线,用来存储和检索各种服务。而SOA就是将应用程序的不同功能单元通过定义良好的接口和契约联系...
阅读全文
摘要:【目录】-【模块化和插件化】-【小结】 现在我们来对OSGi.NET的“模块化和插件化”做一个小结,再次把官方的说明拿出来 1) 物理隔离:基于UIOSP开发的模块是一个物理隔离的可单独部署的模块,每一个模块拥有独立的文件夹、类型空间、资源和类加载器。模块间互相独立、互相隔离且互不影响。 a) 先看看上面实例目录结构 b) 很明显的看出,三个模块的确是被“隔离“在三个不同的文件夹内,且Calculator.Demo1和RemotingManagement、WebServiceWrapperService无依赖,即前者无法知道后两者是否存在,也不需要知道,他们相互不影响...
阅读全文
摘要:Demo 点击下载【目录】-【模块化和插件化】-【实例】 假设我们准备做一个计算器,是的,先从最简单的加减乘除开始。 1) 先确定一下是命令行显示,.NET 4.5,C#,VS 2012的开发环境; 2) 第一阶段实现加减乘除功能,用户输入计算公式,回车,返回计算结果; 3) 其他问题待定。 OK,先来分析一下如何做。 1) 逻辑上,简单来说,核心在计算,一种输入,计算和输出的过程。 2) 其他的就是界面和异常了。 稍微具体点, 1) 设计一个接口ICalculate,有返回类型为string的方法Calculate,一个string类型的参数,计算公式。 2) 一个具体的...
阅读全文
摘要:【目录】-【前言】 了解什么是OSGi.NET?得先从OSGi讲起,这个名词代表了两层意思,一个是组织,一个是规范。这个规范最初是为了能让更多不同规格和功能的嵌入式设备互通互联,互相协作搭建“智能运行平台”。了解这点很重要,它决定了我们能用OSGi来做什么。通俗的来说,OSGi搞定了如何将不同种类的“东西”集成到一块儿,并让他们和谐相处,就像是PC的“主板”,主板上面有CPU,有内存,有网卡,有声卡等等,他们通过主板这个载体连接在一起实现了PC的功能。当然OSGi不是某款特定主板,但你可以通过它搭建自己的主板。 说到”主板“,就不得不提”模块化“,这是PC之所以叫PC的根本。个人能简单的...
阅读全文
摘要:【目录】-【模块化和插件化】-【概念】 这算是OSGi的基础和灵魂,没有他,后面将要介绍的很多功能都会黯然失色。 先看文档怎么说: 1) 物理隔离:基于UIOSP开发的模块是一个物理隔离的可单独部署的模块,每一个模块拥有独立的文件夹、类型空间、资源和类加载器。模块间互相独立、互相隔离且互不影响。 2) 高度可重用:模块的重用不需要再更改任何代码,只需要将模块拷贝到UIOSP指定的插件目录下,它的功能便向其它模块暴露。 3) 规范化:模块具有统一的标准,每一个模块的目录结构、模块配置都是统一的,开发方法也完全一致。 4) 快速集成:仅需要将模块都拷贝到指定的插件目录就能够实现模块...
阅读全文
摘要:持续更新和调整中,本人学习笔记,非官方文档,难免疏漏,仅供参考。 OSGi.NET SDK下载地址。前言及环境准备模块化和插件化概念实例小结面向服务架构支持概念实例、小结 模块可扩展支持概念、实例小结热插拔与动态支持概念、实例、小结多环境支持高级话题如何划分模块?
阅读全文

浙公网安备 33010602011771号