Версии и зависимости платформы .net framework

Содержание:

Что такое фреймворк

Если обратиться к истории самого слова «фреймворк», то этот неологизм появился в языке относительно недавно, примерно в начале XXI века. С английского слово “framework” можно перевести как «конструкция», «структура», «каркас», «корпус» или «остов». Понимание перевода слова ведет к понимаю сути фреймворка: это специальная программная среда выполнения, программный каркас, который облегчает разработку программ и объединение компонентов, так как уже содержит в себе некую основу, не меняющуюся от конфигурации к конфигурации часть, которую следует лишь наполнить сменными моделями или точками расширения.
В отличие от динамической библиотеки (DLL), которая предоставляет собой лишь набор ограниченных функций, фреймворк является каркасом, согласно которому будет строиться архитектура приложения, то есть он определяет взаимосвязь между компонентами. Более того, фреймворк может содержать много разных по тематике библиотек.

При этом фреймворки можно поделить на следующие виды:

  • фреймворк программной системы;
  • фреймворк приложения;
  • фреймворк концептуальной модели.

В данном цикле в поле нашего зрения окажутся фреймворки, которые относятся к первому типу и помогают разрабатывать веб-проекты.

.NET Framework для разработчиков

Разработчики могут создавать приложения на любом языке программирования, поддерживающем платформу .NET Framework. Так как платформа .NET Framework обеспечивает независимость и взаимодействие языков, вы можете взаимодействовать с другими приложениями и компонентами платформы .NET Framework независимо от языка, с помощью которого они были разработаны.

Перед разработкой приложений или компонентов платформы .NET Framework сделайте следующее:

  1. Если платформа не предустановлена в операционной системе, установите версию платформы .NET Framework, на которой будет работать ваше приложение. Текущая версия — .NET Framework 4.8. Она предварительно установлена в обновлениях Windows 10 за май и ноябрь 2019 года и май и октябрь 2020 г., а также доступна для скачивания в более ранних версиях ОС Windows. Требования к системе для .NET Framework см. в разделе Требования к системе. Сведения об установке других версий .NET Framework см. в руководстве по установке. Дополнительные пакеты .NET Framework выпускаются внештатно. Это значит, что они выпускаются по очереди, нерегулярно. Дополнительные сведения об этих пакетах см. в статье .NET Framework и внештатные выпуски.

  2. Выберите язык или языки, поддерживаемые версией платформы .NET Framework, которую вы хотите использовать для разработки приложений. Поддерживается целый ряд языков, в том числе Visual Basic, C#, F# и C++/CLI от Майкрософт. (Язык программирования, позволяющий разрабатывать приложения для .NET Framework, соответствует спецификации Common Language Infrastructure (CLI).)

  3. Выберите и установите среду разработки, которая будет использоваться для создания приложений и которая поддерживает выбранные язык или языки программирования. Интегрированной средой разработки Майкрософт для приложений .NET Framework является Visual Studio. Доступны разные выпуски.

Дополнительные сведения о разработке приложений, предназначенных для .NET Framework, см. в руководстве по разработке.

Сравнение чистого кода, фреймворка и CMS

Перед созданием сайта программисту нужно решить, по какому из трех возможных путей разработки сайта он хочет пойти.

Первый вариант – это написание исходного кода с нуля. Такой путь удобен, так как дает свободу действий и практически неограниченный функционал, который можно реализовать. Среди минусов необходимо выделить трудоемкость и растянутость во времени, а также необходимость тщательно тестировать готовый продукт на предмет ошибок и недоработок.

Второй вариант – это использование фреймворков. Безусловно, этот вариант имеет ряд ограничений, если сравнивать его с предыдущим путем: у вас уже будет готовая основа, которую необходимо будет заполнить нужными компонентами. Естественно, даже такой вариант не подойдет тем, кто мало знаком с программированием, и именно поэтому на свет появился третий способ создания сайта.

