使用Java + Swing而不是C#+ WinForms / WPF有什么好处?

时间:2009-05-20 16:59:07

标签: c# java wpf swing

这里有一个组使用Java,服务器端和客户端,使用Swing作为客户端UI。我打算建议他们将前端改为C#和WinForms或WPF,但我想准备好:

  1. 从Swing迁移到Winforms / WPF所带来的好处列表。
  2. 使用WinForms / WPF可能会让我失望的Swing优惠列表(我唯一能想到的就是能够在服务器和客户端之间共享更多代码,因为它们是相同的语言 - 鉴于服务器端将保留Java)。

8 个答案:

答案 0 :(得分:3)

我先说这是一个.net开发人员所以以下可能是异端。

听起来贵公司已经对java进行了大量投资。人员,软件许可证和代码库。

如果我的公司(或团队)主要是java并且我们成功地满足了业务需求,那么坦率地说,我会切换没有办法

我考虑切换技术堆栈的唯一方法是,如果我们所在的堆栈真的死了。这意味着很难找到程序员,它无法满足业务需求,我们有大量失败的项目,和/或语言本身不再发展。

切换只是因为某人喜欢一种语言而不是另一种语言是非首发的,最终没有任何商业意义。像这样的变化的行为将意味着公司将失去那些仍然致力于旧堆栈的人。就知识丢失而言,取代人是非常昂贵的。

另一方面,如果您还不知道切换平台的原因是什么,那么您甚至不应该尝试鼓励它。从会计师的角度来看,这究竟提供了什么?

答案 1 :(得分:2)

  1. Performace&启动时间。您无法在性能/启动时间方面将Swing与Winforms / WPF进行比较。

  2. 真的不知道......如果你有一个不懂.Net API的高素质Java团队,坚持使用Swing,否则,不要三思而后行......使用Winforms。关于“由于是同一种语言而能够在服务器和客户端之间共享更多代码的能力”,请不要理会......有数以万种方法可以使用不同语言制作两个不同的应用程序。

答案 2 :(得分:2)

1)摆动很臭。 (几乎只是开玩笑,但实际上,在我看来,它非常糟糕。)即使你要用Java开发,也要使用SWT或其他一些体面的/行为工具包。迁移到Windows窗体或WPF将(可能)在Windows上为您提供更强大的用户界面选项,但仅限于Windows。

2)你将自己与Windows联系起来,并失去了Java + Swing的跨平台特性。您可能会失去一些共享代码的能力。您必须在非Java中重新开发,这可能意味着您团队中其他开发人员缺乏经验/培训/知识。

答案 3 :(得分:0)

与Windows上运行的Swing应用程序相比,.NET winform应用程序的GUI性能应该更快。对于大多数应用程序而言,目前这并不是一个巨大的差异,如今计算机可以非常快地运行Java。

无论哪种方式,您仍然会使用Java后端代码。根据他们所做的事情,你可能最好只是坚持使用Swing前端。

如果是一个选项,你应该考虑一个Web前端。如果它可以在XHTML / Javascript / CSS中创建,那么您将保留Java GUI为您提供的跨平台优势。

但实际上,您需要考虑为什么要更改为Winforms而不是Java。您不喜欢的现有Java应用程序是否会更好,并且值得以另一种语言重新开发的成本?它是否可以在没有完全重写的情况下修复?

答案 4 :(得分:0)

您是否有任何自定义组件从Swing迁移到.net会很痛苦?您是否拥有开发自定义Swing组件(Java2D专业知识,熟悉Swings输入子系统等)的专家,他们对WinForm自定义开发知之甚少?

如果对这些问题的回答是肯定的,那么你应该坚持使用Swing。

答案 5 :(得分:0)

1)让Winforms应用程序感觉像Windows应用程序更容易。如果你不小心,Java应用程序通常会觉得“有趣”。

2)您编程的所有内容都使用Java。拥有一个非Java的组件意味着项目更难以使用。整体维护也会更加烦人。目前,项目团队中的每个人都只需要了解Java,以便能够与项目团队中的任何其他人一起工作。从招聘和可维护性的角度来看,这很方便。就个人而言,我反对切换GUI,除非你从中获得一些其他好处。

您没有提供任何理由说明您计划提出提案的原因。

答案 6 :(得分:0)

如果使用Windows .net是更好的选择,因为你有: 1. Visual Studio中的优秀设计师,良好的文档和示例 2.运行时更好的启动,CPU和内存使用情况:请参阅http://www.codeproject.com/KB/dotnet/RuntimePerformance.aspx

如果使用Linux,你有Mono和Java,但由于发行量很大,在那里进行比较会更复杂。

答案 7 :(得分:0)

最大的优点是可以在java中使用的免费库。大多数nosql系统都是用java编写的,最好的是Neo4j(只有java才能让你能够运行这些嵌入式产品)。这是dot net无法做到的,这些将使你的应用程序能够没有winforms,wpf可以拥有。