asp.net core services

Post on 25-Jun-2015

999 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

ASP.NET

by Victor HaydinEleks Software Ltd.

Core Services & Basic Concepts

IIS + ASP.NET: LOW LEVEL CONCEPTS

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

HTTP

Web-Server

Static Content Scripts

External services

Clients

Стек технологій 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

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

Client

Microsoft IIS

ISAPI

OtherASP.NetExchange Web

ConnectorInternet Database

Connector

Database Exchange ActiveDirectoryOther scripts and

APIsStatic Content

ASP.NET CORE SERVICES

ASP.Net Core Services

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

HttpRequest HttpResponse

• HttpHandler• HttpModule

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);}

HttpContext

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

HttpRequest

• ApplicationPath, FilePath, Path…

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

IsSecureConnection

• Params(Form, QueryString etc.)

• RawUrl• RequestType• UserHostAddress

(UserHostName)• UserLanguages

HttpResponse

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

SubStatusCode etc.)

HttpModule

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

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

ASP.NET: ADDITIONAL PLATFORM FEATURES

Company Logo

Additional platform features

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

ASPX RENDERING ENGINE

ASPX-файли

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

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

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

ASP.NET: HIGH LEVEL FRAMEWORKS

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

ASP.Net Core

WebForms MVCOther server frameworks

ASP.Net AJAX jQueryOther client frameworks

ASP.Net WebForms

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

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

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

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

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

«мишею»

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

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

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

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

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

ASP.Net MVC

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

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

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

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

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

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

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

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

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

Що вибрати?

WebForms MVC

Що вибрати?

Custom IHttpHandler realization

ЗАПИТАННЯ?

top related