Любовное письмо .NET

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

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

Позвольте мне рассказать вам, почему.

Краткий урок истории

Когда Microsoft представила .NET, они решили, что создают не единый язык, а управляемую структуру, которую разные языки будут компилировать для работы. Это имело смысл, учитывая, что одной из основных целей .NET было решение проблемы DLL. ад »и упростить взаимодействие управляемого кода, предоставив людям более разумную альтернативу разработке COM .

Это означало, что вы могли писать код на VB .NET, если вы привыкли к Visual Basic, или пробовать новый язык программирования C #, если вам больше нравится синтаксис в стиле C ++ или Java. Это также дало Microsoft возможность внедрить новые языки, такие как F #.

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

Но сегодняшний мир сильно отличается от того, что было в начале 2000-х годов.

.NET в современном мире

Поскольку .NET начинается как решение для повышения производительности для настольных компьютеров и веб-разработки Windows, интересно, как с тех пор он радикально принял кроссплатформенную и облачную разработку. Microsoft понимает, что люди хотят запускать серверы в таких вещах, как контейнеры Docker, и на платформах, отличных от Windows. Это не скупое признание с их стороны, а настоящее объятие с распростертыми объятиями и спринт в кроссплатформенный мир открытого исходного кода.

Мир изменился, и облачные сервисы стали нормой. Технологии Microsoft отлично работают в самых разных средах облачного хостинга, и с каждым выпуском появляется все больше возможностей. Конечно, Microsoft хотела бы, чтобы вы использовали Azure, но все равно замечательно, если ваша команда предпочитает AWS.

Front-End решения

Фронтенд-технологии изменились больше, чем что-либо еще. Это очевидно в стеке Microsoft, просто взглянув на Windows Forms, WPF, XBAP, Silverlight, Windows Phone, Windows Universal, ASP .NET WebForms, MVC, а теперь и на Blazor.

В начале .NET JavaScript был маленькой вещью для проверки корзины покупок перед тем, как вы нажмете «Отправить». Теперь JavaScript - основная часть технологического стека и ключевая часть взаимодействия с пользователем. Microsoft внесла свой вклад в этот бум, предоставив нам TypeScript, который поможет обеспечить безопасность типов во время компиляции в JavaScript.

Microsoft также выпустила VS Code - чрезвычайно функциональную и бесплатную кроссплатформенную среду IDE, которая отлично подходит для разработки на JavaScript. Visual Studio теперь работает и на Mac, а мы занимаемся кроссплатформенной разработкой.

Microsoft продолжает вводить новшества с Blazor, где они используют скомпилированные языки и создают веб-сборку, чтобы позволить разработчикам писать веб-приложения на языках, отличных от JavaScript. Эта технология все еще находится на стадии становления и находится на ранней стадии, но постоянная приверженность и обещание остаются.

Что я люблю?

Итак, теперь, когда мы рассмотрели, что такое структура и как она изменилась, почему мне лично она нравится?

Это не подходит для каждого проекта, но для меня .NET отлично подходит для внутреннего кода и разработки для настольных компьютеров и мобильных устройств. Конечно, веб-аспекты великолепны, но лично я больше склоняюсь к Angular и JavaScript / TypeScript SPA для веб-презентации - в сочетании с чрезвычайно мощным серверным API-решением .NET.

C # предоставляет очень сильный синтаксис для решения объектно-ориентированных задач.

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

Если вы более склонны к функциональности, F # предлагает возможности .NET Framework, смешанные с функциональным программированием. Кроме того, код F # может взаимодействовать с кодом C # или VB .NET - и наоборот - позволяя вам смешивать функциональный и объектно-ориентированный код.

Что касается фактических языковых функций, мне особенно нравятся обобщения .NET, методы расширения, лямбда-выражения и LINQ. EntityFramework значительно упрощает и повышает производительность гибкости базы данных.

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

Заключение

Я уже писал раньше о том, чем .NET похож на Borg - медленно осваивая новые функции и возможности. Это остается актуальным и является невероятно веским доводом в пользу фреймворка - он адаптируется к новым ситуациям и предлагает новые возможности по мере изменения мира.

Мне вспоминается ветка анекдотов, сравнивающая разные языки программирования с лодками еще в 2008 году. В комментариях пользователь по имени RJ сказал о .NET следующее:

.Net, несомненно, представляет собой флотилию средних кораблей, находящихся в разной степени неисправности, и ни одна лодка не возглавляет другие. Через случайные промежутки времени к флотилии будут добавляться новые частично укомплектованные лодки - но поскольку эти корабли делают то же самое, что и некоторые другие корабли, никто не потрудится их добить. Иногда некоторые из этих кораблей тонут, чтобы их больше никто не видел, но на самом деле никто этого не замечает.

RJ был не так уж и далек. Конечно, мы потеряли несколько кораблей, но .NET теперь представляет собой великолепную армаду, способную преодолевать любые морские просторы океана.

Если вы планируете изучить .NET, попробуйте. Это много, но вы будете вознаграждены. Я рекомендую вам начать с чего-нибудь небольшого, например, с консольного приложения или создания .NET Core Web API.

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

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

Первоначально опубликовано на https://dev.to 24 сентября 2019 г.