我们应该在哪些因素上为Windows应用程序选择Java或.Net技术?

时间:2010-02-16 09:05:28

标签: c# java

我非常了解java和C#.Net。当我尝试创建一个新的Windows应用程序时,这些因素决定了应该选择哪种技术? 我知道一件事,为了实现更好,更快的UI开发,Visual Studio可以提供很多帮助。

7 个答案:

答案 0 :(得分:3)

我会考虑几个因素......

您的程序员已经习惯了什么?您可能需要哪些第三方库,两个平台上都有哪些?

平台独立性对您很重要吗?

LinQ会有优势吗?

如果您是从零开始,平台的成本?

两个平台周围都有强大的社区......

希望这会有所帮助......

答案 1 :(得分:2)

Dotnet在Windows中几乎是原生的,显然使它更适合编写Windows程序。在仅限Windows的环境中使用Java会让您更加困难,因为它实际上只会添加另一个不必要的API层。

您很快就会意识到Java代码和Windows之间的所有集成点都存在问题。例如,创建安装程序,访问文件系统,读/写注册表,启动/停止服务,任务栏图标,使用Windows GUI组件(媒体播放器,IE ...),帮助文件系统......

这一切归结为这个imo:Dotnet框架在功能方面比Java dito更丰富,主要是因为Java是跨平台的,因此需要一种“一刀切”的API方法。我的经验是,您只会在尝试使用Java“模拟”Windows本机程序时感到沮丧。

答案 2 :(得分:1)

选择您最熟悉的那个。这两个平台不同,一个人的技能不容易转移到另一个平台。

无论如何,尝试在两个场景中制作一个简单的应用程序,看看它是如何工作的。最初的印象非常重要,因为它可能表明其余工作的效果如何。

答案 3 :(得分:1)

它还取决于您要构建的Windows应用程序类型。如果这只是构建一个简单的独立应用程序的问题,那么考虑到你同样熟悉两种语言,我会毫不犹豫地选择100%的微软解决方案,特别是如果你必须做一些特定的事情,比如访问ActiveDirectory,windows登记处等。
并不是说你不能用Java做到这一点:例如,你总是可以在Java中通过LDAP使用AD,但API比.Net更复杂一些(尝试在没有一些技巧的情况下解码Java中的objectSID) )。

现在,如果您必须构建企业应用程序。我只觉得像Spring和Hibernate这样的流行框架总是在他们的Java对手之后出现(免责声明:这是个人观点;我没有对此进行任何研究,彻底比较两种语言的框架,但这只是感觉我有)。我不知道.Net实现有多好,所以我对此没有观点。我只记得编写.Net 2.0应用程序而根本不喜欢ADO.Net。

我认为我喜欢的框架确实存在于两种语言中,但它们最初是为Java开发的,然后移植到.Net。

现在我不是那种试图捍卫他最喜欢的语言的开发者。如果我没有外部约束来开发,那么我选择任何语言来获取我的应用并以最有效的方式运行更快。

答案 4 :(得分:0)

...但是使用java,您将拥有跨平台应用程序。 在java中编写UI并不困难 - 如果您之前阅读过一些指南并使用一些框架作为swing应用程序框架或SWT框架。

答案 5 :(得分:0)

如果它专属于Windows,那么.Net是最好的选择。

答案 6 :(得分:0)

对于纯粹的跨平台应用程序,Java无法被击败,但如果您能够管理它,Silverlight就是WPF的一个子集,并且是一个非常引人注目的跨平台主张。

生产力方面我认为WPF有一个优势,因为它有一个很好的XAML标记语言,可以使用VS.NET中的内置设计器轻松创建,或者与MS的表达产品套件很好地集成。