<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Oğuz Yağmur'un Günlüğü</title>
    <link>http://www.oguzyagmur.com/</link>
    <description>Net Bi'log (Tecrübe, ilimden üstündür. İbn-i Sina)</description>
    <language>en-us</language>
    <copyright>Oğuz YAĞMUR</copyright>
    <lastBuildDate>Mon, 22 Jun 2009 15:26:04 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.0.7226.0</generator>
    <managingEditor>oguz.yagmur@btakademi.com</managingEditor>
    <webMaster>oguz.yagmur@btakademi.com</webMaster>
    <item>
      <trackback:ping>http://www.oguzyagmur.com/Trackback.aspx?guid=0eb0a0fc-d426-470e-b567-730f733c2f05</trackback:ping>
      <pingback:server>http://www.oguzyagmur.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.oguzyagmur.com/PermaLink,guid,0eb0a0fc-d426-470e-b567-730f733c2f05.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://www.oguzyagmur.com/CommentView,guid,0eb0a0fc-d426-470e-b567-730f733c2f05.aspx</wfw:comment>
      <wfw:commentRss>http://www.oguzyagmur.com/SyndicationService.asmx/GetEntryCommentsRss?guid=0eb0a0fc-d426-470e-b567-730f733c2f05</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">Kimi zaman uygulamalarımızda ihtiyaç gereği