Третий вариант – установка готовой CMS. Этот путь популярен у людей, далеких от веб-разработки, так как он позволяет легко и быстро создать свой собственный сайт, при этом все необходимые действия можно выполнять из административной панели. Но в то же время этот подход является самым несвободным по сравнению с предыдущими двумя и обладает массой ограничений.

Таким образом, фреймворк – это некий компромисс между написанием собственного кода и использованием готовой системы управления контентом. Фреймворк обеспечивает проект уже готовым каркасом, при этом не лишает его функциональной гибкости.
Необходимые для веб-разработки фреймворки чаще всего делят по принципу языка, к которому они относятся. В данной и следующей статьях я последовательно рассмотрю, какие фреймворки существуют, и в чем заключаются их особенности.

Architecture of .NET Framework

The two major components of .NET Framework are the Common Language Runtime and the .NET Framework Class Library.

  • The Common Language Runtime (CLR) is the execution engine that handles running applications. It provides services like thread management, garbage collection, type-safety, exception handling, and more.
  • The Class Library provides a set of APIs and types for common functionality. It provides types for strings, dates, numbers, etc. The Class Library includes APIs for reading and writing files, connecting to databases, drawing, and more.

.NET applications are written in the C#, F#, or Visual Basic programming language. Code is compiled into a language-agnostic Common Intermediate Language (CIL). Compiled code is stored in assemblies—files with a .dll or .exe file extension.

When an app runs, the CLR takes the assembly and uses a just-in-time compiler (JIT) to turn it into machine code that can execute on the specific architecture of the computer it is running on.

Как научиться пользоваться веб-фреймворками

Научиться пользоваться фреймворками можно самостоятельно. Чтобы найти руководство по веб-фреймворкам, изучите их документацию. Главный плюс официальных источников — актуальность. В таких обучающих материалах используются возможности последних версий фреймворков.

Если в документации нет простых гайдов, можно поискать их на других площадках. Например, на freeCodeCamp есть бесплатный курс по React, а на сайте Tutorialspoint — туториалы по разным языкам и технологиям.

Неплохой источник информации — YouTube. На видеохостинге выкладывают обзоры и пошаговые руководства. Просмотр таких роликов поможет выбрать подходящий фреймворк, если вы пока сомневаетесь. Не забывайте и про StackOverflow. Но туда нужно приходить уже с конкретными вопросами, которые возникли при изучении или использовании фреймворка.

По материалам поста Web Frameworks: How To Get Started

Разница между CMS, фреймворками и написание кода с нуля

Разбираем на примере фронтенд-разработки. Предположим, вам нужно создать сайт. Есть 3 подхода, которые можно использовать: написать код с нуля, использовать framework или использовать CMS.

  • Написать код с нуля. Открыть блокнот и с чистой строки написать весь сайт. Это удобно: можно сделать абсолютно все под себя. Ровно так, как вам нужно. Можно использовать любые технологии.Проведем аналогию с рисованием. Написать код с нуля — это как оказаться перед абсолютно чистым листом бумаги, имея под рукой все возможные инструменты рисования, от фломастеров до мелков. Полный полет фантазии.У этого подхода есть и минусы. Во-первых, это долго и дорого. Во-вторых, сложно. Нужно тщательно проверять работоспособность каждой функции, чтобы ничего не западало. В этом подходе высокий порог входа: разработчик-новичок не сможет создать полноценный продукт с нуля. Цена каждой ошибки высока.
  • Использовать CMS. Возможно, вы слышали названия самых популярных из них: WordPress, Joomla, Drupal. Использование CMS — это почти противоположный вариант первому. Создать сайт с использованием CMS может любой уверенный пользователь компьютера, ему даже не обязательно быть разработчиком.CMS — это, по сути, уже готовый сайт. Вам остается только наполнить его содержанием: загрузить текст, картинки, видео и любой другой контент. И настроить внешний вид: шрифты, цвета, стили и другое. Если продолжать аналогию с рисованием, то использование CMS — это раскраска. За вас уже все нарисовали, промахнуться невозможно. Осталось только выбрать цвет фломастера и закрасить нужные части рисунка.
  • Использовать framework. Framework — это промежуточный вариант по гибкости и сложности между написанием кода с нуля и использованием CMS. Если написание кода с нуля — это рисование любыми инструментами на чистом листе бумаги, а использование CMS — раскраска, то использование framework — это рисование в блокноте в клеточку. С одной стороны, вы все еще можете нарисовать что угодно и как угодно. С другой, уже есть направляющие линии и границы блокнота, так что рисовать проще.

