Платформа ASP.NET Core 1.0. Часть 1: введение, общее описание и будущее .NET Framework

На вопрос: «Microsoft ASP.NET vNext: эволюция или революция?» был дан однозначный ответ – революция. В данном цикле статей я постараюсь максимально подробно описать новейшую технологию для создания веб-приложений, а именно – ASP.NET vNext, которая в начале получила официальное название ASP.NET 5, а позднее была переименована в ASP.NET Core 1.0. Будет ещё один цикл, уже касающийся разработки реального приложения с примерами, посвящённый применению данной технологии на практике. Начну с описания истории развития ASP.NET. В далёком 1996 году компанией Microsoft была предложена технология – Active Server Pages (ASP) для создания Web-приложений. Принцип работы приложения ASP был примерно такой: веб-страница на сервере содержала серверные скрипты на VBScript или JScript и при запросе страницы происходил запуск и выполнение кода скриптов с последующей генерацией HTML. По сравнию с CGI это был большой шаг вперед. С выходом платформы Microsoft .NET Framework в 2002 году вышла совершенно новая платформа для разработки веб-приложений ASP.NET, которая была обновлена в 2003 году до версии ASP.NET 1.1. Именно тогда началась история ASP.NET. Это была совершенно новая, тогда ещё технология у которой было масса преимуществ перед ASP. По сути это был уже полноценный фреймворк для разработки веб-приложений. Время не стояло на месте, параллельно с развитием .NET Framework развивался и ASP.NET, в 2005 году было выпущено крупное обновление. Основными нововведениями были: темы, мастер-страницы, глобализация и т.п. Веб развивался быстрыми темпами, веб-страницы становились всё более интерактивными и насыщенными, появилась технология AJAX. В 2007 году было выпущено ещё одно крупное обновление – ASP.NET 3.5. Именно тогда появилась поддержка таких мощных средств как: ASP.NET AJAX, LINQ, Dynamic Data. С выпуском ASP.NET 3.5 SP1 в 2009 году был добавлен новый подход для обработки запросов веб-страниц на основе шаблона MVC. Теперь их стало целых два: Web Forms и MVC.

Одновременно с запуском .NET Framework 4 была обновлена и ASP.NET до четвёртой версии. Ещё одно крупное обновление платформы было выпущено с выходом ASP.NET 4.5. Появились такие средства как Web API и SignalR. С выходом Visual Studio 2013 появилась новая концепция – «Единый ASP.NET». Были обновлены все компоненты платформы, а также появилась новая спецификация OWIN – открытый интерфейс веб-сервера для .NET (Open Web Server Interface for .NET), которая стала основой ASP.NET vNext. А уже в прошлом году была выпущена предварительная версия кардинально переработанной технологии для разработки веб-приложений от Microsoft, которая получила официальное название – ASP.NET 5. Помимо прочего, также доступно очень большое количество обновленных и новых технологий и продуктов от Microsoft, финальные версии которых выйдут уже в этом году. А теперь обо всём этом по порядку. Начну с самого крупного и значимого события – обновления и улучшения .NET Framework. Прежде чем начать, вспомним историю развития .NET Framework:

Платформа .NET была представлена в 2002 году и очень быстро завоевала популярность, став одной из основных современных средств разработки программного обеспечения. Её основными преумуществами перед предшественницей – технологией COM, которую она заменила, являются гибкость, более простая и надёжная модель программирования. Платформа равивалась, выходили всё новые версиии, библиотеки и технологии, для удовлетворения всё новых потребностей бысто развивающегося мира информационных технологий. Ну и конечно, Microsoft не сидит сложа руки, для того, чтобы идти в ногу со временем, продолжает улучшать платформу .NET. Совсем недавно платформа, представленная в прошлом году, была обновлена до версии .NET Framework 4.6.2. И так,  какое же будущее ожидает .NET? А будущее действительно очень интересное и многообещающее.

Как видно из рисунка показанного выше, есть по сути две версии .NET Framework. Первая является логическим продолжением существующей версии .NET 4.5.2, которая получила официальное название – .NET 4.6 (обновлённые версии: .NET Framework 4.6.1 – 4.6.2). Вторая именуется теперь уже как .NET Core 1.0 (до этого известная как .NET Core 5) и является упрощённой версией обычного .NET Framework. Если с первым всё предельно ясно и понятно, то в случае со вторым возникает много вопросов. Самый главный – зачем он нам? Для удовлетворения быстрорастущих потребностей современного цифрового мира, который развивается стремительными темпами. Если взглянуть на шкалу развития платформы .NET приведённую выше, то можно увидеть, что цикл выпуска новых версий платформы составляет примерно пару лет, а то и больше, что является очень большим сроком при нынешнем положении дел. Нужно как то исправить ситуацию,  решение – .NET Core 1.0. Последний должен удовлетворять современным требованиям разработки, для этого были установлены новые тентенции для продвижения и развития платформы: быстрый цикл разработки и участие сообщества. Для этих целей специально была создана независимая организация ­.NET Foundation­, которая будет заниматься развитием экосистемы .NET. По данной ссылке перечислены все текущие проекты, которые будут развиваться под руководством последней. То есть получается платформа .NET становится открытой. Полная модульность – вот одна из главнейших возможностей, которая мне нравится больше всех. Особенно это полезно для веб-приложений, позже напишу почему.

Следующий рисунок показывает общую модель приложения, которая будет использовать платформу .NET Core. Модульность .NET Core означает, что фреймворк будет поставляться по частям через NuGet, тогда можно будет вместе с приложением поставлять саму платформу, которая будет изолирована от остальных. Т.е. не будет одной общей версии .NET на всю машину.

Больше сведений про .NET 2015 и .NET Core можно узнать на Channel 9. Также советую почитать данную статью на хабре и изучить курс на сайте Microsoft Virtual Academy. А что нас ожидает в ближайшем будущем, каким будет .NET завтра?

Больше сведений относительно настоящего и будущего платформы можно узнать из докладов dotnetConf 2016. Теперь, поговорим об ASP.NET Core, ниже показана изображение общей схемы платформы.

Как можно видеть из рисунка, ключевыми свойствами новой технологии являются полная модульность и кроссплатформенность. То есть используя фреймворк как часть пакета развёртывания, больше не будет проблем конфигурации среды хостинга для приложения. Каждое приложение будет иметь свою, независимую версию платформы. Почти вся платформа написана с нуля и на управляемом коде, старого кода тут нет. Весь исходный код новейшей версии веб-платформы открыт и доступен на GiHub. Технологии ASP.NET MVC и Web API объеденены в одну, а Web Forms больше не используется в версии ASP.NET Core. Новая версия ASP.NET в ОС Windows будет работать используя одну из двух версий .NET Framework: .NET 4.6 и .NET Core 1.0. На Linux и Mac OS X будет использоваться только .NET Core. Больше сведений по ASP.NET Core можно получить на Channel 9 ­«What's ­New with ASP.NET 5»­, тот же курс доступен на сайте Microsoft Virtual Academy (ASP.NET 5 была переименована в ASP.NET Core 1.0).­­ Также советую посмотреть курс «ASP.NET Core 1.0 Fundamentals» от Pluralsight. Много очень интересного и полезного для себя я почерпнул из доклада «ASP.NET vNext: What it means to you and what it means to Microsoft», который я пересмотрел не раз. В следующей части будет рассморено всё то, что предлагает нам новейшая версия .NET Framework в плане веб-разработки.