.NET FRAMEWORK/.NET CORE

ibrojava

New member
Joined
Aug 9, 2021
Messages
2
Programming Experience
3-5
Where is the best starting point to learn .NET Framework and when is it okay to transition to .Net Core.
Also, what is the difference between ASP.Net and Asp.Net MVC
 
It sounds like your primary focus is web technologies. In that case, jump straight into .NET Core otherwise you'll be disappointed by the stuff that used to be in .NET Framework that you lose in .NET Core and you'll have to re-invent yourself. (ex. web.config settings, ability to update binaries while web app is running, ability to encrypt secrets in the configuration file, etc.)

ASP.NET is the core technology that provides the ability to process web requests. I think that your question is really about what is the difference between ASP.NET WebForms and ASP.NET MVC. The short answer there is that WebForms was written for Windows developers transitioning into writing web applications -- idea was to hide the stateless nature of HTTP and make it seem stateful like on the desktop, as well as, encapsulate HTML controls and make them act like Windows controls. Unfortunately, the abstraction quickly breaks down and the developer ends up needing to learn about the page lifecycle and how ASP.NET WebForms tries to deliver the stateless abstraction. Additionallly, ASP.NET WebForms tends to work best for the pre-Web 2.0, pre-AJAX style web sites where there's a page reload for every action. ASP.NET MVC doesn't do any of that abstraction -- it exposes the developer straight on to the stateless nature of HTTP and encourages the developer to use the Model-View-Controller design pattern to deal with it. It was introduced at the height of everybody extolling Ruby-on-Rails and its use of the MVC design pattern to make things easier for developers to design and test their code.
 
It sounds like your primary focus is web technologies. In that case, jump straight into .NET Core otherwise you'll be disappointed by the stuff that used to be in .NET Framework that you lose in .NET Core and you'll have to re-invent yourself. (ex. web.config settings, ability to update binaries while web app is running, ability to encrypt secrets in the configuration file, etc.)

ASP.NET is the core technology that provides the ability to process web requests. I think that your question is really about what is the difference between ASP.NET WebForms and ASP.NET MVC. The short answer there is that WebForms was written for Windows developers transitioning into writing web applications -- idea was to hide the stateless nature of HTTP and make it seem stateful like on the desktop, as well as, encapsulate HTML controls and make them act like Windows controls. Unfortunately, the abstraction quickly breaks down and the developer ends up needing to learn about the page lifecycle and how ASP.NET WebForms tries to deliver the stateless abstraction. Additionallly, ASP.NET WebForms tends to work best for the pre-Web 2.0, pre-AJAX style web sites where there's a page reload for every action. ASP.NET MVC doesn't do any of that abstraction -- it exposes the developer straight on to the stateless nature of HTTP and encourages the developer to use the Model-View-Controller design pattern to deal with it. It was introduced at the height of everybody extolling Ruby-on-Rails and its use of the MVC design pattern to make things easier for developers to design and test their code.
Thank you so much for your swift response. Could you please point me to a nice ASP.NET (Core) site link and good material and also good book for Object Oriented programming for C# Developers.
 
I don't have any recommendations for either, sorry. Hopefully the other forum members here will have some suggestions.

For learning ASP.NET Core, the Microsoft MSDN site is a great source of information for how to use ASP.NET Core. It contains all the information you'd ever need. The trouble is that it's not exactly the best teaching resource even with its "Getting Started" sections and walkthroughs. You'll need to really dig in and follow various related links and pages to really get the in-depth knowledge needed -- think rabbit holing through Wikipedia. Hopefully someone can recommend a book or tutorial site that introduces the material in a much better format.

I like the "Effective C#" series of books, but that's for honing your C# skills. It won't necessarily help you with object oriented programming like the "Effective C++" series of books does. Early C++ programmers used C++ as "C with classes" and therefore needed a lot of coaching in object oriented programming.

Some people swear by the Head First books series. There is "Head First Object Oriented Analysis and Design", but as I recall it's primary language is Java, not C#. The concepts taught should translate across any language as long as you are focused understanding the concepts and just using the language used as an example. Personally, in my job where I have to developers who say "It works fine on my dev box; why doesn't it work hosted on your QA and Production machines?" and they don't have enough telemetry or logging in built into their code to determine what is happening, I sometime disassemble their code because they also are unwilling to share the source code with me. I often end up cringing at the code they've written and the way they designed things. When I ask them where or how they learned object oriented programming, they often say "Head First". So it's not exactly a great endorsement of the book if the proof of the pie is in the pudding. On the other hand, these same developers also don't seem to know the basics of networking, the HTTP protocol, or how the .NET Framework works, so it may be an issue with the developers rather than the book.
 
Back
Top Bottom