Какво представлява .NET Framework? Отговорът на Microsoft за Java

Какво представлява .NET Framework? .NET дефиниран

 .NET е рамка за разработване на софтуер - и придружаваща екосистема от инструменти, езици и времена на изпълнение - създадена от Microsoft, за да улесни разработването на приложения на различни платформи, от настолни компютри до мобилни устройства. Въпреки че .NET (произнася се с точка мрежа и понякога се записва като .Net) първоначално е бил свързан със собствената операционна система и платформи на Microsoft, когато е стартиран в началото на 00-те, приложенията .NET вече могат да се пишат за мрежата, MacOS, iOS , Android, Linux и други - и .NET е официален стандарт и е официално достъпен като отворен код.

Microsoft описва .NET като „последователна обектно-ориентирана среда за програмиране, независимо дали обектният код се съхранява и изпълнява локално, изпълнява се локално, но се разпространява в Интернет или се изпълнява дистанционно“. .NET има за цел да осигури безопасно изпълнение на код, да осигури по-добра производителност от интерпретираните езици и да направи опитът на разработчиците последователен в голямо разнообразие от приложения. 

Основни компоненти на .NET Framework

.NET Framework съществува от близо 20 години и претърпя много промени, като компонентите бяха пуснати и по-късно оттеглени през това време. В момента има три основни слоя за .NET:

  • Стандартната библиотека .NET включва компонентите, които ще формират инфраструктурата за почти всяко приложение, което бихте написали - класове и типове, които са полезни при изпълнението на ежедневни задачи като работа със низове и примитиви, създаване на връзки към база данни, извършване на I / O операции и т.н.
  • Незадължителните модели приложения съдържат водопроводни кодове за различните платформи, където можете да внедрите вашето .NET приложение. Съществуват редица модели приложения за приложения на Windows (наследство от тясната връзка на .NET с постоянно развиващата се водеща операционна система на Microsoft), както и за други платформи: ASP.NET за уеб приложения, например, и модели за Mac и различни мобилни платформи.
  • В общата инфраструктура е основния слой на компоненти, които позволяват на цялата екосистема действително да изпълни на практика, от компилатори на езици за компоненти за изпълнение. Те са от решаващо значение за разбирането на това, което .NET може да предложи, затова ще ги разгледаме по-подробно в следващите раздели. 

Как работи .NET Framework

Основните компоненти на .NET Framework работят заедно, за да улеснят процеса на писане на приложения. Стандартните модели на библиотеки и приложения предоставят много код, за да се справят с основните задачи за програмиране вместо вас, така че не е нужно да преоткривате колелото с всяко приложение, което създавате. А общата инфраструктура се грижи за голяма част от работата по разгръщане на тези приложения.

Код написан на някой от езиците на .NET (повече, на която в един момент) се компилира до междинен език, наречен байткод Общата междинен език , или CIL. CIL кодът не се чете от човека, но може да се пренася през операционни системи и платформи. След това CIL се компилира отново от Common Language Runtime , или CLR. Реализациите на CLR са специфични за платформата и те компилират CIL код в машинно четим код, който може да се изпълни на платформата на момента. Различните версии на CLR поддържат компилации точно навреме и преди време.

В процеса на създаване на локален машинно четим код, CLR също така управлява много функционалности на приложения на ниско ниво, като събиране на боклук и нишки, което е от решаващо значение за производителността на приложението, но често е досадно за разработчиците. Заедно CIL и CLR съставят .NET Common Language Infrastructure (CLI, и да, знаем, че всички тези съкращения са подобни и някак объркващи).

Всичко това трябва да звучи познато на всеки, който е работил с платформата Java, тъй като следва същата основна парадигма - големите налични библиотеки на класове, междинният байт код и специфичното за платформата изпълнение, което автоматизира управлението на паметта, са всички характеристики и на двете предложения. .NET е разработен в края на 90-те, по време на първоначалния разцвет на Java, и първоначално е бил позициониран като конкурент на платформата Java Enterprise Edition; езикът Java и C #, първият и най-известният .NET език, са произведени от C и са семантично сходни.

Кои са езиците за програмиране .NET?

C #, обявен с много шум при пускането на .NET през 2000 г., е най-известният и широко използван език за програмиране .NET. Той е разработен вътрешно от Microsoft като част от инициативата .NET и повечето класове в .NET стандартната библиотека са написани на C #. Езикът е обектно-ориентиран и е проектиран да бъде достатъчно подобен на C, за да бъде лесно за разработчиците на C, C ++, Java и JavaScript за бързо учене и използване.

