C# глава 1

В цій главі мало що можна дізнатись про можливості мови програмування C#, так як основна її мета, це познайомити з екосистемою .NET, там інструментарієм, який буде використовувати автор в цій версії книги (на руках у мене вже далеко не свіженький екземпляр, то ж якщо хочете подарувати мені новіше видання, буду радий та вдячний).

Цитата з книги:

Вивчати складні теми багатьом людям простіше в процесі імітації та повторення, а не під час читання детальних теоретичних пояснень. Тому я також не буду перевантажувати книгу поясненням кожного кроку. Ідея в тім, щоб дати вам змогу написати якийсь код, зібрати застосунок, та подивитись, що відбувається при його запуску.

Основне та найбільш цікаве про що ми тут можем дізнатись:

Що таке технологія .NET, та яка різниця між .NET Framework та .NET Core

Екосистема .NET

.NET як технологія – це перелік технологій який використовуюється для розробки коду, зазвичай мова йде про C#, але сюди входить і F# та інші, але не це головне. На момент написання книги існували такі технології як: .NET Framework, .NET Core, Mono, Xamarin. На поточний же момент все змінилось. Але про все по порядку.

.NET Framework – це платформа для розробки, що містить загальномовне виконуюче середовище (Common Language Runtime, скорочено CLR), яка сладкує за виконанням коду, та велику бібліотеку базових класів (Base Class Library або BCL) для створення програм.

Якщо простіше, то це відповідь Microsoft на мову програмування Java. Але хвилю тодішнього хайпу вони не вловили, то ж зосередились на впровадженні цієї технології на так би мовити популяризацію Windows, бо завдяки різноманітним API можна було створити бідь яку програму на більш простій мові програмування ніж C++, а саме C# для операційної системи Windows.

Важливо: якщо ви хочете використовувати для свої потреб різні версії .NET Framework, то пам’ятайте, що всі програми розроблені на .NET Framework використовують одну й туж версію CLR та бібліотек, що зберігаються в глобальному кеші збірок (Global Assembly Cache, скорочено GAC). На поточний час останньою версією .NET Framework, є версія .NET Framework 4.8 і це остання версія, подальшого розвитку вже не відбувається, так як віддано перевагу на користь .NET Core (нині просто .NET) та її крослпатформенності.

.NET Core (.NET) – це наступний етап розвитку .NET Framework, в який поступово переносяться всі корисні функції .NET Framework, та додають нові, і скажу ще раз (і мабуть не раз), що це кроплатформенна технологія (тобто розробку можна вести під різні операційні системи, де є підтримка .NET, про Java я вже мовчу).

Але тут слід пам’ятати, що кросплатформеність наклала і свої відбитки, більшість стандартних бібліотек .NET Framework так і не були імплементовані, бо вони були розроблені виключно для операційної системи Windows. То ж .NET Core досить молодий, і якщо зараз в ньому чогось немає, то це на означає, що воно не з’явиться пізніше.

Версій .NET Core було лиш три, далі технологію перейменували в .NET, а щоб не було плутанини між .NET Framework та .NET, то версії 4 не було, наступною версією після 3-ї стала .NET 5.

Так ва чому ж різниця між ними, і чи вона є взагалі?!

Більше ні, ніж так, це наступний лиш етап розвитку, що пішов в сторону кросплатформеності та відмова від застарілих технологій. Наприклад застарілі Windows Forms та Windows Presentation Foundation (WPF) для розробки графічних застосунків, були виключені зі складу .NET. На їх місце мала б прийти універсальна платформа Windows (Universal Windows Platform або UWP), але ні, зі смертю Windows 8 та Windows Phone, вона теж померла. То ж поки єдиного стандарту неіснує. Добре це чи погано, важко сказати, інколи щоб прийшло щось нове, старе повинно померти.

В книзі згадуються Mono та Xamarin для розробки мобільних застосунків, але враховуючи, що Microsoft їх купило, а основні задумки перенесли в .NET, то згадувати про них мабуть вже не слід. Наразі Microsoft піарить платформу .NET MAUI для розробки застосунків під різні операційні системи (в даній версії книги, мова про неї не йде, але вона чимось схожа на Spring в Java).

Що таке .NET Standard

Як вже зазначалось, на момент написання книги існували наступні технології:

  • .NET Core – для кросплатформених та нових застосунків
  • .NET Framework – для застарілих програм і виключно під Windows
  • Xamarin – для розробки мобільних застосунків (Android, iOS)

