Step-by-Step Learning Plan for C#.NET and ASP.NET MVC Framework


Are you planning to learn C# & ASP.NET MVC?

Don’t know how and where to start.

In this post, I’ll be sharing with you the ways to learn C# & ASP.NET MVC step-by-step.

My primary goal for writing this blog post is to give you a big picture that will guide you to learn C# and MVC properly.

John Sonmez in his book Soft Skills says “Learning is always tricky because when you first start to learn about something, you don’t know enough about it to understand what you need to learn really. Most developers crack open a book and start reading through it without even knowing what they don’t know. The problem with this approach is that you’re very likely to learn the wrong things or get in way over your head. It’s important to at least understand a little bit about a subject before diving into it. Then you can figure out exactly what you need to learn and decide the best way to do it.”

This blog post gives you a 50,000-foot view of what topics you need to learn in C# and MVC.

Step-by-step Learning Plan for C#

  1. Install Visual Studio Community or Professional edition.
  2. Learn the Basics of Visual Studio.
  3. Install SQL Server 2014 or 2016 Express/Developer edition. I have seen many students/newbies and professional developer who don’t know how to install SQL Server correctly. Please learn it.
  4. Learn basic Select, Update and Delete SQL Statements.
  5. Understanding what is C# and NET Framework.
  6. Understanding the components of .NET frameworks like CLR, CTS, and CLS.
  7. Understanding the purpose of the Main method in a Console application.
  8. Playing with System.Console class, and it’s methods.
  9. Understanding Data types and their purpose.
  10. Understanding C# keywords and identifiers.
  11. Understanding decision making using If-else, switch and looping using for, while, do..while and foreach loop.
  12. Understanding how to create methods and use parameter modifiers: out, ref, params, optional and named argument.
  13. Understanding Arrays in C#, Array initialization syntax, Arrays as parameters and arguments or return values of a method.
  14. Understanding enums and System.Enum type.
  15. Understanding struct and class.
  16. Understanding value types and reference types.
  17. Understanding pass by value and pass by reference.
  18. Understanding null, nullable types and the use of ?? operator.
  19. Understanding a class, object, and new keyword.
  20. Understanding constructors, this keyword, static keyword and access modifiers.
  21. Understanding encapsulation using properties (backing field) and auto-implemented properties.
  22. Understanding read-only fields and const fields.
  23. Understanding sealed and partial classes.
  24. Understanding Inheritance: base keyword, sealed classes and using access modifiers.
  25. Understanding polymorphism: compile time and runtime polymorphism using overloading and overriding with virtual and override keywords.
  26. Understanding System.Object, ToString() and other methods.
  27. Understanding Interfaces: Interface types vs. abstract base classes.
  28. Understanding how to obtain interface reference and using as and is keywords for checking and type casting purposes.
  29. Implicit and explicit implementations of interfaces.
  30. Understanding IEnumerable and IEnumerator interface and the use of foreach and in keywords.
  31. Understanding how to iterator over IEnumerable<T> using yield keyword.
  32. Understanding ICloneable and IComparable interfaces.
  33. Understanding Exception Handling: try..catch block, System.Exception base class, Important properties of the Exception class, System.SystemException, System.ApplicationException.
  34. Understanding Collections and Generics.
  35. Understanding Delegates and Lambda expressions, Generic Delegates, Anonymous Methods.
  36. Understanding operator overloading.
  37. Understanding Indexers.
  38. Understanding Extension methods and Anonymous types.
  39. Understanding LINQ.
  40. Understanding Garbage Collection, System.GC type, IDisposable interface and Dispose method.
  41. Understanding multi-threading, async and await keywords.
  42. Understanding File I/O and object serialization.

Note: I would recommend getting this book “C# 5.0 in a Nutshell Definitive Reference”.

