- PVSM.RU - https://www.pvsm.ru -
ASP.NET 5 привносит значительные изменения в платформу ASP.NET. В этой статье рассматриваются новые концепции ASP.NET 5 и объясняется, как они помогут разрабатывать современные веб-приложения.
ASP.NET 5 — это лишенный всего избыточного .NET стек для построения современных веб-приложений. Мы построили его с нуля, чтобы обеспечить оптимизированную платформу для разработки приложений, которые будут развернуты в облаке или работать на собственных серверах. Для поддержки гибкости при построении решений данная платформа состоит из модульных компонентов с минимальными накладными расходами.
ASP.NET 5 включает в себя следующие возможности:
Изменения, которые мы сделали для ASP.NET 5 были основаны на запросах клиентов и обратной связи. Эти изменения упрощают разработку,
Ваши унаследованные приложения будут работать на новой версии ASP.NET без каких-либо модификаций. Но чтобы воспользоваться новыми возможностями в ASP.NET 5, необходимо портировать существующий код на новый фреймворк. Вы найдете много сходства между ASP.NET 5 и более ранними версиями ASP.NET, так что портирование кода заключается в фиксации конкретных проблемных мест, а не переписывании всего приложения.
В этом статье представлены направление развития ASP.NET 5 и объяснение изменений.
Можно уже начать работать с ASP.NET 5, загрузив [2]Visual Studio 2015 Preview. Для получения дополнительной информации о том, что включено в этот выпуск, читайте Visual Studio 2015 Preview [3].
В прошлом .NET Framework использовался в качестве единой, всеобъемлющей установки. В каждым новый релиз .NET, добавлялись новые фичи, но старые редко удалялись, таким образом, размер фреймворка постоянно рос. Такой подход гарантирует, что машина с установленным .NET может поддерживать любой тип .NET приложений, но это означает, что каждое приложение имеет зависимость от функционала, который фактически не используется.
Если критическое обновление необходимо для одной из технологий в .NET, вы получаете уведомление, что доступно важное обновление, даже если эта часть .NET не используется вашими приложениями. Необходимо решать, следует ли установить это обновление и прерывать работу приложения или игнорировать обновления, в надежде, что обновление на самом деле не нужно.
ASP.NET 5 дает большую гибкость, будучи в состоянии работать в трех вариантах среды выполнения:
По умолчанию, новые проекты Visual Studio будут использовать Full .NET CLR. Вы можете указать Core CLR в свойствах конфигурации вашего проекта.
ASP.NET 5 позволяет размещать свое приложение на IIS или в режиме self hosting. Когда вы используете Core CLR, вы можете развернуть приложение со всеми зависимостями собранными в пакет развертывания. Таким образом, приложение и его зависимости полностью автономны и больше не зависят от установки .NET в системе. Приложение может работать на любом типе устройства или хостинговой платформы.
Эта новая возможность дает много свободы. Мы по-прежнему рекомендуем IIS как лучший вариант для
Пример
Когда приложения на сервере зависят от одной, общесистемной установки .NET Framework, все приложения работают на одной и той же версии .NET. Эта ситуация создает некоторое беспокойство при рассмотрении вопроса обновления до новой версии платформы .NET Framework. Возможно, вы хотите чтобы, некоторые из ваших приложений использовали последнюю версию .NET, но вы не уверены в том, что все ваши старые приложения будут работать должным образом с новой версией.
К счастью, ASP.NET 5 исправляет эту проблему. Можно определить зависимости в рамках пакета развертывания и указать версию .NET для каждого приложения. Вы получаете все преимущества последней версии для некоторых приложений и просто продолжаете использовать старую версию для остальных. Все эти различные версии работают бок о бок без каких-либо проблем. Для запуска приложений с разными версиями бок о бок, вы должны выбрать целевой объект (target) Core CLR для них.
ASP.NET 5 представляет новый, легкий способ управлять зависимостями в ваших проектах. Вам больше не надо добавлять референсы на сборки в проект, вместо этого вы управляете зависимостями, ссылаясь на NuGet пакеты. Вы можете добавить NuGet пакеты с помощью менеджера NuGet пакетов или вы можете отредактировать файл JSON (project.json), в котором перечислены NuGet пакеты и версии, используемые в вашем проекте. Для добавления других зависимостей, вы просто пишите имя и номер версии NuGet пакета в файл project.json.
В Visual Studio 2015 IntelliSense помогает найти доступные NuGet пакеты.
Файл project.json включает только NuGet пакеты, которые были непосредственно добавлены в проект. Если добавить NuGet пакет, который зависит от других пакетов, эти вторичные зависимости загружаются, но не перечислены в файле project.json. Этот подход позволяет сохранить файл project.json не загроможденным и простым в управлении. Если удалить NuGet-пакет из project.json, вторичные зависимости удаляются тоже, если нет других пакетов которым они нужны.
Благодаря формату JSON управлять зависимостями легко, даже если нет установленной Visual Studio. Вы можете открыть файл project.json в любом текстовом редакторе и внести изменения, например, обновить зависимости приложения, развернутого в облаке.
В прошлом MVC, Web API и Web Pages содержали различные реализации схожего функционала. Например, MVC и Web API предоставляют маршрутизацию, но классы маршрутизации MVC располагаются в пространстве имен System.Web.Mvc.Routing, а схожие классы Web API располагаются в System.Web.Http.Routing. Или, Web Pages и MVC и используют синтаксис Razor, но некоторые NuGet пакеты совместимы только с одной или другой реализацией.
В ASP.NET 5, MVC, Web API и веб-страниц будут объединены в единый фреймворк под названием MVC 6. Это слияние удаляет дублирования из фреймворка и делает разработку приложений более легким. Вам больше не нужно писать несколько иной код в зависимости от того, используется ли MVC, Web API или Web Pages.
В этой предварительной версии, MVC и Web API были объединены в MVC 6. Web Pages будут добавлены в MVC 6 в более поздней версии.
ASP.NET 5 вводит новый программный конвейер для HTTP-запросов, который избавлен от всего лишнего. Этот конвейер является модульным, можно добавить только те компоненты, которые необходимы. Приложение будет иметь бОльшую пропускную способность за счет снижения накладных расходов. Новый конвейер также поддерживает Owin [19].
Когда вы создаете новый ASP.NET 5 проекта, этот проект структурируется для легкого развертывания в облаке. Visual Studio 2015 предоставляет новую систему конфигурации среды, которая заменяет файл Web.config. Новая система позволяет запрашивать именованные значения из различных источников (например, JSON, XML или переменные среды). Вы указываете значения для каждой среды, и после развертывания ваше приложение просто читает корректные значения.
Мы также предоставляем инструменты для диагностики и трассировки, которые упрощают обнаружение проблем приложений в облаке.
Внедрение зависимостей встроено в ASP.NET 5. Вы можете использовать свой IoC-контейнер для регистрации зависимостей. Зависимость инъекции облегчает предоставление правильных сервисов для среды использования. Для получения дополнительной информации см Dependecy Injection in ASP.NET vNext [20].
Весь код для ASP.NET 5 доступен на GitHub [21]. Мало того, что код доступен, мы используем репозитории GitHub для всей нашей разработки. Вы можете увидеть, какие именно изменения были внесены и когда они были сделаны. Вы можете скачать код и предоставить изменения.
Развивая ASP.NET 5 в GitHub, мы облегчаем понимание кода и нашего предполагаемого развития. Вы можете предлагать свои правки или разрабатывать кастомную реализацию ASP.NET.
Visual Studio 2015 предлагает легковесный подход к разработке ASP.NET приложений. Вы просто вносите изменения в код, сохраняете изменения и обновляете страницу в браузере. Вы увидите изменения браузере без повторного построения проекта.
Вы можете менять код веб-проекта или код библиотеки классов, на который ссылается проект. Вы можете запустить (CTRL + F5) проект, а не быть в режиме отладки, чтобы увидеть изменения.
Visual Studio использует компилятор Roslyn [22] для динамической компиляции. Вам по-прежнему доступна вся мощь компилируемого фреймворка, но при разработке создается ощущение использования интерпретируемого языка.
Каждой функции в графическом интерфейсе Visual Studio соответствует операция командной строки. Вы можете легко переключаться между использованием интерфейса и написанием скриптов в командной строке.
Наконец, можете использовать другие редакторы кода для проектов на ASP.NET 5.
Вы можете продолжить разработку приложения с использованием Web Forms и быть в полной уверенности, что Web Forms являются неотъемлемой частью платформы веб-разработки .NET. Мы по-прежнему сфокусированы на добавлении новых фич для Web Forms, чтобы опыт разработки соответствовал современным веб-практикам.
Web Forms 4.6 включает в себя следующие новые возможности:
Существующие Web Forms приложения будут продолжать работать без изменений на IIS с .NET 4.6. Вы не можете использовать Web Forms-приложения с Core CLR.
По ссылке [23]доступно видео о новых возможностях в Web Forms 4.6. Описание множества изменений для Web Forms в Visual Studio 2013 Update 2, смотрите Improvements to ASP.NET Web Forms. [24]
Возможно, вы обеспокоены тем, что с таким количеством изменений в ASP.NET 5, теперь нужно будет переписать все ваши приложения? Не волнуйтесь. Построенные на более ранних версиях ASP.NET приложения будут продолжать работать с новым .NET Framework. Вам не нужно обновлять или портировать эти приложения, если вам не нужны новые возможности ASP.NET 5.
Например, ваши приложения, которые в настоящее время используют Web Forms, MVC 5, Web API 2, SignalR 2, Web Pages 3 или Entity Framework 6 полностью поддерживаются в новом фреймворке без изменений. Однако, необходимо использовать полный .NET CLR для запуска старых приложений, потому что только в этом CLR обеспечена полную совместимость с более ранними версиями.
Core CLR имеет несколько ограниченное API. Для использования Core CLR, приложение должно использовать только те типы и члены, которые доступны в этой среде выполнения.
Чтобы убедиться, что ваше приложение может работать в среде выполнения Core CLR, используйте API Portability Analyzer [25]. Этот инструмент говорит вам, на каких платформах может быть запущено ваше приложение и какие зависимости блокируют запуск приложения на других платформах. Это поможет вам понять масштабы необходимых изменений и предлагает новые типы или члены для замены неподдерживаемых.
Приложения MVC 6 и SignalR 3 используют новый конвейер HTTP, поэтому они не совместимы с приложениями, которые используют System.Web. Чтобы обновить существующее приложение до MVC 6 или SignalR 3, вы должны создать новый проект в Visual Studio 2015, а затем перенести код в новый проект. При переносе, то вам нужно изменить неподдерживаемый код.
Автор: GraDea
Источник [26]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/asp-net-mvc/75015
Ссылки в тексте:
[1] хостинга: https://www.reg.ru/?rlink=reflink-717
[2] загрузив : http://go.microsoft.com/fwlink/?linkid=517106
[3] Visual Studio 2015 Preview: http://www.visualstudio.com/en-us/news/vs2015-preview-vs
[4] Почему ASP.NET была переработана?: #why
[5] Необходимость гибкой кросс-платформенной среды выполнения: #need
[6] Хостинг в любом месте: #hosting
[7] Используйте различные версии .NET бок о бок: #sideBySide
[8] Упрощение управления зависимостями: #depManagement
[9] Устранение дублирования в MVC, Web API и Web Pages: #duplication
[10] Повышение производительности HTTP: #performance
[11] Готовность к использованию в облаке: #cloud
[12] Интеграция инъекций зависимостей: #depInjection
[13] Открыть исходный код и сделать прозрачным: #openSource
[14] Обеспечить гибкую среду разработки: #flex
[15] Что с Web Forms?: #webforms
[16] Что насчет старых приложений?: #legacy
[17] Разработка приложений ASP.NET vNext на Mac: http://blogs.msdn.com/b/webdev/archive/2014/08/12/develop-asp-net-vnext-applications-on-a-mac.aspx
[18] Создание веб-API в MVC 6: http://www.asp.net/vnext/overview/aspnet-vnext/create-a-web-api-with-mvc-6
[19] Owin: http://owin.org/
[20] Dependecy Injection in ASP.NET vNext: http://blogs.msdn.com/b/webdev/archive/2014/06/17/dependency-injection-in-asp-net-vnext.aspx
[21] GitHub: https://github.com/aspnet
[22] компилятор Roslyn: http://msdn.microsoft.com/en-us/library/roslyn.aspx
[23] ссылке : http://go.microsoft.com/fwlink/?LinkId=518773
[24] Improvements to ASP.NET Web Forms.: http://blogs.msdn.com/b/webdev/archive/2014/05/13/improvements-to-asp-net-web-forms.aspx
[25] API Portability Analyzer: http://go.microsoft.com/fwlink/?LinkID=398760
[26] Источник: http://habrahabr.ru/post/243667/
Нажмите здесь для печати.