Course Description
The course covers the concepts of cross-platform web application development using the ASP.NET Core MVC framework using C# programming Language.
Course Objectives
The objective of this course is to understand the theoretical foundation as well as its practical aspects of ASP.NET Core web application framework and C# language features.
Course Contents
Overview of .Net framework, Compilation and execution of .Net applications, Constructor, Properties, Arrays and String, Indexers, Inheritance, use of "base" keyword, Method hiding and overriding, applying polymorphism, Abstract methods and classes, sealed classes and methods, Partial methods and Partial class, Collections, Generics, File IO, Try statements and Exceptions, Attributes, Attribute Classes, Named and Positional Attribute Parameters, Attribute Targets, Specifying Multiple Attributes
.NET and ASP.NET framework: .NET, .NET Core, Mono, ASP.NET Web Forms, ASP.NET MVC, ASP.NET Web Pages, ASP.NET Core; Basic web architecture and Design Principles: Compilation and Execution of .NET applications: CLI, MSIL and CLR, .NET Core in detail, .NET CLI build, run, test and deploy .NET Core Applications
HTTP, Request and Response Message Format, Common web application architectures, MVC Pattern, ASP.NET Core Architecture Overview, Projects, and Conventions, ASP.NET and ASP.NET MVC
Setting up the Environment, Controllers and Actions: Create Controllers, Create Actions and Action Results, Types, Rendering HTML with Views: Razor Syntax, Understanding Tag Helpers, Models: Binding and Validation, URL Routing and features, Web API Application: API Controllers, JSON, Dependency Injection and IOC containers
ADO.NET basics: Connection, Command, Reader and Adapter classes, Entity Framework (EF) Core, Code-first & Database-first; Configuring a context to an application, Choosing database provider, data models and data context, Querying and Saving data to database. Create, read, update and delete records
State Management on stateless HTTP, Server-side strategies: Session State, TempData, Using HttpContext, Cache Client-side strategies: Cookies, Query Strings, Hidden Fields
Common client-side web technologies: JQuery, Forms and Validation, Single Page Application (SPA)
Creating Forms in React, Making REST API Calls from React to ASP.NET Core for integration
Authentication: ASP.NET Core Identity, Adding authentication to apps and identity service configuration, Authorization Roles, Claims and Policies, Securing Controllers and Action Methods, Server and client-side strategies: Cookies, Query Strings, Hidden Fields Cross-Site Request Forgery (CSRF), Open Redirect Attacks
App Servers and Hosting models: IIS, Nginx, Apache, ASP.NET Core Module, Kestrel, Docker and Containerization, Publish to Azure cloud
Students will have to complete a project covering most of the features of above course using ASP.NET Core and C#.
Homework Assignments:
Homework assignments can be given according to the course covered throughout the semester
Software or tools:
Windows PC or workstation installed with Latest Visual Studio Code or Visual Studio, .NET core SDK (3.0 or above) and Database: SQL Server
References:
1. C# 8.0 and .NET Core 3.0 – Modern Cross-Platform Development, Fourth Edition, by Mark J. Price, 2019
2. ASP.NET Core in Action, by Andrew Lock, 2018
3. Learning ASP.NET Core 2.0, Michél Bruchet, Jason De Oliveira, 2017
4. Professional ASP.NET MVC 5, Jess Chadwick, Todd Snyder, Yamilsani Fukó, Jason De Oliveira, Michél Bruchet, 2019
5. ASP.NET Core 5 and React by Carl Rippon