Возможности среды CLR

Среда CLR управляет памятью, выполнением потоков, выполнением кода, проверкой безопасности кода, компиляцией и другими системными службами. Эти средства являются внутренними для управляемого кода, который выполняется в среде CLR.

По соображениям безопасности управляемым компонентам присваиваются разные степени доверия, зависящие от ряда факторов, в число которых входит их происхождение (например, Интернет, сеть предприятия или локальный компьютер). Это означает, что управляемый компонент может или не может выполнять операции доступа к файлам, операции доступа к реестру или другие важные функции, даже если он используется в одном и том же активном приложении.

Среда выполнения также обеспечивает надежность кода, реализуя инфраструктуру строгой типизации и проверки кода, которую называют системой общих типов (CTS). Система общих типов обеспечивает самоописание всего управляемого кода. Различные языковые компиляторы корпорации Microsoft и независимых изготовителей создают управляемый код, удовлетворяющий системе общих типов . Это означает, что управляемый код может принимать другие управляемые типы и экземпляры, при этом обеспечивая правильность типов и строгую типизацию.

Кроме того, управляемая среда выполнения исключает многие часто возникающие проблемы с программным обеспечением. Например, среда выполнения автоматически управляет размещением объектов и ссылками на объекты, освобождая их, когда они больше не используются. Автоматическое управление памятью исключает две наиболее часто возникающие ошибки приложений: утечки памяти и недействительные ссылки на память.

Среда выполнения также повышает продуктивность разработчиков. Например, программисты могут писать приложения на привычном языке разработки, при этом используя все преимущества среды выполнения, библиотеки классов и компонентов, написанных другими разработчиками на других языках. Это доступно любому производителю компиляторов, обращающихся к среде выполнения. Языковые компиляторы, предназначенные для платформы .NET Framework, делают средства .NET Framework доступными для существующего кода, написанного на соответствующих языках, существенно облегчая процесс переноса существующих приложений.

Хотя среда выполнения разрабатывалась для будущего программного обеспечения, она также поддерживает сегодняшнее и вчерашнее программное обеспечение. Взаимодействие управляемого и неуправляемого кодов позволяет разработчикам использовать необходимые компоненты COM и библиотеки DLL.

Среда выполнения разработана для повышения производительности. Хотя общеязыковая среда выполнения предоставляет многие стандартные службы времени выполнения, управляемый код никогда не интерпретируется. Средство компиляции по требованию (JIT) позволяет выполнять весь управляемый код на машинном языке компьютера, где он запускается. Между тем диспетчер памяти устраняет возможность фрагментации памяти и увеличивает объем адресуемой памяти для дополнительного повышения производительности.

Наконец, среда выполнения может размещаться в высокопроизводительных серверных приложениях, таких как Microsoft SQL Server и службы IIS (Internet Information Services). Такая инфраструктура позволяет использовать управляемый код для написания собственной логики программ, пользуясь при этом высочайшей производительностью лучших производственных серверов, которые поддерживают размещение среды выполнения.

Supported server operating systems

