<?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>Berke Sökhan - .NET</title>
    <link>http://www.berkesokhan.com/blog/</link>
    <description>düşünceler / thoughts</description>
    <language>en-us</language>
    <copyright>Berke Sökhan</copyright>
    <lastBuildDate>Tue, 15 Jun 2010 14:03:52 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.0.7226.0</generator>
    <managingEditor>berkesokhan@gmail.com</managingEditor>
    <webMaster>berkesokhan@gmail.com</webMaster>
    <item>
      <trackback:ping>http://www.berkesokhan.com/blog/Trackback.aspx?guid=a26ed8ac-43ba-45d6-81e9-10443af23617</trackback:ping>
      <pingback:server>http://www.berkesokhan.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.berkesokhan.com/blog/PermaLink,guid,a26ed8ac-43ba-45d6-81e9-10443af23617.aspx</pingback:target>
      <dc:creator>Berke Sökhan</dc:creator>
      <wfw:comment>http://www.berkesokhan.com/blog/CommentView,guid,a26ed8ac-43ba-45d6-81e9-10443af23617.aspx</wfw:comment>
      <wfw:commentRss>http://www.berkesokhan.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=a26ed8ac-43ba-45d6-81e9-10443af23617</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p class="MsoNormal">
          <b>
            <span>Türkiye'nin Açık Kaynak Topluluğu Birliktegeliştir Yeni Versiyonu İle Yayında</span>
          </b>
        </p>
        <p class="MsoNormal">
          <span>Açık kaynak kodlu proje geliştirme yaklaşımının giderek yaygınlaştığı günümüz
yazılım dünyasında Microsoft platform ve araçları kullanılarak birçok açık kaynak
kodlu uygulama geliştirilmekte ve Microsoft’un kendisi de bu konuda çalışmalar yapmaktadır.</span>
        </p>
        <p class="MsoNormal">
          <span>Açık kaynak kodlu bir içerik yönetim sistemi olan Umbraco üzerine kurulan Birliktegeliştir,
Türkiye’de de Microsoft platformlarında açık kaynaklı projeler geliştirilmesi ve mevcut
açık kaynak kodlu projelerin kullanımının yaygınlaştırılmasını amaçlamaktadır. Zaman
içinde yaygınlaşan açık kaynak kod topluluğuna daha iyi içerik sağlamak amacıyla Birliktegeliştir
yeni arayüzü ve yeni özellikleriyle yayında.</span>
        </p>
        <p class="MsoNormal">
          <img src="http://www.berkesokhan.com/blog/content/binary/bgLogo.png" border="0" />
        </p>
        <p class="MsoNormal">
          <span>Sizlerin de ke</span>
          <span>ndi projelerinizi v</span>
          <span>e kendi içeriğinizi
rahatlıkla paylaşabilec</span>
          <span>eğiniz Birliktegeliştir’de ayrıca Türkiye'de geliştirilmiş
açık kaynak kodlu projelere, bugüne kadar dünyada yapılmış açık kaynak kodlu uygulamaların
kullanımı ile ilgili makale, video gibi Türkçe kaynaklara ulaşabilirsiniz.</span>
        </p>
        <p class="MsoNormal">
          <span>Bunun yanısıra uygulama geliştiricilerin kodlama sırasında çoğunlukla kullandığı
kod bloklarına Kod Parçaları kısmından ulaşabilirsiniz.</span>
        </p>
        <p class="MsoNormal">
          <span>Birliktegeliştir topluluğuna <a href="http://www.birliktegelistir.com/" target="_blank">www.birliktegelistir.com</a> adresinden
ulaşabilirsiniz.</span>
        </p>
        <p class="MsoNormal">
          <span> </span>
        </p>
        <p class="MsoNormal">
          <span>E-Mail: <a href="mailto:birliktegelistir@birliktegelistir.com" target="_blank">birliktegelistir@<wbr />birliktegelistir.com</a>  </span>
        </p>
        <p class="MsoNormal">
          <span>Twitter: <a href="http://www.twitter.com/bgelistir" target="_blank">www.twitter.com/bgelistir</a></span>
        </p>
        <img width="0" height="0" src="http://www.berkesokhan.com/blog/aggbug.ashx?id=a26ed8ac-43ba-45d6-81e9-10443af23617" />
      </body>
      <title>Birlikte Geliştir!</title>
      <guid isPermaLink="false">http://www.berkesokhan.com/blog/PermaLink,guid,a26ed8ac-43ba-45d6-81e9-10443af23617.aspx</guid>
      <link>http://www.berkesokhan.com/blog/2010/06/15/BirlikteGeli%c5%9ftir.aspx</link>
      <pubDate>Tue, 15 Jun 2010 14:03:52 GMT</pubDate>
      <description>&lt;p class="MsoNormal"&gt;
