我是印度孟买大学最后一年的计算机科学专业学生。
我们的本科项目的主题是SOA。 在这个项目下,我们应该构建3个服务组件和一个使用这些组件的示例网站。 我对Java很好,对C#或.NET没有任何经验。
我很难决定项目的语言和平台。 你能建议我应该选择哪个平台吗?
请在复杂性,易于开发,易于部署等方面对Java / Java EE和C#.NET / ASP.NET进行简要比较。
编辑: 我提出这个问题的原因是: -
我们必须以三人一组的方式完成最后一年的项目。我的合作伙伴想在C#和asp.net中做这个项目,我想在java中做。由于我们的项目更多的是服务器端,因此java拥有一些优势,比如跨平台而不是C#
这一点: -
如果我们在C#.net(他们将构建)中实现2个部分并在Java中构建1个部分(我将构建),然后使用它们来构建示例网站该怎么办。
它会伴随什么级别(种类)困难?
答案 0 :(得分:6)
我对Java很好,对C#或.NET没有任何经验。
那么,您是否特别希望将您的知识扩展到C#和.NET,或者您是否只想专注于实际项目。
人们可以就C#和Java做出各种各样的争论,但在你的情况下,相关的事实是C#会更好地教你一门新语言,Java会更好地不要求你学习一门新语言语言。
编辑:在对问题进行编辑之后,混合使用您建议的语言作为一种可能性的另一个好处是需要您展示如何混合使用两种不同的语言,这些语言本身可能有用,也可能没用。答案 1 :(得分:2)
总的来说,我会说在Asp.NET中开始起来要容易得多。使用Java EE,只需设置开发环境来执行Hello World,就可以完成很多工作。在Asp.NET中,您启动visual studio,创建一个项目,并准备好了。如果您使用的是Netbeans和Glassfish,那么Hello World不再是一场噩梦,但部署仍然非常棘手。
在架构上它们非常相似,Java EE有点生锈,但是借鉴了ASP.net的许多新想法。
一旦掌握了Java EE的速度,它就不那么糟糕了,所以对于长期的商业项目来说,它是一个可行的选择。对于一个短期学生项目来说,这是不值得的,我会选择ASP.NET,但如果我有选择,我不会推荐任何一个平台。
我会用python,ruby或者groovy这样的动态语言构建我的应用程序。静态和动态语言之间的生产力差异很大。即使你的所有3名团队成员都不熟悉这种语言,我希望你能在更短的时间内完成更多的工作。
我建议调查以下框架:django,pylons,rails,grails。我偏向于python框架,但rails也是一个很好的选择。 Grails是一个非常酷的Rails克隆,用groovy编写,但除非你必须有Java集成,否则我会坚持使用其他3。
答案 2 :(得分:1)
我对Java很好,对C#或.NET没有任何经验。
如果你的意思是你也有建立服务和网站的经验,那么使用Java,没有必要进一步讨论它。唯一可能的原因是如果你想学习.NET(虽然这是一个很好的理由),但根本不是因为你应该改变它。
请注意,我个人更喜欢.NET与Java,但在我所描述的场景中,我永远不会/曾经让团队在Java中有经验。
如果使用.NET,请使用ASP.NET MVC。无论平台/ HTML,CSS,JS,HTTP考虑因素如何,它都能让您更接近正确的学习技能。
答案 3 :(得分:1)
我想到了这个想法:
平台:您熟悉Java,我建议暂时留在Java中。
J2EE你的意思是Java EE吗?根据今天的标准,J2EE已经很老了。
.NET和Java平台代码之间没有太多(如果有的话)根本区别。它取决于您的偏好以及您主要使用的操作系统,imo。如果它只是Windows开发,我会倾向于.NET,但是如果你需要可移植性倾向于Java。
此外,我想指出SOA更多是顾问使用的热门词汇。当您获得行业经验时,您将看到这一点。云是新的SOA,这纯粹是意见。
答案 4 :(得分:1)
如果我们实施2个部分怎么办? C#.net(他们将构建)和1 Java中的部分(我将构建)和 然后用它们来构建一个样本 网站。什么级别(种类) 难以伴随吗?
如果这些部分之间的接口是一个广泛接受的标准,如SOAP或REST / JSON,那么开发各个组件的语言将非常重要 - 这是这些标准的重点,也是这个标准的重要组成部分。 SOA的想法也是如此。我甚至认为这样一个异类应用程序是你应该学习的更好的例子。
唯一真正的缺点是,当你遇到问题时,你将更难以相互帮助。
答案 5 :(得分:0)
在你不知道的事情中做其他组件可能是值得的,因为这些经验可以让你对行业更具市场价值。查看您想要工作的领域的工作机会。他们要求的经验是什么?也许使用他们要求的东西作为你的组件之一。我从未见过仅仅提供Java体验的招聘广告,它通常伴随着其他技术,如脚本语言和框架体验。