Yeni Başlayanlar İçin ASP.NET MVC Eğitimi: Nedir, Archidoku

⚡ Akıllı Özet

ASP.NET MVC açık kaynaklı bir projedir. Microsoft Web uygulamasını Model, View ve Controller katmanlarına ayıran, geliştiricilere HTML üzerinde tam kontrol, test edilebilir kod, temiz yönlendirme ve klasik Web Forms'a hafif bir alternatif sunan bir çerçeve.

  • 🏛️ Archidoku: Model, etki alanı verilerini tutar, Görünüm Razor ile kullanıcı arayüzünü oluşturur ve Denetleyici ikisi arasındaki her isteği yönetir.
  • ⚡ MVC'nin Nedenleri: Bu, Web Form'ların ViewState ve performans yükünü giderir, temiz yönlendirme ve Test Odaklı Geliştirmeyi mümkün kılar.
  • 🔀 Yönlendirme: Rota bazlı URLGelen istekleri denetleyici eylemlerine eşleyen ve dosya tabanlı .aspx'leri değiştiren bir yapı. URLSEO dostu yollarla.
  • 🧪 Test edilebilirlik: Görünümler iş mantığı içermediğinden, Denetleyici ve Model ayrı ayrı birim testine tabi tutulabilir.
  • 🇧🇷 Web Formlarını Karşılaştırın: Web Forms, olay odaklı sunucu denetimleri kullanırken; MVC, manuel durum yönetimiyle istek odaklı eylemler kullanır.
  • ️ En iyi pratik: İş mantığını Model'de tutun, Denetleyicileri sade tutun ve işaretlemeyi yeniden kullanmak için kısmi Görünümler veya düzenler kullanın.

ASP.NET MVC Eğitimi

ASP.NET MVC nedir?

ASP.NET MVC tarafından sağlanan açık kaynaklı bir web geliştirme çerçevesidir. Microsoft Model Görünüm Denetleyicisi (MVC) mimarisi sağlayan ASP.NET MVC, web uygulamaları oluşturmak için ASP.NET web formlarına bir alternatif sunar. Web uygulamaları oluşturmak, dağıtmak ve çalıştırmak için .NET platformunun bir parçasıdır. HTML, CSS, jQuery yardımıyla web uygulamaları ve web siteleri geliştirebilirsiniz. JavaSenaryo vb.

Yeni başlayanlar için MVC'nin tüm temel kavramlarını kapsayan bu ASP.NET MVC öğreticisiyle MVC'yi öğrenin:

ASP.NET MVC neden?

Web formları çok başarılı olmasına rağmen Microsoft geliştirmeyi düşündümping ASP.NET MVC. ASP.NET webForms'un en büyük sorunu performanstır.

İçinde web uygulamasıperformansı tanımlayan dört ana husus vardır: -

  • Yanıt süresi sorunları
  • Birim Testi Sorunu
  • HTML özelleştirmesi
  • Arka plan kodu sınıfının yeniden kullanılabilirliği

ASP.NET MVC yukarıdaki parametrelerde üstün performans sergiliyor.

MVC'nin Sürüm Geçmişi

ASP.NET MVC1

  • 13 Mart 2009'da yayınlandı
  • .NET 3.5 üzerinde çalışır.
  • Visual Studio 2008
  • WebForm Motoru ile MVC Desen mimarisi
  • Ana Özellikler Html ve Birim Testi, Ajax Yardımcıları, Yönlendirme vb.

ASP.NET MVC2

  • Bu sürüm 10 Mart 2010'da yayınlandı
  • .NET 3.5, 4.0 ve ile çalışır Microsoft Visual Studio 2008
  • Şablonlu yardımcılar, otomatik iskelet oluşturma özelliğine sahip kullanıcı arayüzü yardımcıları ve özelleştirilebilir şablonlar gibi özellikleri ekleyin.
  • Model doğrulamanın istemci ve sunucu taraflarında uygulanması için DataAnnotations Niteliklerini destekler.