&lt;b&gt;&lt;span&gt;Türkiye'nin Açık Kaynak Topluluğu Birliktegeliştir Yeni Versiyonu İle Yayında&lt;/span&gt;&lt;/b&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;Açık kaynak kodlu proje geliştirme yaklaşımının giderek yaygınlaştığı günümüz
yazılım dünyasında Microsoft platform ve araçları kullanılarak birçok açık kaynak
kodlu uygulama geliştirilmekte ve Microsoft’un kendisi de bu konuda çalışmalar yapmaktadır.&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;Açık kaynak kodlu bir içerik yönetim sistemi olan Umbraco üzerine kurulan Birliktegeliştir,
Türkiye’de de Microsoft platformlarında açık kaynaklı projeler geliştirilmesi ve mevcut
açık kaynak kodlu projelerin kullanımının yaygınlaştırılmasını amaçlamaktadır. Zaman
içinde yaygınlaşan açık kaynak kod topluluğuna daha iyi içerik sağlamak amacıyla Birliktegeliştir
yeni arayüzü ve yeni özellikleriyle yayında.&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;img src="http://www.berkesokhan.com/blog/content/binary/bgLogo.png" border="0"&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;Sizlerin de ke&lt;/span&gt;&lt;span&gt;ndi projelerinizi v&lt;/span&gt;&lt;span&gt;e kendi içeriğinizi
rahatlıkla paylaşabilec&lt;/span&gt;&lt;span&gt;eğiniz Birliktegeliştir’de ayrıca Türkiye'de geliştirilmiş
açık kaynak kodlu projelere, bugüne kadar dünyada yapılmış açık kaynak kodlu uygulamaların
kullanımı ile ilgili makale, video gibi Türkçe kaynaklara ulaşabilirsiniz.&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;Bunun yanısıra uygulama geliştiricilerin kodlama sırasında çoğunlukla kullandığı
kod bloklarına Kod Parçaları kısmından ulaşabilirsiniz.&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;Birliktegeliştir topluluğuna &lt;a href="http://www.birliktegelistir.com/" target="_blank"&gt;www.birliktegelistir.com&lt;/a&gt; adresinden
ulaşabilirsiniz.&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;&amp;nbsp;&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;E-Mail: &lt;a href="mailto:birliktegelistir@birliktegelistir.com" target="_blank"&gt;birliktegelistir@&lt;wbr&gt;birliktegelistir.com&lt;/a&gt; &amp;nbsp;&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span&gt;Twitter: &lt;a href="http://www.twitter.com/bgelistir" target="_blank"&gt;www.twitter.com/bgelistir&lt;/a&gt; &lt;/span&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.berkesokhan.com/blog/aggbug.ashx?id=a26ed8ac-43ba-45d6-81e9-10443af23617" /&gt;</description>
      <comments>http://www.berkesokhan.com/blog/CommentView,guid,a26ed8ac-43ba-45d6-81e9-10443af23617.aspx</comments>
      <category>.NET</category>
      <category>Araçlar</category>
      <category>C#</category>
      <category>Genel</category>
      <category>Sosyal</category>
      <category>OSS</category>
    </item>
    <item>
      <trackback:ping>http://www.berkesokhan.com/blog/Trackback.aspx?guid=bd39b42d-3890-4e8f-a49f-8c33e64a064e</trackback:ping>
      <pingback:server>http://www.berkesokhan.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.berkesokhan.com/blog/PermaLink,guid,bd39b42d-3890-4e8f-a49f-8c33e64a064e.aspx</pingback:target>
      <dc:creator>Berke Sökhan</dc:creator>
      <wfw:comment>http://www.berkesokhan.com/blog/CommentView,guid,bd39b42d-3890-4e8f-a49f-8c33e64a064e.aspx</wfw:comment>
      <wfw:commentRss>http://www.berkesokhan.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=bd39b42d-3890-4e8f-a49f-8c33e64a064e</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <br />
        <a href="http://altdotnet.org/">ALT.NET</a> ilk defa Davi Laribee tarafından ortaya