(örneğin plugin tabanlı bir mimari kullanılarak uygulama geliştirilirken) çalışma
zamanında Reflection tekniklerini kullanarak dinamik assembly dosyalarını ilgili application
domaine yükler ve kullanırız. Bu kısımda dikkat edilecek noktalardan birisi de biribirini
kullanan assembly'ler varsa bağımlı olunan diğer assembly'lerin de yüklenmesini sağlamak
gerekmetedir.<br /><br /><img src="http://www.oguzyagmur.com/content/binary/dependency.jpg" border="0" /><br /><br /><br />
Kısa bir örnek üzerinden inceleyelim. Örneğimizde üç proje yer almakta.<br /><br />
cl1.dll : Ana uygulama tarafından kullanılacak assembly<br />
cl2.dll : cl1.dll in bağımlı olduğu diğer dll<br />
Diğer uygulama da test kodlarımızın yer aldığı projemiz.<br /><br />
cl1.dll içerisinde Class1.cs isimli kod dosyamız bulunuyor. İçeriği aşağıdaki gibidir.
Tabiki cl2.dll i de referans edildiğini dikkate alıyoruz.<br /><pre><span style="color: Black; background-color: transparent; font-family: Courier New; font-size: 11px;"><span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">namespace</span> cl1
{ <span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">public</span><span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">class</span> Class1
{ <span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">public</span><span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">int</span> Test()
{ cl2.Class2 c2 <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span><span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">new</span> cl2.Class2(); <span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">return</span> 2 <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">*</span> c2.Test();
} } }</span></pre>
cl2.dll içerisinde de Class2 isimli bir dosya bulunmakta ve içeriği de aşağıdaki gibidir.<br /><pre><span style="color: Black; background-color: transparent; font-family: Courier New; font-size: 11px;"><span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">namespace</span> cl2
{ <span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">public</span><span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">class</span> Class2
{ <span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">public</span><span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">int</span> Test()
{ <span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">return</span> 10;
} } }</span></pre>
Görüldüğü gibi Class1 sınıfının Test metodu çağrıldığında Class2 sınıfından bir nesne
yaratılmakta ve onun da Test metodu çağrılmaktadır. Bu durumda eğer cl1.dll dinamik
olarak yüklenir ve Test metodu kullanılmak istenirse cl2.dll in de application domaine
yüklenmesi zorunluluğu ortaya çıkmaktadır. Bunun için de AppDomain sınıfının AssemblyResolve
eventine kendi metodumuzu yazarak bir assembly application domaine yüklendiğinde eğer
bağlı olduğu başka bir assembly var ise bu event ateşlenecek ve metodumuzda da ilgili
assembly yi yükleme imkanı bulacağız. Örnek kod aşağıdaki gibidir.<br /><br /><pre><span style="color: Black; background-color: transparent; font-family: Courier New; font-size: 11px;"><span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">private</span><span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">void</span> button1_Click(<span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">object</span> sender,
EventArgs e) { AppDomain.CurrentDomain.AssemblyResolve += <span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">new</span> ResolveEventHandler(CurrentDomain_AssemblyResolve);
Assembly asm <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span> Assembly.LoadFile(<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">@"C:\temp\WindowsFormsApplication9\cl1\bin\Debug\cl1.dll"</span>);
Type t <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span> asm.GetType(<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"cl1.Class1"</span>); <span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">object</span> o <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span> Activator.CreateInstance(t);
MethodInfo mi <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span> t.GetMethod(<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"Test"</span>); <span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">int</span> sonuc <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span> (<span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">int</span>)mi.Invoke(o,<span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">null</span>);
} Assembly CurrentDomain_AssemblyResolve(<span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">object</span> sender,
ResolveEventArgs args) { Assembly asm <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span> Assembly.LoadFile(<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">@"C:\temp\WindowsFormsApplication9\cl1\bin\Debug\"</span>+args.Name.Split(',')[0]<span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">+</span><span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">".dll"</span>); <span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">return</span> asm;
}</span></pre><br /><img width="0" height="0" src="http://www.oguzyagmur.com/aggbug.ashx?id=0eb0a0fc-d426-470e-b567-730f733c2f05" /></body>
      <title>Dinamik Assembly Yüklerken Bağımlılıkları Dikkate Almak Lazım</title>
      <guid isPermaLink="false">http://www.oguzyagmur.com/PermaLink,guid,0eb0a0fc-d426-470e-b567-730f733c2f05.aspx</guid>
      <link>http://www.oguzyagmur.com/PermaLink,guid,0eb0a0fc-d426-470e-b567-730f733c2f05.aspx</link>
      <pubDate>Mon, 22 Jun 2009 15:26:04 GMT</pubDate>
      <description>Kimi zaman uygulamalarımızda ihtiyaç gereği (örneğin plugin tabanlı bir mimari kullanılarak uygulama geliştirilirken) çalışma zamanında Reflection tekniklerini kullanarak dinamik assembly dosyalarını ilgili application domaine yükler ve kullanırız. Bu kısımda dikkat edilecek noktalardan birisi de biribirini kullanan assembly'ler varsa bağımlı olunan diğer assembly'lerin de yüklenmesini sağlamak gerekmetedir.&lt;br&gt;
&lt;br&gt;
&lt;img src="http://www.oguzyagmur.com/content/binary/dependency.jpg" border="0"&gt; 
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Kısa bir örnek üzerinden inceleyelim. Örneğimizde üç proje yer almakta.&lt;br&gt;
&lt;br&gt;
cl1.dll : Ana uygulama tarafından kullanılacak assembly&lt;br&gt;
cl2.dll : cl1.dll in bağımlı olduğu diğer dll&lt;br&gt;
Diğer uygulama da test kodlarımızın yer aldığı projemiz.&lt;br&gt;
&lt;br&gt;
cl1.dll içerisinde Class1.cs isimli kod dosyamız bulunuyor. İçeriği aşağıdaki gibidir.
Tabiki cl2.dll i de referans edildiğini dikkate alıyoruz.&lt;br&gt;
&lt;pre&gt;&lt;span style="color: Black; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt; &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;namespace&lt;/span&gt; cl1
{ &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;public&lt;/span&gt; &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;class&lt;/span&gt; Class1
{ &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;public&lt;/span&gt; &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;int&lt;/span&gt; Test()
{ cl2.Class2 c2 &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;new&lt;/span&gt; cl2.Class2(); &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;return&lt;/span&gt; 2 &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;*&lt;/span&gt; c2.Test();
} } }&lt;/span&gt;&lt;/pre&gt;
cl2.dll içerisinde de Class2 isimli bir dosya bulunmakta ve içeriği de aşağıdaki gibidir.&lt;br&gt;
&lt;pre&gt;&lt;span style="color: Black; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;&lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;namespace&lt;/span&gt; cl2
{ &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;public&lt;/span&gt; &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;class&lt;/span&gt; Class2
{ &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;public&lt;/span&gt; &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;int&lt;/span&gt; Test()
{ &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;return&lt;/span&gt; 10;
} } }&lt;/span&gt;&lt;/pre&gt;
Görüldüğü gibi Class1 sınıfının Test metodu çağrıldığında Class2 sınıfından bir nesne
yaratılmakta ve onun da Test metodu çağrılmaktadır. Bu durumda eğer cl1.dll dinamik
olarak yüklenir ve Test metodu kullanılmak istenirse cl2.dll in de application domaine
yüklenmesi zorunluluğu ortaya çıkmaktadır. Bunun için de AppDomain sınıfının AssemblyResolve
eventine kendi metodumuzu yazarak bir assembly application domaine yüklendiğinde eğer
bağlı olduğu başka bir assembly var ise bu event ateşlenecek ve metodumuzda da ilgili
assembly yi yükleme imkanı bulacağız. Örnek kod aşağıdaki gibidir.&lt;br&gt;
&lt;br&gt;
&lt;pre&gt;&lt;span style="color: Black; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt; &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;private&lt;/span&gt; &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;void&lt;/span&gt; button1_Click(&lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;object&lt;/span&gt; sender,
EventArgs e) { AppDomain.CurrentDomain.AssemblyResolve += &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;new&lt;/span&gt; ResolveEventHandler(CurrentDomain_AssemblyResolve);
Assembly asm &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; Assembly.LoadFile(&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;@"C:\temp\WindowsFormsApplication9\cl1\bin\Debug\cl1.dll"&lt;/span&gt;);
Type t &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; asm.GetType(&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"cl1.Class1"&lt;/span&gt;); &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;object&lt;/span&gt; o &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; Activator.CreateInstance(t);
MethodInfo mi &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; t.GetMethod(&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"Test"&lt;/span&gt;); &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;int&lt;/span&gt; sonuc &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; (&lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;int&lt;/span&gt;)mi.Invoke(o,&lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;null&lt;/span&gt;);
} Assembly CurrentDomain_AssemblyResolve(&lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;object&lt;/span&gt; sender,
ResolveEventArgs args) { Assembly asm &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; Assembly.LoadFile(&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;@"C:\temp\WindowsFormsApplication9\cl1\bin\Debug\"&lt;/span&gt;+args.Name.Split(',')[0]&lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;+&lt;/span&gt;&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;".dll"&lt;/span&gt;); &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;return&lt;/span&gt; asm;
}&lt;/span&gt;&lt;/pre&gt;
&lt;br&gt;
&lt;img width="0" height="0" src="http://www.oguzyagmur.com/aggbug.ashx?id=0eb0a0fc-d426-470e-b567-730f733c2f05" /&gt;</description>
      <comments>http://www.oguzyagmur.com/CommentView,guid,0eb0a0fc-d426-470e-b567-730f733c2f05.aspx</comments>
      <category>.NET</category>
      <category>C#</category>
    </item>
    <item>
      <trackback:ping>http://www.oguzyagmur.com/Trackback.aspx?guid=cebb85b5-92cd-495e-9788-f94e3245048c</trackback:ping>
      <pingback:server>http://www.oguzyagmur.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.oguzyagmur.com/PermaLink,guid,cebb85b5-92cd-495e-9788-f94e3245048c.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://www.oguzyagmur.com/CommentView,guid,cebb85b5-92cd-495e-9788-f94e3245048c.aspx</wfw:comment>
      <wfw:commentRss>http://www.oguzyagmur.com/SyndicationService.asmx/GetEntryCommentsRss?guid=cebb85b5-92cd-495e-9788-f94e3245048c</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">Gemiş zaman içinde <a href="http://blogs.msdn.com/adonet/archive/2008/10/29/update-on-linq-to-sql-and-linq-to-entities-roadmap.aspx">bir
blog girdisinde</a> -ado.net takımının blog'u - artık OR/M konusunda baya yol alındığını
.net ile OR/M  yapılacaksa bunun için Ado.net Entity Framework kullanılmasının
tavsiye edildiğini LINQ to SQL konusunda ise duruma göre bakacaklarını müşterilerden
gelen geribildirimlere göre de ilgileneceklerini içeren bir yazı okumuştuk. Maşallah
iyi de etmişler yazmışlar çizmişler. Baştan söyledik, olmadı, hata ettiniz, gitmez
bu böyle, düzeltin vs. diye. Yerine Ado.net Entity Framework getirdiler de biz daha
"acaba mı? oldu mu ?" bir bakalım diyerek eleştirilerimize başlamadan Microsoft bize
" But not Perfect" demişti bile. (Resim için Sefer Hoca'ya teşekkür ederim)<br /><br /><img src="http://www.oguzyagmur.com/content/binary/ef.jpg" border="0" /><br /><br />
Neyse sağlık olsun dedik.Geliştirilmesi durduruldu, linq to sql öldü mü? ( google'da
bir <a href="http://www.google.com.tr/search?hl=tr&amp;q=%22linq+to+sql+is+dead%22">arayalım </a>bakalım
?) diye herkes bişiler söylerken -ki herkes öldü diyor - Microsoft takımı yine sağ
gösterip sol vurdu gibi geliyor bana. .NET 4.0 ile beraber oldukça fazla yenilikler
ile değişerek karşımıza çıkmaya hazırlanıyor. Değişiklikleri ve iyileştirmeleri merak
edenler şurdaki <a href="http://social.msdn.microsoft.com/Forums/fr-FR/linqtosqlprerelease/threads">linkden </a>-
çok uzun olduğu için buraya kopyala yapıştır yaparak yazıyı boğmak istemedim - detayları
inceleyebilirsiniz. Yani ne diyelim şimdi Linq to SQL ölmedi mi ? 
<br /><br /><img width="0" height="0" src="http://www.oguzyagmur.com/aggbug.ashx?id=cebb85b5-92cd-495e-9788-f94e3245048c" /></body>
      <title>LINQ to SQL ne durumda ?</title>
      <guid isPermaLink="false">http://www.oguzyagmur.com/PermaLink,guid,cebb85b5-92cd-495e-9788-f94e3245048c.aspx</guid>
      <link>http://www.oguzyagmur.com/PermaLink,guid,cebb85b5-92cd-495e-9788-f94e3245048c.aspx</link>
      <pubDate>Fri, 19 Jun 2009 14:22:12 GMT</pubDate>
      <description>Gemiş zaman içinde &lt;a href="http://blogs.msdn.com/adonet/archive/2008/10/29/update-on-linq-to-sql-and-linq-to-entities-roadmap.aspx"&gt;bir
blog girdisinde&lt;/a&gt; -ado.net takımının blog'u - artık OR/M konusunda baya yol alındığını
.net ile OR/M&amp;nbsp; yapılacaksa bunun için Ado.net Entity Framework kullanılmasının
tavsiye edildiğini LINQ to SQL konusunda ise duruma göre bakacaklarını müşterilerden
gelen geribildirimlere göre de ilgileneceklerini içeren bir yazı okumuştuk. Maşallah
iyi de etmişler yazmışlar çizmişler. Baştan söyledik, olmadı, hata ettiniz, gitmez
bu böyle, düzeltin vs. diye. Yerine Ado.net Entity Framework getirdiler de biz daha
"acaba mı? oldu mu ?" bir bakalım diyerek eleştirilerimize başlamadan Microsoft bize
" But not Perfect" demişti bile. (Resim için Sefer Hoca'ya teşekkür ederim)&lt;br&gt;
&lt;br&gt;
&lt;img src="http://www.oguzyagmur.com/content/binary/ef.jpg" border="0"&gt;
&lt;br&gt;
&lt;br&gt;
Neyse sağlık olsun dedik.Geliştirilmesi durduruldu, linq to sql öldü mü? ( google'da
bir &lt;a href="http://www.google.com.tr/search?hl=tr&amp;amp;q=%22linq+to+sql+is+dead%22"&gt;arayalım &lt;/a&gt;bakalım
?) diye herkes bişiler söylerken -ki herkes öldü diyor - Microsoft takımı yine sağ
gösterip sol vurdu gibi geliyor bana. .NET 4.0 ile beraber oldukça fazla yenilikler
ile değişerek karşımıza çıkmaya hazırlanıyor. Değişiklikleri ve iyileştirmeleri merak
edenler şurdaki &lt;a href="http://social.msdn.microsoft.com/Forums/fr-FR/linqtosqlprerelease/threads"&gt;linkden &lt;/a&gt;-
çok uzun olduğu için buraya kopyala yapıştır yaparak yazıyı boğmak istemedim - detayları
inceleyebilirsiniz. Yani ne diyelim şimdi Linq to SQL ölmedi mi ? 
&lt;br&gt;
&lt;br&gt;
&lt;img width="0" height="0" src="http://www.oguzyagmur.com/aggbug.ashx?id=cebb85b5-92cd-495e-9788-f94e3245048c" /&gt;</description>
      <comments>http://www.oguzyagmur.com/CommentView,guid,cebb85b5-92cd-495e-9788-f94e3245048c.aspx</comments>
      <category>.NET</category>
      <category>Inceleme</category>
    </item>
    <item>
      <trackback:ping>http://www.oguzyagmur.com/Trackback.aspx?guid=aefaa28a-218f-468e-ac99-b965c1f40585</trackback:ping>
      <pingback:server>http://www.oguzyagmur.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.oguzyagmur.com/PermaLink,guid,aefaa28a-218f-468e-ac99-b965c1f40585.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://www.oguzyagmur.com/CommentView,guid,aefaa28a-218f-468e-ac99-b965c1f40585.aspx</wfw:comment>
      <wfw:commentRss>http://www.oguzyagmur.com/SyndicationService.asmx/GetEntryCommentsRss?guid=aefaa28a-218f-468e-ac99-b965c1f40585</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <span id="ctl00_ctl00_ContentPlaceHolder1_ContentPlaceHolder2_ucEgitimDetay1_lblHead">Yine
bir OOP Principles &amp; Design Patterns (Tasarım Kalıpları)  eğitimini daha
sonlandırdık. Güzel geçen 32 saat sonunda ( sanırım daha mı fazla sürdü ne ;) ) tüm
tasarım kalıplarını çiçek böcek araba'dan ziyade gerçek hayat örnekleri ile inceledik. </span>
        </p>
        <p>
          <span>Her yazılımcı için "kesinlikle öğrenilmeli, bilinmeli" dediğimiz bu eğitimin
detaylarını <a href="http://www.btakademi.com/egitim/egitimler/?id=18&amp;egitim=oop_principles__ve__design_patterns__tasarim_kaliplari_">şurdaki
linkten</a> inceleyebilirsiniz.</span>
        </p>
        <a href="http://www.oguzyagmur.com/images/albums/oop_04_12_09/_IMG_0387.jpg">
          <img src="http://www.oguzyagmur.com/content/binary/_IMG_0387k.jpg" border="0" />
        </a>
        <img width="0" height="0" src="http://www.oguzyagmur.com/aggbug.ashx?id=aefaa28a-218f-468e-ac99-b965c1f40585" />
      </body>
      <title>Güzel Bir Eğitimin Ardından</title>
      <guid isPermaLink="false">http://www.oguzyagmur.com/PermaLink,guid,aefaa28a-218f-468e-ac99-b965c1f40585.aspx</guid>
      <link>http://www.oguzyagmur.com/PermaLink,guid,aefaa28a-218f-468e-ac99-b965c1f40585.aspx</link>
      <pubDate>Mon, 13 Apr 2009 11:28:52 GMT</pubDate>
      <description>&lt;p&gt;
&lt;span id=ctl00_ctl00_ContentPlaceHolder1_ContentPlaceHolder2_ucEgitimDetay1_lblHead&gt;Yine
bir OOP Principles &amp;amp; Design Patterns (Tasarım Kalıpları)&amp;nbsp; eğitimini daha
sonlandırdık. Güzel geçen 32 saat sonunda ( sanırım daha mı fazla sürdü ne ;) ) tüm
tasarım kalıplarını çiçek böcek araba'dan ziyade gerçek hayat örnekleri ile inceledik. &lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span&gt;Her yazılımcı için "kesinlikle öğrenilmeli, bilinmeli" dediğimiz bu eğitimin
detaylarını &lt;a href="http://www.btakademi.com/egitim/egitimler/?id=18&amp;amp;egitim=oop_principles__ve__design_patterns__tasarim_kaliplari_"&gt;şurdaki
linkten&lt;/a&gt; inceleyebilirsiniz.&lt;/span&gt;
&lt;/p&gt;
&lt;a href="http://www.oguzyagmur.com/images/albums/oop_04_12_09/_IMG_0387.jpg"&gt;&lt;img src="http://www.oguzyagmur.com/content/binary/_IMG_0387k.jpg" border=0&gt; &lt;/a&gt;&lt;img width="0" height="0" src="http://www.oguzyagmur.com/aggbug.ashx?id=aefaa28a-218f-468e-ac99-b965c1f40585" /&gt;</description>
      <comments>http://www.oguzyagmur.com/CommentView,guid,aefaa28a-218f-468e-ac99-b965c1f40585.aspx</comments>
      <category>C#</category>
      <category>Yasam</category>
    </item>
    <item>
      <trackback:ping>http://www.oguzyagmur.com/Trackback.aspx?guid=651575ac-3df5-4b39-af91-9fd5e892828a</trackback:ping>
      <pingback:server>http://www.oguzyagmur.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.oguzyagmur.com/PermaLink,guid,651575ac-3df5-4b39-af91-9fd5e892828a.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:commentRss>http://www.oguzyagmur.com/SyndicationService.asmx/GetEntryCommentsRss?guid=651575ac-3df5-4b39-af91-9fd5e892828a</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Uzun zamand<span lang="TR">ı</span><span lang="EN">r dost sohbetlerinde </span><span lang="TR">bazı
konuların herzamankinden daha sık konuşulması dikkatim</span><span lang="EN">i çekiyor. </span><span lang="TR">Her
konuşmada aslında farklı fikirler farklı yaklaşımlar da ortaya çıkmıyor değil. Ben
de sizleri özetle bu konuya ortak etmeye çalışarak, </span><span lang="EN">biraz olsun
belirli sorular sordurmak niyetindeyim. 
</span></p>
        <span lang="TR">
          <p>
Yaklaşık 
</p>
        </span>
        <span lang="EN">bundan </span>
        <span lang="TR">11 yıl önce programlamaya
adım atmak istediğimde ilk yaptığım iş çevremde ilk bulduğum </span>
        <span lang="EN">"iyi" </span>
        <span lang="TR">programcıya
yapışmak ve beni </span>
        <span lang="EN">programlama konusunda yönlendirmesini istemem
oldu. Elimde bir Delphi 3 CD’</span>
        <span lang="TR">si ve almam gereken bir kitabın
isminden başka birşey yoktu. </span>
        <span lang="EN">Hemen sahaflardan kitabi edindikten
sonra </span>
        <span lang="TR">yaklaşık 3 </span>
        <span lang="EN">– 4 ay </span>
        <span lang="TR">uğraştım
ve kitapdaki örnekleri çok güzel anlamama rağmen kendim birşeyler</span>
        <span lang="EN"> y</span>
        <span lang="TR">apmak
istediğimde takıldığımı farkettim. Sorunun bende olduğunu düşünürken yapmak istediklerim
çok temel bilgilerle yapılabilmesi gerektiğini arkasından da aslında bu bilgilerin
kitapta olmadığını farkettim. Kitap sadece sürükle bırak işlemleri ve IDE</span>
        <span lang="EN">’</span>
        <span lang="TR">nin
sunduğu imkanlarla en kolay şekilde nasıl bazı uygulama</span>
        <span lang="EN">la</span>
        <span lang="TR">rın
geliştirildiğinden bahse</span>
        <span lang="EN">tmek öte gitmiyordu.</span>
        <span lang="TR">Kullanılan
dil ile ilgili çok yüzeysel bilgilerle geçiştirilmiş </span>
        <span lang="EN">– ki </span>
        <span lang="TR">şimdi
o kitap elimde olsa o bilgilerin doğru olup olmadığına bakardım , bir ton yanlışlık
içerdiğine eminim </span>
        <span lang="EN">-</span>
        <span lang="TR"> işin mantığından
uzak sadece birbiri ile bağlantısız problemleri çözen</span>
        <span lang="EN"> bilgiler
içeren,</span>
        <span lang="TR"> kısaca </span>
        <b>
          <span lang="EN">"</span>
          <span lang="TR">buton
altı programcılar</span>
          <span lang="EN">" 
</span>
        </b>
        <span lang="TR">yetiştiren bir kitapdan ibaret olduğunu belirli bir aşama</span>
        <span lang="EN"> kat </span>
        <span lang="TR">ettikden
sonra anlamam zor olmadı.</span>
        <span lang="EN"> Bu arada konu ile ilgili </span>
        <span lang="TR">başka
kitapları da incelediğimde benzer durumların olduğunu görmem beni üzdü açıkcası. 2 </span>
        <span lang="EN">–
3 sene sonra ise bu "sevgili"</span>
        <span lang="TR"> yazarlarımızın aslında her konuya
oldukça hakim olduklarını ve kitap yazabilecek seviyede de bilgili olduklarını g</span>
        <span lang="EN">ör</span>
        <span lang="TR">düm.Oldukça
ironik bir durum açıkcası</span>
        <span lang="EN">!. Ama bu ironi, zaman içerisinde </span>
        <span lang="TR">meslek
arkadaşlarım ile </span>
        <span lang="EN">k</span>
        <span lang="TR">onuşmalarımda ya da
kullanıcı grubu sitelerindeki forumlarda yazılanları ve sorulan soruları gördükçe
bende trajediye dönüştü. Artık yazılım dünyasında ö</span>
        <span lang="EN">yle bir
kitle</span>
        <span lang="TR"> oluşmuştu</span>
        <span lang="EN"> ki – o zamanlarda kayn</span>
        <span lang="TR">ak
sıkıntısının olması ve ne yazıkki bilgiye erişimin </span>
        <span lang="EN">alternatiflerinin
yeterli</span>
        <span lang="TR"> olmamasından</span>
        <span lang="EN"> – </span>
        <span lang="TR">bahsettiğim </span>
        <span lang="EN">kitaplar</span>
        <span lang="TR">ı
okuyarak programcılık yapıyorlardı. Eminim o yıllarda programlamay başlay</span>
        <span lang="EN">an
ve </span>
        <span lang="TR">bu yazıyı okuyan meslektaşlarım hangi yazarlardan ve kitaplardan
bahsettiğimi çok iyi biliyorlardır. Ve inanır mısınız </span>
        <span lang="EN">ben hala
bundan 2 sene öncesine kadar </span>
        <span lang="TR">bir umut kitapçılar</span>
        <span lang="EN">a
"iyi bir kitap </span>
        <span lang="TR">bulayım da gerek öğrenci arkadaşlarıma</span>
        <span lang="EN"> tavsiye
edeyim</span>
        <span lang="TR"> gerekse de kendim için başka bir meslektaşımın konulara
bakış açısından faydalanayım</span>
        <span lang="EN">"</span>
        <span lang="TR"> mantığı
ile </span>
        <span lang="EN">ara ara </span>
        <span lang="TR">uğrardım. Ama malesef artık
onu da yapmıyorum.</span>
        <span lang="EN"> Tabi ki zaman içerisinde kaliteli ve özgün
kitaplar da</span>
        <span lang="TR"> çıktı ve hala bu kitapların 8</span>
        <span lang="EN">.,
9., 10. b</span>
        <span lang="TR">askılarını </span>
        <span lang="EN">görmekteyiz</span>
        <span lang="TR">,
teşekkürlerimi sunarım bu yazarlarımıza</span>
        <span lang="EN">.</span>
        <span lang="TR"> Ve
işin en üzücü yanı da bu gidişatın son 2 yıl içinde yine başa dönmesi.</span>
        <span lang="EN">
          <br />
. </span>
        <span lang="TR">Yani aktörlerin değişmesine rağmen senaryoların aynı kalması.</span>
        <span lang="EN"> Sonuç
; yine </span>
        <span lang="TR">bilgiden yoksun, mantıkdan yoksun, kurulum v</span>
        <span lang="EN">e
ekran görüntüleri resimleri ile </span>
        <span lang="TR">yarısı dolmuş , tamamen saçma
ve anlamsız basit örneklerle dolu </span>
        <span lang="EN">,</span>
        <span lang="TR">fiyatı
gramajından ağır </span>
        <span lang="EN">ve kendisini her konuda bilgili sanan </span>
        <span lang="TR">yazdığı
içerikler iyi okunduğunda aslında konudan bihaber yazarların yazdığı kitaplar yine
vitrinleri süslemekte.İşin kötüsü de yine </span>
        <span lang="EN">programl</span>
        <span lang="TR">amaya
yeni başlayan arkadaşlarımızın elinde bu kitaplar dolanmakta.</span>
        <span lang="EN"> Bu
konu ile ilgili çevremde "</span>
        <span lang="TR"> ya bu kitapları onaylayan birileri
olsun, belirli bir kontrolden geçsin öyle yayınlansın</span>
        <span lang="EN">" gibi
yöntemler duyuyorum. Peki bu kitap</span>
        <span lang="TR">ları basanların işine </span>
        <span lang="EN">gelmeyecektir.
Hatta iyi ya da kötü </span>
        <span lang="TR">bir şekilde kitap basımı için </span>
        <span lang="EN">"</span>
        <span lang="TR">sevgili
yazarlarımız</span>
        <span lang="EN">"</span>
        <span lang="TR"> teşvik bile ediliyor malesef.
</span>
        <span lang="EN">
          <p>
Bahsi geçen 
</p>
        </span>
        <span lang="TR">yıllar</span>
        <span lang="EN">
        </span>
        <span lang="TR">ile
günümüz arasında oldukça farklar oluştu zaman içerisinde. Örneğin o zamanlarda kitap
yazmak kitabı olmak oldukça etkili bir işken şimdi isteyen istediği gibi kitap yazabil</span>
        <span lang="EN">iyor.</span>
        <span lang="TR">İşin
ilginç yanı kısa metrajlı filmler de yani makaleler de günümüzde kitaplar kadar rağbet
görebiliyor. Bilgiye erişim aracı olarak belki de artık günümüzde kitaplardan çok
makaleler kullanılıyor</span>
        <span lang="EN"> gibi. Kitaplardan daha</span>
        <span lang="TR"> kolay
bir şekilde </span>
        <span lang="EN">ve ücertsiz olarak makalelere </span>
        <span lang="TR">erişile</span>
        <span lang="EN">bilmesi
bence korkutucu bir durum</span>
        <span lang="TR"> oluştu</span>
        <span lang="EN">ruyor.Bu
kitaplarda ya da makalelerde </span>
        <span lang="TR">anlaşılır eğitici örneklerin ve
yazıyı yazanın edindiği den</span>
        <span lang="EN">eyimlerin oku</span>
        <span lang="TR">yucuya
aktarılmasını geçtim doğru bilgi bulmak </span>
        <span lang="EN">–</span>
        <span lang="TR"> artık
mesleğe ve konulara o kadar uzak ki </span>
        <span lang="EN">"</span>
        <span lang="TR">sevgili
yazarımız</span>
        <span lang="EN">" ,</span>
        <span lang="TR"> yazı</span>
        <span lang="EN"> yazmak
için </span>
        <span lang="TR">esinlendiği kaynakları okurken tam anlayamadığından olsa
gerek </span>
        <span lang="EN">– bile </span>
        <span lang="TR">oldukça zor artık. Yani
bilgiye erişimin kolaylaşması aslında doğru bilginin değil de kirli ve ne amaçla yazıldığı </span>
        <span lang="EN">"belli
olmayan" –</span>
        <span lang="TR"> aslında bilen bilir ne amaçla yazıldığı da </span>
        <span lang="EN">- </span>
        <span lang="TR">yazıların
ya da kitapların </span>
        <span lang="EN">"Türkçe içerik az! çok olsun!","</span>
        <span lang="TR">Bilgi
paylaştıkça çoğalır</span>
        <span lang="EN">!"</span>
        <span lang="TR"> naraları ile </span>
        <span lang="EN">bilgi
çö</span>
        <span lang="TR">plüğüne dönüş</span>
        <span lang="EN">türül</span>
        <span lang="TR">düğü
ve bu çöplükte programlamaya yeni başlayan arkadaşları düşündükçe</span>
        <span lang="EN">
        </span>
        <span lang="TR">kendimi
önceden içinde bulunduğum ortamı göz önüne alarak daha şanslı hissediyorum. En azından
etkileneceğim ya da yanlış şeyleri öğreneceğim kaynak kısıtlı iken şimdiki durum... </span>
        <span lang="EN">Üzücü.Y</span>
        <span lang="TR">azımın
başında da bahsettiğim gibi şu sıralar bu konular üzerine sohbetlerin sıklığının artmasının
bir açıklayıcı </span>
        <span lang="EN">nedeni </span>
        <span lang="TR">olduğunu umarım
anlatabiliyorumdur. Lütfen bu yazıdan sonra ya da şimdi </span>
        <span lang="EN">
          <a href="http://ileriseviye.org/arasayfa.php?inode=programmingtenyears.html">http://ileriseviye.org/arasayfa.php?inode=programmingtenyears.html</a>
        </span>
        <span lang="TR"> linkindeki
yazıyı okuyunuz. Oldukça güzel ve insanın kafasında soru işaretleri oluşturacak bir
yazı.
</span>
        <span lang="EN">
          <p>
Günümüzde k
</p>
        </span>
        <span lang="TR">işisel gelişim için ya da mesleki bilginin artması için
yapılması gereken bir eğitim kurumdan eğitim almak ya da seminerlere katılmak</span>
        <span lang="EN">
        </span>
        <span lang="TR">da
bir başka </span>
        <span lang="EN">artarak tercih edilen yoldur. </span>
        <span lang="TR">Eğitimdeki
amaç bilgili ve en önemlisi deneyimli birisinden </span>
        <span lang="EN">programalama</span>
        <span lang="TR"> sanatını
öğrenmektir. Eğitimdeki geçiri</span>
        <span lang="EN">len 100 dk içerisindeki edinimlerin
1000dk makale okumakla </span>
        <span lang="TR">edinilemeyeceğini düşünüyorum. Çünkü
eğitim kurumundaki </span>
        <span lang="EN">"</span>
        <span lang="TR">eğitmen</span>
        <span lang="EN">"
size deneyim</span>
        <span lang="TR">lerini aktaracaktır. Sizin öğrenmek istediklerinizi
o çok uzun zaman önce öğrenmiş bunları kullanmış neyin nasıl olacağını çok iyi biliyordur.
Örneğin neden buton altına veritabanına bağla</span>
        <span lang="EN">n</span>
        <span lang="TR">tı
sağlayan kodların yazılmayacağını bunun ayrı bir katman olarak tasarlanması gerektiği </span>
        <span lang="EN">vs
vs</span>
        <span lang="TR">.... Çünkü eğitmen buton altına yazıldığında ilerde neler
olabileceğini proje büyüdükçe ne gibi sıkıntılar oluşturabileceği konusunda deneyim
edinmiştir, lütfen dikkat edin deneyim edinmiştir, yaşamıştır, görmüştür, sonuçları
ile karşılaşmıştır</span>
        <span lang="EN">.Bunlar çok ama çok önemli edinimlerdir. </span>
        <span lang="TR">Ve
o eğitime gelenlerin sorularına da daha önceden edindiği deneyimlerden yola çıkıp </span>
        <span lang="EN">
          <b>"yorumlayarak" </b>cevap
verebilecektir. </span>
        <span lang="TR">Oysaki piyasadaki eğitim kurumlarını ve eğitmenleri
incelediğinizde durumun ne kadar vehamet vereceğini göreceksiniz. Eğitim artık ticari
bir meta olmuş olduğunu, eğitim içeriklerinin sadece belirli sınavları geçmeye yönelik
olduğunu, eğitim kurumlarının gelen talepleri değerlendirmek için eğitmen eksikliğine
rağmen eğitimi açmak için bir önceki sınıflarda öğrenci olanların eğitmen olarak sınıflara
sokulduğunu, yazılım ve proje deneyimi olmayanların eğitmen yapıldığını, hayatında
hiçbir şekilde eğitim verdiği konu ile ilgili proje deyimi yaşamamış - </span>
        <span lang="EN">E
be adam sen de! Yeni </span>
        <span lang="TR">işte hemen projede kullanıp deneyim mi
edinmek lazım diye sorarsanız şunu derim : daha önce deneyim sahibi ise bu yenliklerin
amacını algılayıp</span>
        <span lang="EN">
        </span>
        <span lang="TR">kısa sürede konuya
hakim olabilir. Oysaki her yenilik sanki çok büyük bir olaymış, sanki ilk defa keşfedilmiş
gibi anlatılıp yine kitleler yanlış yönlendirilmektedir.- olması dikkate alınmadan
eğitim </span>
        <span lang="EN">ceya seminer vere</span>
        <span lang="TR">bildiğini göreceksiniz.</span>
        <span lang="EN"> Malesef
üzülerek belirtmek isterim ki Türkiye’</span>
        <span lang="TR">deki eğitim sektöründeki
eğ</span>
        <span lang="EN">itmenler tam tersi bir durum </span>
        <span lang="TR">içerisindedirler.
Hiçbir deneyime sahip değilken </span>
        <span lang="EN">"</span>
        <span lang="TR">eğitim
ver</span>
        <span lang="EN">eyim deneyim sahibi olurum so</span>
        <span lang="TR">nra
da yazılım yapmaya başlarım</span>
        <span lang="EN">"</span>
        <span lang="TR"> mantığı
içerisindedirler</span>
        <span lang="EN"> ya da yönlendirilmektedirler. </span>
        <span lang="TR">Peki
bu durumda sizden eğitim almak için gelen katılımcıların emekleri, paraları ve daha
da önemlisi <b>zamanları </b></span>
        <span lang="EN">ne olacak ? </span>
        <span lang="TR">Bazı
ortamlarda </span>
        <span lang="EN">ay</span>
        <span lang="TR">ak üstü sohbetlerde anlaıyoruz
ki bu şekilde eğitim kazasına uğramış kitle hiç de küçümsenemeyecek </span>
        <span lang="EN">kadar
büyüktür.</span>
        <span lang="TR"> Peki siz görmüyüyor musunuz çevrenizde birçok sertifika
sahibi ama proje yapmaya başlayınca eli</span>
        <span lang="EN"> aya</span>
        <span lang="TR">ğına
karışan kişileri ? Bu kişiler </span>
        <span lang="EN">nerden </span>
        <span lang="TR">çıkıyor,
nasıl bu hale geliyor ? Umarım açıklayabilmişimdir.</span>
        <span lang="EN"> Herzaman
– kendi </span>
        <span lang="TR">öğrencilerim de dahil olmak üzere </span>
        <span lang="EN">–</span>
        <span lang="TR"> şunu </span>
        <span lang="EN">söylerim;</span>
        <span lang="TR"> eğitim
kurumu, yeri , şartları, olanakları vs vs önemli değildir, yeter ki eğitmen deneyimli
ve bilgili olsun. </span>
        <span lang="EN">Emin olabilirsiniz ki o </span>
        <span lang="TR">eğitim
size düşünemeyeceğiniz kadar faydalı olacaktır.
</span>
        <span lang="EN">
        </span>
        <span lang="TR">
          <p>
Gelelim seminere!Seminer, ne kadar kolay değil mi? 
</p>
        </span>
        <span lang="EN">Birisi </span>
        <span lang="TR">çıkar bir konu hakkında 1
bilemedin 2 saat konuşur, yeniliklerden bahseder. Tabi konular yenilik olduğu için
biz de öyle ağzımız açık dinleriz. Çünkü yeniliktir, sorulacak çokşey yoktur. Basit
bir iş, ürün tanıtımı. Ha ben bu olmasın demiyorum kesinlikle. Bu da olması gereken
bir iş</span>
        <span lang="EN">, vizyon kazanmak için güzel bir imkan. Amma velakin, </span>
        <span lang="TR">nereye
kadar be kardeşim! Sen o yenilikleri gördün ettin kullanmaya karar verdin, peki ya
sonrası ? Aldın projede kullanacaksın, sağdan soldan bilgilere eriştin, peki o bilgilere
biraz dikkat ettiğimizde ne kadar yüzeysel olduğunu </span>
        <span lang="EN">görüyor
muyuz ? </span>
        <span lang="TR">Onu al sürükle bu var bunu da şuna koy, ordan hazırı
var al onu...Yok artık! Bir süre sonra bunları </span>
        <span lang="EN">"bir bilene"</span>
        <span lang="TR"> sorma
ihtıyacı çekip bilenlerin kullanıcı grupları ile buluştuğu etkinliklere baktığınızda
yeniliklerden başka birşey görebiliyor musunuz ? Oysa</span>
        <span lang="EN">ki seminerlerd</span>
        <span lang="TR">en
biraz da olsun beklenen kullanılan teknoljilerin ve ürünleri gerçek hayat uygulamarında
kullanılırken yaşanan sorunlar ve bu sorunların aşımı üzerindeki edinilen deneyimlerin
paylaşılmasıdır. Ama malesef bu düzeyde seminerler gerçekleştirebilecek kişi sayısı
ne kadar az değil mi ? Çok uzatmadan bu konudaki beni üzen kısım bu yenilik anlatan</span>
        <span lang="EN"> deneyimsiz,
bir gecede</span>
        <span lang="TR"> slayt hazırlayıp insanların karşısına çıktıkdan
sonra</span>
        <span lang="EN"> "sektörün önde gidenleri", "</span>
        <span lang="TR">her
şeyi yalamış yumuş adam</span>
        <span lang="EN">","adama</span>
        <span lang="TR"> bak
her şeyi biliyor</span>
        <span lang="EN">"</span>
        <span lang="TR"> .... şeklindeki etiketlerle
insanları yanlış yönlendirmelerinden kaynaklanan sorunlardır. Inanın arkadaşlar siz
onlardan daha çok şey biliyorsunuz! </span>
        <span lang="EN">Çünkü </span>
        <span lang="TR">siz
onları kullanıyor, onlarla ürünler çıkarıyor neyin ne olduğunu çok daha iyi biliyorsunuz!</span>
        <span lang="EN">
          <p>
Sonuç olarak 
</p>
        </span>
        <span lang="TR">kötü bir nesil yetişmekte, bu nesli eğitecek kurum ve kuruluşlar
da</span>
        <span lang="EN"> dib</span>
        <span lang="TR">e vurmuş durumda malesef. Benim
yaşadığım olayları bu işlere yeni başl</span>
        <span lang="EN">ayanlar yada henü</span>
        <span lang="TR">z
başında olanlar yaşamasın istiyorum! İş görüşmelerinde elinde setifikalarla gelip </span>
        <span lang="EN">birka</span>
        <span lang="TR">ç
soru sonrası </span>
        <span lang="EN">temel özelliklere</span>
        <span lang="TR"> bile
sahip olamayan ve yüzü kızarark iş görüşmelerinden ayrılan arkadaşlarımız olmasın
istiyorum. Kral çıplak mı bilemiyorum ama şapkamızı lütfen önümüze koyalım ve yanlış
yetişen bir yazılımcı kitlemiz olmasın, olmaması için elimizden geleni yaplım, seçici
olalım, birşeylerin farkına varalım</span>
        <span lang="EN">!. 
</span>
        <img width="0" height="0" src="http://www.oguzyagmur.com/aggbug.ashx?id=651575ac-3df5-4b39-af91-9fd5e892828a" />
      </body>
      <title>Kral Çıplak! mı?</title>
      <guid isPermaLink="false">http://www.oguzyagmur.com/PermaLink,guid,651575ac-3df5-4b39-af91-9fd5e892828a.aspx</guid>
      <link>http://www.oguzyagmur.com/PermaLink,guid,651575ac-3df5-4b39-af91-9fd5e892828a.aspx</link>
      <pubDate>Fri, 30 Jan 2009 13:27:54 GMT</pubDate>
      <description>&lt;p&gt;
Uzun zamand&lt;span lang=TR&gt;ı&lt;/span&gt;&lt;span lang=EN&gt;r dost sohbetlerinde &lt;/span&gt;&lt;span lang=TR&gt;bazı
konuların herzamankinden daha sık konuşulması dikkatim&lt;/span&gt;&lt;span lang=EN&gt;i çekiyor. &lt;/span&gt;&lt;span lang=TR&gt;Her
konuşmada aslında farklı fikirler farklı yaklaşımlar da ortaya çıkmıyor değil. Ben
de sizleri özetle bu konuya ortak etmeye çalışarak, &lt;/span&gt;&lt;span lang=EN&gt;biraz olsun
belirli sorular sordurmak niyetindeyim. 
&lt;/p&gt;
&gt;&lt;span lang=TR&gt; 
&lt;p&gt;
Yaklaşık 
&lt;/span&gt;&lt;span lang=EN&gt;bundan &lt;/span&gt;&lt;span lang=TR&gt;11 yıl önce programlamaya adım atmak
istediğimde ilk yaptığım iş çevremde ilk bulduğum &lt;/span&gt;&lt;span lang=EN&gt;"iyi" &lt;/span&gt;&lt;span lang=TR&gt;programcıya
yapışmak ve beni &lt;/span&gt;&lt;span lang=EN&gt;programlama konusunda yönlendirmesini istemem
oldu. Elimde bir Delphi 3 CD’&lt;/span&gt;&lt;span lang=TR&gt;si ve almam gereken bir kitabın
isminden başka birşey yoktu. &lt;/span&gt;&lt;span lang=EN&gt;Hemen sahaflardan kitabi edindikten
sonra &lt;/span&gt;&lt;span lang=TR&gt;yaklaşık 3 &lt;/span&gt;&lt;span lang=EN&gt;– 4 ay &lt;/span&gt;&lt;span lang=TR&gt;uğraştım
ve kitapdaki örnekleri çok güzel anlamama rağmen kendim birşeyler&lt;/span&gt;&lt;span lang=EN&gt; y&lt;/span&gt;&lt;span lang=TR&gt;apmak
istediğimde takıldığımı farkettim. Sorunun bende olduğunu düşünürken yapmak istediklerim
çok temel bilgilerle yapılabilmesi gerektiğini arkasından da aslında bu bilgilerin
kitapta olmadığını farkettim. Kitap sadece sürükle bırak işlemleri ve IDE&lt;/span&gt;&lt;span lang=EN&gt;’&lt;/span&gt;&lt;span lang=TR&gt;nin
sunduğu imkanlarla en kolay şekilde nasıl bazı uygulama&lt;/span&gt;&lt;span lang=EN&gt;la&lt;/span&gt;&lt;span lang=TR&gt;rın
geliştirildiğinden bahse&lt;/span&gt;&lt;span lang=EN&gt;tmek öte gitmiyordu.&lt;/span&gt;&lt;span lang=TR&gt;Kullanılan
dil ile ilgili çok yüzeysel bilgilerle geçiştirilmiş &lt;/span&gt;&lt;span lang=EN&gt;– ki &lt;/span&gt;&lt;span lang=TR&gt;şimdi
o kitap elimde olsa o bilgilerin doğru olup olmadığına bakardım , bir ton yanlışlık
içerdiğine eminim &lt;/span&gt;&lt;span lang=EN&gt;-&lt;/span&gt;&lt;span lang=TR&gt; işin mantığından uzak
sadece birbiri ile bağlantısız problemleri çözen&lt;/span&gt;&lt;span lang=EN&gt; bilgiler içeren,&lt;/span&gt;&lt;span lang=TR&gt; kısaca &lt;/span&gt;&lt;b&gt;&lt;span lang=EN&gt;"&lt;/span&gt;&lt;span lang=TR&gt;buton
altı programcılar&lt;/span&gt;&lt;span lang=EN&gt;" 
&lt;/b&gt;&gt;&lt;span lang=TR&gt;yetiştiren bir kitapdan ibaret olduğunu belirli bir aşama&lt;/span&gt;&lt;span lang=EN&gt; kat &lt;/span&gt;&lt;span lang=TR&gt;ettikden
sonra anlamam zor olmadı.&lt;/span&gt;&lt;span lang=EN&gt; Bu arada konu ile ilgili &lt;/span&gt;&lt;span lang=TR&gt;başka
kitapları da incelediğimde benzer durumların olduğunu görmem beni üzdü açıkcası. 2 &lt;/span&gt;&lt;span lang=EN&gt;–
3 sene sonra ise bu "sevgili"&lt;/span&gt;&lt;span lang=TR&gt; yazarlarımızın aslında her konuya
oldukça hakim olduklarını ve kitap yazabilecek seviyede de bilgili olduklarını g&lt;/span&gt;&lt;span lang=EN&gt;ör&lt;/span&gt;&lt;span lang=TR&gt;düm.Oldukça
ironik bir durum açıkcası&lt;/span&gt;&lt;span lang=EN&gt;!. Ama bu ironi, zaman içerisinde &lt;/span&gt;&lt;span lang=TR&gt;meslek
arkadaşlarım ile &lt;/span&gt;&lt;span lang=EN&gt;k&lt;/span&gt;&lt;span lang=TR&gt;onuşmalarımda ya da kullanıcı
grubu sitelerindeki forumlarda yazılanları ve sorulan soruları gördükçe bende trajediye
dönüştü. Artık yazılım dünyasında ö&lt;/span&gt;&lt;span lang=EN&gt;yle bir kitle&lt;/span&gt;&lt;span lang=TR&gt; oluşmuştu&lt;/span&gt;&lt;span lang=EN&gt; ki
– o zamanlarda kayn&lt;/span&gt;&lt;span lang=TR&gt;ak sıkıntısının olması ve ne yazıkki bilgiye
erişimin &lt;/span&gt;&lt;span lang=EN&gt;alternatiflerinin yeterli&lt;/span&gt;&lt;span lang=TR&gt; olmamasından&lt;/span&gt;&lt;span lang=EN&gt; – &lt;/span&gt;&lt;span lang=TR&gt;bahsettiğim &lt;/span&gt;&lt;span lang=EN&gt;kitaplar&lt;/span&gt;&lt;span lang=TR&gt;ı
okuyarak programcılık yapıyorlardı. Eminim o yıllarda programlamay başlay&lt;/span&gt;&lt;span lang=EN&gt;an
ve &lt;/span&gt;&lt;span lang=TR&gt;bu yazıyı okuyan meslektaşlarım hangi yazarlardan ve kitaplardan
bahsettiğimi çok iyi biliyorlardır. Ve inanır mısınız &lt;/span&gt;&lt;span lang=EN&gt;ben hala
bundan 2 sene öncesine kadar &lt;/span&gt;&lt;span lang=TR&gt;bir umut kitapçılar&lt;/span&gt;&lt;span lang=EN&gt;a
"iyi bir kitap &lt;/span&gt;&lt;span lang=TR&gt;bulayım da gerek öğrenci arkadaşlarıma&lt;/span&gt;&lt;span lang=EN&gt; tavsiye
edeyim&lt;/span&gt;&lt;span lang=TR&gt; gerekse de kendim için başka bir meslektaşımın konulara
bakış açısından faydalanayım&lt;/span&gt;&lt;span lang=EN&gt;"&lt;/span&gt;&lt;span lang=TR&gt; mantığı ile &lt;/span&gt;&lt;span lang=EN&gt;ara
ara &lt;/span&gt;&lt;span lang=TR&gt;uğrardım. Ama malesef artık onu da yapmıyorum.&lt;/span&gt;&lt;span lang=EN&gt; Tabi
ki zaman içerisinde kaliteli ve özgün kitaplar da&lt;/span&gt;&lt;span lang=TR&gt; çıktı ve hala
bu kitapların 8&lt;/span&gt;&lt;span lang=EN&gt;., 9., 10. b&lt;/span&gt;&lt;span lang=TR&gt;askılarını &lt;/span&gt;&lt;span lang=EN&gt;görmekteyiz&lt;/span&gt;&lt;span lang=TR&gt;,
teşekkürlerimi sunarım bu yazarlarımıza&lt;/span&gt;&lt;span lang=EN&gt;.&lt;/span&gt;&lt;span lang=TR&gt; Ve
işin en üzücü yanı da bu gidişatın son 2 yıl içinde yine başa dönmesi.&lt;/span&gt;&lt;span lang=EN&gt; 
&lt;br&gt;
. &lt;/span&gt;&lt;span lang=TR&gt;Yani aktörlerin değişmesine rağmen senaryoların aynı kalması.&lt;/span&gt;&lt;span lang=EN&gt; Sonuç
; yine &lt;/span&gt;&lt;span lang=TR&gt;bilgiden yoksun, mantıkdan yoksun, kurulum v&lt;/span&gt;&lt;span lang=EN&gt;e
ekran görüntüleri resimleri ile &lt;/span&gt;&lt;span lang=TR&gt;yarısı dolmuş , tamamen saçma
ve anlamsız basit örneklerle dolu &lt;/span&gt;&lt;span lang=EN&gt;,&lt;/span&gt;&lt;span lang=TR&gt;fiyatı
gramajından ağır &lt;/span&gt;&lt;span lang=EN&gt;ve kendisini her konuda bilgili sanan &lt;/span&gt;&lt;span lang=TR&gt;yazdığı
içerikler iyi okunduğunda aslında konudan bihaber yazarların yazdığı kitaplar yine
vitrinleri süslemekte.İşin kötüsü de yine &lt;/span&gt;&lt;span lang=EN&gt;programl&lt;/span&gt;&lt;span lang=TR&gt;amaya
yeni başlayan arkadaşlarımızın elinde bu kitaplar dolanmakta.&lt;/span&gt;&lt;span lang=EN&gt; Bu
konu ile ilgili çevremde "&lt;/span&gt;&lt;span lang=TR&gt; ya bu kitapları onaylayan birileri
olsun, belirli bir kontrolden geçsin öyle yayınlansın&lt;/span&gt;&lt;span lang=EN&gt;" gibi yöntemler
duyuyorum. Peki bu kitap&lt;/span&gt;&lt;span lang=TR&gt;ları basanların işine &lt;/span&gt;&lt;span lang=EN&gt;gelmeyecektir.
Hatta iyi ya da kötü &lt;/span&gt;&lt;span lang=TR&gt;bir şekilde kitap basımı için &lt;/span&gt;&lt;span lang=EN&gt;"&lt;/span&gt;&lt;span lang=TR&gt;sevgili
yazarlarımız&lt;/span&gt;&lt;span lang=EN&gt;"&lt;/span&gt;&lt;span lang=TR&gt; teşvik bile ediliyor malesef.&gt;
&lt;/span&gt;&lt;span lang=EN&gt; 
&lt;p&gt;
Bahsi geçen 
&lt;/span&gt;&lt;span lang=TR&gt;yıllar&lt;/span&gt;&lt;span lang=EN&gt; &lt;/span&gt;&lt;span lang=TR&gt;ile günümüz
arasında oldukça farklar oluştu zaman içerisinde. Örneğin o zamanlarda kitap yazmak
kitabı olmak oldukça etkili bir işken şimdi isteyen istediği gibi kitap yazabil&lt;/span&gt;&lt;span lang=EN&gt;iyor.&lt;/span&gt;&lt;span lang=TR&gt;İşin
ilginç yanı kısa metrajlı filmler de yani makaleler de günümüzde kitaplar kadar rağbet
görebiliyor. Bilgiye erişim aracı olarak belki de artık günümüzde kitaplardan çok
makaleler kullanılıyor&lt;/span&gt;&lt;span lang=EN&gt; gibi. Kitaplardan daha&lt;/span&gt;&lt;span lang=TR&gt; kolay
bir şekilde &lt;/span&gt;&lt;span lang=EN&gt;ve ücertsiz olarak makalelere &lt;/span&gt;&lt;span lang=TR&gt;erişile&lt;/span&gt;&lt;span lang=EN&gt;bilmesi
bence korkutucu bir durum&lt;/span&gt;&lt;span lang=TR&gt; oluştu&lt;/span&gt;&lt;span lang=EN&gt;ruyor.Bu
kitaplarda ya da makalelerde &lt;/span&gt;&lt;span lang=TR&gt;anlaşılır eğitici örneklerin ve
yazıyı yazanın edindiği den&lt;/span&gt;&lt;span lang=EN&gt;eyimlerin oku&lt;/span&gt;&lt;span lang=TR&gt;yucuya
aktarılmasını geçtim doğru bilgi bulmak &lt;/span&gt;&lt;span lang=EN&gt;–&lt;/span&gt;&lt;span lang=TR&gt; artık
mesleğe ve konulara o kadar uzak ki &lt;/span&gt;&lt;span lang=EN&gt;"&lt;/span&gt;&lt;span lang=TR&gt;sevgili
yazarımız&lt;/span&gt;&lt;span lang=EN&gt;" ,&lt;/span&gt;&lt;span lang=TR&gt; yazı&lt;/span&gt;&lt;span lang=EN&gt; yazmak
için &lt;/span&gt;&lt;span lang=TR&gt;esinlendiği kaynakları okurken tam anlayamadığından olsa
gerek &lt;/span&gt;&lt;span lang=EN&gt;– bile &lt;/span&gt;&lt;span lang=TR&gt;oldukça zor artık. Yani bilgiye
erişimin kolaylaşması aslında doğru bilginin değil de kirli ve ne amaçla yazıldığı &lt;/span&gt;&lt;span lang=EN&gt;"belli
olmayan" –&lt;/span&gt;&lt;span lang=TR&gt; aslında bilen bilir ne amaçla yazıldığı da &lt;/span&gt;&lt;span lang=EN&gt;- &lt;/span&gt;&lt;span lang=TR&gt;yazıların
ya da kitapların &lt;/span&gt;&lt;span lang=EN&gt;"Türkçe içerik az! çok olsun!","&lt;/span&gt;&lt;span lang=TR&gt;Bilgi
paylaştıkça çoğalır&lt;/span&gt;&lt;span lang=EN&gt;!"&lt;/span&gt;&lt;span lang=TR&gt; naraları ile &lt;/span&gt;&lt;span lang=EN&gt;bilgi
çö&lt;/span&gt;&lt;span lang=TR&gt;plüğüne dönüş&lt;/span&gt;&lt;span lang=EN&gt;türül&lt;/span&gt;&lt;span lang=TR&gt;düğü
ve bu çöplükte programlamaya yeni başlayan arkadaşları düşündükçe&lt;/span&gt;&lt;span lang=EN&gt; &lt;/span&gt;&lt;span lang=TR&gt;kendimi
önceden içinde bulunduğum ortamı göz önüne alarak daha şanslı hissediyorum. En azından
etkileneceğim ya da yanlış şeyleri öğreneceğim kaynak kısıtlı iken şimdiki durum... &lt;/span&gt;&lt;span lang=EN&gt;Üzücü.Y&lt;/span&gt;&lt;span lang=TR&gt;azımın
başında da bahsettiğim gibi şu sıralar bu konular üzerine sohbetlerin sıklığının artmasının
bir açıklayıcı &lt;/span&gt;&lt;span lang=EN&gt;nedeni &lt;/span&gt;&lt;span lang=TR&gt;olduğunu umarım anlatabiliyorumdur.
Lütfen bu yazıdan sonra ya da şimdi &lt;/span&gt;&lt;span lang=EN&gt;&lt;a href="http://ileriseviye.org/arasayfa.php?inode=programmingtenyears.html"&gt;http://ileriseviye.org/arasayfa.php?inode=programmingtenyears.html&lt;/a&gt;&lt;/span&gt;&lt;span lang=TR&gt; linkindeki
yazıyı okuyunuz. Oldukça güzel ve insanın kafasında soru işaretleri oluşturacak bir
yazı.&gt;
&lt;/span&gt;&lt;span lang=EN&gt; 
&lt;p&gt;
Günümüzde k
&lt;/span&gt;&lt;span lang=TR&gt;işisel gelişim için ya da mesleki bilginin artması için yapılması
gereken bir eğitim kurumdan eğitim almak ya da seminerlere katılmak&lt;/span&gt;&lt;span lang=EN&gt; &lt;/span&gt;&lt;span lang=TR&gt;da
bir başka &lt;/span&gt;&lt;span lang=EN&gt;artarak tercih edilen yoldur. &lt;/span&gt;&lt;span lang=TR&gt;Eğitimdeki
amaç bilgili ve en önemlisi deneyimli birisinden &lt;/span&gt;&lt;span lang=EN&gt;programalama&lt;/span&gt;&lt;span lang=TR&gt; sanatını
öğrenmektir. Eğitimdeki geçiri&lt;/span&gt;&lt;span lang=EN&gt;len 100 dk içerisindeki edinimlerin
1000dk makale okumakla &lt;/span&gt;&lt;span lang=TR&gt;edinilemeyeceğini düşünüyorum. Çünkü eğitim
kurumundaki &lt;/span&gt;&lt;span lang=EN&gt;"&lt;/span&gt;&lt;span lang=TR&gt;eğitmen&lt;/span&gt;&lt;span lang=EN&gt;"
size deneyim&lt;/span&gt;&lt;span lang=TR&gt;lerini aktaracaktır. Sizin öğrenmek istediklerinizi
o çok uzun zaman önce öğrenmiş bunları kullanmış neyin nasıl olacağını çok iyi biliyordur.
Örneğin neden buton altına veritabanına bağla&lt;/span&gt;&lt;span lang=EN&gt;n&lt;/span&gt;&lt;span lang=TR&gt;tı
sağlayan kodların yazılmayacağını bunun ayrı bir katman olarak tasarlanması gerektiği &lt;/span&gt;&lt;span lang=EN&gt;vs
vs&lt;/span&gt;&lt;span lang=TR&gt;.... Çünkü eğitmen buton altına yazıldığında ilerde neler olabileceğini
proje büyüdükçe ne gibi sıkıntılar oluşturabileceği konusunda deneyim edinmiştir,
lütfen dikkat edin deneyim edinmiştir, yaşamıştır, görmüştür, sonuçları ile karşılaşmıştır&lt;/span&gt;&lt;span lang=EN&gt;.Bunlar
çok ama çok önemli edinimlerdir. &lt;/span&gt;&lt;span lang=TR&gt;Ve o eğitime gelenlerin sorularına
da daha önceden edindiği deneyimlerden yola çıkıp &lt;/span&gt;&lt;span lang=EN&gt;&lt;b&gt;"yorumlayarak" &lt;/b&gt;cevap
verebilecektir. &lt;/span&gt;&lt;span lang=TR&gt;Oysaki piyasadaki eğitim kurumlarını ve eğitmenleri
incelediğinizde durumun ne kadar vehamet vereceğini göreceksiniz. Eğitim artık ticari
bir meta olmuş olduğunu, eğitim içeriklerinin sadece belirli sınavları geçmeye yönelik
olduğunu, eğitim kurumlarının gelen talepleri değerlendirmek için eğitmen eksikliğine
rağmen eğitimi açmak için bir önceki sınıflarda öğrenci olanların eğitmen olarak sınıflara
sokulduğunu, yazılım ve proje deneyimi olmayanların eğitmen yapıldığını, hayatında
hiçbir şekilde eğitim verdiği konu ile ilgili proje deyimi yaşamamış - &lt;/span&gt;&lt;span lang=EN&gt;E
be adam sen de! Yeni &lt;/span&gt;&lt;span lang=TR&gt;işte hemen projede kullanıp deneyim mi edinmek
lazım diye sorarsanız şunu derim : daha önce deneyim sahibi ise bu yenliklerin amacını
algılayıp&lt;/span&gt;&lt;span lang=EN&gt; &lt;/span&gt;&lt;span lang=TR&gt;kısa sürede konuya hakim olabilir.
Oysaki her yenilik sanki çok büyük bir olaymış, sanki ilk defa keşfedilmiş gibi anlatılıp
yine kitleler yanlış yönlendirilmektedir.- olması dikkate alınmadan eğitim &lt;/span&gt;&lt;span lang=EN&gt;ceya
seminer vere&lt;/span&gt;&lt;span lang=TR&gt;bildiğini göreceksiniz.&lt;/span&gt;&lt;span lang=EN&gt; Malesef
üzülerek belirtmek isterim ki Türkiye’&lt;/span&gt;&lt;span lang=TR&gt;deki eğitim sektöründeki
eğ&lt;/span&gt;&lt;span lang=EN&gt;itmenler tam tersi bir durum &lt;/span&gt;&lt;span lang=TR&gt;içerisindedirler.
Hiçbir deneyime sahip değilken &lt;/span&gt;&lt;span lang=EN&gt;"&lt;/span&gt;&lt;span lang=TR&gt;eğitim ver&lt;/span&gt;&lt;span lang=EN&gt;eyim
deneyim sahibi olurum so&lt;/span&gt;&lt;span lang=TR&gt;nra da yazılım yapmaya başlarım&lt;/span&gt;&lt;span lang=EN&gt;"&lt;/span&gt;&lt;span lang=TR&gt; mantığı
içerisindedirler&lt;/span&gt;&lt;span lang=EN&gt; ya da yönlendirilmektedirler. &lt;/span&gt;&lt;span lang=TR&gt;Peki
bu durumda sizden eğitim almak için gelen katılımcıların emekleri, paraları ve daha
da önemlisi &lt;b&gt;zamanları &lt;/b&gt;&lt;/span&gt;&lt;span lang=EN&gt;ne olacak ? &lt;/span&gt;&lt;span lang=TR&gt;Bazı
ortamlarda &lt;/span&gt;&lt;span lang=EN&gt;ay&lt;/span&gt;&lt;span lang=TR&gt;ak üstü sohbetlerde anlaıyoruz
ki bu şekilde eğitim kazasına uğramış kitle hiç de küçümsenemeyecek &lt;/span&gt;&lt;span lang=EN&gt;kadar
büyüktür.&lt;/span&gt;&lt;span lang=TR&gt; Peki siz görmüyüyor musunuz çevrenizde birçok sertifika
sahibi ama proje yapmaya başlayınca eli&lt;/span&gt;&lt;span lang=EN&gt; aya&lt;/span&gt;&lt;span lang=TR&gt;ğına
karışan kişileri ? Bu kişiler &lt;/span&gt;&lt;span lang=EN&gt;nerden &lt;/span&gt;&lt;span lang=TR&gt;çıkıyor,
nasıl bu hale geliyor ? Umarım açıklayabilmişimdir.&lt;/span&gt;&lt;span lang=EN&gt; Herzaman
– kendi &lt;/span&gt;&lt;span lang=TR&gt;öğrencilerim de dahil olmak üzere &lt;/span&gt;&lt;span lang=EN&gt;–&lt;/span&gt;&lt;span lang=TR&gt; şunu &lt;/span&gt;&lt;span lang=EN&gt;söylerim;&lt;/span&gt;&lt;span lang=TR&gt; eğitim
kurumu, yeri , şartları, olanakları vs vs önemli değildir, yeter ki eğitmen deneyimli
ve bilgili olsun. &lt;/span&gt;&lt;span lang=EN&gt;Emin olabilirsiniz ki o &lt;/span&gt;&lt;span lang=TR&gt;eğitim
size düşünemeyeceğiniz kadar faydalı olacaktır.&gt;
&lt;/span&gt;&lt;span lang=EN&gt;&lt;/span&gt;&lt;span lang=TR&gt; 
&lt;p&gt;
Gelelim seminere!Seminer, ne kadar kolay değil mi? 
&lt;/span&gt;&lt;span lang=EN&gt;Birisi &lt;/span&gt;&lt;span lang=TR&gt;çıkar bir konu hakkında 1 bilemedin
2 saat konuşur, yeniliklerden bahseder. Tabi konular yenilik olduğu için biz de öyle
ağzımız açık dinleriz. Çünkü yeniliktir, sorulacak çokşey yoktur. Basit bir iş, ürün
tanıtımı. Ha ben bu olmasın demiyorum kesinlikle. Bu da olması gereken bir iş&lt;/span&gt;&lt;span lang=EN&gt;,
vizyon kazanmak için güzel bir imkan. Amma velakin, &lt;/span&gt;&lt;span lang=TR&gt;nereye kadar
be kardeşim! Sen o yenilikleri gördün ettin kullanmaya karar verdin, peki ya sonrası
? Aldın projede kullanacaksın, sağdan soldan bilgilere eriştin, peki o bilgilere biraz
dikkat ettiğimizde ne kadar yüzeysel olduğunu &lt;/span&gt;&lt;span lang=EN&gt;görüyor muyuz ? &lt;/span&gt;&lt;span lang=TR&gt;Onu
al sürükle bu var bunu da şuna koy, ordan hazırı var al onu...Yok artık! Bir süre
sonra bunları &lt;/span&gt;&lt;span lang=EN&gt;"bir bilene"&lt;/span&gt;&lt;span lang=TR&gt; sorma ihtıyacı
çekip bilenlerin kullanıcı grupları ile buluştuğu etkinliklere baktığınızda yeniliklerden
başka birşey görebiliyor musunuz ? Oysa&lt;/span&gt;&lt;span lang=EN&gt;ki seminerlerd&lt;/span&gt;&lt;span lang=TR&gt;en
biraz da olsun beklenen kullanılan teknoljilerin ve ürünleri gerçek hayat uygulamarında
kullanılırken yaşanan sorunlar ve bu sorunların aşımı üzerindeki edinilen deneyimlerin
paylaşılmasıdır. Ama malesef bu düzeyde seminerler gerçekleştirebilecek kişi sayısı
ne kadar az değil mi ? Çok uzatmadan bu konudaki beni üzen kısım bu yenilik anlatan&lt;/span&gt;&lt;span lang=EN&gt; deneyimsiz,
bir gecede&lt;/span&gt;&lt;span lang=TR&gt; slayt hazırlayıp insanların karşısına çıktıkdan sonra&lt;/span&gt;&lt;span lang=EN&gt; "sektörün
önde gidenleri", "&lt;/span&gt;&lt;span lang=TR&gt;her şeyi yalamış yumuş adam&lt;/span&gt;&lt;span lang=EN&gt;","adama&lt;/span&gt;&lt;span lang=TR&gt; bak
her şeyi biliyor&lt;/span&gt;&lt;span lang=EN&gt;"&lt;/span&gt;&lt;span lang=TR&gt; .... şeklindeki etiketlerle
insanları yanlış yönlendirmelerinden kaynaklanan sorunlardır. Inanın arkadaşlar siz
onlardan daha çok şey biliyorsunuz! &lt;/span&gt;&lt;span lang=EN&gt;Çünkü &lt;/span&gt;&lt;span lang=TR&gt;siz
onları kullanıyor, onlarla ürünler çıkarıyor neyin ne olduğunu çok daha iyi biliyorsunuz!&lt;/span&gt;&lt;span lang=EN&gt; &gt;
&lt;p&gt;
Sonuç olarak 
&lt;/span&gt;&lt;span lang=TR&gt;kötü bir nesil yetişmekte, bu nesli eğitecek kurum ve kuruluşlar
da&lt;/span&gt;&lt;span lang=EN&gt; dib&lt;/span&gt;&lt;span lang=TR&gt;e vurmuş durumda malesef. Benim yaşadığım
olayları bu işlere yeni başl&lt;/span&gt;&lt;span lang=EN&gt;ayanlar yada henü&lt;/span&gt;&lt;span lang=TR&gt;z
başında olanlar yaşamasın istiyorum! İş görüşmelerinde elinde setifikalarla gelip &lt;/span&gt;&lt;span lang=EN&gt;birka&lt;/span&gt;&lt;span lang=TR&gt;ç
soru sonrası &lt;/span&gt;&lt;span lang=EN&gt;temel özelliklere&lt;/span&gt;&lt;span lang=TR&gt; bile sahip
olamayan ve yüzü kızarark iş görüşmelerinden ayrılan arkadaşlarımız olmasın istiyorum.
Kral çıplak mı bilemiyorum ama şapkamızı lütfen önümüze koyalım ve yanlış yetişen
bir yazılımcı kitlemiz olmasın, olmaması için elimizden geleni yaplım, seçici olalım,
birşeylerin farkına varalım&lt;/span&gt;&lt;span lang=EN&gt;!. &gt;
&lt;/span&gt;&lt;img width="0" height="0" src="http://www.oguzyagmur.com/aggbug.ashx?id=651575ac-3df5-4b39-af91-9fd5e892828a" /&gt;</description>
      <comments>http://www.oguzyagmur.com/CommentView,guid,651575ac-3df5-4b39-af91-9fd5e892828a.aspx</comments>
      <category>Inceleme</category>
      <category>Internet</category>
      <category>Yasam</category>
    </item>
    <item>
      <trackback:ping>http://www.oguzyagmur.com/Trackback.aspx?guid=4f41b2a9-09b3-4508-970d-5286adc0fc4b</trackback:ping>
      <pingback:server>http://www.oguzyagmur.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.oguzyagmur.com/PermaLink,guid,4f41b2a9-09b3-4508-970d-5286adc0fc4b.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://www.oguzyagmur.com/CommentView,guid,4f41b2a9-09b3-4508-970d-5286adc0fc4b.aspx</wfw:comment>
      <wfw:commentRss>http://www.oguzyagmur.com/SyndicationService.asmx/GetEntryCommentsRss?guid=4f41b2a9-09b3-4508-970d-5286adc0fc4b</wfw:commentRss>
      <slash:comments>5</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://www.oguzyagmur.com/PermaLink,guid,e76d62b3-c243-4d75-9a50-09fef6819d1d.aspx">Şurda</a> duyurusunu
yaptığımız etkinlik gerçekleşti. Kendi adıma oldukça zevkli ve eğlenceli geçen (umarım
katlımcılar da aynı fikirdedir ;) ) güzel sorunların geldiği <strong>ASP.NET
Application Life Cycle ve Page Life Cycle</strong> konulu seminerimin slayt
ve örneklerini 
<br /><a href="http://www.oguzyagmur.com/content/binary/sunum.rar">sunum.rar (125.63 KB)</a> linkinden
indirebilirsiniz.
</p>
        <p>
Birbaşka etkinlikte görüşmek üzere.
</p>
        <a href="http://www.oguzyagmur.com/resimler/iph_seminer/DSC04412.jpg">
          <img src="http://www.oguzyagmur.com/content/binary/DSC04412_k.JPG" border="0" />
        </a>  <a href="http://www.oguzyagmur.com/resimler/iph_seminer/DSC04416.jpg"><img src="http://www.oguzyagmur.com/content/binary/DSC04416_k.jpg" border="0" /></a>  <a href="http://www.oguzyagmur.com/resimler/iph_seminer/DSC04421.jpg"><img src="http://www.oguzyagmur.com/content/binary/DSC04421_k.jpg" border="0" /></a><br /><br /><br /><a href="http://www.oguzyagmur.com/resimler/iph_seminer/DSC04426.jpg"><img src="http://www.oguzyagmur.com/content/binary/DSC04426_k.jpg" border="0" /></a>  <a href="http://www.oguzyagmur.com/resimler/iph_seminer/DSC04428.jpg"><img src="http://www.oguzyagmur.com/content/binary/DSC04428_k.jpg" border="0" /></a>  <a href="http://www.oguzyagmur.com/resimler/iph_seminer/DSC04441.jpg"><img src="http://www.oguzyagmur.com/content/binary/DSC04441_k.jpg" border="0" /></a><img width="0" height="0" src="http://www.oguzyagmur.com/aggbug.ashx?id=4f41b2a9-09b3-4508-970d-5286adc0fc4b" /></body>
      <title>Güzel Bir Etkinlik Daha Gerçekleşti</title>
      <guid isPermaLink="false">http://www.oguzyagmur.com/PermaLink,guid,4f41b2a9-09b3-4508-970d-5286adc0fc4b.aspx</guid>
      <link>http://www.oguzyagmur.com/PermaLink,guid,4f41b2a9-09b3-4508-970d-5286adc0fc4b.aspx</link>
      <pubDate>Mon, 26 Jan 2009 09:03:11 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://www.oguzyagmur.com/PermaLink,guid,e76d62b3-c243-4d75-9a50-09fef6819d1d.aspx"&gt;Şurda&lt;/a&gt; duyurusunu
yaptığımız etkinlik gerçekleşti. Kendi adıma oldukça zevkli ve eğlenceli geçen (umarım
katlımcılar da aynı fikirdedir&amp;nbsp;;)&amp;nbsp;) güzel sorunların geldiği &lt;strong&gt;ASP.NET
Application Life Cycle&amp;nbsp;ve Page Life Cycle&lt;/strong&gt; konulu&amp;nbsp;seminerimin slayt
ve örneklerini 
&lt;br&gt;
&lt;a href="http://www.oguzyagmur.com/content/binary/sunum.rar"&gt;sunum.rar (125.63 KB)&lt;/a&gt;&amp;nbsp;linkinden
indirebilirsiniz.
&lt;/p&gt;
&lt;p&gt;
Birbaşka etkinlikte görüşmek üzere.
&lt;/p&gt;
&lt;a href="http://www.oguzyagmur.com/resimler/iph_seminer/DSC04412.jpg"&gt;&lt;img src="http://www.oguzyagmur.com/content/binary/DSC04412_k.JPG" border=0&gt;&lt;/a&gt;&amp;nbsp; &lt;a href="http://www.oguzyagmur.com/resimler/iph_seminer/DSC04416.jpg"&gt;&lt;img src="http://www.oguzyagmur.com/content/binary/DSC04416_k.jpg" border=0&gt;&lt;/a&gt;&amp;nbsp; &lt;a href="http://www.oguzyagmur.com/resimler/iph_seminer/DSC04421.jpg"&gt;&lt;img src="http://www.oguzyagmur.com/content/binary/DSC04421_k.jpg" border=0&gt;&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;a href="http://www.oguzyagmur.com/resimler/iph_seminer/DSC04426.jpg"&gt;&lt;img src="http://www.oguzyagmur.com/content/binary/DSC04426_k.jpg" border=0&gt;&lt;/a&gt;&amp;nbsp; &lt;a href="http://www.oguzyagmur.com/resimler/iph_seminer/DSC04428.jpg"&gt;&lt;img src="http://www.oguzyagmur.com/content/binary/DSC04428_k.jpg" border=0&gt;&lt;/a&gt;&amp;nbsp; &lt;a href="http://www.oguzyagmur.com/resimler/iph_seminer/DSC04441.jpg"&gt;&lt;img src="http://www.oguzyagmur.com/content/binary/DSC04441_k.jpg" border=0&gt;&lt;/a&gt;&lt;img width="0" height="0" src="http://www.oguzyagmur.com/aggbug.ashx?id=4f41b2a9-09b3-4508-970d-5286adc0fc4b" /&gt;</description>
      <comments>http://www.oguzyagmur.com/CommentView,guid,4f41b2a9-09b3-4508-970d-5286adc0fc4b.aspx</comments>
      <category>.NET</category>
      <category>Asp.net</category>
      <category>Yasam</category>
    </item>
    <item>
      <trackback:ping>http://www.oguzyagmur.com/Trackback.aspx?guid=3b1a784a-e560-4eaf-80ab-f5b715bd60cd</trackback:ping>
      <pingback:server>http://www.oguzyagmur.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.oguzyagmur.com/PermaLink,guid,3b1a784a-e560-4eaf-80ab-f5b715bd60cd.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://www.oguzyagmur.com/CommentView,guid,3b1a784a-e560-4eaf-80ab-f5b715bd60cd.aspx</wfw:comment>
      <wfw:commentRss>http://www.oguzyagmur.com/SyndicationService.asmx/GetEntryCommentsRss?guid=3b1a784a-e560-4eaf-80ab-f5b715bd60cd</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <table>
          <tbody>
            <tr>
              <td>
                <img style="WIDTH: 129px; HEIGHT: 172px" height="164" src="http://www.oguzyagmur.com/content/binary/dalis.jpg" width="138" border="0" />
              </td>
              <td>
                <p>
                  <font size="2">
                  </font> 
