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
Key Topics
-
Introduction to .NET Framework
LA-01Overview of the .NET framework and its importance in modern computing. Understanding the architecture and components of .NET framework.
-
Compilation and Execution of .NET Applications
LA-02Understanding the compilation and execution process of .NET applications, including the role of CLR and JIT compiler.
-
Basic Language Constructs
LA-03Introduction to basic language constructs in C#, including variables, data types, operators, control structures, and functions.
-
Constructors and Properties
LA-04Understanding constructors and properties in C#, including their syntax, uses, and best practices.
-
Arrays and Strings
LA-05Working with arrays and strings in C#, including array operations, string manipulation, and formatting.
-
Indexers
LA-06Understanding indexers in C#, including their syntax, uses, and benefits in creating flexible data structures.
-
Inheritance and Polymorphism
LA-07Understanding inheritance and polymorphism in C#, including method overriding, method hiding, and applying polymorphism in code extensibility.
-
Structs and Enums
LA-08Understanding structs and enums in C#, including their syntax, uses, and benefits in creating custom data types.
-
Abstract and Sealed Classes
LA-09Understanding abstract and sealed classes in C#, including their syntax, uses, and benefits in creating flexible and reusable code.
-
Interfaces and Delegates
LA-10Understanding interfaces and delegates in C#, including their syntax, uses, and benefits in creating flexible and reusable code.
-
Events and Partial Classes
LA-11Understanding events and partial classes in C#, including their syntax, uses, and benefits in creating flexible and reusable code.
-
Collections and Generics
LA-12Understanding collections and generics in C#, including their syntax, uses, and benefits in creating flexible and reusable code.
-
File IO and LINQ Fundamentals
LA-13Understanding file input/output operations and LINQ fundamentals in C#, including lambda expressions and query syntax.
-
Try Statements and Exceptions
LA-14Understanding try statements and exceptions in C#, including their syntax, uses, and benefits in creating robust and error-free code.
-
Attributes and Reflection
LA-15Understanding attributes and reflection in C#, including their syntax, uses, and benefits in creating flexible and reusable code.
-
Asynchronous Programming
LA-16Understanding asynchronous programming in C#, including the principle of asynchrony, async/await patterns, and best practices.
Key Topics
-
.NET and ASP.NET Frameworks
IN-001Overview of .NET and ASP.NET frameworks including .NET, .NET Core, Mono, ASP.NET Web Forms, ASP.NET MVC, ASP.NET Web API, and ASP.NET Core.
-
.NET Architecture and Design Principles
IN-002Fundamentals of .NET architecture and design principles that guide the development of .NET applications.
-
Compilation and Execution of .NET Applications
IN-003How .NET applications are compiled and executed, including the roles of CLI, MSIL, and CLR.
-
.NET Core in Detail
IN-004In-depth exploration of .NET Core, including its features, benefits, and use cases.
-
.NET CLI
IN-005Using .NET CLI to build, run, test, and deploy .NET Core applications, including its commands and options.
Key Topics
-
HTTP
HT-1Introduction to HTTP (Hypertext Transfer Protocol) and its role in web communication.
-
Request and Response Message Format
HT-2Understanding the structure and components of HTTP request and response messages.
-
Common Web Application Architectures
HT-3Overview of popular web application architectures and their characteristics.
-
MVC Pattern
HT-4Introduction to the Model-View-Controller (MVC) pattern and its application in web development.
-
ASP.NET Core Architecture Overview
HT-5Overview of the ASP.NET Core framework architecture and its components.
-
ASP.NET Core Projects and Conventions
HT-6Understanding ASP.NET Core project structure and conventions for building web applications.
-
ASP.NET and ASP.NET MVC
HT-7Comparison and contrast of ASP.NET and ASP.NET MVC frameworks, including their features and use cases.
Key Topics
-
Setting up the Environment
CR-1This topic covers the process of setting up the development environment for creating ASP.NET Core MVC applications. It includes installing the necessary tools and configuring the project structure.
-
Controllers and Actions
CR-2This topic explains how to create controllers and actions in ASP.NET Core MVC applications, including the different types of action results. It covers the role of controllers in handling HTTP requests and returning responses.
-
Rendering HTML with Views
CR-3This topic introduces Razor syntax and its use in rendering HTML views in ASP.NET Core MVC applications. It covers the basics of Razor syntax and how to use it to create dynamic web pages.
-
Understanding Tag Helpers
CR-4This topic explains the concept of tag helpers in ASP.NET Core MVC and how they can be used to create custom HTML tags. It covers the benefits and use cases of tag helpers in web development.
-
Models: Binding and Validations
CR-5This topic covers the process of binding data to models in ASP.NET Core MVC applications and how to perform validations on user input. It explains the importance of data binding and validation in web development.
-
URL Routing and Features
CR-6This topic explains the concept of URL routing in ASP.NET Core MVC and how it enables the creation of SEO-friendly URLs. It covers the different features of URL routing and how to configure routes in an application.
-
Web API Applications
CR-7This topic introduces the concept of Web API applications in ASP.NET Core and how they can be used to create RESTful APIs. It covers the basics of API controllers and how to return JSON data.
-
Dependency Injection and IOC Containers
CR-8This topic explains the concept of dependency injection and IOC containers in ASP.NET Core. It covers the benefits of using dependency injection and how to implement it in an application.
Key Topics
-
ADO.NET Basics
WO-01Introduction to ADO.NET fundamentals, including Connection, Command, Reader, and Adapter classes.
-
Entity Framework (EF) Core
WO-02Overview of Entity Framework Core, an Object-Relational Mapper (ORM) for .NET applications.
-
Adding EF Core to an Application
WO-03Steps to integrate Entity Framework Core into a .NET application, including choosing a database provider, defining data models, and creating a data context.
-
Querying and Saving Data to Database
WO-04CRUD (Create, Read, Update, Delete) operations using Entity Framework Core, including querying and saving data to a database.
Key Topics
-
State Management on Stateless HTTP
ST-1Understanding state management in stateless HTTP protocol and its implications on ASP.NET Core application development.
-
Server-side Strategies
ST-2Exploring server-side strategies for state management in ASP.NET Core applications, including Session State, TempData, and Using HttpContext.
-
Session State
ST-3Using Session State to store and manage user data in ASP.NET Core applications.
-
TempData
ST-4Using TempData to store and manage temporary data in ASP.NET Core applications.
-
Using HttpContext
ST-5Using HttpContext to access and manage HTTP request and response data in ASP.NET Core applications.
-
Cache
ST-6Using Cache to store and manage frequently accessed data in ASP.NET Core applications.
-
Client-side Strategies
ST-7Exploring client-side strategies for state management in ASP.NET Core applications, including Cookies, Query Strings, and Hidden Fields.
-
Cookies
ST-8Using Cookies to store and manage user data on the client-side in ASP.NET Core applications.
-
Query Strings
ST-9Using Query Strings to pass data between pages and manage state in ASP.NET Core applications.
-
Hidden Fields
ST-10Using Hidden Fields to store and manage data on the client-side in ASP.NET Core applications.
Key Topics
-
Common Client-side Web Technologies
CL-1This topic covers the fundamental technologies used on the client-side of web development, including HTML, CSS, and JavaScript.
-
JQuery
CL-2This topic explores the use of JQuery, a popular JavaScript library, for client-side scripting and DOM manipulation.
-
Forms and Validation
CL-3This topic discusses the importance of form validation and how to implement it using ASP.NET Core, including client-side and server-side validation techniques.
-
Single Page Application (SPA) Frameworks
CL-4This topic introduces Single Page Application (SPA) frameworks, including Angular and React, and their role in building dynamic and interactive client-side applications.
Key Topics
-
Authentication in ASP.NET Core
SE-01Learn how to implement authentication in ASP.NET Core applications using ASP.NET Core Identity and configure identity services.
-
Authorization in ASP.NET Core
SE-02Understand how to implement authorization in ASP.NET Core applications using roles, claims, and policies to secure access to resources.
-
Securing Controllers and Action Methods
SE-03Discover how to secure controllers and action methods in ASP.NET Core applications to prevent unauthorized access.
-
Cross-site Scripting (XSS) Attacks
SE-04Learn how to prevent cross-site scripting (XSS) attacks in ASP.NET Core applications by validating user input and encoding output.
-
SQL Injection Attacks
SE-05Understand how to prevent SQL injection attacks in ASP.NET Core applications by using parameterized queries and input validation.
-
Cross-site Request Forgery (CSRF) Attacks
SE-06Learn how to prevent cross-site request forgery (CSRF) attacks in ASP.NET Core applications by using anti-forgery tokens and validating requests.
-
Open Redirect Attacks
SE-07Discover how to prevent open redirect attacks in ASP.NET Core applications by validating redirects and using secure protocols.
Key Topics
-
App Servers
HO-1Overview of application servers including IIS, Nginx, and Apache. Understanding the role of app servers in hosting ASP.NET Core applications.
-
Hosting Models
HO-2Exploring different hosting models for ASP.NET Core applications, including in-process and out-of-process hosting.
-
ASP.NET Core Module
HO-3Understanding the ASP.NET Core Module and its role in hosting ASP.NET Core applications on IIS.
-
Kestrel
HO-4Introduction to Kestrel, a cross-platform web server for hosting ASP.NET Core applications.
-
Docker and Containerization
HO-5Understanding Docker and containerization, and how they can be used to host and deploy ASP.NET Core applications.
-
Publishing to Azure Cloud
HO-6Deploying ASP.NET Core applications to Azure cloud, including publishing and configuration options.
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)