Головна‎ > ‎C#‎ > ‎Додатково‎ > ‎

.NET


BCL (Base Class Library) - це серце Framework Class Library, що включає простір імен System 
і усі базові класи: Console, String, Int32, DataTime, Random +1000 класів, що використовуються 
і для віконних програм, і для сайтів, і для мобільних програм.
В щоденній роботі ми використовуємо саме BCL, а все інше ми тягнемо з менеджера пакетів NuGet.


Framework Class Library = BCLWinFormWPFXamarin + 
Windows Store App + WebForm + ASP.NET + Desktop + Xbox...
Вже йде розділення на різні технології: вікна, мобільні, інтернет.


Framework


CLR (Common Language Runtime) - програма, яка потрібна для запуску ваших програм написаних на С#. Ваш код транслюється (перетворюється) в проміжний байт-код 
Intermediate Language (il, cil, msil), який і виконує програма clr.exe (що іде з Windows).
Машинний код створюється під час виконання програми (Runtime), цей тип компіляції називається (Just in Time) і його робить JIT-компілятор (що іде з CLR).
Мінус: при запуску така програма працю повільніше за С++.
Плюс : працює всюди, де є CLR і не треба робити збірки під різні архітектури процесорів:
86x, 64x, ARM. 
Ми наче запускаємо програму в пісочниці, що дає змогу використати Garbage Collection.

Інші мови можуть конвертуватися в IL-код: C++/CLI, F#, J#, IronPhyton, VB.NET, Delphi.NET... Але тут є обмеження специфікації, наприклад C++/CLI код не може містити множинного успадкування.


CTS (Common Type System) - це система загальних типів у IL-коді, що визначає спосіб оголошення, використання і керування типами в середовищі CLR.


CLS (Common Language Specification) - обмежена специфікація IL-коду, що дає змогу одночасно використовувати багато мов програмування.





NGen.exe - конвертує IL в бінарний код.