【目录】-【前言】
了解什么是OSGi.NET?得先从OSGi讲起,这个名词代表了两层意思,一个是组织,一个是规范。这个规范最初是为了能让更多不同规格和功能的嵌入式设备互通互联,互相协作搭建“智能运行平台”。了解这点很重要,它决定了我们能用OSGi来做什么。通俗的来说,OSGi搞定了如何将不同种类的“东西”集成到一块儿,并让他们和谐相处,就像是PC的“主板”,主板上面有CPU,有内存,有网卡,有声卡等等,他们通过主板这个载体连接在一起实现了PC的功能。当然OSGi不是某款特定主板,但你可以通过它搭建自己的主板。
说到”主板“,就不得不提”模块化“,这是PC之所以叫PC的根本。个人能简单的组装起一台电脑,全靠这个模块化了,CPU是一个模块,内存也是,网卡,声卡都是。模块的好处不言而喻,独立,封装,可替换,可升级,可移植,好维修,好管理,理论上你可以随意的安装和更换他们,且只要遵循了同一设计规范,便可以继续使用。顺便说一下,这种封装,既是逻辑封装,也是物理封装,封装程度相当高。
对于软件,我们也需要这样一个”主板“,将我们自己的模块或者其他人的模块,往上一插或者一换就能跑起来,这也是为什么Eclipse让OSGi在JAVA上火起来的原因,太方便了,想想要是以后大家都去软件商城买各种功能然后自己组装起来,想要什么功能就组装什么功能,那是多么了不起啊。
对于软件企业更加现实的意义在于,现在面对的是各种复杂需求和复杂变化,导致有个把年头积累的项目基本也是复杂的一塌糊涂,各种交叉变种版本,各种第三方依赖等等,即系统复杂度过高,严重影响后期测试和现场部署。如何降低复杂度,可以有很多不同方法,OSGi也是其中之一。想想一下,如果软件企业可以像硬件工厂那样开辟多条“功能流水生产线”,独立开发,独立测试,独立管理和发布,到用户手上是只是简单的安装就实现最终交付,那会是什么样的场景?
现在,我们有了它的.NET版本。更通用的解释是,OSGi.NET是.NET平台的一个模块化框架,通过模块化,你可以简化开发,快速集成、方便管理,并且通过强行隔离的逻辑模块来提高可重用性和可维护性。
大致了解这些背景知识后,我们来看看这款”OSGi.NET“主板到底都有啥能耐?官方帮助文档给出的功能点如下:
1) 支持模块化与插件化,这个不用多说,最基本的功能。
2) 面向服务架构支持,有点儿像是主板的CPU总线或内存总线,各种模块交互的通道
3) 模块可扩展支持,有点儿像是主板能支持多规格的CPU、内存或显卡,可升级,可迁移。
4) 热插拔与动态支持,有点儿像是服务器版本的主板,支持硬盘或者内存的热插拔。
5) 多环境支持,有点儿像是同时支持PC,平板甚至手机的主板。
从使用角度来说,支持模块化与插件化、面向服务架构支持、模块可扩展支持三大功能已经具备了”主板“的必备条件。
人们常说”开发思想是重要的,相对而言用什么平台实现是次要的“。这点非常赞同,OSGi最值得学习的就是他的”内在“,所以OSGi.NET相对于OSGi JAVA来说不是一种简单的移植或者规范的机械式实现。OSGi.NET内在的推动力是创建一个开放、规范、统一的框架,它可以降低.NET开发的复杂度,并提供一个简单的,基本的快速开发环境,提高.NET开发人员的生产效率,使得他们能够编写更好、更简洁的代码。开发者可以只关注于自己的业务逻辑,而非基础设施相关的或其他无关的内容。同时降低软件的复杂度,提高软件模块的可重用性,并节省从开发,测试到后期部署的成本。
接下来的时间,将陆续通过示例逐步介绍OSGi的各项有趣的功能和用法,更多的是介绍如何用OSGi的角度去思考而非编码或具体实现。敬请期待。
【目录】-【环境准备】
OSGi.NET的安装部署非常方便,只需要从官网下载SDK,安装即可。SDK中包含了必须的程序集文件外,还有完整实例,VS模版,VS编辑器、丰富文档,包括API接口解释以及一个远程控制程序用于状态产看和调试。
OSGi.NET最新版本已经开始支持VS 2012和MVC 3.0。