SlideShare a Scribd company logo
1
ASP.NET Core – переворот в мире web.
Enterprise и Startup на одном ядре.
www.rubius.com
/ DP Labs
2
Антон
Финько
Ведущий
разработчик DP Labs
Артур
Дробинский
artur.drobinskiy@arturdr.ruanton.finko@rubius.com
Ведущий архитектор
команды DP Labs
3
О чём будет доклад?
Что такое ASP.NET Core?
Чем он отличается от ASP.NET MVC?
В чём преимущества и недостатки ASP.NET Core?
Какие альтернативы?
Наш опыт.
4
История ASP.NET
1996 2002 2004 2009 2015 2016
5
Модель приложения ASP.NET Core
6
Различия ASP.NET MVC и ASP.NET Core
VS
7
Настройка запуска приложения в ASP.NET MVC
Global.
asax
Bundle
Config
Route
Config
Filter
Config
8
Настройка запуска приложения в ASP.NET Core
Program
(Main)
Startup
9
Использование Middleware
Было
Стало
10
Использование Middleware
11
Встроенный DI
Простота регистрации зависимостей
Несколько вариантов регистрации зависимостей
12
Упрощённый bundling
Использование
bundleconfig.json
Использование
сторонних bundler’ов
13
Tag-хэлперы
Стало
Было
14
Config файлы в формате JSON
15
Готовые шаблоны для SPA
16
Преимущества и недостатки
17
Opensource
18
Кроссплатформенность
19
Использование Docker
20
Далеко не весь функционал .NET перенесён
<
21
=
.NET Core изменяется
/.NET
Core N
.NET
Core N + 1
22
Альтернативы
23
Опыт использования ASP.NET Core
+
24
25
Esprit Web
2002 год
26
Esprit Web
2016 год
27
Esprit Web
IIS
IIS Web Site
.NET Framework 4.6
ASP.NET Core
ASP
Database
28
Esprit Web
29
+
заказная разработка
30
СУБД
SQLServer в среде разработки
PostgreSQL на продакшене
InMemory БД в тестах
31
Поддержка Multi-Tenant
32
Поддержка Multi-Tenant
client1.rubius.com
client2.rubius.com
client3.rubius.com
33
Поддержка Multi-Tenant (SAAS)
client1.rubius.com
client2.rubius.com
client3.rubius.com
modelBuilder.Entity<TEntity>()
.HasQueryFilter(x => TenantId == x.TenantId);
34
Разработка API
[Route("/api/teachers/getNames")]
[HttpGet]
public async Task<List<AutocompleteItem>> GetTeachersAutocomplete()
{
var data =(await _context.Users.Active().Teachers().ToListAsync()).Select(user => new AutocompleteItem()
{
Id = user.Id,
Name = user.FullName,
}).ToList();
return data;
}
Etag и механизмы кеширования
Error-handling в middleware
35
Инфраструктура
Запросы через HttpClient к псевдореальному TestHost
Проверка API на валидность через Swagger в тестах
MiniProfiler
JWT-токены и интеграция с Claims
36
Кросс-платформенность
Netstandard 2.0 и шаринг контрактов
с мобильным приложением
Множество существующих библиотек (включая PCL)
Встроенный IoC
Запуск на Docker
37
Выводы
ASP.NET Core удобный
ASP.NET Core подходит для SPA
ASP.NET Core изменяющийся
ASP.NET MVC уходит на покой
38
Спасибо за внимание!
artur.drobinskiy@arturdr.ru
anton.finko@rubius.com

More Related Content

What's hot

Adn@it'summer - Как ленивые фронтенды себе жизнь упрощают
Adn@it'summer - Как ленивые фронтенды себе жизнь упрощают Adn@it'summer - Как ленивые фронтенды себе жизнь упрощают
Adn@it'summer - Как ленивые фронтенды себе жизнь упрощают
ADN Digital Studio
 
