很多书籍和文章都对Java和C#之间的相同与不同之处做了比较,下面是Java与C#之间的共同点的一个简单的列举:
特点
|
Java
|
C#
|
面向对象语言
|
是
|
是
|
独立于机器语言的中间语言
|
是
|
是
|
类打包
|
Jar包文件
|
程序集(Assembly)以exe,dll或module文件存在
|
类名称空间
|
有
|
有
|
类加载机制
|
由类加载器加载到JVM中
|
由.Net应用程序域加载
|
独立的类空间
|
不同的类加载器(Class Loader)加载的类具有独立的逻辑空间,相互不可见
|
不同的应用程序域(Application Domain)加载的程序集不可见,具有独立的逻辑空间
|
运行时环境
|
JVM
|
.Net Runtime
|
在OSGi中最重要的概念就是Bundle,Bundle介于Jar包和应用系统之间,通过MANIFEST.MF文件中定义的元数据,来描述Bundle资源信息。同样,在.Net中,Bundle可以用程序集(Assembly)来实现,程序集的Manifest文件与Bundle的元数据文件类似,用于存储程序集的元数据信息,可以扩展该文件实现Bundle的规范。
Bundle加载后在OSGi环境中具有独立类空间,每个Bundle具有独立的类加载器,如下图所示。
JVM中的类加载器在.Net中可以用应用程序域(Application Domain)实现,一个应用程序域可以加载一个或多个应用程序集,共享的应用程序集可以加载到中立的应用程序域中。如下图所示:
以上关键问题的解决是不是就可以使用.Net实现OSGi的思想了呢?应该可以吧!
分享到:
相关推荐
动态化模块化框架,可热插拔子模块插件,定义了应用程序的生命周期模式和服务注册。只支持VS2017或以下的版本
golion 介绍 一个OSGi框架的.NET实现,使用C#编写 Summary An .NET implemention of OSGi framework,writen by C#
OSGI.net WPF
Java开发者使用的OSGI技术在C#中的实现。OSGI.NET开放工厂使用示例
本文档主要针对OSGi.NET模块化框架使用进行了描述 OSGi.NET框架是一个参照了OSGi规范的模块化管理框架。框架为应用程序(组件(bundle))提供了一个标准环境。整个框架可以划分为一些层次: 1.运行环境 2.模块...
开放工厂向您提供了规范化的OSGi.NET插件框架和可复用的插件仓库,通过插件仓库来解决应用系统的持续集成、远程管理、自动更新、敏捷发布,无缝实现开发/QA/运维间无缝协作,并允许您将自定义的插件共享。...
WPF界面-OSGI.net
该界面框架是在ModernUI(http://mui.codeplex.com/)基础上开发的非常现代、漂亮的通用界面框架,通过简单的配置,您可以将自定义的功能注册到页面。...使用的OSGi.NET插件 欢迎感兴趣的用户下载研究
OSGi.NET是一个动态模块化框架,它是紧密基于OSGi联盟的OSGi规范的.NET实现,由中国西安UI信息技术有限公司设计和开发,从2008年开始,它是完全免费的,并且可以与任何产品一起重新分配。 该项目主要致力于说明如何...
C#版OSGi模块化框架,本代码来源自Github
漂亮的WPF界面框架(OSGi.NET插件)源码 源码描述: 该界面框架是非常现代、漂亮的通用界面框架,通过简单的配置,您可以将自定义的功能注册到页面。它支持三级菜单、支持更换皮肤和字体调整。 使用的OSGi.NET插件 ...
利用R-OSGi实现分布式OSGi应用 本文通过介绍传统 OSGi 应用程序及 R-OSGi 的实现方式入手,阐述了 R-OSGi 对于 OSGi 规范的实现方式。然后通过一个简单的功能实现由浅入深地讲述传统 OSGi 和 R-OSGi 上的两种不同...
利用felix和struts2实现osgi web
osgi实战源码 通过一个完整购物车实例来展示OSGI的实现.代码简单易懂,可扩展.
OSGi.NET插件框架的设计原理和应用
osgi介绍osgi介绍osgi介绍osgi介绍osgi介绍osgi介绍osgi介绍osgi介绍osgi介绍osgi介绍
.Net的在线升级的案例插件接口加反射的技术与与代码
代码实现了用户登录验证功能,其中包括OSGi的传统实现方式和DS的实现方式。
Osgi技术在Eclipse中的实现 简单用代码解释了过程
仿Outlook风格界面框架,想要界面优美的,不可错过。