CariDefter projesi

Lab 1 - Hazırlık

« Giriş Analiz »

MVCnin birinci özelliği, projelere model kurmakla başlanıyor. Bu model veri tabanı bilgileriyle beraber veri tabanı içerisinde saklanamayan bazı özellikleride saklamayı sağlıyor. Model kurma süreci analizle bağlantılı olduğundan uzun bir süreç olabilir ancak kurulan modelden controller adı altında iş kurallarının oluşturulması ve kullanıcı arayüzünün oluşturulması bir kaç dakikada gerçekleşebiliyor.
Yani gerçek dünyada olduğu gibi modeliniz sağlamsa geri kalan çok kolay.
CariDefter projesinde yaptıklarımı adım adım göstermeye çalışarak MVC konusunda biraz bilgi paylaşmayı amaçlıyorum. Ancak iyi öğrenmek için Wrox yayınlarından "Professional Asp.net MVC 5 kitabını tavsiye ederim."
Önce asp.net sitesine gidip Visual Studio 2013 indirip çalıştırın. CariDefter web uygulamasına yeni bir proje olarak başlayıp aşağıdaki gibi bir MVC projesi oluşturun.

Proje yapısına (Solution Explorer ile) bakınca eski forms tabanlı .net sitelerinden oldukça farklı bir klasör yapısı ile karşılaşıyoruz.

Models, Views ve Controllers olarak üç ayrı klasör olduğuna dikkat edin.
Models altında veri tabanı bağlantılı tasarım dosyalarımız(modellerimiz) yer alacak. Biz otomatik olarak güvenlik alt yapısı olan bir proje oluşturmayı tercih ettiğimiz için güvenlik bilgilerinin saklandığı tablolarla ilgili iki dosya yer alıyor. Diğer dosyaları analiz çalışmamıza bağlı olarak biz oluşturacağız.

Views altında Homes ve Shared klasörleri ve içerisinde çeşitli cshtml dosyaları var. Bunlar MVC'ye özel içerisinde razor veya bildiğimiz html kodları olan görüntüyü(kullanıcı arayüzünü) sağlayan dosyalar. Az çok html bilmeden web sayfası geliştirmeyle ilgili yola çıkmadığınızı umuyorum. Razor benim için de yeni. MVC ile geliştirme yapacaksanız Razor ile tanışmaya başlasanız iyi olur. Aç kapa parantezli html etiketlerine ilave olarak at işaretiyle başlayan helpers (yardımcılar) ile tanışmamız gerekiyor.
Home-Index içerisinde açılış sayfasında gördüğünüz bilgileri html ile yazdım.

Shared-Layout forms.net teki masterpage ile aynı işi yapıyor. LoginPartial gene bir master olarak Layout tarafından çağırılıyor. Menü yapısını, başlığı ve sayfa dibini değiştirmek için gerekli değişiklikleri uygulayalım.

Bu arada homes altındaki diğer cshtml dosyaları silip Proje.cshtml dosyasını eklediğim için HomeController dosyasını da biraz değiştirmek ve sadece proje dosyasına Viewbag(görüntü torbası) mesajı göndermek gerekiyor. Viewbag controller ile view arasında veri alışverişi için pratik bir araç ama gerçek uygulamalar için yeterli değil. Diğer araçların modelden controller otomatik yaratırken kendiliğinden oluştuğunu göreceğiz.

Proje klasörlerinin en üstünde App_data yeralmaktadır. Şu anda bu klasör boş ancak uygulamayı çalıştırıp bir Kayıt yaparsam bu değişecek. Lokalde (bu klasörün içerisinde) bir veri tabanı oluşacak. Aynı zamanda web.config dosyasında şu anda olmayan veri tabanı bağlantısı otomatik olarak oluşacak.
Başlamadan önce güvenlik mesajlarının Türkçe gelmesi için Modelden başlayarak bazı değişiklikleri yapmamız gerekir. Daha sonra View altındaki Account dosyasında yer alan diğer cshtml dosyalara da biraz el atmamız gerekebilir.

App_Start klasöründeki RouteConfig proje çalıştığında ilk başlayacak sayfayı belirlemek için önemli. Şu anda bir değişiklik yapmıyoruz. Daha sonra başlangıç sayfamızı (eski index.html. MVC de IIS bu işe karışmıyor.) buradan kolaylıkla değiştirebiliriz.

Content klasörü bizim sitenin görüntüsünü etkileyecek bootstrap.css dosyaları'nı tutuyor. Bu dosyaları internetten indirdiğiniz başka bootstrap dosyalarıyla değiştirebilirsiniz. Ben bootswatch.com sitesinden bir tane indirip değiştirdim. Ayrıca Images klasörü yaratıp içine projede kullanacağım resim dosyalarını koymaya başladım. Diğer pdf gibi dokümanlarınızıda burada saklamak iyi bir alışkanlık.

Şimdi uygulamayı çalıştırıp bir yeni kullanıcı kaydedebilirsiniz. Bunu yaptığınızda oluşan veri tabanı ile web.config dosyasını inceleyin.
Maalesef Modelde tanımladığımız veri alan etiketleri dışında her şey ingilizce. Views-Account klasöründe uzun bir tercüme çalışması bizi bekliyor. Ancak yeni bir güvenlik sistemi kurmaktan çok daha kolay olacağına emin olun.


« Giriş Analiz »