NVC ile veri tabanı işlemleri

 Burda esas paylaşmak istediğim nokta çok katmanlı mimarinin bize sunduğu kolaylık ve hızı göze almaktır.

MVC'nin bize sunduğu üç katmandan biraz bahsetmemiz gerekiyor.Model,View Controller;
(Bu katmanlar hakkındada ayrıntılı makaleler yazılacaktır üçüde çok geniş konular olmasından ötürü burda sadece
bir giriş mahiyetinde deyinmek istiyorum.)
Model katmanı: Bizim projemiz ve database'imiz arasındaki işlemleri gerçekleştireceğimiz yer.Burda birçok yöntem
 
kullanılabilir LinqToSql , nHibernate , Ado.net etity framework gibi çok yöntemler olabilir bu size kalmış ben
bu uygulamada Ado.Net entity model kullanmayı tercih ettim .
 
View katmanı:Bu katman bizim ekranlarımızı temsil ediyor yaptımız bütün işlemlerin sonunda kullanıcıya gösterilecek
olan Pages yapısı burdan kontrol ediliyor. 
 
Controller katmanı:Mvc de üzerinde en çok durulması gereken mesele Controller katmanı çünki bizim database
ve viewlarımız arasındaki bütün işlemleri bu katman sağlıyor.Yanlış anlaşılmasın diğer katmanlarda çok önemlidir
biri eksik kalsa diğerleride doru çalışmaz..
Zaten uygulamayı geliştirirken daha net anlaşılıcaktır.
 
 
Öncelikler visual studio 2008 ile bir MVC aplications olurşturalım.
Not:MVc kullanabilmek için eklentileri indirip kurmalısınız bu linq altında hepsini bulucaksınız...
 
MVC aplications oluşturdunuzda size bir test projesi olluşturmak istiyormusunuz diye sorucaktır ben hayır diyorum 
test kısmını ayrı bi makaleye saklıyorum şimdilik onun lüzumu oldunu düşünmüyorum.
 
projeyi olurşturdunuzda Vs2008 ekranının solunda göreceğiniz gibi  ;
 
Bir solution altnda projeniz bulunuyor.içince katmanlara ayrılmış bir yapı gözlemliyoruz.
Kısaca deyinmek istiyorum ;
Properties, references ve App_Data kısmını geçiyorum.
 
Content kısmı; bizim sitemizin style kısmını yaptımız yani CSS olabilir veya imaj resimleri yada daha farklı tasarımların
içinde barındıran bir yapıdır. 
 
Controolller kısmı;yukarda bahsettimiz controller kantmanı burda bizim database ve ekranlarımız arasındaki işlemler
sağlıyan classlarımızı barındıracaktır.
 
Model kısmı; Burası şu anda boş çünki herhangi bir model oluşturulmamış ayrıntılarına az sonra geçicez kısaca
database modelimiz burda olucak.
 
View katmanı;Burasıda adındanda anlaşıldığı gibi bizim ekranlarımızın olduğu kısım daha çok kullanıcı taraflı işlemler
burda olucaktır. 
 
Burda üzeride ayrıca durulması gereken bi yerde Global.asax kısmı bu kısım route meselesine girdiği için
ve çok geniş bi konu olduğu için ayrı bi makalede yazılıcaktır. ileriki kısımlarda üzeride durulucaktır.
 
Şimdi uygulamamıza geçebiliriz
 
Öncelikler yeni bir database oluşturmaya başlıyoruz projese sağ tuşu tıklayın ve add new items sekmesine tıklayın.
Çıkan ekranda databasi için Sql server kullanıyoruz ben ismini Musteri verdim ok diyip oluşturuyoruz.
Burda dikkatinizi cektimi bilmiyorum ama projeye eklemenize rağman App_Data klasörünün altına eklemesi Microsoft'un
mimari yapıya ne kadar önem verdiği anlaşılır sanıyorum.
Databasemiz geldi şimdi bu database'e bir tablo yapıp sonra nasıl işlemler yapıcaz onlara bakalım.
 