</p>
                <p>
                  <font size="2">
                    <br />
Havuza dalmak için atlamadan önce derin bir nefes alınır ve uzun bir dalmadan sonra
kafa suyun üstüne çıkarıldığında alınan o derin nefesin kıymetini dalanlardan iyi
bilen olamaz. Ve ilk suyun yüzüne çıkıp arkaya bakıldığında alınan mesafenin çokluğu
oldukça sevindiricidir.</font>
                </p>
                <p>
                  <font size="2">Sevgili dnabahar sınıfı; umarım aldığınız mesafe sizleri beklediğiniz
noktalara erişmenizi sağlamıştır. Bu dalma zamanında edinilen deneyimlerin sonraki
dalmalarınızda size kolaylıklar sağlamasını dilerim</font>. 
</p>
                <p>
                  <em>
                    <font size="2">Not : Bana henüz " hocam son ders 100 tane şey göndereceğinizi
söylediniz ama hala elimizde bişi yok! " konulu mail gelmediği için tembellik yaptığımı
burdan halka arz ederim:)</font>
                  </em>
                </p>
                <p>
 
</p>
                <p>
 
</p>
              </td>
            </tr>
          </tbody>
        </table>
        <table>
          <tbody>
            <tr>
              <td>
                <a href="http://www.oguzyagmur.com/resimler/dnabahar/DSC04401.jpg">
                  <img src="http://www.oguzyagmur.com/resimler/dnabahar/DSC04401_k.jpg" />
                </a>
              </td>
              <td>
                <a href="http://www.oguzyagmur.com/resimler/dnabahar/DSC04391.jpg">
                  <img src="http://www.oguzyagmur.com/resimler/dnabahar/DSC04391_k.jpg" />
                </a>
              </td>
            </tr>
            <tr>
              <td>
                <a href="http://www.oguzyagmur.com/resimler/dnabahar/DSC04392.jpg">
                  <img src="http://www.oguzyagmur.com/resimler/dnabahar/DSC04392_k.jpg" />
                </a>
              </td>
              <td>
                <a href="http://www.oguzyagmur.com/resimler/dnabahar/DSC04398.jpg">
                  <img src="http://www.oguzyagmur.com/resimler/dnabahar/DSC04398_k.jpg" />
                </a>
              </td>
            </tr>
          </tbody>
        </table>
        <p>
          <em>
          </em> 