Operating system Supported editions Preinstalled with the OS Installable separately
Windows Server 2019 64-bit .NET Framework 4.7.2 .NET Framework 4.8
Windows Server, version 1809 64-bit .NET Framework 4.7.2 .NET Framework 4.8
Windows Server, version 1803 64-bit .NET Framework 4.7.2 .NET Framework 4.8
Windows Server, version 1709 64-bit .NET Framework 4.7.1 .NET Framework 4.7.2
Windows Server 2016 64-bit .NET Framework 4.6.2 .NET Framework 4.7 .NET Framework 4.7.1.NET Framework 4.7.2.NET Framework 4.8
Windows Server 2012 R2 64-bit .NET Framework 4.5.1 .NET Framework 4.5.2 .NET Framework 4.6 .NET Framework 4.6.1 .NET Framework 4.6.2.NET Framework 4.7 .NET Framework 4.7.1.NET Framework 4.7.2.NET Framework 4.8
Windows Server 2012 (64-bit edition) 64-bit .NET Framework 4.5 .NET Framework 4.5.1 .NET Framework 4.5.2 .NET Framework 4.6 .NET Framework 4.6.1 .NET Framework 4.6.2.NET Framework 4.7.NET Framework 4.7.1.NET Framework 4.7.2.NET Framework 4.8
Windows Server 2008 R2 SP1 64-bit .NET Framework 4 .NET Framework 4.5 .NET Framework 4.5.1 .NET Framework 4.5.2 .NET Framework 4.6 .NET Framework 4.6.1 .NET Framework 4.6.2.NET Framework 4.7.NET Framework 4.7.1.NET Framework 4.7.2.NET Framework 4.8
Windows Server 2008 SP2 32-bit and 64-bit .NET Framework 4 .NET Framework 4.5 .NET Framework 4.5.1 .NET Framework 4.5.2 .NET Framework 4.6

Notes:

  • Windows Server 2012 includes .NET Framework 4.5, so you don’t have to install it separately. Similarly, Windows Server 2012 R2 includes .NET Framework 4.5.1.

  • .NET Framework has limited support for the Server Core Role with Windows Server 2008 R2 SP1 or later. See Server Core .NET Functionality for a list of unsupported APIs.

  • .NET Framework isn’t supported on Windows Server 2008 R2 for Itanium-Based Systems.

  • On Windows Server 2008 SP2, .NET Framework is not supported in the Server Core Role.

  • For all platforms, we recommend that you upgrade to the latest Windows Service Pack and critical updates available from Windows Update to ensure the best compatibility and security. Installation of the latest Windows Service Pack may be required on some operating systems.

  • On 64-bit operating systems, .NET Framework supports both WOW64 (32-bit processing on a 64-bit machine) and native 64-bit processing.

.NET Framework class library

The .NET Framework class library is a collection of reusable types that tightly integrate with the common language runtime. The class library is object oriented, providing types from which your own managed code derives functionality. This not only makes the .NET Framework types easy to use but also reduces the time associated with learning new features of the .NET Framework. In addition, third-party components integrate seamlessly with classes in the .NET Framework.

For example, the .NET Framework collection classes implement a set of interfaces for developing your own collection classes. Your collection classes blend seamlessly with the classes in the .NET Framework.

As you would expect from an object-oriented class library, the .NET Framework types enable you to accomplish a range of common programming tasks, including string management, data collection, database connectivity, and file access. In addition to these common tasks, the class library includes types that support a variety of specialized development scenarios. You can use .NET Framework to develop the following types of apps and services:

  • Console apps. See Building Console Applications.

  • Windows GUI apps (Windows Forms). See Windows Forms.

  • Windows Presentation Foundation (WPF) apps. See Windows Presentation Foundation.

  • ASP.NET apps. See Web Applications with ASP.NET.

  • Windows services. See Introduction to Windows Service Applications.

  • Service-oriented apps using Windows Communication Foundation (WCF). See Service-Oriented Applications with WCF.

  • Workflow-enabled apps using Windows Workflow Foundation (WF). See Windows Workflow Foundation.

The Windows Forms classes are a comprehensive set of reusable types that vastly simplify Windows GUI development. If you write an ASP.NET Web Form app, you can use the Web Forms classes.

Supported client operating systems

