SlideShare a Scribd company logo
ASP.NET MVC => ASP.NET CORE MVC
Lightweight, Cross Platform, Open Source and more...
Sinan BOZKUŞ
sinan.bozkus@bilgeadam.com
- Microsoft tarafından geliştirilmiş, 27 Haziran 2016 tarihinde resmi olarak yayınlanmıştır.
- Windows, Linux ve Mac üzerinde çalışabilecek platform bağımsız (cross platform) uygulamalar geliştirebiliriz.
- Geliştirme ortamı için Visual Studio, Visual Studio Code veya Visual Studio for Mac tercih edebiliriz. Editör
bağımlılığı olmadığından istersek notepad üzerinde dahi geliştirme yapabiliriz.
- .NET Framework, Xamarin ve Mono ile uyumluluk (compatible) içerisindedir.
- Ücretsiz ve açık kaynaktır. Github üzerinden katkıda bulunabiliriz.
https://github.com/dotnet
- .NET Foundation .NET’in gelişmesini ve yayılmasını sağlamak amacıyla
kurulan bir vakıftır. .NET Core’un çıkışıyla birlikte üyeleri arasında
Google, Samsung, Redhat gibi dev kuruluşlar da yer almaya başlamıştır.
.NET Core Nedir?
Microsoft & Linux
- Microsoft tarafından geliştirilen web framework’üdür. .NET Core alt yapısı üzerinde çalışır.
- Windows, Linux ve Mac üzerinde çalışabilecek platform bağımsız (cross platform) modern web uygulamaları
ve web servisler geliştirebiliriz.
- Geliştirme ortamı için Visual Studio, Visual Studio Code veya Visual Studio for Mac tercih edebiliriz. Editör
bağımlılığı olmadığından istersek notepad üzerinde dahi geliştirme yapabiliriz.
- Geliştirme esnasında .Net Framework (Full Framework) veya .NET Core alt yapısını tercih edebiliriz.
- Ücretsiz ve açık kaynaktır. Github üzerinden katkıda bulunabiliriz.
https://github.com/aspnet
ASP.NET Core Nedir?
- Web uygulamamızdaki statik dosyalarımız wwwroot klasörü altında yer almaktadır.
- Dependencies altında uygulamamızın çalışması için gerekli olan bağımlılıklar yer
almaktadır. Bower ile client-side (bower.json), Nuget ile server-side paketlerin
(.csproj) kurulumu yapılmaktadır.
- Program.cs uygulamamızın başlangıç noktasıdır, uygulama buradan çalışmaya
başlar.
- Startup.cs uygulamamız ile ilgili konfigürasyonlar içerir.
- Bundleconfig.json içerisinde sıkıştırma (minify) yapacağımız css ve js dosyaları
tanımlanır.
Proje Dosyaları, Yapılandırma
- Projemizin başlangıç noktasıdır.
- WebHostBuilder nesnesine uygulamamızın
ihtiyacı olan en temel bileşenler eklenir ve
uygulama bu nesne üzerinden çalıştırılır.
Program.cs (.Net Core 2.0 öncesi)
.UseKestrel()
Uygulamanın Kestrel üzerinde çalışacağı belirtilmiştir.
.UseContentRoot(Directory.GetCurrentDirectory())
Uygulamanın çalışacağı dizin belirtilmiştir, GetCurentDirectory() ile
uygulamanın bulunduğu mevcut dizin alınmıştır.
.UseIISIntegration()
Uygulamanın Windows sunucusu üzerinde barındırılacağı ve IIS desteğinin
gerektiği belirtilmiştir.
.UseStartup<Startup>()
Uygulamanın çalışmaya başlaması için gerekli yapılandırmalar ve
çalıştıktan sonraki http isteklerinin işlenmesindeki yapılandırmalar
bu sınıf içerisinde (startup.cs) yapılır.
Program.cs (.Net Core 2.0 ve sonrası)
https://github.com/aspnet/Identity/blob/3008f76c0
37e683cbf95d4c3b0e11a9381800f25/samples/Iden
tityOIDCWebApplicationSample/MetaPackage/Web
Host.cs
- Uygulamamızda kullanacağımız servislerin kayıt edildiği metottur. Çalışma zamanında
(runtime) çalışır.
- Projemize ASP.NET MVC’yi burada kayıt ederiz.
- Projemizde bir database kullanacaksak ilgili Context’in kayıt işlemi de buradan yapılır.
- Dependency Injection tanımlamaları bu metot içerisinde yapılır.
Startup.cs - 1
- Uygulamamıza yapılacak HTTP istekleriyle ilgili
yapılandırmaların yapıldığı metottur.
- ConfigureServices içerisinde kayıt ettiğimiz ASP.NET
MVC’nin çalışmasını bu metot içerisinde sağlarız.
- Loglama, hata yakalama ve routing gibi
yapılandırmalar da bu metot içerisinden yapılır.
Startup.cs - 2
Html Helpers
- View içerisinde HTML içeriği oluşturmak için
kullanılan yardımcı metotlardır. Bu metotlar
çoğu zaman bir string döndürür.
- Razor yapısına uygun şekilde yazılır.
Tag Helpers
- Tag Helper desteği ASP.NET Core ile birlikte gelmiştir.
- Karmaşık yazımlar yerine Html’e basit bir şekilde uyum
sağlar.
Partial Views
- Bir kere yazıp tekrar tekrar kullanabiliriz.
- Partial Viewler kendi başlarına çalışamazlar. Sadece bir
View içerisinen çağırıldıkları zaman çalışabilirler.
- Kendilerine ait Controller vb. server-side bir kod blokları
yoktur.
- View dosyaları “Shared” klasörü altında tanımlanır.
View Components
- ASP.NET Core ile birlikte gelmiştir. ASP.NET Core içerisinde gelen
ViewComponent sınıfından miras alırlar.
- Partial View benzeri bir şekilde bir kez yazılıp tekrar tekrar
kullanılabilir. Partial View’e ek olarak kendi server-side kod blokları
vardır.
- Tanımlanırken adının sonuna “ViewComponent” eki eklenerek
tanımlanır.
- View dosyaları “/Shared/Components/
ComponentAdi/Default.cshtml” şeklinde tanımlanır.
- View ler içerisinde @Component.InvokeAsync(“ComponentAdi”
şeklinde çağırılırlar.
AppSettings
- Web.config dosyasına benzer yapıdadır.
- Web.config sadece IIS (Windows) üzerinde çalışırken
appsettings dosyaları tüm platformlarda desteklenir.
- Başta connection string olmak üzere bir çok ayar
tanımlamalarımızı bu dosyalar üzerinde yapabiliriz.
Dependency Injection
- ASP.NET Core kendi içerisinde basit bir Dependency Injection
mekanizmasıyla birlikte gelir.
- Dependency Injection kısaca bir sınıf (class) içerisinde başka bir
sınıfın nesnesini kullanacaksanız new anahtar sözcüğüyle
oluşturmamanız gerektiğini söyleyen bir yaklaşımdır. Gereken
nesnenin ya Constructor’dan ya da Setter metoduyla parametre
olarak alınması gerektiğini vurgulamaktadır. Böylece iki sınıf
birbirinden izole edilmiş şekilde çalışacaktır.
Performans
- https://github.com/aspnet/benchmarks ve https://www.techempower.com/benchmarks/
adresinden performans testi sonuçlarına bakabiliriz.
ASP.NET MVC'den ASP.NET Core'a Geçiş

More Related Content

Similar to ASP.NET MVC'den ASP.NET Core'a Geçiş

Internet programcılığı-i
Internet programcılığı-iInternet programcılığı-i
Internet programcılığı-iemre61
 
ASP.NET MVC 2 Mimarisi, ASP.NET Uygulama Yönetimi ve Güvenlik Desteği
ASP.NET MVC 2 Mimarisi, ASP.NET Uygulama Yönetimi ve Güvenlik DesteğiASP.NET MVC 2 Mimarisi, ASP.NET Uygulama Yönetimi ve Güvenlik Desteği
ASP.NET MVC 2 Mimarisi, ASP.NET Uygulama Yönetimi ve Güvenlik Desteği
Ali İhsan Çalışkan
 
İleri Seviye T-SQL Programlama - Chapter 21
İleri Seviye T-SQL Programlama - Chapter 21İleri Seviye T-SQL Programlama - Chapter 21
İleri Seviye T-SQL Programlama - Chapter 21
Cihan Özhan
 
Temel Düzeyde Visual Studio Eğitimleri
Temel Düzeyde Visual Studio EğitimleriTemel Düzeyde Visual Studio Eğitimleri
Temel Düzeyde Visual Studio Eğitimleri
Univerist
 
Osman kurt & zahide aytar
Osman kurt & zahide aytarOsman kurt & zahide aytar
Osman kurt & zahide aytarOsman Kurt
 
WEB SERVİCE
WEB SERVİCE WEB SERVİCE
WEB SERVİCE
AliMETN
 
Flex blaze ds
Flex blaze dsFlex blaze ds
Flex blaze ds
Muharrem Tac
 
ASP.NET C# - Sayfa Detayları
ASP.NET C# - Sayfa DetaylarıASP.NET C# - Sayfa Detayları
ASP.NET C# - Sayfa Detayları
zetshap
 
Node js giriş (intro)
Node js giriş (intro)Node js giriş (intro)
Node js giriş (intro)
Hasan Sungur Bilgen
 
Yazılım Geliştiriciler İçin Sharepoint 2010
Yazılım Geliştiriciler İçin Sharepoint 2010Yazılım Geliştiriciler İçin Sharepoint 2010
Yazılım Geliştiriciler İçin Sharepoint 2010
Evren Ayan
 
Compose Camp - 1.Gün Unit 1 Pathway 3.pptx
Compose Camp - 1.Gün Unit 1  Pathway 3.pptxCompose Camp - 1.Gün Unit 1  Pathway 3.pptx
Compose Camp - 1.Gün Unit 1 Pathway 3.pptx
GDSCOM
 
Spring Web Service
Spring Web ServiceSpring Web Service
Spring Web Service
dasgin
 
AngularJS sunumu
AngularJS sunumuAngularJS sunumu
AngularJS sunumu
okanozeren
 
Yeni başlayanlar için Laravel
Yeni başlayanlar için Laravel Yeni başlayanlar için Laravel
Yeni başlayanlar için Laravel
Cüneyd Tural
 
Temel Düzeyde MySQL ve PHP Eğitimleri 1
Temel Düzeyde MySQL ve PHP Eğitimleri 1Temel Düzeyde MySQL ve PHP Eğitimleri 1
Temel Düzeyde MySQL ve PHP Eğitimleri 1
Univerist
 
12factor apps
12factor apps12factor apps
12factor apps
Dilaver Demirel
 
Java Web Uygulama Geliştirme
Java Web Uygulama GeliştirmeJava Web Uygulama Geliştirme
Java Web Uygulama Geliştirme
ahmetdemirelli
 

Similar to ASP.NET MVC'den ASP.NET Core'a Geçiş (20)

Internet programcılığı-i
Internet programcılığı-iInternet programcılığı-i
Internet programcılığı-i
 
sunu (Asp.net -1)
sunu (Asp.net -1)sunu (Asp.net -1)
sunu (Asp.net -1)
 
ASP.NET MVC 2 Mimarisi, ASP.NET Uygulama Yönetimi ve Güvenlik Desteği
ASP.NET MVC 2 Mimarisi, ASP.NET Uygulama Yönetimi ve Güvenlik DesteğiASP.NET MVC 2 Mimarisi, ASP.NET Uygulama Yönetimi ve Güvenlik Desteği
ASP.NET MVC 2 Mimarisi, ASP.NET Uygulama Yönetimi ve Güvenlik Desteği
 
İleri Seviye T-SQL Programlama - Chapter 21
İleri Seviye T-SQL Programlama - Chapter 21İleri Seviye T-SQL Programlama - Chapter 21
İleri Seviye T-SQL Programlama - Chapter 21
 
Temel Düzeyde Visual Studio Eğitimleri
Temel Düzeyde Visual Studio EğitimleriTemel Düzeyde Visual Studio Eğitimleri
Temel Düzeyde Visual Studio Eğitimleri
 
Osman kurt & zahide aytar
Osman kurt & zahide aytarOsman kurt & zahide aytar
Osman kurt & zahide aytar
 
WEB SERVİCE
WEB SERVİCE WEB SERVİCE
WEB SERVİCE
 
Flex blaze ds
Flex blaze dsFlex blaze ds
Flex blaze ds
 
ASP.NET C# - Sayfa Detayları
ASP.NET C# - Sayfa DetaylarıASP.NET C# - Sayfa Detayları
ASP.NET C# - Sayfa Detayları
 
Node js giriş (intro)
Node js giriş (intro)Node js giriş (intro)
Node js giriş (intro)
 
Yazılım Geliştiriciler İçin Sharepoint 2010
Yazılım Geliştiriciler İçin Sharepoint 2010Yazılım Geliştiriciler İçin Sharepoint 2010
Yazılım Geliştiriciler İçin Sharepoint 2010
 
Compose Camp - 1.Gün Unit 1 Pathway 3.pptx
Compose Camp - 1.Gün Unit 1  Pathway 3.pptxCompose Camp - 1.Gün Unit 1  Pathway 3.pptx
Compose Camp - 1.Gün Unit 1 Pathway 3.pptx
 
Spring Web Service
Spring Web ServiceSpring Web Service
Spring Web Service
 
Wordpress
WordpressWordpress
Wordpress
 
AngularJS sunumu
AngularJS sunumuAngularJS sunumu
AngularJS sunumu
 
Css indir
Css indirCss indir
Css indir
 
Yeni başlayanlar için Laravel
Yeni başlayanlar için Laravel Yeni başlayanlar için Laravel
Yeni başlayanlar için Laravel
 
Temel Düzeyde MySQL ve PHP Eğitimleri 1
Temel Düzeyde MySQL ve PHP Eğitimleri 1Temel Düzeyde MySQL ve PHP Eğitimleri 1
Temel Düzeyde MySQL ve PHP Eğitimleri 1
 
12factor apps
12factor apps12factor apps
12factor apps
 
Java Web Uygulama Geliştirme
Java Web Uygulama GeliştirmeJava Web Uygulama Geliştirme
Java Web Uygulama Geliştirme
 

ASP.NET MVC'den ASP.NET Core'a Geçiş

  • 1. ASP.NET MVC => ASP.NET CORE MVC Lightweight, Cross Platform, Open Source and more... Sinan BOZKUŞ sinan.bozkus@bilgeadam.com
  • 2. - Microsoft tarafından geliştirilmiş, 27 Haziran 2016 tarihinde resmi olarak yayınlanmıştır. - Windows, Linux ve Mac üzerinde çalışabilecek platform bağımsız (cross platform) uygulamalar geliştirebiliriz. - Geliştirme ortamı için Visual Studio, Visual Studio Code veya Visual Studio for Mac tercih edebiliriz. Editör bağımlılığı olmadığından istersek notepad üzerinde dahi geliştirme yapabiliriz. - .NET Framework, Xamarin ve Mono ile uyumluluk (compatible) içerisindedir. - Ücretsiz ve açık kaynaktır. Github üzerinden katkıda bulunabiliriz. https://github.com/dotnet - .NET Foundation .NET’in gelişmesini ve yayılmasını sağlamak amacıyla kurulan bir vakıftır. .NET Core’un çıkışıyla birlikte üyeleri arasında Google, Samsung, Redhat gibi dev kuruluşlar da yer almaya başlamıştır. .NET Core Nedir?
  • 4. - Microsoft tarafından geliştirilen web framework’üdür. .NET Core alt yapısı üzerinde çalışır. - Windows, Linux ve Mac üzerinde çalışabilecek platform bağımsız (cross platform) modern web uygulamaları ve web servisler geliştirebiliriz. - Geliştirme ortamı için Visual Studio, Visual Studio Code veya Visual Studio for Mac tercih edebiliriz. Editör bağımlılığı olmadığından istersek notepad üzerinde dahi geliştirme yapabiliriz. - Geliştirme esnasında .Net Framework (Full Framework) veya .NET Core alt yapısını tercih edebiliriz. - Ücretsiz ve açık kaynaktır. Github üzerinden katkıda bulunabiliriz. https://github.com/aspnet ASP.NET Core Nedir?
  • 5. - Web uygulamamızdaki statik dosyalarımız wwwroot klasörü altında yer almaktadır. - Dependencies altında uygulamamızın çalışması için gerekli olan bağımlılıklar yer almaktadır. Bower ile client-side (bower.json), Nuget ile server-side paketlerin (.csproj) kurulumu yapılmaktadır. - Program.cs uygulamamızın başlangıç noktasıdır, uygulama buradan çalışmaya başlar. - Startup.cs uygulamamız ile ilgili konfigürasyonlar içerir. - Bundleconfig.json içerisinde sıkıştırma (minify) yapacağımız css ve js dosyaları tanımlanır. Proje Dosyaları, Yapılandırma
  • 6. - Projemizin başlangıç noktasıdır. - WebHostBuilder nesnesine uygulamamızın ihtiyacı olan en temel bileşenler eklenir ve uygulama bu nesne üzerinden çalıştırılır. Program.cs (.Net Core 2.0 öncesi) .UseKestrel() Uygulamanın Kestrel üzerinde çalışacağı belirtilmiştir. .UseContentRoot(Directory.GetCurrentDirectory()) Uygulamanın çalışacağı dizin belirtilmiştir, GetCurentDirectory() ile uygulamanın bulunduğu mevcut dizin alınmıştır. .UseIISIntegration() Uygulamanın Windows sunucusu üzerinde barındırılacağı ve IIS desteğinin gerektiği belirtilmiştir. .UseStartup<Startup>() Uygulamanın çalışmaya başlaması için gerekli yapılandırmalar ve çalıştıktan sonraki http isteklerinin işlenmesindeki yapılandırmalar bu sınıf içerisinde (startup.cs) yapılır.
  • 7. Program.cs (.Net Core 2.0 ve sonrası) https://github.com/aspnet/Identity/blob/3008f76c0 37e683cbf95d4c3b0e11a9381800f25/samples/Iden tityOIDCWebApplicationSample/MetaPackage/Web Host.cs
  • 8. - Uygulamamızda kullanacağımız servislerin kayıt edildiği metottur. Çalışma zamanında (runtime) çalışır. - Projemize ASP.NET MVC’yi burada kayıt ederiz. - Projemizde bir database kullanacaksak ilgili Context’in kayıt işlemi de buradan yapılır. - Dependency Injection tanımlamaları bu metot içerisinde yapılır. Startup.cs - 1
  • 9. - Uygulamamıza yapılacak HTTP istekleriyle ilgili yapılandırmaların yapıldığı metottur. - ConfigureServices içerisinde kayıt ettiğimiz ASP.NET MVC’nin çalışmasını bu metot içerisinde sağlarız. - Loglama, hata yakalama ve routing gibi yapılandırmalar da bu metot içerisinden yapılır. Startup.cs - 2
  • 10. Html Helpers - View içerisinde HTML içeriği oluşturmak için kullanılan yardımcı metotlardır. Bu metotlar çoğu zaman bir string döndürür. - Razor yapısına uygun şekilde yazılır.
  • 11. Tag Helpers - Tag Helper desteği ASP.NET Core ile birlikte gelmiştir. - Karmaşık yazımlar yerine Html’e basit bir şekilde uyum sağlar.
  • 12. Partial Views - Bir kere yazıp tekrar tekrar kullanabiliriz. - Partial Viewler kendi başlarına çalışamazlar. Sadece bir View içerisinen çağırıldıkları zaman çalışabilirler. - Kendilerine ait Controller vb. server-side bir kod blokları yoktur. - View dosyaları “Shared” klasörü altında tanımlanır.
  • 13. View Components - ASP.NET Core ile birlikte gelmiştir. ASP.NET Core içerisinde gelen ViewComponent sınıfından miras alırlar. - Partial View benzeri bir şekilde bir kez yazılıp tekrar tekrar kullanılabilir. Partial View’e ek olarak kendi server-side kod blokları vardır. - Tanımlanırken adının sonuna “ViewComponent” eki eklenerek tanımlanır. - View dosyaları “/Shared/Components/ ComponentAdi/Default.cshtml” şeklinde tanımlanır. - View ler içerisinde @Component.InvokeAsync(“ComponentAdi” şeklinde çağırılırlar.
  • 14. AppSettings - Web.config dosyasına benzer yapıdadır. - Web.config sadece IIS (Windows) üzerinde çalışırken appsettings dosyaları tüm platformlarda desteklenir. - Başta connection string olmak üzere bir çok ayar tanımlamalarımızı bu dosyalar üzerinde yapabiliriz.
  • 15. Dependency Injection - ASP.NET Core kendi içerisinde basit bir Dependency Injection mekanizmasıyla birlikte gelir. - Dependency Injection kısaca bir sınıf (class) içerisinde başka bir sınıfın nesnesini kullanacaksanız new anahtar sözcüğüyle oluşturmamanız gerektiğini söyleyen bir yaklaşımdır. Gereken nesnenin ya Constructor’dan ya da Setter metoduyla parametre olarak alınması gerektiğini vurgulamaktadır. Böylece iki sınıf birbirinden izole edilmiş şekilde çalışacaktır.
  • 16. Performans - https://github.com/aspnet/benchmarks ve https://www.techempower.com/benchmarks/ adresinden performans testi sonuçlarına bakabiliriz.