</p>
        <img width="0" height="0" src="http://www.oguzyagmur.com/aggbug.ashx?id=3b1a784a-e560-4eaf-80ab-f5b715bd60cd" />
      </body>
      <title>Nesefleri Bıraktık</title>
      <guid isPermaLink="false">http://www.oguzyagmur.com/PermaLink,guid,3b1a784a-e560-4eaf-80ab-f5b715bd60cd.aspx</guid>
      <link>http://www.oguzyagmur.com/PermaLink,guid,3b1a784a-e560-4eaf-80ab-f5b715bd60cd.aspx</link>
      <pubDate>Wed, 21 Jan 2009 08:00:38 GMT</pubDate>
      <description>&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;img style="WIDTH: 129px; HEIGHT: 172px" height=164 src="http://www.oguzyagmur.com/content/binary/dalis.jpg" width=138 border=0&gt;&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;
&lt;font size=2&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;font size=2&gt;
&lt;br&gt;
Havuza dalmak için atlamadan önce derin bir nefes alınır ve uzun bir dalmadan sonra
kafa suyun üstüne çıkarıldığında alınan o derin nefesin kıymetini dalanlardan iyi
bilen olamaz. Ve ilk suyun yüzüne çıkıp arkaya bakıldığında alınan mesafenin çokluğu
oldukça sevindiricidir.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font size=2&gt;Sevgili dnabahar sınıfı; umarım aldığınız mesafe sizleri beklediğiniz
noktalara erişmenizi sağlamıştır. Bu dalma zamanında edinilen deneyimlerin sonraki
dalmalarınızda size kolaylıklar sağlamasını dilerim&lt;/font&gt;. 
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;&lt;font size=2&gt;Not : Bana henüz " hocam son ders 100 tane şey göndereceğinizi söylediniz
ama hala elimizde bişi yok! " konulu mail gelmediği için tembellik yaptığımı burdan
halka arz ederim:)&lt;/font&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;a href="http://www.oguzyagmur.com/resimler/dnabahar/DSC04401.jpg"&gt;&lt;img src="http://www.oguzyagmur.com/resimler/dnabahar/DSC04401_k.jpg"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;
&lt;a href="http://www.oguzyagmur.com/resimler/dnabahar/DSC04391.jpg"&gt;&lt;img src="http://www.oguzyagmur.com/resimler/dnabahar/DSC04391_k.jpg"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;a href="http://www.oguzyagmur.com/resimler/dnabahar/DSC04392.jpg"&gt;&lt;img src="http://www.oguzyagmur.com/resimler/dnabahar/DSC04392_k.jpg"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;
&lt;a href="http://www.oguzyagmur.com/resimler/dnabahar/DSC04398.jpg"&gt;&lt;img src="http://www.oguzyagmur.com/resimler/dnabahar/DSC04398_k.jpg"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;
&lt;em&gt;&lt;/em&gt;&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.oguzyagmur.com/aggbug.ashx?id=3b1a784a-e560-4eaf-80ab-f5b715bd60cd" /&gt;</description>
      <comments>http://www.oguzyagmur.com/CommentView,guid,3b1a784a-e560-4eaf-80ab-f5b715bd60cd.aspx</comments>
      <category>.NET</category>
      <category>Yasam</category>
    </item>
    <item>
      <trackback:ping>http://www.oguzyagmur.com/Trackback.aspx?guid=c9cb8fe0-55bf-4940-8057-2414bf4722fd</trackback:ping>
      <pingback:server>http://www.oguzyagmur.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.oguzyagmur.com/PermaLink,guid,c9cb8fe0-55bf-4940-8057-2414bf4722fd.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://www.oguzyagmur.com/CommentView,guid,c9cb8fe0-55bf-4940-8057-2414bf4722fd.aspx</wfw:comment>
      <wfw:commentRss>http://www.oguzyagmur.com/SyndicationService.asmx/GetEntryCommentsRss?guid=c9cb8fe0-55bf-4940-8057-2414bf4722fd</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Zaman içerisinde oldukça fazla gelişim gösteren .NET Framework irili ufaklı birçok