database'imizde şöle bir yapı uygulamak istedim diyelimki bizim şirkketimizde çalışan müşterilerimiz var ve onların
Ad ,SoyAd,Telefon ve Mail gibi özelliklerini saklıyoruz ve bi web sayfasında sergilemek istiyoruz.(Aslında
bursı sizin hayal gücünüze kalmış)
Bu özelliklere sahip tablomuzu oluşturalım.
Tablomuz hazır veri tipleri vs onların ayrıntılarını size  bırakıyorum.
Ekranda sergilemek için el ile bir iki kayıt girebiliz.Bunuda tablya sağ tıklayıp show table data sekmesi altından açık ekliyorz.
Databasemiz hazır olduğuna göre artık Model katmanımızı oluşturmaya başlayabiliriz.
Model klasörüne sağ tıklayıp add new items diyelim data sekmesinden Ado.Net Entity Data Modeli seçelim
ben adını MVCIntroModel yaptım hazırsa ok diyelim gelen ekranda istersek var olan bir database'yi açmakmı yoksa 
boş bir model mi oluşturmak istediğimizi sorucak bizim databasemiz olduğu için Generate from database deyip next diyoruz.
Gelen ekranı biraz incelersek connection string ve hangi databaseyi kullanıcamız ve webconfigte hangi model uygulanıcağı
yer almaktadır burayada next diyip kullanmak istediğimiz databasenin tüm özellikleri tablolar viewlar spler biz burdan
istediğimizi seçebiliyoruz biz sadece tek tablo oluşturdumuz için tabloyu seçip fnish diyoruz ve modelimiz karşımızda.
 
 
Modelimiz hazır;burda Modelimizdeki tablonun ismini değiştirmemiz gerekiyor çünki Sql ile aynı isimler çakışıyor.
Modelimiz hazır olduğuna göre artık ekranları hazırlamak için Controller katmanını oluşturmaya  başlıyabiliriz. 
Controller katmanına sağ tık ve add  new controller diyoruz.Burda çıkan ekranda controllerin ismini belirliyoruz
ve altta checbox'a tıklıyoruz checbox bize crate , update ve deteail metodlarını otomatik oluştumak istemisiniz diye
soruyor bizde istiyoruz tabi başka bi işlem yada çok complex bir yappı için kendi controller methhodlarmızı yazabiliriz 
oda bi seçenek tabiki.
Add dedimizde bize hazır olarak metodlar geliyor ama boş prametre döndükleri için şu an pek işe yaramazlar biz
gerekli kodları yazmak için başlıyoruz hem her metodu incelicez hem işlemlerimizi gerçekleştiricez.
 
    public class MusteriController : Controller
    {
        public ActionResult Index()
        {
            return View();
        }
Öncelikle Index metodunu hazırlıyoruz burası sayfanıın ilk açıldında ne yapmasını belirliyoruz.
biz burda kaydı olan tüm müşterilerin listesini databaseden çekmek istiyoruz.
Bunun için yazmamız gereken kod şöle öncelikle datamodelimizi glabal bölegede instancelıyoruz
 
        private MusteriEntities _entities = new MusteriEntities();
        //
        // GET: /Musteri/
 
        public ActionResult Index()
        {
            return View(_entities.MusterisSet.ToList());
        }
Kodumuzun geldiği hal bu buraya biraz deyinirsek sayfanın loadunda _entities modelini kullanarak databaseye bağlanıyor
ve musteri tablosunu set ediyoruz ve ToList() metodu ile tüm kolonları çekiyoruz.
 
Şu anda Index sayfamızın controlleri hazır ekranı hazırlamak için Index() kısmına sağ tıklayıp add view diyoruz.
Gelen ekranda sayfanın ismi en üstte ve daha sonrada view'ın data clasını belirliyruz oda model olarak belirledimiz
MVCIntrı.Models.Musteri oluyor en son olarak view 'ın contentini belirliyoruz verileri ekranda listelemek istediğimiz için list'i seçiyoruz.
burda masterpages'i varolandan alyorum sizin yaptınız bi masterpages varsa onu seçeblirsiniz.
En son add diyoruz ve ekranımızı oluşturuyoruz.
 
Ekranımızın son hali bu gördüğünüz gibi controller katmanı sayesinde data modele bağlandık ve ordan databaseden
istediğimiz tablodaki verileri ekranda sergiledik.
Yaptığımız ekranı görüntülemek için sitemaster page'inde şu kodu eklememiz lazım
 
  • <%= Html.ActionLink("Musteri", "Index", "Musteri")%>
  •  
     
    Şu ana kadar databasedeki verilerimizi ve database modelimizi ekranda sergiledik şimdi ise yeni kayıtlar girmeyeçalışalım.
     
    Bunun için MusteriController'u girip create metodumza geliyoruz.
     
            public ActionResult Create()
            {
                return View();
            } 
     
     
            AcceptVerbs(HttpVerbs.Post)]
            public ActionResult Create(FormCollection collection)
            {
                try
                {
                    // TODO: Add insert logic here
     
                    return RedirectToAction("Index");
                }
                catch
                {
                    return View();
                }
            }
    create işlemlerini iki bölüme ayrılmış şekildde geliyor birincisi ekranı olurşturcamız yer ikincisi metdun hangi
    parametrelerle hangi işlemleri yapıcağını belirliyoruz.
    Burda ilk önce ekranımızı oluşturalım daha sonra işlemlerimizi gerçkleştiririz üstteki create'ye sağ tıklayıp add view diyelim
    gelen ekranda ilk işlemdekinden tek fark main content kısmını create olarak şeçiyoruz çünki yeni bir kayıt yapıcağız.
    Ekranımız oluştur şimdi nasıl parametreler alıcak ona baklım istediğimiz şey kullanıcı create dediği zaman önüne bir form ve istenilen
    bilgilerin girimesi ve bunların database'ye kaydı.
    Kodlarımız şöle;
     
           
    Kategoriler : SQL
    Etiketler : Sql Dersleri

    Webbilgileri.com' da bilgilerinizi paylaşmak istiyorsanız. Ders Ekle linkmizi kullanabilirsiniz.
    0 Adet Yorum Bulunmaktadır.
    « » 
    Makale hakkındaki yorumlarınız ?
    Yazan :
    Başlık :
    Tarih :
    Sorununuz :
    Güvenlik Kodu :