В момента Microsoft предшества и два други езика за програмиране, които могат да се използват за писане за .NET Framework. Единият е F #, функционален език за програмиране, който е част от езиковото семейство ML, който в крайна сметка има корени в LISP; другият е Visual Basic, почтеният, лесен за научаване език за програмиране на Microsoft за разработване на клиент-сървърни приложения. Но това са само върховете на айсберга: Тъй като .NET е съставен от отворени стандарти, всеки може да напише език, който се компилира в байт код на CIL и може да бъде изпълнен от CLR. Уикипедия има списък с над 20 поддържани в момента CLI езикови проекта. Почти всички от тях представляват .NET портове на съществуващи езици, от Pascal до JavaScript до дори COBOL.

Фактът, че това разнообразие от езици може да съществува едновременно в рамките на .NET Framework е една от силните страни на платформата. Тъй като целият код се компилира в байт код на CIL, .NET всъщност не се интересува на кой език го пишете; можете да изберете език въз основа на вашите собствени предпочитания, различните силни и слаби страни на всеки език или различните аспекти на .NET Framework, до който всеки език ви дава достъп (тук има някои вариации). Както беше отбелязано, по-голямата част от стандартната библиотека е написана на C #, но това не ви пречи да получите достъп до тези класове от код, написан на други езици на CLI. Всъщност компонентите, написани на различни CLI езици, могат свободно да си взаимодействат в .NET приложение.

.NET Framework срещу .NET Core (и след него) 

Ще забележите, че в тази статия използваме „.NET Framework“, за да се позоваваме на платформата като цяло. Строго погледнато, това не е правилно: Microsoft използва тази фраза, за да се позове на собствената си дългогодишна реализация на .NET Standard, която се фокусира изключително върху Windows. Исторически е имало и други реализации на .NET; един от най-известните е Mono, изпълнение с отворен код, пуснато за първи път през 2004 г., което направи възможно стартирането на .NET приложения на Linux. (Пускането породи известни противоречия, тъй като това беше ерата, когато все още имаше доста лоша кръв между Microsoft и общността с отворен код.) Mono сега формира основата на платформата Xamarin, което прави възможно изграждането на .NET приложения за iOS, Android и MacOS, както и Linux. Ксамарин започва живота си като идея на основателите на Mono,но компанията, която те основават за подкрепа на проекта, в крайна сметка е придобита от Microsoft.

Третата основна .NET реализация от Microsoft е .NET Core, междуплатформена реализация на .NET Standard, която беше пусната като отворен код през 2016 г. .NET Core беше построена прясно и премахна част от натрупаната кора в .NET Framework, въпреки че липсваше и пълната гама от функции. Наличието на множество версии на .NET Standard, всички от Microsoft, разбираемо е донякъде объркващо. През 2017 г. колумнистът Саймън Бисън се справи с въпроса кое внедряване трябва да се използва в кой контекст.

Но всичко това ще се промени в не толкова далечното бъдеще. През ноември 2020 г. Microsoft възнамерява да обедини трите внедрения на .NET като .NET 5.. По същество .NET 5 ще бъде следващото поколение .NET Core с много компоненти от .NET Framework и Xamarin. Въпреки това, редица API на .NET Framework няма да направят пътуването до .NET 5. Преместването цели да опрости нещата за разработчиците и да съсредоточи собствените усилия на Microsoft.

Каква .NET Framework имам?

От това писане обаче това е повече от година почивка. Текущата последна версия на .NET Framework е 4.8; текущата версия на .NET Core е 3.0. Microsoft има страница с инструкции как можете да научите каква версия на .NET Framework е инсталирана в момента на вашия компютър.

За какво се използва .NET? 

Така че всичко това ви дава много какво и как; но това, което все още може да се чудите, е защо. Защо да използвам .NET Framework? Блогът на Altexsoft има добра разбивка на .NET плюсовете и минусите. Положителната страна е, че .NET предоставя обектно-ориентиран модел на програмиране с надеждна и проста кешираща система и зряла IDE и позволява гъвкаво внедряване и лесна поддръжка. В допълнение, междуплатформената природа на .NET позволява пренасянето на код към много различни видове крайни точки. .NET е най-подходящ, ако изграждате междуплатформени приложения на инфраструктури от корпоративен мащаб, които искате да можете да мащабирате, без да се налага да пренастройвате напълно.

Изтеглете .NET Framework

Готови ли сте да започнете да експериментирате с .NET? Изтеглете .NET Framework (за Windows) или .NET Core (за Windows, Linux или MacOS) от уебсайта на Microsoft; Предлагат се и изображения на Docker. Можете да намерите Xamarin за iOS и Android на GitHub. Приятно проучване!