Operating system Supported editions Preinstalled with the OS Installable separately
Windows 10 October 2020 Update (version 20H2) 32-bit and 64-bit .NET Framework 4.8
Windows 10 May 2020 Update (version 2004) 32-bit and 64-bit .NET Framework 4.8
Windows 10 November 2019 Update (version 1909) 32-bit and 64-bit .NET Framework 4.8
Windows 10 May 2019 Update (version 1903) 32-bit and 64-bit .NET Framework 4.8
Windows 10 October 2018 Update (version 1809) 32-bit and 64-bit .NET Framework 4.7.2 .NET Framework 4.8
Windows 10 April 2018 Update (version 1803) 32-bit and 64-bit .NET Framework 4.7.2 .NET Framework 4.8
Windows 10 Fall Creators Update (version 1709) 32-bit and 64-bit .NET Framework 4.7.1 .NET Framework 4.7.2.NET Framework 4.8
Windows 10 Creators Update (version 1703) 32-bit and 64-bit .NET Framework 4.7 .NET Framework 4.7.1.NET Framework 4.7.2.NET Framework 4.8
Windows 10 Anniversary Update (version 1607) 32-bit and 64-bit .NET Framework 4.6.2 .NET Framework 4.7.NET Framework 4.7.1.NET Framework 4.7.2.NET Framework 4.8
Windows 10 November Update (version 1511) 32-bit and 64-bit .NET Framework 4.6.1 .NET Framework 4.6.2
Windows 10 (version 1507) 32-bit and 64-bit .NET Framework 4.6 .NET Framework 4.6.1 .NET Framework 4.6.2
Windows 8.1 32-bit, 64-bit, and ARM .NET Framework 4.5.1 .NET Framework 4.5.2 .NET Framework 4.6 .NET Framework 4.6.1 .NET Framework 4.6.2.NET Framework 4.7.NET Framework 4.7.1.NET Framework 4.7.2.NET Framework 4.8
Windows 8 32-bit, 64-bit, and ARM .NET Framework 4.5 .NET Framework 4.5.1.NET Framework 4.5.2 .NET Framework 4.6 .NET Framework 4.6.1
Windows 7 SP1 32-bit and 64-bit .NET Framework 4 .NET Framework 4.5 .NET Framework 4.5.1 .NET Framework 4.5.2 .NET Framework 4.6 .NET Framework 4.6.1 .NET Framework 4.6.2.NET Framework 4.7.NET Framework 4.7.1.NET Framework 4.7.2.NET Framework 4.8
Windows Vista SP2 32-bit and 64-bit .NET Framework 4 .NET Framework 4.5 .NET Framework 4.5.1 .NET Framework 4.5.2 .NET Framework 4.6
Windows XP 32-bit and 64-bit .NET Framework 4

Notes:

  • On Windows 7 systems, .NET Framework requires Windows 7 SP1. If you’re on Windows 7 and haven’t yet installed Service Pack 1, you need to do so before installing the .NET Framework.

  • .NET Framework 4.5 is supported on the Windows Preinstallation Environment (Windows PE). Not all features are supported on Windows PE.

  • .NET Framework 4 also supports the IA64 platform.

  • For all platforms, we recommend that you upgrade to the latest Windows Service Pack and install critical updates available from Windows Update to ensure the best compatibility and security.

  • On 64-bit operating systems, .NET Framework supports both WOW64 (32-bit processing on a 64-bit machine) and native 64-bit processing.

Случаи использования .NET Core/5+

В следующих разделах более детально описаны указанные ранее причины для выбора платформы .NET Core/5+.

Создание кроссплатформенных приложений

Если вам нужно создать приложение (веб-приложение или службу) с поддержкой разных платформ (Windows, Linux и macOS), рекомендуется использовать .NET Core/5+.

В среде .NET Core/5+ также можно использовать упомянутые ранее операционные системы в качестве рабочих станций для разработки. Visual Studio предоставляет интегрированную среду разработки (IDE) для Windows и macOS. Можно также использовать редактор Visual Studio Code, который выполняется на платформах macOS, Linux и Windows. Visual Studio Code поддерживает .NET Core/5+, включая технологию IntelliSense и отладку. С .NET Core/5+ работает большинство сторонних редакторов, например Sublime, Emacs и VI. Эти сторонние редакторы получают доступ к функциям в редакторе IntelliSense с помощью Omnisharp. Вы также можете использовать вместо редакторов кода непосредственно .NET CLI, доступный для всех поддерживаемых платформ.

Архитектура микрослужб

Архитектура микрослужб позволяет использовать сочетание технологий за пределами службы. Такое сочетание технологий позволяет постепенно добавлять новые микросолужбы в .NET Core/5+ для параллельного использования с другими микрослужбами и службами. Например, можно комбинировать микрослужбы или службы, созданные на основе .NET Framework, Java, Ruby или других монолитные технологий.

Пользователям на выбор предоставляется множество инфраструктурных платформ. Для больших и сложных систем микрослужб можно использовать Azure Service Fabric. Служба приложений Azure лучше всего подойдет для микрослужб без сохранения состояния. Альтернативы микрослужб на основе Docker поддерживают любые подходы, как описано в разделе . Все эти платформы поддерживают .NET Core/5+ и идеально подходят для размещения микрослужб.

Дополнительные сведения об архитектуре микрослужб см. в статье Микрослужбы .NET: архитектура контейнерных приложений .NET.

Контейнеры

Контейнеры обычно используются вместе с архитектурой микрослужб. Их также можно использовать, чтобы поместить в контейнер веб-приложения или службы на базе любого архитектурного шаблона. Среду .NET Framework можно использовать для контейнеров Windows, но упрощенные возможности и модульный принцип среды .NET Core/5+ делают ее оптимальной для контейнеров. При создании и развертывании контейнера размер его образа гораздо меньше в среде .NET Core/5+. Так как эта среда поддерживает разные платформы, серверные приложения можно развертывать, например, в контейнеры Docker в Linux.

Затем эти контейнеры можно размещать в собственной инфраструктуре Linux или Windows или в облачной службе,такой как Служба Azure Kubernetes. Служба Azure Kubernetes может выполнять оркестрацию и масштабировать приложения на основе контейнеров, а также управлять ими в облаке.

Масштабируемые системы с высокой производительностью

Если для вашей системы требуется максимальная производительность и возможности масштабирования, мы рекомендуем использовать среды .NET Core/5+ и ASP.NET Core. Высокопроизводительная серверная среда выполнения для Windows Server и Linux делает ASP.NET Core самой эффективной веб-платформой в .

Производительность и масштабируемость особенно важны для архитектур микрослужб, где могут выполняться сотни микрослужб. Среда ASP.NET Core позволяет уменьшить количество серверов и виртуальных машин, необходимых для системы. В конечном счете это способствует сокращению расходов на архитектуру и размещение.

Создание приложений с поддержкой разных версий .NET

Если требуется установить приложения с зависимостями в разных версиях платформ .NET, рекомендуется использовать среду .NET Core/5+. Такая реализация .NET поддерживает параллельную установку разных версий среды выполнения .NET Core/5+ на том же компьютере. За счет простой параллельной установки на одном сервере можно размещать несколько служб, каждая из которых устанавливается в собственной версии .NET Core/5+. Это позволяет устранить риски и сократить расходы на обновление приложений и ИТ-операции.

Параллельная установка невозможна при использовании .NET Framework. Это компонент Windows, и на компьютере может существовать только одна версия этого компонента. Каждая версия .NET Framework заменяет предыдущую версию. При установке нового приложения, предназначенного для более поздней версии .NET Framework, может быть нарушена работа существующих приложений, запущенных на компьютере, поскольку предыдущая версия была заменена.

When to choose .NET Framework

.NET Core/5+ offers significant benefits for new applications and application patterns. However, .NET Framework continues to be the natural choice for many existing scenarios, and as such, .NET Framework isn’t replaced by .NET Core/5+ for all server applications.

Current .NET Framework applications

In most cases, you don’t need to migrate your existing applications to .NET Core/5+. Instead, a recommended approach is to use .NET Core/5+ as you extend an existing application, such as writing a new web service in ASP.NET Core.