atılmış bir kelime. Microsoft ekosisteminde baskın durumda bulunan araçlardan ve yazılım
geliştirme yaklaşımlardan farklı seçimler yapabilmeyi ifade etmek için Alternative'in
ALT'ı ve buna karşın Microsoft'un baskın teknolojisi .NET'i birleştiren ilginç bir
terim.<br /><br /><a href="http://altnetpedia.com/OverviewWhatIsIt.ashx">ALT.NET</a>, üzerinde hala
anlaşılmış kesin bir <a href="http://www.persistall.com/archive/2007/10/07/the-authoritative-alt.net-definition-and-manifesto.aspx">tanımı
olmayan</a>, ancak Microsoft platformları üzerinde kaliteli yazılım geliştirmek hedefi
etrafında toplanan bir hareket. ALT.NET'çi olduğunu söylen herkesin <a href="http://codebetter.com/blogs/jeremy.miller/">kendine
göre</a> bir algısı <a href="http://msdn.microsoft.com/en-us/magazine/cc337902.aspx">ALT.NET
algısı</a> mevcut. 
<br /><br />
Benim ALT.NET algım ise şu şekilde: Sadece Microsoft'tan geldiği için bir teknolojiyi
kullanmak veya Microsoft'ta bir karşılığı olmadığı için bir aracı kullanmamak yerine,
neye ihtiyacınız varsa onu kullanmak. Araçlar ve teknolojinin pratik karşılıkları
bir logging kütüphanesi de olabilir, agile yöntemleri destekleyen unit testler ve
test driven development metodolojileri de olabilir. Kısaca ALT.NET'in bendeki karşılığı,
gerekirse alternatifleri kullanarak, Microsoft platformunda iyi yazılım yapmaya çalışmak.<br /><br /><div align="left"><div align="center"><img src="http://www.berkesokhan.com/blog/content/binary/RWS1-Medium.png" border="0" /><br /></div><br /></div>
Dünyanın <a href="http://tech.groups.yahoo.com/group/altdotnet/">diğer yerlerinde
olduğu gibi</a> ALT.NET'in Türkiye'deki karşılığı da, bir <a href="http://groups.google.com/group/altdotnetturkiye">mailing
list</a> ve düzenli yapılmaya çalışılan buluşmalar ve kişilerin blog postları (v=
bunun gibi :)) şeklinde biçimleniyor.<br /><br />
İlkine katılamadığım ALT.NET toplantıları bundan yaklaşık 1,5 yıl önce başlamıştı.
Katıldığım ilk buluşmanın, sabah oturumunda insanlar (Gürkan Yeniçeri, Gökhan Altınören,
Doğa Öztüzün...) ALT.NET Türkiye'nin nasıl bir <a href="http://vimeo.com/groups/altnettr/videos/3158558">hedefi
olması</a> gerektiğini ve <a href="http://vimeo.com/groups/altnettr/videos/3159870">yazılım
geliştirme süreçlerini</a> tartışmıştı. Öğleden sonraki oturumda <a href="http://devlicious.com/blogs/tuna_toksoz/default.aspx">Tuna
Toksöz</a> ve <a href="http://www.dogaoztuzun.com/">Doğa Öztüzün</a> C#, ASP.NET MVC
ve NHibernate üzerinde kendi geliştirdikleri açık kaynak kodlu blog uygulaması <a href="http://code.google.com/p/blogsharp/">BlogSharp</a>'ı
sundular. Tuncer Karaarslan ise NHibernate ile küresel navigasyon için spatial hesaplarının
nasıl yapıldığından bahsetmişti.<br /><br />
Uzun süredir ara verdiğimiz ALT.NET buluşmalarından üçüncüsünü geçen hafta (2010-03-21)
yapabildik. Bu buluşma öncekine göre daha dolu ve eğiticiydi. Daha önceki buluşmalara
katılan arkadaşlar olduğu kadar, ALT.NET ile ilgilenen yeni yüzler de gördük. Sabah
oturumunda Serdar Büyüktemiz Tuncer Karaarslan bu sefer Oracle ve spatial'den bahsetti. <a href="http://www.serdarbuyuktemiz.com/">Serdar
Büyüktemiz</a> Search Engine Optimization konusunda oldukça bilgilendirici bir <a href="http://vimeo.com/groups/altnettr/videos/10457603">sunum</a> yaptı.
Öğleden sonra sahneyi <a href="http://www.tunatoksoz.com/">Tuna Toksöz</a> aldı ve
Castle Windsor ile ilgili sunusunu paylaştı. Daha sonra ben de istek üzerine WPF MVVM
ile ilgili kısa bir sunum yaptım.<br /><br />
Sunum yaparak bilgilerini paylaşan herkeze ve izleyicilere teşekkür ediyorum. <a href="http://www.bilgeadam.com/">Bilge
Adam</a>'ın desteğini alıp, bize yer ayarlayarak buluşmaların gerçekleşmesinde büyük
emeğe sahip <a href="http://forum.yazilimuzmani.com/blogs/murathaksal/">Murat Haksal</a>'a
da ayrıca teşekkür etmek isterim.<br /><br />
ALT.NET buluşmalarında sunuların kaydedilmiş tüm videolarını <a href="http://vimeo.com">vimeo</a> daki <a href="http://vimeo.com/groups/altnettr/videos">ALT.NET
Türkiye grubuna</a> yüklüyor olacağız. Burada bahsedilen ancak linki verilmeyen videoları
vimeo'dan kontrol edebilirsiniz.<br /><br />
Sunum Videoları: <a href="http://vimeo.com/groups/altnettr/videos">ALT.NET Türkiye</a><br />
ALT.NET Türkiye e-posta listesi: <a href="http://groups.google.com/group/altdotnetturkiye">http://groups.google.com/group/altdotnetturkiye</a><br /><img width="0" height="0" src="http://www.berkesokhan.com/blog/aggbug.ashx?id=bd39b42d-3890-4e8f-a49f-8c33e64a064e" /></body>
      <title>ALT.NET, Türkiyedeki Buluşmalar ve Son Buluşma Notları</title>
      <guid isPermaLink="false">http://www.berkesokhan.com/blog/PermaLink,guid,bd39b42d-3890-4e8f-a49f-8c33e64a064e.aspx</guid>
      <link>http://www.berkesokhan.com/blog/2010/03/29/ALTNETT%c3%bcrkiyedekiBulu%c5%9fmalarVeSonBulu%c5%9fmaNotlar%c4%b1.aspx</link>
      <pubDate>Mon, 29 Mar 2010 15:17:05 GMT</pubDate>
      <description>&lt;br&gt;