Специфика рендеринга vue.js-приложений на сервере, Алексей Клюев
Специфика рендеринга vue.js-приложений на сервере, Алексей КлюевСпецифика рендеринга vue.js-приложений на сервере, Алексей Клюев
Специфика рендеринга vue.js-приложений на сервере, Алексей Клюев
Mail.ru Group
 
Фронтенд разработка без боли
Фронтенд разработка без болиФронтенд разработка без боли
Фронтенд разработка без боли
Anton Piskunov
 
Обучение фронтенд разработке
Обучение фронтенд разработкеОбучение фронтенд разработке
Обучение фронтенд разработке
ITCrowd Almaty
 
Spring in java
Spring in javaSpring in java
Spring in java
Asya Dudnik
 
Опыт Автоматизации тестирования
Опыт Автоматизации тестированияОпыт Автоматизации тестирования
Опыт Автоматизации тестирования
Agile Ukraine
 
Express test BSD desktop
Express test BSD desktopExpress test BSD desktop
Express test BSD desktop
Дима Ванькевич
 
JS Lab2017_Сергей Селецкий_System.js и jspm
JS Lab2017_Сергей Селецкий_System.js и jspmJS Lab2017_Сергей Селецкий_System.js и jspm
JS Lab2017_Сергей Селецкий_System.js и jspm
GeeksLab Odessa
 
07 virtual hosts_ru
07 virtual hosts_ru07 virtual hosts_ru
07 virtual hosts_ru
mcroitor
 
Презентация доклада Лавриненко
Презентация доклада ЛавриненкоПрезентация доклада Лавриненко
Презентация доклада ЛавриненкоLuxoftTraining
 
Если не Drupal 8, то что? Обзор Laravel 5
Если не Drupal 8, то что? Обзор Laravel 5Если не Drupal 8, то что? Обзор Laravel 5
Если не Drupal 8, то что? Обзор Laravel 5
DrupalSPB
 
Владимир Гриненко —Инструменты фронтенд-разработчика
Владимир Гриненко —Инструменты фронтенд-разработчикаВладимир Гриненко —Инструменты фронтенд-разработчика
Владимир Гриненко —Инструменты фронтенд-разработчика
Yandex
 
Курс Java-2016. Занятие 02. Пакеты, сборка проекта с Maven
Курс Java-2016. Занятие 02. Пакеты, сборка проекта с MavenКурс Java-2016. Занятие 02. Пакеты, сборка проекта с Maven
Курс Java-2016. Занятие 02. Пакеты, сборка проекта с Maven
7bits
 
06 php instalation_ru
06 php instalation_ru06 php instalation_ru
06 php instalation_ru
mcroitor
 
CodeFest 2012. Евтухович И. — Как мы делали Групон
CodeFest 2012. Евтухович И. — Как мы делали ГрупонCodeFest 2012. Евтухович И. — Как мы делали Групон
CodeFest 2012. Евтухович И. — Как мы делали ГрупонCodeFest
 
Cтандартизация рабочего окружения и автоматизация развертывания рабочей среды
Cтандартизация рабочего окружения и автоматизация развертывания рабочей средыCтандартизация рабочего окружения и автоматизация развертывания рабочей среды
Cтандартизация рабочего окружения и автоматизация развертывания рабочей среды
WordCamp Kyiv
 
Игорь Лабутин «Продвинутое использование NuGet и MSBuild»
Игорь Лабутин «Продвинутое использование NuGet и MSBuild»Игорь Лабутин «Продвинутое использование NuGet и MSBuild»
Игорь Лабутин «Продвинутое использование NuGet и MSBuild»
SpbDotNet Community
 
05 db server_deployment_ru
05 db server_deployment_ru05 db server_deployment_ru
05 db server_deployment_ru
mcroitor
 
KAZOOMEETUP MOSCOW 2015. Илья Ащепков. Разработка компонент KAZOO
KAZOOMEETUP MOSCOW 2015. Илья Ащепков. Разработка компонент KAZOOKAZOOMEETUP MOSCOW 2015. Илья Ащепков. Разработка компонент KAZOO
KAZOOMEETUP MOSCOW 2015. Илья Ащепков. Разработка компонент KAZOO
SIPLABS Communications
 

