3

So here's the story: I currently work as a C# developer doing ASP.NET. While I like C# I don't like the overall quality of the .NET community; most of my past experiences have been that many .NET developers are totally ignorant of actual software engineering (e.g. design patterns, code separation, etc.). The Java area seems a lot better in this regard even if you do have to put up with the occasional "architecture astronaut".

My actual question is this: I can pick up the Java syntax easy enough since I already know C#. However, I've only worked with the full Microsoft stack for web development (WebForms, although I've looked a bit at MVC and I've done some Ruby on Rails demo stuff so I know MVC fairly well). If I want to learn enough marketable skills to be able to apply for junior-level Java development positions at companies, what stack should I look at? There are dozens of Java web frameworks out there; what would be the most common one used in companies? It seems that Hibernate is the default standard for persistence (I've done a little bit with NHibernate) so I'm okay with that. I've also seen several new Java web frameworks that seem interesting, but learning them won't give me a leg up in applying for a job at a company because I'm bettering they're untested in the corporate world and aimed at startups and similar like most new frameworks.

Which framework would be the most likely to be used at a typical company that I should start to learn in order to begin a transition to a better quality community?

Jonas
  • 97,987
  • 90
  • 271
  • 355
  • 1
    I'd say, just go ahead with standard Java EE 6 stack. The ASP.NET MVC counterpart would be JSF. Related: http://stackoverflow.com/questions/1960280/what-to-learn-for-making-java-web-applications-in-java-ee-6 – BalusC Feb 20 '11 at 19:26
  • 1
    I don't get how this is "subjective and argumentative" since it's asking for what is the current most-used framework. Strange how this site works sometimes. – Allan Scott Feb 20 '11 at 20:08
  • "questions of this type are too open ended". Strange how some people don't see it the way I see it. – Bart Kiers Feb 20 '11 at 20:23

2 Answers2

2

I'd actually recommend that you start by learning straight JDBC for database access and servlets+JSP for the web front end, and using those to implement a (very) simple web app. JDBC is the API on which basically all other Java database libraries are built, and likewise for servlets. These will require the least configuration necessary to get your app running. Once you've done that, you'll have a better foundational understanding and can take a look at:

  1. Hibernate with JPA for persistence
  2. Spring for dependency injection
  3. One of the many web frameworks - Spring MVC, Struts 2, JSF or Seam are all viable
  4. Java EE components such as EJBs.

If you're looking to do this on a full-blown Java EE container, I'd recommend using Glassfish as your server. But Tomcat is simpler (just a servlet container), and might be better for starting out with the first project.

Kaleb Brasee
  • 48,461
  • 8
  • 103
  • 110
0

Get familiar with Apache and JSP stuffs would also be helpful in addition to the answer above.

aherlambang
  • 14,092
  • 49
  • 146
  • 246