&lt;a href="http://altdotnet.org/"&gt;ALT.NET&lt;/a&gt; ilk defa Davi Laribee tarafından ortaya
atılmış bir kelime. Microsoft ekosisteminde baskın durumda bulunan araçlardan ve yazılım
geliştirme yaklaşımlardan farklı seçimler yapabilmeyi ifade etmek için Alternative'in
ALT'ı ve buna karşın Microsoft'un baskın teknolojisi .NET'i birleştiren ilginç bir
terim.&lt;br&gt;
&lt;br&gt;
&lt;a href="http://altnetpedia.com/OverviewWhatIsIt.ashx"&gt;ALT.NET&lt;/a&gt;, üzerinde hala
anlaşılmış kesin bir &lt;a href="http://www.persistall.com/archive/2007/10/07/the-authoritative-alt.net-definition-and-manifesto.aspx"&gt;tanımı
olmayan&lt;/a&gt;, ancak Microsoft platformları üzerinde kaliteli yazılım geliştirmek hedefi
etrafında toplanan bir hareket. ALT.NET'çi olduğunu söylen herkesin &lt;a href="http://codebetter.com/blogs/jeremy.miller/"&gt;kendine
göre&lt;/a&gt; bir algısı &lt;a href="http://msdn.microsoft.com/en-us/magazine/cc337902.aspx"&gt;ALT.NET
algısı&lt;/a&gt; mevcut. 
&lt;br&gt;
&lt;br&gt;
Benim ALT.NET algım ise şu şekilde: Sadece Microsoft'tan geldiği için bir teknolojiyi
kullanmak veya Microsoft'ta bir karşılığı olmadığı için bir aracı kullanmamak yerine,
neye ihtiyacınız varsa onu kullanmak. Araçlar ve teknolojinin pratik karşılıkları
bir logging kütüphanesi de olabilir, agile yöntemleri destekleyen unit testler ve
test driven development metodolojileri de olabilir. Kısaca ALT.NET'in bendeki karşılığı,
gerekirse alternatifleri kullanarak, Microsoft platformunda iyi yazılım yapmaya çalışmak.&lt;br&gt;
&lt;br&gt;
&lt;div align="left"&gt;
&lt;div align="center"&gt;&lt;img src="http://www.berkesokhan.com/blog/content/binary/RWS1-Medium.png" border="0"&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
Dünyanın &lt;a href="http://tech.groups.yahoo.com/group/altdotnet/"&gt;diğer yerlerinde
olduğu gibi&lt;/a&gt; ALT.NET'in Türkiye'deki karşılığı da, bir &lt;a href="http://groups.google.com/group/altdotnetturkiye"&gt;mailing
list&lt;/a&gt; ve düzenli yapılmaya çalışılan buluşmalar ve kişilerin blog postları (v=
bunun gibi :)) şeklinde biçimleniyor.&lt;br&gt;
&lt;br&gt;
İlkine katılamadığım ALT.NET toplantıları bundan yaklaşık 1,5 yıl önce başlamıştı.
Katıldığım ilk buluşmanın, sabah oturumunda insanlar (Gürkan Yeniçeri, Gökhan Altınören,
Doğa Öztüzün...) ALT.NET Türkiye'nin nasıl bir &lt;a href="http://vimeo.com/groups/altnettr/videos/3158558"&gt;hedefi
olması&lt;/a&gt; gerektiğini ve &lt;a href="http://vimeo.com/groups/altnettr/videos/3159870"&gt;yazılım
geliştirme süreçlerini&lt;/a&gt; tartışmıştı. Öğleden sonraki oturumda &lt;a href="http://devlicious.com/blogs/tuna_toksoz/default.aspx"&gt;Tuna
Toksöz&lt;/a&gt; ve &lt;a href="http://www.dogaoztuzun.com/"&gt;Doğa Öztüzün&lt;/a&gt; C#, ASP.NET MVC
ve NHibernate üzerinde kendi geliştirdikleri açık kaynak kodlu blog uygulaması &lt;a href="http://code.google.com/p/blogsharp/"&gt;BlogSharp&lt;/a&gt;'ı
sundular. Tuncer Karaarslan ise NHibernate ile küresel navigasyon için spatial hesaplarının
nasıl yapıldığından bahsetmişti.&lt;br&gt;
&lt;br&gt;
Uzun süredir ara verdiğimiz ALT.NET buluşmalarından üçüncüsünü geçen hafta (2010-03-21)
yapabildik. Bu buluşma öncekine göre daha dolu ve eğiticiydi. Daha önceki buluşmalara
katılan arkadaşlar olduğu kadar, ALT.NET ile ilgilenen yeni yüzler de gördük. Sabah
oturumunda Serdar Büyüktemiz Tuncer Karaarslan bu sefer Oracle ve spatial'den bahsetti. &lt;a href="http://www.serdarbuyuktemiz.com/"&gt;Serdar
Büyüktemiz&lt;/a&gt; Search Engine Optimization konusunda oldukça bilgilendirici bir &lt;a href="http://vimeo.com/groups/altnettr/videos/10457603"&gt;sunum&lt;/a&gt; yaptı.
Öğleden sonra sahneyi &lt;a href="http://www.tunatoksoz.com/"&gt;Tuna Toksöz&lt;/a&gt; aldı ve
Castle Windsor ile ilgili sunusunu paylaştı. Daha sonra ben de istek üzerine WPF MVVM
ile ilgili kısa bir sunum yaptım.&lt;br&gt;
&lt;br&gt;
Sunum yaparak bilgilerini paylaşan herkeze ve izleyicilere teşekkür ediyorum. &lt;a href="http://www.bilgeadam.com/"&gt;Bilge
Adam&lt;/a&gt;'ın desteğini alıp, bize yer ayarlayarak buluşmaların gerçekleşmesinde büyük
emeğe sahip &lt;a href="http://forum.yazilimuzmani.com/blogs/murathaksal/"&gt;Murat Haksal&lt;/a&gt;'a
da ayrıca teşekkür etmek isterim.&lt;br&gt;
&lt;br&gt;
ALT.NET buluşmalarında sunuların kaydedilmiş tüm videolarını &lt;a href="http://vimeo.com"&gt;vimeo&lt;/a&gt; daki &lt;a href="http://vimeo.com/groups/altnettr/videos"&gt;ALT.NET
Türkiye grubuna&lt;/a&gt; yüklüyor olacağız. Burada bahsedilen ancak linki verilmeyen videoları
vimeo'dan kontrol edebilirsiniz.&lt;br&gt;
&lt;br&gt;
Sunum Videoları: &lt;a href="http://vimeo.com/groups/altnettr/videos"&gt;ALT.NET Türkiye&lt;/a&gt;
&lt;br&gt;
ALT.NET Türkiye e-posta listesi: &lt;a href="http://groups.google.com/group/altdotnetturkiye"&gt;http://groups.google.com/group/altdotnetturkiye&lt;/a&gt;
&lt;br&gt;
&lt;img width="0" height="0" src="http://www.berkesokhan.com/blog/aggbug.ashx?id=bd39b42d-3890-4e8f-a49f-8c33e64a064e" /&gt;</description>
      <comments>http://www.berkesokhan.com/blog/CommentView,guid,bd39b42d-3890-4e8f-a49f-8c33e64a064e.aspx</comments>
      <category>.NET</category>
      <category>ALT.NET</category>
      <category>Sosyal</category>
    </item>
    <item>
      <trackback:ping>http://www.berkesokhan.com/blog/Trackback.aspx?guid=584899a5-488b-4202-ad93-2b1ab6c85de6</trackback:ping>
      <pingback:server>http://www.berkesokhan.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.berkesokhan.com/blog/PermaLink,guid,584899a5-488b-4202-ad93-2b1ab6c85de6.aspx</pingback:target>
      <dc:creator>Berke Sökhan</dc:creator>
      <wfw:comment>http://www.berkesokhan.com/blog/CommentView,guid,584899a5-488b-4202-ad93-2b1ab6c85de6.aspx</wfw:comment>
      <wfw:commentRss>http://www.berkesokhan.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=584899a5-488b-4202-ad93-2b1ab6c85de6</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">We recently started to build a desktop