What's hot (20)

Adn@it'summer - Как ленивые фронтенды себе жизнь упрощают
Adn@it'summer - Как ленивые фронтенды себе жизнь упрощают Adn@it'summer - Как ленивые фронтенды себе жизнь упрощают
Adn@it'summer - Как ленивые фронтенды себе жизнь упрощают
 
Capistrano Framework
Capistrano FrameworkCapistrano Framework
Capistrano Framework
 
Специфика рендеринга vue.js-приложений на сервере, Алексей Клюев
Специфика рендеринга vue.js-приложений на сервере, Алексей КлюевСпецифика рендеринга vue.js-приложений на сервере, Алексей Клюев
Специфика рендеринга vue.js-приложений на сервере, Алексей Клюев
 
Фронтенд разработка без боли
Фронтенд разработка без болиФронтенд разработка без боли
Фронтенд разработка без боли
 
Обучение фронтенд разработке
Обучение фронтенд разработкеОбучение фронтенд разработке
Обучение фронтенд разработке
 
Spring in java
Spring in javaSpring in java
Spring in java
 
Опыт Автоматизации тестирования
Опыт Автоматизации тестированияОпыт Автоматизации тестирования
Опыт Автоматизации тестирования
 
Express test BSD desktop
Express test BSD desktopExpress test BSD desktop
Express test BSD desktop
 
JS Lab2017_Сергей Селецкий_System.js и jspm
JS Lab2017_Сергей Селецкий_System.js и jspmJS Lab2017_Сергей Селецкий_System.js и jspm
JS Lab2017_Сергей Селецкий_System.js и jspm
 
07 virtual hosts_ru
07 virtual hosts_ru07 virtual hosts_ru
07 virtual hosts_ru
 
Презентация доклада Лавриненко
Презентация доклада ЛавриненкоПрезентация доклада Лавриненко
Презентация доклада Лавриненко
 
Если не Drupal 8, то что? Обзор Laravel 5
Если не Drupal 8, то что? Обзор Laravel 5Если не Drupal 8, то что? Обзор Laravel 5
Если не Drupal 8, то что? Обзор Laravel 5
 
Владимир Гриненко —Инструменты фронтенд-разработчика
Владимир Гриненко —Инструменты фронтенд-разработчикаВладимир Гриненко —Инструменты фронтенд-разработчика
Владимир Гриненко —Инструменты фронтенд-разработчика
 
Курс Java-2016. Занятие 02. Пакеты, сборка проекта с Maven
Курс Java-2016. Занятие 02. Пакеты, сборка проекта с MavenКурс Java-2016. Занятие 02. Пакеты, сборка проекта с Maven
Курс Java-2016. Занятие 02. Пакеты, сборка проекта с Maven
 
06 php instalation_ru
06 php instalation_ru06 php instalation_ru
06 php instalation_ru
 
CodeFest 2012. Евтухович И. — Как мы делали Групон
CodeFest 2012. Евтухович И. — Как мы делали ГрупонCodeFest 2012. Евтухович И. — Как мы делали Групон
CodeFest 2012. Евтухович И. — Как мы делали Групон
 
Cтандартизация рабочего окружения и автоматизация развертывания рабочей среды
Cтандартизация рабочего окружения и автоматизация развертывания рабочей средыCтандартизация рабочего окружения и автоматизация развертывания рабочей среды
Cтандартизация рабочего окружения и автоматизация развертывания рабочей среды
 
Игорь Лабутин «Продвинутое использование NuGet и MSBuild»
Игорь Лабутин «Продвинутое использование NuGet и MSBuild»Игорь Лабутин «Продвинутое использование NuGet и MSBuild»
Игорь Лабутин «Продвинутое использование NuGet и MSBuild»
 
05 db server_deployment_ru
05 db server_deployment_ru05 db server_deployment_ru
05 db server_deployment_ru
 