Всі вони мають свої переваги й недоліки і призначені для різних технологій, через це, розробникам доводилось вивчати три різні технології, бо одне й теж на різних платформах треба було писати по різному, через різницю в системних API. І щоб цього уникнути, був розроблений стандарт для API, який було застосовано для подальших розробок нових версій .NET, що як на мене суттєво поліпшило ситуацію, а саме головне позитивно вплинуло на розвиток мови програмування C#.

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

Корисні посилання:

Вид компіляції в .NET

Процес компіляції в C#

У C# застосовується двоетапна компіляція, яка включає компіляцію коду в проміжний код (байт-код) та подальше виконання цього коду за допомогою платформи .NET. Спочатку вихідний код C# компілюється у проміжний мовний код (Intermediate Language, IL), а потім цей IL-код виконується середовищем виконання (Common Language Runtime, CLR), яке перетворює його в машинний код за допомогою Just-In-Time (JIT) компіляції.

З цікавого, на чому можна зробити акцент, так це на розширенні файлу (з точки зору користувача Windows). На виході, після компіляції, ви можете отримати або exe файл, або dll. Якщо з першим все зрозуміло, то інше, це бібліотека коду, яку можна використовувати в інших програмах, через спеціальні методи і т.д., але це вже інша історія, для майбутніх постів.

В принципі в C# використовується такий же вид компіляції, як і в Java, якщо ви знайомі з цією мовою програмування (де байт-код виконується віртуальною машиною JVM). Це забезпечує кросплатформеність, дозволяючи запускати скомпільовану програму на різних операційних системах, а також гарантує безпеку пам'яті завдяки використанню керованого коду (managed code).

Прорівняння процесу компіляції між мовами програмування

Більше про цей процес мало що можна сказати, не лізучи з головою в теорію компіляторів.

Питання для самоперевіки та відповіді.

1. Чому на платформі .NET Core для розрбки застосунків, програмісти можуть використовувати різні мови програмування, наприклад C# та F#?

Віпдвовідь:

Завдяки системі компіляції. Для кожної мови програмування є свій компілятор, який перетворює вихідний код на проміжний код (Intermediate Language, IL). Цей проміжний код потім виконується на віртуальній машині .NET (Common Language Runtime, CLR). Оскільки всі мови програмування, які підтримуються платформою .NET, компілюються в один і той же проміжний код, вони можуть взаємодіяти між собою без проблем. Це дозволяє розробникам використовувати різні мови програмування в одному проекті або вибирати мову, яка найкраще підходить для конкретного завдання.

2. Які команди необхідно ввести для створення консольного застосунку?

Віпдвовідь:

Щоб створити консольний застосунок на платформі .NET Core, необхідно виконати наступні команди в командному рядку:

  1. Відкрити командний рядок або термінал.
  2. Перейти до директорії, де ви хочете створити проект.
  3. Ввести команду dotnet new console для створення нового консольного застосунку.

3. Які команди необхідно ввести в вікні конслі дя сборки та запуска вихідного коду на мові програмування C#?

Віпдвовідь:

Для компіляції та запуску програми написаної мовою C# в середовищі .NET Core необхідно виконати наступні команди в командному рядку:

  1. Відкрити командний рядок або термінал.
  2. Перейти до директорії, де знаходиться ваш проект, а саме файли з розширенням .csproj та вихідний код .cs.
  3. Ввести команду dotnet run для компіляції та запуску програми.

4. Яке сполученняклавиш використовується для відкриття в програмі Visual Studio Code панелі терміналу?

Віпдвовідь:

