开源组件的管理与应用杂谈
2014-02-12 10:06
134 查看
在企业应用中合理使用开源组件是个不错的方向。如果管理和应用呢,我谈一下个人的几个观点。
首先,在管理方面,使用Nuget。Nuget能够管理外部组件的版本,依赖,引用等,而且被良好的集成到VS中。
其次,应用方面,要使用接入的概念,在自己的产品主框架里面定义好接口,通过Adapter(Wrapper)模式,匹配外部开源组件接口。
这么做可能基于以下原因:
1. 所引入的开源组件原开发者不再维护
2. 出现更好的替代者
3. 客户希望以自己系统中已有的组件替代
4.原组件不再满足变化后的环境和需求,需要进行替换
5. 提供多种默认实现,以满足不同的实施环境
我称这种架构为主板式架构(MotherBoard-Architecture),框架的基础设施定义了一系列接口,各种基础组件通过独立的工程去实现接口。然后使用IoC框架创建对象,最终实现可插拔替换。
举个例子,缓存是一个系统不可或缺的部分,可以使用Asp.Net自带的进程内缓存容器,如System.Runtime.Cache, 也可以使用分布式缓存,如MemCache或者AppFabric。针对用户的应用场景,就可以通过配置自由切换本地缓存或者分布式缓存。
首先,在管理方面,使用Nuget。Nuget能够管理外部组件的版本,依赖,引用等,而且被良好的集成到VS中。
其次,应用方面,要使用接入的概念,在自己的产品主框架里面定义好接口,通过Adapter(Wrapper)模式,匹配外部开源组件接口。
这么做可能基于以下原因:
1. 所引入的开源组件原开发者不再维护
2. 出现更好的替代者
3. 客户希望以自己系统中已有的组件替代
4.原组件不再满足变化后的环境和需求,需要进行替换
5. 提供多种默认实现,以满足不同的实施环境
我称这种架构为主板式架构(MotherBoard-Architecture),框架的基础设施定义了一系列接口,各种基础组件通过独立的工程去实现接口。然后使用IoC框架创建对象,最终实现可插拔替换。
举个例子,缓存是一个系统不可或缺的部分,可以使用Asp.Net自带的进程内缓存容器,如System.Runtime.Cache, 也可以使用分布式缓存,如MemCache或者AppFabric。针对用户的应用场景,就可以通过配置自由切换本地缓存或者分布式缓存。
相关文章推荐
- django开源应用学校信息管理系统,采用django admin模块实现。
- 网络管理之windows s 2003Snmp组件的安装和简单应用(图文)
- 1024.在线视频―开源网管Cacti系列讲座(三)Cacti设备管理与模版应用
- 应用SAAS结构技术的开源药店管理系统-如何自己部署这种SOA/SAAS结构的应用
- 开源组件应用系列:Log4net之基本配置(收藏)
- OSSIM(开源安全信息管理系统)在企业网络管理中的应用
- 开源APM应用性能管理工具调研
- 利用开源的TaskScheduler组件实现监控和管理windows计划任务
- Spring管理Dwr应用组件
- 通用权限管理系统组件 (GPM - General Permissions Manager) 在跨国直销企业电子商务项目中的成功应用
- C#.NET中的 sender Tag 功能在支持多语言的通用权限管理系统组件中的实际应用范例
- SAAS结构技术的开源药店管理系统-如何自己部署这种SOA/SAAS结构的应用 推荐
- Android 平台的 10 款开源任务管理和时间追踪应用
- Android常用组件地址分享(开源和应用)
- 网易新闻iOS版应用在开发过程中曾经使用过的第三方开源类库和组件
- 应用SAAS结构技术的开源药店管理系统-源代码结构说明
- 项目管理中用到的Linux开源应用
- OSSIM(开源安全信息管理系统)在企业网络管理中的应用
- OSSIM(开源安全信息管理系统)在企业网络管理中的应用
- 使用openlayers开源组件建立地图应用