problem için hazır altyapılar sağlayarak gerek zaman kazandırması gerekse de test
edilmiş kodların kullanılması sonucunda hata oranının azalması sonucunda kolay bir
şekilde uygulama geliştirilmesini sağlamaktadır. Şu günlerde bile hızla genişleyen
bu altyapı habersiz birçok yeni özellikler kazanmakta biz geliştiriciler de elimizden
geldiği kadarı ile bunları takip ederek belki yazdığımız kodları güncelleriz ( çalışıyorsa
dokunmamak mı lazım yoksa :)) ) ya da bundan sonraki yazılan kodlarda bu yenilikleri
kullanmaya özen gösteririrz. Ama sanki ipin ucu kaçıyor gibi. .NET 3.5 ile gelen yenilikleri
incelemek için biraz zaman ayırdığımda ilk karşıma çıkan yeniliklerden birisi de (System.Collections.Generic
isim alanı içerisinde) <a href="http://msdn.microsoft.com/en-us/library/bb359438.aspx">HashSet&lt;T&gt;</a> isimli
generic bir kolleksiyonun List&lt;T&gt;'e alternatif olarak framework'ün içerisinde
yer alması idi.<br /></p>
        <p>
          <img src="http://www.oguzyagmur.com/content/binary/old_new.jpg" border="0" />
        </p>
        <p>
          <br />
Tabi isminde geçen Hash kelimesinden de anlayabileceğimiz gibi bu kolleksiyon içinde
tutulan verilere erişme yöntemi oldukça hızlı. Ama msdn den bu sınıfın detay bilgileri
incelendiğinde List&lt;T&gt;'e göre oldukça değişik bir kullanımı olduğunu görüyoruz.
Ilk göze çarpan önemli bir özellik HashSet&lt;T&gt;'in aynı veriyi ikinci defa kolleksiyon
içerisine koymaması. Örneğin ;
</p>
        <font size="2">
          <p>
          </p>
        </font>
        <font color="#2b91af" size="2">
          <font color="#2b91af" size="2">HashSet</font>
        </font>
        <font size="2">&lt;</font>
        <font color="#0000ff" size="2">
          <font color="#0000ff" size="2">int</font>
        </font>
        <font size="2">&gt;
h = </font>
        <font color="#0000ff" size="2">
          <font color="#0000ff" size="2">new</font>
        </font>
        <font size="2">
        </font>
        <font color="#2b91af" size="2">
          <font color="#2b91af" size="2">HashSet</font>
        </font>
        <font size="2">&lt;</font>
        <font color="#0000ff" size="2">
          <font color="#0000ff" size="2">int</font>
        </font>
        <font size="2">&gt;();<br />
h.Add(7);<br />
h.Add(11);<br />
h.Add(7);
<p></p></font>
        <font color="#2b91af" size="2">
          <font color="#2b91af" size="2">Console</font>
        </font>
        <font size="2">.WriteLine(h.Count); <em><font color="#008000">//
nesenin içerdiği eleman sayısı ekrana yazılmak istendiğinde 2 değeri yazacaktır.</font></em></font>
        <p>
şeklinde bir kod ile veriler eklenmeye çalışıldığında 7 değeri ikinci kez eklenmek
istendiğinde aslında bu işlem yapılmayacaktır. Add metodunun geri dönüş değerine dikkat
edersek bool türünden bir değer döndüğünü bundan da eklenmek işleminin başarılı olup
olmadığını rahatlıkla anlayabiliyoruz. Eğer eklemek istediğimiz verilerin birbirinden
farklı olduğuna eminsek bu kolleksiyonu kullanabiliriz. Peki bu kolleksiyonun bize
faydası ne olacak ? Tabi ki verilere erişme hızımızda oldukça çok hız kazandıracaktır.
Silme (Remove) ve Arama (Contains) işlemlerinde List&lt;T&gt;<br />
O(n) karmaşıklığı gösterirken HashSet&lt;T&gt; O(1) <a href="http://en.wikipedia.org/wiki/Algorithm_analysis#Orders_of_growth">karmaşıklığı </a>göstereceğinden
hız oldukça artacaktır.
</p>
        <p>
 
</p>
        <img width="0" height="0" src="http://www.oguzyagmur.com/aggbug.ashx?id=c9cb8fe0-55bf-4940-8057-2414bf4722fd" />
      </body>
      <title>HashSet&amp;lt;T&amp;gt; Hakkında</title>
      <guid isPermaLink="false">http://www.oguzyagmur.com/PermaLink,guid,c9cb8fe0-55bf-4940-8057-2414bf4722fd.aspx</guid>
      <link>http://www.oguzyagmur.com/PermaLink,guid,c9cb8fe0-55bf-4940-8057-2414bf4722fd.aspx</link>
      <pubDate>Wed, 21 Jan 2009 00:26:55 GMT</pubDate>
      <description>&lt;p&gt;
Zaman içerisinde oldukça fazla gelişim gösteren .NET Framework irili ufaklı birçok
problem için hazır altyapılar sağlayarak gerek zaman kazandırması gerekse de test
edilmiş kodların kullanılması sonucunda hata oranının azalması sonucunda kolay bir
şekilde uygulama geliştirilmesini sağlamaktadır. Şu günlerde bile hızla genişleyen
bu altyapı habersiz birçok yeni özellikler kazanmakta biz geliştiriciler de elimizden
geldiği kadarı ile bunları takip ederek belki yazdığımız kodları güncelleriz ( çalışıyorsa
dokunmamak mı lazım yoksa :)) ) ya da bundan sonraki yazılan kodlarda bu yenilikleri
kullanmaya özen gösteririrz. Ama sanki ipin ucu kaçıyor gibi. .NET 3.5 ile gelen yenilikleri
incelemek için biraz zaman ayırdığımda ilk karşıma çıkan yeniliklerden birisi de (System.Collections.Generic
isim alanı içerisinde) &lt;a href="http://msdn.microsoft.com/en-us/library/bb359438.aspx"&gt;HashSet&amp;lt;T&amp;gt;&lt;/a&gt; isimli
generic bir kolleksiyonun List&amp;lt;T&amp;gt;'e alternatif olarak framework'ün içerisinde
yer alması idi.&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.oguzyagmur.com/content/binary/old_new.jpg" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;br&gt;
Tabi isminde geçen Hash kelimesinden de anlayabileceğimiz gibi bu kolleksiyon içinde
tutulan verilere erişme yöntemi oldukça hızlı. Ama msdn den bu sınıfın detay bilgileri
incelendiğinde List&amp;lt;T&amp;gt;'e göre oldukça değişik bir kullanımı olduğunu görüyoruz.
Ilk göze çarpan önemli bir özellik HashSet&amp;lt;T&amp;gt;'in aynı veriyi ikinci defa kolleksiyon
içerisine koymaması. Örneğin ;
&lt;/p&gt;
&lt;font size=2&gt; 
&lt;p&gt;
&lt;/font&gt;&lt;font color=#2b91af size=2&gt;&lt;font color=#2b91af size=2&gt;HashSet&lt;/font&gt;&lt;/font&gt;&lt;font size=2&gt;&amp;lt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&lt;font color=#0000ff size=2&gt;int&lt;/font&gt;&lt;/font&gt;&lt;font size=2&gt;&amp;gt;
h = &lt;/font&gt;&lt;font color=#0000ff size=2&gt;&lt;font color=#0000ff size=2&gt;new&lt;/font&gt;&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#2b91af size=2&gt;&lt;font color=#2b91af size=2&gt;HashSet&lt;/font&gt;&lt;/font&gt;&lt;font size=2&gt;&amp;lt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&lt;font color=#0000ff size=2&gt;int&lt;/font&gt;&lt;/font&gt;&lt;font size=2&gt;&amp;gt;();&lt;br&gt;
h.Add(7);&lt;br&gt;
h.Add(11);&lt;br&gt;
h.Add(7);&gt;
&lt;p&gt;
&lt;/font&gt;&lt;font color=#2b91af size=2&gt;&lt;font color=#2b91af size=2&gt;Console&lt;/font&gt;&lt;/font&gt;&lt;font size=2&gt;.WriteLine(h.Count); &lt;em&gt;&lt;font color=#008000&gt;//
nesenin içerdiği eleman sayısı ekrana yazılmak istendiğinde 2 değeri yazacaktır.&lt;/font&gt;&lt;/em&gt;&gt;
&lt;/font&gt; 
&lt;p&gt;
şeklinde bir kod ile veriler eklenmeye çalışıldığında 7 değeri ikinci kez eklenmek
istendiğinde aslında bu işlem yapılmayacaktır.&amp;nbsp;Add metodunun geri dönüş&amp;nbsp;değerine&amp;nbsp;dikkat
edersek bool türünden bir değer döndüğünü bundan da eklenmek işleminin başarılı olup
olmadığını rahatlıkla anlayabiliyoruz.&amp;nbsp;Eğer eklemek istediğimiz verilerin birbirinden
farklı olduğuna eminsek bu kolleksiyonu kullanabiliriz. Peki bu kolleksiyonun bize
faydası ne olacak ? Tabi ki verilere erişme hızımızda oldukça çok hız kazandıracaktır.
Silme (Remove) ve Arama (Contains) işlemlerinde List&amp;lt;T&amp;gt;&lt;br&gt;
O(n) karmaşıklığı gösterirken HashSet&amp;lt;T&amp;gt; O(1) &lt;a href="http://en.wikipedia.org/wiki/Algorithm_analysis#Orders_of_growth"&gt;karmaşıklığı &lt;/a&gt;göstereceğinden
hız oldukça artacaktır.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.oguzyagmur.com/aggbug.ashx?id=c9cb8fe0-55bf-4940-8057-2414bf4722fd" /&gt;</description>
      <comments>http://www.oguzyagmur.com/CommentView,guid,c9cb8fe0-55bf-4940-8057-2414bf4722fd.aspx</comments>
    </item>
    <item>
      <trackback:ping>http://www.oguzyagmur.com/Trackback.aspx?guid=21dd7234-22d0-4303-8204-e08affa7cacb</trackback:ping>
      <pingback:server>http://www.oguzyagmur.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.oguzyagmur.com/PermaLink,guid,21dd7234-22d0-4303-8204-e08affa7cacb.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://www.oguzyagmur.com/CommentView,guid,21dd7234-22d0-4303-8204-e08affa7cacb.aspx</wfw:comment>
      <wfw:commentRss>http://www.oguzyagmur.com/SyndicationService.asmx/GetEntryCommentsRss?guid=21dd7234-22d0-4303-8204-e08affa7cacb</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