ASP.NET MVC3

  • 13 Ocak 2011'de yayınlandı
  • .NET 4.0'da çalışır ve Microsoft Visual Studio 2010
  • N'nin kullanımıuGet yazılım sunmak ve platformdaki bağımlılıkları yönetmenize olanak sağlamak
  • Daha iyi JavajQuery doğrulama ve JSON bağlama ile komut dosyası desteği
  • Bu yazılım, hem istemci hem de sunucu tarafında model doğrulama için Razor görünüm motoru ve gelişmiş Veri Ek Açıklamaları öznitelikleri gibi özellikler sunmaktadır.

ASP.NET MVC4

  • Bu sürüm Ağustos 2012'de yayınlandı
  • .NET 4.0, 4.5 ve Visual Studio 2010 ve Visual Studio 2012 ile çalışır
  • Varsayılan proje şablonlarındaki geliştirmeler
  • JQuery Mobile kullanarak Mobil proje şablonu, Asenkron Denetleyiciler için Görev desteği, paketleme, küçültme vb. özellikler sunar.

ASP.NET MVC5

  • 17 Ekim 2013'da yayınlandı
  • .NET 4.5, 4.5.1 ve Visual Studio 2012 & Visual Studio 2013 ile çalışır.
  • MVC'de özellik yönlendirmeyi destekler

MVC'nin Özellikleri

  • Kolay ve sürtünmesiz test edilebilirlik
  • HTML'niz üzerinde tam kontrol, JavaSenaryo ve URLs
  • Mevcut durumdan yararlanın ASP.NET Özellikler
  • ASP.NET için yeni bir sunum seçeneği.
  • ASP.NET programlamanın daha basit bir yolu
  • Mantığın açık bir şekilde ayrılması: Model, Görünüm, Denetleyici
  • Test Odaklı Geliştirme
  • Paralel gelişim desteği

MVC Uygulaması oluştururken hatırlanması gerekenler

Bu ASP.NET MVC eğitiminde, MVC uygulaması oluştururken hatırlamanız gereken birkaç yararlı şey şunlardır:

  • ASP.NET MVC'nin, ASP.NET web form tabanlı uygulamaların yerini almadığını hatırlamanız gerekiyor.
  • MVC uygulama geliştirme yaklaşımı, uygulamanın gereksinimlerine ve ASP.NET MVC'nin sunduğu özelliklere göre, belirli geliştirme ihtiyaçlarına uygun olarak belirlenmelidir.
  • ASP.NET MVC ile uygulama geliştirme süreci, web form tabanlı uygulamalara kıyasla daha karmaşıktır.
  • Uygulama görevlerinin ayrılmasıyla uygulama sürdürülebilirliği her zaman daha yüksek olur.

MVC mimari deseni

MVC mimari deseni

MVC, sorumlulukların ayrılması yöntemini izleyen bir yazılım mimarisi modelidir. Bu modelde, .NET uygulamaları Model, Görünüm ve Denetleyici olarak adlandırılan üç birbirine bağlı bölüme ayrılır.

MVC modelinin amacı, bu parçaların her birinin geliştirilebilmesi, göreceli izolasyonla test edilebilmesi ve ayrıca çok sağlam bir uygulama oluşturmak için birleştirilebilmesidir.

Şimdi hepsini ayrıntılı olarak inceleyelim:

Modeller

Model nesneleri, uygulamanın mantığını uygulayan uygulamanın parçalarıdır. veri alanı. Model durumunu bir veritabanında alır ve saklar. Örneğin, ürün nesnesi bir üründen bilgi alabilir. veritabanı, üzerinde çalıştırın. Daha sonra bilgileri SQL sunucusundaki ürünler tablosuna yazın.

Görünümler

Görünümler (Views), MVC'de görünüm modeli (viewmodel) olarak da adlandırılan uygulamanın kullanıcı arayüzünü (UI) görüntülemek için kullanılan bileşenlerdir. Model verilerinden oluşturulan .NET MVC uygulamasının görünümünü görüntüler.

