ݺߣ

ݺߣShare a Scribd company logo
ASP.NET MVC
WorkShop
Gediz Üniversitesi - İzmir
22 Nisan 2015
Erdem Avni SELÇUK
Microsoft SharePoint MVP
E-mail: eravse@outlook.com
Twitter: @eravse
Blog: http://www.eravse.com
Ajanda
MVC Nedir?
ASP.NET MVC Nedir?
View Engine ve Razor kavramları.
Model – View – Controller
Avantaj ve Dezavantajları
Entity Framework Girişi
Model First ve Database First
Nuget Paketleri Yönetimi
MVC Nedir?
• 1979 yılında Trygve Reenskaug
• Model View Controller
• Katmanlı Mimari
ASP.NET MVC Nedir?
ASP.NET
• System.Web.UI
• System.Web
ASP.NET MVC
• Model
• View
• Controller
Avantaj ve Dezavantajalrı
Avantajları
• Temiz HTML
• Katmanlı mimari
• Test Unit
• View Engine desteği
• JavaScript kütüphaneleri ile uyum
• İsteğe bağlı URL haritası
• SEO dostu URL
• View State ve PostBack yok
• Temel ASP.NET özelliklerini destekler
• Sayfa boyutları
• Mobil Template
Dezavantajları
• Event kullanılmıyor
• Temel HTML , CSS, JS bilgisi
• 3.parti kütüphanelerin uyumu
• Web Forms dan doğrudan
upgrade
• View State ve PostBack yok
View Engine ve Razor Kavramları
View Engine
• Html sayfalarının içerisine, sunucu
taraflı kodlar gömmemizi sağlayan
(C#, Vb.Net gibi), bu kodları
istemciye gönderilmeden ayrıştırıp,
gerekli şekilde işleyen, görüntüleme
ve işleme motorudur.
Razor
Razor sistemi Aspx yapısınıdan sonra,
kodlamayı çok kolaylaştıran, çok
sadeleştiren ve çok hızlandıran bir
yapıdır.
@ Operatörü
@DateTime.Now
Model – View - Controller
Model
Model, MVC’de projenin iş mantığının (business logic)
oluşturulduğu bölümdür. İş mantığıyla beraber
doğrulama (validation) ve veri erişim (data access)
işlemleri de bu bölümde gerçekleştirilmektedir.
Model – View - Controller
View
View, MVC’de projenin arayüzlerinin
oluşturulduğu bölümdür. Bu
bölümde projenin kullanıcılara
sunulacak olan HTML dosyaları yer
almaktadır. Projenin geliştirildiği
yazılım dillerine göre dosya
uzantıları da değişebilmektedir.
Projelerin büyüklüğüne göre dikkat
edilmesi gereken bir nokta ise,
klasörlemedir.
Model – View - Controller
Controller
Controller, MVC’de projenin iç süreçlerini
kontrol eden bölümdür. Bu bölümde View
ile Model arasındaki bağlantı kurulur.
Kullanıcılardan gelen istekler (request)
Controller’larda değerlendirilir, isteğin
detayına göre hangi işlemlerin yapılacağı ve
kullanıcıya hangi View’ın döneceği
(response) belirtilir.
Entity Framework Giriş
Entity Framework Nedir ?
Entity Framework Microsoft tarafından geliştirilen ve yazılım
geliştiricilerin katı sql sorguları yazmalarını ortadan kaldırarak
bir ORM (Object Relational Mapping) imkanı sağlayan
framework'tür.
Entity Framework Giriş
Database First Nedir ?
Varolan bir database’i uygulamaya uyarlama işlemine Database
First yaklaşımı denir.
Entity Framework Giriş
Model First Nedir ?
Uygulamada var olan nesneleri de database’e uyarlama işlemine
de Model First yaklaşımı denir.
Nuget Paketleri Yönetimi
Nuget, Visual Studio projemiz için eklemek
istediğimiz 3. parti paket ve dll’leri
(AjaxControlToolkit, Jquery, Facebook, log4net vb.)
bizim yerimize otomatik olarak ekleyen ücretsiz
paket yöneticisidir.
Demo
MVC Proje Oluşturma
Nuget Paket Yönetimi
Database Bağlantısı
Database First Kullanımı
Model First Kullanımı
Controller İşlemleri ( ActionResult, PartialViewResult, JsonResult)
View Model İşlemleri
View İşlemleri ( Layout Düzenleme – Master Pages)
View İşlemleri ( Edit, Detail, List, Create , Custom View)
Teşekkürler
Erdem Avni SELÇUK
Microsoft SharePoint MVP
E-mail: eravse@outlook.com
Twitter: @eravse
Blog: http://www.eravse.com

More Related Content

Erdem Avni SELÇUK 22 Nisan 2015 Çözümpark & Gediz Üniversitesi İzmir MVC Workshop.

  • 2. Erdem Avni SELÇUK Microsoft SharePoint MVP E-mail: eravse@outlook.com Twitter: @eravse Blog: http://www.eravse.com
  • 3. Ajanda MVC Nedir? ASP.NET MVC Nedir? View Engine ve Razor kavramları. Model – View – Controller Avantaj ve Dezavantajları Entity Framework Girişi Model First ve Database First Nuget Paketleri Yönetimi
  • 4. MVC Nedir? • 1979 yılında Trygve Reenskaug • Model View Controller • Katmanlı Mimari
  • 5. ASP.NET MVC Nedir? ASP.NET • System.Web.UI • System.Web ASP.NET MVC • Model • View • Controller
  • 6. Avantaj ve Dezavantajalrı Avantajları • Temiz HTML • Katmanlı mimari • Test Unit • View Engine desteği • JavaScript kütüphaneleri ile uyum • İsteğe bağlı URL haritası • SEO dostu URL • View State ve PostBack yok • Temel ASP.NET özelliklerini destekler • Sayfa boyutları • Mobil Template Dezavantajları • Event kullanılmıyor • Temel HTML , CSS, JS bilgisi • 3.parti kütüphanelerin uyumu • Web Forms dan doğrudan upgrade • View State ve PostBack yok
  • 7. View Engine ve Razor Kavramları View Engine • Html sayfalarının içerisine, sunucu taraflı kodlar gömmemizi sağlayan (C#, Vb.Net gibi), bu kodları istemciye gönderilmeden ayrıştırıp, gerekli şekilde işleyen, görüntüleme ve işleme motorudur. Razor Razor sistemi Aspx yapısınıdan sonra, kodlamayı çok kolaylaştıran, çok sadeleştiren ve çok hızlandıran bir yapıdır. @ Operatörü @DateTime.Now
  • 8. Model – View - Controller Model Model, MVC’de projenin iş mantığının (business logic) oluşturulduğu bölümdür. İş mantığıyla beraber doğrulama (validation) ve veri erişim (data access) işlemleri de bu bölümde gerçekleştirilmektedir.
  • 9. Model – View - Controller View View, MVC’de projenin arayüzlerinin oluşturulduğu bölümdür. Bu bölümde projenin kullanıcılara sunulacak olan HTML dosyaları yer almaktadır. Projenin geliştirildiği yazılım dillerine göre dosya uzantıları da değişebilmektedir. Projelerin büyüklüğüne göre dikkat edilmesi gereken bir nokta ise, klasörlemedir.
  • 10. Model – View - Controller Controller Controller, MVC’de projenin iç süreçlerini kontrol eden bölümdür. Bu bölümde View ile Model arasındaki bağlantı kurulur. Kullanıcılardan gelen istekler (request) Controller’larda değerlendirilir, isteğin detayına göre hangi işlemlerin yapılacağı ve kullanıcıya hangi View’ın döneceği (response) belirtilir.
  • 11. Entity Framework Giriş Entity Framework Nedir ? Entity Framework Microsoft tarafından geliştirilen ve yazılım geliştiricilerin katı sql sorguları yazmalarını ortadan kaldırarak bir ORM (Object Relational Mapping) imkanı sağlayan framework'tür.
  • 12. Entity Framework Giriş Database First Nedir ? Varolan bir database’i uygulamaya uyarlama işlemine Database First yaklaşımı denir.
  • 13. Entity Framework Giriş Model First Nedir ? Uygulamada var olan nesneleri de database’e uyarlama işlemine de Model First yaklaşımı denir.
  • 14. Nuget Paketleri Yönetimi Nuget, Visual Studio projemiz için eklemek istediğimiz 3. parti paket ve dll’leri (AjaxControlToolkit, Jquery, Facebook, log4net vb.) bizim yerimize otomatik olarak ekleyen ücretsiz paket yöneticisidir.
  • 15. Demo MVC Proje Oluşturma Nuget Paket Yönetimi Database Bağlantısı Database First Kullanımı Model First Kullanımı Controller İşlemleri ( ActionResult, PartialViewResult, JsonResult) View Model İşlemleri View İşlemleri ( Layout Düzenleme – Master Pages) View İşlemleri ( Edit, Detail, List, Create , Custom View)
  • 16. Teşekkürler Erdem Avni SELÇUK Microsoft SharePoint MVP E-mail: eravse@outlook.com Twitter: @eravse Blog: http://www.eravse.com

Editor's Notes

  1. Ortaya atıldığı ilk yıllarda adı thing-model-view-controller di sonrada bugünkü halini aldı. Önemli bir mimari patterndir. MVC’de bir uygulamanın kullanıcı arayüzü 3 ana bölüme ayrılır: Model: Data işlemlerinin ve iş kurallarının tanımlanır, class’lar oluşturulur View: Kullanıcı arayüzünün nasıl gösterileceği tanımlanır Controller: Kullanıcı arayüzündeki işlemler ile data ve/veya spesifik katman arasındaki iletişim sağlanır. MVC tipik bir framework olmasına rağmen, özellikle bir mimaridir. Bunun anlamı spesifik class hiyerarşi veya object-oriented bir dil olmasa bile implement edilebilir.
  2. 2002 yılında ilk defa yayınladığında(release), ASP.NET ve Web Form’ları bir bütün gibi ve aynı şey olarak düşünülüyordu. ASP.NET daima 2 katmanı destekledi: System.Web.UI:Web Form katmanı, server kontrolleri, view state vb… System.Web:modüller, handler’lar, HTTP Stack buna benzer ASP.NET içerisinde geliştirilmiş hazır server kontrollerini sürükle-bırak yöntemi ile sayfalarımıza atıp, otomatik olarak bizim için oluşturulmuş HTML çıktılarına  sahip oluruz. Çalışmasını istediğimiz sayfadaki işlemleri handler’lar, moduller vasıtasıyla çalıştırırız. ASP.NET yerleşik olarak bir patern’e sahip değildir. Bu yazılım dünyası için büyük bir eksiklikti. ASP.NET MVC 2007 yılında duyuruluncaya kadar bu etkinlik hissedildi. MVC patern’i web uygulamalarında sıklıkla kullanıyor, ASP.NET MVC içerisindeki kullanımı genel hatlarıyla: Models: Kullanacağınız class’lar bulunur. Bu katmanda database’e erişim yollarınız ve metotlarınız yer almaktadır. Bu katman data erişim katmanı(access layer) olarak Entity Framework, NHibernate, ADO.NET ile database üzerinde veri işlemleri yapılması için kullanılır. View: Dinamik olarak HTML kodları generate edilir. Controller: View ve Model arasında ki iletişimi sağlar. Kullanıcı girişlerini yanıtlar, model ile haberleşir, hangi view’in render edileceğine karar verir. Şubat 2007 yılında, Microsoft’tan Scott Guthrie(“ScottGu”) tarafından ABD’nin doğu yakasındaki bir konferansa giderken uçakta ASP.NET MVC’nin çekirdeğini/temelini tasarlamıştır. Bir kaç yüz satır kod’dan oluşan basit bir uygulamaydı fakat salondakileri heyecanlandıran ve potansiyeli yüksek bir teknoloji olduğunu o zamandan hissettirmiştir. Release olana kadar 9 preview release olmuştur. Sonunda ASP.NET MVC 1.0, 13 Mart 2009 yılında release oldu.
  3. Model, MVC’de projenin iş mantığının (business logic) oluşturulduğu bölümdür. İş mantığıyla beraber doğrulama (validation) ve veri erişim (data access) işlemleri de bu bölümde gerçekleştirilmektedir. Model tek katmandan oluşabileceği gibi kendi içinde birden fazla katmandan da oluşabilir. İç yapılandırma projenin büyüklüğü ile yazılım geliştiricinin planlamasına kalmış bir durumdur. Eğer proje büyük çaplı ise modeli birden çok katmana ayırmak projenin yönetimi açısından faydalı olacaktır.
  4. Eğer bir web projesi geliştiriyorsanız, projenin View’larının yer aldığı klasörlerinin hiyerarşisi, ilerleyen dönemlerde karmaşıklığa sebep olmaması için dikkatli yapılmalıdır. Kimi yazılım geliştiriciler web projelerinde HTML dosyaları ile Javascript, CSS ve resim dosyalarını aynı klasör içinde barındırmaktadır. Ufak bir ayrıntı gibi görünse de projenin ilerleyen dönemlerinde ciddi problemler oluşturmaktadır. View’ın bir görevi de, kullanıcılardan alınan istekleri controller’a iletmektir.
  5. Piyasada bir çok ORM Framework'leri bulunmaktadır. Örnek olarak; DataObjects.Net, NHibernate, OpenAccess, SubSonic Entity framework ile birlikte LINQ (Language Integrated Query) sorgularını kullanarak nesneler üzerinde güçlü bir sorgulama imkanına sahip oluruz. Entity framework'ün aslında temel amacı uygulama geliştiricinin data işlemleri ile çok haşır neşir olmadan uygulama tarafına odaklanmasını sağlamaktır.