MVC


Proje Oluşturma ve Database Bağlantısı

MVC yani Model-View-Controller, klasik ASP.Net formlarının yavaşlığı sebebiyle son yıllarda tercih edilmeye başlanan bir mimari desendir. Çünkü MVC kullanıcıya yüksek düzeyde veri sunulduğu zamanlarda yoğunluğu engellemek ve süreci hızlandırmak adına, veri ve gösterimin ayrı olarak yapılandırılması prensibine dayanır. Bu sayede model(veri) ve view(kullanıcı arayüzü) birbirine bağımlı olmaktan çıkarak bağımsız olarak düzenlenebilir.

model view controller

 

MVC’nin birleştirici halkası Controller’ın görevi de Model ve View arasındaki iletişimi koordine etmektir. Yani birbirinden bağımsız çalışn Model ve View, Controller sayesinde haberleşme sağlarlar. Biz de kısaca değindiğimiz bu mimari deseni ASP.NET MVC Framework üzerinden geliştireceğimiz uygulamalarla inceleyeceğiz. Öncelikle eğer bilgisayarımızda bulunmuyorsa aşağıdaki gerekli uygulamaları yüklüyoruz:

Uygulamalarımızı yükledikten sonra MVC’ye yelken açmadan önce yapmamız gereken son bir şey kalıyor. Kurduğumuz Visual Studio 2013’ü açtıktan sonra yukarıda bulunan menüden sırasıyla Tools-Extensions and Uptades-Visual Studio 2013 Update 4 pathini izliyoruz:

Visual Studio Update 4 indr

 

Biraz uzun sürecek bu güncelleme işlemi sonrasında ilk projemizi oluşturmaya başlayabiliriz:

  • File-New-Project uzantısını takip ederek Web altındaki ASP.NET Web Application’ı seçiyoruz:

 

MVC Projesi Oluşturma

 

  • Karşımıza gelen ekranda bulunan formlardan MVC’yi seçili hale getiriyoruz. Change Authentication butonuna tıklayarak ilk aşamada gereksinim duymadığımız için No Authentication’ı işaretliyoruz:

 

MVC No Authentication

 

  • Tools-NuGet Package Manager-Package Manager Console uzantısını izleyerek açılan komut satırına Install-Package EntityFramework yazıyoruz. Böylece projemize Entity Framework 6’yı import etmiş oluyoruz:

 

  • Entity Framework 6 yükleme

 

  • Derleyicinin sağ tarafında konumlanan Solution Explorer’da MVC projemizin yapısını görebiliriz. Temel olarak Models, Views, Controllers üçgeninde gerçekleştireceğimiz işlemlerin yanı sıra Scripts ve diğer yan elementlerle de gerekli özelleştirmeleri bağımsız bir şekilde yapabileceğiz. Şimdi ilk olarak projemize database bağlantımızı gerçekleştirelim. Önceden kurduğumuz Sql Server 2012’yi açarak Server Name kısmına ‘.’ koyup local veritabanı bağlantımızı gerçekleştiriyoruz.  Sonrasında projemizin Dal klasörü altında DenemeDataContext.cs adında bir class açıp aşağıdaki gibi düzenliyoruz:
    MVC Data Context

Class’ta görebileceğiniz üzere veritabanına set edeceğimiz bir menü oluşturduk. Bu menüdeki değişkenleri kendimize göre şekillendirebiliriz. Bunun için de Models klasörü altına Menu.cs Class’ı açıyor ve gerekli materyalleri yazıyoruz:

MVC Menü Oluşturma

 

Şimdi oluşturduğumuz menüyü ActionResult olarak tanımlamak ve gerekli bağlantıyı oluşturmak için Controller klasörü altına MenuController.cs adında aşağıdaki gibi bir Class oluşturuyoruz:

MVC Menü Controller Oluşturma

 

Web.config kısmına database ile bağlantıyı sağlamak için gerekli ConnectionString’i yazıyoruz:

MVC Projesi Database Bağlantısı Oluşturma

 

