net core - sve što trebate znati
TRANSCRIPT
Advanced Technology Days18. i 19. studenog 2015., Cinestar Arena Centar
.NET Core – Sve što trebate znatiPetar Kovačević[email protected] d.o.o.
.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...)
.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/
Problemi?
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
.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
.NET Framework(s)
.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
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
.NET Core
.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
.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
.NET Core - Distribucija
.NET Core• Open source
‐ CoreCLR: https://github.com/dotnet/coreCLR Runtime, JIT, GC, mscorlib.dll...
‐ Unified BCL: https://github.com/dotnet/corefx Collections, Threading, Security...
DEMO
.NET Core i Mono• Mono – „fork” punog .NET Frameworka
‐ Trenutno: https://github.com/Microsoft/referencesource• Mono Core
‐ Runtime + adaptacijski sloj ispod .NET Core BCL-a• Obostrana open-source podrška• Xamarin.iOS, Xamarin.Android?
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
Hvala na pažnji!Petar Kovačević[email protected] d.o.o.
© 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.