• Anasayfa
  • Hakkımızda
  • Etkinlikler
  • Destek Verin
  • Site Haritası
  • Giriş Yap
  • Üye Ol
  • Facebook
  • Twitter
  • RSS
Yazılım Dilleri
  • Soru - Cevap
  • EĞİTİM SETİ
  • KATEGORİ
  • DUYURU
  • TEKNOLOJİ HABERLERİ

Son Sorular

  • 23.04.2016 00:55:33C programlama 2 oyun
  • 20.04.2016 16:34:41Local Database
  • 15.04.2016 14:26:15Fatura kayıt işlemi
  • 21.03.2016 01:55:30C# problem

Popüler Sorular

  • 27.05.2012 05:49:50Asp.Net ile Date time alana veri ekleyemiiyorum ?
  • 2.04.2012 00:45:18.exe uzantılı dosya için dijital imza nerde nasıl alınır.
  • 12.05.2012 08:44:49Acil Yardım
  • 27.05.2012 13:46:51veri tabanı bağlantısı
  • .Net Framework
  • 8085 Assembly
  • Active Directory
  • ADO.NET
  • Android
  • Apple IOS
  • Arduino
  • ASP.NET
  • ASP.NET MVC
  • Blackberry
  • C#.Net
  • C++
  • CCG Framework
  • CISCO
  • CSS
  • Diğer
  • Dreamweaver
  • Entity Framework
  • Exchange Server
  • Gömülü Sistemler
  • GSM Programlama
  • Güncel
  • Güvenlik
  • HTML5
  • Java
  • Javascript / JQuery
  • Jira
  • Kariyer ve İş Yaşamı
  • LINQ
  • LibreOffice
  • Linux
  • Matlab
  • Microsoft Dynamics CRM
  • Mobil Uygulama Geliştirme
  • MySQL
  • NoSQL
  • Oracle
  • OWIN
  • PFSense
  • PHP
  • Powershell
  • Python
  • Sanallastirma
  • SAP-ABAP
  • SCOM 2012
  • SEO
  • Sharepoint 2010
  • Sharepoint 2013
  • Silverlight
  • Sistem Analiz ve Tasarımı
  • SQL Server
  • Symantec
  • TFS
  • T-SQL
  • Ubuntu
  • VB.NET
  • Veritabanı Yönetim Sistemleri
  • Visual Studio
  • VMware
  • WCF
  • Web Hosting
  • Windows 8
  • Windows Azure
  • Windows Phone 7.1
  • Windows Phone 8
  • Windows Server
  • Wordpress
  • WPF
  • Xamarin
  • XNA
  • Yazılım Mühendisliği
  • Yöneylem Araştırması
  • ASP.NET MVC
  • Entity Framework
  • Javascript / JQuery
  • LINQ
  • PHP

Son Duyurular

IPhone 6 ve IPhone 6 Plus Teknik Özellikleri ve Fiyatı

IPhone 6 ve IPhone 6 Plus Teknik Özellikleri ve Fiyatı

DELL'in Yeni Projesi: USB Bilgisayar (Project Ophelia)

DELL'in Yeni Projesi: USB Bilgisayar (Project Ophelia)

Windows Phone Youtube Uygulaması Google ve Microsoft ile Yeniden Yapılıyor

Windows Phone Youtube Uygulaması Google ve Microsoft ile Yeniden Yapılıyor

Android ve Apple IOS Telefonlar için Blackberry Messenger (BBM)

Android ve Apple IOS Telefonlar için Blackberry Messenger (BBM)

Nokia Lumia 925 Teknik Özellikleri, Lumia 928 ve 920 ile Karşılaştırması

Nokia Lumia 925 Teknik Özellikleri, Lumia 928 ve 920 ile Karşılaştırması

LG Optimus G Pro Özellikleri ve Gözle Video Oynatma Teknolojisi

LG Optimus G Pro Özellikleri ve Gözle Video Oynatma Teknolojisi

Visual Studio 2012 icin Entity Framework Yenilikleri

Visual Studio 2012 arabiriminde Entity Framework için getirilmiş kolaylaştırıcı yenilikleri incelemeye çalışıyoruz.

