Як технології Open Source назавжди змінили .NET

Останнім часом усе стає доволі заплутаним. Є .NET Framework, є .NET Core, і є .NET. Усі вони значною мірою схожі між собою, але при цьому сильно відрізняються один від одного.

Як Open Source назавжди змінив .NET

Останнім часом усе стає доволі заплутаним. Є .NET Framework, є .NET Core, і є .NET. Усі вони значною мірою схожі між собою, але при цьому сильно відрізняються один від одного.

Все почалося з .NET Framework у 2002 році. За останні двадцять років програмне забезпечення змінило наше суспільство. Тепер люди і компанії покладаються на ПЗ набагато більше, ніж у 2002 році. Розробка ПЗ як професія теж змінилася. Звичайний розробник сьогодні набагато охочіше ділиться знаннями про свою професію з іншими девелоперами програмного забезпечення, ніж у 2002 році

З плином часу змінилася і розробка .NET. Адже .NET став цілим співтовариством, а не лише мовою програмування, якою його вважали дехто. .NET Framework і .NET Core/.NET - це суттєво різні речі.

Суттєво змінилася розробка .NET

Тут мова піде про те, як .NET Framework, а значить, і робота сучасного .NET-розробника змінилися за останні двадцять років. Давайте трошки повернемося в минуле:

Як з'явилася платформа .NET Framework

Все почалося у 2002. До 2002 року створення додатків мовою програмування Microsoft було далеко не легкою прогулянкою... Замість .NET у нас була мова програмування Visual Basic. На ній також можна було створювати веб-сайти, це і назвали ASP. Вона була непогана, але PHP і Java її перевершували, і дедалі більше й більше розробників відходили від мов програмування Microsoft.

Тому в 2002 році компанія Microsoft представила .NET Framework. Це набагато потужніше середовище додатків, розроблене так, щоб його могли легко опанувати програмісти на C++, Java і Visual Basic. З якою метою? Повернути всіх до програмування мовами Microsoft. І це спрацювало.

Впровадження Open Source

Коли у 2002 .NET Framework був уперше представлений, обмін ідеями та напрацюваннями між програмістами в Інтернеті не був заборонений з погляду компанії. Так, Open Source існував уже тоді, але більшість людей не розуміли його суті та думали, що він означає безкоштовне ПЗ.

З кожним роком проєктів з відкритим вихідним кодом з'являлося все більше й більше. Люди витрачали свій вільний час на створення додатків та охоче ділилися кодом в Інтернеті.

Багато хто підійшов до Open Source з іншого боку. Вони міркували так: "А навіщо платити за підтримку програмного забезпечення, яке не дає нам конкурентних переваг? Давайте зробимо його відкритим, поділимося ним з іншими компаніями, і нехай супровід стане колективною роботою.  Це знижує витрати на розробку ПЗ і робить його набагато дешевшим і швидшим.

Деякі компанії на основі Open Source вибудовували бізнес-модель. Використовуючи в розробці відкритий код, вони створювали попит вже на платний продукт, тобто, отримували прибуток.

У підсумку, сьогодні більша частина вашої кодової бази насправді не є вашою

Приблизно 2010 року Open Source остаточно прижився у спільноті .NET. Тоді з'явився менеджер пакетів під назвою NuGet. По суті, це означало, що розробники за допомогою Visual Studio могли завантажувати фрагменти ПЗ з відкритим вихідним кодом у свої програми

11.Як технології Open Source назавжди змінили .NET

Менеджер пакетів NuGet у Visual Studio. Завантажуйте все, що тільки захочете!

Open Source став доступним для рядового розробника, і багато що змінилося. Хочете надіслати електронного листа? Для цього не треба писати код! Завантажте пакет NuGet! У результаті будь-яке завдання, яке потрібно було реалізувати, завантажувалося в програму у вигляді NuGet-пакета, і розробнику лише залишалося написати те, що мало значення: бізнес-логіку.

Сутність програмного забезпечення змінювалася на очах. Більша частина будь-якого додатка являла собою сукупність пакетів NuGet, зшитих разом деяким користувацьким кодом. Та частина, якою керувала команда розробників, стала значно меншою, ніж раніше.

Хай живе .NET Core

У 2016 році цілі, поставлені компанією Microsoft перед .NET Framework, були успішно досягнуті. .NET Framework було визнано зрілою, потужною платформою додатків, і багато компаній використовували його для створення свого ПЗ.

Але. на той час Microsoft вже намітила нові цілі. У 2010 році компанія представила Microsoft Azure. Замість торгівлі ліцензіями на Windows, Microsoft вирішила  продавати інфраструктуру, що працює на платформі Azure.  Для цього мова програмування мала бути незалежною від платформи, а .NET Framework був якраз протилежністю цьому. Тому від .NET Framework відмовилися. Microsoft представила його наступника: .NET Core, незалежну від платформи систему застосунків, сумісну з хмарами Azure, AWS і Google cloud.

