About This Unit

This skill-track is an introduction to back-end C# development.

Synopsis

The C# track covers the essentials of object-oriented C# development, along with portions of the ASP.NET MVC framework.

C# is one of the more prominent object-oriented languages, and is widely used by professional programmers. You learned a bit about classes and objects as we completed Unit 1, but we'll dive much deeper this time. In addition to creating classes to serve as blueprints for objects, we'll look at the many ways that class and objects can be used to create robust and flexbile programs.

After covering object-oriented concepts, we'll turn to ASP.NET MVC. The Microsoft .NET framework is a large C# framework that has several large components. We will focus primiarly on the ASP.NET MVC component, and more precisely ASP.NET MVC Core. This framework is used to build MVC web applications in C#, including all of the categories of functionality that we saw in Unit 2: templating, database integration, routing, etc.

Once you complete these classes, you will be well equipped to create a final project!

Topics

C# and Object-oriented Programming

  • Intro to C#: Characteristics of the C# langauge, and procedural C# syntax
  • Objects and Classes: Objects are the basis of everything in C#. These powerful constructs have a wide range of uses.
  • Unit Tests are an important piece of any program. We don't know if something works unless we test it!
  • Inheritance, Polymorphism and Interfaces are useful for leveraging common behaviors and functionality across your classes.
  • Exceptions are used to inform users of invalid inputs or unexpected behaviors.
    • Dependency injection is a technique that allows some of our objects to be created and managed automatically. It adds flexibility to our programs, and will be an essential part of ASP.NET.
  • More! There are a lot of nuances to C#. We'll cover a few of these in addition to what's above.

ASP.NET MVC

  • ASP.NET MVC is a component of the .NET framework that will allow us to easily create full-featured web applications.
  • Templates As in Unit 2, we'll use templates to display the views of our web apps.
  • Persistence We'll look at how to set up classes to allow easy management of classes that should be stored in a relational database.