Mvc 3 Tools Update ve Getirdikleri

Bu konuyu nasıl atladım, bu kadar zamandır nasıl bahsetmedim bilmiyorum :S Öncelikle ASP.NET MVC 3 Tools Update yi indirip kuralım. Bu araç, Scaffolding templatelerini kullanma işini paket yönetim konsoluna komut ile yapmak yerine bir iki tıkta yapmamıza olanak sağlıyor. Hemen kullanıma bakalım.

Yeni bir Mvc3 projesi açıyoruz. Sonrasında urun adında bir model oluşturuyoruz.

    public class urun
    {
        public int id { get; set; }
        public string adi { get; set; }
        public int stok { get; set; }
    }

Modelimizi yazdıktan sonra ctrl+shift+b ile projemizi derliyoruz. Solution Explorer da bulunan Controllers klasörüne sağ tıklayıp Add / Controller diyoruz. İşte bu açılan ekran yüklediğimiz Mvc3 Tools ekranı.



Bu ekranda Controller name alanına urunController yazıyoruz. Scafoolding options altında Template seçeneklerini görüyoruz. ilk seçenek boş controller eklememize olanak sağlıyor. ikinci seçenek modelimize uygun okuma, yazma, silme ve güncelleme (crud) işlemleri için ilgili controlleri ve viewları oluşturuyor. Üçüncü seçenek ise sadece sadece boş methodları oluşturuyor, yani Mvc3 toolsu yüklemeden önceki gibi.. Model Class seçeğinden ise hangi model için yukarıda seçtiğimiz işlerin yapılacağını belirtiyoruz. Biz örneğimizde  urun ü seçiyoruz. Data context class ise contextimizi seçiyoruz. Bir context yazmadığımızdan dolayı New Data Context diyoruz ve açılan ekrana yeni oluşacak contextimizin adını giriyoruz. Örneğimizde mvc3ToolUpdateContext adını veriyoruz ve Add butonuna tıklıyoruz. Bir kaç saniye içinde controller ve viewlarımız oluşuyor.

Projemiz çalışmaya hazır fakat web.config içine bir connection string ile veritabanımızı belirtmemiz gerekiyor. Ben bu örnekte Sql Server Compact 4.0 kullanıyorum. Burada dikkat etmemiz gerek nokta connection string adıyla context adının aynı olması ! Yani name=”mvc3ToolUpdateContext” şeklinde belirtiyoruz.

Projemiz artık hazır, çalıştırıp olup biteni gözleyebiliriz. Adres çubuğuna urun yazdığımız anda modelimize uygun veritabanı ve tablolar otomatik olarak oluşuyor.

Eğer modelimiz üzerinde bir değişiklik yapıp projemizi çalıştırırsak “The model backing the ‘mvc3ToolUpdateContext’ context has changed since the database was created.” hatası alırız. Bu şu demek, arkadaşım bana bir ayar verde modelin değiştiğinde ben sürekli veritabanını yeniden oluşturayım.

mvc3ToolUpdateContext.cs içine girdiğimizde // System.Data.Entity.Database.SetInitializer(new System.Data.Entity.DropCreateDatabaseIfModelChanges<mvc3ToolUpdate.Models.mvc3ToolUpdateContext>()); şeklinde bir comment edilmiş satır görüyoruz. İşte yukarda ki durumun ilacı bu satır. Bu satırı contextimizin constructor methoduna yazıyoruz. Artık modelimiz her değiştiğinde veritabanımız yeniden oluşturulacak.

İlgili projeyi buradan indirebilirsiniz. Bu konu için 29 Mayıs‘ dan sonra bir video çekeceğim çünkü gösterek anlatmak istediğim bazı önemli nüanslar bulunuyor. Son zamanlarda yazdığım her şey bir birinin aynı gibi gelebilir esasında da aynı, sadece kullandığımız yöntemler değişiyor ve şu anda bu anlattığım yöntem en hızlı olanı. Sürekli dile getiriyorum mvc3 ve code-first tarafında her geçen gün yeni gelişmeler oluyor, çok da güzel oluyor. Umarım faydalı olmuştur :)