views:

185

answers:

6

I am a final year computer science student from Mumbai University, India.

The topic of our undergraduate project is SOA. Under this project we are supposed to build 3 service components and one example website that uses those components. I am quite good with Java and have no experience whatsoever with C# or .NET.

I am having hard time deciding the language and platform for our project. Can you please suggest what platform I should go for?

Please give me a brief comparison between Java/J2EE and C#.NET/ASP.NET in terms of complexity, ease of development, ease of deployment etc.


Edit: The original reason why I put this question is:-

We have to do final year project in group of three. My both partners want to do this project in C# and asp.net and I want to do it in java. Since our project is more of server side, java holds some advantages like cross platform over C#

Also this point:-

What if we implement 2 parts in C#.net(which they will build) and 1 part in Java(which i will build) and then use them to build a sample website. What level(kind) of difficulty it will accompany?

Thanks in advance. :)

+6  A: 

I am quite good with Java and have no experience whatsoever with C# or .NET.

Well then, do you have a particular desire to extend your knowledge into C# and .NET, or do you want to concentrate solely on the actual project.

People can make all sorts of arguments about C# vs Java, but in your case the pertinent facts are that C# will be much better at teaching you a new language, and Java will be much better at not requiring you to learn a new language.

Edit: Following the edit to the question, mixing the languages like you suggest as a possibility has the added advantage of needing you to show how to mix the use of two different languages, which might or might not be useful in itself.

Jon Hanna
+1 @Jon Hanna: C# will be much better at teaching you a new language, and Java will be much better at not requiring you to learn a new language.
JavaGeek
This sounds like an opinion by someone who has not worked with both J2EE and Asp.net. If the OP only knew ASM or Cobol, would you have given the same advice. Just because you know how to use a tool, doesn't mean it is the best tool for every job.
mikerobi
@mikerobi Depending on what I knew about the project, and given that its of educational purpose, I might!
Jon Hanna
A: 

It may be worth your while to do the other components in something you don't know as having that experience could make you more marketable to industry. Look at job offers for a field you'd like to do work in. What experience are they asking for? Maybe use something they ask for as one of your components. I've never seen a job ad that asked solely for Java experience, it's usually accompanied by other technologies like scripting languages and framework experience.

raeb
+1  A: 

I am quite good with Java and have no experience whatsoever with C# or .NET.

If by that you mean you also have experience with building services and site, then use Java, no point in discussing it any further. The only possible reason is if You Want to learn .NET (a great reason imho though), but not at all because you should change to it.

Note that personally I prefer .NET vs. Java, but I would never / ever make a team experienced in Java change to .NET in the scenario you described.

If you do go with .NET, use ASP.NET MVC. It gets you closer to the right skills to learn regardless of the platform / HTML, CSS, JS, HTTP considerations, etc.

eglasius
+1  A: 

Ill approach this idea by idea:
Platform: You are familiar with Java, I would recommend for the time being staying within Java for the time being.

J2EE do you mean JEE? J2EE is quite old by today's standards.

There are not many, if any, fundamental differences between .NET and Java platform code. It comes down to a matter of preference and what Operating System you are primarily working on, imo. If it is only Windows development I would lean towards .NET, however if you need portability lean towards Java.

Also I wanted to point out SOA is more of a buzz word consultants use. You will see this as you gain experience in the industry. Cloud is the new SOA, this is purely opinion.

Woot4Moo
+1  A: 

What if we implement 2 parts in C#.net(which they will build) and 1 part in Java(which i will build) and then use them to build a sample website. What level(kind) of difficulty it will accompany?

If the interface between these parts is a widely-accepted standard like SOAP or REST/JSON, then the language the individual components are developed in will matter very little - this is the whole point of such standards, and an important part of the SOA idea as well. I'd even consider such a heterogenous application a better example for what you're supposed to learn.

The only real downside will be that you'll have a harder time helping each other when you encounter problems.

Michael Borgwardt
+2  A: 

Overall I would say that is is much easier to get started in Asp.NET. With J2EE, just setting a dev environment to do Hello World, can be a lot of work. In Asp.NET, you launch visual studio, create a project, and are ready to go. If you are using Netbeans and Glassfish, then Hello World is no longer a nightmare, but deployment is still a lot trickier.

Architecturally they are pretty similar, J2EE is a bit rustier, but has borrowed from many of the newer ideas of ASP.net.

Once you get up to speed in J2EE, it isn't that bad, so for a long term commercial project, it is a viable choice. For a short term student project it isn't worth the effort, and I would go with ASP.NET, but if I had a choice I wouldn't recommend either platform.

I would build my application in a dynamic language like python, ruby, or maybe groovy. The difference in productivity between static and dynamic languages is huge. Even if all 3 of your team members are new to the language I would expect you accomplish more in less time.

I would recommend looking into the following frameworks: django, pylons, rails, grails. I'm biased towards the python frameworks, but rails is also an excellent choice. Grails is a pretty cool clone of Rails written in groovy, but unless you have to have Java integration, I would stick with the other 3.

mikerobi
@mikerobi: What i concluded from your answer is that we must choose Asp.net over J2EE for Student project.Am I correct?
JavaGeek
Yes, if those are your only choices, ASP.net will save you a lot of time and trouble.
mikerobi