ASP.Net Core Services
-
Upload
victor-haydin -
Category
Technology
-
view
985 -
download
3
Transcript of ASP.Net Core Services
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
ЗАПИТАННЯ?