<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Yakup Buğra</title>
	<atom:link href="http://yakupbugra.com/feed" rel="self" type="application/rss+xml" />
	<link>http://yakupbugra.com</link>
	<description>Kıdemli(?) Bilgisayar Mühendisliği Öğrencisi</description>
	<lastBuildDate>Sat, 21 Apr 2012 18:03:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Asp.Net Mvc, Ef Code First,  HTML5, jQuery Eğitimi (ingilizce)</title>
		<link>http://yakupbugra.com/2012/04/asp-net-mvc-ef-code-first-html5-jquery-egitimi-ingilizce.html</link>
		<comments>http://yakupbugra.com/2012/04/asp-net-mvc-ef-code-first-html5-jquery-egitimi-ingilizce.html#comments</comments>
		<pubDate>Sat, 21 Apr 2012 18:03:45 +0000</pubDate>
		<dc:creator>Yakup Buğra</dc:creator>
				<category><![CDATA[ASP.NET MVC 3]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Entity Framework]]></category>
		<category><![CDATA[Web Tasarım]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[asp.net eğitim]]></category>
		<category><![CDATA[asp.net html 5 eğitimi]]></category>
		<category><![CDATA[asp.net mvc 3 eğitimim]]></category>
		<category><![CDATA[asp.net tutrial]]></category>
		<category><![CDATA[asp.net video]]></category>
		<category><![CDATA[mvc 3 eğitim]]></category>

		<guid isPermaLink="false">http://yakupbugra.com/?p=1659</guid>
		<description><![CDATA[Pluralsight&#39;ı bilmeyenler i&#231;in &#246;nce siteyi tanıtayım. Sitede &#199;oğunluğunu Microsoft MVP&#39;lerinin oluşturduğu .NET eğitimleri yer alıyor. Profesyonel olarak hazırlanan bu eğitimler tabi ki &#252;cretli :) Ancak arada &#252;cretsiz imkanlar &#231;ıkabiliyor. Bu kursu &#252;cretsiz almak i&#231;in &#246;ncelikle Pluralsight &#252;yesi olmalısınız. &#160;Daha sonra @pluralsight&#160;twitter hesabını takip etmeniz gerekiyor. Daha sonra buradaki adrese gidip twitter kullanıcı adınızı yazıyorsunuz. Bu [...]]]></description>
			<content:encoded><![CDATA[<p><img align="left" alt="" height="40" hspace="10" src="http://s.pluralsight.com/mn/img/sh/logo-v2.png" vspace="10" width="185" />Pluralsight&#39;ı bilmeyenler i&ccedil;in &ouml;nce siteyi tanıtayım. Sitede &Ccedil;oğunluğunu Microsoft MVP&#39;lerinin oluşturduğu .NET eğitimleri yer alıyor. Profesyonel olarak hazırlanan bu eğitimler tabi ki &uuml;cretli :) Ancak arada &uuml;cretsiz imkanlar &ccedil;ıkabiliyor. Bu kursu &uuml;cretsiz almak i&ccedil;in &ouml;ncelikle Pluralsight &uuml;yesi olmalısınız. &nbsp;Daha sonra <a href="https://twitter.com/#!/pluralsight">@pluralsight</a>&nbsp;twitter hesabını takip etmeniz gerekiyor. Daha sonra <a href="http://www.pluralsight-training.net/microsoft/TwitterOffer">buradaki adrese</a> gidip twitter kullanıcı adınızı yazıyorsunuz. Bu sayede pluralsight, kursu &uuml;cretsiz almanız i&ccedil;in size dm ile aktivasyon kodu g&ouml;nderiyor. Kurs i&ccedil;eriğini <a href="http://www.pluralsight-training.net/microsoft/Courses/TableOfContents?courseName=web-development">buradan </a>g&ouml;rebilirsiniz.</p>
]]></content:encoded>
			<wfw:commentRss>http://yakupbugra.com/2012/04/asp-net-mvc-ef-code-first-html5-jquery-egitimi-ingilizce.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Entity Framework performans ipuçları -1 (Include ve Select)</title>
		<link>http://yakupbugra.com/2012/02/entity-framework-performans-ipuclari-1-include-ve-select-kullanimi.html</link>
		<comments>http://yakupbugra.com/2012/02/entity-framework-performans-ipuclari-1-include-ve-select-kullanimi.html#comments</comments>
		<pubDate>Sun, 19 Feb 2012 19:14:08 +0000</pubDate>
		<dc:creator>Yakup Buğra</dc:creator>
				<category><![CDATA[Entity Framework]]></category>
		<category><![CDATA[entity framework include]]></category>
		<category><![CDATA[entity framework join]]></category>
		<category><![CDATA[Entity framework performans testi]]></category>
		<category><![CDATA[entity framework sayfalama]]></category>

		<guid isPermaLink="false">http://yakupbugra.com/?p=1638</guid>
		<description><![CDATA[Geliştirmekte olduğum projede test ederek &#246;ğrendiğim birka&#231; ipucunu paylaşmak sizlerle&#160;istiyorum . En baştan belirteyim, daha performanslı bir y&#246;nteminiz varsa l&#252;tfen yorumlarda paylaşın ;) Kullandığım test veritabanı:&#160; Urun tablosu 366.055 satır (bunlardan 1500 tanesinin Aktiflik s&#252;tunu &#34;true&#34;) &#160;,&#160;22 s&#252;tun Yorum tablosu 1.011.901 satır,&#160;5 s&#252;tun Like tablosu 1.091.072,&#160;4 s&#252;tun &#160; 1. Include() Kullanımı Projedeki bir sayfada yaptığım [...]]]></description>
			<content:encoded><![CDATA[<p>Geliştirmekte olduğum projede test ederek &ouml;ğrendiğim birka&ccedil; ipucunu paylaşmak sizlerle&nbsp;istiyorum . En baştan belirteyim, daha performanslı bir y&ouml;nteminiz varsa l&uuml;tfen yorumlarda paylaşın ;)</p>
<p>Kullandığım test veritabanı:&nbsp;<span id="more-1638"></span></p>
<ol>
<li>Urun tablosu
<ul>
<li>366.055 satır (bunlardan 1500 tanesinin Aktiflik s&uuml;tunu &quot;true&quot;) &nbsp;,&nbsp;22 s&uuml;tun</li>
</ul>
</li>
<li>Yorum tablosu
<ul>
<li>1.011.901 satır,&nbsp;5 s&uuml;tun</li>
</ul>
</li>
<li>Like tablosu
<ul>
<li>1.091.072,&nbsp;4 s&uuml;tun</li>
</ul>
</li>
</ol>
<p>&nbsp;</p>
<h2>1. Include() Kullanımı</h2>
<p>Projedeki bir sayfada yaptığım şey &uuml;r&uuml;nleri sayfalamak. Sayfanın View kısmında &uuml;r&uuml;n&uuml;n <strong>Urun </strong>tablosunda yer alan <strong>Başlık </strong>bilgisini ve o tabloda olmayan ama diğer tablolardan elde edilebilecek<strong> Like Sayısı</strong>, <strong>Yorum Sayısı </strong>bilgilerini g&ouml;steriyorum. Bunun i&ccedil;in izleyebileceğiniz iki farklı yol var.</p>
<p>Bunlardan birincisi aşağıdaki sorgu ile Controller&#39;da &uuml;r&uuml;nleri &ccedil;ekmek.</p>
<p><span style="color:#8b4513;"><span style="font-family:courier new,courier,monospace;">var urunler = db.Urun.</span></span><span style="font-family: 'courier new', courier, monospace; color: rgb(139, 69, 19); ">Where(d =&gt; d.Aktiflik == true)<br />
	</span><span style="color: rgb(139, 69, 19); font-family: 'courier new', courier, monospace; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .OrderBy(u =&gt; u.Baslik).Skip(20).Take(20);</span></p>
<p>&nbsp;</p>
<p>Yukarıdaki sorgu, veritabanındaki aktif &uuml;r&uuml;nleri başlığa g&ouml;re sıralar ve 20. kayıttan itibaren 20 tane kayıdı getirir.&nbsp;</p>
<p>Bu işlem sadece Controller tarafındaki işlemdi. Daha &ouml;nce de s&ouml;ylediğim gibi ben View tarafında Like ve yorum sayılarını da g&ouml;stermek istiyorum. Ancak bu sorguyla bu bilgiler gelmez. &nbsp;View tarafında aşağıdaki gibi bir g&ouml;sterim yaparsam</p>
<p>&nbsp;</p>
<p><span style="color:#8b4513;"><span style="font-family:courier new,courier,monospace;">@foreach (var item in Model)<br />
	</span></span><span style="font-family: 'courier new', courier, monospace; color: rgb(139, 69, 19); ">{<br />
	&nbsp; &nbsp; @item.Baslik<br />
	</span><span style="font-family: 'courier new', courier, monospace; color: rgb(139, 69, 19); ">&nbsp; &nbsp; @item.Like.Count<br />
	</span><span style="font-family: 'courier new', courier, monospace; color: rgb(139, 69, 19); ">&nbsp; &nbsp; @item.Yorum.Count<br />
	</span><span style="font-family: 'courier new', courier, monospace; color: rgb(139, 69, 19); ">}</span></p>
<p>Model i&ccedil;inde Like.Count veYorum.Count bilgisi gelmediği i&ccedil;in uygulama tam 20 kez veritabanına gidip Like tablosundan o item&#39;a ait olan Like&#39;ların sayısını getirecek. Aynı şeyi Yorum tablosu i&ccedil;in de yapacak. K&uuml;&ccedil;&uuml;k projelerde bu &ccedil;ok &ouml;nemsiz olabilir ama yukarıdaki yazdığım gibi y&uuml;zbinlerce satırı olan tablolarla &ccedil;alışıyorsanız ciddi bir gecikmeye neden olacaktır.</p>
<p>Ama eğer ki Controller tarafında aşağıdaki gibi Include kullanırsanız, View tarafında uygulamanızın 40 kez veritabanına gidip sorgu yapması gerekmez. <strong>Include()</strong> ile, &ccedil;ektiğiniz &Uuml;r&uuml;nlerin, Yorumlarını ve Like&#39;larını da &ccedil;ekmiş olursunuz.</p>
<p><span style="color: rgb(139, 69, 19); "><span style="font-family: 'courier new', courier, monospace; ">var urunler = db.Urun.</span></span><span style="font-family: 'courier new', courier, monospace; color: rgb(139, 69, 19); ">Where(d =&gt; d.Aktiflik == true)<br />
	&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .Include(&quot;Like&quot;).Include(&quot;Yorum&quot;)<br />
	</span><span style="color: rgb(139, 69, 19); font-family: 'courier new', courier, monospace; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .OrderBy(u =&gt; u.Baslik).Skip(20).Take(20);</span></p>
<p>Kendi uygulamamda gecikmeyi bu şekilde yarıya indirdim.</p>
<p>&nbsp;</p>
<h2>2. Select() Kullanımı</h2>
<p>Yukarıda dikkat ettiyseniz View tarafında sadece Başlık, Like sayısı ve Yorum sayısı bilgilerini g&ouml;sterdim. Ama benim Urun tablomda 3 değil 22 s&uuml;tun var. Yani veritabanından 19 adet s&uuml;tunu boş yere &ccedil;ekmiş oluyorum. Bu da yine gecikmeye neden oluyor. Bunun &ouml;n&uuml;ne ge&ccedil;mek i&ccedil;in yapmanız gereken şey Select() kullanımı. Bu kez Controller tarafındaki sorgumu aşağıdaki gibi değiştiriyorum.&nbsp;</p>
<p><span style="color: rgb(139, 69, 19); "><span style="font-family: 'courier new', courier, monospace; ">var urunler = db.Urun.</span></span><span style="font-family: 'courier new', courier, monospace; color: rgb(139, 69, 19); ">Where(d =&gt; d.Aktiflik == true)<br />
	&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .Include(&quot;Like&quot;).Include(&quot;Yorum&quot;)<br />
	&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .Select(u =&gt; new UrunListelemeModeli {<br />
	</span><span style="color: rgb(139, 69, 19); font-family: 'courier new', courier, monospace; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Baslik = u.Baslik, <br />
	&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;LikeSayisi= u.Like.Count, <br />
	&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;YorumSayisi= u.Yorum.Count<br />
	&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; })</span><span style="color: rgb(139, 69, 19); font-family: 'courier new', courier, monospace; "><br />
	</span><span style="color: rgb(139, 69, 19); font-family: 'courier new', courier, monospace; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .OrderBy(u =&gt; u.Baslik).Skip(20).Take(20);</span></p>
<p>&nbsp;</p>
<p>Dikkat ettiyseniz Slect i&ccedil;inde &nbsp;UrunListelemeModeli isminde bir class kullandım. Ben bu listeleme işini bir &ccedil;ok sayfada kullandığım i&ccedil;in, UrunListelemeModeli isminde bir ViewModel oluşturdum. View&#39;a da model olarak bu sınıfı g&ouml;steriyorum. View tarafında ise kodlarım aşağıdaki gibi değişti.</p>
<p><span style="color: rgb(139, 69, 19); "><span style="font-family: 'courier new', courier, monospace; ">@foreach (var item in Model)<br />
	</span></span><span style="font-family: 'courier new', courier, monospace; color: rgb(139, 69, 19); ">{<br />
	&nbsp; &nbsp; @item.Baslik<br />
	</span><span style="font-family: 'courier new', courier, monospace; color: rgb(139, 69, 19); ">&nbsp; &nbsp; @item.LikeSayisi<br />
	</span><span style="font-family: 'courier new', courier, monospace; color: rgb(139, 69, 19); ">&nbsp; &nbsp; @item.YorumSayisi<br />
	</span><span style="font-family: 'courier new', courier, monospace; color: rgb(139, 69, 19); ">}</span></p>
<p>&nbsp;</p>
<p>Projemde Select ile gereken s&uuml;tunları &ccedil;ekerek neredeyse %25 hız sağladım. &nbsp;En başta yaklaşık 2 saniye olan sorgulama s&uuml;resi, yukarıdaki sorgu ile 0,8 saniye civarına d&uuml;şt&uuml;.</p>
]]></content:encoded>
			<wfw:commentRss>http://yakupbugra.com/2012/02/entity-framework-performans-ipuclari-1-include-ve-select-kullanimi.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>INETA Ankara Etkinliği</title>
		<link>http://yakupbugra.com/2012/01/ineta-ankara-etkinligi.html</link>
		<comments>http://yakupbugra.com/2012/01/ineta-ankara-etkinligi.html#comments</comments>
		<pubDate>Tue, 24 Jan 2012 17:39:07 +0000</pubDate>
		<dc:creator>Yakup Buğra</dc:creator>
				<category><![CDATA[Genel]]></category>
		<category><![CDATA[asp.net etkinliği]]></category>
		<category><![CDATA[asp.net seminer]]></category>
		<category><![CDATA[c# etkinliği]]></category>
		<category><![CDATA[etkinlik]]></category>
		<category><![CDATA[inete etkinliği]]></category>
		<category><![CDATA[seminer]]></category>

		<guid isPermaLink="false">http://yakupbugra.com/?p=1631</guid>
		<description><![CDATA[Bu g&#252;nlerde Ankara&#39;ya etkinlik bereketi geldi heralde :) 4-5 Şubat tarihlerindeki ineta etkinliğin&#39;nden haberdar olmanızı istedim. &#214;zellikle Azure, Asp.Net ve asenkron C# oturumlarını merake diyorum. Ekinlik,&#160;Ankara &#220;niversitesi M&#252;hendislik Fak&#252;ltesi Konferans Salonu&#39;nda ger&#231;ekleşecekmiş. Etkinlik sayfası i&#231;in&#160;http://www.inetatr.org/etkinlikler/yazilimcilar-ankara-da-bulusuyor]]></description>
			<content:encoded><![CDATA[<p><img align="left" alt="" height="123" hspace="5" src="http://www.inetatr.org/Media/Default/HtmlWidget/inetalogo.png" vspace="5" width="159" />Bu g&uuml;nlerde Ankara&#39;ya etkinlik bereketi geldi heralde :) 4-5 Şubat tarihlerindeki <a href="http://www.inetatr.org/etkinlikler/yazilimcilar-ankara-da-bulusuyor">ineta etkinliğin</a>&#39;nden haberdar olmanızı istedim. &Ouml;zellikle Azure, Asp.Net ve asenkron C# oturumlarını merake diyorum. Ekinlik,&nbsp;Ankara &Uuml;niversitesi M&uuml;hendislik Fak&uuml;ltesi Konferans Salonu&#39;nda ger&ccedil;ekleşecekmiş. Etkinlik sayfası i&ccedil;in&nbsp;<a href="http://www.inetatr.org/etkinlikler/yazilimcilar-ankara-da-bulusuyor">http://www.inetatr.org/etkinlikler/yazilimcilar-ankara-da-bulusuyor</a></p>
]]></content:encoded>
			<wfw:commentRss>http://yakupbugra.com/2012/01/ineta-ankara-etkinligi.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Yazılım Atölyesi Ocak Ayı Etkinliği</title>
		<link>http://yakupbugra.com/2012/01/yazilim-atolyesi-ocak-etkinligi.html</link>
		<comments>http://yakupbugra.com/2012/01/yazilim-atolyesi-ocak-etkinligi.html#comments</comments>
		<pubDate>Fri, 20 Jan 2012 18:14:21 +0000</pubDate>
		<dc:creator>Yakup Buğra</dc:creator>
				<category><![CDATA[Genel]]></category>
		<category><![CDATA[ankara bilişimciileri]]></category>
		<category><![CDATA[ankara etkinlik]]></category>
		<category><![CDATA[ankara yazılım etkinliği]]></category>
		<category><![CDATA[ankarada yazılımcılar]]></category>
		<category><![CDATA[yazılım atölyesi]]></category>

		<guid isPermaLink="false">http://yakupbugra.com/?p=1626</guid>
		<description><![CDATA[Ankara&#39;da az sayıda yapılan bilişim etkinliklerinden birisi Yazılım At&#246;lyesi. Her ayın 3. haftasında bir araya gelinir ve 2 kişi 2 farklı konu hakkında sunumlar yapar. Ge&#231;en ay itibarı ile Yazılım At&#246;lyesi bu sabit d&#252;zene girdi. Bu ayın etkinlik afişi aşağıdaki gibi. Sunum yapacak olanlar da alanında ger&#231;ekten uzman kişiler. Ankara&#39;daysanız ve yazılımla ilgiliyseniz ka&#231;ırmamanızı tavsiye [...]]]></description>
			<content:encoded><![CDATA[<p>Ankara&#39;da az sayıda yapılan bilişim etkinliklerinden birisi Yazılım At&ouml;lyesi. Her ayın 3. haftasında bir araya gelinir ve 2 kişi 2 farklı konu hakkında sunumlar yapar. Ge&ccedil;en ay itibarı ile Yazılım At&ouml;lyesi bu sabit d&uuml;zene girdi. Bu ayın etkinlik afişi aşağıdaki gibi. Sunum yapacak olanlar da alanında ger&ccedil;ekten uzman kişiler. Ankara&#39;daysanız ve yazılımla ilgiliyseniz ka&ccedil;ırmamanızı tavsiye ederim.<span id="more-1626"></span></p>
<p><img align="middle" alt="" height="900" src="http://ankara.yazilimatolyesi.org/wp-content/uploads/2012/01/YazilimAtolyesi.png" width="600" /></p>
]]></content:encoded>
			<wfw:commentRss>http://yakupbugra.com/2012/01/yazilim-atolyesi-ocak-etkinligi.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SPICE (ISO 15504)</title>
		<link>http://yakupbugra.com/2012/01/spice-software-process-improvement-and-capability-determination.html</link>
		<comments>http://yakupbugra.com/2012/01/spice-software-process-improvement-and-capability-determination.html#comments</comments>
		<pubDate>Sun, 01 Jan 2012 21:41:07 +0000</pubDate>
		<dc:creator>Yakup Buğra</dc:creator>
				<category><![CDATA[Bilgisayar Müh.]]></category>
		<category><![CDATA[Yazılım Mühendisliği]]></category>
		<category><![CDATA[ISO 15504 nedir]]></category>
		<category><![CDATA[spice kaynak]]></category>
		<category><![CDATA[spice nedir]]></category>
		<category><![CDATA[spice türkçe]]></category>

		<guid isPermaLink="false">http://yakupbugra.com/?p=1610</guid>
		<description><![CDATA[Software Process Improvement and Capability dEtermination : Yazılım S&#252;reci &#160;İyileştirme ve Yetenek Belirleme&#8217;dir. 1995 yılında ISO ve IEC tarafından &#231;ıkarılmıştır. Yazılım geliştirme projelerinin y&#246;netim tarafı &#231;oğunlukla yetersiz planlama, geliştirme s&#252;re&#231;lerin tam anlaşılmaması, iyi bir y&#246;netim &#231;er&#231;evesinin olmayışı gibi problemlerle karşı karşıyadır. Bu &#231;er&#231;evede daha disiplinli geliştirme s&#252;re&#231;leri i&#231;in standartlar geliştirilmeye başlanmıştır. Spice da bu standartlardan [...]]]></description>
			<content:encoded><![CDATA[<div>Software Process Improvement and Capability dEtermination : Yazılım S&uuml;reci &nbsp;İyileştirme ve Yetenek Belirleme&rsquo;dir. 1995 yılında ISO ve IEC tarafından &ccedil;ıkarılmıştır. Yazılım geliştirme projelerinin y&ouml;netim tarafı &ccedil;oğunlukla yetersiz planlama, geliştirme s&uuml;re&ccedil;lerin tam anlaşılmaması, iyi bir y&ouml;netim &ccedil;er&ccedil;evesinin olmayışı gibi problemlerle karşı karşıyadır. Bu &ccedil;er&ccedil;evede daha disiplinli geliştirme s&uuml;re&ccedil;leri i&ccedil;in standartlar geliştirilmeye başlanmıştır. Spice da bu standartlardan biri olup, &nbsp;yazılım s&uuml;re&ccedil;lerini iyileştirmek ve s&uuml;re&ccedil; yeteneklerini belirler. Uluslararası Standartlar &Ouml;rg&uuml;t&uuml; &nbsp;ve Uluslararası Elektroteknik Komisyonu&rsquo;nun ortak &ccedil;alışması ile 1995 yılında &ccedil;ıkarılmıştır. SPICE, iki boyutlu bir model olup i&ccedil;e d&ouml;n&uuml;k s&uuml;re&ccedil; iyileştirme ile i&ccedil;e ve dışa d&ouml;n&uuml;k yetenek belirleme amacını taşır. Birinci boyutta s&uuml;re&ccedil;ler, ikinci boyutta yetenek d&uuml;zeyleri vardır.<span id="more-1610"></span></div>
<div>&nbsp;</div>
<div><strong>SPİCE İLKELERİ</strong></div>
<div><strong><br />
	</strong></div>
<div>İlkeleri şu şekilde sıralayabiliriz;</div>
<ul>
<li>Standartlaşma</li>
<li>Değerlendirme, yetenek belirleme ve iyileştirme</li>
<li>Diğer modellere uyum sağlama</li>
<li>Gelişmeyi &ouml;l&ccedil;me</li>
<li>Nesnel, tutarlı ve tekrarlanabilir olma</li>
<li>Sertifikasyon amacı taşımaz</li>
</ul>
<div>&nbsp;</div>
<div><strong>SPİCE BOYUTLARI</strong></div>
<div>&nbsp;</div>
<div>Spice 2 boyuttan oluşmaktadır. Bunlar s&uuml;re&ccedil; boyutu ve yetenek seviyeleridir.</div>
<div>&nbsp;</div>
<div><strong>a)<span class="Apple-tab-span" style="white-space:pre"> </span>Birinci Boyut : S&uuml;re&ccedil; Boyutu</strong></div>
<div>&nbsp;</div>
<div>S&uuml;re&ccedil; boyutunun kıstasları aşağıdaki gibidir.</div>
<ul>
<li>S&uuml;re&ccedil; bir işi yapma y&ouml;ntemidir.</li>
<li>Genellikle alt s&uuml;re&ccedil; ve işlemlerden oluşur.</li>
<li>Belgelenmiş ve tekrarlıdır.</li>
<li>Girdi ve &ccedil;ıktıları vardır.</li>
</ul>
<p>S&uuml;re&ccedil; boyutları 5&rsquo;e ayrılmaktadır. Bunlar:</p>
<ol>
<li>M&uuml;şteri-tedarik&ccedil;iye direkt etkisi olan s&uuml;re&ccedil;ler (Customer)</li>
<li>M&uuml;hendislik s&uuml;re&ccedil;leri (Engineering)</li>
<li>Projeyi oluşturan ve y&ouml;neten s&uuml;re&ccedil;ler (y&ouml;netim) (Management)</li>
<li>Destek s&uuml;re&ccedil;leri (Support)</li>
<li>&nbsp;Organizasyon s&uuml;re&ccedil;leri (Oganization)</li>
</ol>
<div>&nbsp;</div>
<div><strong>b)<span class="Apple-tab-span" style="white-space:pre"> </span>İkinci&nbsp;Boyut Yetenek Seviyeleri</strong></div>
<div>&nbsp;</div>
<div>S&uuml;re&ccedil;lerin alt s&uuml;re&ccedil;lerinin olduğunu daha &ouml;nce s&ouml;ylemiştik. &Ouml;rnek vermek gerekirse, m&uuml;hendislik s&uuml;re&ccedil;lerinin &ldquo;yazılım gereksinim analizi&rdquo;, &ldquo;yazılım tasarımı&rdquo; , &ldquo;yazılım ger&ccedil;ekleştirme&rdquo;, &nbsp;&ldquo;yazılım testi&ldquo; gibi alt s&uuml;re&ccedil;leri bulunmaktadır.</div>
<div>&nbsp;</div>
<div><img alt="" height="284" src="http://yakupbugra.com/wp-content/uploads/spice_surecleri.png" width="595" /></div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>S&uuml;re&ccedil; nitelikleri, s&uuml;re&ccedil; yeteneğinin &ouml;l&ccedil;&uuml;m&uuml;n&uuml; veren ve bir başarı skalasında değerlendirilebilen &ouml;zelliklerdir. Her s&uuml;re&ccedil; niteliği, s&uuml;recin amacına ulaşması i&ccedil;in, o s&uuml;recin etkinliğini iyileştirme ve y&ouml;netme yeteneğinin bir y&ouml;n&uuml;n&uuml; tanımlar</div>
<div>1. Seviyede incelenen s&uuml;re&ccedil; alanları i&ccedil;in temel pratiklerin yerine getirilmesi ve &uuml;r&uuml;nlerin &ouml;zellikleri ile birlikte beklenen maddelerin sağlanması beklenir.&nbsp;</div>
<div>2. ve daha y&uuml;ksek seviyelerde ise &ccedil;izelgede yer alan s&uuml;re&ccedil; &ouml;zelliklerini sağlaması gerekmektedir.&nbsp;</div>
<div>Her yeni &ouml;zellik, y&uuml;kselen yetenek d&uuml;zeyini g&ouml;sterir. S&uuml;re&ccedil; Yeteneği D&uuml;zeyi başarılan niteliklerle(&ouml;zellikler) belirlenir.&nbsp;</div>
<div>4. Seviyede, ilgili iş hedeflerine ulaşılmasını destekleyen &uuml;r&uuml;n, s&uuml;re&ccedil; hedefleri ve &ouml;l&ccedil;&uuml;mler tanımlanır. Belirli &uuml;r&uuml;n ve s&uuml;re&ccedil; &ouml;l&ccedil;&uuml;mleri toplanır.&nbsp;</div>
<ul>
<li>S&uuml;recin performans eğilimleri analiz edilir.</li>
<li>Analiz i&ccedil;in gerekli uygun &ouml;l&ccedil;&uuml;m teknikleri tanımlanır.&nbsp;</li>
</ul>
<div>5. Seviye, s&uuml;recin &ouml;l&ccedil;&uuml;lebilir temeli &uuml;zerine dayanarak standart s&uuml;re&ccedil; tanımı i&ccedil;in değişiklikleri tanımlar.</div>
<ul>
<li>Ger&ccedil;ek ve potansiyel problemlerin kaynağı analiz edilerek s&uuml;rekli iyileşen s&uuml;re&ccedil; tanımlanır.&nbsp;</li>
</ul>
<div><strong>DEĞERLENDİRME S&Uuml;RECİ</strong></div>
<div>&nbsp;</div>
<div>Denet&ccedil;i verileri değişik şekillerde toplayabilir mesela; kişisel performans r&ouml;portajları, kalite kayıtları ve belgeleri, istatistiksel s&uuml;re&ccedil; verileri toplama. Değerlendirme raporunun tamamını yapacak şekilde doğruluyor. Doğrulamış olduğu veriyi temel işlemlerle değerlendiriyor. Bu değerlendirme sonucunda s&uuml;re&ccedil; yeteneğini belirliyor. S&uuml;re&ccedil; yeteneği değerlendirmesi değerlendiriciden uzman muhakeme yeteneğine sahip olmasını bekler. Bu da değerlendirmenin kalitesini değerlendiricinin kalitesi belirlediğini g&ouml;steriyor.&nbsp;</div>
<div>&nbsp;</div>
<div>Değerlendirici kalitesi 4 maddeden etkilenir. Bunlar şunlardır:</div>
<ul>
<li>İletişim kabiliyeti</li>
<li>Genel tecr&uuml;be ve ilgili eğitim seviyesi</li>
<li>Y&ouml;netimdeki alanındaki &ouml;zel yetenekleri</li>
<li>ISO standartlarındaki s&uuml;re&ccedil; yeteneği değerlendirmesi tecr&uuml;besi ve pratikleri</li>
</ul>
<div>&nbsp;</div>
<div><strong>a)<span class="Apple-tab-span" style="white-space:pre"> </span>Değerlendirme Modeli:&nbsp;</strong>PAM bizim değerlendirme i&ccedil;in kullandığımız modeldir. S&uuml;recin hayat d&ouml;ng&uuml;s&uuml; standartlarını sağlayan bir referans model genelde &ouml;rnek alınır. Model spice kriterlerini sağlayan başka bir model de kullanılabilir.</div>
<div>&nbsp;</div>
<div><strong>b)<span class="Apple-tab-span" style="white-space:pre"> </span>Değerlendirmede kullanılan ara&ccedil;lar:&nbsp;</strong>&Ccedil;eşitli değerlendirme ara&ccedil;ları kullanılabilir &ouml;rneğin; Elle kullanılan yazılı belgeler, değerlendirme modeli g&ouml;stergelerini birleştiren bir ara&ccedil;, temel pratik g&ouml;stergeleri, genel pratik g&ouml;stergeleri bunların sonucunda değerlendirme sonucu yazıyor.&nbsp;Bu değerlendirme g&ouml;stergelerini g&ouml;sterecek bilgisayar tabanlı ara&ccedil;lar az sayıdadır. Bu ara&ccedil;lara değerlendirme raporları not ediliyor ya da otomatik olarak bu ara&ccedil;lar değerlendirme sonu&ccedil;larını topluyor.</div>
<div>&nbsp;</div>
<div><strong>&Ouml;RNEK DEĞERLENDİRME SONUCU</strong></div>
<div>&nbsp;</div>
<div><img alt="" height="468" src="http://yakupbugra.com/wp-content/uploads/spice_sonuc.png" width="564" /></div>
<div>&nbsp;</div>
<div>Yukarıdaki sonucu incelersek, firmanın tedarik&ccedil;i se&ccedil;imi, yazılım entegrasyonu, konfig&uuml;rasyon y&ouml;netimi gibi konularda kendisinin geliştirmesi gerekmektedir.</div>
]]></content:encoded>
			<wfw:commentRss>http://yakupbugra.com/2012/01/spice-software-process-improvement-and-capability-determination.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Çizgi Tagem Visual Studio 2010 Eğitimi</title>
		<link>http://yakupbugra.com/2011/12/cizgi-tagem-visual-studio-2010-egitimi.html</link>
		<comments>http://yakupbugra.com/2011/12/cizgi-tagem-visual-studio-2010-egitimi.html#comments</comments>
		<pubDate>Mon, 26 Dec 2011 16:36:54 +0000</pubDate>
		<dc:creator>Yakup Buğra</dc:creator>
				<category><![CDATA[ASP.NET MVC 3]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Web Tasarım]]></category>
		<category><![CDATA[visual studio]]></category>
		<category><![CDATA[visual studio 2010 eğitimi]]></category>
		<category><![CDATA[visual studio 2010 kaynak]]></category>
		<category><![CDATA[visual studio eğitimi]]></category>
		<category><![CDATA[visual studio öğrenme]]></category>
		<category><![CDATA[visual studio türkçe eğitim seti]]></category>
		<category><![CDATA[visual studio türkçe kaynak]]></category>

		<guid isPermaLink="false">http://yakupbugra.com/?p=1593</guid>
		<description><![CDATA[&#199;izgi Tagem kaynakları 2. ve 3. sınıftaki elektornik ile ilgili derslerde &#231;ok faydalı olmuştu. Bug&#252;n Visual Studio eğitimi i&#231;in&#160;g&#252;zel bir video seti oluşturduklarını g&#246;rd&#252;m. Biraz inceledim ve olduk&#231;a faydalı olduğunu s&#246;yleyebilirim. &#220;cretsiz olması da bir &#246;ğrenci olarak beni mest etti :) Bir &#231;oğumuz Visual Studio&#39;dan ger&#231;ek anlamda faydalanamıyoruz. Daha IDE&#39;yi tanımadan dili &#246;ğrenmeye başladığımız i&#231;in [...]]]></description>
			<content:encoded><![CDATA[<p><img align="left" alt="" height="150" hspace="10" src="http://yakupbugra.com/wp-content/uploads/visualStudio.png" width="151" /></p>
<p style="text-align: justify; ">&Ccedil;izgi Tagem kaynakları 2. ve 3. sınıftaki elektornik ile ilgili derslerde &ccedil;ok faydalı olmuştu. Bug&uuml;n Visual Studio eğitimi i&ccedil;in&nbsp;g&uuml;zel bir video seti oluşturduklarını g&ouml;rd&uuml;m. Biraz inceledim ve olduk&ccedil;a faydalı olduğunu s&ouml;yleyebilirim. &Uuml;cretsiz olması da bir &ouml;ğrenci olarak beni mest etti :) Bir &ccedil;oğumuz Visual Studio&#39;dan ger&ccedil;ek anlamda faydalanamıyoruz. Daha IDE&#39;yi tanımadan dili &ouml;ğrenmeye başladığımız i&ccedil;in sonra tekrar geri d&ouml;n&uuml;p IDE &ouml;ğrenmek gereksiz gibi geliyor. Gereksiz gelse de dersleri izlemenizi tavsiye ederim. Bilmediğiniz şeyler muhakkak vardır, ve bunlar performasınızı artıracak şeylerdir ;)<span id="more-1593"></span></p>
<p><img align="right" alt="" height="80" src="http://yakupbugra.com/wp-content/uploads/tagem.png" /></p>
<p>Kaynak linki:&nbsp;<a href="http://www.cizgi-tagem.org/e-kampus/education.aspx?key=vs2010">http://www.cizgi-tagem.org/e-kampus/education.aspx?key=vs2010</a></p>
<div>&nbsp;</div>
<p>Not: Kaynakları g&ouml;rmek i&ccedil;in &uuml;ye olmanız gerekiyor</p>
]]></content:encoded>
			<wfw:commentRss>http://yakupbugra.com/2011/12/cizgi-tagem-visual-studio-2010-egitimi.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Design patterns notları -2- composite pattern</title>
		<link>http://yakupbugra.com/2011/12/design-patterns-notlari-2-composite-pattern.html</link>
		<comments>http://yakupbugra.com/2011/12/design-patterns-notlari-2-composite-pattern.html#comments</comments>
		<pubDate>Sun, 25 Dec 2011 23:28:35 +0000</pubDate>
		<dc:creator>Yakup Buğra</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Yazılım Mühendisliği]]></category>

		<guid isPermaLink="false">http://yakupbugra.com/?p=1569</guid>
		<description><![CDATA[Composite pattern hiyerarşileri d&#252;zenler. Bu hiyerarşiye en g&#252;zel &#246;rnek, amir-memur hiyerarşisidir. En tepede bir amir bulunur. Sonra onun altında bir memur. Bu memur aynı zamanda amirdiri, onun da memurları vardır. Bu b&#246;yle en alt seviyedeki memura kadar gider.&#160; Composite pattern bu t&#252;rl&#252; yapıları ele almak i&#231;in kullanılır. UML şeması aşağıdaki gibidir: IComponent: Hem amirlerin hem [...]]]></description>
			<content:encoded><![CDATA[<p>Composite pattern hiyerarşileri d&uuml;zenler. Bu hiyerarşiye en g&uuml;zel &ouml;rnek, amir-memur hiyerarşisidir. En tepede bir amir bulunur. Sonra onun altında bir memur. Bu memur aynı zamanda amirdiri, onun da memurları vardır. Bu b&ouml;yle en alt seviyedeki memura kadar gider.&nbsp;<span id="more-1569"></span></p>
<p>Composite pattern bu t&uuml;rl&uuml; yapıları ele almak i&ccedil;in kullanılır. UML şeması aşağıdaki gibidir:</p>
<p><img align="middle" alt="" height="177" src="http://yakupbugra.com/wp-content/uploads/composite_pattern.png" width="472" /></p>
<p><strong>IComponent</strong>: Hem amirlerin hem de memurların referans aldığı interface&#39;dir. Her ikisi i&ccedil;in de aynı interface&#39;i kullanıyoruz &ccedil;&uuml;nk&uuml; memurlar da amir olabilir. &Ouml;rneğin bir dekan; rekt&ouml;r&uuml;n memyuru olup, b&ouml;l&uuml;m başkanının da amiridir.</p>
<p><strong>Composite</strong>: İ&ccedil;inde IComponent listesinin bulunduğu sınıf yani amir.</p>
<p><strong>Component</strong>: Altında ICompotent listesi olmayan son memur diyebiliriz</p>
<p>Yapacağımız &ouml;rnek Projenin class diagram&#39;ı aşağıdaki gibidir.<strong> <span style="color:#f00;">Projeyi <a href="http://yakupbugra.com/wp-content/uploads/CompositePattern.rar">buradan </a>indirebilirsiniz.</span></strong></p>
<p><img alt="" height="500" src="http://yakupbugra.com/wp-content/uploads/ClassDiagram1.png" width="271" /></p>
<p>Şimdi &ouml;rnek projemize başlayabiliriz. Boş bir console application a&ccedil;tıktan sonra ilk olarak projeye <strong>IPersonel.cs</strong> sınıfını ekliyoruz.</p>
<div style="overflow:auto; padding-left:10px; border:1px dashed #6161B1;">
<pre style="font-family:Consolas;font-size:13;color:black;background:white;"><span style="color:blue;">namespace</span>&nbsp;CompositePattern
{
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">public</span>&nbsp;<span style="color:blue;">interface</span>&nbsp;<span style="color:#2b91af;">IPersonel</span>
&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">//hem&nbsp;memur&nbsp;hem&nbsp;de&nbsp;amir&nbsp;aslında&nbsp;birer&nbsp;personeldir.</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">string</span>&nbsp;G&ouml;ster(<span style="color:blue;">int</span>&nbsp;derinlik);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">void</span>&nbsp;Ekle(<span style="color:#2b91af;">IPersonel</span>&nbsp;seviye);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#2b91af;">IPersonel</span>&nbsp;Bul(<span style="color:blue;">int</span>&nbsp;Id);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#2b91af;">IPersonel</span>&nbsp;Sil(<span style="color:blue;">int</span>&nbsp;Id);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">string</span>&nbsp;İsim&nbsp;{&nbsp;<span style="color:blue;">get</span>;&nbsp;<span style="color:blue;">set</span>;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">int</span>&nbsp;Id&nbsp;{&nbsp;<span style="color:blue;">get</span>;&nbsp;<span style="color:blue;">set</span>;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;}
}</pre>
</div>
<p>Şimdi sırada K&ouml;k sınıfının oluşturulmasında. Projeye <strong>Amir.cs</strong> sınıfını ekliyoruz.</p>
<div style="overflow:auto; padding-left:10px; border:1px dashed #6161B1;">
<pre style="font-family:Consolas;font-size:13;color:black;background:white;"><span style="color:blue;">namespace</span>&nbsp;CompositePattern
{
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">public</span>&nbsp;<span style="color:blue;">class</span>&nbsp;<span style="color:#2b91af;">Amir</span>&nbsp;:&nbsp;<span style="color:#2b91af;">IPersonel</span>
&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">public</span>&nbsp;<span style="color:blue;">string</span>&nbsp;İsim&nbsp;{&nbsp;<span style="color:blue;">get</span>;&nbsp;<span style="color:blue;">set</span>;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">//&nbsp;Bu&nbsp;amir&#39;in&nbsp;adı</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">public</span>&nbsp;<span style="color:blue;">int</span>&nbsp;Id&nbsp;{&nbsp;<span style="color:blue;">get</span>;&nbsp;<span style="color:blue;">set</span>;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">//&nbsp;amir&#39;in&nbsp;id&#39;si</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#2b91af;">List</span>&lt;<span style="color:#2b91af;">IPersonel</span>&gt;&nbsp;Memurlar&nbsp;=&nbsp;<span style="color:blue;">null</span>;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">//amir&#39;in&nbsp;memurları</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#2b91af;">IPersonel</span>&nbsp;&Uuml;stSeviye&nbsp;=&nbsp;<span style="color:blue;">null</span>;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">//amirin&#39;&uuml;n&nbsp;amiri</span>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">public</span>&nbsp;Amir(<span style="color:blue;">string</span>&nbsp;isim,&nbsp;<span style="color:blue;">int</span>&nbsp;id)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;İsim&nbsp;=&nbsp;isim;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Id=id;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Memurlar&nbsp;=&nbsp;<span style="color:blue;">new</span>&nbsp;<span style="color:#2b91af;">List</span>&lt;<span style="color:#2b91af;">IPersonel</span>&gt;();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">public</span>&nbsp;<span style="color:blue;">void</span>&nbsp;Ekle(<span style="color:#2b91af;">IPersonel</span>&nbsp;personel)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Memurlar.Add(personel);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">//&nbsp;amir&#39;in&nbsp;altına&nbsp;memur&nbsp;ekliyoruz.</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">public</span>&nbsp;<span style="color:#2b91af;">IPersonel</span>&nbsp;Sil(<span style="color:blue;">int</span>&nbsp;id)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&Uuml;stSeviye&nbsp;=&nbsp;<span style="color:blue;">this</span>;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">//bulunduğumuz&nbsp;amir&#39;in&nbsp;en&nbsp;&uuml;st&nbsp;seviye&nbsp;olduğunu&nbsp;d&uuml;ş&uuml;n&uuml;yoruz.</span>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#2b91af;">IPersonel</span>&nbsp;p&nbsp;=&nbsp;&Uuml;stSeviye.Bul(id);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">//bulunduğumuz&nbsp;amirin&nbsp;altında&nbsp;id&nbsp;parametresiyle&nbsp;bir&nbsp;memur&nbsp;arıyoruz.</span>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">if</span>&nbsp;(&Uuml;stSeviye&nbsp;!=&nbsp;<span style="color:blue;">null</span>)&nbsp;<span style="color:green;">//Amir&nbsp;varsa</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(&Uuml;stSeviye&nbsp;<span style="color:blue;">as</span>&nbsp;<span style="color:#2b91af;">Amir</span>).Memurlar.Remove(p);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">//&nbsp;Memurlar&nbsp;&nbsp;i&ccedil;inden&nbsp;p&nbsp;memurunu&nbsp;siliyoruz.</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">return</span>&nbsp;&Uuml;stSeviye;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">else</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">return</span>&nbsp;<span style="color:blue;">this</span>;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">public</span>&nbsp;<span style="color:#2b91af;">IPersonel</span>&nbsp;Bul(<span style="color:blue;">int</span>&nbsp;id)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&Uuml;stSeviye&nbsp;=&nbsp;<span style="color:blue;">this</span>;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">if</span>&nbsp;(Id.Equals(id))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">return</span>&nbsp;<span style="color:blue;">this</span>;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">//&nbsp;Eğer&nbsp;aranan&nbsp;bulunduğumuz&nbsp;amir&nbsp;ise&nbsp;onu&nbsp;d&ouml;nd&uuml;r&uuml;r</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#2b91af;">IPersonel</span>&nbsp;bulunan&nbsp;=&nbsp;<span style="color:blue;">null</span>;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">foreach</span>&nbsp;(<span style="color:#2b91af;">IPersonel</span>&nbsp;personel&nbsp;<span style="color:blue;">in</span>&nbsp;Memurlar)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bulunan&nbsp;=&nbsp;personel.Bul(id);

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">//&nbsp;Recursive&nbsp;bir&nbsp;şekilde&nbsp;bulunduğumuz&nbsp;amir&#39;&uuml;n&nbsp;memurlarını&nbsp;ve&nbsp;onların&nbsp;memurlarını,&nbsp;onların&nbsp;memurlarının&nbsp;memurlarını...&nbsp;arar</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">if</span>&nbsp;(bulunan&nbsp;!=&nbsp;<span style="color:blue;">null</span>)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">break</span>;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">//&nbsp;aranan&nbsp;personel&nbsp;bulununca&nbsp;arama&nbsp;durur.&nbsp;&nbsp;ya&nbsp;da&nbsp;memurların&nbsp;tamamı&nbsp;gezilince&nbsp;durur.</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">return</span>&nbsp;bulunan;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">public</span>&nbsp;<span style="color:blue;">string</span>&nbsp;G&ouml;ster(<span style="color:blue;">int</span>&nbsp;seviye)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#2b91af;">StringBuilder</span>&nbsp;s&nbsp;=&nbsp;<span style="color:blue;">new</span>&nbsp;<span style="color:#2b91af;">StringBuilder</span>(<span style="color:blue;">new</span>&nbsp;<span style="color:#2b91af;">String</span>(<span style="color:#a31515;">&#39;-&#39;</span>,&nbsp;seviye));
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s.Append(İsim+<span style="color:#a31515;">&quot;\n&quot;</span>);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">foreach</span>&nbsp;(<span style="color:#2b91af;">IPersonel</span>&nbsp;memur&nbsp;<span style="color:blue;">in</span>&nbsp;Memurlar)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s.Append(memur.G&ouml;ster(seviye&nbsp;+&nbsp;2));
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">return</span>&nbsp;s.ToString();

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">//derinliğe&nbsp;g&ouml;re&nbsp;memurları&nbsp;listeler.</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;}
}</pre>
</div>
<p>Amir&#39;i oluşturduktan sonra sıra Memur&#39;a geliyor.</p>
<div style="overflow:auto; padding-left:10px; border:1px dashed #6161B1;">
<pre style="font-family:Consolas;font-size:13;color:black;background:white;"><span style="color:blue;">namespace</span>&nbsp;CompositePattern
{
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">public</span>&nbsp;<span style="color:blue;">class</span>&nbsp;<span style="color:#2b91af;">Memur</span>&nbsp;:&nbsp;<span style="color:#2b91af;">IPersonel</span>
&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">public</span>&nbsp;<span style="color:blue;">string</span>&nbsp;İsim&nbsp;{&nbsp;<span style="color:blue;">get</span>;&nbsp;<span style="color:blue;">set</span>;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">public</span>&nbsp;<span style="color:blue;">int</span>&nbsp;Id&nbsp;{&nbsp;<span style="color:blue;">get</span>;&nbsp;<span style="color:blue;">set</span>;&nbsp;}

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">public</span>&nbsp;Memur(<span style="color:blue;">string</span>&nbsp;isim,&nbsp;<span style="color:blue;">int</span>&nbsp;id)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;İsim&nbsp;=&nbsp;isim;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Id&nbsp;=&nbsp;id;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">public</span>&nbsp;<span style="color:blue;">void</span>&nbsp;Ekle(<span style="color:#2b91af;">IPersonel</span>&nbsp;personel)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#2b91af;">Console</span>.WriteLine(<span style="color:#a31515;">&quot;Bu&nbsp;memurun&nbsp;altına&nbsp;memur&nbsp;eklenemez&nbsp;&ccedil;&uuml;nk&uuml;&nbsp;amir&nbsp;olamaz&quot;</span>);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">public</span>&nbsp;<span style="color:#2b91af;">IPersonel</span>&nbsp;Sil(<span style="color:blue;">int</span>&nbsp;id)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#2b91af;">Console</span>.WriteLine(<span style="color:#a31515;">&quot;Bu&nbsp;memur&nbsp;doğrudan&nbsp;silinemez&nbsp;ancak&nbsp;amiri&nbsp;silebilir.&quot;</span>);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">return</span>&nbsp;<span style="color:blue;">this</span>;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">public</span>&nbsp;<span style="color:blue;">string</span>&nbsp;G&ouml;ster(<span style="color:blue;">int</span>&nbsp;seviye)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">return</span>&nbsp;<span style="color:blue;">new</span>&nbsp;<span style="color:#2b91af;">String</span>(<span style="color:#a31515;">&#39;-&#39;</span>,&nbsp;seviye)&nbsp;+&nbsp;İsim&nbsp;+&nbsp;<span style="color:#a31515;">&quot;\n&quot;</span>;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">public</span>&nbsp;<span style="color:#2b91af;">IPersonel</span>&nbsp;Bul(<span style="color:blue;">int</span>&nbsp;id)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">if</span>&nbsp;(id.Equals(Id))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">return</span>&nbsp;<span style="color:blue;">this</span>;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">else</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">return</span>&nbsp;<span style="color:blue;">null</span>;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;}
}
</pre>
</div>
<p>T&uuml;m bu sorulardan sonra projedeki Program.cs i&ccedil;inde aşağıdaki kodlar ile pattern&#39;i deniyoruz.</p>
<div style="overflow:auto; padding-left:10px; border:1px dashed #6161B1;">
<pre style="font-family:Consolas;font-size:13;color:black;background:white;"><span style="color:blue;">namespace</span>&nbsp;CompositePattern
{
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">class</span>&nbsp;<span style="color:#2b91af;">program</span>
&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">static</span>&nbsp;<span style="color:blue;">void</span>&nbsp;Main()
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#2b91af;">IPersonel</span>&nbsp;personel1&nbsp;=&nbsp;<span style="color:blue;">new</span>&nbsp;<span style="color:#2b91af;">Amir</span>(<span style="color:#a31515;">&quot;İsim1&quot;</span>,&nbsp;1);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#2b91af;">IPersonel</span>&nbsp;personel2&nbsp;=&nbsp;<span style="color:blue;">new</span>&nbsp;<span style="color:#2b91af;">Amir</span>(<span style="color:#a31515;">&quot;İsim2&quot;</span>,&nbsp;2);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#2b91af;">IPersonel</span>&nbsp;personel3&nbsp;=&nbsp;<span style="color:blue;">new</span>&nbsp;<span style="color:#2b91af;">Amir</span>(<span style="color:#a31515;">&quot;İsim3&quot;</span>,&nbsp;3);&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#2b91af;">IPersonel</span>&nbsp;personel4&nbsp;=&nbsp;<span style="color:blue;">new</span>&nbsp;<span style="color:#2b91af;">Amir</span>(<span style="color:#a31515;">&quot;İsim4&quot;</span>,&nbsp;4);&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#2b91af;">IPersonel</span>&nbsp;personel5&nbsp;=&nbsp;<span style="color:blue;">new</span>&nbsp;<span style="color:#2b91af;">Amir</span>(<span style="color:#a31515;">&quot;İsim5&quot;</span>,&nbsp;5);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#2b91af;">IPersonel</span>&nbsp;personel6&nbsp;=&nbsp;<span style="color:blue;">new</span>&nbsp;<span style="color:#2b91af;">Amir</span>(<span style="color:#a31515;">&quot;İsim6&quot;</span>,&nbsp;6);&nbsp;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#2b91af;">IPersonel</span>&nbsp;personel7&nbsp;=&nbsp;<span style="color:blue;">new</span>&nbsp;<span style="color:#2b91af;">Memur</span>(<span style="color:#a31515;">&quot;İsim7&quot;</span>,&nbsp;7);&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#2b91af;">IPersonel</span>&nbsp;personel8&nbsp;=&nbsp;<span style="color:blue;">new</span>&nbsp;<span style="color:#2b91af;">Memur</span>(<span style="color:#a31515;">&quot;İsim8&quot;</span>,&nbsp;8);&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#2b91af;">IPersonel</span>&nbsp;personel9&nbsp;=&nbsp;<span style="color:blue;">new</span>&nbsp;<span style="color:#2b91af;">Memur</span>(<span style="color:#a31515;">&quot;İsim9&quot;</span>,&nbsp;9);&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#2b91af;">IPersonel</span>&nbsp;personel10&nbsp;=&nbsp;<span style="color:blue;">new</span>&nbsp;<span style="color:#2b91af;">Memur</span>(<span style="color:#a31515;">&quot;İsim10&quot;</span>,&nbsp;10);&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#2b91af;">IPersonel</span>&nbsp;personel11&nbsp;=&nbsp;<span style="color:blue;">new</span>&nbsp;<span style="color:#2b91af;">Memur</span>(<span style="color:#a31515;">&quot;İsim11&quot;</span>,&nbsp;11);&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#2b91af;">IPersonel</span>&nbsp;personel12&nbsp;=&nbsp;<span style="color:blue;">new</span>&nbsp;<span style="color:#2b91af;">Memur</span>(<span style="color:#a31515;">&quot;İsim12&quot;</span>,&nbsp;12);

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;personel1.Ekle(personel2);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;personel2.Ekle(personel3);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;personel2.Ekle(personel4);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;personel3.Ekle(personel5);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;personel5.Ekle(personel6);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;personel5.Ekle(personel7);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;personel5.Ekle(personel8);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;personel5.Ekle(personel9);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;personel6.Ekle(personel10);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;personel4.Ekle(personel11);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;personel4.Ekle(personel12);

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#2b91af;">Console</span>.Write(personel1.G&ouml;ster(0));
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;
}</pre>
</div>
<p>Programı &ccedil;alıştırınca aşağıdaki ekran g&ouml;r&uuml;nt&uuml;s&uuml;n&uuml; alacaksınız.</p>
<p><img alt="" height="204" src="http://yakupbugra.com/wp-content/uploads/compositecikti.png" width="321" /></p>
]]></content:encoded>
			<wfw:commentRss>http://yakupbugra.com/2011/12/design-patterns-notlari-2-composite-pattern.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Design patterns notları -1- factory pattern</title>
		<link>http://yakupbugra.com/2011/12/design-patterns-notlari-1-factory-pattern.html</link>
		<comments>http://yakupbugra.com/2011/12/design-patterns-notlari-1-factory-pattern.html#comments</comments>
		<pubDate>Fri, 16 Dec 2011 04:14:48 +0000</pubDate>
		<dc:creator>Yakup Buğra</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Yazılım Mühendisliği]]></category>
		<category><![CDATA[design patterns]]></category>
		<category><![CDATA[fabrika tasarım deseni]]></category>
		<category><![CDATA[tasarım desenleri]]></category>

		<guid isPermaLink="false">http://yakupbugra.com/?p=1544</guid>
		<description><![CDATA[Bundan birka&#231; g&#252;n &#246;nce Wrox&#39;un Asp.Net Design Patterns kitabını okumaya başladım. Mvc kitaplarını bitirdikten sonra, mvc&#39;yi hatim ettim diyemesem de bir sonraki aşama olan design patterns konusuna giriş yapmak istedim. Yazılım m&#252;hendisliği alanında ilerlemek, gelişmek istiyorsanız bu konuları bilmeniz gerekiyor. Lafı fazla uzatmadan konuya gelmek istiyorum. Factory pattern, adından da anlaşılacağı &#252;zere fabrika gibi &#231;alışan [...]]]></description>
			<content:encoded><![CDATA[<p>Bundan birka&ccedil; g&uuml;n &ouml;nce Wrox&#39;un <a href="http://www.wrox.com/WileyCDA/WroxTitle/Professional-ASP-NET-Design-Patterns.productCd-0470292784.html">Asp.Net Design Patterns</a> kitabını okumaya başladım. Mvc kitaplarını bitirdikten sonra, mvc&#39;yi hatim ettim diyemesem de bir sonraki aşama olan design patterns konusuna giriş yapmak istedim. Yazılım m&uuml;hendisliği alanında ilerlemek, gelişmek istiyorsanız bu konuları bilmeniz gerekiyor. Lafı fazla uzatmadan konuya gelmek istiyorum. Factory pattern, adından da anlaşılacağı &uuml;zere fabrika gibi &ccedil;alışan bir sistem. Kitapta verilen &ouml;rneğe benzer bir &ouml;rnekle anlatmak istiyorum. Projeyi <span style="color:#800000;"><a href="http://yakupbugra.com/wp-content/uploads/FactoryPattern.rar">buradan </a></span>indirebilirsiniz.&nbsp;<span id="more-1544"></span></p>
<p>Bir e-ticaret sitesi yaptığınızı d&uuml;ş&uuml;n&uuml;n, sipariş alıyorsunuz ve ve bu siparişleri kargoluyorsunuz. &Ccedil;alıştığınız <strong>iki adet kargo firması</strong> olduğunu varsayalım. Bunlardan birisi<strong> kapıda &ouml;deme hizmeti</strong> sunarken diğeri bu hizmeti sunmuyor. M&uuml;şterinizin verdiği siparişteki <strong>&ouml;deme şekline g&ouml;re</strong> (kapıda &ouml;deme ve diğerleri(kredi kartı, havale vs.)) siteniz otomatik olarak kargo firması ve kargo takip kodu atayacak. Yani bir kargo fabrikanız olacak ve isteğe g&ouml;re kargo firması oluşturacak. Şimdi kodları yazarsak daha kolay anlayacaksınız.</p>
<p><img align="middle" alt="" height="365" src="http://yakupbugra.com/wp-content/uploads/FActoryPattern.png" width="347" /></p>
<p>İlk &ouml;nce Siparis sınıfımızı oluştuyoruz.</p>
<div style="overflow:auto; padding-left:10px; border:1px dashed #6161B1;">
<pre style="font-family:Consolas;font-size:13;color:black;background:white;"><span style="color:blue;">public</span>&nbsp;<span style="color:blue;">class</span>&nbsp;<span style="color:#2b91af;">Siparis</span>
{
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">public</span>&nbsp;<span style="color:blue;">int</span>&nbsp;SiparisId&nbsp;{&nbsp;<span style="color:blue;">get</span>;&nbsp;<span style="color:blue;">set</span>;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">public</span>&nbsp;<span style="color:blue;">int</span>&nbsp;MusteriId&nbsp;{&nbsp;<span style="color:blue;">get</span>;&nbsp;<span style="color:blue;">set</span>;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">public</span>&nbsp;<span style="color:blue;">int</span>&nbsp;SehirId&nbsp;{&nbsp;<span style="color:blue;">get</span>;&nbsp;<span style="color:blue;">set</span>;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">public</span>&nbsp;<span style="color:blue;">decimal</span>&nbsp;Fiyat&nbsp;{&nbsp;<span style="color:blue;">get</span>;&nbsp;<span style="color:blue;">set</span>;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">public</span>&nbsp;<span style="color:blue;">bool</span>&nbsp;KapidaOdeme&nbsp;{&nbsp;<span style="color:blue;">get</span>;&nbsp;<span style="color:blue;">set</span>;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">public</span>&nbsp;<span style="color:blue;">string</span>&nbsp;Adres&nbsp;{&nbsp;<span style="color:blue;">get</span>;&nbsp;<span style="color:blue;">set</span>;&nbsp;}
}</pre>
</div>
<p>&nbsp;</p>
<p>Sipariş Sınıfından sonra kargor firmaları i&ccedil;in bir interface yazıyoruz. Bu interface&#39;e g&ouml;re iki farklı kargo firması tanımlayacağız. TakipKoduOlusutur metodu ile, siparişin kargo firmasının internet sitesi &uuml;zerinden takibini yapmak i&ccedil;in kullandığımız kodu oluşturuyoruz. Bu kod sipariş bilgilerimizi alıp kendi i&ccedil;indeki bir algoritmayla kod &uuml;retiyor.</p>
<div style="overflow:auto; padding-left:10px; border:1px dashed #6161B1;">
<pre style="font-family:Consolas;font-size:13;color:black;background:white;"><span style="color:blue;">public</span>&nbsp;<span style="color:blue;">interface</span>&nbsp;<span style="color:#2b91af;">IKargo</span>
{
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">string</span>&nbsp;TakipKoduOlustur(<span style="color:#2b91af">Siparis</span>&nbsp;Siparis);
}
</pre>
</div>
<p>&nbsp;</p>
<p>Kapıda &ouml;demeli kargo firmasını IKargo interface&#39;ini inherit ederek yazıyoruz.</p>
<div style="overflow:auto; padding-left:10px; border:1px dashed #6161B1;">
<pre style="font-family:Consolas;font-size:13;color:black;background:white;"><span style="color:blue;">public</span>&nbsp;<span style="color:blue;">class</span>&nbsp;<span style="color:#2b91af;">KapidaOdemeliKargo</span>&nbsp;:&nbsp;<span class="Apple-style-span" style="color: rgb(43, 145, 175); ">I</span><span class="Apple-style-span" style="color: rgb(43, 145, 175); ">Kargo
</span><span class="Apple-style-span" style="color: rgb(34, 34, 34); ">{
</span><span class="Apple-style-span" style="color: rgb(34, 34, 34); ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: blue; ">public</span><span class="Apple-style-span" style="color: rgb(34, 34, 34); ">&nbsp;</span><span style="color: blue; ">string</span><span class="Apple-style-span" style="color: rgb(34, 34, 34); ">&nbsp;TakipKoduOlustur(Siparis&nbsp;Siparis)
</span><span class="Apple-style-span" style="color: rgb(34, 34, 34); ">&nbsp;&nbsp;&nbsp;&nbsp;{
</span><span class="Apple-style-span" style="color: rgb(34, 34, 34); ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: blue; ">return</span><span class="Apple-style-span" style="color: rgb(34, 34, 34); ">&nbsp;</span><span style="color: rgb(163, 21, 21); ">&quot;Kapıda&nbsp;&ouml;deme&nbsp;kargo&nbsp;firması&nbsp;i&ccedil;in&nbsp;takip&nbsp;kodu&quot;</span><span class="Apple-style-span" style="color: rgb(34, 34, 34); ">;
</span><span class="Apple-style-span" style="color: rgb(34, 34, 34); ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: green; ">//&nbsp;Burada&nbsp;aslında&nbsp;Siparis.SehirId&nbsp;gibi&nbsp;değerleri&nbsp;kullanarak&nbsp;iparişe&nbsp;&ouml;zel&nbsp;bir&nbsp;kod&nbsp;&uuml;retiyoruz
</span><span class="Apple-style-span" style="color: rgb(34, 34, 34); ">&nbsp;&nbsp;&nbsp;&nbsp;}
</span><span class="Apple-style-span" style="color: rgb(34, 34, 34); ">}</span></pre>
</div>
<p>&nbsp;</p>
<p>Kapıda &ouml;demesi olmayan kargo firması</p>
<div style="overflow:auto; padding-left:10px; border:1px dashed #6161B1;">
<pre style="font-family: Consolas; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: white; background-position: initial initial; background-repeat: initial initial; "><span style="color: blue; ">public</span>&nbsp;<span style="color: blue; ">class</span>&nbsp;<span style="color: rgb(43, 145, 175); ">NormalKargo</span>&nbsp;:&nbsp;<span class="Apple-style-span" style="color: rgb(43, 145, 175); ">I</span><span class="Apple-style-span" style="color: rgb(43, 145, 175); ">Kargo</span>
{
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: blue; ">public</span>&nbsp;<span style="color: blue; ">string</span>&nbsp;TakipKoduOlustur(Siparis&nbsp;Siparis)
&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: blue; ">return</span>&nbsp;<span style="color: rgb(163, 21, 21); ">&quot;Normal&nbsp;kargo&nbsp;firması&nbsp;i&ccedil;in&nbsp;takip&nbsp;kodu&quot;</span>;
&nbsp;&nbsp;&nbsp;&nbsp;}
}</pre>
</div>
<p>&nbsp;</p>
<p>Buraya kadar olanlar gayet a&ccedil;ık. Bir sipariş sınıfımız var, bir Kargo interface&#39;i ve bunu inherit eden 2 adet farklı kargor firması var. Her bir kargo firması, siparişe g&ouml;re, kendine &ouml;zg&uuml; takip kodu &uuml;retiyor. Şimdi de siparişi verdikten sonra kargo firmasını belirleyecek/atayacak olan KargoFabrikasını yazacağız.</p>
<div style="overflow:auto; padding-left:10px; border:1px dashed #6161B1;">
<pre style="font-family:Consolas;font-size:13;color:black;background:white;"><span style="color:blue;">public</span>&nbsp;<span style="color:blue;">class</span>&nbsp;<span style="color:#2b91af;">KargoFabrikası</span>
{
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">public</span>&nbsp;<span style="color:#2b91af">IKargo</span>&nbsp;KargoFirmasiUret(<span style="color:#2b91af">Siparis&nbsp;</span>Siparis)&nbsp;<span style="color:green;">//&nbsp;&Ouml;deme&nbsp;şekline&nbsp;g&ouml;re&nbsp;bir&nbsp;kargo&nbsp;firması&nbsp;d&ouml;nd&uuml;r&uuml;yor</span>
&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">if</span>&nbsp;(Siparis.KapidaOdeme)&nbsp;<span style="color:green;">//&nbsp;Kapıda&nbsp;&ouml;deme&nbsp;se&ccedil;ilmiş&nbsp;ise&nbsp;</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">return</span>&nbsp;<span style="color:blue;">new</span>&nbsp;<span style="color:#2b91af">KapidaOdemeliKargo</span>();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">else</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">return</span>&nbsp;<span style="color:blue;">new</span>&nbsp;<span style="color:#2b91af">NormalKargo</span>();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;}
}</pre>
</div>
<p>&nbsp;</p>
<p>Yazdığımız bu kargo fabrikasını uygulamamızda aşağıdaki gibi test edebiliriz</p>
<div style="overflow:auto; padding-left:10px; border:1px dashed #6161B1;">
<pre style="font-family: Consolas; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: white; background-position: initial initial; background-repeat: initial initial; ">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: blue; ">class</span>&nbsp;<span style="color: rgb(43, 145, 175); ">Program</span>
&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: blue; ">static</span>&nbsp;<span style="color: blue; ">void</span>&nbsp;Main(<span style="color: blue; ">string</span>[]&nbsp;args)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: rgb(43, 145, 175); ">Siparis</span>&nbsp;siparis&nbsp;=&nbsp;<span style="color: blue; ">new</span>&nbsp;<span style="color: rgb(43, 145, 175); ">Siparis</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SiparisId&nbsp;=&nbsp;1,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MusteriId&nbsp;=&nbsp;1,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SehirId&nbsp;=&nbsp;34,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fiyat&nbsp;=&nbsp;12,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adres&nbsp;=&nbsp;<span style="color: rgb(163, 21, 21); ">&quot;Adres&quot;</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;};

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: rgb(43, 145, 175); ">IKargo</span>&nbsp;kargo&nbsp;=&nbsp;<span style="color: rgb(43, 145, 175); ">KargoFabrikası</span>.KargoFirmasiUret(siparis);
<span style="color: blue; ">            string</span><span class="Apple-style-span" style="color: rgb(0, 0, 0); ">&nbsp;kargoTakipKodu&nbsp;=&nbsp;kargo.TakipKoduOlustur(siparis);
</span><span class="Apple-style-span" style="color: rgb(0, 0, 0); ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span><span class="Apple-style-span" style="color: rgb(0, 0, 0); ">&nbsp;&nbsp;&nbsp;&nbsp;}</span></pre>
</div>
<p>&nbsp;</p>
<p>G&ouml;rd&uuml;ğ&uuml;n&uuml;z gibi Main metodumuz, kargor firması belirleme işine hi&ccedil; karışmıyor. Bu işi yapan KargoFabrikası sınıfı oluyor. Not: &Ouml;rnek projedeki diğer tasarım yanlışlıklarına takılmayın. Projenin en az kod ile &ouml;rneklenmesi i&ccedil;in bu şekilde yapmam gerekiyordu.</p>
<p>&nbsp;Projeyi&nbsp;<span style="color: rgb(128, 0, 0); "><a href="http://yakupbugra.com/wp-content/uploads/FactoryPattern.rar">buradan&nbsp;</a></span>indirebilirsiniz.</p>
]]></content:encoded>
			<wfw:commentRss>http://yakupbugra.com/2011/12/design-patterns-notlari-1-factory-pattern.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Anasayfanız kullanıcılara ne söylüyor (Alıntı)</title>
		<link>http://yakupbugra.com/2011/12/anasayfaniz-kullanicilara-ne-soyluyor-alinti.html</link>
		<comments>http://yakupbugra.com/2011/12/anasayfaniz-kullanicilara-ne-soyluyor-alinti.html#comments</comments>
		<pubDate>Thu, 15 Dec 2011 16:10:26 +0000</pubDate>
		<dc:creator>Yakup Buğra</dc:creator>
				<category><![CDATA[Web Tasarım]]></category>

		<guid isPermaLink="false">http://yakupbugra.com/?p=1533</guid>
		<description><![CDATA[D&#252;n rss reader&#39;da blogları okurken Bokardo&#39;da bu yazıyı g&#246;r&#252;nce paylaşmam gerektiğini d&#252;ş&#252;nd&#252;m. Web sayfalarının kullanıcı ile etkileşimini mizahi bir şekilde anlatıyor yazı. Blogun sahibi, tasarım yaparken genellikle tasarladığı sayfayı bir insan gibi d&#252;ş&#252;n&#252;p, kullanıcı ile y&#252;z y&#252;ze bir diyalog kurduğunu hayal ediyormuş.&#160;Yazıda da bir sitenin ziyaret&#231;isi ile sitenin anaysayfası arasındaki etkileşimi diyalog şeklinde anlatmış. Anayasafalarda [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify; "><a href="http://yakupbugra.com/wp-content/uploads/2011/12/anasayfa.png"><img alt="" class="alignleft size-thumbnail wp-image-1534" height="150" src="http://yakupbugra.com/wp-content/uploads/2011/12/anasayfa-150x150.png" title="anasayfa" width="150" /></a>D&uuml;n rss reader&#39;da blogları okurken Bokardo&#39;da <a href="http://bokardo.com/archives/what-our-home-pages-are-really-saying/" target="_blank">bu yazıyı</a> g&ouml;r&uuml;nce paylaşmam gerektiğini d&uuml;ş&uuml;nd&uuml;m. Web sayfalarının kullanıcı ile etkileşimini mizahi bir şekilde anlatıyor yazı. Blogun sahibi, tasarım yaparken genellikle tasarladığı sayfayı bir insan gibi d&uuml;ş&uuml;n&uuml;p, kullanıcı ile y&uuml;z y&uuml;ze bir diyalog kurduğunu hayal ediyormuş.&nbsp;Yazıda da bir sitenin ziyaret&ccedil;isi ile sitenin anaysayfası arasındaki etkileşimi diyalog şeklinde anlatmış. Anayasafalarda ve diğer alt sayfalarda kullancıya yeteri kadar bilgi verilmemesininden ve s&uuml;rekli yapılan&quot;şimdi &uuml;ye ol (signup now)&quot; baskısından bahsetmiş :)<span id="more-1533"></span></p>
<p><strong>Siz</strong>: Hmm.. Bu siteyi az &ouml;nce buldum. &nbsp;Yazılım ya da başka birşey mi yapıyorsunuz?</p>
<p><strong>Sayfa</strong>: Size inanılmaz bir yazılım sunuyoruz.</p>
<p><strong>Siz</strong>: Tamam, nedir o?</p>
<p><strong>Sayfa</strong>: Şimdi &uuml;ye ol !</p>
<p><strong>Siz</strong>: Peki bu yazılım ne yapıyor?&nbsp;</p>
<p><strong>Sayfa</strong>: Şimdi &uuml;ye ol !</p>
<p><strong>Siz</strong>: Nasıl &ccedil;alışıyor?</p>
<p><strong>Sayfa</strong>: Herhangi bir zorunluluk ya da kredi kartı gerekmiyor.</p>
<p><strong>Siz</strong>: Bu şeyin benim i&ccedil;in işe yarayıp yaramayacağını anlamaya &ccedil;alışıyorum.</p>
<p><strong>Sayfa</strong>: &Uuml;yeliğin &uuml;cretsiz olduğundan bahsetmiş miydim?</p>
<p><strong>Siz</strong>: Tamam, nasıl g&ouml;r&uuml;n&uuml;yor peki?</p>
<p><strong>Sayfa</strong>: K&uuml;&ccedil;&uuml;k bir ekran g&ouml;r&uuml;nt&uuml;s&uuml; var. Daha fazlasını g&ouml;rmek i&ccedil;in &uuml;ye olmalısınız.</p>
<p><strong>Siz</strong>: Sorularımın hi&ccedil; birini cevaplamıyorsun.</p>
<p><strong>Sayfa</strong>: Şimdi &uuml;ye ol !</p>
<p><strong>Siz</strong>: Ben &ccedil;ıkıyorum !</p>
<p><strong>Sayfa</strong>: Şimdi &uuml;ye ol !</p>
]]></content:encoded>
			<wfw:commentRss>http://yakupbugra.com/2011/12/anasayfaniz-kullanicilara-ne-soyluyor-alinti.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Professional Asp.Net Mvc 3 kitabı hakkında</title>
		<link>http://yakupbugra.com/2011/12/professional-asp-net-mvc-3-kitabi-hakkinda.html</link>
		<comments>http://yakupbugra.com/2011/12/professional-asp-net-mvc-3-kitabi-hakkinda.html#comments</comments>
		<pubDate>Wed, 14 Dec 2011 21:50:23 +0000</pubDate>
		<dc:creator>Yakup Buğra</dc:creator>
				<category><![CDATA[ASP.NET MVC 3]]></category>
		<category><![CDATA[asp.net kitabı]]></category>
		<category><![CDATA[asp.net kitap incelemesi]]></category>
		<category><![CDATA[asp.net kitapları]]></category>
		<category><![CDATA[asp.net mvc 3 kitap önerisi]]></category>
		<category><![CDATA[asp.net mvc 3 kitapları]]></category>
		<category><![CDATA[mvc anlatım]]></category>
		<category><![CDATA[mvc kaynak]]></category>

		<guid isPermaLink="false">http://yakupbugra.com/?p=1520</guid>
		<description><![CDATA[Daha &#246;nceki yazımda Apress&#39;in kitabından bahsetmiştim. Bu yazıda ise Wrox&#39;un asp.net mvc kitabı hakkında bilgi vermek istiyorum. Apress&#39;in kitabına nazaran, mvc&#39;ye yeni girenler i&#231;in daha uygun bir kitap olduğunu s&#246;yleyebilirim. Advanced diyebileceğimiz konuları, temel konulardan sonra ekstra olarak incelemiş. Apress&#39;in kitabında ise temel ve advenced i&#231; i&#231;e yer alıyordu. Dependency Injection, Unit Testing gibi konuları [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify; "><a href="http://yakupbugra.com/wp-content/uploads/2011/12/001d1d63_medium.jpeg"><img alt="" class="alignleft size-thumbnail wp-image-1522" height="150" src="http://yakupbugra.com/wp-content/uploads/2011/12/001d1d63_medium-150x150.jpg" title="001d1d63_medium" width="150" /></a>Daha &ouml;nceki <a href="http://yakupbugra.com/2011/12/pro-asp-net-mvc-3-framework-kitabi-hakkinda.html">yazımda </a>Apress&#39;in kitabından bahsetmiştim. Bu yazıda ise Wrox&#39;un asp.net mvc <a href="http://www.wrox.com/WileyCDA/WroxTitle/Professional-ASP-NET-MVC-3.productCd-1118076583,descCd-tableOfContents.html">kitabı </a>hakkında bilgi vermek istiyorum. Apress&#39;in kitabına nazaran, mvc&#39;ye yeni girenler i&ccedil;in daha uygun bir kitap olduğunu s&ouml;yleyebilirim. Advanced diyebileceğimiz konuları, temel konulardan sonra ekstra olarak incelemiş. Apress&#39;in kitabında ise temel ve advenced i&ccedil; i&ccedil;e yer alıyordu. Dependency Injection, Unit Testing gibi konuları temel olarak ele alması, bu konuların daha rahat anlaşılmasını sağlıyor. &Ouml;zetle diyebilirim ki, eğer mvc&#39;ye yeni başlayacaksanız Wrox&#39;un kitabını Apress&#39;e tercih edin ;) Kitabın <a href="http://media.wiley.com/product_data/excerpt/83/11180765/1118076583-7.pdf">konu başlıklarına buradan</a>&nbsp;ulaşabilirsiniz.</p>
]]></content:encoded>
			<wfw:commentRss>http://yakupbugra.com/2011/12/professional-asp-net-mvc-3-kitabi-hakkinda.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

