SlideShare uma empresa Scribd logo
1 de 23
Advanced
Technology Days
18. i 19. studenog 2015., Cinestar Arena Centar
.NET Core – Sve što
trebate znati
Petar Kovačević
petar.kovacevic@axilis.com
Axilis 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ć
petar.kovacevic@axilis.com
Axilis d.o.o.
.NET Core - Sve što trebate znati

Mais conteúdo relacionado

Semelhante a .NET Core - Sve što trebate znati

Android vs iOS development
Android vs iOS developmentAndroid vs iOS development
Android vs iOS developmentVuk Nikolić
 
.Net framework
.Net framework.Net framework
.Net frameworkkrstic_nis
 
Tarabica16 Arhitektura i implementacija CQRS šablona sa Microsoft.Net-om
Tarabica16 Arhitektura i implementacija CQRS šablona sa Microsoft.Net-omTarabica16 Arhitektura i implementacija CQRS šablona sa Microsoft.Net-om
Tarabica16 Arhitektura i implementacija CQRS šablona sa Microsoft.Net-omMilan Skorić
 
Napredne tehnike razvoja web aplikacija - Zend Framework
Napredne tehnike razvoja web aplikacija - Zend FrameworkNapredne tehnike razvoja web aplikacija - Zend Framework
Napredne tehnike razvoja web aplikacija - Zend FrameworkSaša Stamenković
 
Getting application production ready
Getting application production readyGetting application production ready
Getting application production readyIgor Talic
 
Projektovanje web aplikacija
Projektovanje web aplikacijaProjektovanje web aplikacija
Projektovanje web aplikacijaDamjan Pavlica
 
.NET Core u Intelisaleu
.NET Core u Intelisaleu.NET Core u Intelisaleu
.NET Core u IntelisaleuIntelisale
 
GitOps u teoriji Terraform praksi-Nebojša Ilić
GitOps u teoriji Terraform praksi-Nebojša IlićGitOps u teoriji Terraform praksi-Nebojša Ilić
GitOps u teoriji Terraform praksi-Nebojša IlićCOMINGComputerEngine
 
Think Smart - Start Grid
Think Smart - Start GridThink Smart - Start Grid
Think Smart - Start GridITDogadjaji.com
 
moje iskustvo za CI/CD sa SemaphoreCi i AWS
moje iskustvo za CI/CD sa SemaphoreCi i AWSmoje iskustvo za CI/CD sa SemaphoreCi i AWS
moje iskustvo za CI/CD sa SemaphoreCi i AWSMilan Urukalo
 
Red hat linux_instalacija
Red hat linux_instalacijaRed hat linux_instalacija
Red hat linux_instalacijaSrba Trifunovic
 
Linux osnove prezentacija o linuxu na srpskom
Linux osnove prezentacija o linuxu na srpskomLinux osnove prezentacija o linuxu na srpskom
Linux osnove prezentacija o linuxu na srpskomkovacevsinisa
 
Linux osnove prezentacija o linuxu na srpskom
Linux osnove prezentacija o linuxu na srpskomLinux osnove prezentacija o linuxu na srpskom
Linux osnove prezentacija o linuxu na srpskomkovacevsinisa
 
Poslovanje u oblaku Bojan Vujić
Poslovanje u oblaku Bojan VujićPoslovanje u oblaku Bojan Vujić
Poslovanje u oblaku Bojan VujićIgor Pandzic
 
Aleksandar popovic konferencija ns-3
Aleksandar popovic konferencija ns-3Aleksandar popovic konferencija ns-3
Aleksandar popovic konferencija ns-3Aleksandar Popović
 
Iir oracle baza podataka xe
Iir   oracle baza podataka xeIir   oracle baza podataka xe
Iir oracle baza podataka xealeksis2013
 
iOS Zagreb Meetup #02 - Clean architecture in iOS apps (Leonard Beus @ Five)
iOS Zagreb Meetup #02 - Clean architecture in iOS apps (Leonard Beus @ Five)iOS Zagreb Meetup #02 - Clean architecture in iOS apps (Leonard Beus @ Five)
iOS Zagreb Meetup #02 - Clean architecture in iOS apps (Leonard Beus @ Five)Infinum
 

Semelhante a .NET Core - Sve što trebate znati (20)

Android vs iOS development
Android vs iOS developmentAndroid vs iOS development
Android vs iOS development
 
.Net framework
.Net framework.Net framework
.Net framework
 
Tarabica16 Arhitektura i implementacija CQRS šablona sa Microsoft.Net-om
Tarabica16 Arhitektura i implementacija CQRS šablona sa Microsoft.Net-omTarabica16 Arhitektura i implementacija CQRS šablona sa Microsoft.Net-om
Tarabica16 Arhitektura i implementacija CQRS šablona sa Microsoft.Net-om
 