13.02.2013

Yazar: Burak Selim Şenyurt (Google+)

Kategori: Entity Framework

3706

Delphi5_RTMMerhaba Arkadaslar,

Çok eskiden kullanilan programlama dilleri ve platformlari düsünüldügünde çok ilkel IDE’ ler ile çalismis oldugumuzu görmekteyiz. Hatta bazi programlama dilleri ile yapilan gelistirmelerde degil IDE, komut satirina mahkum olmusuzdur(Gerçi komut satirinda script yazarak gelistirme yapmak özellikle fonksiyonel programlama dilleri göz önüne alinirsa oldukça popüler ve isabetlidir)

Gelisen sistemler, kullanici deneyimleri ve görselliklerin artmasi ile de yazilimcilarin daha profesyonel olan IDE’ ler üzerinde çalismasi sart olmustur.

Bu anlamda tarihin belki en basarili gelistirme arayüzlerinden birisi, herkesin bildigi üzere Delphi ortamidir. Ne varki o zaman ki Borland firmasinin sahip oldugu bu özellik, Anders Heijslberg’ in Microsoft takimina geçmesi ile birlikte yerini Visual Studio ailesine birakmistir. Anders sadece .Net Framework plaformu ve C# diline babalik etmemis önemli bir User Experience tecrübesini de Microsoft sirketine tasimistir. Visual Studio özellikle 2008 sürümünden itibaren inanilmaz derecede gelisti ve gelismeye de devam ediyor.

Bu IDE ile çalismak hem çok keyifli, hem de tek bir ortam üzerinden çok genis bir yelpazeye ulasilabilmekte. Açikçasi IDE disina çikmadan herseyin elinizin altinda oldugu bir gelistirme ortaminda çalismanin degeri paha biçilemez…Gerisi için Master Card Smile with tongue out

Entity Framework bilindigi üzere son sürümlerinden itibaren çok daha fazla etkili olmaya basladi. Bu noktada Ado.Net gelistirici takiminin müsteri ihtiyaçlarini da çesitli anketler yardimiyla dinliyor olmasinin önemi büyüktür. Örnegin uzun bir zaman anketin en üst siralarinda yer alan Enum desteginin getirilmesi gibi. (Bu amaçla açilan Entity Framework Feature Suggestions forumunu takip etmenizi öneririm)

Biz bu yazimizda Entity Framework’ ün Visual Studio 2012 tarafindaki bazi yeniliklerine deginmeye çalisiyor olacagiz(Bazi diyorum çünkü yaziyi yazdigim sirada yeni bir update çikmis da olabilir. Lütfen kontrol ediniz ve takipte kaliniz)Haydi gelin hiç vakit kaybetmeden ise baslayalim.

Enum Destegi

Enum tipi için Entity Framework tarafindaki destegi epeyce bekledik aslinda. Bu destegin gelmesi ile birlikte elbetteki Visual Studio 2012 IDE’ si de gerekli kolayligi göstermekte. Model içerisine yeni bir Enum tipi eklenmek istendiginde tek yapilmasi gereken, diagram üzerinden Add New –> Enum Type seçenegini isaretlemek.

vsef_6

Bu islemin ardindan çikan iletisim penceresinden, Enum tipine ait sabit degerleri girilir. Örnegin asagidaki sekilde görüldügü üzere ülkeleri kullanabiliriz.

vsef_7

Istenirse harici bir assembly/isim alani içerisinde yer alan Enum tiplerinin kullanilmasi da mümkündür. Bunun için Reference external type seçeneginin etkinlestirilmesi ve [Namespace].[EnumTypeName] formatinda ilgili tip adinin girilmesi yeterlidir. Enum tipi olusturulduktan sonra Model Browser penceresinde yer alan Enum Types kisminda görülecektir.

vsef_8