Yaygın örnek, bir Öğe tablosunun düzenleme görünümüdür. Ürünlerin ve nesnelerin geçerli durumuna göre metin kutuları, açılır pencereler ve onay kutuları görüntüler.

kontrolör

Denetleyiciler kullanıcı etkileşimini yönetir, modelle çalışır ve kullanıcı arayüzünü görüntüleyecek bir görünüm seçer. Bir .NET MVC uygulamasında, görünüm yalnızca bilgi görüntüler; denetleyici ise MVC'deki eylem filtrelerini kullanarak kullanıcı girdisini ve etkileşimini yönetir ve bunlara yanıt verir.

Örneğin denetleyici, sorgu dizesi değerlerini yönetir ve bu değerleri modele iletir.

Web Formları ve MVC Karşılaştırması

Parametreler Web Formları MVC
Model ASP.NET Web Forms, olay odaklı geliştirme modelini takip eder. ASP.NET MVC, MVC desenine dayalı bir geliştirme modeli kullanır.
Şu tarihten beri kullanılıyor: 2002'den beri buralardayım İlk olarak 2009'da yayınlandı
Görünüm durumu desteği ASP.NET Web Form, istemci tarafında durum yönetimi için görünüm durumunu destekler. .NET MVC, görünüm durumunu desteklemez.
URL tip ASP.NET Web Form dosya tabanlıdır. URLs. Bu, dosya adının mevcut olduğu anlamına gelir. URLve fiziksel olarak var olmaları gerekir. ASP.NET MVC, rota tabanlı bir yapıya sahiptir. URLBu şu anlama geliyor: URLDenetleyicilere ve eylemlere yönlendirilen s'ler.
Sözdizimi ASP.NET Web Formları, Web Formları sözdizimine uyar. ASP.NET MVC, özelleştirilebilir sözdizimini takip eder.
Görünüm türü Web Formu, görünümler birbirine sıkıca bağlıdır. Code (ASPX-CS)'nin arkasında, yani mantık. MVC, Görünümler ve mantık her zaman ayrı tutulur.
Tutarlı görünüm ve his Tutarlı bir görünüm için ana sayfalara sahiptir. ASP.NET MVC, tutarlı bir görünüm için düzenlere sahiptir.
Code Reus yeteneği Web Formu, kodun yeniden kullanılabilirliği için Kullanıcı Kontrolleri sunar. ASP.NET MVC, kodun yeniden kullanılabilirliği için kısmi görünümler sunmaktadır.
HTML kontrolü Less oluşturulan HTML üzerinde kontrol. HTML üzerinde tam kontrol
Durum Yönetimi Kontrollerin otomatik durum yönetimi. Manuel durum yönetimi.
TDD desteği Zayıf veya özel TDD gereklidir. TDD'yi teşvik eder ve içerir.

ASP.NET MVC'nin Avantajları

  • Varsayılan olarak bakımı oldukça kolay uygulamalar
  • Uygulamanın herhangi bir bileşenini değiştirmenize olanak tanır.
  • Test Odaklı Geliştirme için daha iyi destek
  • Model, View ve Controller bölümlerinin varlığı sayesinde karmaşık uygulamaların yönetimi kolaydır.
  • Ön denetleyici düzeniyle sağlam yönlendirme mekanizması sunar
  • Görünüm durumunun ve sunucu tabanlı formların ortadan kaldırılmasıyla uygulama davranışı üzerinde daha iyi kontrol sunar
  • .NET MVC uygulamaları, büyük geliştirici ve web tasarımcı ekipleri tarafından desteklenmektedir.
  • Uygulamanın davranışları üzerinde daha fazla kontrol sağlar. Ayrıca sunucuya yapılan istekler için optimize edilmiş bant genişliği kullanır

ASP.NET MVC'nin dezavantajları

  • .aspx sayfasındaki gibi tasarım sayfası önizlemesini göremezsiniz.
  • Programın gerçek tasarımını görmek için her seferinde çalıştırmanız gerekiyor.
  • Uygulamanın akışını anlamak zor olabilir
  • Uygulaması oldukça karmaşık olduğundan küçük seviyeli uygulamalar için ideal bir seçenek değildir.
  • ASP.NET için MVC'yi öğrenmek, MVC modelinin çok iyi anlaşılmasını gerektirdiğinden zordur.