Third-party libraries or NuGet packages not available for .NET Core/5+

.NET Standard enables sharing code across all .NET implementations, including .NET Core/5+. With .NET Standard 2.0, a compatibility mode allows .NET Standard and .NET Core/5+ projects to reference .NET Framework libraries. For more information, see .

You need to use .NET Framework only in cases where the libraries or NuGet packages use technologies that aren’t available in .NET Standard or .NET Core/5+.

.NET Framework technologies not available for .NET Core/5+

Some .NET Framework technologies aren’t available in .NET Core/5+. The following list shows the most common technologies not found in .NET Core/5+:

  • ASP.NET Web Forms applications: ASP.NET Web Forms are only available in .NET Framework. ASP.NET Core cannot be used for ASP.NET Web Forms.

  • ASP.NET Web Pages applications: ASP.NET Web Pages aren’t included in ASP.NET Core.

  • WCF services implementation. Even when there’s a WCF client library to consume WCF services from .NET Core/5+, WCF server implementation is currently only available in .NET Framework.

  • Workflow-related services: Windows Workflow Foundation (WF), Workflow Services (WCF + WF in a single service), and WCF Data Services (formerly known as «ADO.NET Data Services») are only available in .NET Framework.

  • Language support: Visual Basic and F# are currently supported in .NET Core/5+, but not for all project types. For a list of supported project templates, see .

For more information, see .NET Framework technologies unavailable in .NET 5.

Platform doesn’t support .NET Core/5+

Some Microsoft or third-party platforms don’t support .NET Core/5+. Some Azure services provide an SDK not yet available for consumption on .NET Core/5+. In such cases, you can use the equivalent REST API instead of the client SDK.

Случаи использования .NET Framework

Среда .NET Core/5+ предоставляет значительные преимущества для новых приложений и шаблонов приложений. Но платформа .NET Framework остается оптимальным выбором во многих ситуациях, поэтому .NET Core/5+ не заменит .NET Framework для всех серверных приложений.

Готовые приложения .NET Framework

В большинстве случаев вам не потребуется переносить готовые приложения в среду .NET Core/5+. Взамен мы советуем использовать .NET Core/5+ для расширения готовых приложений, например для написания новой веб-службы в ASP.NET Core.

Сторонние библиотеки .NET и пакеты NuGet, недоступные для .NET Core/5+

.NET Standard позволяет совместно использовать код во всех реализациях .NET, включая .NET Core/5+. В .NET Standard 2.0 этот режим совместимости позволяет проектам .NET Standard и .NET Core/5+ ссылаться на библиотеки .NET Framework. Дополнительные сведения см. в статье .

Платформу .NET Framework следует применять только в случаях, где библиотеки или пакеты NuGet используют технологии, которые недоступны в .NET Standard и .NET Core/5+.

Технологии .NET Framework, недоступные в .NET Core/5+

Некоторые технологии .NET Framework недоступны в среде .NET Core/5+. Ниже приведен список самых распространенных технологий, которые недоступны в .NET Core/5+.

  • Приложения веб-форм ASP.NET. Веб-формы ASP.NET доступны только в среде .NET Framework. ASP.NET Core не может использоваться для веб-форм ASP.NET.

  • Приложения веб-страниц ASP.NET. Веб-страницы ASP.NET не добавлены в среду ASP.NET Core.

  • Реализация служб WCF. Хотя в среду .NET Core/5+ и добавлена библиотека клиента WCF, позволяющая использовать службы WCF, сервер WCF можно реализовать только в среде .NET Framework.

  • Службы, связанные с рабочими процессами. Службы Windows Workflow Foundation (WF), Workflow Services (WCF и WF в одной службе) и WCF Data Services (известные как «Службы данных ADO.NET») доступны только в среде .NET Framework.

  • Поддержка языков.Сейчас в среде .NET Core/5+ поддерживаются Visual Basic и F#, но не для всех типов проектов. Список поддерживаемых шаблонов проектов см. в статье о .