.NET ya da başka diğer geliştirme ortamlarında kullandığımız diller gerek ihtiyaçlardan
gerek diğer dillerdeki gelişmelerden etkilenerek zaman içerisinde ya radikal değişikliklere
ya da geliştiricinin daha kolay bir şekilde kod yazabilmesi için eklentilerle gelişme
sürecini yaşarlar. 70 lerde geliştirilen C bile zaman içerisinde gelişim gösterebilmekte
ve yanılmıyorsam en son 99 standartları ile de eklentiler yapılmıştır. C# kullanarak
uygulama geliştiren programcılar 8 9 yıllık süreçte c# dilinin 1.0 ,1.1, 2.0 ve 3.0
sürümlerini kullanmışlardır. Bu yazıyı okuyanlardan birisi hala 1.1 veya 1.0 ile uygulama
geliştiriyorsa nedenlerini bizimle paylaşırlarsa sevinirim. Acaba neden hala 2.0 ve
üstü bir sürümü ile kodlama yapmıyorlar.
</p>
        <p>
Gerek eğitim ve seminerlerde gerek dost sohbetlerinde bu yeniliklerin programcı tarafından
kolay bir şekilde kabullenilemediğini görmekteyim .Oysaki bu yeniliklerin bir
çoğu programıcının kolay bir şekilde kodlama yapabilmesi (mesela generics) ya da dilin
imkanları ile kodlama yapıldığında yaşanan sorunların (örneğin nullable tipler ) aşılması
için dile kazandırılmıştır. Oysa ilk gelen cevap " ben bu yenilik olmadan da ben zaten
yapabiliyordum, ne gerek var ki bu yenilikleri öğrenmek için harcadığım performansa
ya da zamana" şeklindedir. Tamamen karşı olduğumu belirterek bir örnek üzerinden açıklamaya
çalışacağım.
</p>
        <p>
Azçok haberimiz vardır c# 3.0 ile birlikte gelen Lambda ifadelerinden. Çok zor anlaşılan
ve kullanılmak istenmeyen kullanma ihtiyacını bile düşünmek istemeyen (mesela bir
düşünün) birçok meslektalım  olduğuna eminim ;) Oysaki uyuglama geliştirirken
yerinde kullanıldığında mükemmel derecede temiz ve anlamlı kodlama yapılabiliyor. 
<br />
Şimdi c# dili ile farklı yollardan çok basit bir şekilde generic List&lt;T&gt;
nesnesinin belirtilen şekilde taşıdığı değerleri filitrelemeye çalışalım.(sıfırdan
büyük olan sayıları bulsun)
</p>
        <p>
Ilk akla gelen foreach ile listeyi dönerek filitrelemek olacaktır.
</p>
        <font color="#0000ff" size="2">
          <font color="#0000ff" size="2">
            <table>
              <tbody>
                <tr>
                  <td>
private<font color="#000000" size="2"></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">static</font></font><font color="#000000" size="2"></font><font color="#2b91af" size="2"><font color="#2b91af" size="2">List</font></font><font color="#000000" size="2">&lt;</font><font color="#0000ff" size="2"><font color="#0000ff" size="2">int</font></font><font color="#000000" size="2">&gt;
Filitrele(</font><font color="#2b91af" size="2"><font color="#2b91af" size="2">List</font></font><font color="#000000" size="2">&lt;</font><font color="#0000ff" size="2"><font color="#0000ff" size="2">int</font></font><font color="#000000" size="2">&gt;
liste)<br />
{<br />
    </font><font color="#2b91af" size="2"><font color="#2b91af" size="2">List</font></font><font color="#000000" size="2">&lt;</font><font color="#0000ff" size="2"><font color="#0000ff" size="2">int</font></font><font color="#000000" size="2">&gt;
_temp = </font><font color="#0000ff" size="2"><font color="#0000ff" size="2">new</font></font><font color="#000000" size="2"></font><font color="#2b91af" size="2"><font color="#2b91af" size="2">List</font></font><font color="#000000" size="2">&lt;</font><font color="#0000ff" size="2"><font color="#0000ff" size="2">int</font></font><font color="#000000" size="2">&gt;();<br />
    </font><font color="#0000ff" size="2"><font color="#0000ff" size="2">foreach</font></font><font color="#000000" size="2"> (</font><font color="#0000ff" size="2"><font color="#0000ff" size="2">int</font></font><font color="#000000" size="2"> sayi </font><font color="#0000ff" size="2"><font color="#0000ff" size="2">in</font></font><font color="#000000" size="2"> liste)<br />
    {<br />
         </font><font color="#0000ff" size="2"><font color="#0000ff" size="2">if</font></font><font color="#000000" size="2"> (sayi
&gt; 0)<br />
             _temp.Add(sayi);<br />
    }<br />
    </font><font color="#0000ff" size="2"><font color="#0000ff" size="2">return</font></font><font color="#000000" size="2"> _temp;<br />
}</font></td>
                  <td>
                    <img src="http://www.oguzyagmur.com/content/binary/HulkPromoArt.jpg" border="0" />
                  </td>
                </tr>
              </tbody>
            </table>
            <p>
            </p>
          </font>
        </font>
        <font size="2">Oysaki çok daha kısa ve anlaşılır olan .net framework'ün
de nimetlerinden faydalanarak aynı işi yapabileceğimiz yöntem aşağıdaki gibi olabilir.<br />
Bu örnekte C# 2.0'ın getirdiği anonymous metodlardan da faydalanılmıştır.<br /><br /></font>
        <font size="2">
          <font size="2">
            <table>
              <tbody>
                <tr>
                  <td>
                    <font color="#0000ff">private</font>
                    <font size="2">
                    </font>
                    <font color="#0000ff" size="2">
                      <font color="#0000ff" size="2">static</font>
                    </font>
                    <font size="2">
                    </font>
                    <font color="#2b91af" size="2">
                      <font color="#2b91af" size="2">List</font>
                    </font>
                    <font size="2">&lt;</font>
                    <font color="#0000ff" size="2">
                      <font color="#0000ff" size="2">int</font>
                    </font>
                    <font size="2">&gt;
Filitrele(</font>
                    <font color="#2b91af" size="2">
                      <font color="#2b91af" size="2">List</font>
                    </font>
                    <font size="2">&lt;</font>
                    <font color="#0000ff" size="2">
                      <font color="#0000ff" size="2">int</font>
                    </font>
                    <font size="2">&gt;
liste)<br />
{<br />
   </font>
                    <font color="#0000ff" size="2">
                      <font color="#0000ff" size="2">return</font>
                    </font>
                    <font size="2"> liste.FindAll(</font>
                    <font color="#0000ff" size="2">
                      <font color="#0000ff" size="2">delegate</font>
                    </font>
                    <font size="2">(</font>
                    <font color="#0000ff" size="2">
                      <font color="#0000ff" size="2">int</font>
                    </font>
                    <font size="2"> sayi)<br />
   {<br />
       </font>
                    <font color="#0000ff" size="2">
                      <font color="#0000ff" size="2">return</font>
                    </font>
                    <font size="2"> sayi
&gt; 0;<br />
   }<br />
   );<br />
} </font>
                  </td>
                  <td>
                    <img src="http://www.oguzyagmur.com/content/binary/Spiderman3.jpg" border="0" />
                  </td>
                </tr>
              </tbody>
            </table>
            <br />
            <br />
Peki bundan daha temiz ve anlaşılır bir kod yazabilir miyiz ? Eğer lambda ifadeleri
ile uğraşmış isek sorunun cevabı oldukça basittir " Tabi ki evet!" 
<table><tbody><tr><td><font color="#0000ff">private</font><font size="2"></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">static</font></font><font size="2"></font><font color="#2b91af" size="2"><font color="#2b91af" size="2">List</font></font><font size="2">&lt;</font><font color="#0000ff" size="2"><font color="#0000ff" size="2">int</font></font><font size="2">&gt;
Filitrele(</font><font color="#2b91af" size="2"><font color="#2b91af" size="2">List</font></font><font size="2">&lt;</font><font color="#0000ff" size="2"><font color="#0000ff" size="2">int</font></font><font size="2">&gt;
liste)<br />
{<br />
    </font><font color="#0000ff" size="2"><font color="#0000ff" size="2">return</font></font><font size="2"> liste.FindAll(sayi
=&gt; sayi &gt; 0);<br />
}</font></td><td><img src="http://www.oguzyagmur.com/content/binary/superman.jpg" border="0" /></td></tr></tbody></table><br /></font>
        </font>
        <p>
          <font size="2">Bu örnekle anlatmak istediğim aslında kullanılan dilin yeniliklerini
kullanmadan da sorunlara çözüm bulunabilineceği gibi gelen yenilikleri öğrenerek aslında
daha az zaman alıcı ve temiz kodlar yazabileceğimizi, bu nedenle öncelikle gelen bu
yeniliklerin ne işe yaradığını ne amaçla dile eklendiğini ve bu özellik olmadan yaşanan
zorluklar ya da sorunların neler olduğunu iyice kavramak gerektiğini düşünüyorum.
Yoksa kullanması zaten kolay! ;)</font>
        </p>
        <p>
          <font size="2">C# 4.0 'ın resmi olarak yayınlanmasından sonra bu konu hakkında tekrar
konuşalım.
</font>
        </p>
        <img width="0" height="0" src="http://www.oguzyagmur.com/aggbug.ashx?id=21dd7234-22d0-4303-8204-e08affa7cacb" />
      </body>
      <title>Dil yenilikleri ve Faydaları</title>
      <guid isPermaLink="false">http://www.oguzyagmur.com/PermaLink,guid,21dd7234-22d0-4303-8204-e08affa7cacb.aspx</guid>
      <link>http://www.oguzyagmur.com/PermaLink,guid,21dd7234-22d0-4303-8204-e08affa7cacb.aspx</link>
      <pubDate>Tue, 20 Jan 2009 23:23:55 GMT</pubDate>
      <description>&lt;p&gt;
.NET ya da başka diğer geliştirme ortamlarında kullandığımız diller gerek ihtiyaçlardan
gerek diğer dillerdeki gelişmelerden etkilenerek zaman içerisinde ya radikal değişikliklere
ya da geliştiricinin daha kolay bir şekilde kod yazabilmesi için eklentilerle gelişme
sürecini yaşarlar. 70 lerde geliştirilen C bile zaman içerisinde gelişim gösterebilmekte
ve yanılmıyorsam en son 99 standartları ile de eklentiler yapılmıştır. C# kullanarak
uygulama geliştiren programcılar 8 9 yıllık süreçte c# dilinin 1.0 ,1.1, 2.0 ve 3.0
sürümlerini kullanmışlardır. Bu yazıyı okuyanlardan birisi hala 1.1 veya 1.0 ile uygulama
geliştiriyorsa nedenlerini bizimle paylaşırlarsa sevinirim. Acaba neden hala 2.0 ve
üstü bir sürümü ile kodlama yapmıyorlar.
&lt;/p&gt;
&lt;p&gt;
Gerek eğitim ve seminerlerde gerek dost sohbetlerinde bu yeniliklerin programcı tarafından
kolay bir şekilde kabullenilemediğini&amp;nbsp;görmekteyim .Oysaki bu yeniliklerin bir
çoğu programıcının kolay bir şekilde kodlama yapabilmesi (mesela generics) ya da dilin
imkanları ile kodlama yapıldığında yaşanan sorunların (örneğin nullable tipler ) aşılması
için dile kazandırılmıştır. Oysa ilk gelen cevap " ben bu yenilik olmadan da ben zaten
yapabiliyordum, ne gerek var ki bu yenilikleri öğrenmek için harcadığım performansa
ya da zamana" şeklindedir. Tamamen karşı olduğumu belirterek bir örnek üzerinden açıklamaya
çalışacağım.
&lt;/p&gt;
&lt;p&gt;
Azçok haberimiz vardır c# 3.0 ile birlikte gelen Lambda ifadelerinden. Çok zor anlaşılan
ve kullanılmak istenmeyen kullanma ihtiyacını bile düşünmek istemeyen (mesela bir
düşünün) birçok meslektalım &amp;nbsp;olduğuna eminim ;) Oysaki uyuglama geliştirirken
yerinde kullanıldığında mükemmel derecede temiz ve anlamlı kodlama yapılabiliyor. 
&lt;br&gt;
Şimdi&amp;nbsp;c# dili ile farklı yollardan&amp;nbsp;çok basit bir şekilde generic List&amp;lt;T&amp;gt;
nesnesinin belirtilen şekilde taşıdığı değerleri filitrelemeye çalışalım.(sıfırdan
büyük olan sayıları bulsun)
&lt;/p&gt;
&lt;p&gt;
Ilk akla gelen foreach ile listeyi dönerek filitrelemek olacaktır.
&lt;/p&gt;
&lt;font color=#0000ff size=2&gt;&lt;font color=#0000ff size=2&gt; 
&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
private&lt;font color=#000000 size=2&gt; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;&lt;font color=#0000ff size=2&gt;static&lt;/font&gt;&lt;/font&gt;&lt;font color=#000000 size=2&gt; &lt;/font&gt;&lt;font color=#2b91af size=2&gt;&lt;font color=#2b91af size=2&gt;List&lt;/font&gt;&lt;/font&gt;&lt;font color=#000000 size=2&gt;&amp;lt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&lt;font color=#0000ff size=2&gt;int&lt;/font&gt;&lt;/font&gt;&lt;font color=#000000 size=2&gt;&amp;gt;
Filitrele(&lt;/font&gt;&lt;font color=#2b91af size=2&gt;&lt;font color=#2b91af size=2&gt;List&lt;/font&gt;&lt;/font&gt;&lt;font color=#000000 size=2&gt;&amp;lt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&lt;font color=#0000ff size=2&gt;int&lt;/font&gt;&lt;/font&gt;&lt;font color=#000000 size=2&gt;&amp;gt;
liste)&lt;br&gt;
{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color=#2b91af size=2&gt;&lt;font color=#2b91af size=2&gt;List&lt;/font&gt;&lt;/font&gt;&lt;font color=#000000 size=2&gt;&amp;lt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&lt;font color=#0000ff size=2&gt;int&lt;/font&gt;&lt;/font&gt;&lt;font color=#000000 size=2&gt;&amp;gt;
_temp = &lt;/font&gt;&lt;font color=#0000ff size=2&gt;&lt;font color=#0000ff size=2&gt;new&lt;/font&gt;&lt;/font&gt;&lt;font color=#000000 size=2&gt; &lt;/font&gt;&lt;font color=#2b91af size=2&gt;&lt;font color=#2b91af size=2&gt;List&lt;/font&gt;&lt;/font&gt;&lt;font color=#000000 size=2&gt;&amp;lt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&lt;font color=#0000ff size=2&gt;int&lt;/font&gt;&lt;/font&gt;&lt;font color=#000000 size=2&gt;&amp;gt;();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;&lt;font color=#0000ff size=2&gt;foreach&lt;/font&gt;&lt;/font&gt;&lt;font color=#000000 size=2&gt; (&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&lt;font color=#0000ff size=2&gt;int&lt;/font&gt;&lt;/font&gt;&lt;font color=#000000 size=2&gt; sayi &lt;/font&gt;&lt;font color=#0000ff size=2&gt;&lt;font color=#0000ff size=2&gt;in&lt;/font&gt;&lt;/font&gt;&lt;font color=#000000 size=2&gt; liste)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;&lt;font color=#0000ff size=2&gt;if&lt;/font&gt;&lt;/font&gt;&lt;font color=#000000 size=2&gt; (sayi
&amp;gt; 0)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _temp.Add(sayi);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;&lt;font color=#0000ff size=2&gt;return&lt;/font&gt;&lt;/font&gt;&lt;font color=#000000 size=2&gt; _temp;&lt;br&gt;
}&lt;/font&gt;&lt;/td&gt;
&lt;td&gt;
&lt;img src="http://www.oguzyagmur.com/content/binary/HulkPromoArt.jpg" border=0&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;
&lt;/font&gt;&lt;/font&gt;&lt;font size=2&gt;Oysaki çok daha kısa ve anlaşılır olan .net framework'ün
de nimetlerinden faydalanarak aynı işi yapabileceğimiz yöntem aşağıdaki gibi olabilir.&lt;br&gt;
Bu örnekte C# 2.0'ın getirdiği anonymous metodlardan da&amp;nbsp;faydalanılmıştır.&lt;br&gt;
&lt;br&gt;
&lt;/font&gt;&lt;font size=2&gt;&lt;font size=2&gt; 
&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;font color=#0000ff&gt;private&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;&lt;font color=#0000ff size=2&gt;static&lt;/font&gt;&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#2b91af size=2&gt;&lt;font color=#2b91af size=2&gt;List&lt;/font&gt;&lt;/font&gt;&lt;font size=2&gt;&amp;lt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&lt;font color=#0000ff size=2&gt;int&lt;/font&gt;&lt;/font&gt;&lt;font size=2&gt;&amp;gt;
Filitrele(&lt;/font&gt;&lt;font color=#2b91af size=2&gt;&lt;font color=#2b91af size=2&gt;List&lt;/font&gt;&lt;/font&gt;&lt;font size=2&gt;&amp;lt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&lt;font color=#0000ff size=2&gt;int&lt;/font&gt;&lt;/font&gt;&lt;font size=2&gt;&amp;gt;
liste)&lt;br&gt;
{&lt;br&gt;
&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;&lt;font color=#0000ff size=2&gt;return&lt;/font&gt;&lt;/font&gt;&lt;font size=2&gt; liste.FindAll(&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&lt;font color=#0000ff size=2&gt;delegate&lt;/font&gt;&lt;/font&gt;&lt;font size=2&gt;(&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&lt;font color=#0000ff size=2&gt;int&lt;/font&gt;&lt;/font&gt;&lt;font size=2&gt; sayi)&lt;br&gt;
&amp;nbsp;&amp;nbsp; {&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;&lt;font color=#0000ff size=2&gt;return&lt;/font&gt;&lt;/font&gt;&lt;font size=2&gt; sayi
&amp;gt; 0;&lt;br&gt;
&amp;nbsp;&amp;nbsp; }&lt;br&gt;
&amp;nbsp;&amp;nbsp; );&lt;br&gt;
} &lt;/font&gt;&lt;/td&gt;
&lt;td&gt;
&lt;img src="http://www.oguzyagmur.com/content/binary/Spiderman3.jpg" border=0&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;br&gt;
&lt;br&gt;
Peki bundan daha temiz ve anlaşılır bir kod yazabilir miyiz ? Eğer lambda ifadeleri
ile uğraşmış isek sorunun cevabı oldukça basittir " Tabi ki evet!" 
&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;font color=#0000ff&gt;private&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;&lt;font color=#0000ff size=2&gt;static&lt;/font&gt;&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#2b91af size=2&gt;&lt;font color=#2b91af size=2&gt;List&lt;/font&gt;&lt;/font&gt;&lt;font size=2&gt;&amp;lt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&lt;font color=#0000ff size=2&gt;int&lt;/font&gt;&lt;/font&gt;&lt;font size=2&gt;&amp;gt;
Filitrele(&lt;/font&gt;&lt;font color=#2b91af size=2&gt;&lt;font color=#2b91af size=2&gt;List&lt;/font&gt;&lt;/font&gt;&lt;font size=2&gt;&amp;lt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&lt;font color=#0000ff size=2&gt;int&lt;/font&gt;&lt;/font&gt;&lt;font size=2&gt;&amp;gt;
liste)&lt;br&gt;
{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;&lt;font color=#0000ff size=2&gt;return&lt;/font&gt;&lt;/font&gt;&lt;font size=2&gt; liste.FindAll(sayi
=&amp;gt; sayi &amp;gt; 0);&lt;br&gt;
}&lt;/font&gt;&lt;/td&gt;
&lt;td&gt;
&lt;img src="http://www.oguzyagmur.com/content/binary/superman.jpg" border=0&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;br&gt;
&gt;
&lt;/font&gt;&lt;/font&gt; 
&lt;p&gt;
&lt;font size=2&gt;Bu örnekle anlatmak istediğim aslında kullanılan dilin yeniliklerini
kullanmadan da sorunlara çözüm bulunabilineceği gibi gelen yenilikleri öğrenerek aslında
daha az zaman alıcı ve temiz kodlar yazabileceğimizi, bu nedenle öncelikle gelen bu
yeniliklerin ne işe yaradığını ne amaçla dile eklendiğini ve bu özellik olmadan yaşanan
zorluklar ya da sorunların neler olduğunu iyice kavramak gerektiğini düşünüyorum.
Yoksa kullanması zaten kolay! ;)&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font size=2&gt;C# 4.0 'ın resmi olarak yayınlanmasından sonra bu konu hakkında tekrar
konuşalım.
&lt;/p&gt;
&gt;&lt;img width="0" height="0" src="http://www.oguzyagmur.com/aggbug.ashx?id=21dd7234-22d0-4303-8204-e08affa7cacb" /&gt;</description>
      <comments>http://www.oguzyagmur.com/CommentView,guid,21dd7234-22d0-4303-8204-e08affa7cacb.aspx</comments>
      <category>.NET</category>
      <category>C#</category>
      <category>Inceleme</category>
    </item>
    <item>
      <trackback:ping>http://www.oguzyagmur.com/Trackback.aspx?guid=e76d62b3-c243-4d75-9a50-09fef6819d1d</trackback:ping>
      <pingback:server>http://www.oguzyagmur.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.oguzyagmur.com/PermaLink,guid,e76d62b3-c243-4d75-9a50-09fef6819d1d.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://www.oguzyagmur.com/CommentView,guid,e76d62b3-c243-4d75-9a50-09fef6819d1d.aspx</wfw:comment>
      <wfw:commentRss>http://www.oguzyagmur.com/SyndicationService.asmx/GetEntryCommentsRss?guid=e76d62b3-c243-4d75-9a50-09fef6819d1d</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <table class="articleTable" id="Table1" cellspacing="0" cellpadding="0" width="95%" border="0">
            <tbody>
              <tr>
                <td class="articleTitleLeft" colspan="2">
                  <p>
                    <font size="2">Görüşmek üzere ;)</font>
                    <font size="2">
                    </font>
                  </p>
                  <p>
                    <hr style="COLOR: #f1f2ee" sıze="1" />
                  </p>
                </td>
              </tr>
              <tr>
                <td colspan="2">
                  <table id="Table2" cellspacing="0" cellpadding="3" width="95%" align="center" border="0">
                    <tbody>
                      <tr>
                        <td colspan="2">
                          <span id="lblMetin">
                            <p>
                              <font size="2">Uzun bir aradan sonra tekrar İstanbul'da güzel bir etkinlik ile karşınızdayız.
