My goal with this blog is to learn ASP.NET, in particular the MVC framework. I just want to build stuff, dang it! This is a pretty lofty goal though, and looking at the technologies involved, it’s easy to feel overwhelmed.
The Languages and Technologies Involved
There are three main parts to the web application that roughly correspond to the MVC (Model, View, Controller) framework.
Most web apps are, at their core, a matter of storing and retrieving data from some storage location and displaying them to a user. So we have to think about how to store and retrieve data, how to show that stuff to the end user, and what kind of programming languages are involved in coordinating the exchange.
Not all of the logic is outside of the View, though: the Razor Syntax is used to add programming logic to Views.
The Data: Entity Framework, LINQ
For storing and retrieving data (The “Model”), the Entity Framework (EF) is what Microsoft recommends. EF is used in most of the tutorials I’ve seen, and lets you create and work with databases using models that we write. There’s a lot more to it than that, but I’m a novice myself.
For the retrieval of data, EF uses part of the .NET Framework called LINQ to “Query” a data source, such as a database that EF creates.
Also, in many web apps today, the data you need for your app is stored on some other web site or service. If you want to make an app to compare product prices, for example, you need data from a bunch of different vendors. You’ll use programming logic (with a language like C#) to access that data through APIs that those vendors make available.
An API is a feature someone else writes that allows you to access specific parts of their database, while keeping the other parts protected. It’s like getting a pass to attend a music show, but not being allowed backstage. Best Buy has a Products API for this purpose.
The Logic: ASP.NET, C#, Razor
The programming logic (roughly, the “Controllers”) involves ASP.NET, and a .NET programming language such as C#. Also, as previously mentioned, Razor is used to add programming logic — C# code — to Views.
That’s a Lot to Learn… But We Can Break It Down
This isn’t an exhaustive list, but I’ve already recounted so many different languages or frameworks that it’s easy to get demoralized. However, I just need to break it down into smaller steps.
I have an Associate’s Degree in CS, and have a fair understanding of C#, HTML and CSS so I’m not starting from scratch. However, my expertise is about as good as my Spanish even though I took three years of it in College: I know when you’re speaking Spanish, I can pick up half of what you’re saying, enough to look up the rest, but I can barely speak a sentence on my own.
Clearly, I’ve got work to do.
But What to Learn First?
My wish is to follow tutorials, and then delve into programming concepts as needed to make deeper sense of what’s happening. However, I might just brush up on Object-Oriented Programming Principles in C# first before I even get into ASP.NET so that I make sure I’m not becoming too dependent on one way of learning things.
It’s hard to resist the urge to jump right in and make something for the web, but if I ever want to be a .NET / C# Developer, I’m going to need to learn these deeper principles anyway, so I want to make sure I get a nice foundation laid.