Web logs: Collecting and analysing - Nikola Krgovic
Web logs: Collecting and analysing - Nikola KrgovicWeb logs: Collecting and analysing - Nikola Krgovic
Web logs: Collecting and analysing - Nikola Krgovic
 
Napredne tehnike razvoja web aplikacija - Zend Framework
Napredne tehnike razvoja web aplikacija - Zend FrameworkNapredne tehnike razvoja web aplikacija - Zend Framework
Napredne tehnike razvoja web aplikacija - Zend Framework
 
Silverlight
SilverlightSilverlight
Silverlight
 
Getting application production ready
Getting application production readyGetting application production ready
Getting application production ready
 
Projektovanje web aplikacija
Projektovanje web aplikacijaProjektovanje web aplikacija
Projektovanje web aplikacija
 
.NET Core u Intelisaleu
.NET Core u Intelisaleu.NET Core u Intelisaleu
.NET Core u Intelisaleu
 
Arhitektura cpu
Arhitektura cpuArhitektura cpu
Arhitektura cpu
 
GitOps u teoriji Terraform praksi-Nebojša Ilić
GitOps u teoriji Terraform praksi-Nebojša IlićGitOps u teoriji Terraform praksi-Nebojša Ilić
GitOps u teoriji Terraform praksi-Nebojša Ilić
 
Think Smart - Start Grid
Think Smart - Start GridThink Smart - Start Grid
Think Smart - Start Grid
 
moje iskustvo za CI/CD sa SemaphoreCi i AWS
moje iskustvo za CI/CD sa SemaphoreCi i AWSmoje iskustvo za CI/CD sa SemaphoreCi i AWS
moje iskustvo za CI/CD sa SemaphoreCi i AWS
 
Red hat linux_instalacija
Red hat linux_instalacijaRed hat linux_instalacija
Red hat linux_instalacija
 
Linux osnove prezentacija o linuxu na srpskom
Linux osnove prezentacija o linuxu na srpskomLinux osnove prezentacija o linuxu na srpskom
Linux osnove prezentacija o linuxu na srpskom
 
Linux osnove prezentacija o linuxu na srpskom
Linux osnove prezentacija o linuxu na srpskomLinux osnove prezentacija o linuxu na srpskom
Linux osnove prezentacija o linuxu na srpskom
 
Poslovanje u oblaku Bojan Vujić
Poslovanje u oblaku Bojan VujićPoslovanje u oblaku Bojan Vujić
Poslovanje u oblaku Bojan Vujić
 
Aleksandar popovic konferencija ns-3
Aleksandar popovic konferencija ns-3Aleksandar popovic konferencija ns-3
Aleksandar popovic konferencija ns-3
 
Iir oracle baza podataka xe
Iir   oracle baza podataka xeIir   oracle baza podataka xe
Iir oracle baza podataka xe
 
iOS Zagreb Meetup #02 - Clean architecture in iOS apps (Leonard Beus @ Five)
iOS Zagreb Meetup #02 - Clean architecture in iOS apps (Leonard Beus @ Five)iOS Zagreb Meetup #02 - Clean architecture in iOS apps (Leonard Beus @ Five)
iOS Zagreb Meetup #02 - Clean architecture in iOS apps (Leonard Beus @ Five)
 

Mais de Axilis

Web App Security for Devs
Web App Security for DevsWeb App Security for Devs
Web App Security for DevsAxilis
 
React tips
React tipsReact tips
React tipsAxilis
 
Configuring SSL on NGNINX and less tricky servers
Configuring SSL on NGNINX and less tricky serversConfiguring SSL on NGNINX and less tricky servers
Configuring SSL on NGNINX and less tricky serversAxilis
 
Should you react?
Should you react?Should you react?
Should you react?Axilis
 
Sweet ES2015 (ES6) Taste
Sweet ES2015 (ES6) TasteSweet ES2015 (ES6) Taste
Sweet ES2015 (ES6) TasteAxilis
 
NuGet Must Haves for LINQ
NuGet Must Haves for LINQNuGet Must Haves for LINQ
NuGet Must Haves for LINQAxilis
 
Quick introduction to zeplin
Quick introduction to zeplinQuick introduction to zeplin
Quick introduction to zeplinAxilis
 
Diving into Node with Express and Mongo
Diving into Node with Express and MongoDiving into Node with Express and Mongo
Diving into Node with Express and MongoAxilis
 
Node in Real Time - The Beginning
Node in Real Time - The BeginningNode in Real Time - The Beginning
Node in Real Time - The BeginningAxilis
 
Road to Dynamic LINQ - Part 2
 Road to Dynamic LINQ - Part 2 Road to Dynamic LINQ - Part 2
Road to Dynamic LINQ - Part 2Axilis
 
Road to Dynamic LINQ Part 1
Road to Dynamic LINQ Part 1Road to Dynamic LINQ Part 1
Road to Dynamic LINQ Part 1Axilis
 