Ankara ve İzmir derken biraz İstanbul'u boşladığımızı kabul ediyorum. Ama önümüzdeki
dönemde bolca telafilerimiz olacak. Gelelim konumuza; <strong>INETA Professional Hit</strong>!</font>
                            </p>
                            <p>
                              <font size="2">İki günlük bir etkinlik dizisi ile bu sefer Microsoft binasında buluşuyoruz.
Fakat farklı bir şeyler var! Türkiye'de ilk defa tamamen Level 300 ve üstü oturumlardan
oluşan halka açık bir aktivite yapıyoruz. Gelin bu konuyu biraz açıklığa kavuşturalım
ve şu Level konusuna göz atalım.</font>
                            </p>
                            <ul>
                              <li>
                                <font size="2">
                                  <strong>Level 100: </strong>Bahsi geçen konuya giriş ve genel anlatım
içerir. Katılımcıların oturumun konusu ile ilgili herhangi bir bilgi birikimine sahip
olmadıkları ön görülür. </font>
                              </li>
                              <li>
                                <font size="2">
                                  <strong>Level 200:</strong> Level 100 bilgisine sahip olunduğunu ve
buna ek olarak anlatılacak konu ile ilgili genel bir bilgi birikiminin katılımcılarda
olduğu var sayılır. Genelde bu oturumlarda anlatılan teknolojilerin detayları ve kullanım
alanları ile ilgili gerçek hayat senaryoları işlenir. </font>
                              </li>
                              <li>
                                <font size="2">
                                  <strong>Level 300: </strong>Anlatılacak konu ile ilgili Level 200 bilgisine
sahip olunduğu düşünülür. Bu oturumlarda bahsi geçen teknolojilerin uç noktada kullanımına
dair örnekler derinlemesine işlenir. </font>
                              </li>
                              <li>
                                <font size="2">
                                  <strong>Level 400: </strong>Bu oturumlar uzmanından uzmanına oturumlardır.
Anlatılan teknoloji ile ilgili en gelişmiş ve üst seviyeli bilginin aktarıldığı bu
oturumlar ürünlerin üst sınırlarını zorlayan oturumlardır. </font>
                              </li>
                            </ul>
                            <p>
                              <font size="2">Gördüğünüz gibi normal şartlarda bizim INETA tarafındaki etkinliklerimiz
ağırlıklı olarak Level 100 ile Level 200 arasında dolaşıyor. Genel olarak baktığımızda
bu seviyenin üzerinde etkinliklerin eksikliğini sizler de değerlendirme formlarında
defalarca dile getirdiniz. INETA Professional Hit tamamen uzmanlara hitap eden Level
300 ve Level 400 oturumlar içeriyor. Bu kapsamda giriş seviyesi bir beklenti ile etkinliğe
gelmemekte fayda var. Giriş seviyesi için yakın zamanda bir etkinliğimiz daha olacak.</font>
                            </p>
                            <p>
                              <font size="2">Program içeriğimiz ve oturumların seviyeleri şu şekilde;</font>
                            </p>
                            <p>
                              <strong>
                                <font size="2">24 Ocak</font>
                              </strong>
                            </p>
                            <p>
                              <font size="2">10.00-12.30 Silverlight ile Veri Uygulamaları - </font>
                              <a href="http://daron.yondem.com/tr" target="_blank">
                                <font size="2">Daron
Yöndem</font>
                              </a>
                              <font size="2"> - Level 300<br />
13.00-16.00 ADO.NET Data Services - </font>
                              <a href="http://www.bsenyurt.com/" target="_blank">
                                <font size="2">Burak
Selim Şenyurt</font>
                              </a>
                              <font size="2"> - Level 300<br />
16.30-18.00 SharePoint üzerinde özel kolon geliştirmek - </font>
                              <a href="http://www.paylasimnoktasi.com/bloglar/nezih_tinas/default.aspx" target="_blank">
                                <font size="2">Nezih
Tınas</font>
                              </a>
                              <font size="2"> - Level 400</font>
                            </p>
                            <p>
                              <strong>
                                <font size="2">25 Ocak</font>
                              </strong>
                            </p>
                            <p>
                              <font size="2">10.00-12.30 Derinlerde C# 3.0 - </font>
                              <a href="http://www.bsenyurt.com/" target="_blank">
                                <font size="2">Burak
Selim Şenyurt</font>
                              </a>
                              <font size="2"> - Level 300<br />
13.00-15.00 ASP.NET AJAX 4.0 - </font>
                              <a href="http://daron.yondem.com/tr" target="_blank">
                                <font size="2">Daron
Yöndem</font>
                              </a>
                              <font size="2"> - Level 300<br />
15.30-18.00 Asp.Net Application ve Page LifeCycle - </font>
                              <a href="http://www.oguzyagmur.com/" target="_blank">
                                <font size="2">Oğuz
Yağmur</font>
                              </a>
                              <font size="2"> - Level 300</font>
                            </p>
                            <p>
                              <font size="2">Etkinlik Microsoft İstanbul ofisinde olacak. Adres şu şekilde; <strong>Bellevue
Residence, Levent Mahallesi Aydin Sokak, No: 7 Levent</strong></font>
                            </p>
                            <p>
                              <font size="2">Etkinliğe katılabilmeniz için aşağıdaki adresten kayıt olmanız gerekiyor.</font>
                            </p>
                            <p>
                              <a href="http://daron.yondem.com/kayit/" target="_blank">
                                <font size="2">http://daron.yondem.com/kayit/</font>
                              </a>
                              <font size="2">
                              </font>
                            </p>
                            <p>
                              <font size="2">Çok yakında giriş seviyesi etkinliklerde de görüşmek üzere.</font>
                            </p>
                          </span>
                        </td>
                      </tr>
                    </tbody>
                  </table>
                </td>
              </tr>
            </tbody>
          </table>
        </p>
        <img width="0" height="0" src="http://www.oguzyagmur.com/aggbug.ashx?id=e76d62b3-c243-4d75-9a50-09fef6819d1d" />
      </body>
      <title>INETA Professional Hit Etkinliğine Bekliyoruz.</title>
      <guid isPermaLink="false">http://www.oguzyagmur.com/PermaLink,guid,e76d62b3-c243-4d75-9a50-09fef6819d1d.aspx</guid>
      <link>http://www.oguzyagmur.com/PermaLink,guid,e76d62b3-c243-4d75-9a50-09fef6819d1d.aspx</link>
      <pubDate>Fri, 16 Jan 2009 08:26:25 GMT</pubDate>
      <description>&lt;p&gt;
&lt;table class=articleTable id=Table1 cellspacing=0 cellpadding=0 width="95%" border=0&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td class=articleTitleLeft colspan=2&gt;
&lt;p&gt;
&lt;font size=2&gt;Görüşmek üzere ;)&lt;/font&gt;&lt;font size=2&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;hr style="COLOR: #f1f2ee" sıze=1&gt;
&lt;/p&gt;
&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan=2&gt;
&lt;table id=Table2 cellspacing=0 cellpadding=3 width="95%" align=center border=0&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td colspan=2&gt;
&lt;span id=lblMetin&gt; 
&lt;p&gt;
&lt;font size=2&gt;Uzun bir aradan sonra tekrar İstanbul'da güzel bir etkinlik ile karşınızdayız.
Ankara ve İzmir derken biraz İstanbul'u boşladığımızı kabul ediyorum. Ama önümüzdeki
dönemde bolca telafilerimiz olacak. Gelelim konumuza; &lt;strong&gt;INETA Professional Hit&lt;/strong&gt;!&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font size=2&gt;İki günlük bir etkinlik dizisi ile bu sefer Microsoft binasında buluşuyoruz.
Fakat farklı bir şeyler var! Türkiye'de ilk defa tamamen Level 300 ve üstü oturumlardan
oluşan halka açık bir aktivite yapıyoruz. Gelin bu konuyu biraz açıklığa kavuşturalım
ve şu Level konusuna göz atalım.&lt;/font&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;font size=2&gt;&lt;strong&gt;Level 100: &lt;/strong&gt;Bahsi geçen konuya giriş ve genel anlatım
içerir. Katılımcıların oturumun konusu ile ilgili herhangi bir bilgi birikimine sahip
olmadıkları ön görülür. &lt;/font&gt; 
&lt;li&gt;
&lt;font size=2&gt;&lt;strong&gt;Level 200:&lt;/strong&gt; Level 100 bilgisine sahip olunduğunu ve buna
ek olarak anlatılacak konu ile ilgili genel bir bilgi birikiminin katılımcılarda olduğu
var sayılır. Genelde bu oturumlarda anlatılan teknolojilerin detayları ve kullanım
alanları ile ilgili gerçek hayat senaryoları işlenir. &lt;/font&gt; 
&lt;li&gt;
&lt;font size=2&gt;&lt;strong&gt;Level 300: &lt;/strong&gt;Anlatılacak konu ile ilgili Level 200 bilgisine
sahip olunduğu düşünülür. Bu oturumlarda bahsi geçen teknolojilerin uç noktada kullanımına
dair örnekler derinlemesine işlenir. &lt;/font&gt; 
&lt;li&gt;
&lt;font size=2&gt;&lt;strong&gt;Level 400: &lt;/strong&gt;Bu oturumlar uzmanından uzmanına oturumlardır.
Anlatılan teknoloji ile ilgili en gelişmiş ve üst seviyeli bilginin aktarıldığı bu
oturumlar ürünlerin üst sınırlarını zorlayan oturumlardır. &lt;/font&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;font size=2&gt;Gördüğünüz gibi normal şartlarda bizim INETA tarafındaki etkinliklerimiz
ağırlıklı olarak Level 100 ile Level 200 arasında dolaşıyor. Genel olarak baktığımızda
bu seviyenin üzerinde etkinliklerin eksikliğini sizler de değerlendirme formlarında
defalarca dile getirdiniz. INETA Professional Hit tamamen uzmanlara hitap eden Level
300 ve Level 400 oturumlar içeriyor. Bu kapsamda giriş seviyesi bir beklenti ile etkinliğe
gelmemekte fayda var. Giriş seviyesi için yakın zamanda bir etkinliğimiz daha olacak.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font size=2&gt;Program içeriğimiz ve oturumların seviyeleri şu şekilde;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;font size=2&gt;24 Ocak&lt;/font&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font size=2&gt;10.00-12.30 Silverlight ile Veri Uygulamaları - &lt;/font&gt;&lt;a href="http://daron.yondem.com/tr" target=_blank&gt;&lt;font size=2&gt;Daron
Yöndem&lt;/font&gt;&lt;/a&gt;&lt;font size=2&gt; - Level 300&lt;br&gt;
13.00-16.00 ADO.NET Data Services - &lt;/font&gt;&lt;a href="http://www.bsenyurt.com/" target=_blank&gt;&lt;font size=2&gt;Burak
Selim Şenyurt&lt;/font&gt;&lt;/a&gt;&lt;font size=2&gt; - Level 300&lt;br&gt;
16.30-18.00 SharePoint üzerinde özel kolon geliştirmek - &lt;/font&gt;&lt;a href="http://www.paylasimnoktasi.com/bloglar/nezih_tinas/default.aspx" target=_blank&gt;&lt;font size=2&gt;Nezih
Tınas&lt;/font&gt;&lt;/a&gt;&lt;font size=2&gt; - Level 400&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;font size=2&gt;25 Ocak&lt;/font&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font size=2&gt;10.00-12.30 Derinlerde C# 3.0 - &lt;/font&gt;&lt;a href="http://www.bsenyurt.com/" target=_blank&gt;&lt;font size=2&gt;Burak
Selim Şenyurt&lt;/font&gt;&lt;/a&gt;&lt;font size=2&gt; - Level 300&lt;br&gt;
13.00-15.00 ASP.NET AJAX 4.0 - &lt;/font&gt;&lt;a href="http://daron.yondem.com/tr" target=_blank&gt;&lt;font size=2&gt;Daron
Yöndem&lt;/font&gt;&lt;/a&gt;&lt;font size=2&gt; - Level 300&lt;br&gt;
15.30-18.00 Asp.Net Application ve Page LifeCycle - &lt;/font&gt;&lt;a href="http://www.oguzyagmur.com/" target=_blank&gt;&lt;font size=2&gt;Oğuz
Yağmur&lt;/font&gt;&lt;/a&gt;&lt;font size=2&gt; - Level 300&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font size=2&gt;Etkinlik Microsoft İstanbul ofisinde olacak. Adres şu şekilde; &lt;strong&gt;Bellevue
Residence, Levent Mahallesi Aydin Sokak, No: 7 Levent&lt;/strong&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font size=2&gt;Etkinliğe katılabilmeniz için aşağıdaki adresten kayıt olmanız gerekiyor.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://daron.yondem.com/kayit/" target=_blank&gt;&lt;font size=2&gt;http://daron.yondem.com/kayit/&lt;/font&gt;&lt;/a&gt;&lt;font size=2&gt; &lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font size=2&gt;Çok yakında giriş seviyesi etkinliklerde de görüşmek üzere.&lt;/font&gt;
&lt;/p&gt;
&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.oguzyagmur.com/aggbug.ashx?id=e76d62b3-c243-4d75-9a50-09fef6819d1d" /&gt;</description>
      <comments>http://www.oguzyagmur.com/CommentView,guid,e76d62b3-c243-4d75-9a50-09fef6819d1d.aspx</comments>
      <category>.NET</category>
      <category>Yasam</category>
    </item>
    <item>
      <trackback:ping>http://www.oguzyagmur.com/Trackback.aspx?guid=c740e7b9-6463-4151-b7d8-95c64a7d1e1c</trackback:ping>
      <pingback:server>http://www.oguzyagmur.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.oguzyagmur.com/PermaLink,guid,c740e7b9-6463-4151-b7d8-95c64a7d1e1c.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://www.oguzyagmur.com/CommentView,guid,c740e7b9-6463-4151-b7d8-95c64a7d1e1c.aspx</wfw:comment>
      <wfw:commentRss>http://www.oguzyagmur.com/SyndicationService.asmx/GetEntryCommentsRss?guid=c740e7b9-6463-4151-b7d8-95c64a7d1e1c</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Uzun süre .net ortamında uygulama geliştirenler gerek assembly yapısı gerek metadata
yapısı gerekse de IL ile azçok ilgilenecekleri olaylarla karşılaşmışlardır. Bundan
önceki bazı blog girdilerinde bu amaca yönelik çeşitli çözüm yolları ve araçlardan
(Reflector, Fox , CFF Explorer gibi) bahsetmiştik. Yine benzer bir araç ile var olan
exe ya da dll leri (biz kısaca kaynak kodu bizde olmayan assembly ler diyelim) açıp
kendi kaynak kodlarımızı ekledikten sonra (bir nevi patched işlemi diyebiliriz) değişiklikleri
assembly üzerine kaydedip kullanmaya devam edebiliriz.
</p>
        <p>
Eminim herkesin anlayacağı bir örnek ile ne anlatmaya çalıştığımı kısaca özetleyeyim.
Bir arkadaşımız bir uygulama yazmış, size göndermiş kullanmanız için. Ama ne hikmetse
uygulama başlamadan önce şifre , serial, activation key vs ... istiyor.Siz de birazdan
bahsedeceğim yol ile bu assemblyyi açıp şifre soran kod kısmını istediğiniz gibi değiştirip
kaydettiğinizde artık aynı uygulamayı şifresini bilmeden de kullanabilirsiniz ;)
</p>
        <p>
