.NET Framework против .NET Core | серверные приложения

В последние годы у Microsoft получается быстро разрабатывать и выпускать новые технологии. Когда я начал программировать в 2015 году, только что был анонсирован .NET Core, а основной программной платформой Microsoft была .NET Framework. .NET Core появился на рынке как современное решение, устраняющее ограничения традиционной .NET Framework, и с момента своего выпуска завоевал большую популярность.

Разрабатывая сложные бизнес-приложения, в первую очередь для компаний, предоставляющих финансовые услуги, мы работали с платформами .NET и .NET Core. Поэтому в этой статье я поделюсь своим опытом и сосредоточусь на сравнении двух фреймворков. Я расскажу вам о некоторых основах .NET, приведу несколько примеров из моих ежедневных проектов, а также расскажу, на что обратить внимание.

Экосистема .NET Framework

Прежде чем рассматривать две платформы, давайте начнем с общей картины экосистемы .NET. Он состоит из трех основных компонентов: .NET Framework, .NET Core и Xamarin, как показано на рисунке ниже.

net-framework-vs-net-core

Xamarin используется для создания кроссплатформенных мобильных приложений. Он нацелен на устройства iOS, Android или Windows Phone. Это не является предметом этой статьи, потому что если решение, которое вы разрабатываете, является мобильным приложением, Xamarin в настоящее время является единственным выбором.

.Net Framework — это первая программная среда, представленная Microsoft еще в 2000 году. Она включает в себя среду выполнения для создания приложений Windows и веб-служб, а также поддерживает веб-сайты, службы и приложения для настольных компьютеров. Он используется уже 20 лет. что доказывает его надежность, а также множество инструментов и библиотек, разработанных для него.

.Net Core был представлен в 2016 году как кроссплатформенный фреймворк с открытым исходным кодом. Он используется для создания приложений для всех операционных систем, включая Windows, Mac и Linux. .Net Core поддерживает несколько языков — C#, Visual Basic и F#. При создании фреймворка основное внимание уделялось высокопроизводительным и масштабируемым системам. Он также оптимизирован для разработки микросервисов.

Когда использовать .NET Framework

Когда текущая среда работает и стабильна

.NET Framework — очень хороший выбор, когда у вас есть стабильная рабочая среда. Когда я начал работать в моей нынешней команде, все проекты уже были разработаны и протестированы. Команда создала стабильную среду, и она работала. Когда возникла потребность в новой функциональности, не было смысла переходить на .NET Core просто потому, что это современное решение. Мы предпочли стабильность во времени.

Когда целевые библиотеки работают только для .NET Framework

Недавно, изучая, как создать новую систему управления идентификацией клиентов и доступом для ведущей компании, предоставляющей финансовые услуги в Южной Африке, команда остановилась на реализации протокола LDAP на .NET Core в облаке Azure. Оказалось, что некоторые библиотеки поддерживаются .NET Framework, но не поддерживаются .NET Core. Поскольку это была новая система, мы думали начать писать на .NET Core. Однако у нас уже была рабочая реализация, в которой использовалась библиотека служб каталогов.

Мы использовали его как референс для разработки новой системы, но оказалось, что библиотека не была перенесена в .NET Core. Он был доступен только для .NET Framework. Несмотря на то, что мы хотели перейти на новую структуру, реализация LDAP сдерживала нас. После дальнейшего изучения мы обнаружили еще одну библиотеку, которая помогла нам, разработчикам .NET, заявить в предварительных сводках 5, что миграция служб каталогов выполнена в их выпуске и теперь доступна для кросс-платформенного использования.

КОГДА ИСПОЛЬЗОВАТЬ .NET CORE

При создании нового приложения .NET

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

При нацеливании на кроссплатформенное или облачное развертывание

Говоря об инфраструктуре и хостинге, я должен еще раз упомянуть, что приложения .NET Core работают на нескольких платформах. Наша команда активно помогает клиентам переносить приложения в облако из-за снижения затрат на обслуживание по сравнению с локальными серверами или виртуальными машинами. Например, большинство новых сервисов, которые мы разрабатываем, развернуты в Azure. Инструменты непрерывной интеграции, использующие выделенные серверы, выведены из эксплуатации, а все конвейеры перенесены в Azure DevOps. Облачное развертывание так же очень популярно в команде.

БУДУЩЕЕ .NET FRAMEWORK — .NET 5

Следующим крупным выпуском станет .NET 5, который ожидается в ноябре 2020 года. По словам Microsoft, этот новый проект изменит правила игры. Вы знаете, почему он называется .NET 5? Текущая версия .NET Core — 3.1, и она может сбить с толку пользователей, знакомых с .NET Framework, которая уже давно использует серию 4.x. Кроме того, Microsoft хочет сообщить, что .NET 5 — это будущее платформы .NET. На самом деле .NET 5 представляет собой следующую версию .NET Core, поэтому мы можем использовать название .NET Core 5. Сообщение здесь в том, что у .NET Framework больше не будет выпусков. Однако, как и все продукты Microsoft, он будет поддерживаться в течение нескольких лет, пока они не перейдут на использование только .NET Core.

.NET 5 — это следующий шаг вперед с .NET Core. Новая версия направлена ​​на улучшение .NET следующим образом:

  • .NET 5 будет единой и унифицированной средой выполнения и платформой .NET, используемой разработчиками, что даст возможность иметь одинаковый опыт разработчиков и поведение во время выполнения.
  • Новый фреймворк расширит возможности .NET, объединив лучшее из .NET Core, .NET Framework, Xamarin и Mono.
  • По данным команды Microsoft .NET, существует более 100 репозиториев. Переход на .NET 5 заставил их унифицировать, чтобы пользователи могли считать их пальцами. Все репозитории остаются открытыми.

Я ожидаю, что .NET 5 действительно изменит правила игры. Он сочетает в себе все лучшее, что есть в .NET, чтобы создать стандарт для создания следующего высокотехнологичного приложения во всем мире. Независимо от вашей целевой платформы разработки, вы можете использовать только .NET 5 (см. рис. 2). Это уменьшит кривую обучения, необходимую для переключения на разные платформы. Многие улучшения производительности также являются частью последней версии. Сообщество .NET понимает шумиху вокруг контейнеров, особенно говоря о Docker. Следовательно, существует множество оптимизаций и для контейнеров. Могу сказать, что Microsoft вызвала во мне энтузиазм по поводу этой функции!

net-framework-vs-net-core-2

Что в итоге

Чтобы иметь возможность предлагать нашим клиентам лучшее из технологий .NET, необходимо смотреть в будущее и гибко использовать новые технологии. Однако мы живем в настоящем. .NET 5 все еще находится в предварительной версии. Даже после выхода .NET 5 долго не будет поддерживаться. Таким образом, нам нужно дать некоторое время сообществу .NET для разработки более зрелого программного обеспечения, прежде чем внедрять его в производство. «Версия 2 никогда не работает с первого раза», как было заявлено во время .NET Conf: Focus on Microservice. Я ожидаю, что .NET 6 станет более стабильной версией, которую мы ждем в 2021 году.

Между тем, полезно знать разницу между двумя доступными фреймворками — .NET Framework и .NET Core. Это даст вам возможность выбрать лучший фреймворк для вашего проекта. В конце концов, вы можете просто выбрать последнюю стабильную версию, будь то .NET Framework или .NET Core. Это обеспечит высокую производительность, безопасность и улучшение кодирования. Если у вас есть возможность, я советую перейти с .NET Framework на .NET Core 3.1. Исходя из этого, это значительно облегчит вашу жизнь, когда придет время перейти на версию .NET 5.

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

Оставьте комментарий

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