application with WPF and MVVM. 
<br /><br />
When we had the need for a validation framework for our view inputs, I started to
look on internet to find "de facto" approach for MVVM and WPF in general. There are
lots of look-alike methods for validation. 
<br /><br />
For validation I commonly saw three approaches:<br /><br /><ul><li>
Validation Rules on views<br /></li><li>
Hand coded validation on ViewModel setters</li><li>
Using some validation framework attributes (mostly System.ComponentModel.DataAnnotations)
on binded Model properties or ViewModel properties.<br /></li></ul><br />
For validation error user notification, people complain about how WPF lacks old Windows
Forms built in Error Provider support and invent their custom ones with IDataErrorInfo
interface.<br /><br />
The problems with the implementations I saw so far was they were like toy examples
or have overly complex implementations. One implementation outstands for me from the
rest. 
<br /><br />
In <a href="http://weblogs.asp.net/marianor/archive/2009/04/17/wpf-validation-with-attributes-and-idataerrorinfo-interface-in-mvvm.aspx">Mariano
Omar Rodriguez'</a>s validation approach, ViewModel decorates its properties with
Data Annotations for validation, and to check these attributes are really valid, ViewModel
uses some reflection and Linq Expressions. To show errors ViewModel also implements
IDataErrorInfo interface. While Mariano's approach seemed a little complex, if I could
carry complexity (IDataErrorInfo implementation and reflection methods/properties)
to a ViewModelBase class, adding new properties and validations would become fairly
easy. 
<br /><br />
I modified Mariano's code with generics to move all those overhead to a base class.
Two things I couldn't carry without friction were IDataErrorInfo's members this[string]
indexer and Error property, because these properties send "this" instances to reflective
methods for gathering IsValid infos from Data Annotation attributes. I was stuck there
for a good solution. My collegue Niyazi came with a solution which suggests we should
declare a T type property in ViewModelBase, and use T property instead of "this" in
ViewModelBase and actual ViewModels which inherit from ViewModelBase should assign
their selves to this generic typed property in their constructors. We were not totally
ok with this yet another overhead for the ViewModel. But it's less crappy or less
code from other solutions out there. So we settled for this solution.<br /><br />
You can grab the solution attached below. Please feel free to comment on this solution's
possible drawbacks.<br /><br /><a href="http://www.berkesokhan.com/blog/content/binary/Samples.Validation.BerkesVariant.rar">Samples.Validation.BerkesVariant.rar
(83.76 KB)</a><img width="0" height="0" src="http://www.berkesokhan.com/blog/aggbug.ashx?id=584899a5-488b-4202-ad93-2b1ab6c85de6" /></body>
      <title>A WPF MVVM Validation Implementation</title>
      <guid isPermaLink="false">http://www.berkesokhan.com/blog/PermaLink,guid,584899a5-488b-4202-ad93-2b1ab6c85de6.aspx</guid>
      <link>http://www.berkesokhan.com/blog/2009/12/06/AWPFMVVMValidationImplementation.aspx</link>
      <pubDate>Sun, 06 Dec 2009 09:20:24 GMT</pubDate>
      <description>We recently started to build a desktop application with WPF and MVVM. &lt;br&gt;
