ASP.Net Core Services

25
ASP.NET by Victor Haydin Eleks Software Ltd. Core Services & Basic Concepts

Transcript of ASP.Net Core Services

Page 1: ASP.Net Core Services

ASP.NET

by Victor HaydinEleks Software Ltd.

Core Services & Basic Concepts

Page 2: ASP.Net Core Services

IIS + ASP.NET: LOW LEVEL CONCEPTS

Page 3: ASP.Net Core Services

Архітектура типового web-сервера

HTTP

Web-Server

Static Content Scripts

External services

Clients

Page 4: ASP.Net Core Services

Стек технологій Microsoft для роботи з Web

• Web-server: Internet Information Services (IIS)

• Low-Level: ISAPI• Mid-Level (.Net): ASP.Net Core Services• High-Level: ASP.Net WebForms, ASP.Net MVC• Client-side: ASP.Net AJAX, jQuery

Page 5: ASP.Net Core Services

Інтеграція ASP.Net та IIS

Client

Microsoft IIS

ISAPI

OtherASP.NetExchange Web

ConnectorInternet Database

Connector

Database Exchange ActiveDirectoryOther scripts and

APIsStatic Content

Page 6: ASP.Net Core Services

ASP.NET CORE SERVICES

Page 7: ASP.Net Core Services

ASP.Net Core Services

Базові сутності:• HttpApplication• HttpContext

HttpRequest HttpResponse

• HttpHandler• HttpModule

Page 8: ASP.Net Core Services

HttpHandler

IHttpHandler:public interface IHttpHandler { bool IsReusable { get; } void ProcessRequest(HttpContext context);}

IHttpHandlerFactory:public interface IHttpHandlerFactory { IHttpHandler GetHandler(HttpContext context, string requestType, string url, string pathTranslated); void ReleaseHandler(IHttpHandler handler);}

Page 9: ASP.Net Core Services

HttpContext

• Cache• Handler• Items• Request• Response• Server• Session• User• etc.

Page 10: ASP.Net Core Services

HttpRequest

• ApplicationPath, FilePath, Path…

• Browser (UserAgent)• Cookies• Files• Headers• HttpMethod• IsAuthenticated, IsLocal,

IsSecureConnection

• Params(Form, QueryString etc.)

• RawUrl• RequestType• UserHostAddress

(UserHostName)• UserLanguages

Page 11: ASP.Net Core Services

HttpResponse

• Redirect() (RedirectToRoute() etc.)• Write() (WriteFile() etc.)• ContentType• Cookies• Headers• OutputStream (Output)• Status (StatusCode, StatusDescription,

SubStatusCode etc.)

Page 12: ASP.Net Core Services

HttpModule

IHttpModule:public interface IHttpModule { void Init(HttpApplication context); void Dispose();}

Page 13: ASP.Net Core Services

HttpApplication pipeline• BeginRequest• AuthenticateRequest• AuthorizeRequest• ResolveRequestCache• [A handler (a page corresponding to the request URL) is created at this point.]• AcquireRequestState• PreRequestHandlerExecute• [The handler is executed.]• PostRequestHandlerExecute• ReleaseRequestState• [Response filters, if any, filter the output.]• UpdateRequestCache• EndRequest

Page 14: ASP.Net Core Services
Page 15: ASP.Net Core Services

ASP.NET: ADDITIONAL PLATFORM FEATURES

Company Logo

Page 16: ASP.Net Core Services

Additional platform features

• Windows/Forms authentication• Membership, Roles and Profiles• Url-based authorization• Data caching• Internationalization• Performance and monitoring

Page 17: ASP.Net Core Services

ASPX RENDERING ENGINE

Page 18: ASP.Net Core Services

ASPX-файли

• Обробляються за допомогою стандартного HttpHandler

• Компілюються при першому звертанні до них у спеціальний клас, який формує респонс для клієнта

• Вміст aspx-файла – це декларативний опис HTML-розмітки, яка буде віддана клієнту

Page 19: ASP.Net Core Services

ASP.NET: HIGH LEVEL FRAMEWORKS

Page 20: ASP.Net Core Services

Екосистема ASP.Net

ASP.Net Core

WebForms MVCOther server frameworks

ASP.Net AJAX jQueryOther client frameworks

Page 21: ASP.Net Core Services

ASP.Net WebForms

Плюси+ Базовий фреймворк для ASP.Net

з моменту його появи+ Низький рівень входження,

особливо для програмістів з досвідом написання настільних додатків

+ Багата бібліотека «рідних» і сторонніх контролів і компонент

+ Абстрагованість від HTTP+ Event-driven модель розробки+ Можливість програмувати

«мишею»

Мінуси- Важко піддається автоматичному

тестуванню- Провокує програмістів змішувати

логіку і представлення, писати «брудний» код

- Неочевидна модель Page Life-Cycle

- Неповний контроль над HTML-розміткою і «некрасиві» URL, як наслідок, сайти важко піддаються оптимізації для пошукових систем

Page 22: ASP.Net Core Services

ASP.Net MVC

Плюси+ Легко піддається автоматичному

тестуванню+ Архітектура спонукає програміста

писати «чистий» код+ Гнучкий і легкий+ Звичний для програмістів із

досвідом розробки веб-додатків на інших платформах (Ruby on Rails, Zend, Django etc.)

+ Повний контроль над HTML-розміткою, простота інтеграції з сторонніми клієнтськими фреймворками

Мінуси- Відносно нова технологія

(менше ніж 1,5 роки від першого релізу)

- Небагата бібліотека контролів і сторонніх компонент

- Вищий рівень входження для програміста

Page 23: ASP.Net Core Services

Що вибрати?

WebForms MVC

Page 24: ASP.Net Core Services

Що вибрати?

Custom IHttpHandler realization

Page 25: ASP.Net Core Services

ЗАПИТАННЯ?