O novoj implementaciji .NET platforme - .NET Core. Modularna, otvorenog koda, a osim na Windows mašinama živi i na Linuxu i Macu. Što sve trebamo znati o .NET Coreu, kakav je odnos s postojećim platformama te zašto nas uopće treba biti briga.
2. .NET Core – Sve što
trebate znati
Petar Kovačević
petar.kovacevic@axilis.com
Axilis d.o.o.
3. .NET Platforma
• Predstavljena 2002. zajedno sa C# programskim jezikom
• Uvodi koncept virtualne mašine (kao JVM)
• Izvorni kod (C#, F#, VB...) prevodi se u međukod
(Intermediate Language) namijenjen interpretaciji na
virtualnoj mašini, ne na procesoru
‐ Virtualna mašina – apstrakcija sklopovlja
• Portabilnost koda, fleksibilnost interpretera (GC, iznimke...)
4. .NET Platforma
• .NET Framework - implementacija .NET platforme za
Windows operacijski sustav
• Komponente
‐ CLR – Common Language Runtime
‐ BCL – Base Class Libraries
‐ Aplikacijski modeli (WCF, WPF, WinForms, ASP.NET...)
• „Source open” - http://referencesource.microsoft.com/
6. Dizajn .NET platforme
• Jezgra .NET Frameworka (mscorlib) ovisna o Windows
operacijskom sustavu (npr. AppDomains)
‐ Prelazak na novu platformu zahtjeva novu jezgru
• BCL nije dizajniran modularno
‐ Modularnost je nužna – npr. .NET Native, ASP.NET 5
7. .NET Framework(s)
• Posljedica slabe modularnosti i veza na OS - različite
platforme dolaze sa svojom implementacijom .NET-a
‐ Silverlight, .NET Compact, Windows Phone...
‐ Vlastiti runtime, biblioteke i aplikacijski model
• Problem fragmentacije
9. .NET Framework(s)
• Fragmentacija za Microsoft
‐ Problem kod održavanja i inovacija
‐ Vertikale divergiraju u implementaciji (zasebni timovi,
verzije, razvojni ciklusi)
• Fragmentacija za korisnike
‐ Problem kada se želi ciljati više vertikala
‐ Problem nekonzistentnog API-a
10. Model distribucije
• Globalna infrastruktura na klijentskoj mašini (machine-
wide framework)
‐ Ograničeni verzijom .NET-a instaliranoj na mašini
‐ Problem kompatibilnosti sa starim verzijama ograničava
inovativnost i usporava razvoj novih verzija
• Nove verzije na godišnjoj bazi
12. .NET Core
• Modularna i agilna implementacija .NET
platforme
• Pokušaj unifikacije .NET vertikala u jednoj
implementaciji
‐ Runtime je iza apstrakcije
• Open-source, Cross-platform
• Komponente:
‐ CoreFX – cross platform BCL
implementacija
‐ CoreCLR (RyuJIT, GC, servisi za
metapodatke...) – cross platform runtime
implementacija
13. .NET Core
• Modularna distribucija putem NuGet
‐ Aplikacije referenciraju samo ono što im
treba
‐ .NET distribuiran zajedno s aplikacijom
App-local framework
• Brži razvojni ciklus
‐ Podrška i open source zajednice
21. Zaključak
• Kraći razvojni ciklusi za .NET i mogućnost inoviranja
• Cross-platform runtime i biblioteke
• Podrška open-source zajednice
• App local framework
• Cross-platform aplikacijski modeli – nažalost, samo ASP.NET 5
• Visual Studio Code =/= Visual Studio