Što je .NET Framework? Microsoftov odgovor na Javu

Što je .NET Framework? .NET definirano

 .NET je okvir za razvoj softvera - i prateći ekosustav alata, jezika i vremena rada - koji je stvorio Microsoft kako bi olakšao razvoj aplikacija na različitim platformama, od stolnih računala do mobilnih uređaja. Iako je .NET (izgovara se mrežom točkica, a ponekad se zapisuje i kao .Net) izvorno povezan s Microsoftovim vlasničkim operativnim sustavom Windows i platformama kada je pokrenut početkom '00 -ih, .NET aplikacije sada se mogu pisati za web, MacOS, iOS , Android, Linux i još mnogo toga - a .NET je formalni standard i službeno dostupan kao otvoreni izvor.

Microsoft opisuje .NET kao "konzistentno objektno orijentirano programsko okruženje, bilo da se objektni kod pohranjuje i izvršava lokalno, izvršava lokalno, ali distribuira putem Interneta ili izvršava na daljinu." .NET ima za cilj pružiti sigurno izvršavanje koda, pružiti bolje performanse od interpretiranih jezika i učiniti razvojno iskustvo dosljednim u širokom spektru aplikacija. 

Glavne komponente .NET Framework-a

.NET Framework postoji gotovo 20 godina i pretrpio je puno promjena, a komponente su bile uvedene i kasnije obustavljene tijekom tog vremena. Trenutno postoje tri glavna sloja .NET-a:

  • Standardna knjižnica .NET uključuje komponente koje će činiti infrastrukturu za skoro svaku aplikaciju koju biste napisali - klase i vrste koje su korisne u izvršavanju svakodnevnih zadataka poput bavljenja nizovima i primitivima, stvaranja veza s bazom podataka, izvođenja I / O operacije i tako dalje.
  • Izborni modeli aplikacija sadrže vodovodni kôd za razne platforme na kojima biste mogli implementirati svoju .NET aplikaciju. Postoji niz modela aplikacija za Windows programe (nasljeđe bliske .NET-ove bliske povezanosti s Microsoftovim vodećim OS-om koji se neprekidno razvija), kao i za druge platforme: ASP.NET za web aplikacije, na primjer, te modeli za Mac i razne mobilne platforme.
  • Zajednička infrastruktura je osnovni sloj od komponenti koje omogućuju čitav ekosustav zapravo izvršiti u praksi, s prevodiocima za jezike koji se runtime komponente. To je presudno za razumijevanje onoga što .NET nudi, pa ćemo ih detaljnije razmotriti u sljedećim odjeljcima. 

Kako funkcionira .NET Framework

Glavne komponente .NET Framework-a rade zajedno kako bi olakšale postupak pisanja aplikacija. Standardni modeli knjižnica i aplikacija pružaju puno koda za obradu osnovnih programskih zadataka, tako da ne morate iznova otkrivati ​​kotačić sa svakom aplikacijom koju izradite. I zajednička infrastruktura brine se za velik dio probnog rada na implementaciji tih aplikacija.

Kod napisan u bilo kojem od NET jezika (više o kojima je u ovom trenutku) je sastavio srednji bajtnog jeziku pod nazivom Zajednički posredni je jezik , ili CIL. CIL kôd nije čitljiv za ljude, ali se može prenositi na operativne sustave i platforme. CIL zatim ponovno sastavlja Common Language Runtime , ili CLR. Implementacije CLR-a specifične su za platformu i oni kompajliraju CIL kôd u strojno čitljiv kôd koji se može izvršiti na trenutnoj platformi. Različite verzije CLR podržavaju kompilacije upravo u vremenu i ispred vremena.

U procesu stvaranja lokalnog strojno čitljivog koda, CLR također upravlja mnoštvom funkcionalnosti aplikacije na niskoj razini, poput sakupljanja smeća i navoja, što je presudno za izvedbu aplikacije, ali programerima često dosadno. CIL i CLR zajedno čine .NET Common Language Infrastructure (CLI, i da, znamo da su sve ove kratice slične i nekako zbunjujuće).

Sve ovo trebalo bi zvučati poznato svima koji su radili s Java platformom, jer slijedi istu osnovnu paradigmu - velike dostupne knjižnice klasa, posrednički bajtkod i runtime specifičan za platformu koji automatizira upravljanje memorijom sve su značajke obje ponude. .NET je razvijen krajem 90-ih, tijekom početnog procvata Jave, i prvotno je pozicioniran kao konkurent Java Enterprise Edition platformi; jezik Java i C #, prvi i najistaknutiji .NET jezik, izvedeni su iz jezika C i semantički su slični.

Koji su .NET programski jezici?

C #, najavljen s velikom pompom nakon pokretanja .NET-a 2000. godine, najpoznatiji je i najčešće korišten .NET programski jezik. Razvio ga je interno Microsoft kao dio .NET inicijative, a većina klasa u .NET standardnoj knjižnici napisana je na C #. Jezik je objektno orijentiran i dizajniran je da bude dovoljno sličan C-u da ga programeri C, C ++, Java i JavaScript mogu lako naučiti i koristiti.

