tags:

views:

100

answers:

2

In the future I will be working with MVC with java/j2ee,hibernate,and more, but for now I have asp.net, php, python, ruby, etc. If I learn how to use MVC asp.net or MVC with a php framework, or RoR, will that help me with the Java version? I don't want to wait until I start the java project before I start really learning how to use MVC, but if the .net or php versions of mvc are so different that it will be a major relearning, then I might not use the non-java mvc frameworks.

In short, is learning MVC on one platform good for learning it on all platforms? I realize the tools and languages will be different, but my question is for general knowledge.

I hate working on things in a "special" way for a one time project that will show no future benefit.

Thank you.

+2  A: 

MVC is all about splitting your application into 3 major parts. The model which contains most of the code that interacts with your database, the controller which accesses the model and gets the data it needs which then gets passed to the view which renders this for the user to see.

No matter which technology/framework you choose this basic principle will remain and only the technology used behind it will change.

For example if you went the PHP route and choose symfony as your web framework you would be using Doctrine or Propel as your model/ORM. If you used JBoss Seam you would be using Hibernate/JPA as your ORM and EJBs as your controllers.

Even though these 2 frameworks follow the same rules when it comes to separating logic from design they also require you to learn very different concepts to utilize them correctly.

For instance in JBoss Seam, the framework relies heavily on your knowledge of scope and stateless and stateful session beans where in symfony there is no such concept (sort of).

So whatever route you choose, there is still much to learn after you've mastered the concept of MVC.

Peter D
+1  A: 

MVC is a basic software architectural pattern. It's just an abstract concept. Its specific implementations will differ based on the language and platform you are using (as does everything), but the basic concepts remain the same.

So in a word: yes. Learn what MVC means as a concept and you'll be able to transfer that knowledge between platforms and technologies.

Marc W