Entity Framework - Generic Repository ve Unit of Work Uyarlaması 14 Aralık 2014 Burak-Selim-Senyurt Entity Framework, Tasarım Prensipleri(Design Principles) DDD denilince aklımıza daha çok veri odaklı uygulamalar gelir ve bu tip ürünlerde RDBMS(Relational Database Management System) lerin yeri hatırı sayılır ölçüde fazladır(Her ne kadar son yıllarda NoSQL cephesinde önemli gelişmeler ve kullanımda ciddi artışlar olsa da…) Hal böyle olunca O/RM(Object Relational Mapping) araçlarının kullanımı da önem kazanmaktadır. Yıllardır hayatımızda olan bu araçlar modellerin nesnel olarak inşasında da önemli bir yere sahiptirler. Lakin Object Oriented dünyasının kuralları içerisinde yaşarlar ve bu yüzden bazı kurumsal prensipleri uygulamaları gerekmektedir. [Daha fazla]
Entity Framework–İki Entity Bir Table ile Lazy ve Eager Loading 12 Ekim 2014 Burak-Selim-Senyurt Entity Framework Özellikle içerisinde CLOB veya BLOB benzeri alanlar barındıran tabloların Entity Framework tarafındaki kullanımlarında network yükünü hafifletmek adına bir tablonun iki Entity ile ifade edilebilmesi düşünülebilir. Böyle bir durumda Lazy Loading’ i tablo içerisindeki alanlar bazında uygulama şansına sahip oluruz. Bu, özellikle LINQ(Language INtegrated Query) sorgularını işlettiğimiz yerlerde performans açısından faydalı bir iyileştirmedir. Kısacası bir tablonun kendi alanları içerisinde ilişki kurup bunu Entity seviyesinde ifade etmemiz gerekmektedir. Gelin basit bir örnek üzerinden ilerleyerek konuyu incelemeye çalışalım. [Daha fazla]
Entity Framework 6 –Yeni Esintiler 08 Nisan 2014 Burak-Selim-Senyurt Entity Framework Entity Framework geliştirilmeye ve bünyesine yeni özellikler dahil edilmeye devam etmekte. Ancak son gelişmelerden bir tanesi oldukça önemli sanırım. O da artık Entity Framework’ ün tamamen harici bir NuGet paketi olarak kullanılacağı. Bir başka deyişle .Net Framework’ ün bir parçası olmaktan çıkartılmış ve Codeplex üzerinden yürür duruma gelmiş. Son bilgileri göre EF 6x verisyonları .Net 4.0 ve üstü için kullanılabiliyor. Ayrıca Visual Studio 2010 ve sonrası IDE’ ler de ele alındığını da belirtelim. [Daha fazla]
Entity Framework Code-First için Calculated Fields Kullanımı 08 Şubat 2013 Burak-Selim-Senyurt Entity Framework Bildiğiniz üzere Entity Framework Code-First yaklaşımında, veritabanı nesnelerinin tasarımları POCO(Plain Old CRL Object) tipleri üzerinden gerçekleştirilmektedir. Dolayısıyla Calculated Field şeklinde düşünülmesi gereken bir özelliğin veritabanı tarafına nasıl yansıtılacağı kafalarda bir soru işareti oluşturmaktadır. Pek tabi bunun için de bir nitelik(attribute) desteği sunulmuş olabilir ki öyledir. DatabaseGenerated niteliğinde DatabaseGeneratedOption.Computed enum sabiti değerini kullanarak, istenilen hesaplanabilir alan bildirimlerini yaptırabiliriz. Acaba durum gerçekten böyle midir? [Daha fazla]
Entity Framework 6 – Code First için Convention Nedir? 12 Aralık 2012 Burak-Selim-Senyurt Entity Framework Entity Framework alt yapısının sunduğu önemli yaklaşımlardan birisi de Code-First modelidir. Bu modele göre geliştiriciler, önce sınıfları basit POCO(Plain Old CLR Objects) tipler şeklinde tasarlar. Böylece Conceptual(Domain) Model oluşturulur. POCO tiplerinin tek başına tasarlanması elbette yeterli değildir. DbContext türevli bir sınıfında, model de kullanılması düşünülen POCO tiplerine ait koleksiyon bazlı özellikleri içeriyor olması gerekmektedir. Bu noktada DbSet tipinden yararlanılır. Ayrıca tipler arasın ilişkileri betimleyen Navigation Property’ ler de tasarlanır. [Daha fazla]
Entity Framework Code First için Doğrulama(Validation) Stratejileri 18 Kasım 2012 Burak-Selim-Senyurt Entity Framework Bir verinin çeşitli kurallara göre doğrulanması, verinin işlenmek üzere gönderilmeden önce yapılması gereken önemli işlemlerden birisidir. Özellikle Entity Framework gibi veri merkezli(Data-Centric) uygulama geliştirme alt yapılarında bu durum daha da önem arz etmektedir. [Daha fazla]
Entity Framework 6 Alpha 1 ve async, await Özellikleri 01 Kasım 2012 Burak-Selim-Senyurt Entity Framework Sözü fazla uzatmıyayım ama daha bu ayki Entity Framework 5.0 tabanlı Nedirtv?com Webinerime hazırlanırken bir kaç gün önce EF 6.0’ nın alpha sürümünün yayınlandığını ve NuGet paket yönetim aracı ile indirilebileceğini öğrendim. [Daha fazla]
Entity Framework - Code First Migration Webineri Yayında 23 Şubat 2012 Burak-Selim-Senyurt Entity Framework, NedirTv? 20 Şubat 2012 Pazartesi günü gerçekleştirdiğimiz Entity Framework - Code First Migration konulu webinerimiz NedirTv?com üzerinden yayına alınmıştır. Bu webinerimizde Entity Framework 4.3 sürümü üzerinden Code First yaklaşımında Migration işlemlerinin nasıl yapılabildiğini anlamaya çalıştık. Özellikle NuGet paket yönetim aracının komut satırı parametreleri ile kolayca yönetilebilen hem update ham de downgrade senaryolarında devreye giren Up, Down metodlarını ve bunların içerisindeki kod parçalarını analiz edip neler yapabileceğimizi görmeye gayret ettik. [Daha fazla]
NedirTv?com Ocak Webinerleri ve Code First Development 29 Aralık 2011 Burak-Selim-Senyurt Entity Framework, NedirTv? Merhaba Arkadaşlar, NedirTv?com webinerlerimiz Ocak ayı itibariylede devam ediyor olacak. Birbirinden güzel ve ilginç konular olduğunu, ayrıca çok değerli hocalarımızın sunacağını belirtmek isterim Roslyn’ den Windows Phone 7.5’ e, Sharepoint’ ten HTML 5’... [Daha fazla]
Entity Framework Gerçek Hayat Örnekleri Bölüm 1 14 Aralık 2011 Burak-Selim-Senyurt Entity Framework, NedirTv? 12 aralık 2011 Pazartesi günü Nedirtv?com ve Zenith Bilişim sponsorluğunda gerçekleştirdiğimiz Entity Framework Gerçek Hayat Örnekleri Bölüm 1 isimli webinerimizi aşağıdaki adresten izleyebilir veya isterseniz bilgisayarınıza indirebilirsiniz. İlk bölümümüzde Entity Framework ve Surrogate Library projelerimizi oluşturup örnek bir iş fonksiyonelliğini diğer bir kütüphane içerisinde ele aldık ve buna ait basit bir Unit Test metodu geliştirdik. [Daha fazla]
Entity Framework ile Gerçek Hayat Örnekleri Webinerlerim 06 Aralık 2011 Burak-Selim-Senyurt Entity Framework, NedirTv?, WCF, WCF 4.0 Merhaba Arkadaşlar, Uzun zamandır NedirTv?com bünyesinde webiner gerçekleştirmiyordum Bununla birlikte geçtiğimiz ay Zenith adına verdiğimiz Entity Framework 4.0 eğitiminde WCF(Windows Communication Foundation) tabanlı güzel bir gerçek hayat örneği geliştir... [Daha fazla]
EF 4.2 ile Code–First Development 12 Ekim 2011 Burak-Selim-Senyurt Entity Framework Teknolojinin hızına inanın ki yetişilemiyor. Her gün yeni bir bilim ve teknoloji haberi var dünyada. Ancak bir geçek daha var ki o da Microsoft, Google, Apple gibi devlerin de hızına yetişilememsi. Örneğin daha henüz 2011 Mix’ te RTM olarak duyurulan Entity Framework 4.1 sürümü üzerine geçtiğimiz günlerde 4.2 RC(Release Candidate) duyuruldu. Ben de bunun üzerine yeni sürümde Code-First Development’ ın nasıl uygulandığını anlamak ve görmek istedim. Haydi gelin keşfetmeye başlayalım. [Daha fazla]
Birlikte Geliştirdik 03 Ekim 2011 Burak-Selim-Senyurt .Net Framework 4.0, Asp.Net 4.0, Entity Framework, WCF 4.0 Hazırlayacağımız çorbamızda çok kıymetli yardımcılarımız da var. Son katılımcılarımız ile gerçekleştirmekte olduğumuz Asp.Net eğitiminden çok güzel fikirler ve örnekler çıkmaya devam ediyor. Geliştireceğimiz örnek Solution içerisinde Entity Framework, WCF Service, LINQ, Asp.Net Web Application, Web User Control, LINQ gibi pek çok kavram yer almakta. Temel olarak başlangıçtaki senaryomuz ise şu : “Asp.Net web uygulamamızda yer alan bir Web User Control’ ümüz, AdventureWorks veritabanında yer alan herhangibir Product' satırına ait bazı alan bilgilerini gösterecek” [Daha fazla]
Eager Loading, Lazy Loading, Explicit Loading 06 Eylül 2011 Burak-Selim-Senyurt Entity Framework Şöyle basit tek bir Main metodu içerisinde, Entity Framework' teki Loading çeşitlerini görmek ister miydiniz? Winking smile Öyleyse aşağıdaki kod bloğu oldukça işinize yarayacaktır diye düşünüyorum. Senaryolar oldukça basit. Meşhur Chinook veritabanında yer alan Artist ve buna bağlı Album tablolarını ele alıyoruz. [Daha fazla]
Tek Fotoluk İpucu–14 (Compiled Query) 06 Temmuz 2011 Burak-Selim-Senyurt Entity Framework, Tek Fotoluk Ipucu Entity Framework ile Compiled Query' ler hazırlayabileceğinizi ve daha performanslı sorgulamalar yaptırabileceğinizi biliyor muydunuz? [Daha fazla]
Entity Framework Üzerinde TransactionScope Kullanımı 01 Nisan 2011 Burak-Selim-Senyurt Entity Framework Yıllar yıllar önce .Net Framework 2.0 ile gelen yenilikleri takip etmeye çalıştığım dönemlerde, Amazon üzerinden getirttiğim kitaplardan birisi de yandaki resimde görülen Ado.Net and System.Xml v2.0 kitabı idi. Şu an halen kitaplığımda durmakta. O sıralar CSharpNedir? bünyesinde Ado.Net bölüm editörlüğü yaptığımdan, bu kitabı tedarik etmiş ve çalışmıştım. .Net Framework 2.0 ile gelen yeni Xml alt yapısının beta hali ile alması bir yana Ado.Net’ in yeni 2.0 sürümü için planlanan bazı kabiliyetlerde anlatılmaktaydı ki bunlardan bekli de en önemlisi System.Transaction.dll assembly içerisinde yer alan ve özellikle Distributed Transaction yönetimini daha etkili ve kolay bir şekilde ele almamızı sağlayan TransactionScope tipiydi. [Daha fazla]
LINQ to SQL – EF 4.0 (Aradaki 9 Farkı Bulun) 20 Eylül 2010 Burak-Selim-Senyurt Entity Framework, LINQ to SQL Merhaba arkadaşlar, Evet çok doğru. Hiç bu kadar kısa ve öz yazmamıştım daha önceden. Ama zaman zaman bu kadar kısa yazıp çok fazla şey ifade edilebileceğine de inanmaktayım Hani ilk bakışta herşeyin şak diye kafanızda yer ettiği tablolar olur ya…Bu blog girdi... [Daha fazla]
Entity Framework, Data Services, C# 4.0, Excel ve Komple Bir Uygulama 26 Ağustos 2010 Burak-Selim-Senyurt C# 4.0, Entity Framework, WCF Data Services Bildiğiniz üzere bir süre önce Visual Studio 2010 ve .Net Framework ürünlerinin RTM sürümleri yayınlandı. Her iki ürünüde sizlerle birlikte , Microsoft PDC 2008 konferanslarından bu yana gerek yazılarımızla, gerek görsel derslerimizle incelemeye çalışıyoruz. Özellikle .Net Framework 4.0 açısından baktığımızda alet, edevat çantamızın dop dolu olduğunun eminimki hepimiz farkındayız. [Daha fazla]
Entity Framework - POCO ve Lazy Loading 10 Mayıs 2010 Burak-Selim-Senyurt Entity Framework Hatırlayacağınız üzere bir önceki yazımızda Ado.Net Entity Framework içerisinde POCO(Plain Old CLR Object) nesnelerinin kullanımını incelemeye çalışmıştık. Örneğimizde kullanmış olduğumuz LINQ sorgusu basit bir Join işlemini gerçekleştirmekteydi. Tabi Join sorgusu kullandığımız için gözden kaçırdığımız ufak ama bir o kadar da önemli bir vaka oluşmaktadır. Bu vakayı ele almak için program kodunu biraz daha değiştirdiğimizi ve aşağıdaki hale getirdiğimizi düşünelim. [Daha fazla]
Entity Framework - POCO(Plain Old CLR Objects) 30 Nisan 2010 Burak-Selim-Senyurt Entity Framework Aslında Ado.Net Entity Framework 4.0 tarafında yer alan önemli kavramlardan birisi de POCO nesnelerinin kullanımı. Ado.Net Entity Framework 3.5(Service Pack 1) sürümünde net bir şekilde ele alınmayan POCO nesneleri için, 4.0 versiyonunda tam destek söz konusu. POCO(Plain Old CLR Objects), .Net Framework üzerinde herhangibir bağımlılığı olmadan tanımlanabilen nesneler olarak düşünülebilir. POCO nesneleri herhangibir sınıftan türemez(Class Inheritance), çeşitli arayüzleri uygulamaz(Interface Implementation) veya özel nitelikler(Attributes) ile işaretlenmezler. [Daha fazla]
Entity Framework - Entity Bölünmesi (Splitting) 04 Nisan 2010 Burak-Selim-Senyurt Entity Framework Hız kesmeden Ado.Net Entity Framework ile ilişkili araştırmalarımızı paylaşmaya devam ediyoruz. Bu günkü yazımızda bir Entity tipinin, veritabanı tarafında birden fazla Tablo' yu işaret edebilmesi kabiliyetini incelemeye çalışacağız. Söz konusu duruma çok sık rastlanılmasa dahi, zaman zaman gereksinim duyulmaktadır. Konuyu daha kolay bir şekilde kavrayabilmek adına, yazıyı yazdığım tarih itibariyle sistemimde kurulu olan Adventure Works 2008 veritabanında yer alan ve aşağıdaki diagramda görülen tablolarımızın olduğunu varsayalım(Tabiki kendi sisteminizde yer alan örnek veritabanında benzer ilişikilere sahip başka tabloları da aynı teori içerisinde değerlendirebilirsiniz) [Daha fazla]
Entity Framework - Many To Many Relations - Link Tablosunda Israrcı Olmak 24 Mart 2010 Burak-Selim-Senyurt Entity Framework Hatırlayacağınız üzere son iki yazımızda Many-To-Many ilişkileri nasıl ele alabileceğimizi incelemiştik. Many-To-Many ilişkilerin Entity Model'e olan yansımasında belkide en önemli nokta, ara bağlantı tablosunun taşınmıyor olmasıydı. Bu genellikle ara bağlantı tablosu üzerinde diğer tablolara ait Primary Key alanlarının bulunduğu durumlar düşünülerek meydana gelen bir sonuçtur. Nitekim ara tablonun Entity tarafına taşınmayışının herhangibir olumsuz maliyeti bulunmamaktadır. [Daha fazla]
Entity Framework - Many To Many Relations - Link Tablosunu Okumak 16 Şubat 2010 Burak-Selim-Senyurt Entity Framework Hatırlayacağınız üzere bir önceki yazımızda veritabanı tarafındaki Many-To-Many Relation' ların, Entity Framework tarafında nasıl değerlendirilebileceğine değinmeye çalışmıştık. Dikkat edilmesi gereken önemli noktalardan birisi, veritabanı tarafında yer alan ara bağlantı tablosunun Entity Framework üzerindeki modele alınmayışıydı. [Daha fazla]
Entity Framework - Many To Many Relations 12 Şubat 2010 Burak-Selim-Senyurt Entity Framework Bundan yıllar önce üniversiteden arkadaşım Orkun Şentürk ile birlikte Altunizade Capitol alışveriş merkezinde Dreamcatcher isimli bir bilim kurgu gerilim filmine gittiğimizi hatırlıyorum. (Aslında bilim kurgu filmlerin tam bir hayranıyımdır. Ancak seyrettiklerimin hiç biri Starwars veya Terminator gibilerinin yerini tutmamakta) Film Stephen King' in bir romanından uyarlanmıştı. Sevgili arkadaşım Orkun kitabını okuyarak geldiğinden, film üzerinde daha iyi yorumlar yapmıştı ancak ortak kanımız çok başarılı olmadığı yönündeydi. Açıkçası fazla etkilenmemiştik. [Daha fazla]
Eski Dost ve Entity Framework 4.0 09 Şubat 2010 Burak-Selim-Senyurt Entity Framework Bildiğiniz üzere .Net Framework 4.0 ve Visual Studio 2010 sürümlerinin çıkmasına az bir zaman kaldı(Hatta yarın RC sürümü herkese açık olacak). Blog yazısını hazırladığım zaman itibariyle Microsoft' taki güvenilir kaynaklar ve MSDN yazarlarından edinilen bilgilere göre, sürümün Nisan 2010 içerisinde çıkması bekleniyor. Tabi yeni bir sürüm denilince eski sürüm ile aradaki farklılıkları bilmek, nereden nereye gelindiği ve nelerin düzeltildiğini öğrenmek, beklentilerin karşılanıp karşılanmadığına bakmak oldukça önemli. Bende buna istinaden yazımızın ilerleyen kısımlarında, Ado.Net Entity Framework 4.0 ile bir önceki versiyonu arasında, sorgu teknikleri açısından oluşan farkları aktarmaya çalışıyor olacağım. [Daha fazla]