Microsoft trenutno u prvi plan stavlja i dva druga programska jezika koja se mogu koristiti za pisanje za .NET Framework. Jedan je F #, funkcionalni programski jezik koji je dio obitelji jezika ML koji na kraju vuče korijene iz LISP-a; drugi je Visual Basic, Microsoftov časni programski jezik koji se lako nauči za razvoj aplikacija klijent-poslužitelj. No, ovo je samo vrh ledenog brijega: budući da se .NET sastoji od otvorenih standarda, svatko može napisati jezik koji se kompajlira u bajtkod CIL, a CLR može izvršiti. Wikipedia ima popis više od 20 trenutno održavanih CLI jezičnih projekata. Gotovo svi oni predstavljaju .NET priključke postojećih jezika, od Pascala do JavaScript-a pa čak i COBOL-a.

Činjenica da ta raznolikost jezika može koegzistirati unutar .NET Framework-a jedna je od snaga platforme. Budući da se sav kod kompajlira u bajtkod CIL, .NET zapravo nije briga na kojem jeziku ćete ga napisati; jezik možete odabrati na temelju vlastitih preferencija, različitih snaga i slabosti svakog jezika ili različitih aspekata .NET Framework-a kojem svaki jezik daje pristup (ovdje postoje neke varijacije). Kao što je napomenuto, većina standardne knjižnice napisana je na jeziku C #, ali to vas ne sprječava da pristupite tim klasama iz koda napisanog na drugim CLI jezicima. Zapravo, komponente napisane na različitim CLI jezicima mogu slobodno komunicirati u .NET aplikaciji.

.NET Framework naspram .NET Core (i novije verzije) 

Primijetit ćete da u ovom članku koristimo ".NET Framework" kako bismo se općenito pozvali na platformu. Strogo govoreći, to nije točno: Microsoft se tom frazom odnosi na vlastitu dugotrajnu implementaciju .NET Standarda, koji se isključivo fokusira na Windows. Povijesno su postojale i druge implementacije .NET-a; jedan od najpoznatijih je Mono, implementacija otvorenog koda prvi put objavljena 2004. godine koja je omogućila pokretanje .NET aplikacija na Linuxu. (Izdanje je pokrenulo neke kontroverze, jer je to bilo doba kad je između Microsofta i zajednice otvorenog koda još uvijek bilo poprilično loše krvi.) Mono sada čini bazu platforme Xamarin, što omogućuje izgradnju .NET-a aplikacije za iOS, Android i MacOS kao i Linux. Xamarin je započeo život kao zamisao osnivača Monoa,ali tvrtku koju su osnovali za potporu projektu na kraju je stekao Microsoft.

Treća glavna implementacija .NET-a od Microsofta je .NET Core, implementacija .NET standarda na više platformi koja je objavljena kao otvoreni izvor 2016. .NET Core izgrađen je svježe iz temelja i uklonio dio nakupljene nakupine u .NET Frameworku, premda mu je nedostajao i čitav niz značajki. Imati više verzija .NET Standarda, sve od Microsofta, razumljivo je pomalo zbunjujuće. 2017. kolumnist Simon Bisson uhvatio se u koštac s pitanjem koju implementaciju treba koristiti u kojim kontekstima.

Ali to će se sve promijeniti u ne tako dalekoj budućnosti. U studenom 2020. Microsoft namjerava objediniti tri implementacije .NET-a kao .NET 5. .NET 5 u biti će biti sljedeća generacija .NET Core, s puno komponenti iz .NET Framework-a i Xamarin-a. Međutim, brojni .NET Framework API-ji neće krenuti na .NET 5. Potez ima za cilj pojednostaviti stvari programerima i usmjeriti Microsoftove vlastite napore.

Koji .NET Framework imam?

Od ovog pisanja, to je više od godinu dana odmora. Trenutna najnovija verzija .NET Framework-a je 4.8; trenutna verzija .NET Core-a je 3.0. Microsoft ima stranicu s uputama o tome kako možete saznati koja je verzija .NET Framework trenutno instalirana na vašem računalu.

Za što se koristi .NET? 

Dakle, sve što vam daje mnogo što i kako; ali ono što se možda još uvijek pitate jest zašto. Zašto koristiti .NET Framework? Blog Altexsoft ima dobru analizu .NET prednosti i nedostataka. Pozitivna strana je što .NET nudi objektno orijentirani model programiranja s pouzdanim i jednostavnim sustavom predmemoriranja i zrelim IDE-om, a omogućuje fleksibilnu implementaciju i jednostavno održavanje. Uz to, priroda .NET-a na više platformi omogućuje prijenos koda na mnogo različitih vrsta krajnjih točaka. .NET je najprikladniji ako na različitim platformama gradite aplikacije na više platformi koje želite proširiti, a da ih ne morate u potpunosti obnoviti.

Preuzmite .NET Framework

Jeste li spremni za eksperimentiranje s .NET-om? Preuzmite .NET Framework (za Windows) ili .NET Core (za Windows, Linux ili MacOS) s Microsoftova web mjesta; Docker slike su također dostupne. Xamarin za iOS i Android možete pronaći na GitHubu. Sretno istraživanje!