我对COM和跨平台兼容性感到困惑

时间:2012-10-11 09:58:25

标签: c# java c++ com

我在确定在跨平台环境中使用哪些技术时遇到问题。到目前为止,这是我的想法。

  • Java是一种很好的编程语言,虽然我不是很习惯。而且由于我更喜欢​​访问Linq,代表等等我已经习惯使用C#的东西,所以我宁愿不要那么多使用它。与用户控件相比,我也不是Beans工作的忠实粉丝。

  • C#是我的首选语言。我喜欢它,我会称自己为该领域的专家(显然不是COM内的专家)。

  • C ++对我来说是俄罗斯的一个城市。我觉得我在使用这种编程语言时会盲目行事,与C#相比,事情需要更长的时间。

我正在制作一个为期4周的学校项目的备份系统。但是,我将来有更大的意图。要使备份系统成功,它必须具有跨平台兼容性。

因此,如果我在C#.NET COM中创建一个类库,并在包含GUI的Java项目中使用该COM,那么整个应用程序是否仍然可以跨平台工作?

3 个答案:

答案 0 :(得分:4)

COM是一种微软技术,它不是跨平台的。

您可以使用C#和mono项目为您提供跨平台部署。

http://www.mono-project.com/Main_Page

答案 1 :(得分:1)

理论上COM是跨平台的,但在实现中它依赖于Windows。除此之外,使.NET程序集COM可见并不会使它独立于.NET运行时(CLR),因此您依赖.NET(对于您的程序集)和Windows(对于COM)。但是COM和.NET都有POSIX实现的实现。 AFAIK for .NET有一个名为Mono的运行时可以安装在iOSAndroidPOSIX上但是对于学校项目我不认为你的老师接受它作为交叉平台,所以你应该使用跨平台的JavaC++(Java是运行时兼容的,C ++是源代码兼容的)。

答案 2 :(得分:1)

  

我正在制作一个为期4周的学校项目的备份系统。但是,我将来有更大的意图。要使备份系统成功,它必须具有跨平台兼容性。

我的建议是将专门集中在完成4周学校项目的目标上。不要添加可能会破坏项目的不必要的复杂性(例如跨平台支持)。使用您最熟悉的(适用)技术。

完成课程后,请务必重新审视项目并尝试将其变为更大/更好/更畅销/更好的项目。

(我们都可以梦想成为下一个比尔盖茨,但你是否真的认为你会通过另一个备份计划致富和/或出名?)