Enum tipleri için Designer tarafinda bir destek yoktur(Åžimdilik) ama bu pek de gerekli olmayabilir. Enum tipleri sonuç itibariyle sabitlerini sayisal olarak ifade etmektedir. Bu açidan bakildiginda, bir Entity tip özelliginin sayisal degerinin karsiligi olarak ilgili Enum sabitlerinin kullanilabilmesi de mümkündür. Örnegin Employee isimli bir Entity’ nin EmployeeCountry isimli int tipinden bir özelliginin(Veritabani tablosunda da bunun karsiligi alanin oldugunu varsayiyoruz) bulundugunu düsünelim. Bu özelligi Country isimli Enum sabiti ile asagidaki sekilde görüldügü üzere eslestirebilir ve artik kod içerisinde yer LINQ sorgularinda sayisal deger yerine Enum sabitlerini kullanabiliriz.

vsef_9

Kalabalik Diagramlardan Kurtulduk

Entity sayisinin model üzerinde artmasi sonucu olusan görsel kullanim güçlügünü engellemenin yollarindan birisi de, diagramlari bölümlemektir. Bunun su an için kullanisli olan iki farkli teknigi mevcuttur.

Model Diagramin bölümlenmesinin sebeplerininin basinda, kalabalik ve takibi zor olan, çok sayida Entity içeren modeller yer almaktadir. Ancak tek sebep bu degildir. N sayida Entity içeren bir model’ de sadece bir kaç Entity ile çalisildigi durumlarda, bu senaryoya konu olan objeleri kolayca takip edebilme ihtiyaci da nedenler arasinda gösterilebilir.

Diagram Bölümleme (Move Metodu ile)

Bu teknikte Model üzerinden baska bir diagrama alinmak istenen Entity’ ler seçilir ve Move to new diagram ile tasinmasi saglanir. Örnegin Northwind veritabani için üretilen model’ de yer alan bir kaç Entity objesini seçip, sag tiklama sonrasi açilan menüden Move to new diagram seçenegini isaretleyerek söz konusu bölümlemeyi gerçeklestirebiliriz.

vsef_3

Bu islem sonucunda seçilen Entity objeleri yeni bir diagrama alinacak ve bu degişiklik Model Browser penceresinden de izlenebilecektir. Asagidaki çiktida görüldügü gibi.

vsef_4

Bu teknikte dikkat edilmesi gereken en önemli nokta gerçek anlamda bir Move islemi yapilmasidir. Yani, tasinan Entity objeleri aslinda kaynak diagram üzerinden silinirler. Eger bu istenmiyorsa takip eden teknikten yararlanilabilir.

Farkli sayida diagram kullanildigi durumlarda bunlari anlamli sekilde isimlendirmekte önemlidir. AdventureWorks gibi veritabanlarini düsündügümüzde, tablolarin sema(schema) bazli olarak tutulduklarini ve domain olarak ayristirildiklarini görürüz.

Buna göre her domain için ayri bir diagram olusturmak, görsellik ve takip edilebilirlik açisindan oldukça yararli olabilir. Böyle bir vakada, parçalanan ana modele ait diagramlari yine veritabaninda oldugu gibi sema adlari ile tutmak mantikli olacaktir.

Diagram Bölümleme (Model Browser üzerinden)

Model Browser, Entity diagramlarinin yönetilebildigi etkili dialog pencerelerinden birisidir. Istenirse bir modelin bölümlenerek farkli diagramlara tasinmasi/kopyalanmasi islemi buradan da gerçeklestirilebilir. Bunun için öncelikli olarak Model Browser’ a yeni bir diagram ilave edilir.

vsef_5

Yeni bir diagram olusturulduktan sonra yine Model Browser içerisinde yer alan Entity’ leri bos alana sürükleyerek söz konusu islemi gerçeklestirebiliriz. Burada ne yazik ki bir diagramin içindeki ögeyi seçip baska bir diagrama sürükleme islemi söz konusu degildir(En azindan kullandigim Visual Studio 2012 sürümü için bu geçerli degildi) Bunun yerine örnegin NorthwindModel ismiyle duran öge altindan sürükleme islemlerinin yapilmasi gerekmektedir.

Diagram bölümleme aslinda görsel bir ayristirma anlamina gelmektedir. Bir baska deyisle diagram bazli yapilan tasima, kopyalama gibi islemler modelin tip yapisini bozmaz.