Bağlantımız neredeyse hazır durumda. Şimdi Package Manager Console’a gelerek database erişimini sağlamak için Enable-Migrations komutunu yazıyoruz. Başarılı olduğumuz takdirde oluşacak Migrations klasörü altında Configuration.cs adında yeni bir Class’ımız olacak:

MVC Projesi Migrations

 

Şimdi veritabanımızda bulunan alanları tanımlamak için Migrations klasörünün altına MenuFieldUpdate adında bir Class oluşturarak kendimize göre Column Name,  Length, nullable değerlerini tanımlıyoruz:

Veritabanı Oluşturma MVC

 

 

Son olarak veritabanımıza projemizde gerçekleştirdiğimiz işlemleri aktarmak için Package Manager Console’a sırasıyla ‘update-database’ ve add-migration ‘MenuFieldUpdate’ komutlarını yazarak veritabanına aktarma işlemini tamamlıyoruz:

MVC Package Manager Console Kullanımı

 

Sql Server Mvc Table Oluşturma

 

Artık database bağlantısına sahip bir MVC projeniz var. Tebrik ederiz :)

2 Responses


  • Çağrı Kaçmaz // // Reply

    AJAX İLE UPDATE, DELETE, CREATE İŞLEMLERİ

    Her işlemde formun bütün olarak tekrar post edilmesi ile kaybedilen zaman ve fonksiyonel kaybı minimuma indirmek adına, oluşturacağımız script ile sadece gerekli yerin çağrılmasını ve projenin hızlanmasını sağlayacağız. AJAX kullanımı, MVC projelerimizde hız ve performans optimizasyonu açısından önemli bir yer teşkil edecektir.  Öncelikle Create methodumuzu düzenleyerek başlayalım:

    Create Data MVC Ajax

    Yukarıda gördüğünüz gibi create.cshtml’in içine veri tipi json olan bir Ajax scripti oluşturuyoruz. Input Type’ı ‘submit’ olan Create butonumuzun tipini ‘button’ olarak değiştiriyor ve scriptte verdiğimiz id’yi butona da tanımlıyoruz. Son olarak form methodumuza, scriptte serialize etmesi amacıyla tanımladığımız CreateForm’u id olarak ekliyoruz:

    <form method=”post” id=”CreateForm”>

    Artık Create işlemimizi Ajax ile gerçekleştirebiliriz.

    Mvc ile data ekleme ajax

    Şimdi Controller altında UserController class’ımızı Edit ve Delete işlemleri için düzenliyoruz.

    Edit:

    Mvc Data Edit İşlemi

     

     

     

     

    Delete:

    MVC Delete İşlemi

     

    Şimdi bu üç işlemimizi tek sayfada birleştirmek ve main page oluşturmak için User klasörümüzün altına Index.cshtml dosyası oluşturuyoruz. Aynı zamande Delete fonksiyonumuzun scriptini de, işlem yapılırken farklı sayfaya gidilmesine ihtiyaç olmadığı için ana sayfamızda yazıyoruz.  Öncelikleri veri alanlarını dolduracağımız tablomuzu ve işlemleri gerçekleştireceğimiz(Create, Edit, Delete) butonlarımızı oluşturuyoruz:

    Mvc tablo oluşturma

     

    Sonra ise index’imizde gerçekleşecek olan Delete işleminin Ajax scriptini sayfaya entegre ediyoruz:

    Mvc Ana Sayfa Oluşturma

    Artık database’e veri gönderebileceğimiz, düzenleyip, silme işlemini gerçekleştirebileceğimiz sayfamız hazır :

    Mvc ile veritabanı işlemleri

     

    Mutlu bir kod deneyimi dileğiyle. :)

    Daha fazla örnek için MVC sayfamızı ziyaret edebilir, adım adım MVC’ye ısınabilirsiniz :)

  • Zeynep // // Reply

    mvcye yeni başladım. ilk yazı faydalı teşekkürler, devamını bekliyoruz

Gitmeden yorumunuzu bırakın.


Time limit is exhausted. Please reload the CAPTCHA.