ASP.NET MVC kullanırken en iyi uygulamalar

  • Büyük ve karmaşık kodlarda istenmeyen durumların önüne geçmek için MODEL için ayrı bir derleme oluşturun.
  • Model iş mantığını, oturum bakımını, doğrulama kısmını ve veri mantığı kısmını içermelidir.
  • VIEW herhangi bir iş mantığı ve oturum bakımı içermemelidir; ViewData'yı View'daki verilere erişmek için kullanın
  • İş mantığı ve veri erişimi asla Controller'da gerçekleşmemelidir.
  • Denetleyici yalnızca bir görünümü hazırlamak ve döndürmek, modeli çağırmak, eyleme yönlendirmek vb. işlemlerden sorumlu olmalıdır.
  • Uygulamayı oluşturduğunuzda demo kodunu silin (AccountController'ı silin).
  • Görünümünüzden HTML işaretlemesi oluşturmak için yalnızca belirli bir görünüm motorunu kullanın, çünkü bu, HTML ve programlama kodunun birleşimidir.

SSS

Evet. GitHub Copilot, eylem yöntemleri, rota öznitelikleri ve bunlara uygun Razor Görünümleri içeren bir Denetleyici sınıfı oluşturabilir. RevOluşturulan kodu projeye eklemeden önce, model bağlama ve yetkilendirmenin doğru olup olmadığını kontrol edin.

Makine öğrenimi asistanları, Web Form sayfalarını Denetleyicilere ve Görünümlere eşleyebilir, arka plandaki kodu eylem yöntemlerine çevirebilir ve ViewState kullanımını işaretleyebilir. Geliştirici yine de yönlendirmeyi, model bağlamayı ve taşınan her iş kuralını doğrular.

ViewData, tek bir istek boyunca korunabilen, string anahtarlı nesnelerden oluşan bir sözlüktür. ViewBag, ViewData üzerinde dinamik bir sarmalayıcıdır. TempData oturum durumunu kullanır ve tek bir yönlendirmeden sonra da korunur, bu nedenle iki ardışık istek arasında veri aktarmak için kullanılır.

Yönlendirme motoru gelen bir isteği eşleştirir. URL RouteConfig'te kayıtlı şablonlara karşı arama yapılır. Bir şablon eşleştiğinde, MVC denetleyiciyi ve eylemi seçer, parametreleri bağlar ve bir ActionResult döndürmek üzere eylemi çağırır.

Razor, C# veya VB.NET kodunu .cshtml veya .vbhtml dosyalarına yerleştirmek için kullanılan kompakt bir sözdizimidir. HTML'den koda geçiş için @ işaretini kullanır, şablonların okunabilirliğini korur ve çalışma zamanında hızlı, güçlü tipli sınıflara derlenir.

Klasik ASP.NET MVC, tam .NET Framework üzerinde çalışır ve Windows Yalnızca. ASP.NET Core MVC, .NET Core üzerinde çalışır. Windows, Linux ve macOSWeb API ile birleşik bir denetleyici modeli kullanır ve yerleşik bağımlılık enjeksiyonu sunar.

ASP.NET Identity'i veya aşağıdaki gibi harici bir sağlayıcıyı kullanın: Azure Oturum açmak için AD kullanılır. Erişimi kısıtlamak için bir denetleyiciyi veya eylemi [Authorize] özniteliğiyle süsleyin ve daha ayrıntılı kurallar için rol veya politika parametrelerini kullanın.

Test metodunda Controller'ı örnekleyin, yapıcı metot aracılığıyla sahte veya taklit servisleri enjekte edin, eylemi çağırın ve döndürülen ActionResult'ın beklenen görünüm adı, model veya yönlendirme hedefiyle eşleştiğini doğrulayın.

Bu yazıyı şu şekilde özetleyin: