<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Dependency Injection de ne? yazısına yapılan yorumlar</title>
	<atom:link href="http://www.thexpot.net/2007/10/dependency-injection-de-ne/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.thexpot.net/2007/10/dependency-injection-de-ne/</link>
	<description>...olur arada öyle...</description>
	<lastBuildDate>Sun, 16 May 2010 19:29:49 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>ibrahim dursun tarafından</title>
		<link>http://www.thexpot.net/2007/10/dependency-injection-de-ne/comment-page-1/#comment-748</link>
		<dc:creator>ibrahim dursun</dc:creator>
		<pubDate>Tue, 23 Dec 2008 10:29:34 +0000</pubDate>
		<guid isPermaLink="false">#comment-748</guid>
		<description>&lt;p&gt;Sanırım yazdığın kod örneği &lt; &gt; karakterleri yüzünden html filtereye takılmış ama genel fikir anlaşılıyor.&lt;/p&gt;

&lt;p&gt;Evet, IoC kodun sadeleşmesini sağlıyor, fakat ileri seviye kullanımlarda &quot;Control&quot;&#039;e de etkisi olmuyor değil. Örneğin containerdan bir CoolDbConnection istendiği zaman, CoolDbConnection nesnesi LoggingDbConnection nesnesi içine gömülüp geri döndürülebilir ve nesneyi isteyen kodun bundan haberi bile olmaz. Dolayısıyla loglama işleminin kontrolü artık çağrıyı yapan kodda değil.&lt;/p&gt;

&lt;p&gt;Bütün bu kavramların ortaya çıkma sebebi ve ortak amaç her zaman hatasız yazılımlar üretebilmek. Dolayısıyla geçtim yazımı kolaylaştırmasını ama yazılan kodun her koşulda doğru çalışabileceğini matematiksek olarak kanıtlayabilen bir derleyici ve dile kimsenin hayır diyeceğini sanmıyorum :)&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Sanırım yazdığın kod örneği &lt; > karakterleri yüzünden html filtereye takılmış ama genel fikir anlaşılıyor.</p>

<p>Evet, IoC kodun sadeleşmesini sağlıyor, fakat ileri seviye kullanımlarda &#8220;Control&#8221;&#8216;e de etkisi olmuyor değil. Örneğin containerdan bir CoolDbConnection istendiği zaman, CoolDbConnection nesnesi LoggingDbConnection nesnesi içine gömülüp geri döndürülebilir ve nesneyi isteyen kodun bundan haberi bile olmaz. Dolayısıyla loglama işleminin kontrolü artık çağrıyı yapan kodda değil.</p>

<p>Bütün bu kavramların ortaya çıkma sebebi ve ortak amaç her zaman hatasız yazılımlar üretebilmek. Dolayısıyla geçtim yazımı kolaylaştırmasını ama yazılan kodun her koşulda doğru çalışabileceğini matematiksek olarak kanıtlayabilen bir derleyici ve dile kimsenin hayır diyeceğini sanmıyorum <img src='http://www.thexpot.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>]]></content:encoded>
	</item>
	<item>
		<title>M. Orçun Topdağı tarafından</title>
		<link>http://www.thexpot.net/2007/10/dependency-injection-de-ne/comment-page-1/#comment-747</link>
		<dc:creator>M. Orçun Topdağı</dc:creator>
		<pubDate>Tue, 23 Dec 2008 08:00:30 +0000</pubDate>
		<guid isPermaLink="false">#comment-747</guid>
		<description>&lt;p&gt;Hatırlamaz mıyım, yazıyı eskiden okumuştum. Yeri geldi, yazayım dedim. 
