NET Centric Computing - Syllabus

Course Overview and Structure

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-01

    Overview 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-02

    Understanding the compilation and execution process of .NET applications, including the role of CLR and JIT compiler.

  • Basic Language Constructs
    LA-03

    Introduction to basic language constructs in C#, including variables, data types, operators, control structures, and functions.

  • Constructors and Properties
    LA-04

    Understanding constructors and properties in C#, including their syntax, uses, and best practices.

  • Arrays and Strings
    LA-05

    Working with arrays and strings in C#, including array operations, string manipulation, and formatting.

  • Indexers
    LA-06

    Understanding indexers in C#, including their syntax, uses, and benefits in creating flexible data structures.

  • Inheritance and Polymorphism
    LA-07

    Understanding inheritance and polymorphism in C#, including method overriding, method hiding, and applying polymorphism in code extensibility.

  • Structs and Enums
    LA-08

    Understanding structs and enums in C#, including their syntax, uses, and benefits in creating custom data types.

  • Abstract and Sealed Classes
    LA-09

    Understanding abstract and sealed classes in C#, including their syntax, uses, and benefits in creating flexible and reusable code.

  • Interfaces and Delegates
    LA-10

    Understanding interfaces and delegates in C#, including their syntax, uses, and benefits in creating flexible and reusable code.

  • Events and Partial Classes
    LA-11

    Understanding events and partial classes in C#, including their syntax, uses, and benefits in creating flexible and reusable code.

  • Collections and Generics
    LA-12

    Understanding collections and generics in C#, including their syntax, uses, and benefits in creating flexible and reusable code.

  • File IO and LINQ Fundamentals
    LA-13

    Understanding file input/output operations and LINQ fundamentals in C#, including lambda expressions and query syntax.

  • Try Statements and Exceptions
    LA-14

    Understanding try statements and exceptions in C#, including their syntax, uses, and benefits in creating robust and error-free code.

  • Attributes and Reflection
    LA-15

    Understanding attributes and reflection in C#, including their syntax, uses, and benefits in creating flexible and reusable code.

  • Asynchronous Programming
    LA-16

    Understanding asynchronous programming in C#, including the principle of asynchrony, async/await patterns, and best practices.

Key Topics

  • .NET and ASP.NET Frameworks
    IN-001

    Overview 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-002

    Fundamentals of .NET architecture and design principles that guide the development of .NET applications.

  • Compilation and Execution of .NET Applications
    IN-003

    How .NET applications are compiled and executed, including the roles of CLI, MSIL, and CLR.

  • .NET Core in Detail
    IN-004

    In-depth exploration of .NET Core, including its features, benefits, and use cases.

  • .NET CLI
    IN-005

    Using .NET CLI to build, run, test, and deploy .NET Core applications, including its commands and options.

Key Topics

  • HTTP
    HT-1

    Introduction to HTTP (Hypertext Transfer Protocol) and its role in web communication.

  • Request and Response Message Format
    HT-2

    Understanding the structure and components of HTTP request and response messages.

  • Common Web Application Architectures
    HT-3

    Overview of popular web application architectures and their characteristics.

  • MVC Pattern
    HT-4

    Introduction to the Model-View-Controller (MVC) pattern and its application in web development.

  • ASP.NET Core Architecture Overview
    HT-5

    Overview of the ASP.NET Core framework architecture and its components.

  • ASP.NET Core Projects and Conventions
    HT-6

    Understanding ASP.NET Core project structure and conventions for building web applications.

  • ASP.NET and ASP.NET MVC
    HT-7

    Comparison and contrast of ASP.NET and ASP.NET MVC frameworks, including their features and use cases.

Key Topics

  • Setting up the Environment
    CR-1

    This 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-2

    This 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-3

    This 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-4

    This 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-5

    This 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-6

    This 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-7

    This 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-8

    This 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-01

    Introduction to ADO.NET fundamentals, including Connection, Command, Reader, and Adapter classes.

  • Entity Framework (EF) Core
    WO-02

    Overview of Entity Framework Core, an Object-Relational Mapper (ORM) for .NET applications.

  • Adding EF Core to an Application
    WO-03

    Steps 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-04

    CRUD (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-1

    Understanding state management in stateless HTTP protocol and its implications on ASP.NET Core application development.

  • Server-side Strategies
    ST-2

    Exploring server-side strategies for state management in ASP.NET Core applications, including Session State, TempData, and Using HttpContext.

  • Session State
    ST-3

    Using Session State to store and manage user data in ASP.NET Core applications.

  • TempData
    ST-4

    Using TempData to store and manage temporary data in ASP.NET Core applications.

  • Using HttpContext
    ST-5

    Using HttpContext to access and manage HTTP request and response data in ASP.NET Core applications.

  • Cache
    ST-6

    Using Cache to store and manage frequently accessed data in ASP.NET Core applications.

  • Client-side Strategies
    ST-7

    Exploring client-side strategies for state management in ASP.NET Core applications, including Cookies, Query Strings, and Hidden Fields.

  • Cookies
    ST-8

    Using Cookies to store and manage user data on the client-side in ASP.NET Core applications.

  • Query Strings
    ST-9

    Using Query Strings to pass data between pages and manage state in ASP.NET Core applications.

  • Hidden Fields
    ST-10

    Using Hidden Fields to store and manage data on the client-side in ASP.NET Core applications.

Key Topics

  • Common Client-side Web Technologies
    CL-1

    This topic covers the fundamental technologies used on the client-side of web development, including HTML, CSS, and JavaScript.

  • JQuery
    CL-2

    This topic explores the use of JQuery, a popular JavaScript library, for client-side scripting and DOM manipulation.

  • Forms and Validation
    CL-3

    This 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-4

    This 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-01

    Learn how to implement authentication in ASP.NET Core applications using ASP.NET Core Identity and configure identity services.

  • Authorization in ASP.NET Core
    SE-02

    Understand 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-03

    Discover how to secure controllers and action methods in ASP.NET Core applications to prevent unauthorized access.

  • Cross-site Scripting (XSS) Attacks
    SE-04

    Learn how to prevent cross-site scripting (XSS) attacks in ASP.NET Core applications by validating user input and encoding output.

  • SQL Injection Attacks
    SE-05

    Understand 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-06

    Learn 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-07

    Discover how to prevent open redirect attacks in ASP.NET Core applications by validating redirects and using secure protocols.

Key Topics

  • App Servers
    HO-1

    Overview of application servers including IIS, Nginx, and Apache. Understanding the role of app servers in hosting ASP.NET Core applications.

  • Hosting Models
    HO-2

    Exploring different hosting models for ASP.NET Core applications, including in-process and out-of-process hosting.

  • ASP.NET Core Module
    HO-3

    Understanding the ASP.NET Core Module and its role in hosting ASP.NET Core applications on IIS.

  • Kestrel
    HO-4

    Introduction to Kestrel, a cross-platform web server for hosting ASP.NET Core applications.

  • Docker and Containerization
    HO-5

    Understanding Docker and containerization, and how they can be used to host and deploy ASP.NET Core applications.

  • Publishing to Azure Cloud
    HO-6

    Deploying 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)