Нестабільність .NET (Core)

До 2016 року оновлення .NET Framework не мали великого впливу. Microsoft намагалася зберегти підтримку функцій зі старих версій .NET Framework. Але це змінилося. Microsoft оголосила про припинення випуску нових основних версій .NET Framework. Вони не могли повністю відмовитися від фреймворка, тому що занадто багато компаній сильно залежали від нього.

Невдовзі Microsoft представила .NET Core 2. Компанія не надто подбала про його сумісність із .NET Core. Пізніше був випущений .NET Core 3. І знову, вони не дуже переймалися сумісністю з .NET Core. А потім компанія і зовсім відмовилася від .NET Core і представила щось зовсім інше: .NET 5, а потім і .NET 6, .NET 8, .NET 9. Microsoft оголосила .NET Core 1, 2, 3 застарілими. І все це сталося протягом 6 років.

Звичайно, що і компаніям, і спільнотам Open Source, які працювали в .NET Core, було важко встигнути за такими темпами. Оскільки всі ці версії фреймворка були несумісні одна з одною, було практично неможливо підтримувати версії ПЗ для всіх цих версій .NET. Так що на ділі залишалося два варіанти: ви або продовжуєте використовувати .NET Framework, або оновлюєтеся до останньої (LTS) версії .NET Core/.NET.

В результаті цього спільнота розділилася: є розробники .NET Framework і розробники .NET (Core). І вони дуже відрізняються один від одного.

Більшість проектів з відкритим вихідним кодом вирішили залишатися в курсі останніх версій .NET. Тому більшість проектів з відкритим вихідним кодом перестали підтримувати .NET Framework. Як наслідок, .NET Framework набагато складніше використовувати з новітніми платформами та технологіями. .NET Framework понизили до рівня олдскульної, великої корпоративної, нехмарної мови програмування.

Microsoft ❤ Open Source, Java та Linux

Майкрософт зробила ще кілька радикальних змін. Почнемо з того, що вони відкрили ядро .NET з відкритим вихідним кодом. Тепер кожен може зробити свій внесок у його розробку. В якийсь момент вони вирішили доповнити це придбанням найбільшої онлайн-платформи з відкритим вихідним кодом (GitHub).

А оскільки Microsoft займається продажем інфраструктури в Azure, немає сенсу виключати додатки на основі Java. Отже, Microsoft Azure сумісний і з ними.

Як Docker і хмара відкрили новий вимір у розробці програмного забезпечення

Як згадувалося раніше, відкритий вихідний код проявляється у пакунках NuGet. Це невеликі фрагменти програмного забезпечення, які можна включити в .NET-додаток. Але з появою Docker ця концепція вийшла на новий рівень.

У Microsoft Azure (або будь-якій іншій хмарній платформі) можна запускати контейнери Docker. Композиція контейнерів відображається в одному логічному додатку, орієнтованому на споживача. Це дозволяє розробникам створювати додатки, які є композицією частин, що можуть бути написані різними мовами програмування.

Ця концепція внесла новий вимір у розробку програмного забезпечення. Щоб ефективно працювати таким чином, розробники тепер повинні були мати глибоке розуміння того, як працює інфраструктура. Фактично, розробник став відповідальним за вибір частин інфраструктури.

Дефіцит розробників програмного забезпечення

Коротко кажучи, на відміну від розробки .NET Framework, розробка .NET перетворилася на набагато більше, ніж просто написання коду. Це стало питанням того, щоб бути в курсі останніх ініціатив з відкритим вихідним кодом, контейнерних платформ, інфраструктури та багато іншого.

Як наслідок, .NET розробникам потрібні були джерела, щоб залишатися в курсі подій. Бажано в цікавій формі. Тож розробники почали ділитися своїми знаннями, проводячи безкоштовні міні-семінари також через meetup.com. Там немає жодної плати за вхід, а учасники зазвичай отримують безкоштовне харчування. Зазвичай люди спілкуються один з одним у чаті, щоб отримати іншу точку зору на питання.

Резюме

Фреймворк .NET Framework - це потужна платформа для розробки додатків, яка працює в Windows. Це ускладнює її запуск в Azure. Корпорація Майкрософт вирішила представити .NET Core: платформу для розробки програм, незалежну від операційної системи.

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

Зазвичай люди вибирали .NET Core, коли запускали своє програмне забезпечення в хмарі. Але розробка програмного забезпечення в хмарі сама по собі стала професією. Це набагато більше, ніж просто написання коду на C#.

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

Одже, якщо коротко про головне: .NET Framework і .NET Core - це дві абсолютно різні речі (або, як кажуть в Одесі - дві великі різниці).