IoC mevzusuna gelirsek. Bana kalırsa bu yöntem, belirttiğin 3 yönteme bir alternatif ve en azından GoF un dışına çıkartarak yeni isim hakkını elde edebilir.
IoC&#039;un daha çok kodun kullanıma yönelik bir kavram olduğunu düşünüyorum. Bu kodun &quot;Control&quot; ile ilgili olmasına gerek yok. Bir kavram daha ekleyerek konuyu özetleyelim yada ortalığı dağıtalım :)
&quot;Repository Pattern&quot; kullanılarak yazılan bu &quot;Dependency Injection Framework&quot; u kullanarak &quot;Inversion of Control&quot; yapmak kolaylaşmakta.
Acaba bütün bu kavramları ortadan kaldırabilicek, çok kısa &quot;pseudo kod&quot; yazımını sağlayan bir dile mi ihtiyacımız var ?&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Hatırlamaz mıyım, yazıyı eskiden okumuştum. Yeri geldi, yazayım dedim. 
IoC mevzusuna gelirsek. Bana kalırsa bu yöntem, belirttiğin 3 yönteme bir alternatif ve en azından GoF un dışına çıkartarak yeni isim hakkını elde edebilir.
IoC&#8217;un daha çok kodun kullanıma yönelik bir kavram olduğunu düşünüyorum. Bu kodun &#8220;Control&#8221; ile ilgili olmasına gerek yok. Bir kavram daha ekleyerek konuyu özetleyelim yada ortalığı dağıtalım <img src='http://www.thexpot.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> 
&#8220;Repository Pattern&#8221; kullanılarak yazılan bu &#8220;Dependency Injection Framework&#8221; u kullanarak &#8220;Inversion of Control&#8221; yapmak kolaylaşmakta.
Acaba bütün bu kavramları ortadan kaldırabilicek, çok kısa &#8220;pseudo kod&#8221; yazımını sağlayan bir dile mi ihtiyacımız var ?</p>]]></content:encoded>
	</item>
	<item>
		<title>ibrahim dursun tarafından</title>
		<link>http://www.thexpot.net/2007/10/dependency-injection-de-ne/comment-page-1/#comment-743</link>
		<dc:creator>ibrahim dursun</dc:creator>
		<pubDate>Mon, 22 Dec 2008 16:34:15 +0000</pubDate>
		<guid isPermaLink="false">#comment-743</guid>
		<description>&lt;p&gt;Merhaba Orçun,&lt;/p&gt;

&lt;p&gt;Evet illa da interface olmasına gerek yok, base classta olabilir fakat genellikle interface tercih edilir çünkü test ortamında interfaceler için rahatça mock nesneleri oluşturulabilir. Senin örneğin daha çok IoC (Inversion Of Control) Container&#039;a benzemiş. Containerlara her servis (interface oluyor genellikle) için bir implementasyon kaydediliyor ve her servise ihtiyaç duyulduğunda Get ya da Resolve gibi bir metot ile bir implemantasyon alınıyor, tabi Containerlar sadece basit mappingden daha fazlasını yapıyorlar. Nesnelerin yaşam sürelerini kontrol ediyorlar (Lifetime management), bağımlılıkları otomatik olarak çözümlüyorlar (auto-wiring) vs vs...&lt;/p&gt;

&lt;p&gt;Senin stiline benzer şekilde kullanılan bir Container olarak &lt;a href=&quot;http://code.google.com/p/autofac/&quot; rel=&quot;nofollow&quot;&gt;AutoFac&lt;/a&gt; örnek verilebilir.&lt;/p&gt;

&lt;p&gt;Ben de Wordpress&#039;in azizliğine uğradım çünkü bu yazı bir seneden eski olmasına rağmen permalinkte bir değişiklik yapınca RSS okuyucularda yeni gibi beliriverdi :)&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Merhaba Orçun,</p>