Daha Renkli Bir Diagram

Malum pek çok veritabani sistemi(özellikle Relational olanlar ve Enterprise çözümlerde kullanilanlar) oldukça fazla sayida tablo, view ve Stored Procedure içermekte. Hal böyle olunca Entity modellerini içeren diagramlarin, Visual Studio IDE ortaminda takip edilmesi de çok zor olabilmekte.

Diagramlarin bölünebilmesi özelligi haricinde Visual Studio 2012 ile gelen önemli özelliklerden birisi de, Entity objelerinin renklendirilebiliyor olmasi. Bu özellik sayesinde örnegin ayni isim alanina ait(veya ayni domain içerisinde yer almasi gereken) Entity’ leri farkli sekillerde renklendirerek, diagramin hem göze daha hos görünmesi saglanabilmekte hem de alginin daha da güçlendirilmesi mümkün olmakta. Bunun için bir kaç Entity objesini ayni anda seçip, özellikler penceresinden Fill Color’ i set etmemiz yeterli olacaktir. Asagidaki ekran çiktisinda bu kullanima örnek bir görüntü yer almaktadir Winking smile

Renkli TV Versiyonu

vsef_1

Sıkıcı Olan Siyah Beyaz TV Versiyonu

vsef_2

Birden Fazla Stored Procedure Seçerek Eklemek (Batch Insert)

Entity Framework bilindigi üzere veritabani tarafindaki Stored Procedure’ leri birer fonksiyon olarak model tarafina almaktadir. Pek tabi Database First modelin kullanildigi senaryolarda, Model üretilirken Stored Procedure’ lerden istenilenlerinin seçilerek de ilave edilmesi istenebilir. Visual Studio 2012’ de bunun için ek bir seçenek getirilmistir.

vsef_10

Entity Data Model Wizard üzerinde ilerlerken çikan Import selected stored procedures and functions into the entity model seçenegi isaretlendigi takdirde, Stored Procedures and Functions kisminda seçilen yordamlar için gerekli fonksiyonlarin topluca üretildigi ve modele dahil edildigi görülecektir. Bu, Visual Studio 2010 da yapilan t aninda tek bir Stored Procedure’ ü fonksiyonellestirme aksiyonuna göre çok daha iyidir(Add->Function Import)

Varsayilan Olarak DbContext Türevli Entity Model

Code First Development yaklasiminin en önemli noktalarindan birisi de POCO(Plain Old CLR Objects) disindan DbContext türevli bir Context tipinin kullanilmasidir. Visual Studio 2012 arabirimi Entity Model’ lerin üretilmesinde artik varsayilan olarak Entity Framework 5 DbContext T4 Template’ ini kullanmakta ve buna göre de üretilen entity context sinifi  DbContext türevli olusturulmakta. Hatta, Entity siniflarinin da birer POCO tipi olarak üretildigini görmekteyiz.

vsef_12

Bilindigi üzere Visual Studio 2010 bu konuda ObjectContext türevli bir yaklasimi benimsemektedir. Ancak Entity Framework takimin uygulama gelistiricilere önerisi DbContext türevli içerik tipini kullanmalari ve POCO siniflari ile ilerlemeleri yönündedir.

Property Siralamasi

Model diagramda yer alan Entity özellikleri varsayilan olarak veritabanindaki kolon siralamasina göre gelmektedir. Ama istenirse bu özelliklerin sirasi degistirilebilir. Bunun için Alt+Yön Tusu kombinasyonu kullanilabilir(Örnegin Alt+Up ile özellik bir üste, Alt+Home ile en basa, Alt+End ile en sona geçer) veya özellikler penceresinden asagidaki sekilde görüldügü gibi ilerlenebilir. (Visual Studio 2010 IDE’ sin de bu islem için XML tarafina geçmek gerekirdi)

vsef_11