Для відображення (відкриття) панелі терміналу необхідно в англійській розкладці клавіатури натиснути сполучення клавіш Ctrl+`

5. Середовище розробки Visual Studio краще за Visual Studio Code?

Віпдвовідь:

Так і ні. Все залежить від задачі. Visual Studio Code є більш легковаговим редактором коду, який підтримує велику кількість мов програмування та має безліч розширень. Visual Studio, з іншого боку, є повнофункціональним середовищем розробки (IDE), яке надає більше інструментів для розробки, налагодження та тестування програм. Для невеликих проектів або швидких змін може бути зручніше використовувати Visual Studio Code, тоді як для великих проектів з багатьма залежностями та складною логікою може бути кращим вибором Visual Studio.

6. Платформа .NET Core краще за .NET Framework?

Віпдвовідь:

Не зовсім. Платформа .NET Core є більш сучасною, кросплатформенною та відкритою версією .NET, яка підтримує розробку на різних операційних системах, таких як Windows, macOS та Linux. Вона також має кращу продуктивність та масштабованість для сучасних застосунків. То ж можна сказати, що .NET Core - це наступний етап розвитку. Також слід пам'ятати, що останньою версією .NET Framework є версія 4.8, і вона більше не отримуватиме нових функцій, лише оновлення безпеки та виправлення помилок. Microsoft планує об'єднати .NET Core та .NET Framework у єдину платформу під назвою .NET 5 і пізніші версії. Вибір між ними залежить від конкретних вимог проекту, цільової платформи та необхідних функцій.

7. Що таке .NET Standard і чому він такий важливий?

Віпдвовідь:

.NET Standard - це специфікаяція, яка визначає набір API, які повинні бути реалізовані в різних версіях .NET. Він дозволяє розробникам створювати бібліотеки, які можуть працювати на різних платформах .NET, таких як .NET Framework, .NET Core та Xamarin. Це забезпечує сумісність коду та дозволяє використовувати одну і ту ж бібліотеку в різних проектах без необхідності переписування коду для кожної платформи. То ж якщо коротко, це стандарт кодової бази для різних платформ .NET.

8. Як називається метод місця входу консольного застосунку .NET і як його оголосити?

Віпдвовідь:

Метод місця входу консольного застосунку .NET називається Main. Його можна оголосити наступним чином:

public static void Main(string[] args)
{
    // Ваш код тут
}

9. Як знайти довідникову інформацію по ключовому слову в C#?

Віпдвовідь:

Для пошуку інформації про значення ключового слова в C# можна скористатися офіційною документацією Microsoft за посиланням: C# Reference. Там можна знайти детальний опис кожного ключового слова, його синтаксис, приклади використання та інші корисні відомості. Також можна використовувати пошукові системи, вводячи запит у форматі "C# *ключове слово*".

10. Як знайти рішення загальних проблем програмування?

Віпдвовідь:

Єдиного способо неіснує. Для пошуку рішення типових проблем, зазвичай використовують пошукові системи, або тематичні ресурси такі як Stack Overflow. Також можна використовувати штучний інтелект (AI), але з ним слід враховувати, що він може надити неправильну або застарілу інофрмацію, так як все залежить від якості навчальних даних. Тому завжди слід перевіряти отриману інформацію з офіційними джерелами або документацією.

 

Корисні посилання:

Перелік сполучень горячих клавіш Visual Studio:

Ліричний відступ.

Під час написання цього матеріалу, я якось задумався "а навіщо я все це пишу". І зрозумів, що не не лише для структурування власних знань, а й для того, щоб було простіше пояснювати іншим матеріал. Хоч я й не часто це роблю, але іноді бува. З того, про що я зараз шкодую, так це те, що не завершив як хотів цикл по Java, хоча гадаю, за нагоди завершу (нажаль життя та війна внесли свої корективи, то  поки не на часі). Загалом по C#, як на мене, не так багато поширеної інформації, а про книжки я взагалі мовчу. По Java якось більше в рази (чи то мені так здається). То ж на останок хочу поділитись з вами корисними посиланнями на тему C#, але враховуйте, що деякі з них російські (і не лише російськомовні), і перш ніж жбурляти каменюки в мій бік, врахуйте, що українського контенту, взагалі кіт наплакав, і це не жарт!

Медіа канали з матеріалами:

Спільноти та чати:

Подкасти:

  • DotNet & More
  • RadioDotNet
  • BookClub DotNet (нажаль цей покдаст закритий, і нових епізодів чекати неварно, але всеодно цікаво послухати)

Онлайн довідники:

В принціпі, тепер можна сказати, що на цьому все, більше порадити поки немає чого, якщо щось буде, то буду доповнювати. Дорогу здолає той, хто йде! Я по собі знаю, що дуже важко шукати гарні ресурси, коли ти тількино починаєш шлях, володій я тоді хоча б крихтою цього на початку, то було б набагато легше.

А так, дякую вам якщо дочитали до кінця.

We use cookies

We use cookies on our website. Some of them are essential for the operation of the site, while others help us to improve this site and the user experience (tracking cookies). You can decide for yourself whether you want to allow cookies or not. Please note that if you reject them, you may not be able to use all the functionalities of the site.