<p>Evet illa da interface olmasına gerek yok, base classta olabilir fakat genellikle interface tercih edilir çünkü test ortamında interfaceler için rahatça mock nesneleri oluşturulabilir. Senin örneğin daha çok IoC (Inversion Of Control) Container&#8217;a benzemiş. Containerlara her servis (interface oluyor genellikle) için bir implementasyon kaydediliyor ve her servise ihtiyaç duyulduğunda Get ya da Resolve gibi bir metot ile bir implemantasyon alınıyor, tabi Containerlar sadece basit mappingden daha fazlasını yapıyorlar. Nesnelerin yaşam sürelerini kontrol ediyorlar (Lifetime management), bağımlılıkları otomatik olarak çözümlüyorlar (auto-wiring) vs vs&#8230;</p>

<p>Senin stiline benzer şekilde kullanılan bir Container olarak <a href="http://code.google.com/p/autofac/" rel="nofollow">AutoFac</a> örnek verilebilir.</p>

<p>Ben de Wordpress&#8217;in azizliğine uğradım çünkü bu yazı bir seneden eski olmasına rağmen permalinkte bir değişiklik yapınca RSS okuyucularda yeni gibi beliriverdi <img src='http://www.thexpot.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>]]></content:encoded>
	</item>
	<item>
		<title>M. Orçun Topdağı tarafından</title>
		<link>http://www.thexpot.net/2007/10/dependency-injection-de-ne/comment-page-1/#comment-742</link>
		<dc:creator>M. Orçun Topdağı</dc:creator>
		<pubDate>Mon, 22 Dec 2008 13:49:25 +0000</pubDate>
		<guid isPermaLink="false">#comment-742</guid>
		<description>&lt;p&gt;Özür, dediğimde haklı çıktım. Koddaki açıklamaları ingilizce yazdığımı farkettim, hepsini türkçeleştirmemişim. TDD nin laneti :D&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Özür, dediğimde haklı çıktım. Koddaki açıklamaları ingilizce yazdığımı farkettim, hepsini türkçeleştirmemişim. TDD nin laneti <img src='http://www.thexpot.net/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>]]></content:encoded>
	</item>
	<item>
		<title>M. Orçun Topdağı tarafından</title>
		<link>http://www.thexpot.net/2007/10/dependency-injection-de-ne/comment-page-1/#comment-741</link>
		<dc:creator>M. Orçun Topdağı</dc:creator>
		<pubDate>Mon, 22 Dec 2008 13:46:01 +0000</pubDate>
		<guid isPermaLink="false">#comment-741</guid>
		<description>&lt;p&gt;Dependency Injection kavramı ile interface kullanımı arasında bir fark var aslında. Konu hakkındaki yazılar ya çok soyut yada çok somut olduğundan fazla ilgimi çekmemişti ve ben de aynı görüşlere sahiptim. Bir gün kendime bir kütüphane hazırladım, sonra dönüp baktım, yaw acaba buna mı DI diyorlar diye. İşin özü aslında oldukça basit ama yukarıdakinden biraz farklı.
Kısa bir örnekle anlatmaya çalışayım:&lt;/p&gt;

&lt;p&gt;DI Framework:
class DIR
{
void Register(Func factory);
Func Resolve();
static DIR AppRegistry = new DIR();
}&lt;/p&gt;

&lt;p&gt;Kütüphane kullanımı:
...
var con = DIR.AppRegistry.Resolve()();
...&lt;/p&gt;

&lt;p&gt;Your App Loading:
...
DIR.AppRegistry.Register(()=&gt;new CoolDBConnection());
yada
DIR.AppRegistry.Register(()=&gt;_dbConnectionInstance); &lt;/p&gt;

&lt;p&gt;Yani interface direkt olarak kütüphaneye gitmiyor. Tabi bu benim kullanım şeklim.&lt;/p&gt;

&lt;p&gt;Benim gördüklerim register fonksiyonunda Func vermek yerine type yazıyor. Tabi buna ek olarak bir sürü kod mevcut. Çok incelemedim ama temel mantık aynı. Uygulama interface i eline vermedi de, şırınga etti :) &lt;/p&gt;