Step-by-step Learning Plan for ASP.NET MVC

  1. Install Visual Studio Community or Professional edition.
  2. Learn the Basics of Visual Studio.
  3. Install SQL Server 2014 or 2016 Express/Developer edition. I have seen many students/newbies, and the professional developer doesn’t know how to install SQL Server correctly. Please learn it.
  4. Learn basic Select, Update and Delete SQL Statements.
  5. Learn about Nuget. Nuget is a package management system for installing Dependencies and third party libraries.
  6. Understanding what is MVC Design pattern before learning ASP.NET MVC.
  7. Knowing about MVC version history.
  8. Understanding ASP.NET MVC projects and templates.
  9. Understanding ASP.NET MVC application folder structure.
  10. Understanding what is Model, Controller, and View.
  11. Understanding Convention over configuration.
  12. Understanding how data is passed from controller to a view using ViewData, ViewBag, and TempData.
  13. Understanding what is a ViewModel.
  14. Understanding the Routing system, Routes, and HTTP basics.
  15. Understanding Action Methods and Types of Result Types.
  16. Understanding Razor View Engine and Razor Syntax.
  17. Understanding the use @model and @Model in razor view files.
  18. Understanding the use of HTML and URL helper methods.
  19. Understanding how to pass data from View to Controller Action methods using FormCollection, Request object, QueryString, Session object and Model Binders.
  20. Understanding Model Binding. The most important topic that every developer must understand.
  21. Model binding with Include and Exclude properties.
  22. Playing around with scaffolding feature in MVC. It creates views, controllers, and context (EF DbContext for data access) by looking at our model class.
  23. Understanding Model Validation using Data Annotations.
  24. Using jQuery, jQuery validate and jQuery validate Unobtrusive for client-side validation using Data Annotations.
  25. Understanding how to show validation error messages in the view using Validation Html Helper methods.
  26. Understanding what is an ORM, concepts of ORM and what is Entity Framework.
  27. Understanding the difference between ADO.NET and ADO.NET Entity Framework.
  28. Understanding different approaches of Entity Framework and their uses in a project.
  29. Understanding how data comes into a model class object and Entity framework uses this model object to persist data in the database i.e. to SQL Server database tables.
  30. Using MVC and Entity Framework to create a CRUD application.
  31. Understanding the use of Action Verbs when working with Action methods i.e. HttpGet and HttpPost.
  32. Understanding how to create Create, Edit, Delete and Details view files using Razor syntax with Model classes i.e. creating Strongly-typed views.
  33. Understanding how to use ModelState.IsValid and ModelState.AddModelError.
  34. Understanding how to pass data from View to a Controller Action method via a view model, and then transferring the ViewModel object data to the model object and the passing the model object instance to EF DbContext DbSet.Add() method for persisting the data in the database (Using ViewModel + model + EF for Create and Edit Action methods and Views)
  35. Understanding the DbContext class, DbSet properties and the DbContext() ctor to configure database connection and EntityState Enum.
  36. Understanding Required and Important data annotations to use with Entity Framework Code-First (DataType, Display, Required, NotMapped and others)
  37. Understanding how to use UpdateMode and TryUpdateModel.
  38. Understanding Layouts, Sections, Layout property and _ViewStart file.
  39. Understanding how to render DropDownLists, CheckBox, Radio button from database.
  40. Understanding how to use Display and Editor templates using UIHint.
  41. Understanding how to create custom Html Helper methods in MVC using extension methods.
  42. Understanding how to build Partial View and rendering them.
  43. Understanding Repository pattern, Generic Repository Pattern, and Unit of work pattern.
  44. Understanding how to implement search, paging, sorting in MVC using Entity Framework.
  45. Understanding how to render a Grid in MVC using Entity Framework.
  46. Understanding CRSF attack and using AntiForgery tokens for security purposes.
  47. Understanding what are Action Filters.
  48. Understanding Caching in MVC.
  49. Understanding the use of Areas in an MVC application.
  50. Understanding the use of Ajax helpers in MVC application.
  51. Understanding how to do logging in MVC application using Action Filters or NLog attributes.
  52. Performance improvements: Understanding the use of Bundling and Minification.

Note: I would recommend getting this book “Professional ASP.NET MVC 5”.

Please post your comments below.

Take Care!

Peace

Abhishek Luv


About author


.NET Trainer & Instructor

Abhishek Luv is a skilled .NET and ASP.NET Trainer with more than 11 years of teaching experience, specializing in C#, ASP.NET Core MVC, Entity Framework Core, Visual Studio, LINQ, Repository and Unit of work pattern, ASP.NET Core Web API, Git and Github, Angular, and more. He has trained students worldwide and is passionate about helping them achieve success in the field.

Abhishek holds a Bachelor's degree in Computer Applications and completed a Computer Hardware course in 2004. Since his school days, Abhishek has had a keen interest in computers and enjoys playing retro games like Super Mario Bros and Contra in his free time. He is also interested in networking, ethical hacking, and bug bounty hunting, and keeps himself up-to-date with the latest developments in these areas.

Recent Blog Posts




Reading Corner Updated for 2018

by Abhishek Luv, Friday, May 25, 2018 at 10:53 PM

Read more

Online Training Feedback #5

by Abhishek Luv, Friday, May 25, 2018 at 10:43 PM

Read more