Дополнительные сведения см. в разделе Технологии .NET Framework, недоступные в .NET 5.

Платформа не поддерживает .NET Core/5+

Некоторые платформы Майкрософт и платформы сторонних поставщиков не поддерживают среду .NET Core/5+. Некоторые службы Azure предоставляют пакеты SDK, недоступные в среде .NET Core/5+. В таких случаях в качестве альтернативы клиентскому пакету SDK можно использовать REST API.

Фреймворки

Пред­ставь­те: вам нуж­но постро­ить дом. Мож­но выбрать гото­вый типо­вой про­ект и немно­го поиг­рать с пла­ни­ров­кой, пока архи­тек­тор не про­тив и вы не тро­га­е­те капи­таль­ные сте­ны. А мож­но нари­со­вать план само­му и полу­чить имен­но тот дом, кото­рый хоти­те — даже если вы хоти­те цилин­дри­че­ский дом со вхо­дом на вто­ром этаже.

Раз­ни­ца в том, что в типо­вом про­ек­те уже всё про­ду­ма­но: опти­маль­ное рас­по­ло­же­ние ком­му­ни­ка­ций, теп­ло­изо­ля­ция стен, спо­со­бы залив­ки фун­да­мен­та, и еще мил­ли­он вещей, кото­рые со сто­ро­ны не вид­ны. Вы полу­ча­е­те тёп­лый и уют­ный дом, но в рам­ках гото­во­го проекта.

Так же рабо­та­ет фрейм­ворк. Вы исполь­зу­е­те гото­вый шаб­лон и напол­ня­е­те его сво­им кодом. Вы теря­е­те в гиб­ко­сти, зато про­грам­ма рабо­та­ет ста­биль­но: всё основ­ное фрейм­ворк берёт на себя. Под капо­том фрейм­вор­ка мил­ли­он нюан­сов: напри­мер, рабо­та с фай­ло­вой систе­мой и база­ми дан­ных, обра­бот­ка оши­бок, защи­та паролем.

Без фрейм­вор­ка вам нуж­но будет обо всём думать само­сто­я­тель­но. Это даёт боль­ше сво­бо­ды, но и боль­ше ответ­ствен­но­сти. Если кри­во реа­ли­зо­ва­на авто­ри­за­ция в базу дан­ных, через эту кри­виз­ну код смо­гут взло­мать. Если не напи­са­ли обра­бот­ку оши­бок, про­грам­ма может не рабо­тать. На язы­ке стро­и­тель­ства это экви­ва­лент дома без кана­ли­за­ции или когда в сте­нах не преду­смот­ре­ли дыр­ки под розетки.

При­ме­ры фреймворков:

  • Bootstrap — созда­ние сай­тов с адап­тив­ной вёрст­кой. Мож­но рисо­вать кра­си­вые кноп­ки, вер­стать текст во мно­го коло­нок, включать-выключать бло­ки в зави­си­мо­сти от шири­ны экра­на, делать выпа­да­ю­щие меню и мно­гое другое
  • Vue.js — обес­пе­чи­ва­ет еди­но­об­ра­зие ком­по­нен­тов и модуль­ный под­ход к раз­ра­бот­ке. Мож­но созда­вать соб­ствен­ные стро­и­тель­ные бло­ки для стра­ни­цы, делать шаблоны
  • Angular.JS — JavaScript фрейм­ворк от Google для дина­ми­че­ских веб-приложений, похож на Vue
  • django — фрейм­ворк для Python, наце­лен­ный на ско­рость: гото­вые ком­по­нен­ты для баз дан­ных, рисо­ва­ния стра­ниц, адми­нок, окон вхо­да на сайт, шаб­ло­нов и мно­же­ства дру­гих вещей
  • Ruby on Rails — тоже силь­но уско­ря­ет раз­ра­бот­ку сайтов

Вывод: фрейм­ворк даёт ста­биль­ность и удоб­ство раз­ра­бот­ки, но огра­ни­чи­ва­ет про­грам­ми­ста сво­ей архитектурой.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector