When deciding on which technology to use, Microsoft recommends considering your specific needs. While ASP.NET provides a range of robust controls and delivers quick results, it comes with limitations in controlling the markup. This can lead to additional code and may not fully align with the ASP.NET framework, as pointed out by other users.
In contrast, MVC offers a more customizable approach with a narrower selection of pre-built controls, requiring more manual coding, including client-side JavaScript. However, this hands-on approach gives you greater control over the markup of your controls and promotes a clean separation of concerns in your project, which can benefit testing and maintenance processes.
One important factor often overlooked is the ASP.NET Lifecycle, where a page undergoes series of events in a specific order each time the client interacts with the server. This process can be complex and confusing, especially in large web applications. This challenge is avoided in MVC, making it a more straightforward option for developers.
Before diving into coding, it is advisable to familiarize yourself with the ASP.NET architecture. This link provides a basic introduction: http://www.asp.net/learn/videos/video-6558.aspx
Personally, I started with WebForms before transitioning to MVC, influenced by my experience with the MVVM pattern in Silverlight and WPF during my bachelor thesis. This shift helped me grasp the advantages and concepts of MVC more effectively. While transitioning from WebForms to MVC may pose some challenges, the benefits make it a worthwhile choice.