c# - Java 与 C# 和 .NET 之间的区别

标签 c# java windows linux user-interface

<分区>

提前为可能的火焰线程道歉,但这不是我想要的。

我只使用 C 和 C++ 在 Linux 中进行过认真的开发,现在我正准备尝试进入 Windows。我一直在阅读和四处询问,在我看来,带有 C# 的 .NET 是为 Windows 开发面向用户的商业应用程序的方法。

对我来说,一个重要的考虑因素是将用户界面集成到桌面中,因为这是用户最终与之交互的地方。例如,是否可以在 Java 中重新创建 Office 2007 GUI 的外观,或者这是否只能通过 .NET 实现?

我也很关心便携性。将来,我可能想将应用程序移植到 Linux。我知道 mono 项目,但我想知道使用 Java 是否更好。

简而言之,在开发主要用于 Windows 的面向用户的商业应用程序时,Java 和 C# 之间的权衡取舍是什么?

最佳答案

最重要的一点是“主要用于 Windows”。

如果您需要在 Windows 上工作,C# 可能是比 Java 更好的选择。有更多种类的视觉风格可以很好地融入 Windows。它还使与 native 代码(例如,Win32 API 或 COM 库的位)的互操作比 Java 更容易。我个人更喜欢它作为一种语言,但那是另一回事。

如果您需要在其他平台上运行,我会认真考虑 Java。同时Mono尽管势头强劲,但在其支持的各种平台上,它与 .NET 的兼容性程度不如 Java。

所以基本上,非常仔细地权衡“可能想要移植”方面 - 从我的角度来看,这是决定的驱动因素。一旦您决定进行移植,即使 90% 的客户都在使用 Windows 也没有多大关系 - 它仍然需要正常工作,并且对于其余 10% 的客户来说,工作良好。

关于c# - Java 与 C# 和 .NET 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/791186/

相关文章:

java - 当我告诉它运行 Java 14 时,为什么 Gradle 会尝试使用 Java 8?

java - 如何在 bean 上提供 @ControllerAdvice 条件?

java - 带按钮的Android自定义对话框

c# - 流利的 NHibernate : How to tell it not to map a base class

c# - 可见性的解决方法。隐藏状态 - Windows Phone 8.1 应用程序开发

windows - 使用适用于 Windows 的通用 USB 设备驱动程序

windows - 在 Windows 中创建自定义命令(不是应用程序)快捷方式

调用 free 导致程序抛出异常

c# - 使用单行 `null` 将 'if' 值分配给 Nullable<DateTime>

c# - 为什么 C# 的二元运算符总是返回 int 而不管其输入格式如何?