Angular Translate
Angular TranslateAngular Translate
Angular TranslateAxilis
 
NPM, Bower and Gulp Kickstart in Visual Studio
 NPM, Bower and Gulp Kickstart in Visual Studio NPM, Bower and Gulp Kickstart in Visual Studio
NPM, Bower and Gulp Kickstart in Visual StudioAxilis
 
Dive Into Swift
Dive Into SwiftDive Into Swift
Dive Into SwiftAxilis
 
Python Tools for Visual Studio
Python Tools for Visual StudioPython Tools for Visual Studio
Python Tools for Visual StudioAxilis
 
Python Tools for Visual Studio
Python Tools for Visual StudioPython Tools for Visual Studio
Python Tools for Visual StudioAxilis
 
Wireframing
WireframingWireframing
WireframingAxilis
 
Angular 2.0: Getting ready
Angular 2.0: Getting readyAngular 2.0: Getting ready
Angular 2.0: Getting readyAxilis
 
Angular JS deep dive
Angular JS deep diveAngular JS deep dive
Angular JS deep diveAxilis
 
Micro ORM vs Entity Framework
Micro ORM vs Entity FrameworkMicro ORM vs Entity Framework
Micro ORM vs Entity FrameworkAxilis
 

Mais de Axilis (20)

Web App Security for Devs
Web App Security for DevsWeb App Security for Devs
Web App Security for Devs
 
React tips
React tipsReact tips
React tips
 
Configuring SSL on NGNINX and less tricky servers
Configuring SSL on NGNINX and less tricky serversConfiguring SSL on NGNINX and less tricky servers
Configuring SSL on NGNINX and less tricky servers
 
Should you react?
Should you react?Should you react?
Should you react?
 
Sweet ES2015 (ES6) Taste
Sweet ES2015 (ES6) TasteSweet ES2015 (ES6) Taste
Sweet ES2015 (ES6) Taste
 
NuGet Must Haves for LINQ
NuGet Must Haves for LINQNuGet Must Haves for LINQ
NuGet Must Haves for LINQ
 
Quick introduction to zeplin
Quick introduction to zeplinQuick introduction to zeplin
Quick introduction to zeplin
 
Diving into Node with Express and Mongo
Diving into Node with Express and MongoDiving into Node with Express and Mongo
Diving into Node with Express and Mongo
 
Node in Real Time - The Beginning
Node in Real Time - The BeginningNode in Real Time - The Beginning
Node in Real Time - The Beginning
 
Road to Dynamic LINQ - Part 2
 Road to Dynamic LINQ - Part 2 Road to Dynamic LINQ - Part 2
Road to Dynamic LINQ - Part 2
 
Road to Dynamic LINQ Part 1
Road to Dynamic LINQ Part 1Road to Dynamic LINQ Part 1
Road to Dynamic LINQ Part 1
 
Angular Translate
Angular TranslateAngular Translate
Angular Translate
 
NPM, Bower and Gulp Kickstart in Visual Studio
 NPM, Bower and Gulp Kickstart in Visual Studio NPM, Bower and Gulp Kickstart in Visual Studio
NPM, Bower and Gulp Kickstart in Visual Studio
 
Dive Into Swift
Dive Into SwiftDive Into Swift
Dive Into Swift
 
Python Tools for Visual Studio
Python Tools for Visual StudioPython Tools for Visual Studio
Python Tools for Visual Studio
 
Python Tools for Visual Studio
Python Tools for Visual StudioPython Tools for Visual Studio
Python Tools for Visual Studio
 
Wireframing
WireframingWireframing
Wireframing
 
Angular 2.0: Getting ready
Angular 2.0: Getting readyAngular 2.0: Getting ready
Angular 2.0: Getting ready
 
Angular JS deep dive
Angular JS deep diveAngular JS deep dive
Angular JS deep dive
 
Micro ORM vs Entity Framework
Micro ORM vs Entity FrameworkMicro ORM vs Entity Framework
Micro ORM vs Entity Framework
 

.NET Core - Sve što trebate znati

  • 1. Advanced Technology Days 18. i 19. studenog 2015., Cinestar Arena Centar
  • 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
  • 14. .NET Core - Distribucija
  • 15.
  • 16. .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...
  • 17.
  • 18. DEMO
  • 19. .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?
  • 20.
  • 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
  • 22. Hvala na pažnji! Petar Kovačević petar.kovacevic@axilis.com Axilis d.o.o.

Notas do Editor

  1. ostavlja stvari frameworka koje ne koristimo jer nije modularan. ASP.NET XCopy
  2. - Pokušaj vađenja .NET-a iz okova Windowsa – more nible .NET version
  3. - Pokušaj vađenja .NET-a iz okova Windowsa – more nible .NET version