我已经看到了一些例子,其中架构是服务器端有java,客户端有c# - 是什么让这个组合如此好?为什么.net双方都不是更好的选择(或者事实上,双方都是java?)
后来添加:在很多情况下,java托管在Windows服务器本身,我认为通过tomcat(不是100%肯定) - 这里的动机是什么?
Java经常在后端使用(并且已成为事实上的标准),原因有很多:
Java可以透明地运行在各种操作系统上,从Windows开发工作站到专用的unix服务器.
Java强制采用模块化,面向对象的编码方法,允许编写大型系统(希望如此)而不会变得难以管理.(对于C#/ .NET也是如此,但对其他后端语言如Perl或Python则不然)
Java经常用于后端系统(一种语言对于特定应用程序越流行,对于该特定应用程序而言,该语言中有成熟的库和工具的可能性更大)
C#具有很好的工具和库,可用于在Windows中设计UI.Java的操作系统(OS)独立性质为操作系统UI的特定怪癖提供了更少的工具,而C#由Microsoft设计和维护,用于编写Windows应用程序.
好吧,在很多情况下,两端都使用.NET(我猜想同样适用于Java).但我对Java服务器/ .NET客户端架构背后的动机的猜测是,应用程序将Unix作为服务器操作系统,出于成本或可靠性的原因,或者因为它需要适应现有的Unix服务器环境(例如工作)与现有的Unix应用程序紧密相关),但将Windows作为客户端平台.(我认为Java在使用Windows作为服务器平台的情况下可能不太常见;但是没有数据支持这一点.)
如果假设是Unix服务器操作系统,那么Java是一个非常有效的选择,很多库提供良好的支持,但是具有更大的开发人员基础(至少在"企业"环境中),以及比Perl等替代品更多的"管理"识别,Ruby或Python.
相反,.NET更适合Windows客户端,因为它对构建Windows GUI有更好的支持.它不仅仅是工具:Java GUI API本身(例如Swing)倾向于优先于原生外观的跨平台相似性,因此往往会导致应用程序看起来或行为不像Windows应用程序.(我在这里概括一下 - 对不起!)