&lt;br&gt;
When we had the need for a validation framework for our view inputs, I started to
look on internet to find "de facto" approach for MVVM and WPF in general. There are
lots of look-alike methods for validation. 
&lt;br&gt;
&lt;br&gt;
For validation I commonly saw three approaches:&lt;br&gt;
&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;
Validation Rules on views&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
Hand coded validation on ViewModel setters&lt;/li&gt;
&lt;li&gt;
Using some validation framework attributes (mostly System.ComponentModel.DataAnnotations)
on binded Model properties or ViewModel properties.&lt;br&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;br&gt;
For validation error user notification, people complain about how WPF lacks old Windows
Forms built in Error Provider support and invent their custom ones with IDataErrorInfo
interface.&lt;br&gt;
&lt;br&gt;
The problems with the implementations I saw so far was they were like toy examples
or have overly complex implementations. One implementation outstands for me from the
rest. 
&lt;br&gt;
&lt;br&gt;
In &lt;a href="http://weblogs.asp.net/marianor/archive/2009/04/17/wpf-validation-with-attributes-and-idataerrorinfo-interface-in-mvvm.aspx"&gt;Mariano
Omar Rodriguez'&lt;/a&gt;s validation approach, ViewModel decorates its properties with
Data Annotations for validation, and to check these attributes are really valid, ViewModel
uses some reflection and Linq Expressions. To show errors ViewModel also implements
IDataErrorInfo interface. While Mariano's approach seemed a little complex, if I could
carry complexity (IDataErrorInfo implementation and reflection methods/properties)
to a ViewModelBase class, adding new properties and validations would become fairly
easy. 
&lt;br&gt;
&lt;br&gt;
I modified Mariano's code with generics to move all those overhead to a base class.
Two things I couldn't carry without friction were IDataErrorInfo's members this[string]
indexer and Error property, because these properties send "this" instances to reflective
methods for gathering IsValid infos from Data Annotation attributes. I was stuck there
for a good solution. My collegue Niyazi came with a solution which suggests we should
declare a T type property in ViewModelBase, and use T property instead of "this" in
ViewModelBase and actual ViewModels which inherit from ViewModelBase should assign
their selves to this generic typed property in their constructors. We were not totally
ok with this yet another overhead for the ViewModel. But it's less crappy or less
code from other solutions out there. So we settled for this solution.&lt;br&gt;
&lt;br&gt;
You can grab the solution attached below. Please feel free to comment on this solution's
possible drawbacks.&lt;br&gt;
&lt;br&gt;
&lt;a href="http://www.berkesokhan.com/blog/content/binary/Samples.Validation.BerkesVariant.rar"&gt;Samples.Validation.BerkesVariant.rar
(83.76 KB)&lt;/a&gt;&lt;img width="0" height="0" src="http://www.berkesokhan.com/blog/aggbug.ashx?id=584899a5-488b-4202-ad93-2b1ab6c85de6" /&gt;</description>
      <comments>http://www.berkesokhan.com/blog/CommentView,guid,584899a5-488b-4202-ad93-2b1ab6c85de6.aspx</comments>
      <category>.NET</category>
      <category>C#</category>
      <category>In English</category>
      <category>MVVM</category>
      <category>Teknik</category>
      <category>WPF</category>
    </item>
    <item>
      <trackback:ping>http://www.berkesokhan.com/blog/Trackback.aspx?guid=999dc7ed-9753-40cd-ae12-6c882949b1f5</trackback:ping>
      <pingback:server>http://www.berkesokhan.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.berkesokhan.com/blog/PermaLink,guid,999dc7ed-9753-40cd-ae12-6c882949b1f5.aspx</pingback:target>
      <dc:creator>Berke Sökhan</dc:creator>
      <wfw:comment>http://www.berkesokhan.com/blog/CommentView,guid,999dc7ed-9753-40cd-ae12-6c882949b1f5.aspx</wfw:comment>
      <wfw:commentRss>http://www.berkesokhan.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=999dc7ed-9753-40cd-ae12-6c882949b1f5</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">Başlık herşeyi anlatıyor. Ama söz edilmesi
