Extension Metotlar

Sunday, February 05, 2012 4:12 PM

Hepimiz biliyoruz ki LINQ c# 3.0 ile birlikte biz çok farklı bir bakış açısı kazandırmıştır.LINQ ile gelen bir çok yenilik .net 2.0 üzerine genişletilebilir özelikler ile olmuştur. Extensin, partial method, var  keywordü ve bir çok özellik örnek verilebilir.Mümkün mertebe bloğumda küçük ipuçlarına yermekte fayda görüyorum.

Konumuz extension'lar. Bunun hakkında detaylı bilgi vermeyeceğim. Eline sağlık Burak Selim Şenyurt hocamız zaten döktürmüş.  Konu hakkında detaylı bilgi almak istyenle linkteki makaleyi okuyabilir.

Ben projelerimde mümkün mertebe Util sınıflar kullanmaktansa extensionları kullanmayı tercih ediyorum.Geçen nette konu ile ilgili bir araştırma yaparken

http://extensionmethod.net

 adresine rastgeldim. Extensionlar class lara göre düzenlemişler. Gayet işe yara extensionlar var. 

Herkese iyi çalışmalar.

Etiketler Etiket Yok

Ayinesi İştir Kişinin Lafa Bakılmaz...

Friday, January 20, 2012 5:31 PM

Ayinesi İştir Kişinin Lafa Bakılmaz...

Etiketler Etiket Yok

Good Code

Friday, January 20, 2012 10:19 AM

Any fool can write code that a computer can understand. Good programmers write code that humans can understand.(Martin Fowler)

Etiketler Etiket Yok

.Net uygulamalarında dll arama dizinleri

Friday, November 18, 2011 8:09 PM

Hepimizin bildiği üzere .Net çatısı altında çalışan bütün uygulamalar dll mantığı ile çalışıyor ve biz bu dll ler üzerinden işlemler gerçekleştiriyoruz. Kendi yazdığımız uygulamalardaki referans edilen dll'ler ise Asp.Net ve Asp.Net MVC uygulamaları için "BIN" klasörü altında , masaüstü uygulamalarında da kendi bulunduğu klasörde yada  sistemin PATH değişkeninde bulunan klasörlerde aranır.Eğer bu dll gerel web gerek masaüstü uygulamalarında belirttiğim dizinlerin birisinde değilse programı çalıştırdığınızda bir hata mesajı alırsınız. Bu tip durumlarda (örneğin dlll 'erinizi ayrı bir klasörde toplamak istemeniz durumunda) bir configürasyon dosyası oluştururarak bu durumun üstesinden geleblirsiniz.

 

 WinForm uygulamalar için Visual Studioda projenize sağ tıklayarak Add --> New Item seçeneği ile bir application configuration File eklemelisiniz.Önemli bir noktayı hatırlatmalıyım. Eklemiş olduğunuz Configuration File dosyası uygulamaadı.exe.config şeklinde olmalıdır. Şimdi gelelim configuration File dosyasının içeriğine ;

 

<?xml version="1.0" encoding="utf-8" ?>

<configuration>

<runtime>

<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">

<probing privatePath="extension;data"/>

</assemblyBinding>

</runtime>

</configuration>

 

Yukarıdaki xml configurasyon dosyasını biraz incelemek gerekirse bilmediğimiz sadece bir element var probing elementi.

Orda belirtilen dll dosyalarını extension ve data klasörleri içinde aramak. Eğer eğer bir setup oluşturacaksanız configrasyon dosyasının exe niz ile aynı klasörde olmasına dikkat ediniz.

 

Web uygulamlarında ise aşağı yukarı aynı işlem gerçekleştiriliyor.Açtığımız  web projlerinde zaten bir tane configurasyon dosyası standart olarak gelmektedir. Hepimizin yakından bildiği Web.Config dosyası. 

 

<configuration>

<runtime>

<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">

<probing  privatePath="App_Data/Dependencies"/>

</assemblyBinding>

</runtime>

</configuration>

 

Aslında web.config dosyasına ekliyeceğimiz tek bir satır."<probing  privatePath="App_Data/Dependencies"/>"

Yukardada aynı şekilde referans edilen dll lerimizi "App_Data/Dependencies" klasörü altında arayacak.

 

 

Etiketler Etiket Yok

Ensure that IncludeMetadataConvention has been added to the DbModelBuilder conventions.

Saturday, June 18, 2011 12:49 AM

Ef 4.1 in getirdiği güzel bir yenilik olan code first ile bir uygulama geliştiriyorsunuz. Veritabanınızı hazırladınız, domainlerinizi çıkardınız ve onları map ettiniz. Buraya kadar herşey güzel gidiyor. Fakat ne zamanki siz db ye bağlanmak istediğiniz aşağıdaki hatayı almanız muhtemeldir. 

"Model compatibility cannot be checked because the database does not contain model metadata. Ensure that IncludeMetadataConvention has been added to the DbModelBuilder conventions"

Aradığınızdada pek fazla bir kaynak bulamacağınız kesin.  Aslında çözüm çok basit. Veritabanınızı drop/delete edin ve uygulamanızı tekrar çalıştırın. Framework sizin için map ettiğiniz db yapısını tekrar oluşturacaktır. Artık çalışmaya devam edebilirisiniz. : )

 

Linkten konu ile ilgili bilgiyi alabilirsiniz.

http://social.msdn.microsoft.com/Forums/en/adodotnetentityframework/thread/ccf25dbe-5452-47b1-9a8f-080668922dd7