Böylece geldik bir yazimizin daha sonuna. Bu yazimizda özellikle Visual Studio 2012 ile Entity Framework tarafina gelen yenilikleri incelemeye çalistik. Çok dogal olarak çesitli Extension’ lar yardimiyla Visual Studio 2012 ortamindaki Entity Framework niteliklerini arttirmak mümkündür. Bu yazimizda, varsayilan olarak gelen kabiliyetlere bakmaya çalistik. Tekrardan görüsünceye dek hepinize mutlu günler dilerim.

Yazar Hakkında

Burak Selim Şenyurt

Burak Selim Şenyurt

buraksenyurt.com

Yıldız Teknik Üniversitesi Matematik Mühendisliği mezunu olan Şenyurt, 1999 yılında profesyonel olarak adım attığı yazılım dünyasında, 2003 yılından beri Microsoft .Net teknolojileri ile ilgilenmektedir. Yazılım hayatına Assist Line isimli Call Center firmasında Delphi programcısı olarak başlayan Şenyurt sonrasında, sırasıyla Bizitek(Junior Developer), Netron(Master Trainer), Citibank(Outsource Senior Software Developer), Innova(Application Development Consultant), ve TCM(Software Architect) firmalarında görev almıştır. Su anda ING Bank bünyesinde Kıdemli Yazılım Danışmanı olarak görev yapmaktadir. 2006, 2007 yıllarında C#, 2008,2009,2010 yıllarında ise Connected System Developer kategorisinde Microsoft MVP seçilen Şenyurt, evli ve 1 çocuk babasıdır. C# diline olan düşkünlüğü, oğluna S(h)arp adının verilmesinde önemli bir etken olmustur.

Sosyal Medya

ORANLAR

  • 3706izleme

Arkadaşlarınla Paylaş

  • Tweet

0 Yorum

Yorum Yaz / Soru Sor

Lütfen yorum yazmak veya soru sormak için üye girişi yapınız.

Son Yorumlar

  • Hocam Link başka sayfaya yönlendiriyor.
  • merhaba benim merak ettiğim bir konu var y...
  • Merhaba download linki çalışmıyor. Rica et...
  • Nevzat Bey selamlar, Açıkçası bizler a...
  • Parametreleri Cache İşleminden Yalıtma kon...

En Güncel Sorular

  • Bilgilendirme maili (C#.Net)
  • Power Pivot (Sharepoint 2010)
  • BigInteger, BigDecimal (Asp.Net ve Asp.Net MVC)
  • visual C# ile asp nette veritabanı islemleri (Asp.Net ve Asp.Net MVC)
  • Share Point ile Dosya Arşiv Yönetim Sistemi yapılabilir mi ? (Sharepoint 2010)

En Son Cevap Verilen Sorular

  • Bilgilendirme maili
  • BigInteger, BigDecimal
  • visual C# ile asp nette veritabanı islemleri
  • Share Point ile Dosya Arşiv Yönetim Sistemi yapılabilir mi ?
  • txt dosyasına veri yazma

Twitter

Takip et: @yazilim_dilleri

En Çok Okunanlar

Elif BAYRAKDAR

C# ile SQL Server Bağlantısı, Insert, Update ve Delete Sorguları

23.05.2013

  • 120171
  • 0
Hakan Keskin

C# ile Windows Service Projesi Oluşturma, Debug Etme ve Setup Hazırlama

17.12.2013

  • 65293
  • 0
batuhan avlayan

Php - Mail Gönderme (İletişim Formu)

02.09.2013

  • 48406
  • 0

Sponsorlar

KODLAB
Pluralsight
Exchange server is
Office 365
YAZILIM DİLLERİ
Yukarı Çık
  • Hakkımızda
  • Facebook
  • Twitter
  • RSS

© Yazılım Dillerinin Buluşma Noktası | Kaynak belirtildiği sürece makaleler kopyalanabilir.
YazilimDilleri.Net sitesinde yer alan kullanıcıların oluşturduğu tüm içeriklerin yayınlanması ile ilgili yasal yükümlülükler içeriği oluşturan kullanıcıya aittir, YazilimDilleri.Net hiçbir şekilde sorumlu değildir.

Kapat

Giriş Yap

Kullanıcı Adı

Şifre

Şifremi Unuttum

KULLANICI GİRİŞİ