gereken bir kaç değişiklik mevcut tabi ve söz de edilmiş:<br /><br />
Scott Guthrie: <a href="http://weblogs.asp.net/scottgu/archive/2008/05/12/visual-studio-2008-and-net-framework-3-5-service-pack-1-beta.aspx">Visual
Studio 2008 and .NET Framework 3.5 Service Pack 1 Beta</a><br />
Scott Hanselman: <a href="http://www.hanselman.com/blog/VS2008AndNet35SP1BetaShouldYouFearThisRelease.aspx">VS2008
and .Net 3.5 SP1 Beta - Should You Fear This Release?</a><br />
Somasegar's WebLog (MSDN Blogger): <a href="http://blogs.msdn.com/somasegar/archive/2008/05/12/visual-studio-2008-and-net-fx-3-5-sp1-beta-available-now.aspx">Visual
Studio 2008 and .NET FX 3.5 SP1 Beta available now</a><br /><br />
Bir şey eklemek istemiyorum, çünkü eminim MS evanjelistleri onlarca defa aynı şeyi
yazmışlardır. ;)<br /><br />
Ekleme: 
<br />
    (tabii ki) InfoQ: <a href="http://www.infoq.com/news/2008/05/35-SP1">New
version of .NET Disguised as a "Service Pack"</a><br /><p></p><img width="0" height="0" src="http://www.berkesokhan.com/blog/aggbug.ashx?id=999dc7ed-9753-40cd-ae12-6c882949b1f5" /></body>
      <title>Visual Studio 2008 ve .NET Framework 3.5 SP1 Betası Yayımlandı</title>
      <guid isPermaLink="false">http://www.berkesokhan.com/blog/PermaLink,guid,999dc7ed-9753-40cd-ae12-6c882949b1f5.aspx</guid>
      <link>http://www.berkesokhan.com/blog/2008/05/13/VisualStudio2008VeNETFramework35SP1Betas%c4%b1Yay%c4%b1mland%c4%b1.aspx</link>
      <pubDate>Tue, 13 May 2008 10:15:02 GMT</pubDate>
      <description>Başlık herşeyi anlatıyor. Ama söz edilmesi gereken bir kaç değişiklik mevcut tabi ve söz de edilmiş:&lt;br&gt;