&lt;p&gt;Peki şart mıdır? Avukatı değilim, hatta konuyu atla deve gibi gösterdiklerinden dolayı Alt.NET de konu ile bir yazı görünce atlıyorum. Uzunca bir yorum oldu, biraz daha devam edersem önce dönüp her cümle için test yazmak zorunda kalacağım :)&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Dependency Injection kavramı ile interface kullanımı arasında bir fark var aslında. Konu hakkındaki yazılar ya çok soyut yada çok somut olduğundan fazla ilgimi çekmemişti ve ben de aynı görüşlere sahiptim. Bir gün kendime bir kütüphane hazırladım, sonra dönüp baktım, yaw acaba buna mı DI diyorlar diye. İşin özü aslında oldukça basit ama yukarıdakinden biraz farklı.
Kısa bir örnekle anlatmaya çalışayım:</p>

<p>DI Framework:
class DIR
{
void Register(Func factory);
Func Resolve();
static DIR AppRegistry = new DIR();
}</p>

<p>Kütüphane kullanımı:
&#8230;
var con = DIR.AppRegistry.Resolve()();
&#8230;</p>

<p>Your App Loading:
&#8230;
DIR.AppRegistry.Register(()=&gt;new CoolDBConnection());
yada
DIR.AppRegistry.Register(()=&gt;_dbConnectionInstance); </p>

<p>Yani interface direkt olarak kütüphaneye gitmiyor. Tabi bu benim kullanım şeklim.</p>

<p>Benim gördüklerim register fonksiyonunda Func vermek yerine type yazıyor. Tabi buna ek olarak bir sürü kod mevcut. Çok incelemedim ama temel mantık aynı. Uygulama interface i eline vermedi de, şırınga etti <img src='http://www.thexpot.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  </p>

<p>Peki şart mıdır? Avukatı değilim, hatta konuyu atla deve gibi gösterdiklerinden dolayı Alt.NET de konu ile bir yazı görünce atlıyorum. Uzunca bir yorum oldu, biraz daha devam edersem önce dönüp her cümle için test yazmak zorunda kalacağım <img src='http://www.thexpot.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>]]></content:encoded>
	</item>
	<item>
		<title>Muhammed Tahiroğlu tarafından</title>
		<link>http://www.thexpot.net/2007/10/dependency-injection-de-ne/comment-page-/#comment-391</link>
		<dc:creator>Muhammed Tahiroğlu</dc:creator>
		<pubDate>Sun, 25 Nov 2007 21:22:58 +0000</pubDate>
		<guid isPermaLink="false">#comment-391</guid>
		<description>&lt;p&gt;Türkçesi güçlü olan bir yazılımcı daha bulduğum için mutluyum. Elinize sağlık, güzel bir &quot;DI&quot; eleştirisi olmuş.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Türkçesi güçlü olan bir yazılımcı daha bulduğum için mutluyum. Elinize sağlık, güzel bir &#8220;DI&#8221; eleştirisi olmuş.</p>]]></content:encoded>
	</item>
	<item>
		<title>ibrahim dursun tarafından</title>
		<link>http://www.thexpot.net/2007/10/dependency-injection-de-ne/comment-page-/#comment-392</link>
		<dc:creator>ibrahim dursun</dc:creator>
		<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate>
		<guid isPermaLink="false">#comment-392</guid>
		<description>&lt;p&gt;Ben teşekkür ederim. Aslında türkçem çokta güçlü değildir, bazen sıkıntı çekiyorum fakat elimden geldiğince iyi ifade etmeye çalışıyorum.&lt;/p&gt;

&lt;p&gt;İyi çalışmalar.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Ben teşekkür ederim. Aslında türkçem çokta güçlü değildir, bazen sıkıntı çekiyorum fakat elimden geldiğince iyi ifade etmeye çalışıyorum.</p>

<p>İyi çalışmalar.</p>]]></content:encoded>
	</item>
</channel>
</rss>