Örnek uygulamamızın ekran görüntüsü aşağıdaki gibidir. Program, textbox'a istenilen
değeri girdikden sonra buton'a basıldığında eğer girilen değer doğru ise sihirli sayıyı
göstermekte, yanlış ise hata mesajı vermektedir. Biz de şu işe bakın ki textbox'a
ne yazacağımızı bilmiyoruz ;) 
</p>
        <p>
          <img src="http://www.oguzyagmur.com/content/binary/rfci1.png" border="0" />
        </p>
        <p>
Koddan da görebileceğimiz gibi basit bir string karşılaştırma işlemi yapılmaktadır.
O zaman bu kısmı değiştirdiğimizde sorunumuz hallolacaktır. Ha bu arada kodlar bizde
değildi nasıl gördük ki kodları diyorsanız <a href="http://www.xenocode.com/Products/Fox-Code-Analyzer/">Fox
Decompiler</a> ve <a href="http://www.red-gate.com/products/reflector/">Reflector</a> uygulamaları
hakkında bilgi edinmeniz gerekecektir.
</p>
        <p>
          <img src="http://www.oguzyagmur.com/content/binary/rfci2.png" border="0" />
        </p>
        <p>
Şimdi kolları sıvadıktan sonra reflector uygulamamıza assembly'yi resmen bir text
dosyasıymış gibi editleten bir plug-in kuracağız ve bu da Reflexil sayesinde gereçekleştirebiliriz.
Reflexil'i <a href="http://sourceforge.net/project/showfiles.php?group_id=200895&amp;package_id=238891">şurdaki
adresten</a> indirdikten sonra zipli dosya içerisindeki <strong>reflexil.dll'i</strong><strong></strong>Reflector
uygulamasına  plug'in olarak kurabiliyoruz.
</p>
        <p>
          <img src="http://www.oguzyagmur.com/content/binary/rfci3.png" border="0" />
        </p>
        <p>
Plug-ini ekledikten sonra Reflector ile uygulamamızı açıp, CheckKey() metodunu disassemble
ediyoruz. Reflector'un Tools menüsünden az önce exlediğimiz Reflex'il plug-in nin
çıktığı göreceğiz.Buna tıkladığımızda ise hemen alt kısımda ilgili kodun IL'ini görebiliriz.Bu
kısıma sağ tıkladığınızda gelen menüden editleme, silme ve kod ekeleme işlemlerinin
yapıladığı menülerden yapacağımız işleme göre hareket edebiliriz.
</p>
        <p>
          <img src="http://www.oguzyagmur.com/content/binary/rfci4.png" border="0" />
        </p>
        <p>
Aslında burda editleme işlemi için iyi bir IL bilgisi gerektiğini görmekteyiz. Ama
context menüdeki "Replace all with code" menüsü tüm bu sorunları ortadan kaldırıyor.
Reflector'ün ürettiği kodun sadece metodun içindeki kodu kopyaladıkdan sonra Replace
all with code menüsünü tıklayalım.Aşağıdaki gibi kopyaladığımız kodu metodun içine
kopyaladıkdan sonra istediğimiz değişiklik ve eklemeleri yapalım.Sol alt kısımdakı
"Preview IL" butonuna tıkladıkdan sonra Sağ alt kısımdakı Ok butonu aktifleşecektir.
Ok dedikten sonra Reflexil yeni kodlarimizi artık injecte etmiştir.
</p>
        <p>
          <img src="http://www.oguzyagmur.com/content/binary/rfci5.png" border="0" />
        </p>
        <p>
Görüldüğü gibi uygulamaya yeni bir satır eklendi ve metod da eğer "huh!" girilirse
false "huh!" dışında bir değer girildiğinde ise true değeri üretecektir :) umarim
şifreyi doğru tahmin edecek kadar şanslı değilsinizdir :)
</p>
        <p>
Soldaki ağaçtan assembly mizi seçtiğimizde Reflexil bize uygulamayı kaydetme imkanını
verecektir.
</p>
        <p>
          <img src="http://www.oguzyagmur.com/content/binary/rfci6.png" border="0" />
        </p>
        <p>
Düzenlediğimiz exe'yi kaydedip çalıştırdiğimizda ise aşağıdaki gibi bir sonuç alabiliriz.
</p>
        <p>
 
</p>
        <p>
          <img src="http://www.oguzyagmur.com/content/binary/rfci7.png" border="0" />       <img src="http://www.oguzyagmur.com/content/binary/rfci8.png" border="0" /></p>
        <p>
Umarım faydalı amaçlara hitap edecek çalışmalar için sizlere kolaylık sağlayacaktır
bu yazı ;)
</p>
        <p>
 Örnek uygulama : 
</p>
        <a href="http://www.oguzyagmur.com/content/binary/blog_codeinjection.rar">blog_codeinjection.rar
(33.98 KB)</a>
        <img width="0" height="0" src="http://www.oguzyagmur.com/aggbug.ashx?id=c740e7b9-6463-4151-b7d8-95c64a7d1e1c" />
      </body>
      <title>C# Code Injection ( Bir Managed Exe ya da DLL'e Kod Ekleme)</title>
      <guid isPermaLink="false">http://www.oguzyagmur.com/PermaLink,guid,c740e7b9-6463-4151-b7d8-95c64a7d1e1c.aspx</guid>
      <link>http://www.oguzyagmur.com/PermaLink,guid,c740e7b9-6463-4151-b7d8-95c64a7d1e1c.aspx</link>
      <pubDate>Wed, 14 Jan 2009 10:47:33 GMT</pubDate>
      <description>&lt;p&gt;
Uzun süre .net ortamında uygulama geliştirenler gerek assembly yapısı gerek metadata
yapısı gerekse de IL ile azçok ilgilenecekleri olaylarla karşılaşmışlardır. Bundan
önceki bazı blog girdilerinde bu amaca yönelik çeşitli çözüm yolları ve araçlardan
(Reflector, Fox , CFF Explorer gibi) bahsetmiştik. Yine benzer bir araç ile var olan
exe ya da dll leri (biz kısaca kaynak kodu bizde olmayan assembly ler diyelim) açıp
kendi kaynak kodlarımızı ekledikten sonra (bir nevi patched işlemi diyebiliriz) değişiklikleri
assembly üzerine kaydedip kullanmaya devam edebiliriz.
&lt;/p&gt;
&lt;p&gt;
Eminim herkesin anlayacağı bir örnek ile ne anlatmaya çalıştığımı kısaca özetleyeyim.
Bir arkadaşımız bir uygulama yazmış, size göndermiş kullanmanız için. Ama ne hikmetse
uygulama başlamadan önce şifre , serial, activation key vs ... istiyor.Siz de birazdan
bahsedeceğim yol ile bu assemblyyi açıp şifre soran kod kısmını istediğiniz gibi değiştirip
kaydettiğinizde artık aynı uygulamayı şifresini bilmeden de kullanabilirsiniz ;)
&lt;/p&gt;
&lt;p&gt;
Örnek uygulamamızın ekran görüntüsü aşağıdaki gibidir. Program, textbox'a istenilen
değeri girdikden sonra buton'a basıldığında eğer girilen değer doğru ise sihirli sayıyı
göstermekte, yanlış ise hata mesajı vermektedir. Biz de şu işe bakın ki textbox'a
ne yazacağımızı bilmiyoruz ;) 
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.oguzyagmur.com/content/binary/rfci1.png" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
Koddan da görebileceğimiz gibi basit bir string karşılaştırma işlemi yapılmaktadır.
O zaman bu kısmı değiştirdiğimizde sorunumuz hallolacaktır. Ha bu arada kodlar bizde
değildi nasıl gördük ki kodları diyorsanız &lt;a href="http://www.xenocode.com/Products/Fox-Code-Analyzer/"&gt;Fox
Decompiler&lt;/a&gt; ve &lt;a href="http://www.red-gate.com/products/reflector/"&gt;Reflector&lt;/a&gt; uygulamaları
hakkında bilgi edinmeniz gerekecektir.
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.oguzyagmur.com/content/binary/rfci2.png" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
Şimdi kolları sıvadıktan sonra reflector uygulamamıza assembly'yi resmen bir text
dosyasıymış gibi editleten bir plug-in kuracağız ve bu da Reflexil sayesinde gereçekleştirebiliriz.
Reflexil'i &lt;a href="http://sourceforge.net/project/showfiles.php?group_id=200895&amp;amp;package_id=238891"&gt;şurdaki
adresten&lt;/a&gt; indirdikten sonra zipli dosya içerisindeki &lt;strong&gt;reflexil.dll'i&lt;/strong&gt;&lt;strong&gt; &lt;/strong&gt;Reflector
uygulamasına&amp;nbsp; plug'in olarak kurabiliyoruz.
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.oguzyagmur.com/content/binary/rfci3.png" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
Plug-ini ekledikten sonra Reflector ile uygulamamızı açıp, CheckKey() metodunu disassemble
ediyoruz. Reflector'un Tools menüsünden az önce exlediğimiz Reflex'il plug-in nin
çıktığı göreceğiz.Buna tıkladığımızda ise hemen alt kısımda ilgili kodun IL'ini görebiliriz.Bu
kısıma sağ tıkladığınızda gelen menüden editleme, silme ve kod ekeleme işlemlerinin
yapıladığı menülerden yapacağımız işleme göre hareket edebiliriz.
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.oguzyagmur.com/content/binary/rfci4.png" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
Aslında burda editleme işlemi için iyi bir IL bilgisi gerektiğini görmekteyiz. Ama
context menüdeki "Replace all with code" menüsü tüm bu sorunları ortadan kaldırıyor.
Reflector'ün ürettiği kodun sadece metodun içindeki kodu kopyaladıkdan sonra Replace
all with code menüsünü tıklayalım.Aşağıdaki gibi kopyaladığımız kodu metodun içine
kopyaladıkdan sonra istediğimiz değişiklik ve eklemeleri yapalım.Sol alt kısımdakı
"Preview IL" butonuna tıkladıkdan sonra Sağ alt kısımdakı Ok butonu aktifleşecektir.
Ok dedikten sonra Reflexil yeni kodlarimizi artık injecte etmiştir.
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.oguzyagmur.com/content/binary/rfci5.png" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
Görüldüğü gibi uygulamaya yeni bir satır eklendi ve metod da eğer "huh!" girilirse
false "huh!" dışında bir değer girildiğinde ise true değeri üretecektir :) umarim
şifreyi doğru tahmin edecek kadar şanslı değilsinizdir :)
&lt;/p&gt;
&lt;p&gt;
Soldaki ağaçtan assembly mizi seçtiğimizde Reflexil bize uygulamayı kaydetme imkanını
verecektir.
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.oguzyagmur.com/content/binary/rfci6.png" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
Düzenlediğimiz exe'yi kaydedip çalıştırdiğimizda ise aşağıdaki gibi bir sonuç alabiliriz.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.oguzyagmur.com/content/binary/rfci7.png" border=0&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;img src="http://www.oguzyagmur.com/content/binary/rfci8.png" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
Umarım faydalı amaçlara hitap edecek çalışmalar için sizlere kolaylık sağlayacaktır
bu yazı ;)
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;Örnek uygulama : 
&lt;/p&gt;
&lt;a href="http://www.oguzyagmur.com/content/binary/blog_codeinjection.rar"&gt;blog_codeinjection.rar
(33.98 KB)&lt;/a&gt;&lt;img width="0" height="0" src="http://www.oguzyagmur.com/aggbug.ashx?id=c740e7b9-6463-4151-b7d8-95c64a7d1e1c" /&gt;</description>
      <comments>http://www.oguzyagmur.com/CommentView,guid,c740e7b9-6463-4151-b7d8-95c64a7d1e1c.aspx</comments>
      <category>.NET</category>
      <category>C#</category>
      <category>Inceleme</category>
    </item>
    <item>
      <trackback:ping>http://www.oguzyagmur.com/Trackback.aspx?guid=7df0adbb-4636-44eb-a4d9-6d07345c0467</trackback:ping>
      <pingback:server>http://www.oguzyagmur.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.oguzyagmur.com/PermaLink,guid,7df0adbb-4636-44eb-a4d9-6d07345c0467.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://www.oguzyagmur.com/CommentView,guid,7df0adbb-4636-44eb-a4d9-6d07345c0467.aspx</wfw:comment>
      <wfw:commentRss>http://www.oguzyagmur.com/SyndicationService.asmx/GetEntryCommentsRss?guid=7df0adbb-4636-44eb-a4d9-6d07345c0467</wfw:commentRss>
      <title>SharepointTurkiye.org</title>
      <guid isPermaLink="false">http://www.oguzyagmur.com/PermaLink,guid,7df0adbb-4636-44eb-a4d9-6d07345c0467.aspx</guid>
      <link>http://www.oguzyagmur.com/PermaLink,guid,7df0adbb-4636-44eb-a4d9-6d07345c0467.aspx</link>
      <pubDate>Wed, 31 Dec 2008 08:06:08 GMT</pubDate>
      <description>&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;span style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;font face="Times New Roman" color=#000000 size=3&gt;&lt;em&gt;SharePoint
konusunda Turkiye MVP'lerinden &lt;a href="http://mosseverywhere.blogspot.com/"&gt;Evren
Ayan&lt;/a&gt; ve Oktay Sert'in çalışmaları sonucunda hayata geçen SharepointTurkıye.org
'a başarılar diliyorum.&lt;/em&gt;&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;span style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;font face="Times New Roman" color=#000000 size=3&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;span style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;font face="Times New Roman" color=#000000 size=3&gt;2001
yılından bu yana çeşitli versiyonlar ile kurumların intranet, içerik yönetimi, arama
hizmetleri, form yönetimi gibi konulardaki ihtiyaçlarına çözüm bulmak amacıyla &lt;/font&gt;&lt;a href="http://www.microsoft.com/"&gt;&lt;font face="Times New Roman" size=3&gt;Microsoft &lt;/font&gt;&lt;/a&gt;&lt;font size=3&gt;&lt;font color=#000000&gt;&lt;font face="Times New Roman"&gt;tarafından
sürekli yenilenen &lt;strong&gt;Sharepoint &lt;/strong&gt;uygulaması 2006 yılının sonu itibariyle
lanse edilen &lt;strong&gt;Windows Sharepoint Services 3.0&lt;/strong&gt; ve &lt;strong&gt;Microsoft
Office Sharepoint Server 2007 &lt;/strong&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;ile
beraber çok daha kullanışlı ve pek çok kurum tarafından tercih edilir bir yapıya kavuştu.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;span style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;font size=3&gt;&lt;font color=#000000&gt;&lt;font face="Times New Roman"&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;span style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;font size=3&gt;&lt;font color=#000000&gt;&lt;font face="Times New Roman"&gt;Yine
aynı tarihler Sharepoint konusunda paylaşımların da arttığı, bu konuda organizasyonların
kurulduğu, etkinliklerin düzenlendiği bir yapının oluşturulmaya başlamasına, bu konuda
uzmanlaşmış insanların bLogger, vLogger gibi etiketlerle paylaşım piyasalarındaki
yerlerinde bu ürüne de yer vermeye başlamalarına karşılık geldi.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;span style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;font size=3&gt;&lt;font color=#000000&gt;&lt;font face="Times New Roman"&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;span style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;font face="Times New Roman" color=#000000 size=3&gt;Bu
konuda gerçekleşen en büyük girişimlerden biri olan &lt;/font&gt;&lt;a href="http://www.sharepointpros.org/"&gt;&lt;font face="Times New Roman" color=#0000ff size=3&gt;ISPA(International
Sharepoint Professionals Association)&lt;/font&gt;&lt;/a&gt;&lt;font size=3&gt;&lt;font color=#000000&gt;&lt;font face="Times New Roman"&gt; aracılığı
ile tüm dünyada kullanıcı grupları ve portaller oluşturuldu. 
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;span style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;font size=3&gt;&lt;font color=#000000&gt;&lt;font face="Times New Roman"&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;span style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;a href="http://www.sharepointpros.org/"&gt;&lt;font face="Times New Roman" color=#0000ff size=3&gt;ISPA&lt;/font&gt;&lt;/a&gt;&lt;font face="Times New Roman" color=#000000 size=3&gt; üyesi
ve Türkiye'nin ilk Sharepoint Kullanıcı grubu olan &lt;/font&gt;&lt;a href="http://www.sharepointturkiye.org/"&gt;&lt;font face="Times New Roman" size=3&gt;SharepointTurkiye.Org&lt;/font&gt;&lt;/a&gt;&lt;font size=3&gt;&lt;font color=#000000&gt;&lt;font face="Times New Roman"&gt;'da
tüm dünyada olduğu gibi ülkemiz kurumsal IT yapılanmasında da önemli yer teşkil etmeye
başlayan Windows Sharepoint Services 3.0 (WSS v3) ve Microsoft Office Sharepoint Server
2007 (MOSS 2007) konusunda bilginin paylaşımı, pek çok verinin tek bir adresten ve
mümkün oldukça Türkçe bir şekilde sunulabilmesi amacıyla oluşturuldu.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;span style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;font size=3&gt;&lt;font color=#000000&gt;&lt;font face="Times New Roman"&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;span style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;font face="Times New Roman" color=#000000 size=3&gt;Bugün
itibariyle resmen açık olan ve ziyaretçi kabul etmeye başlayan &lt;/font&gt;&lt;a href="http://www.sharepointturkiye.org/"&gt;&lt;font face="Times New Roman" size=3&gt;bu
platform &lt;/font&gt;&lt;/a&gt;&lt;font size=3&gt;&lt;font color=#000000&gt;&lt;font face="Times New Roman"&gt;aracılığı
ile Sharepoint hakkında merak ettiğiniz pek çok konuya açıklık getirmek, pek çok bilgiye
tek adresten erişiminizi sağlamak, Türkiye ve dünyadaki Sharepoint etkinlikleri hakkında
bilgi sahibi olmak ve ürünün gelişimini beraber takip etmek, haberdar etmek, farkındalık
yaratmak hedeflenmiştir.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;span style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;font size=3&gt;&lt;font color=#000000&gt;&lt;font face="Times New Roman"&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;span style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;font size=3&gt;&lt;font color=#000000&gt;&lt;font face="Times New Roman"&gt;Genel
anlamda &lt;strong&gt;Sharepoint &lt;/strong&gt;platformu hakkında sürekli elinizin altında olması
gereken bilgilere ulaşabileceğiniz bu platform, blog yapısıyla dinamik içeriklerden
ve yeniliklerden de haberdar olmanızı sağlayacak bir yapıya kavuşmayı hedeflemektedir.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;span style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;font size=3&gt;&lt;font color=#000000&gt;&lt;font face="Times New Roman"&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;span style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;font size=3&gt;&lt;font color=#000000&gt;&lt;font face="Times New Roman"&gt;Hayırlı
olması, bilgilerin işinize yaraması dileklerimizle...&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.oguzyagmur.com/aggbug.ashx?id=7df0adbb-4636-44eb-a4d9-6d07345c0467" /&gt;</description>
      <comments>http://www.oguzyagmur.com/CommentView,guid,7df0adbb-4636-44eb-a4d9-6d07345c0467.aspx</comments>
      <category>Inceleme</category>
      <category>Yasam</category>
    </item>
  </channel>
</rss>