Three months ago I started a new semester of my graduation course. For now I would focus on C# , .NET framework and ASP.NET technology. It was all new to me, especially Visual Studio 2019 IDE. I didn't even know what it could be used for.
On my first class I was showed different technologies that compose the .NET Framework, such as .Net Core, .Net Standard Library, and .Net 5. It is also important to mention that all of these resources are intelectual property of Microsoft.
What caught my attention was how compiled languages are transformed into machine code that is understood by the operating system and then controls hardware resources. Unlike directly compiled languages, C# is transformed into an intermediate language called Common Intermediate Language then translated by the Common Language Runtime. This code gets transformed into machine code by the Just in Time Compiler when the application is executed. So the code we write is compiled twice before our computer gets to read it.
What did I learn?
I have never been good at answering this type of questioning. It seems like the more I see the less I assume I know. Nonetheless I do feel glad I got to see classes and OOP again.
Classes Libraries are basicly where you get your application rules from and it can be referred to multiple projects in your main solution. Since the addition of .Net Core, In a manner of speaking, .Net Standard is knot that ties all classes libraries as they are a merge of portable libraries and platform-specific. So, they are a set of library contracts on different platforms.
By using .Net you can develop applications for different OS - Windows, macOS, Linux, iOS, Android - for many purposes. As they are diverse, it is easier to check their implementation versions here.
Web applications were simple to start up by using Asp.NET Core MVC templates. It is possible to add Views and
Controllers with a few clicks and everything working on a development server. Working on a Razor page was a bit different but also simple to use. Now controllers are where you'll spend most of your time. Its also nice to understand basic concepts of HTTP Protocol. The Entity Framework also offers a very easy way to deal with databases through objects (ORM) and gets all the access code to you. There are many benefits of using ASP.NET Core framework and they can be found here.
Microsoft has some patterns for domain model structure. I like aggragating Models and it is ideal when designing microservices. I started paying a lot of attention to patterns principles when it comes to application organization. I would suggest practicing some kind of structure even for small projects so its easier when you get to see complex ones. Microsoft's architecture guide has a lot more to offer when it comes to concepts and principles.
When it comes to writting code, Visual Studio makes it pretty easy to add props. As a matter of fact, Microsoft's IDE is beyond amazing to work with. At first it is a bit overwhelming to get used to all resources available.
Actually, sometimes you can even feel too spoiled to do things the hard way like adding dependencies on the command line. You can expect some weird bugs too but it is understandable when you got a software doing some heavy work fot you.
Anyway, these were the first three months of introduction. I'm hopping for more especially when it comes to modeling services.