ASP.
NET Tutorial
Last Updated : 03 Oct, 2025
[Link] is a web application framework developed by Microsoft for building dynamic websites, web
applications and web services. It runs on the .NET Framework and provides a consistent
programming model and tools for building robust web solutions. [Link] supports multiple
development approaches, including Web Forms, MVC and Web API.
[Link] use cases
1. Characteristics
Supports multiple programming languages like C# and [Link]
Provides server-side controls for building interactive user interfaces
Enables seamless data binding with databases
Offers flexible development models for modern web applications
2. Hello World Program
var builder = [Link](args);
var app = [Link]();
[Link]("/", () => "Hello world from [Link]!");
[Link]();
Output:
Hello World from [Link]!
3. Setting Up [Link] Development Environment
3.1 Install Visual Studio
Download Visual Studio from Visual Studio Downloads.
Choose Community, Professional or Enterprise edition.
During installation, select [Link] and web development workload.
3.2 Install .NET SDK
For [Link] Core, download the .NET SDK from Microsoft .NET Download.
Verify installation via terminal or command prompt:
dotnet --version
3.3 Create a New Project in Visual Studio
Open Visual Studio. Create a new project.
Choose project template:
[Link] Web Application (.NET Framework): For classic [Link] (Web Forms, MVC).
[Link] Core Web App: For [Link] Core (MVC, Razor Pages, Minimal API).
3.4. Install Required Tools (Optional)
Browser: Chrome, Edge or Firefox for testing.
Postman for API testing.
SQL Server / LocalDB if your app requires a database.
3.5. Run the Project
Press F5 or click Run in Visual Studio.
The app launches in your default browser with the development URL ([Link]
or similar).
3.6. Command-Line Setup ([Link] Core)
Open terminal. Create a project using CLI:
dotnet new webapp -n MyWebApp # [Link] Core MVC / Razor Pages
cd MyWebApp
dotnet run
Open [Link] in a browser to see your app running.
4. Architecture
[Link] follows a layered architecture that separates responsibilities for maintainability, scalability
and reusability.
[Link] Architecture
4.1 Layers
1. Presentation Layer
Manages the UI using Web Forms, Razor Pages or MVC Views
Captures user input and handles interaction with the business logic layer
2. Business Logic Layer (BLL)
Implements core application rules and validations
Handles workflows, calculations and service calls
3. Data Access Layer (DAL)
Handles CRUD operations with databases using [Link], Entity Framework or LINQ
Abstracts database details from the upper layers
4.2 Supporting Components
IIS (Internet Information Services): Hosts the application and processes HTTP requests
[Link] Runtime: Compiles pages, manages sessions and executes request processing
HTTP Handlers and Modules: Intercepts requests for pre-processing, authentication, logging
or URL rewriting
Caching: Improves performance by storing frequently used data
Session and Application State: Maintains user-specific or application-wide data
4.3 Request-Response Workflow
Request-Response Workflow
Separation of concerns ensures easy maintenance and testing
Each layer can be updated independently
Built-in caching, session management and security improve performance and reliability
5. Key Components
Web Forms: Event-driven pages similar to desktop applications.
MVC (Model-View-Controller): Separates application into three layers for better control and
testing.
Web API: Framework for building HTTP-based services for clients like browsers, mobile apps
or IoT devices.
Razor Pages: Lightweight framework for page-focused scenarios.
Server Controls: Prebuilt UI components like buttons, grids and textboxes.
6. Application Models in [Link]
6.1. Web Forms
Uses drag-and-drop design with code-behind
Suitable for rapid enterprise applications
6.2. MVC
Structured pattern using Model (data), View (UI), Controller (logic)
Improves testing and maintainability
6.3. Web API
RESTful HTTP services for SPAs, mobile apps and third-party clients
6.4. [Link] Core (Optional)
Cross-platform, modular, high-performance framework
Suitable for cloud-based and containerized applications
7. [Link] Application Lifecycle
The lifecycle defines the sequence of steps from a client request to server response:
[Link] Lifecycle
1. Application Start: Initialization in [Link]
2. Request Processing: Managed by HttpRuntime
3. Page/Controller Execution: Handles events or controller actions
4. Business Logic Execution: Validates and processes data, interacts with DAL
5. Response Generation: HTML, JSON or XML rendered to client
6. Application End: Cleanup of resources
Key Events in Lifecycle
Application_BeginRequest: Triggered at the start of request processing
Application_EndRequest: Triggered after the response is sent
Session_Start / Session_End: Manages user session lifecycle
8. [Link] with Database (Entity Framework Core Example)
8.1. Create [Link] Core Project
1. Open Visual Studio -> Create a new project -> [Link] Core Web App -> Next.
2. Choose Project Name and location -> Next.
3. Select .NET version -> Create.
8.2. Install EF Core Packages
Use NuGet Package Manager or CLI:
dotnet add package [Link]
dotnet add package [Link]
For SQLite:
dotnet add package [Link]
dotnet add package [Link]
8.3. Create Model Class
Example: [Link] in Models/ folder
public class Product
public int Id { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
8.4. Create DbContext
Example: [Link] in Data/ folder
using [Link];
public class AppDbContext : DbContext
{
public AppDbContext(DbContextOptions<AppDbContext> options) : base(options) { }
public DbSet<Product> Products { get; set; }
8.5. Configure Database Connection
Edit [Link]:
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\
MSSQLLocalDB;Database=MyDb;Trusted_Connection=True;"
In [Link]:
using [Link];
var builder = [Link](args);
// Add DbContext
[Link]<AppDbContext>(options =>
[Link]([Link]("DefaultConnection")));
var app = [Link]();
[Link]();
8.6. Run Migrations
dotnet ef migrations add InitialCreate
dotnet ef database update
This creates the database and tables according to your model.
8.7. Example CRUD Operation in Controller
[Link]:
using [Link];
using [Link];
public class ProductsController : Controller
private readonly AppDbContext _context;
public ProductsController(AppDbContext context) => _context = context;
public async Task<IActionResult> Index()
var products = await _context.[Link]();
return View(products);
[HttpPost]
public async Task<IActionResult> Create(Product product)
_context.[Link](product);
await _context.SaveChangesAsync();
return RedirectToAction("Index");
8.8. Output
Navigate to /Products -> Displays product list from database
Use form to add, update or delete products, Changes will reflect in the database
9. State Management in [Link]
Web applications are inherently stateless, meaning that each HTTP request is independent and does
not automatically retain information about previous requests. To address this, [Link] provides
mechanisms to maintain state across multiple requests, ensuring a consistent user experience and
data persistence.
9.1 Client-side State
Cookies: Store small pieces of data on the client’s browser that persist across multiple
requests or sessions.
Query Strings: Pass data in the URL between pages.
Hidden Fields: Embed data within a page without displaying it to the user.
9.2 Server-side State
Session State: Stores user-specific information on the server, such as login status, shopping
cart contents or preferences.
Application State: Maintains data accessible across all users and sessions, useful for global
settings.
Caching: Temporarily stores frequently used data or page fragments on the server to
improve performance.
State management ensures data consistency, personalized experiences and optimized performance
for web applications. Choosing the right method depends on the size, sensitivity and lifespan of the
data being stored.
Security Features in [Link]
[Link] provides robust security for web applications:
Authentication: Forms, Windows or [Link] Identity framework
Authorization: Role-based or claims-based access control
Data Protection: Encryption for sensitive data
Input Validation: Prevents XSS, SQL injection and other attacks
Exception Handling: Uses .NET exception handling to manage runtime errors gracefully
Advantages of [Link]
Compiled code ensures faster execution
Rich set of server-side controls and libraries
Easy integration with databases via [Link] or Entity Framework
Scalable, maintainable and modular architecture
Supports multiple development patterns and deployment scenarios
[Link] vs [Link] Core
[Link] and [Link] Core are web frameworks developed by Microsoft for building dynamic web
applications. Both serve similar purposes but differ in design, architecture and platform support.
Feature [Link] [Link] Core
Runs only on Windows (depends Cross-platform (Windows, Linux,
Platform Support on .NET Framework) macOS)
Feature [Link] [Link] Core
Slower due to heavy dependencies High performance, lightweight,
Performance on IIS and [Link] modular
Open Source Proprietary (Windows-only) Fully open-source on GitHub
Can be hosted on IIS, Kestrel, Docker
Hosted only on IIS
Deployment or self-hosted
Framework
Depends on .NET Framework Runs on .NET Core or .NET 5+
Dependency
Modularity Monolithic, large libraries Modular, uses NuGet packages
Configuration Uses [Link] (XML-based) Uses [Link] (JSON-based)
Development Separate frameworks for MVC, Web Unified programming model (MVC +
Model API, Web Forms API)
Updates tied to Windows and .NET Independent updates, faster release
Updates Framework releases cycle
Built with cloud and microservices in
Limited support
Cloud Readiness mind