.Net实现OSGi遐想

很多书籍和文章都对JavaC#之间的相同与不同之处做了比较,下面是JavaC#之间的共同点的一个简单的列举:

特点

Java

C#

面向对象语言

独立于机器语言的中间语言

类打包

Jar包文件

程序集(Assembly)以exedllmodule文件存在

类名称空间

类加载机制

由类加载器加载到JVM

.Net应用程序域加载

独立的类空间

不同的类加载器(Class Loader)加载的类具有独立的逻辑空间,相互不可见

不同的应用程序域(Application Domain)加载的程序集不可见,具有独立的逻辑空间

运行时环境

JVM

.Net Runtime

 

OSGi中最重要的概念就是BundleBundle介于Jar包和应用系统之间,通过MANIFEST.MF文件中定义的元数据,来描述Bundle资源信息。同样,在.Net中,Bundle可以用程序集(Assembly)来实现,程序集的Manifest文件与Bundle的元数据文件类似,用于存储程序集的元数据信息,可以扩展该文件实现Bundle的规范。

 

Bundle加载后在OSGi环境中具有独立类空间,每个Bundle具有独立的类加载器,如下图所示。

 

JVM中的类加载器在.Net中可以用应用程序域(Application Domain)实现,一个应用程序域可以加载一个或多个应用程序集,共享的应用程序集可以加载到中立的应用程序域中。如下图所示:

以上关键问题的解决是不是就可以使用.Net实现OSGi的思想了呢?应该可以吧! 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值