KAZOOMEETUP MOSCOW 2015. Илья Ащепков. Разработка компонент KAZOO
KAZOOMEETUP MOSCOW 2015. Илья Ащепков. Разработка компонент KAZOOKAZOOMEETUP MOSCOW 2015. Илья Ащепков. Разработка компонент KAZOO
KAZOOMEETUP MOSCOW 2015. Илья Ащепков. Разработка компонент KAZOO
 

Similar to ASP.Net Core

Что нового в ASP.NET 5
Что нового в ASP.NET 5Что нового в ASP.NET 5
Что нового в ASP.NET 5
Microsoft
 
Денис Давыдов - Кроссплатформенные инструменты серверной разработки .NET
Денис Давыдов - Кроссплатформенные инструменты серверной разработки .NETДенис Давыдов - Кроссплатформенные инструменты серверной разработки .NET
Денис Давыдов - Кроссплатформенные инструменты серверной разработки .NET
Elias Fofanov
 
.NET core в современных проектах, Андрей Губский
.NET core в современных проектах, Андрей Губский.NET core в современных проектах, Андрей Губский
.NET core в современных проектах, Андрей Губский
Sigma Software
 
Cеминар в Виннице (22.03.2014)
Cеминар в Виннице (22.03.2014)Cеминар в Виннице (22.03.2014)
Cеминар в Виннице (22.03.2014)
Alexander Babich
 
Uneta 17.04.15 Dekhtiar - Entity framework 7 and co.
Uneta 17.04.15 Dekhtiar - Entity framework 7 and co.Uneta 17.04.15 Dekhtiar - Entity framework 7 and co.
Uneta 17.04.15 Dekhtiar - Entity framework 7 and co.
UNETA
 
Что нового в Visual Studio 2013
Что нового в Visual Studio 2013Что нового в Visual Studio 2013
Что нового в Visual Studio 2013
GetDev.NET
 
Net framework
Net frameworkNet framework
Net framework
poverhnost
 
Как сделать интернет-сайт на SharePoint и не передумать на полпути
Как сделать интернет-сайт на SharePoint и не передумать на полпутиКак сделать интернет-сайт на SharePoint и не передумать на полпути
Как сделать интернет-сайт на SharePoint и не передумать на полпутиAndrew Mayorov
 
Денис Паясь
Денис ПаясьДенис Паясь
Денис Паясь
CodeFest
 
Архитектурные решения при создании облачного сервиса на Asp.Net
Архитектурные решения при создании облачного сервиса на Asp.NetАрхитектурные решения при создании облачного сервиса на Asp.Net
Архитектурные решения при создании облачного сервиса на Asp.Net
GoSharp
 
aOS Moscow - R1 - Javascript use cases in modern SharePoint
aOS Moscow - R1 - Javascript use cases in modern SharePointaOS Moscow - R1 - Javascript use cases in modern SharePoint
aOS Moscow - R1 - Javascript use cases in modern SharePoint
aOS Community
 
CloudsNN 2014. Константин Анисимов.
CloudsNN 2014. Константин Анисимов.CloudsNN 2014. Константин Анисимов.
CloudsNN 2014. Константин Анисимов.
Clouds NN
 
Java Enterprise without Java
Java Enterprise without JavaJava Enterprise without Java
Java Enterprise without JavaOlena Syrota
 
начинаем работать с Sql server compact
начинаем работать с Sql server compactначинаем работать с Sql server compact
начинаем работать с Sql server compactДенис Резник
 
Кроссплатформенная разработка на aspnet
Кроссплатформенная разработка на aspnet Кроссплатформенная разработка на aspnet
Кроссплатформенная разработка на aspnet
Eugene Agafonov
 
Кросплатформенная разработка на ASP.NET vNext
Кросплатформенная разработка на ASP.NET vNextКросплатформенная разработка на ASP.NET vNext
Кросплатформенная разработка на ASP.NET vNext
GoSharp
 
Frontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиковFrontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиков
CodeFest
 
Diplom 1
Diplom 1Diplom 1
Diplom 1
Alexander Popov
 
Микросервисы в .NET Core
Микросервисы в .NET CoreМикросервисы в .NET Core
Микросервисы в .NET Core
Andrew Gubskiy
 
