Sign up ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

I'm an ASP.NET developer since 3 years ago and I'm now pretty powerful in WebForms. But now it seems that everybody is moving or shifting towards ASP.NET MVC, and my company is also taking this shift.

The question is, when and how can you feel that it's the time to shift to a newer technology. For example, when and how can you feel that you have to go from HTML4 to HTML5, or CSS2 to CSS3, or ASP.NET WebForms to ASP.NET MVC, etc.?

share|improve this question

closed as off-topic by durron597, GlenH7, MichaelT, Thomas Owens Jun 2 at 10:23

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions seeking career or education advice are off topic on Programmers. They are only meaningful to the asker and do not generate lasting value for the broader programming community. Furthermore, in most cases, any answer is going to be a subjective opinion that may not take into account all the nuances of a (your) particular circumstance." – Thomas Owens
If this question can be reworded to fit the rules in the help center, please edit the question.

Doesn't seem like your company is giving you choice. Employment is a strong motivator. –  JeffO Jul 26 '11 at 11:59

4 Answers 4

up vote 12 down vote accepted

You should change when the new framework enables you to do your job better than the old framework.

The exact definition of "better" will vary but it could mean any or all of the following:

  • You produce your application more quickly
  • You produce your application with fewer bugs
  • You produce an application with a better user experience
  • You produce an application that can run across multiple platforms
  • ...

When a new framework is announced or released you should be looking at it to see if it meets any of these criteria. If these are important to you (or your boss) then you should adopt it at a time convenient to you, your employer and customer. This is most likely to be when the next major release of your product is planned. Swapping frameworks "mid stream" is not to be recommended.

share|improve this answer

This question imply you are using a single framework for every solution.

I prefer to pick the right framework for a given solution to a problem (if a framework is even required).

I prefer to use standard technologies (both from developer & business point of view). While ASP.NET MVC is clearly a standard, HTML5 may not. I had to rollback an entire website upgraded to HTML5 because of huge number of complaints I received from customers still using standard browsers.

Another advantage by using the standard technologies is that they are very well supported, but both vendors (if any) and the community. It's also easier to find great profiles.

As a developer I would suggest you to know all standard technologies in .NET and experimenting the newest one. Implement when they are mature enough to support your business.

Choose the right framework for a given solution to a problem.

share|improve this answer
well said. Pick the right tool for the job, whatever the job may be. I may program pl/sql one day, Java the next, and am now working on an ajax/javascript thing because that seems to be the best option for this specific job. Many larger systems are built on a combination of technologies and frameworks anyway, not rigorously designed to use only one thing and one thing only for everything. –  jwenting Jul 26 '11 at 11:43
Well said. MVC is great and powerful and makes sense in many situations. But sometimes a simple web form app is quicker and easier solution. I prefer to look at what benefits i get from the solution in a particular manner. While MVC tends to be a preferred solution its not always the best business decision. As far as moving to html5 or css3 you make the move when you are willing to sacrifice your customers who can not support it. –  Chad Jul 26 '11 at 13:22

Reasons not yet mentioned:

  • When support for your current technology or framework is ending. For example, when the DEC Alpha had diminished in importance to almost irrelevance compared to x86 processors, it was time to drop that backwards compatibility from our future releases.
  • When the transition is very easy and the new technology has new features that you may not yet be using, but that could quickly become much more interesting. For example, upgrading a third-party library to a newer version that supports 64-bit or multi-threading for the first time.
  • When the new technology or framework enables your company to more easily find experienced developers. For example, if your company is currently mostly a Fortan shop, and you need to grow quickly, you may consider switching to .NET or Java simply to be able to find more new developers for your projects.
share|improve this answer

The other answers give good technical reasons why you should switch. But the reason I would consider primary is when a new framework would allow you to work at a company you want to work for. If you are working in Technology X and all of the good employers are switching to Technology Y then you might want to consider switching. You don't want to end up in the situation where you are only employable by your current employer, or else they own you.

share|improve this answer
Downvoter care to comment? –  RationalGeek Jul 28 '11 at 12:17

Not the answer you're looking for? Browse other questions tagged or ask your own question.