&lt;br&gt;
Scott Guthrie: &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/05/12/visual-studio-2008-and-net-framework-3-5-service-pack-1-beta.aspx"&gt;Visual
Studio 2008 and .NET Framework 3.5 Service Pack 1 Beta&lt;/a&gt;
&lt;br&gt;
Scott Hanselman: &lt;a href="http://www.hanselman.com/blog/VS2008AndNet35SP1BetaShouldYouFearThisRelease.aspx"&gt;VS2008
and .Net 3.5 SP1 Beta - Should You Fear This Release?&lt;/a&gt;
&lt;br&gt;
Somasegar's WebLog (MSDN Blogger): &lt;a href="http://blogs.msdn.com/somasegar/archive/2008/05/12/visual-studio-2008-and-net-fx-3-5-sp1-beta-available-now.aspx"&gt;Visual
Studio 2008 and .NET FX 3.5 SP1 Beta available now&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
Bir şey eklemek istemiyorum, çünkü eminim MS evanjelistleri onlarca defa aynı şeyi
yazmışlardır. ;)&lt;br&gt;
&lt;br&gt;
Ekleme: 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; (tabii ki) InfoQ: &lt;a href="http://www.infoq.com/news/2008/05/35-SP1"&gt;New
version of .NET Disguised as a "Service Pack"&lt;/a&gt;
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.berkesokhan.com/blog/aggbug.ashx?id=999dc7ed-9753-40cd-ae12-6c882949b1f5" /&gt;</description>
      <comments>http://www.berkesokhan.com/blog/CommentView,guid,999dc7ed-9753-40cd-ae12-6c882949b1f5.aspx</comments>
      <category>.NET</category>
      <category>Araçlar</category>
      <category>ASP.NET</category>
      <category>C#</category>
      <category>IDE</category>
      <category>Teknik</category>
      <category>Visual Studio</category>
    </item>
    <item>
      <trackback:ping>http://www.berkesokhan.com/blog/Trackback.aspx?guid=f6e29e4b-7142-4be3-bdae-249d32a698b9</trackback:ping>
      <pingback:server>http://www.berkesokhan.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.berkesokhan.com/blog/PermaLink,guid,f6e29e4b-7142-4be3-bdae-249d32a698b9.aspx</pingback:target>
      <dc:creator>Berke Sökhan</dc:creator>
      <wfw:comment>http://www.berkesokhan.com/blog/CommentView,guid,f6e29e4b-7142-4be3-bdae-249d32a698b9.aspx</wfw:comment>
      <wfw:commentRss>http://www.berkesokhan.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=f6e29e4b-7142-4be3-bdae-249d32a698b9</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">A while (or may be a year ago), I blogged
about the White Screen of Darn. It came with the Visual Studio 2005 designer, and
occurs when for a reason designer couldn't render (generally referenced 3rd party)
UI components.<br /><br />
And, it happens again. 
<br /><br /><img src="http://www.berkesokhan.com/blog/content/binary/wsod2.gif" border="0" /><br /><br />
With the new Visual Studio 2008 interface also we have a new WSoD error screen :).<br /><br />
The problem shows in a form, when an assembly of a 3rd party UI component directly
or indirecly referenced multiple times. As the problematic error message will be like
"type Asy1.TypeA couldn't be cast to Asy1.TypeA", this shows us, VS designer wrongly
assumes same types as different types.<br /><br />
And here is the resolution: <b>Clean the project, and Build it again.</b><br /><br />
Then, VS corrects its mistake, and shows designer without errror. ;)<br /><br /><br /><img width="0" height="0" src="http://www.berkesokhan.com/blog/aggbug.ashx?id=f6e29e4b-7142-4be3-bdae-249d32a698b9" /></body>
      <title>White Screen of Darn: WSoD - Take 2</title>
      <guid isPermaLink="false">http://www.berkesokhan.com/blog/PermaLink,guid,f6e29e4b-7142-4be3-bdae-249d32a698b9.aspx</guid>
      <link>http://www.berkesokhan.com/blog/2008/05/02/WhiteScreenOfDarnWSoDTake2.aspx</link>
      <pubDate>Fri, 02 May 2008 14:43:36 GMT</pubDate>
      <description>A while (or may be a year ago), I blogged about the White Screen of Darn. It came with the Visual Studio 2005 designer, and occurs when for a reason designer couldn't render (generally referenced 3rd party) UI components.&lt;br&gt;
&lt;br&gt;
And, it happens again. 
&lt;br&gt;
&lt;br&gt;
&lt;img src="http://www.berkesokhan.com/blog/content/binary/wsod2.gif" border="0"&gt;
&lt;br&gt;
&lt;br&gt;
With the new Visual Studio 2008 interface also we have a new WSoD error screen :).&lt;br&gt;
&lt;br&gt;
The problem shows in a form, when an assembly of a 3rd party UI component directly
or indirecly referenced multiple times. As the problematic error message will be like
"type Asy1.TypeA couldn't be cast to Asy1.TypeA", this shows us, VS designer wrongly
assumes same types as different types.&lt;br&gt;
&lt;br&gt;
And here is the resolution: &lt;b&gt;Clean the project, and Build it again.&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
Then, VS corrects its mistake, and shows designer without errror. ;)&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;img width="0" height="0" src="http://www.berkesokhan.com/blog/aggbug.ashx?id=f6e29e4b-7142-4be3-bdae-249d32a698b9" /&gt;</description>
      <comments>http://www.berkesokhan.com/blog/CommentView,guid,f6e29e4b-7142-4be3-bdae-249d32a698b9.aspx</comments>
      <category>.NET</category>
      <category>Araçlar</category>
      <category>IDE</category>
      <category>In English</category>
      <category>Visual Studio</category>
    </item>
  </channel>
</rss>