NET Centric Computing - Syllabus

Embark on a profound academic exploration as you delve into the NET Centric Computing course () within the distinguished Tribhuvan university's CSIT department. Aligned with the 2074 Syllabus, this course (CSC367) seamlessly merges theoretical frameworks with practical sessions, ensuring a comprehensive understanding of the subject. Rigorous assessment based on a 60 + 20 + 20 marks system, coupled with a challenging passing threshold of , propels students to strive for excellence, fostering a deeper grasp of the course content.

This 3 credit-hour journey unfolds as a holistic learning experience, bridging theory and application. Beyond theoretical comprehension, students actively engage in practical sessions, acquiring valuable skills for real-world scenarios. Immerse yourself in this well-structured course, where each element, from the course description to interactive sessions, is meticulously crafted to shape a well-rounded and insightful academic experience.


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.

Units

Language Preliminaries

Introduction to .Net framework, Compilation and execution of .Net applications, Basic Languages constructs, Constructor, Properties, Arrays and String, Indexers, Inheritance, use of “base” keyword, Method hiding and overriding, applying polymorphism in code extensibility, structs and enums, abstract class sealed class, interface, Delegate and Events, Partial class, Collections, Generics, File IO, LINQ (Language Integrated Query) Fundamentals: Lambda Expressions, Try statements and Exceptions, Attributes: Attribute Classes, Named and Positional Attribute Parameters, Attribute Targets, Specifying Multiple Attributes, Asynchronous Programming: Principle of Asynchrony, Async/Await patterns in C#


Introduction to ASP.NET

.NET and ASP.NET frameworks: .NET, .NET Core, Mono, ASP.NET Web Forms, ASP.NET MVC, ASP.NET Web API, ASP.NET Core, .NET 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 and ASP.NET Core

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


Creating ASP.NET core MVC applications

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 Validations, URL Routing and features, Web API Applications: API Controllers, JSON, Dependency Injection and IOC containers


Working with Database

ADO.NET basics: Connection, Command, Reader and Adapter classes, Entity Framework (EF) Core, Object-Relational Mapper (ORM), Adding EF Core 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 ASP.NET Core Application

State Management on stateless HTTP, Server-side strategies: Session State, TempData, Using HttpContext, Cache Client-side strategies: Cookies, Query Strings, Hidden Fields


Client-side Development in ASP.NET Core

Common client-side web technologies, JQuery, Forms and Validation, Single Page Application (SPA) Frameworks: Angular, React


Securing in ASP.NET Core Application

Authentication: ASP.NET Core Identity, Adding authentication to apps and identity service configurations, Authorization: Roles, Claims and Policies, Securing Controllers and Action Methods, Common Vulnerabilities: Cross-site Scripting attacks, SQL Injection attacks, Cross-site Request Forgery (CSRF), Open Redirect Attacks


Hosting and Deploying ASP.NET Core Application

App Servers and Hosting models: IIS, Nginx, Apache, ASP.NET Core Module, Kestrel, Docker and Containerization, Publish to Azure cloud


Lab works

Laboratory works:

The laboratory work includes writing programs covering most of the concepts of above units using C# and .NET core SDK (3.0 or above)