Видеозвонки и шаринг экрана в мобильном приложении
Видеозвонки и шаринг экрана в мобильном приложенииВидеозвонки и шаринг экрана в мобильном приложении
Видеозвонки и шаринг экрана в мобильном приложении
Voximplant
 

Similar to ASP.Net Core (20)

Что нового в ASP.NET 5
Что нового в ASP.NET 5Что нового в ASP.NET 5
Что нового в ASP.NET 5
 
Денис Давыдов - Кроссплатформенные инструменты серверной разработки .NET
Денис Давыдов - Кроссплатформенные инструменты серверной разработки .NETДенис Давыдов - Кроссплатформенные инструменты серверной разработки .NET
Денис Давыдов - Кроссплатформенные инструменты серверной разработки .NET
 
.NET core в современных проектах, Андрей Губский
.NET core в современных проектах, Андрей Губский.NET core в современных проектах, Андрей Губский
.NET core в современных проектах, Андрей Губский
 
Cеминар в Виннице (22.03.2014)
Cеминар в Виннице (22.03.2014)Cеминар в Виннице (22.03.2014)
Cеминар в Виннице (22.03.2014)
 
Uneta 17.04.15 Dekhtiar - Entity framework 7 and co.
Uneta 17.04.15 Dekhtiar - Entity framework 7 and co.Uneta 17.04.15 Dekhtiar - Entity framework 7 and co.
Uneta 17.04.15 Dekhtiar - Entity framework 7 and co.
 
Что нового в Visual Studio 2013
Что нового в Visual Studio 2013Что нового в Visual Studio 2013
Что нового в Visual Studio 2013
 
Net framework
Net frameworkNet framework
Net framework
 
Как сделать интернет-сайт на SharePoint и не передумать на полпути
Как сделать интернет-сайт на SharePoint и не передумать на полпутиКак сделать интернет-сайт на SharePoint и не передумать на полпути
Как сделать интернет-сайт на SharePoint и не передумать на полпути
 
Денис Паясь
Денис ПаясьДенис Паясь
Денис Паясь
 
Архитектурные решения при создании облачного сервиса на Asp.Net
Архитектурные решения при создании облачного сервиса на Asp.NetАрхитектурные решения при создании облачного сервиса на Asp.Net
Архитектурные решения при создании облачного сервиса на Asp.Net
 
aOS Moscow - R1 - Javascript use cases in modern SharePoint
aOS Moscow - R1 - Javascript use cases in modern SharePointaOS Moscow - R1 - Javascript use cases in modern SharePoint
aOS Moscow - R1 - Javascript use cases in modern SharePoint
 
CloudsNN 2014. Константин Анисимов.
CloudsNN 2014. Константин Анисимов.CloudsNN 2014. Константин Анисимов.
CloudsNN 2014. Константин Анисимов.
 
Java Enterprise without Java
Java Enterprise without JavaJava Enterprise without Java
Java Enterprise without Java
 
начинаем работать с Sql server compact
начинаем работать с Sql server compactначинаем работать с Sql server compact
начинаем работать с Sql server compact
 
Кроссплатформенная разработка на aspnet
Кроссплатформенная разработка на aspnet Кроссплатформенная разработка на aspnet
Кроссплатформенная разработка на aspnet
 
Кросплатформенная разработка на ASP.NET vNext
Кросплатформенная разработка на ASP.NET vNextКросплатформенная разработка на ASP.NET vNext
Кросплатформенная разработка на ASP.NET vNext
 
Frontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиковFrontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиков
 
Diplom 1
Diplom 1Diplom 1
Diplom 1
 
Микросервисы в .NET Core
Микросервисы в .NET CoreМикросервисы в .NET Core
Микросервисы в .NET Core
 
Видеозвонки и шаринг экрана в мобильном приложении
Видеозвонки и шаринг экрана в мобильном приложенииВидеозвонки и шаринг экрана в мобильном приложении
Видеозвонки и шаринг экрана в мобильном приложении
 

ASP.Net Core