ASP.
NET CORE
[Link] CORE OVERVIEW
[Link] CORE OVERVIEW
[Link] Core is a free, open-source, and cross-platform
framework for building cloud-based applications, such as web
apps, IoT apps, and mobile backends. It is designed to run on
the cloud as well as on-premises.
[Link] Core is not an upgraded version of [Link].
[Link] Core is completely rewriting that work with
the .net Core framework. It is much faster, configurable,
modular, scalable, extensible, and has cross-platform support.
KEY FEATURES:
Cross-Platform: [Link] Core applications can be developed
and run on Windows, Linux, and macOS, providing flexibility
and broad reach.
Hosting Options: Applications can be hosted using various
servers, including:
Kestrel: A cross-platform web server for [Link] Core.
IIS: Internet Information Services for Windows Server.
Nginx and Apache: Popular web servers on Linux and macOS.
Docker: Containerization support for consistent deployments.
Cloud Services: Seamless integration with cloud providers like
KEY FEATURES:
Open-Source: The framework is developed and maintained by
the .NET Foundation and the open-source community, fostering
transparency and collaboration.
Cloud-Enabled: [Link] Core is designed with cloud-based
applications in mind, offering features that facilitate development
and deployment in cloud environments.
Built-in supports for Dependency Injection
Built-in supports for the logging framework and it can be extensible
Command-line supports to creating, building, and running of the
application
There is no web .config file. We can store the custom configuration
MODULES:
[Link] Core MVC: For building robust web applications
following the Model-View-Controller pattern.
[Link] Core Web API: For creating RESTful services
accessible by various clients, including browsers and mobile
devices.
[Link] Core Razor Pages: For developing page-focused web
applications with a simplified coding model.
[Link] Core Blazor: For building interactive web UIs using C#
instead of JavaScript.
COMPARISON WITH PREVIOUS TECHNOLOGIES:
[Link] Web
Feature [Link] MVC [Link] Core
Forms
Initial Release 2002 2009 2016
Performance Moderate Improved High
Cross-Platform No No Yes
Cloud-Friendly Limited Improved Yes
Open Source No Partial Yes
Development Multiple
Event-Driven MVC Pattern
Model Patterns
WHAT IS A WEB APPLICATION FRAMEWORK?
A web application framework simplifies the development
of modern web applications by providing reusable tools and
libraries. It helps handle recurring tasks, such as:
managing HTTP requests, user authentication, database
interactions, URL routing, and output formatting (HTML/JSON).
Benefits: Frameworks reduce complexity, Improve
scalability, Increase development productivity.
KESTREL AND OTHER SERVERS
• Kestrel: The cross-platform web server for [Link] Core,
lightweight and efficient for handling dynamic content.
• Reverse Proxy Servers: These servers forward client
requests to backend servers and return responses to
clients.
o IIS, Nginx, Apache.
KESTREL AND OTHER SERVERS
KESTREL
Kestrel is the cross-platform web server for [Link] Core.
It is lightweight and suitable for serving dynamic content.
Responsibilities:
Handles HTTP requests: Handles incoming HTTP requests and
responses.
Hosting: Hosts the [Link] Core application.
Configuration: Supports various configurations such as HTTP/2,
HTTPS, etc.
Use Case:
Ideal for development and internal networks.
Typically used in conjunction with a reverse proxy for production
REVERSE PROXY SERVERS
A reverse proxy server forwards client requests to backend
servers and returns the responses to the clients.
Common reverse proxy servers include Nginx, Apache, and IIS.
Responsibilities:
Load Balancing: Distributes incoming requests across multiple servers.
SSL Termination: Handles SSL/TLS encryption and decryption.
Caching: Caches responses to improve performance.
Security: Provides additional security features like request filtering, IP
whitelisting, and rate limiting.
Use Case:
Used in front of Kestrel to enhance security, load balancing, and other
enterprise-level requirements.
RESPONSIBILITIES OF KESTREL AND REVERSE
PROXY SERVERS
Kestrel:
Serves HTTP requests directly.
Provides efficient request processing.
Should be used behind a reverse proxy for additional security and
stability.
Reverse Proxy:
Acts as an intermediary between clients and Kestrel.
Provides SSL termination, load balancing, and security features.
Enhances the overall performance and security of the application.