
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<atom:link href="http://www.oguzhan.info/rss" rel="self" type="application/rss+xml" />
<title>Oguzhan YILMAZ</title>
<description>Programlama, Internet, Web Teknolojileri, Is guc ve Guzel Seyler'i paylastigim blogum.</description>
<link>http://www.oguzhan.info/</link>
<language>en-tr</language>
<generator>Oguzhan</generator>
<copyright>Oguzhan YILMAZ</copyright>
<image>
<url>http://www.oguzhan.info/info-logo2.jpg</url>
<title>Oguzhan YILMAZ</title>
<link>http://www.oguzhan.info/</link>
</image>
<managingEditor>aspsrc@gmail.com (Oguzhan YILMAZ)</managingEditor>

<item>
<title>C# Refaktoring Ipu&#231;lar&#305;</title>
<description>&lt;p&gt;Yaz&#305;l&#305;m sekt&amp;ouml;r&amp;uuml;nde ve hatta BT gezgeninde genel olarak s&amp;ouml;ylenen bir s&amp;ouml;z vard&#305;r &quot;&amp;Ccedil;al&#305;&#351;&#305;yorsa Elleme&quot;.&lt;br /&gt;Baz&#305; sistemlerde do&#287;ru olsada yaz&#305;l&#305;m geli&#351;tirme prensipleri &amp;ccedil;er&amp;ccedil;evesinde bu &amp;ccedil;ok iyi bir &#351;ey de&#287;ildir. &amp;Ccedil;&amp;uuml;nk&amp;uuml; &amp;ccedil;al&#305;&#351;t&#305;rd&#305;&#287;&#305;n&#305;z sistemi her zaman i&amp;ccedil;in daha iyi, daha h&#305;zl&#305; ve stabil hale getirme &#351;ans&#305;n&#305;z vard&#305;r. &lt;br /&gt;Di&#287;er taraftan bir i&#351;i &amp;ccedil;&amp;ouml;zmek i&amp;ccedil;in ilk geli&#351;tirdi&#287;iniz algoritma genelde ileride probleme yol a&amp;ccedil;abilecek (Code Smell) potansiyele sahiptir ki g&amp;ouml;r&amp;uuml;p geriye d&amp;ouml;n&amp;uuml;p gere&#287;ince d&amp;uuml;zeltmek gerekir. &#304;&#351;te bu d&amp;uuml;zeltme, toparlama yaparken ge&amp;ccedil;irdi&#287;iniz zamana ve kodlarda yapt&#305;&#287;&#305;n&#305;z iyile&#351;tirmelere, de&#287;i&#351;ikliklere de yaz&#305;l&#305;m aleminde &quot;Code Refactoring&quot; deniyor.&lt;/p&gt;
&lt;p&gt;Kavramlar ve i&#351;in teorik taraf&#305; ile Yaz&#305;l&#305;m M&amp;uuml;hendisleri ve Bilgisayar Bilimcileri u&#287;ra&#351;a dursun biz direkt koda'a dalal&#305;m;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Not: Daha fazla &amp;ouml;rnek, teori ve derine inmek isterseniz &quot;anti pattern, code smell, code stink&quot; gibi &#351;eyleri aratabilirsiniz.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img style=&quot;display: block; margin-left: auto; margin-right: auto;&quot; src=&quot;/media/once_sonra.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;Ouml;rnekleri verirken yukar&#305;daki mant&#305;kta ilerleyece&#287;im. &amp;Ouml;nce &#351;i&#351;man, yava&#351; koda bakaca&#287;&#305;z, daha sonrada seksi kod'a bakaca&#287;&#305;z b&amp;ouml;ylece aradaki fark yukar&#305;da oldu&#287;u gibi daha &amp;ccedil;arp&#305;c&#305; g&amp;ouml;r&amp;uuml;necek. Tabi seksi kod'a bak&#305;p, yukar&#305;da ki bayana bakt&#305;&#287;&#305;n&#305;zdaki etkiyi al&#305;yorsan&#305;z da bilgisayar&#305;n ba&#351;&#305;ndan kalkma vaktinizin geldi&#287;ini hat&#305;rlatmak isterim.&lt;/p&gt;
&lt;p&gt;&#304;nceden ba&#351;layal&#305;m;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/media/refaktoring_s_1.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Ayn&#305; de&#287;i&#351;ken tipleri, ayn&#305; de&#287;eri alacaksa kullanabilece&#287;imiz bu yaz&#305;m se&amp;ccedil;ene&#287;i bir ka&amp;ccedil; de&#287;i&#351;kende pek kullan&#305;&#351;l&#305; olmasada baz&#305; durumlarda onlarca de&#287;i&#351;ken tan&#305;mlaman&#305;z gerekdi&#287;inde uzun kod y&#305;&#287;&#305;nlar&#305;nda sizi kurtaran bir etki yapar. Akl&#305;n&#305;zda olsun.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/media/refaktoring_s_2.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Yukar&#305;da ki &amp;ouml;rnek asl&#305;nda &amp;ccedil;ok s&#305;k kar&#351;&#305;la&#351;t&#305;&#287;&#305;m&#305;z bir olay. String'in veya objenin belirlie bir de&#287;erde olup olmad&#305;&#287;&#305;n&#305; en rahat if ile buluruz ve ko&#351;ullar&#305; i&#351;letiriz fakat programc&#305; dostu if her zaman i&#351;inizi kolayla&#351;t&#305;rmaz bazende uzat&#305;r. &amp;Ouml;zellikle bool tipi d&amp;ouml;n&amp;uuml;&#351;lerinde kodlar&#305; k&#305;saltmam&#305;z&#305; sa&#287;layan bir d&amp;uuml;&#351;&amp;uuml;nce tarz&#305; diyebiliriz.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/media/refaktoring_s_3.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Ba&#351;ka bir &amp;ouml;rnekde try..catch kullan&#305;m&#305; ile ilgili. Herkesin bildi&#287;i gibi bu blo&#287;u kullanmak CLR i&amp;ccedil;in olduk&amp;ccedil;a maliyetli o nedenle try...catch blog'unu bir ko&#351;ul olarak kullanan programc&#305;y&#305; d&amp;ouml;vseniz kimse ses &amp;ccedil;&#305;karmaz. .Net zaten try-catch kullanmayal&#305;m diye bize bir s&amp;uuml;r&amp;uuml; method sunuyor. &amp;Ouml;rne&#287;imizde dosyan&#305;n var olup, olmad&#305;&#287;&#305;n&#305; kontrol etmek i&amp;ccedil;in kolayl&#305;kla File.Exists() methodunu kullanabiliriz. B&amp;ouml;ylece try..catch kullanmam&#305;za gerek kalmaz ve kodumuz daha h&#305;zl&#305; &amp;ccedil;al&#305;&#351;&#305;r.&lt;/p&gt;
&lt;p&gt;Di&#287;er taraftan FileStream disposable bir class oldu&#287;undan using i&amp;ccedil;inde kullanmak daha do&#287;ru olacakt&#305;r, ki i&#351;imiz bitti&#287;inde otomatik olarak GC'nin ellerine emanet edilsin.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/media/refaktoring_s_4.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Ve tabiki string i&#351;lemleri. En &amp;ccedil;ok can &amp;ccedil;eki&#351;ti&#287;imiz ve takla att&#305;&#287;&#305;m&#305;z konulardan biride string i&#351;lemleri. Neyse ki .Net bize string &amp;uuml;zerinde i&#351;lemler yapabilmek i&amp;ccedil;in bir ton ara&amp;ccedil; sunuyor. Sol tarafta g&amp;ouml;rd&amp;uuml;&#287;&amp;uuml;n&amp;uuml;z string birle&#351;tirme i&#351;lemi (concatanate derler) her ne kadar dil kurallar&#305;na uygun olsada &amp;ccedil;al&#305;&#351;mas&#305; yava&#351;, yaz&#305;lmas&#305; ve okunmas&#305;da zordur. Daha h&#305;zl&#305;, okunmas&#305; ve yazmas&#305; kolay hali ise sa&#287; tarata string.format kullan&#305;larak ger&amp;ccedil;ekle&#351;tirilmi&#351;tir. Tabi string birle&#351;tirmeden s&amp;ouml;z ediyorsan StringBuilder'dan da s&amp;ouml;z etmemiz gerekir ki a&#351;a&#287;&#305;da bir &amp;ouml;rnek mevcuttur.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/media/refaktoring_s_6.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Ba&#351;ka bir k&amp;ouml;t&amp;uuml; if &amp;ouml;rne&#287;i. Her ne kadar s&amp;uuml;sl&amp;uuml; parantezlerle kodu uzun g&amp;ouml;sterip &quot;oha, arbiden k&#305;salm&#305;&#351;&quot; dedirtmeye &amp;ccedil;al&#305;&#351;amda burda &#351;airin demek istedi&#287;i &#351;ey &quot;refaktoring faydal&#305; bir &#351;ey&quot; mesaj&#305; d&#305;r. Yine burda do&#287;ru yerde, do&#287;ru ko&#351;ulun kullan&#305;m&#305;n yapm&#305;&#351; oldu&#287;u etkiyi g&amp;ouml;rebilirsiniz. Te&#351;ekk&amp;uuml;rler :?&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/media/refaktoring_s_7.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Yine do&#287;ru zamanda ve do&#287;ru yerde kullan&#305;lan bir ko&#351;ul operator&amp;uuml; &quot;??&quot;. Bir class'&#305;n null olup olmad&#305;&#287;&#305;n&#305; kontrol eder ve null ise ko&#351;ulu i&#351;letir. If burda yine yapaca&#287;&#305;n&#305; yapm&#305;&#351; ve i&#351;leri zorla&#351;t&#305;rm&#305;&#351; fakat ayn&#305; imdad&#305;m&#305;za ?? ko&#351;arak i&#351;leri yoluna sokmu&#351;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/media/refaktoring_s_8.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Bu sefer i&#351;ler biraz de&#287;i&#351;ik ger&amp;ccedil;ek hayata daha yak&#305;n bir method ile kar&#351;&#305; kar&#351;&#305;yay&#305;z fakat kod harabe! En ba&#351;taki array'&#305;n eleman&#305; olup olmad&#305;&#287;&#305; daha sa&#287;l&#305;kl&#305; bir yolla kontrol edilebilirdi, ek olarak yine string birle&#351;tirme i&#351;leminde .Net'in nimetleri kullan&#305;lmam&#305;&#351;.&lt;/p&gt;
&lt;p&gt;Refaktoring sonras&#305; String'imizi StringBuilder yapt&#305;k ki string birle&#351;tirme i&#351;lemlerinde maksimum performans&#305; alal&#305;m, sonra Array'&#305;n bir elemana sahip olup, olmad&#305;&#287;&#305;n&#305;z Linq'in Any() Extension methodu ile kolay bir &#351;ekilde &amp;ouml;&#287;rendik, arkas&#305;ndanda AppendFormat() methodu ile de okunakl&#305; bir &#351;ekilde stringimizi olu&#351;turduk.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/media/refaktoring_s_9.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Bu sefer &#351;i&#351;man olan sa&#287; taraf oldu. Neden? &amp;ccedil;&amp;uuml;nk&amp;uuml; kod'u her inceleyen taraf&#305;ndan ne yapt&#305;&#287;&#305;n&#305;n anla&#351;&#305;lmas&#305; gerekiyor bu nedenle biraz daha pseudo'ya ka&amp;ccedil;&#305;rd&#305;k. ExecuteTask() methodundan errorCode'a bir de&#287;er atan&#305;yor ve o de&#287;ere g&amp;ouml;rede methodlar &amp;ccedil;al&#305;&#351;&#305;yor fakat sa&#287;daki kodda bir s&#305;f&#305;r de&#287;erinin ne oldu&#287;unu bilmiyoruz. Halbuki bilmek gerekiyor ki bir &#351;ey de&#287;i&#351;tireceksek ilgili methodda de&#287;i&#351;tirelim. Bizde gittik class'&#305;n ba&#351;&#305;na bu de&#287;i&#351;kenleri const tipinden ekledik ve condition'a tekrar verdik. &#350;imdi neyin ne oldu&#287;u dahada anla&#351;&#305;l&#305;r oldu.&lt;/p&gt;
</description>
<pubDate>25.12.2011</pubDate>
<link>http://www.oguzhan.info/?547/C%23+Refaktoring+Ipu%26%23231%3Blar%26%23305%3B</link>
<guid>http://www.oguzhan.info/?547/C%23+Refaktoring+Ipu%26%23231%3Blar%26%23305%3B#547</guid>
</item>

<item>
<title>.Net ile PowerShell Module Geli&#351;tirme</title>
<description>
&lt;p&gt;Powershell ge&#231;ti&#287;imiz y&#305;llarda hayat&#305;m&#305;za girdi ve Windows &#252;zerinde scripting'e yeni bir boyut kazand&#305;rd&#305;. Arkas&#305;ndaki g&#252;&#231;l&#252; .Net Framework deste&#287;i sayesinde de Powershell ile hayal etti&#287;iniz her hareketi yapar hale geldik. Eskiden Batch Scripting ile 30 sat&#305;rda yap&#305;labilen i&#351;ler Powershell kullan&#305;larak tek sat&#305;rla indirgenebiliyor. Tabi her zaman tam ihtiyac&#305;n&#305;za uygun komut bulunmad&#305;&#287;&#305;ndan geni&#351;letmek veya uygulaman&#305;z&#305; command line ile de y&#246;netmek isteyebiliyorsunuz.&lt;/p&gt;&lt;p style=&quot;margin-left: 40px;&quot;&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;(Aga, laga luga yapma hepsini okuyacak vaktim yok, bana kodu ver modundaysan proje dosyas&#305;na &lt;a href=&quot;http://www.oguzhan.info/source/PoshWhois.zip&quot;&gt;burdan&lt;/a&gt; ula&#351;abilirsin.&lt;/span&gt;)&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&#304;&#351;te bunun i&#231;in PowerShell yaz&#305;l&#305;m geli&#351;tiricilere geni&#351;letilebilir &#246;zellikler sunuyor. Bakal&#305;m bu &#246;zelli&#287;i .Net &#252;zerinde nas&#305;l kullanabiliyormu&#351;uz.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;PowerShell Mod&#252;l&#252;m&#252;z Ne Yapacak?&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Bir alanad&#305;n&#305;n (domain) bilgilerini al&#305;p ekrana basan basit bir Whois mod&#252;l&#252; yazaca&#287;&#305;z. Bunu Powershell &#252;zerinden de yapabilirz tabiki fakat konu PowerShell mod&#252;l&#252; nas&#305;l yaz&#305;l&#305;r oldu&#287;udan .Net taraf&#305;na de&#287;inece&#287;iz ;)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Neler Laz&#305;m&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Genelde Windows 7 ile birlikte Powershell'in 1.0 s&#252;r&#252;m yeterli fakat 2.0 s&#252;r&#252;m&#252;de y&#252;kleyebilirsiniz. S&#252;r&#252;mlerle ilgili &lt;a href=&quot;http://blogs.msdn.com/b/powershell/archive/2008/12/30/download-windows-powershell.aspx &quot;&gt;burdan&lt;/a&gt; detayl&#305; bilgi alabilirsiniz&lt;/li&gt;
&lt;li&gt;Visual Studio 2010'un herhangi bir s&#252;r&#252;m&#252;.&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;PowerShell mod&#252;l&#252; geli&#351;tirebilmek i&#231;in Powershell Referanslar&#305;.&lt;/li&gt;
&lt;li&gt;.Net Framework 2.0 ve &#252;zeri.&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;PowerShell Referanslar&#305;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Genelde;&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;&lt;em&gt;C:\Program Files\Reference Assemblies\Microsoft\WindowsPowerShell\v1.0&lt;/em&gt;&lt;/p&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;../media/powershell_1.png&quot; /&gt;
&lt;/div&gt;&lt;p align=&quot;baseline&quot;&gt;dizini alt&#305;ndad&#305;r. Burda gerekli olan dosya &lt;strong&gt;System.Management.Automation.dll&lt;/strong&gt; ve Native olarak gelen &lt;strong&gt;System.Management&lt;/strong&gt; referans&#305;n&#305;da projenize eklemeniz gerekir.&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;http://www.oguzhan.info/media/powershell_3.png&quot; /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ba&#351;lang&#305;&#231;&lt;/strong&gt;&lt;/p&gt;
&lt;p align=&quot;baseline&quot;&gt;Powershell mod&#252;l&#252; geli&#351;tirmek i&#231;n ortam&#305; tedarik ettikten sonra Visual Studio &#252;zerinden &lt;strong&gt;New&lt;/strong&gt; &amp;gt; &lt;strong&gt;Project&lt;/strong&gt; &amp;gt; &lt;strong&gt;Class Library&lt;/strong&gt; komutunu veriyoruz. PowerShell mod&#252;l&#252; i&#231;in .Net 2.0 CLR versionu gerekli oldu&#287;undan .Net  Framework 3.5 se&#231;iyoruz.&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;http://www.oguzhan.info/media/powershell_2.png&quot; /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;.Net 4.0 neden se&#231;medik diyebilirsiniz. Mod&#252;l&#252; .Net 4.0 ile de geli&#351;tirebiliriz fakat bunun i&#231;in Powershell.exe.config'e bir talimat vermemiz gerekir. Yeri gelmi&#351;ken verelim.&lt;/p&gt;
&lt;p&gt;C:\Windows\system32\WindowsPowerShell\v1.0 dizininde yani &lt;span style=&quot;font-weight: bold;&quot;&gt;$pshome&lt;/span&gt; (&lt;span style=&quot;font-style: italic;&quot;&gt;Bunu powershell i&#231;inde &#231;a&#287;&#305;r&#305;rsan&#305;z ayn&#305; klas&#246;r&#252; d&#246;nd&#252;recektir&lt;/span&gt;) powershell.exe.config dosyas&#305;n&#305; bulun. Yoksa da yarat&#305;n. Daha sonra a&#351;a&#287;&#305;da ki tan&#305;mlamay&#305; ger&#231;ekle&#351;tirin.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;http://www.oguzhan.info/media/powershell_4.png&quot; /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;Bundan sonra .Net 4.0 alt&#305;nda PowerShell geli&#351;tirebilirsiniz. Fakat bu projede gerek olmad&#305;&#287;&#305;ndan ben .Net 2.0 ile idare ediyorum.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Kod&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script src=&quot;https://gist.github.com/1472297.js?file=WhoisCommand.cs&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;A&#231;&#305;klama&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Kod'a bakt&#305;&#287;&#305;m&#305;zda ilk dikkatimizi &#231;eken Cmdlet tipinden WhoisCommand class&#305;m&#305;z&#305; t&#252;reti&#287;imiz dir (inheritance olay&#305;). &lt;br /&gt;Standart bir Powershell komutu &#351;eklinde hareket etmesini sa&#287;lamak i&#231;in Cmdlet'den t&#252;retiyoruz. Yine Cmdlet s&#305;n&#305;f&#305;n&#305;n kurallar&#305;ndan CmdletAttributes'ini deklare etmemiz gerekiyor ki Powershell mod&#252;l&#252; &#231;al&#305;&#351;t&#305;r&#305;rken hangi maksatla &#231;al&#305;&#351;t&#305;r&#305;ld&#305;&#287;&#305;n&#305; bilsin. &lt;br /&gt;&lt;/p&gt;&lt;p&gt;Burda biz veri &#231;a&#287;&#305;raca&#287;&#305;m&#305;z i&#231;in &lt;span style=&quot;font-weight: bold;&quot;&gt;VerbsCommon.Get&lt;/span&gt; enum'unu kulland&#305;k fakat herhangi bir de&#287;er tan&#305;mlayacak olsayd&#305;k &lt;span style=&quot;font-weight: bold;&quot;&gt;VerbsCommon.Set&lt;/span&gt; de diyebilirdik. Bu konu ile ilgili ayr&#305;nt&#305;l&#305; bilgiyi &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/windows/desktop/ms714428%28v=vs.85%29.aspx&quot;&gt;buradan&lt;/a&gt; alabilirsiniz. Uzun uzun hepsini saymak 5 sayfay&#305; al&#305;r :)&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px; font-weight: bold;&quot;&gt;NounName&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;CmdletAttribute'nin di&#287;er bir parametreside &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/windows/desktop/ms714423%28v=vs.85%29.aspx&quot;&gt;NounName&lt;/a&gt;. NounName Powershell ortam&#305;nda komutun isminin ne olaca&#287;&#305;n&#305; belirler burda &amp;quot;&lt;strong&gt;Whois&lt;/strong&gt;&amp;quot; dedik fakat Verbs'lerden Get'i se&#231;ti&#287;imiz i&#231;in Powershell ortam&#305;nda komutu &#231;a&#287;&#305;rmak i&#231;in &amp;quot;&lt;span style=&quot;font-weight: bold;&quot;&gt;Get-Whois&lt;/span&gt;&amp;quot; &#351;eklinde kullanmam&#305;z gerekiyor.&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px; font-weight: bold;&quot;&gt;Parametereler&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;Bu ortamda parametere olu&#351;turmak i&#231;in basit&#231;e ilgili class'da property olu&#351;turup &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/windows/desktop/dd878345%28v=VS.85%29.aspx&quot;&gt;ParameterAttribute&lt;/a&gt; vermeniz yeterli. Burda dikkatinizi &#231;ekmi&#351;tir, Parameter &#246;zelli&#287;inin Mandatory parametresi true. Bu demektir ki, parametre Powershell ortam&#305;nda zorludur. Bizim senaryomuzda da zaten girilmezse Whois &#231;al&#305;&#351;mayaca&#287;&#305;ndan bunu &amp;quot;true&amp;quot; olarak verdik. ParameterAttribute'sinin full referans&#305; i&#231;in &lt;a href=&quot;http://technet.microsoft.com/en-us/library/dd347600.aspx&quot;&gt;buradan&lt;/a&gt; kast&#305;rabilirsiniz.&lt;/p&gt;
&lt;p&gt;Tan&#305;mlaralar&#305; yapt&#305;ktan sonra hemen &lt;span style=&quot;font-weight: bold;&quot;&gt;ProcessRecord()&lt;/span&gt; methodnu &lt;span style=&quot;text-decoration: underline;&quot;&gt;override&lt;/span&gt; edip i&#231;ini dolduruyoruz. Bu method Powershell'in giri&#351; methodu oldu&#287;undan her&#351;ey burda &#231;al&#305;&#351;&#305;yor dolay&#305;s&#305;yla bizim methodlar &#231;al&#305;&#351;&#305;yor ve whois bilgisini, whois serverdan talep ediyor. Her&#351;ey yolunda gidersede ald&#305;&#287;&#305;m&#305;z string de&#287;eriniz WriteObject(); methodu ile ekrana bas&#305;t&#305;r&#305;yoruz.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Import-Module&lt;/strong&gt;&lt;/p&gt;
&lt;p align=&quot;baseline&quot;&gt;Geli&#351;tirdi&#287;imiz mod&#252;l&#252; PowerShell ortam&#305;nda kullanabilmek i&#231;in &lt;strong&gt;Import-Module&lt;/strong&gt; komutunu kullan&#305;yoruz. &#350;&#246;yle ki;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;http://www.oguzhan.info/media/powershell_5.png&quot; /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;Mod&#252;l&#252;m&#252;z&#252; kontrol etmek istersek de &lt;strong&gt;Get-Module&lt;/strong&gt; komutu i&#351;imizi g&#246;r&#252;yor.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&#160;&lt;img src=&quot;http://www.oguzhan.info/media/powershell_6.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Yukar&#305;da g&#246;rd&#252;&#287;&#252;n&#252;z gibi Name Projemizin ismi, ExportedCommands ise Get-Whois olarak PowerShell ortam&#305;na yans&#305;m&#305;&#351; durumda.&lt;/p&gt;
&lt;p align=&quot;baseline&quot;&gt;Bundan sonra &amp;quot;Get-Whois domain.com&amp;quot; komutu vererek istedi&#287;imiz alanad&#305;n&#305;n whois bilgilerine ula&#351;abiliriz.&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;http://www.oguzhan.info/media/powershell_7.png&quot; /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;Hepsi bu kadar. Umar&#305;m yard&#305;mc&#305; olmu&#351;tur.&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;Vs.Net 2010 Proje Dosyas&#305; : &lt;a href=&quot;http://www.oguzhan.info/source/PoshWhois.zip&quot;&gt;PoshWhois.zip&lt;/a&gt;&lt;/p&gt;





</description>
<pubDate>13.12.2011</pubDate>
<link>http://www.oguzhan.info/?546/%2ENet+ile+PowerShell+Module+Geli%26%23351%3Btirme</link>
<guid>http://www.oguzhan.info/?546/%2ENet+ile+PowerShell+Module+Geli%26%23351%3Btirme#546</guid>
</item>

<item>
<title>Windows Azure'u Y&#246;netmek</title>
<description>
&lt;a href=&quot;http://www.maestropanel.com&quot;&gt;MaestroPanel&lt;/a&gt;'in Azure'da &#231;al&#305;&#351;acak olan versionunu d&#252;zenlerken d&#252;zg&#252;n &#231;al&#305;&#351;mas&#305; i&#231;in bir ka&#231; &#246;zel ayar yapmak gerekti. Fakat Azure kontrol panelinde IIS ile ilgili ayar yap&#305;labilecek aray&#252;z bulunmuyordu.&lt;br /&gt;&lt;p&gt;
Biraz ara&#351;t&#305;rd&#305;ktan sonra Windows Azure i&#231;in &amp;quot;Startup-Task&amp;quot; konfigurasyonunun oldu&#287;unu &#246;&#287;rendim. 
&lt;/p&gt;

&lt;p&gt;
Projenizde ki &lt;span style=&quot;font-weight: bold;&quot;&gt;ServiceDefinition.csdef&lt;/span&gt; dosyas&#305; web uygulaman&#305;z&#305; Azure'a y&#252;klendikten sonra nas&#305;l hareket edece&#287;ini hangi portu ve hangi protokol&#252; dinleyece&#287;ini belirleyen tan&#305;mlalar i&#231;in vard&#305;r.
&lt;/p&gt;
&lt;p&gt;
Bu dosyan&#305;n i&#231;inde ki konfigurasyon node'lar&#305;ndan bir taneside projemiz &#231;al&#305;&#351;t&#305;r&#305;l&#305;rken i&#351;letilecek komutlar&#305; tan&#305;mlamam&#305;z&#305; sa&#287;layan &amp;quot;&lt;span style=&quot;font-weight: bold;&quot;&gt;Startup&lt;/span&gt;&amp;quot; node'u. 
&lt;/p&gt;
&lt;p&gt;Bu node'un i&#231;ine tan&#305;mlad&#305;&#287;&#305;n&#305;z Windows Command dosyas&#305; yani batch dosyas&#305;n&#305; ayn&#305; Command Prompt gibi d&#252;&#351;&#252;n&#252;n. Girdi&#287;iniz komutlar windows'da &#231;al&#305;&#351;&#305;yormu&#351; gibi Azure taraf&#305;ndan i&#351;letilecektir.&lt;br /&gt;Daha sonra projenize bu dosyay&#305; dahil ediyorsunuz tan&#305;ml&#305;yorsunuz ve Startup nodunu d&#252;zenliyorsunuz.&lt;br /&gt;&lt;/p&gt;

&lt;b&gt;Ayarla.cmd&lt;/b&gt;
&lt;pre&gt;REM queueLength arrt&#305;r
%windir%\system32\inetsrv\appcmd set config  -section:system.applicationHost/applicationPools /applicationPoolDefaults.queueLength:&amp;quot;5000&amp;quot;  /commit:apphost

REM Timeout'u d&#252;&#351;&#252;r.
%windir%\system32\inetsrv\appcmd set config  -section:system.applicationHost/webLimits /connectionTimeout:&amp;quot;00:01:00&amp;quot;  /commit:apphost

REM Process'i artt&#305;r
%windir%\system32\inetsrv\appcmd set config  -section:system.applicationHost/applicationPools /applicationPoolDefaults.processModel.maxProcesses:&amp;quot;4&amp;quot;  /commit:apphost

REM 64bit uygulamalara izin ver.
%windir%\system32\inetsrv\appcmd set config  -section:system.applicationHost/applicationPools /applicationPoolDefaults.enable32BitAppOnWin64:&amp;quot;False&amp;quot;  /commit:apphost
&lt;/pre&gt;

Ayarla.cmd dosyas&#305;n&#305; ben &#351;u &#351;ekilde projeme ekledim.
&lt;br /&gt;&lt;br /&gt;&lt;img border=&quot;0&quot; align=&quot;bottom&quot; hspace=&quot;0&quot; vspace=&quot;0&quot; src=&quot;http://www.oguzhan.info/media/maestro_azure_pic_1.png&quot; /&gt;

&lt;p align=&quot;baseline&quot;&gt;
Bundan sonra ServiceDefinition.csdef dosyam&#305;z&#305;da a&#351;a&#287;&#305;daki gibi d&#252;zenliyoruz.
&lt;/p&gt;&lt;div style=&quot;text-align: center;&quot;&gt;

&lt;img src=&quot;http://www.oguzhan.info/media/maestro_azure_pic_2.png &quot; /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Kaynaklar:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;
&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/gg433059.aspx &quot;&gt;http://msdn.microsoft.com/en-us/library/gg433059.aspx
&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/gg456327.aspx&quot;&gt;http://msdn.microsoft.com/en-us/library/gg456327.aspx&lt;/a&gt;

&lt;/li&gt;&lt;/ul&gt;


</description>
<pubDate>30.11.2011</pubDate>
<link>http://www.oguzhan.info/?545/Windows+Azure%27u+Y%26%23246%3Bnetmek</link>
<guid>http://www.oguzhan.info/?545/Windows+Azure%27u+Y%26%23246%3Bnetmek#545</guid>
</item>

<item>
<title>Microsoft FTP 7.5 i&#231;in &#304;pucu (useDomainNameAsHostName)</title>
<description>
&lt;p&gt;&lt;a href=&quot;http://www.maestropanel.com&quot;&gt;MaestroPanel&lt;/a&gt; i&#231;in Windows Server 2008 R2 ile birlikte gelen Microsoft FTP 7.5 deste&#287;i verdik fakat Hoster'lar&#305;n &#231;ok al&#305;&#351;&#305;k olmad&#305;&#287;&#305; bir authentication y&#246;ntemi var.&lt;/p&gt;

&lt;p&gt;Microsoft FTP 7.5 ile birlikte Vhost deste&#287;i gelmi&#351; yani FTP alanlar&#305; birbirinden tamamen izole olacak &#351;eklide &#231;al&#305;&#351;mas&#305; sa&#287;lanm&#305;&#351;. Bu Ms FTP'nin hem daha g&#252;venli, hemde daha y&#246;netilebilir olmas&#305;n&#305; sa&#287;lam&#305;&#351;.&lt;/p&gt;

&lt;p&gt;Bununla beraber IIS 6.0'da al&#305;&#351;&#305;k oldu&#287;umuz kullan&#305;c&#305; ad&#305; ve &#351;ifre ile giri&#351; yapt&#305;&#287;&#305;m&#305;z kimlik do&#287;rulamas&#305; yerine &lt;b&gt;Domain|Kullan&#305;c&#305;&lt;/b&gt; ad&#305; ve &#350;ifre &#351;eklinde bir kimlik do&#287;rulama mekanizmas&#305; konulmu&#351;.&lt;/p&gt;

&#214;rnek vermek gerekirse.

oguzhan.info MS FTP 7.5 &#252;zerinde &#231;al&#305;&#351;&#305;yor diyelim ve FTP kullan&#305;c&#305; ad&#305;mda &lt;u&gt;ogzftp&lt;/u&gt; olsun, &#351;ifremde &lt;u&gt;p@sssw0rd&lt;/u&gt; olsun. Login olabilmem i&#231;in

&lt;pre&gt;Kullan&#305;c&#305; ad&#305;: &lt;b&gt;oguzhan.info|ogzftp&lt;/b&gt;
&#350;ifre: p@ssw0rd
&lt;/pre&gt;

girmem gerekiyor.

| pipe karakterini domain ile kullan&#305;c&#305; ad&#305;n&#305;z aras&#305;na koymal&#305;s&#305;n&#305;z. Bunu kald&#305;rabilirmiyiz diye biraz ara&#351;t&#305;r&#305;rken, kald&#305;r&#305;lamd&#305;&#287;&#305;n&#305; &#246;&#287;rendim fakat biraz daha son kullan&#305;c&#305;ya yak&#305;n hale getirebilmemiz m&#252;mk&#252;n.

A&#351;a&#287;&#305;daki script ile | pipe karakteri yerine &amp;quot;@&amp;quot; veya &amp;quot;\&amp;quot; karakteride kullanabilmeniz m&#252;mk&#252;n.

&lt;pre&gt;appcmd.exe set config  -section:system.ftpServer/serverRuntime /hostNameSupport.useDomainNameAsHostName:&amp;quot;True&amp;quot;  /commit:apphost
&lt;/pre&gt;

&lt;p&gt;C# Kodunu vermek gerekirse.&lt;/p&gt;

&lt;pre&gt;using System;
using System.Text;
using Microsoft.Web.Administration;

internal static class Sample {

    private static void Main() {
        
        using(ServerManager serverManager = new ServerManager()) { 
            Configuration config = serverManager.GetApplicationHostConfiguration();
            
            ConfigurationSection serverRuntimeSection = config.GetSection(&amp;quot;system.ftpServer/serverRuntime&amp;quot;);
            
            ConfigurationElement hostNameSupportElement = serverRuntimeSection.GetChildElement(&amp;quot;hostNameSupport&amp;quot;);
            hostNameSupportElement[&amp;quot;useDomainNameAsHostName&amp;quot;] = true;
            
            serverManager.CommitChanges();
        }
    }
}
&lt;/pre&gt;

&lt;p&gt;
Bu i&#351;elmlerden sonra son kullan&#305;c&#305;ya domain.com@username veya domain.com\username &#351;eklinde kullan&#305;c&#305; ad&#305; verebilirsiniz.
&lt;/p&gt;


&lt;p&gt;Bu &#351;&#305;k olmayan kullan&#305;c&#305; ad&#305;ndan tamamen kurtulmak i&#231;in FTP 7.5 i&#231;in geli&#351;tirme yapabilece&#287;iniz programlama aray&#252;zleri mevcut. &#214;rne&#287;in &lt;a href=&quot;http://learn.iis.net/page.aspx/669/how-to-use-managed-code-c-to-create-an-ftp-authentication-provider-using-an-xml-database/&quot;&gt;FtpAuthenticationProvider&lt;/a&gt; kullanarak ayr&#305;ca kendiniz bir kimlik do&#287;rulama yazabilirsiniz veya IIS 7.5 &#252;zerinde yine IIS 6.0'&#305;n FTP server&#305;n&#305; kullanabilirsiniz.&lt;/p&gt;

</description>
<pubDate>29.11.2011</pubDate>
<link>http://www.oguzhan.info/?544/Microsoft+FTP+7%2E5+i%26%23231%3Bin+%26%23304%3Bpucu+%28useDomainNameAsHostName%29</link>
<guid>http://www.oguzhan.info/?544/Microsoft+FTP+7%2E5+i%26%23231%3Bin+%26%23304%3Bpucu+%28useDomainNameAsHostName%29#544</guid>
</item>

<item>
<title>IIS 8</title>
<description>
Microsoft'un Build konferans&#305; ile birlikte ortal&#305;k bir hayli hareketlendi ve her zaman oldu&#287;u gibi hayat&#305;m&#305;za yeni kavramlar girdi.&lt;br /&gt;&lt;br /&gt;Bunlardan en &#246;nemlisi san&#305;r&#305;m Windows 8'de g&#246;rmeye al&#305;&#351;aca&#287;&#305;m&#305;z Metro UI. Bu yeni nesil Windows'unun masa&#252;st&#252; temelini olu&#351;turuyor ve developer'a &#231;ok esnek bir yap&#305; sunuyor. Konumuz bu de&#287;il ama &#351;unu &#246;nemle vurgulamak isterimki HTML + JavaScript ile Metro UI uygulamas&#305; yazabiliyorsunuz! Ayr&#305;ca MetroUI'nin alt&#305;nda &#231;al&#305;&#351;mas&#305; i&#231;in eski Win32 benzeri bir API sisteminde WinRT (Windows Runtime) olaca&#287;&#305;n&#305; belirteyim.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;IIS 8&lt;/span&gt;&lt;img vspace=&quot;0&quot; hspace=&quot;5&quot; border=&quot;0&quot; align=&quot;right&quot; src=&quot;/media/iis-8.png&quot; style=&quot;width: 220px; height: 129px;&quot; /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.maestropanel.com/&quot;&gt;MaestroPanel&lt;/a&gt; projesine 
ba&#351;lad&#305;&#287;&#305;mdam beri IIS ile &#231;ok i&#231;li d&#305;&#351;l&#305;y&#305;m. Windows 8'in Developer 
s&#252;r&#252;m&#252;nde ilk bakt&#305;&#287;&#305;m &#351;ey IIS versionu oldu ve direkt IIS 8 olarak 
geldi&#287;ini g&#246;rd&#252;m.&lt;br /&gt;&lt;br /&gt;&#304;lk dikkatimi &#231;eken IIS isminde yeni bir Management Console'un geldi&#287;i (mmc) klasik InetMgr.exe var fakat IIS.mmc ile a&#231;arsan&#305;z bunu sarmalay&#305;p a&#231;&#305;l&#305;&#351;ta Web Platform Installer'la beraber ek &#246;zelliklerde geliyor.&lt;br /&gt;&lt;br /&gt;&#350;imdilik aray&#252;zde &#231;ok b&#252;y&#252;k de&#287;i&#351;iklikler g&#246;rmeyi beklemedim &#231;&#252;nk&#252; IIS 7.0 ile beraber zaten aray&#252;z radikal bi&#231;imde de&#287;i&#351;mi&#351;ti. IIS 8 s&#252;r&#252;m&#252;, 7.0 ile gelen konseptin daha oturmu&#351; hali, yani yeni &#246;zelliklerden ziyade iyile&#351;tirmeleri ve d&#252;zeltmeleri i&#231;eren bir s&#252;r&#252;m olaca&#287;a benziyor.&lt;br /&gt;&lt;br /&gt;Neler Yeni?&lt;br /&gt;&lt;br /&gt;Tabi aray&#252;zde g&#246;zle g&#246;r&#252;l&#252;r bir &#351;ey olmad&#305;&#287;&#305;ndan UI taraf&#305;nda her&#351;ey ayn&#305; diyebilirim. Fakat yenilik olarak &#351;u maddeleri s&#305;ralayabiliriz.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&#350;u andaki sisteme g&#246;re SSL sertifikalar&#305;n&#305; Windows y&#246;netiyordu ve site ile ili&#351;kilendirme i&#231;ini IIS yap&#305;yordu. IIS 8 ile beraber SSL y&#246;netimide IIS'e verildi ve b&#246;ylece Windows'un SSL s&#305;n&#305;rlamalar&#305;ndan kurtulmu&#351; olduk. Bu hoster'lar&#305;n sevece&#287;i bir &#246;zellik lakin Windows 500 sertifika ile s&#305;n&#305;rl&#305;yd&#305;.&lt;/li&gt;&lt;li&gt;IIS8 ile gelen di&#287;er bir iyile&#351;tirme ise NUMA (Non Uniform Memory Access) bu iyile&#351;tirme haf&#305;za kullan&#305;m&#305;n&#305; daha performansl&#305; hale getiriyor dolay&#305;s&#305;yla IIS daha verimli &#231;al&#305;&#351;&#305;yor.&lt;/li&gt;&lt;li&gt;Sonunda derdirtecek bir &#246;zellkle CPU limitlemesi ile ilgili. IIS'in en ba&#351;&#305;ndan beri CPU limitleme &#246;zelli&#287;i mevcuttu fakat bir t&#252;rl&#252; d&#252;zg&#252;n &#231;al&#305;&#351;m&#305;yordu ve bizde &#231;e&#351;itli mekanizmalarla limitlemeler yapma gere&#287;i duyuyorduk. IIS 8 ile birlikte bu &#246;zellik ger&#231;ekten sa&#287;lanmaya ba&#351;lanacakm&#305;&#351;. &#214;zellikle cloud sistemlerde &#231;ok i&#351;e yarayacak bir &#246;zellik diyebilirim.&lt;/li&gt;&lt;li&gt;G&#252;venlik alan&#305;nda Dynamic Access Control diye yeni bir yakla&#351;&#305;m geliyormu&#351;. Bu &#246;zellik sayesinde kullan&#305;c&#305;lar dosya sistemine ald&#305;klar&#305; etiketlere g&#246;re eri&#351;ebileceklermi&#351; hen&#252;z denemedim ama ilgi &#231;ekici bir &#246;zellik.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&#304;lk duyduklar&#305;m&#305;z ve g&#246;rd&#252;klerimiz bunlar. Windows 8'in Server s&#252;r&#252;m&#252;n&#252; test etme f&#305;rsat&#305; bulursam daha detayl&#305; inceleyip yeni IIS'in neler yapabileceini g&#246;rece&#287;iz bakal&#305;m.&lt;br /&gt;&lt;br /&gt;






</description>
<pubDate>16.09.2011</pubDate>
<link>http://www.oguzhan.info/?543/IIS+8</link>
<guid>http://www.oguzhan.info/?543/IIS+8#543</guid>
</item>

<item>
<title>MaestroPanel Screencast Serisi</title>
<description>
MaestroPanel'in &#246;zelliklerini anlatan screencast serisine ba&#351;lad&#305;m. Hedefim haftada bir video yay&#305;nlamak. Bunlardan ilk ikisini ge&#231;en hafta ve bu hafta yay&#305;nlad&#305;m. Ekstradan duymayanlar i&#231;inde buraya yaz&#305;yorum. ;)&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;MaestroPanel Screencast #1 - Sunucu Y&#246;netimi&lt;/span&gt; &lt;a href=&quot;http://bit.ly/ru1SYv&quot;&gt;http://bit.ly/ru1SYv&lt;br /&gt;&lt;/a&gt;Panel'de sunucular nas&#305;l y&#246;netiliyor, ne &#351;ekilde ekleniyor gibi sorulara cevap bulabilece&#287;iniz video.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;MaestroPanel Screencast #2 - Plan Y&#246;netimi&lt;/span&gt; &lt;a href=&quot;http://bit.ly/nHXuMS&quot;&gt;http://bit.ly/nHXuMS&lt;/a&gt;&lt;br /&gt;Panel'de da&#287;&#305;t&#305;k yap&#305;daki modulleri nas&#305;l y&#246;netebilece&#287;iniz, bayi ve domain planlar&#305; nas&#305;l olu&#351;turabilece&#287;inizi ve limitlemeyi nas&#305;l ger&#231;ekle&#351;tirebilece&#287;iniz anlatan videomuz.&lt;br /&gt;&lt;br /&gt;Proje ile ilgili son durumu belirtmek gerekirse,&lt;br /&gt;&lt;a href=&quot;http://www.maestropanel.com&quot;&gt;MaestroPanel&lt;/a&gt; RC seviyesine geldi, hosting firmalar&#305; ile kapal&#305; beta testlerimiz devam ediyor. Penetration testlerinden sonra Release etmeyi d&#252;&#351;&#252;n&#252;yoruz.&lt;br /&gt;&lt;br /&gt;Yak&#305;n zamanda bir Sistem Y&#246;neticisi, Bir Front-End developer ve birde Back-End developer olmak &#252;zere ufak bir ekip kurmay&#305; planl&#305;yoruz. Bu geni&#351; kapsaml&#305; proje ile ilgilenen arkada&#351;lar ping @ maestropanel.com adresine e-mail g&#246;nderirlerse &#351;imdiden adaylar&#305; belirleyebiliriz.&lt;br /&gt;&lt;br /&gt;Projeye destek veren herkese burdan te&#351;ekk&#252;rlerimi sunar&#305;m.&lt;br /&gt;&lt;br /&gt;Takipte kalmak i&#231;in:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://twitter.com/maestropanel&quot;&gt;@maestropanel&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.maestropanel.com&quot;&gt;maestropanel.com&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://blog.maestropanel.com&quot;&gt;blog.maestropanel.com&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

</description>
<pubDate>16.08.2011</pubDate>
<link>http://www.oguzhan.info/?542/MaestroPanel+Screencast+Serisi</link>
<guid>http://www.oguzhan.info/?542/MaestroPanel+Screencast+Serisi#542</guid>
</item>

<item>
<title>Razor Ninja's&#305;n&#305;n El Kitab&#305;</title>
<description>&lt;p&gt;MVC3 ile birlikte Razor ViewEngine geldi&#287;inde tamda yeni bir projeye ba&#351;l&#305;yordum fakat Spark ile devam etmeyi d&amp;uuml;&#351;&amp;uuml;n&amp;uuml;yordum. Spark ile Razor aras&#305;nda ufak bir karars&#305;zl&#305;ktan sonra hem ekosistemi hemde devaml&#305;l&#305;&#287;&#305; olaca&#287;&#305;n&#305; d&amp;uuml;&#351;&amp;uuml;nd&amp;uuml;&#287;&amp;uuml;mdem Razor'u se&amp;ccedil;tim. Al&#305;&#351;ana kadar biraz s&#305;k&#305;nt&#305;l&#305;yd&#305; &amp;ccedil;&amp;uuml;nk&amp;uuml; baz&#305; temel i&#351;lemleri yapmak i&amp;ccedil;in ufak tefek ipu&amp;ccedil;lar&#305;n&#305; bilmek gerekiyordu ara&#351;t&#305;r&#305;rken &amp;ouml;&#287;rendi&#287;im bu ipu&amp;ccedil;lar&#305;n&#305; derleyip b&amp;ouml;yle bir Tutorial haz&#305;rlad&#305;m. Okuyun ;)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;String atraksiyonlar&#305;nda &amp;lt;text/&amp;gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Razor direkt HTML ile i&amp;ccedil;, i&amp;ccedil;e kullan&#305;labildi&#287;inden baz&#305; durumlarda C#'&#305;n i&amp;ccedil;inden string &amp;ccedil;&#305;kt&#305;s&#305; vermek gerekebiliyor. B&amp;ouml;yle durumlarda ba&#351;vurabilece&#287;iniz ak&#305;ll&#305; bir ka&amp;ccedil;&#305;&#351; tag'&#305; olarak &amp;lt;text&amp;gt; i&#351;e yar&#305;yor&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.oguzhan.info/media/razoryazisi/img-1.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;Ccedil;&#305;kt&#305;:&lt;/p&gt;
&lt;p&gt;$('#1').text('Deneme 1');&lt;br /&gt;$('#2').text('Deneme 2');&lt;br /&gt;$('#3').text('Deneme 3');&lt;br /&gt;$('#4').text('Deneme 4');&lt;br /&gt;...&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;@: Blok'u&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Ak&#305;c&#305; bir Razor sytax'&#305; i&amp;ccedil;in kullan&#305;labilecek bir &amp;ouml;zellikte @: i&#351;aretlemesi. Bu i&#351;aretleme &amp;lt;text&amp;gt; ile e&#351;de&#287;erdir tek fark&#305; tek sat&#305;r olarak kullan&#305;lmaktad&#305;r. &amp;lt;text&amp;gt; ise birden fazla sat&#305;rda string &amp;ccedil;&#305;kt&#305;s&#305; vermek i&amp;ccedil;in kullan&#305;l&#305;r ve bu taglar&#305;n aras&#305;ndaki i&#351;aretlemeler ViewEngine taraf&#305;ndan render edilmez. @: kullan&#305;m&#305;na &amp;ouml;rnek;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.oguzhan.info/media/razoryazisi/img-2.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;Ccedil;&#305;kt&#305;:&lt;/p&gt;
&lt;p&gt;&#304;&#351;lem Ger&amp;ccedil;ekle&#351;ti&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Comment'ler nas&#305;l olacak peki?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Razor'da da her ViewEngine'de oldu&#287;u gibi kod i&amp;ccedil;ine a&amp;ccedil;&#305;klama eklemek i&amp;ccedil;in kullanabilece&#287;iniz i&#351;aretlemeler vard&#305;r, tabi klasik olarak bildi&#287;imiz \\ veya ' olarak de&#287;il onun yerine @* ... *@ &#351;eklinde. Bu i&#351;aretlemeyi kullan&#305;larak sunucu tarafl&#305; kod yorumlar&#305; ekleyebiliryorsunuz.&lt;/p&gt;
&lt;p&gt;Tek sat&#305;r i&amp;ccedil;in&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.oguzhan.info/media/razoryazisi/img-3.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;gibi. Burda ki g&amp;uuml;zellik hem tek sat&#305;r hemde &amp;ccedil;oklu sat&#305;rda ayn&#305; i&#351;aretlemeyi kullan&#305;yor olu&#351;umuz.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Strongly-Typed View&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Klasik ASP.NET ViewEngine'inde View'i belirli bir Model ile kullanmak istedi&#287;imizde sayfan&#305;n en &amp;uuml;st&amp;uuml;nde attributes'lerden olu&#351;an uzunca bir tag eklemek gerekiyordu. Razor'da bu @model i&#351;areti ile kolayca ger&amp;ccedil;ekle&#351;tirebilece&#287;iniz bir i&#351;lem.&lt;/p&gt;
&lt;p&gt;&amp;Ouml;rne&#287;in:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.oguzhan.info/media/razoryazisi/img-4.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;@Html.Raw&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;HTML'i Encode ederek ekrana veren g&amp;uuml;zel bir &amp;ouml;zelliktir. Klasik ASP.NET'de ki Server.HtmEncode() fonksiyonuna benzer. Ayn&#305; i&#351;i g&amp;ouml;ren di&#287;er bir yard&#305;mc&#305; komut ise HtmlString().&lt;/p&gt;
&lt;p&gt;Kullan&#305;m&#305; basittir:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.oguzhan.info/media/razoryazisi/img-5.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;Ccedil;&#305;kt&#305;s&#305;:&lt;/p&gt;
&lt;p&gt;&amp;lt;h1&amp;gt;Deneme&amp;lt;/h1&amp;gt;&lt;/p&gt;
&lt;p&gt;olacakt&#305;r.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Namespace'leri nas&#305;l kullanabiliyoruz?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&amp;Ouml;rne&#287;in Razor sayfas&#305;n&#305;n i&amp;ccedil;inde System.IO namespace'i alt&#305;ndan bir Class kullanmak istiyoruz. Bunun i&amp;ccedil;in sayfasn&#305;n @model &amp;ccedil;a&#287;r&#305;s&#305;n&#305;n alt&#305;na @using &amp;ccedil;a&#287;r&#305;s&#305;n&#305; yapman&#305;z yeterli.&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;background-color: #ffff00;&quot;&gt;@using&lt;/span&gt; System.IO&lt;/p&gt;
&lt;p&gt;gibi.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Sayfa i&amp;ccedil;inde @function&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Kullan&#305;&#351;l&#305; &amp;ouml;zelliklerden bir taneside Razor sayfas&#305; i&amp;ccedil;inde sadece o sayfaya &amp;ouml;zel fonksiyonlar &amp;uuml;retip, kolayl&#305;kla kullanabilmemiz. &amp;Ouml;rne&#287;in: Verdi&#287;iniz string'i ekrana k&#305;rm&#305;z&#305; yazan bir sayfa i&amp;ccedil;i function yazmak istersek.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.oguzhan.info/media/razoryazisi/img-6.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&#351;eklinde yazabiliriz. IHtmlString d&amp;ouml;nd&amp;uuml;rd&amp;uuml;&#287;&amp;uuml;ne dikkat etmi&#351;sinizdir Razor bunu render edilecek html string'i olarak alg&#305;layacak ve browser'a yorumlamas&#305; i&amp;ccedil;in g&amp;ouml;nderecektir.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ko&#351;ullar (Conditions) nas&#305;l yaz&#305;lyor?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Razor i&amp;ccedil;inde ?:, switch, if.. ko&#351;ullar&#305; yazmak do&#287;al olarak m&amp;uuml;mk&amp;uuml;n bunun i&amp;ccedil;in @() i&#351;aretlemesi kullan&#305;l&#305;yor.&lt;/p&gt;
&lt;p&gt;&amp;Ouml;rne&#287;in ?: condition'&#305;na &amp;ouml;rnek vermek gerekirse.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.oguzhan.info/media/razoryazisi/img-7.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Model.Status de&#287;eri true oldu&#287;u i&amp;ccedil;in ekrana direkt Tamam yaz&#305;lacakt&#305;r.&lt;/p&gt;
&lt;p&gt;If konu&#351;ulu i&amp;ccedil;in ise;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.oguzhan.info/media/razoryazisi/img-8.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Burda dikkat edilmesi gereken nokta @: kullan&#305;ld&#305;&#287;&#305; i&amp;ccedil;in sat&#305;r atlamalar&#305;n&#305;n zorunlu oldu&#287;u. Di&#287;er bir If ko&#351;ulu &amp;ouml;rne&#287;i ise;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.oguzhan.info/media/razoryazisi/img-9.png&quot; alt=&quot;&quot; width=&quot;721&quot; height=&quot;195&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Burda HTML tag'&#305; ile string'i yaz&#305;d&#305;ryoruz fakat bu her zaman istenen bir durum de&#287;il o nedenle &amp;lt;text&amp;gt; ile'de kullan&#305;lmas&#305; m&amp;uuml;mk&amp;uuml;n.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.oguzhan.info/media/razoryazisi/img-10.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;text ile kulland&#305;&#287;&#305;n&#305;zda sadece &quot;Tamam&quot; string'i ekrana bas&#305;l&#305;r.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Razor Delegate&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Razor Delegate'leri kullanarak daha temiz, okunakl&#305; kodlama yap&#305;lmas&#305; m&amp;uuml;mk&amp;uuml;n. Baz&#305; durumlarda ise karma&#351;&#305;kl&#305;&#287;&#305; ve i&#351;leri olduk&amp;ccedil;a kolayla&#351;t&#305;r&#305;yor. Hemen &amp;ouml;rnek vereyim;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.oguzhan.info/media/razoryazisi/img-11.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&#304;htiyac&#305;n&#305;za g&amp;ouml;re geni&#351;letmeniz m&amp;uuml;mk&amp;uuml;n, parametre dynamic oldu&#287;u i&amp;ccedil;in kendi tipleriniz i&amp;ccedil;inde &amp;ccedil;e&#351;itli fonksiyonlar geli&#351;tirip daha kullan&#305;&#351;l&#305; fonksiyonlar &amp;uuml;retebilirsiniz tabi.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;@Helper&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Razor b&amp;uuml;nyesinde bir &amp;ccedil;ok yard&#305;mc&#305; method bar&#305;nd&#305;rmas&#305;na ra&#287;men ihtiyac&#305;n&#305;za uygun Helper methodlar&#305; yazman&#305;z ka&amp;ccedil;&#305;n&#305;lmazd&#305;r. Bu methodlar&#305;da sadece Razor sayfas i&amp;ccedil;erisinde olu&#351;turup, di&#287;er sayfalarda da kullanabilmek isteyebilirsiniz i&#351;te bunun i&amp;ccedil;in @Helper i&#351;aretlemesi ile olu&#351;turaca&#287;&#305;n&#305;z method'lar&#305; kullanabilirsiniz. &#350;&amp;ouml;yle ki;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.oguzhan.info/media/razoryazisi/img-12.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;Ccedil;&#305;kt&#305;s&#305;:&lt;/p&gt;
&lt;p&gt;118,00 TL&lt;/p&gt;
&lt;p&gt;Burdaki trick ise KdvDahil fonksiyonunu yazd&#305;&#287;&#305;n&#305;z Razor sayfas&#305;n&#305; Projenizde ki App_Code sayfas&#305;n&#305;n alt&#305;na g&amp;ouml;nderdi&#287;inizde KdvDahil fonksiyonuna her Razor sayfas&#305;ndan ula&#351;abiliyor olman&#305;zd&#305;r. &amp;Ouml;rne&#287;in KdvDahil fonksiyonunun yaz&#305;l&#305; oldu&#287;u Razor dosyas&#305;n&#305;n ismi Fiyatlar.cshtml olsun. KdvDahil fonksiyonuna di&#287;er Razor sayfalar&#305;ndan ula&#351;mak i&amp;ccedil;in Fiyatlar.KdvDahil() &#351;eklinde kullanabilmeniz m&amp;uuml;mk&amp;uuml;n.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;HTML data-* ve Class Attributes&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;background-color: #ffff00;&quot;&gt;@&lt;/span&gt;Html.ActionLink methodu i&amp;ccedil;inde HTML5 ile birlikte gelen data-* attributes'ini kullanmak isteyebilirsiniz MVC3 bunun i&amp;ccedil;in Anonymous Type'lerden yararlan&#305;yor fakat HTML'e g&amp;ouml;nderece&#287;iniz attributes syntax'&#305; Anonymous Type'larda kullan&#305;lan cinsten de&#287;il. &amp;Ouml;rnekle a&amp;ccedil;&#305;klayal&#305;m.&lt;/p&gt;
&lt;p&gt;&amp;lt;a href=&quot;/Home/Delete&quot; data-id=&quot;45&quot;&amp;gt;Database&amp;lt;/div&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;ccedil;&#305;kt&#305;s&#305;n&#305; ActionLink kullanabilmek i&amp;ccedil;in a&#351;a&#287;&#305;daki &#351;ekilde yazmal&#305;s&#305;n&#305;z.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.oguzhan.info/media/razoryazisi/img-13.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;dikkat ederseniz data_id olarak yazd&#305;k fakat HTML'e data-id olarak yans&#305;d&#305; buda ActionLink methodunun ak&#305;ll&#305; &amp;ouml;zelliklerinden bir tanesi.&lt;/p&gt;
&lt;p&gt;ActionLink i&amp;ccedil;in verebilece&#287;imiz di&#287;er bir ipucuda class kullan&#305;m&#305;. class .Net'de bir &amp;ouml;zel bir kelime oldu&#287;undan, herhangi bir de&#287;i&#351;kene'de class ismini verirken bunun de&#287;i&#351;ken oldu&#287;unu belirtmelisiniz;&lt;/p&gt;
&lt;p&gt;&amp;lt;a href=&quot;/Home/Delete&quot; data-id=&quot;45&quot; class=&quot;shadow-text&quot;&amp;gt;Database&amp;lt;/div&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;ccedil;&#305;kt&#305;s&#305;n&#305; alabilmeniz i&amp;ccedil;in ActionLink a&#351;a&#287;&#305;daki &#351;ekilde olmal&#305;d&#305;r.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.oguzhan.info/media/razoryazisi/img-14.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;@ burda bir &amp;ccedil;e&#351;it escape karakter olarak kullan&#305;labiliyor.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;@section&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Section'lar genel &#351;ablonlar olu&#351;turulmas&#305;nda kullan&#305;lan son derece yararl&#305; bir Razor fonksiyonudur. MasterPage'de belirleyece&#287;iniz ve isimlendirdi&#287;iniz section'&#305; herhangi bir Razor sayfas&#305;nda &amp;ouml;zel olarak kullanabilirsiniz.&lt;/p&gt;
&lt;p&gt;&amp;Ouml;nce _Layout.cshtml i&amp;ccedil;inde bir section tan&#305;mlamal&#305;s&#305;n&#305;z.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.oguzhan.info/media/razoryazisi/img-15.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Daha sorna Layout eklenmi&#351; bir sayfada bu section'&#305; &amp;ccedil;a&#287;&#305;rabilirsiniz.&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;background-color: #ffff00;&quot;&gt;@section jquery&lt;/span&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $('#body').append('Section &amp;Ccedil;a&#287;&#305;r&#305;ld&#305;');&lt;br /&gt;}&lt;/p&gt;
&lt;p&gt;gibi. Burdaki &amp;ouml;rne&#287;imizde Razor sayfam&#305;za jquery'i tekrar initialize etmeden _Layout &amp;uuml;zerinden &amp;ccedil;al&#305;&#351;t&#305;d&#305;k.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;@Html.RenderPartial&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Kendi olu&#351;turdu&#287;unuz kontrolleri veya PartialView'leri Razor i&amp;ccedil;inden &amp;ccedil;a&#287;&#305;rman&#305;z m&amp;uuml;mk&amp;uuml;n. A&#351;a&#287;&#305;daki &#351;ekilde;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.oguzhan.info/media/razoryazisi/img-16.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Burda dikkat etmeniz gereken &quot;;&quot; noktal&#305; virg&amp;uuml;l. &amp;Ccedil;&amp;uuml;nk&amp;uuml; {..} parantezleri a&amp;ccedil;t&#305;&#287;n&#305;zda C# moduna girmi&#351; oluyorsunuz. Menu.cshtml, PartialView'imiz ~/Views/Shared/ dizini alt&#305;nda olmak zorunda &amp;ccedil;&amp;uuml;nk&amp;uuml; Razor ViewEngine'inde bu path'ler default olarak aran&#305;yor. Fakat bu Path'lerin d&#305;&#351;&#305;nda da PartialView'lerinizi Render etmeniz m&amp;uuml;mk&amp;uuml;n,&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.oguzhan.info/media/razoryazisi/img-17.png&quot; alt=&quot;&quot; width=&quot;721&quot; height=&quot;186&quot; /&gt;&lt;/p&gt;
&lt;p&gt;PartialView'inizi herhangi bir Model ile kullanacaksan&#305;z bu Model'i parametre ge&amp;ccedil;mek i&amp;ccedil;in a&#351;a&#287;&#305;daki syntax'&#305; kullanabilirsiniz.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.oguzhan.info/media/razoryazisi/img-18.png&quot; alt=&quot;&quot; width=&quot;721&quot; height=&quot;186&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&#304;ki @@, Bir @ eder&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Baz&#305; durumlarda Razor'dan string geriye d&amp;ouml;nd&amp;uuml;r&amp;uuml;rken @ i&#351;areti ge&amp;ccedil;en string'ler d&amp;ouml;nd&amp;uuml;rmeniz olas&#305; bu durumda @@ olarak verirseniz Razor bunu alg&#305;lay&#305;p normal string gibi i&#351;leyecektir.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.oguzhan.info/media/razoryazisi/img-19.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Normal string olarak alg&#305;lan&#305;r.&lt;/p&gt;
&lt;p&gt;@Deneme String@&lt;/p&gt;
&lt;p&gt;Razor Syntax'&#305; olarak alg&#305;lan&#305;r.&lt;/p&gt;
&lt;p&gt;Ek olarak e-posta adreslerini Razor otomatik alg&#305;lar ve ona g&amp;ouml;re davran&#305;r yani email adreslerinde b&amp;ouml;yle bir harekete gerek yok, direkt yazabilirsiniz.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;@Url.Action&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Url.Action, Controller'de olu&#351;turdu&#287;unuz Action'lar&#305;n sadece adresini verir. Ben genelde JavaScript'in i&amp;ccedil;inde ajax &amp;ccedil;a&#287;r&#305;lar&#305;nda kullan&#305;yorum.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.oguzhan.info/media/razoryazisi/img-20.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Burda &amp;ccedil;&#305;kt&#305; /Home/Index/1 &#351;eklinde geliyor.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Razor i&amp;ccedil;inden SQL&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&#350;imdiye kadar hi&amp;ccedil; kullanmad&#305;m fakat akl&#305;m&#305;zda bulunsun. Razor'da @{..} blogu i&amp;ccedil;inde C# moduna ge&amp;ccedil;ti&#287;imizi daha &amp;ouml;nce s&amp;ouml;ylemi&#351;tik, e madem C# moduna ge&amp;ccedil;iyoruz o halde class i&amp;ccedil;inde kulland&#305;&#287;&#305;m&#305;z t&amp;uuml;m atraksiyonlar&#305;da kullanabilmemiz normal. A&#351;a&#287;&#305;da Razor sayfas&#305;ndan sql sorgusunun &amp;ccedil;al&#305;&#351;t&#305;r&#305;lmas&#305;na dair bir &amp;ouml;rnek var.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.oguzhan.info/media/razoryazisi/img-21.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;bildi&#287;imiz PHP gibi...&lt;/p&gt;
&lt;p&gt;&#350;imdilik bu kadar, yeni fonksiyonlar tecr&amp;uuml;be ettik&amp;ccedil;e buraya ekliyor olaca&#287;&#305;m...&lt;/p&gt;
&lt;p&gt;Kolay Gelsin ;)&lt;/p&gt;</description>
<pubDate>09.07.2011</pubDate>
<link>http://www.oguzhan.info/?541/Razor+Ninja%27s%26%23305%3Bn%26%23305%3Bn+El+Kitab%26%23305%3B</link>
<guid>http://www.oguzhan.info/?541/Razor+Ninja%27s%26%23305%3Bn%26%23305%3Bn+El+Kitab%26%23305%3B#541</guid>
</item>

<item>
<title>MaestroEx - Hosted Exchange Control Panel</title>
<description>
&lt;p&gt;Herkese Selamlar,&lt;/p&gt;
&lt;p&gt;Heyecanla belirtmek isterim ki, &lt;a href=&quot;http://www.maestropanel.com&quot;&gt;MaestroPanel&lt;/a&gt;'in Beta 1&#160;s&#252;r&#252;m&#252;n&#252;n 
&#231;&#305;kmas&#305;na &#231;ok az kald&#305;! Yo&#287;un bir  &#351;ekilde takvimimizi tutturmaya 
&#231;al&#305;&#351;&#305;yoruz ve heyecanla geli&#351;tirmeye  devam ediyoruz ancak &#351;imdi size 
ba&#351;ka bir haberimiz var.&lt;/p&gt;
&lt;p&gt;Bilindi&#287;i &#252;zere MaestroPanel moduler yap&#305;s&#305; sayesinde  ihtiyac&#305;n&#305;za 
uygun modulleri zahmetsizce kullanabilece&#287;iniz bir platform  haline 
getirmeye &#231;al&#305;&#351;&#305;yoruz. Bu ba&#287;lamda da hoster&#8217;lar&#305;n s&#305;k  kulland&#305;&#287;&#305; ve 
servis verdi&#287;i yaz&#305;l&#305;mlar&#305;n mod&#252;llerini MaestroPanel'e  kendimiz 
eklemeye &#246;ncelik veriyoruz.&lt;/p&gt;
&lt;p&gt;Bulardan bir taneside Microsoft Exchange Server 2010.&lt;a href=&quot;http://www.microsoft.com/exchange/en-us/default.aspx&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/a&gt;Microsoft
 radikal bir kararla Exchange 2010 y&#246;netimi i&#231;in grafiksel aray&#252;zler 
yerine Powershell scripting mant&#305;&#287;&#305;n&#305; getirdi. Bu bir &#231;ok windows sistem
 y&#246;neticisi i&#231;in b&#252;y&#252;k bir s&#305;k&#305;nt&#305; yaratt&#305; &#231;&#252;nk&#252; bir &#231;ok komut seti 
&#246;&#287;renip Exchange 2010'u o komut setleri ile y&#246;netmek gerekecekti, tabi 
bunun esasl&#305;  bir &#246;&#287;renme s&#252;reci oldu&#287;u a&#231;&#305;k ve b&#252;y&#252;k sunucu 
farm'lar&#305;nda da tekrar eden i&#351;leri sunuculara girerek teker teker 
yapman&#305;zda i&#351;leri &#231;ok zorla&#351;t&#305;racakt&#305;.&lt;/p&gt;
&lt;p&gt;Sistem  y&#246;neticilerinin bu &#305;zd&#305;rab&#305;n&#305; gidermek, Exchange 2010 
&#252;zerinden hosted  hizmetler verebilmek, bunlar&#305; etkili bir bi&#231;imde 
y&#246;netebilmenizi sa&#287;lamak i&#231;in &lt;strong&gt;MaestroPanel Exchange&lt;/strong&gt; mod&#252;l&#252;m&#252;z&#252; ayr&#305; bir &#252;r&#252;n haline getirdik.&lt;/p&gt;
&lt;p&gt;&#220;r&#252;n&#252;m&#252;z&#252;n ad&#305; &lt;strong&gt;MaestroEx&lt;/strong&gt; ve sadece Exchange 2010 
&#252;zerinden hosted exchange hizmeti vermenize yard&#305;mc&#305; oluyor. Laf&#305; fazla 
uzatmadan eri&#351;im bilgileri ve ilgili sayfalar&#305;n adreslerini a&#351;a&#287;&#305;da 
veriyorum. Umar&#305;m Be&#287;enirsiniz.&lt;/p&gt;
&lt;p&gt;MaestroEx'e ula&#351;mak i&#231;in &lt;a href=&quot;http://ex1.maestropanel.com/&quot;&gt;ex1.maestropanel.com&lt;/a&gt;
 (user: admin/pass: password) adresini ziyaret edebilirsiniz. Biz demo  
i&#231;in bir exchange sunucusu kurduk fakat kendi exchange sunucunuz varsa &lt;a href=&quot;http://maestropanel.com/hostedexchange&quot;&gt;maestropanel.com/hostedexchange&lt;/a&gt; adresinden MaestroEx Agent&#8217;&#305; &#231;ekip kurman&#305;z yeterlidir.&lt;/p&gt;
&lt;p&gt;Umar&#305;m Be&#287;enirsiniz&#8230;&lt;/p&gt;


</description>
<pubDate>17.05.2011</pubDate>
<link>http://www.oguzhan.info/?540/MaestroEx+%2D+Hosted+Exchange+Control+Panel</link>
<guid>http://www.oguzhan.info/?540/MaestroEx+%2D+Hosted+Exchange+Control+Panel#540</guid>
</item>

<item>
<title>Hosting Zirvesi 2011 Ard&#305;ndan</title>
<description>
&lt;p&gt;Ge&#231;en sene kat&#305;lamad&#305;&#287;&#305;m &lt;a href=&quot;http://www.hostingzirvesi.com/&quot;&gt;Hosting Zirvesi&lt;/a&gt; etkinli&#287;ine bu sene hem konu&#351;mac&#305; hemde ziyaret&#231;i olarak kat&#305;lma f&#305;rsat&#305; elde ettim. Etkinlik ger&#231;ek anlamda s&#246;n&#252;k ge&#231;ti fakat benim i&#231;in iyiydi. Hosting sekt&#246;r&#252;nden yeni ki&#351;ilerle tan&#305;&#351;ma f&#305;rsat&#305;m oldu, yeni fikirler ve projelere vesile oldu, en &#246;nemlisi &#252;zerinde &#231;al&#305;&#351;t&#305;&#287;&#305;m &lt;a href=&quot;http://www.maestropanel.com&quot;&gt;MaestroPanel&lt;/a&gt; projesini sekt&#246;re tan&#305;tma imkan&#305;m oldu. &#220;zerine baya&#287;&#305; konu&#351;uldu tavsiyeler, destekler geldi. Tabi bu iyi niyetlerinde yan&#305;nda, haks&#305;z yere ele&#351;tirilerde olmad&#305; de&#287;il, fakat onlarda olmasa &#231;ekilmez olurdu zaten :)&lt;/p&gt;

&lt;p&gt;
Genelde iki yakla&#351;&#305;m oluyor birincisi &amp;quot;S&#252;per. T&#252;rkiyeden b&#246;yle bir proje &#231;&#305;kabildi&#287;ine &#351;a&#351;&#305;rd&#305;m nas&#305;l destek olabiliriz&amp;quot; &#351;eklinde, &#304;kinciside &amp;quot;cPanel, Plesk varken ne gerek var. Zaman&#305;n&#305; ba&#351;ka &#351;eyler i&#231;in de&#287;erlendir&amp;quot; &#351;eklinde. San&#305;r&#305;m ikisininde dengeli olmas&#305; gerek ki MestroPanel Projesinde b&#246;yledi.
&lt;/p&gt;

&lt;b&gt;Zirveye d&#246;nersek;&lt;/b&gt;&lt;br /&gt;

&lt;p&gt;
&#214;ncelike T&#252;rkiye'de ilk ve tek oldu&#287;unu hat&#305;rlatmak isterim ve g&#246;rd&#252;&#287;&#252;m kadar&#305;yla ekip olarak de&#287;il amat&#246;r bir ruhla &lt;a href=&quot;http://www.emresavas.com&quot;&gt;Emre&lt;/a&gt;'nin m&#252;cadelesi ile ger&#231;ekle&#351;en bir etkinlik. (Buarada Emre Bilgisayar M&#252;hendisli&#287;inde okuyan bir &#246;&#287;renci). Burdaki garip olay DorukNet d&#305;&#351;&#305;nda hi&#231; bir hosting firmas&#305;n&#305;n kat&#305;l&#305;m g&#246;stermedi&#287;i (Duydu&#287;uma g&#246;re Karegen ziyaret&#231;i olarak kat&#305;l&#305;m g&#246;stermi&#351;). Hosting firmalar&#305; sekt&#246;rden bir haber. Bir haber oldu&#287;u gibi her geli&#351;meye ve olu&#351;uma burun k&#305;v&#305;r&#305;yor. Buda sekt&#246;r&#252;n hangi a&#351;amalarda oldu&#287;unun bir g&#246;tergesi.
&lt;/p&gt;

&lt;p&gt;
As&#305;l demek istedi&#287;im Hoster'lar&#305;n kendi firmalar&#305;n&#305; tan&#305;tabilece&#287;i, neler yapabildiklerini g&#246;sterece&#287;i bu gibi f&#305;rsatlar&#305; de&#287;erlendiremiyor olmas&#305;! Acaba yapt&#305;klar&#305; bir &#351;eyler yok mu? Deli gibi donan&#305;m al&#305;p &#252;zerine &#304;&#351;letim sistemi, onun &#252;zerine Panellerini kurup sat&#305;yorlarm&#305; hala? Onun i&#231;in mi b&#246;yle etkinliklere kat&#305;lm&#305;yorlar? sorular&#305; akl&#305;ma tak&#305;l&#305;yor hep.
&lt;/p&gt;

&lt;p&gt;Konu hakk&#305;nda konu&#351;ulacak &#231;ok &#351;ey daha var fakat uzatma gibi bir niyetim yok. Umar&#305;m &#246;n&#252;m&#252;zdeki sene Hosting Zirvesi hak etti&#287;i ilgiyi Hosting firmalar&#305;ndan g&#246;r&#252;r.&lt;/p&gt;
&lt;br /&gt;
&lt;br /&gt;
Sunumdan bir ka&#231; kare;&lt;br /&gt;&lt;br /&gt;&#160;

&lt;center&gt;&lt;a href=&quot;http://www.flickr.com/photos/27970364@N07/5689603117/&quot;&gt;&lt;img src=&quot;http://farm6.static.flickr.com/5145/5689603117_bb4cc75796_m.jpg&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;http://www.flickr.com/photos/27970364@N07/5689603083/&quot;&gt;&lt;img src=&quot;http://farm6.static.flickr.com/5306/5689603083_82a5c7c99e_m.jpg&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.flickr.com/photos/27970364@N07/5690176808/&quot;&gt;&lt;img src=&quot;http://farm6.static.flickr.com/5189/5690176808_ff81885347_m.jpg&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;http://www.flickr.com/photos/27970364@N07/5689603271/&quot;&gt;&lt;img src=&quot;http://farm6.static.flickr.com/5148/5689603271_ba6c269209_m.jpg&quot; /&gt;&lt;/a&gt;&lt;/center&gt;

</description>
<pubDate>05.05.2011</pubDate>
<link>http://www.oguzhan.info/?539/Hosting+Zirvesi+2011+Ard%26%23305%3Bndan</link>
<guid>http://www.oguzhan.info/?539/Hosting+Zirvesi+2011+Ard%26%23305%3Bndan#539</guid>
</item>

<item>
<title>Bir ba&#351;ka A&#231;&#305;k Kaynak proje MultiPosTR</title>
<description>
&lt;p&gt;
Her e-ticaret sitensinin b&#246;yle bir componenti vard&#305;r, t&#252;m bankalar&#305; destekleyebilen, reusability'si y&#252;ksek, generic bir yap&#305;da, her programa implemente edilen s&#252;per bir class library. Bunu herkes yazm&#305;&#351;t&#305;r ama piyasada hi&#231; g&#246;r&#252;nmez b&#246;yle kodlar, gizlidir elletilmez kimseye. Birincisi buna tav oldu&#287;um i&#231;in, ikincisi belki birileride di&#287;er provider'lar&#305;n ucundan tutarda g&#252;zel ve yararl&#305; bir proje ortaya &#231;&#305;kar diye &#252;c&#252;nc&#252;s&#252;de bankalar&#305;n d&#246;k&#252;manlar&#305;n&#305;n berbat olmas&#305;ndan m&#252;tevellit ba&#351;lad&#305;m ufaktan yazamaya. &lt;br /&gt;Ha sende sanalPOS api'lerine hakimsen aha bu provider'&#305; ben yazar&#305;m diyorsan da haberim olsun ki github'dan write permission vereyim.
&lt;/p&gt;

&lt;p&gt;&#350;imdilik yeni Garanti sanalPos API'si mevcut, EST'yide yak&#305;n zamanda ekleyece&#287;im. A&#351;a&#287;&#305;dakilerde eklenmeyi bekleyenler.&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;Bank Asya&lt;/li&gt;
	&lt;li&gt;Vak&#305;f Bank&lt;/li&gt;
	&lt;li&gt;Yap&#305; Kredi&lt;/li&gt;
	&lt;li&gt;T&#252;rkiye Finans&lt;/li&gt;
&lt;/ul&gt;
	
	
&lt;p&gt;
MutliPosTR&lt;br /&gt;
&lt;a href=&quot;https://github.com/c1982/MultiPosTR&quot;&gt;https://github.com/c1982/MultiPosTR&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Ek olarak ayn&#305; i&#351;i yapan ve Php projelerinizde kullanabilece&#287;iniz &lt;a href=&quot;http://www.hasanozgan.com/&quot;&gt;Hasan &#214;zgan&lt;/a&gt;'&#305;n yazd&#305;&#287;&#305; &lt;a href=&quot;http://code.google.com/p/vpos4php/&quot;&gt;vpos4php&lt;/a&gt; ad&#305;nda g&#252;zel bir ara&#231;&#305;n var oldu&#287;unuda belirtmeden ge&#231;meyelim.
&lt;/p&gt;</description>
<pubDate>16.03.2011</pubDate>
<link>http://www.oguzhan.info/?538/Bir+ba%26%23351%3Bka+A%26%23231%3B%26%23305%3Bk+Kaynak+proje+MultiPosTR</link>
<guid>http://www.oguzhan.info/?538/Bir+ba%26%23351%3Bka+A%26%23231%3B%26%23305%3Bk+Kaynak+proje+MultiPosTR#538</guid>
</item>

<item>
<title>Pratik Structural Patterns Hilesi</title>
<description>
&lt;p&gt;E&#287;er mesaj tabanl&#305; da&#287;&#305;t&#305;k sistemler &#252;zerine &#231;al&#305;&#351;&#305;yorsan&#305;z sunucular aras&#305; g&#246;nderilen mesajlar&#305; object tipinde veya belirli abstract yap&#305;lar&#305; destekler nitelikte tasarl&#305;yorsunuzdur.
&lt;br /&gt;
Hal b&#246;yle olunca ald&#305;&#287;&#305;n&#305;z mesaj&#305; anlamland&#305;rmak i&#231;in baz&#305; tasar&#305;m kal&#305;plar&#305;n&#305; (&lt;a href=&quot;http://www.dofactory.com/Patterns/Patterns.aspx&quot;&gt;design patterns&lt;/a&gt;) uygulaman&#305;zda ka&#231;&#305;n&#305;lmaz oluyor. Gelen object tipindeki mesaj&#305; unbox etmek i&#231;in bir &#231;ok pattern var (Adapter, Vistor, Abstract Factory gibi) fakat bu patternler bir t&#252;rl&#252; ihtiyac&#305;m&#305; kar&#351;&#305;lam&#305;yorlard&#305;. Konunun biraz &#252;zerinde d&#252;&#351;&#252;nd&#252;kten sonra a&#351;a&#287;&#305;daki yap&#305; ile b&#252;t&#252;n y&#252;k&#252; .Net'in &#252;zerine y&#305;k&#305;p s&#305;yr&#305;ld&#305;m :)
&lt;/p&gt;

&lt;script src=&quot;https://gist.github.com/856761.js&quot;&gt;&amp;amp;nbsp;&lt;/script&gt;

&lt;p&gt;Kodu a&#231;&#305;klamaya &#231;al&#305;&#351;ay&#305;m;&lt;/p&gt;

&amp;quot;&lt;i&gt;RemoteServer.GetCommandItemFromRemoteServer()&lt;/i&gt;;&amp;quot; herhangi bir sunucudan gelen, i&#231;inde herhangi bir Type bar&#305;nd&#305;ran nesneyi d&#246;nd&#252;r&#252;yor. Bu mesaj&#305; anlamland&#305;rmak i&#231;in .Net'in &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/dd264736.aspx&quot;&gt;dynamic&lt;/a&gt; &#246;zelli&#287;ini kullan&#305;yoruz. &#304;&#351;in p&#252;f noktas&#305;da burda zaten dynamic bir nesne yarat&#305;p Object t&#252;r&#252;ndeki Mesaj Nesnemizi tan&#305;mlad&#305;&#287;&#305;m&#305;zda .Net bizi object'i hangi Type ile unbox edece&#287;imiz zahmetinden kurtar&#305;yor. Ard&#305;ndan esas i&#351;i yapacak olan s&#305;n&#305;f&#305;m&#305;zda ise Overloading y&#246;ntemi ile &#231;&#305;k&#305;&#351; noktam&#305;za ba&#351;l&#305;yoruz.
</description>
<pubDate>06.03.2011</pubDate>
<link>http://www.oguzhan.info/?537/Pratik+Structural+Patterns+Hilesi</link>
<guid>http://www.oguzhan.info/?537/Pratik+Structural+Patterns+Hilesi#537</guid>
</item>

<item>
<title>Mikrotik .Net API (C#)</title>
<description>
&lt;p&gt;Projeler'den bunal&#305;nca ve kafa da&#287;&#305;tmak i&#231;in kendime hobi projesi olarak yeni ufak ve i&#351;e yarayabilecek projeler buluyorum (Bknz: &lt;a href=&quot;http://www.oguzhan.info/togi&quot;&gt;Togi&lt;/a&gt;). &#304;&#351;te onlardan bir tanesine daha bo&#351; zamanlar&#305;mda geli&#351;tirmek &#252;zere ba&#351;lad&#305;m Mikrotik i&#231;in .Net API'si.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ne yapar?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Kendi yaz&#305;l&#305;mlar&#305;n&#305;z i&#231;inde Mikrotik ile haberle&#351;ip mikrotik'i reboot, shutdown edebilir. Static Firewall kurallar&#305; ekleyebilir, yeni bir kullan&#305;c&#305; yarat&#305;p, silebilir, mikrotik'in identity'sini de&#287;i&#351;tirebilir ve backup alabilirsiniz. Bo&#351; zaman bulduk&#231;a bir &#231;ok fonksiyon daha eklemeyi d&#252;&#351;&#252;n&#252;yorum.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Kodlar?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Proje'yi &lt;a href=&quot;https://github.com/c1982/Mikrogi&quot;&gt;github&lt;/a&gt;'a g&#246;nderdim a&#231;&#305;k kaynak olarak da&#287;&#305;t&#305;yorum. &lt;a href=&quot;https://github.com/c1982/Mikrogi&quot;&gt;https://github.com/c1982/Mikrogi&lt;/a&gt; adresinden eri&#351;ebilir ve kullanabilirsiniz.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Kullan&#305;m&#305;&lt;/strong&gt;?&lt;/p&gt;
&lt;p&gt;Okumas&#305; ve anlamas&#305; kolay olsun diye Fluent Interface kulland&#305;m. &#199;e&#351;itli kullan&#305;m &#351;ekilleri i&#231;in a&#351;a&#287;&#305;da &#246;rnekleri s&#305;ralad&#305;m.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&#214;rnekler : &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;IP Bloklama&lt;/p&gt;
&lt;p&gt;
&lt;script src=&quot;https://gist.github.com/847125.js&quot;&gt;&amp;nbsp;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;Backup Alma, Giri&#351; Yaz&#305;s&#305; Tan&#305;mlama, Reboot, Shutdown&lt;/p&gt;
&lt;p&gt;
&lt;script src=&quot;https://gist.github.com/847133.js&quot;&gt;&amp;nbsp;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;Yeni Kullan&#305;c&#305; Ekleme, Kullan&#305;c&#305; Silme, Kullan&#305;c&#305; Pasifle&#351;tirme, Aktif kullan&#305;c&#305; listesi, Kullan&#305;c&#305; listesi&lt;/p&gt;
&lt;p&gt;
&lt;script src=&quot;https://gist.github.com/847137.js&quot;&gt;&amp;nbsp;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;Zaman bulduk&#231;a yeni fonksiyonlar ve &#246;zellikler ekliyor olaca&#287;&#305;m. Sizde projeye katk&#305;da bulunmak istiyorsan&#305;z aspsrc -at- gmail.com adresinden ileti&#351;ime ge&#231;ebilirsiniz.&lt;/p&gt;
&lt;p&gt;Kolay Gelsin.&lt;/p&gt;
&lt;p&gt;Kaynak Kodlar : &lt;a href=&quot;https://github.com/c1982/Mikrogi&quot;&gt;https://github.com/c1982/Mikrogi&lt;/a&gt;&lt;/p&gt;</description>
<pubDate>28.02.2011</pubDate>
<link>http://www.oguzhan.info/?535/Mikrotik+%2ENet+API+%28C%23%29</link>
<guid>http://www.oguzhan.info/?535/Mikrotik+%2ENet+API+%28C%23%29#535</guid>
</item>

<item>
<title>Mikrotik Master Distributor'&#252; : kablosuzmarket.com</title>
<description>
Mikrotik &#252;r&#252;nlerine kolayca eri&#351;ebilece&#287;iniz yeni bir ma&#287;aza a&#231;&#305;lm&#305;&#351; &lt;a href=&quot;http://kablosuzmarket.com&quot;&gt;kablosuzmarket.com&lt;/a&gt; Mikrotik'in Master Distrib&#252;t&#246;r&#252; oldu&#287;u i&#231;in her t&#252;rl&#252; Mikrotik &#252;r&#252;n&#252;n&#252; daha ucuza ve kolayca bulabilece&#287;iniz bu ma&#287;azan&#305;n tan&#305;t&#305;m yaz&#305;s&#305;n&#305; payla&#351;mak isyiyorum.

&lt;blockquote&gt;
	&lt;p&gt;
	&lt;a href=&quot;http://www.kablosuzmarket.com&quot;&gt;Kablosuzmarket.com&lt;/a&gt; Mikrotik markas&#305;n&#305;n T&#252;rkiye Master Distrib&#252;t&#246;r&#252;d&#252;r. &#199;ok uygun fiyatlara mikrotik wireless ekipmanlar sat&#305;&#351;&#305; yap&#305;lmaktad&#305;r. Ayr&#305;ca &#231;oklu al&#305;mlarda fiyat kademeli olarak d&#252;&#351;mektedir. 
	&lt;/p&gt;
	&lt;p&gt;
	Di&#287;er &#252;r&#252;nlere g&#246;re daha profesyonel ,daha kolay ve daha az maliyetli kablolu - kablosuz internet sistemleri olu&#351;turmak i&#231;in kullan&#305;lan mikrotik &#252;r&#252;nlerini ve ayr&#305;ca luxul , cyberbajt gibi markalar&#305;n t&#252;m &#252;r&#252;nlerini kablosuzmarket.com sitesinde inceleyebilir ve sat&#305;n alabilirsiniz. 
	&lt;/p&gt;

	&lt;p&gt;
	Sat&#305;&#351;a sunulmu&#351; olan Haz&#305;r set ekipmanlar yan&#305;nda e&#287;er isterseniz &amp;quot;&lt;span style=&quot;font-weight: bold;&quot;&gt;Haz&#305;r Set Sihirbaz&#305;&lt;/span&gt;&amp;quot; ile kendi iste&#287;inize g&#246;re set olu&#351;turabilirsiniz. Ayr&#305;ca mikrotik kullan&#305;m&#305;na dair sorular&#305;n&#305;z i&#231;in s&#305;k&#231;a sorulan sorular sayfas&#305;n&#305; inceleyebilirsiniz. 
	&lt;/p&gt;

	&lt;p&gt;
	T&#252;rkiye'nin her noktas&#305;na hizmet veren kablosuzmarket.com , kalitesini &lt;span style=&quot;font-weight: bold;&quot;&gt;ISO 9001&lt;/span&gt; ve &lt;span style=&quot;font-weight: bold;&quot;&gt;27001&lt;/span&gt; belgelerini almaya hak kazanarak ispatlam&#305;&#351; olup sorunsuz ve h&#305;zl&#305; hizmet vermektedir. Ald&#305;&#287;&#305;n&#305;z &#252;r&#252;nlerde istedi&#287;iniz kargo se&#231;ene&#287;ini se&#231;ebilir , ayr&#305;ca sipari&#351; durumunu siteden izleyebilirsiniz. 
&lt;/p&gt;
&lt;a href=&quot;http://kablosuzmarket.com/&quot;&gt;&lt;img style=&quot;border: 0px none;&quot; title=&quot;Mikrotik ve Wireless Ekipmanlar&#305;&quot; alt=&quot;kablosuzmarket.com&quot; src=&quot;media/kablosuz-market-logo.png&quot; /&gt;&lt;/a&gt;
&lt;blockquote&gt;&amp;nbsp;&lt;/blockquote&gt;&lt;/blockquote&gt;</description>
<pubDate>24.02.2011</pubDate>
<link>http://www.oguzhan.info/?534/Mikrotik+Master+Distributor%27%26%23252%3B+%3A+kablosuzmarket%2Ecom</link>
<guid>http://www.oguzhan.info/?534/Mikrotik+Master+Distributor%27%26%23252%3B+%3A+kablosuzmarket%2Ecom#534</guid>
</item>

<item>
<title>ASP.NET MVC3 Filters</title>
<description>
&lt;p&gt;MVC tasar&#305;m kal&#305;b&#305; ile birlikte bir ta&#351;la 2 ku&#351; de&#287;il, 1 ta&#351;la 10 ku&#351; vurmaya al&#305;&#351;t&#305;k bu al&#305;&#351;kanl&#305;&#287;&#305; en bariz &#351;ekilde hissetiren &#246;zelliklerin ba&#351;&#305;nda ise MVC'nin Filters &#246;zelli&#287;i geliyor.&lt;/p&gt;
&lt;p&gt;Filters'lar ad&#305;ndan da anla&#351;&#305;laca&#287;&#305; gibi web uygulaman&#305;za gelen her bir iste&#287;in aras&#305;na girip belirli evrelerinde ihtiyac&#305;n&#305;za g&#246;re i&#351;lemler yapabilece&#287;iniz mekanizmalardan olu&#351;uyor. Bu mekanizmalar bazen sayfan&#305;n &#231;al&#305;&#351;ma zaman&#305;n&#305;n al&#305;nmas&#305;, bazen de g&#252;venli&#287;i sa&#287;layan kontroller olabiliyor. &#304;sterseniz t&#252;m uygulaman&#305;z i&#231;in, isterseniz de belirli istekler geldi&#287;inde filitre uygulayabiliyorsunuz.&lt;/p&gt;
&lt;p&gt;Filters'lar method'un ba&#351;&#305;na birer &#246;zellik  (Attiribute) olarak kullan&#305;lmaktad&#305;r ve &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/system.web.mvc.actionfilterattribute.aspx&quot;&gt;ActionFilterAttribute&lt;/a&gt; s&#305;n&#305;f&#305;ndan t&#252;retilmesi gerekmektedir. Daha sonrada ihtiyac&#305;m&#305;z olan olaylar&#305; override edip rahatl&#305;kla kullanabilmektesiniz. &lt;br /&gt;Yaz&#305; bir i&#351;e yaras&#305;ndiye basit bir senaryo belirleyip ona g&#246;re hareket ettim, bakal&#305;m filters'lar ile neler yapabiliyoruz.&lt;/p&gt;
&lt;p&gt;Belirledi&#287;im gaddar senaryoya g&#246;re web uygulamama internet explorer ile giri&#351;i yasaklamak istiyorum ve bunun i&#231;inde en iyi yol Global Filters'i kullanmak oldu&#287;unu biliyorum ve a&#351;a&#287;&#305;daki gibi kendi filter'imi&#160; olu&#351;turuyorum.&lt;/p&gt;
&lt;p&gt;
&lt;script src=&quot;https://gist.github.com/830783.js&quot;&gt;&amp;amp;nbsp;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;G&#246;rd&#252;&#287;&#252;n&#252;z gibi ActionFilterAttribute s&#305;n&#305;f&#305;ndan miras ald&#305;&#287;&#305;m 4 adet olay var. Bu olaylar&#305; uzun,uzun anlatmaya gerek yok san&#305;r&#305;m isimlerinden hangi s&#305;ra ile &#231;al&#305;&#351;t&#305;&#287;&#305; belli. Biz Controller'&#305;m&#305;z&#305;n i&#231;indeki kod &#231;al&#305;&#351;maya ba&#351;lamadan &#246;nce browser kontrol&#252;n&#252; yapaca&#287;&#305;m&#305;z i&#231;in &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/system.web.mvc.actionfilterattribute.onactionexecuting.aspx&quot;&gt;OnActionExecuting&lt;/a&gt; olay&#305;na kodumuzu ekleyece&#287;iz.&lt;/p&gt;
&lt;p&gt;
&lt;script src=&quot;https://gist.github.com/830783.js&quot;&gt;&amp;nbsp;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;OnActionExecuting olay&#305;nda ziyaret&#231;inin user-agent bilgisinden browser'&#305;n&#305;n ne marka oldu&#287;unu &#246;&#287;rendik ve i&#231;inde &amp;quot;MSIE&amp;quot; stringi ge&#231;iyorsa ContentResult'u kullanarak bir JavaScript uyar&#305;s&#305; &#231;&#305;kartt&#305;k. Ziyaret&#231;inin user-agent de&#287;erinin i&#231;inde arad&#305;&#287;&#305;m&#305;z string'i bulamasayd&#305;k Context Resul normal bir ViewActionResult() olarak gelecekti buda bize sayfay&#305; do&#287;ru g&#246;rmemizi sa&#287;layacakt&#305;.&lt;/p&gt;
&lt;p&gt;&#350;imdi bunu filitrenin t&#252;m Action'larda &#231;al&#305;&#351;mas&#305;n&#305; sa&#287;lamak i&#231;in MVC uygulamam&#305;z&#305;n Global ActionFilter koleksiyonuna eklememiz gerekli. Bununda Global.asax dosyas&#305;ndan tek bir sat&#305;r ile yapabiliyoruz. Global.asax dosyas&#305;n&#305; a&#231;t&#305;ktan sonra ilgili sat&#305;r&#305; a&#351;a&#287;&#305;daki gibi ekleyin.&lt;/p&gt;
&lt;p&gt;
&lt;script src=&quot;https://gist.github.com/830835.js&quot;&gt;&amp;nbsp;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;Bu i&#351;lemden sonra art&#305;k web uygulamam&#305;za internet explorer'dan girilemeyecektir.&lt;/p&gt;
&lt;p&gt;G&#246;rd&#252;&#287;&#252;n&#252;z gibi hayat&#305; kolayla&#351;t&#305;ran bir &#246;zellik. Filitrelerin ba&#351;ka bir kullan&#305;m &#351;eklide Action'a &#246;zel bir Attribute &#351;eklindedir. Bunada bir senaryo &#252;retip &#246;rnekleyelim.&lt;/p&gt;
&lt;p&gt;Senaryoyu yine kullan&#305;c&#305; &#252;zerinden geli&#351;tirmeye devam edip ziyaret&#231;inin oturum a&#231;&#305;p, a&#231;amad&#305;&#287;&#305;n&#305; kontrol eden bir filter yazaca&#287;&#305;z. Senaryomuza &#231;ok ugun &#231;&#252;nk&#252; web uygulamalar&#305;nda herkesin g&#246;rebilece&#287;i ve sadece &#252;yelerin g&#246;rebilece&#287;i yerler olmakta.&lt;/p&gt;
&lt;p&gt;
&lt;script src=&quot;https://gist.github.com/830882.js&quot;&gt;&amp;nbsp;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;Burda g&#246;r&#252;ld&#252;&#287;&#252; gibi basit bir Session kotrol&#252;nden ba&#351;ka bir &#351;ey yapm&#305;yoruz, esas olay Action'a ekledi&#287;im Attribute ile ger&#231;ekle&#351;iyor.&lt;/p&gt;
&lt;p&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160; [LoginRequired]&lt;br /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160; public ActionResult Users()&lt;br /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {&lt;br /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; return View();&lt;br /&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }&lt;/p&gt;
&lt;p&gt;Action'&#305;n &#252;zerine LoginRequired filitremizi koyduktan sonra bu action'a yap&#305;lan her istekte session kontrol edilecek, yoksa ziyaret&#231;inin giri&#351; yapmas&#305; istenecektir. Ek olarak dikkat ederseniz .Net'te &#246;rf ve adetler gere&#287;i ile LoginRequiredAttribute yerine sadece LoginRequired yazabiliyoruz. t&#305;pki Interface'lerin I ile ba&#351;lamas&#305; gelene&#287;i gibi.&lt;/p&gt;&lt;p&gt;Burdaki uygulamay&#305; &lt;a href=&quot;https://github.com/c1982/oguzhan.info-Projects/tree/master/MvcApplication1&quot;&gt;https://github.com/c1982/oguzhan.info-Projects/tree/master/MvcApplication1&lt;/a&gt; adresinden indirebilirsiniz.&lt;br /&gt;&lt;/p&gt;</description>
<pubDate>17.02.2011</pubDate>
<link>http://www.oguzhan.info/?533/ASP%2ENET+MVC3+Filters</link>
<guid>http://www.oguzhan.info/?533/ASP%2ENET+MVC3+Filters#533</guid>
</item>

<item>
<title>Yeni hayat, Yeni projeler</title>
<description>
Yakla&#351;&#305;k 3 seneden beri &#231;al&#305;&#351;t&#305;&#287;&#305;m&#305; ve g&#252;zel g&#252;nlerimin ge&#231;ti&#287;i &lt;a href=&quot;http://www.vt.com.tr&quot;&gt;Vargonen&lt;/a&gt;'den ayr&#305;ld&#305;m! Ayr&#305;lmam&#305;n sebebi kendi giri&#351;imimi hayata ge&#231;irmem ve hosting sekt&#246;r&#252;ne y&#246;nelik &#231;al&#305;&#351;malar&#305;m&#305; h&#305;zland&#305;rmak istememden kaynaklan&#305;yor. &lt;br /&gt;Bundan sonraki zaman&#305;m&#305; ve mesaimi hosting sekt&#246;r&#252;ne y&#246;nelik yeni &#252;r&#252;nler geli&#351;tirmekte harcayaca&#287;&#305;m ve ilk projemde &amp;quot;MaestroPanel&amp;quot; olacak.
&lt;br /&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.maestropanel.com/&quot;&gt;MaestroPanel&lt;/a&gt; bir web hosting kontrol panel yaz&#305;l&#305;m&#305;. Hoster'lara y&#246;nelik olarak geli&#351;tirdi&#287;im bu panel ile sekt&#246;r&#252;n &#231;&#246;z&#252;lememi&#351; baz&#305; problemlerine &#231;&#246;z&#252;m &#252;retmeye &#231;al&#305;&#351;aca&#287;&#305;m. Ufak &#231;apta testlerimiz ve local denemelerimiz oluyor yak&#305;n bir zamanda da pilot firmalarla real-world senaryolar &#252;zerinde denemelerimize ba&#351;layaca&#287;&#305;z. E&#287;er sizde bu panel ile ilgileniyorsan&#305;z &lt;a href=&quot;http://www.maestropanel.com/&quot;&gt;site&lt;/a&gt;'de ki mail listimize kat&#305;labilir, g&#252;ncellemeleri takip edebilirsiniz.
&lt;br /&gt;&lt;br /&gt;
Son olarak bu proje i&#231;in hosting sekt&#246;r&#252;nde deneyimli, .Net Framework ve OOP'ye hakim, C# kullanabilen yaz&#305;l&#305;m uzman&#305; veya uzmanlar&#305;na ihtiya&#231; olacak. Projede yer almak isteyenler ping&lt;!----&gt;@&lt;!----&gt;maestropanel.com adresi ile ileti&#351;ime ge&#231;ebilirler.
&lt;br /&gt;&lt;br /&gt;
Proje i&#231;in beni y&#252;reklendiren ve destekleyen herkese te&#351;ekk&#252;rler.</description>
<pubDate>02.02.2011</pubDate>
<link>http://www.oguzhan.info/?532/Yeni+hayat%2C+Yeni+projeler</link>
<guid>http://www.oguzhan.info/?532/Yeni+hayat%2C+Yeni+projeler#532</guid>
</item>

<item>
<title>Kulland&#305;&#287;&#305;m .Net Library'leri.</title>
<description>
Eskiye nazaran , &#351;imdilerde geli&#351;tirdi&#287;im projelerin Assemblys klas&#246;r&#252; bir &#231;ok *.dll ile dolmaya ba&#351;lad&#305;. Bir projede en az 7 tane component (Bile&#351;en) kullanm&#305;&#351;&#305;m. Tabi bu .Net ekosistemi'nin geli&#351;mesiyle do&#287;ru orant&#305;l&#305; oldu. Bir &#231;ok kaliteli &#252;r&#252;n, i&#351;imizi kolayla&#351;t&#305;ran Framework (Programlama &#199;at&#305;s&#305;) open-source (a&#231;&#305;k kaynak) olarak da&#287;&#305;t&#305;lmaya ba&#351;land&#305; bu developer'&#305;n &#231;ok b&#252;y&#252;k bir kolayl&#305;k ve zaman kazanc&#305;. Esas amac&#305;m projelerde s&#305;kl&#305;kla kulland&#305;&#287;&#305;m &#252;r&#252;nlerin neler oldu&#287;unu ve ne i&#351;e yarad&#305;&#287;&#305;n&#305; payla&#351;mak. Bakal&#305;m neler kullan&#305;yorum :)

&lt;p&gt;
&lt;b&gt;1. &lt;a href=&quot;http://www.microsoft.com/downloads/en/details.aspx?FamilyID=d2928bc1-f48c-4e95-a064-2a455a22c8f6&amp;displaylang=en&quot;&gt;ASP.NET MVC Framework&lt;/a&gt;&lt;/b&gt; &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&#350;u anda 3. Versionun yay&#305;nland&#305;&#287;&#305; bu Framework web uygulamalar&#305;n&#305; Model View Controller mant&#305;&#287;&#305;nda bir istekeltle geli&#351;tirmemizi sa&#287;l&#305;yor. Web Forms'a g&#252;&#231;l&#252; bir alternatif ve hatta bu Framework &#252;zerinde uygulama geli&#351;tirmek &#231;ok daha e&#287;lenceli benim i&#231;in.
&lt;/p&gt;

&lt;p&gt;
&lt;b&gt;2. &lt;a href=&quot;http://unity.codeplex.com/&quot;&gt;The Unity Application Block (Unity)&lt;/a&gt;&lt;/b&gt; &lt;br /&gt;&lt;/p&gt;&lt;p&gt;Microsoft'un patterns &amp;amp; practices tak&#305;m&#305; taraf&#305;ndan geli&#351;tirilen lightweight bir dependency injection container'&#305; IoC yakla&#351;&#305;m&#305;nda providerlar geli&#351;tirmek i&#231;in kullan&#305;yorum.
&lt;/p&gt;

&lt;p&gt;
&lt;b&gt;3. &lt;a href=&quot;http://sqlite.phxsoftware.com/&quot;&gt;SQLite&lt;/a&gt;&lt;/b&gt; &lt;br /&gt;&lt;/p&gt;&lt;p&gt;SQLite ufak bir SQL Database Engine'dir. Herhangi bir configurasyona, kurulma gerek duymaz ve transaction deste&#287;ide bulunur. &#199;o&#287;u ki&#351;isel projemde bun motoru kullan&#305;yorum hen&#252;z .NET 4.0 deste&#287;i &#231;&#305;kmad&#305; ama .NET 2.0 runtime'&#305;nda kullan&#305;labilyor. Ufak bir fikir vermesi a&#231;&#305;s&#305;nda &lt;a href=&quot;http://tweet.gen.tr&quot;&gt;tweet.gen.tr&lt;/a&gt; projesinde &lt;a href=&quot;http://www.sqlite.org/&quot;&gt;SQLite&lt;/a&gt;&lt;a&gt; kulland&#305;m, &#351;uanda 540MB bir veritaban&#305; var ger&#231;ekten performansl&#305; &#231;al&#305;&#351;&#305;yor.
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;
&lt;a&gt;&lt;b&gt;4. &lt;/b&gt;&lt;/a&gt;&lt;b&gt;&lt;a href=&quot;http://logging.apache.org/log4net/&quot;&gt;Apache log4net&lt;/a&gt;&lt;/b&gt; &lt;br /&gt;&lt;/p&gt;&lt;p&gt;log4net developer'&#305;n uygulama i&#231;inde bir &#231;ok &#351;ekilde log tutmas&#305;n&#305; sa&#287;layan yararl&#305; bir ara&#231;. Configurasyonu zahmetsiz bir &#231;ok database deste&#287;i ve A&#287; protokol&#252; deste&#287;i (UDP, TCP) ile loglar&#305;n&#305;z&#305; de&#287;i&#351;ik ortamlarda kaydedebilmenizi sa&#287;layan bir &#252;r&#252;nd&#252;r. Kullan&#305;n.
&lt;/p&gt;

&lt;p&gt;
&lt;b&gt;5. &lt;a href=&quot;http://fbconnectauth.codeplex.com/&quot;&gt;Facebook Connect Authentication for ASP.NET&lt;/a&gt;&lt;/b&gt; &lt;br /&gt;&lt;/p&gt;&lt;p&gt;Web uygulamalar&#305;nda Facebook Connect'&#305; kullanarak kullan&#305;c&#305; do&#287;rulamas&#305; yapman&#305;z&#305; sa&#287;lar. Bir kere kulland&#305;m .NET 2.0 deste&#287;i mevcuttu ama hala &#231;al&#305;&#351;&#305;yor.
&lt;/p&gt;

&lt;p&gt;
&lt;b&gt;6. &lt;a href=&quot;https://github.com/managedfusion/fluentcassandra&quot;&gt;FluentCassandra&lt;/a&gt;&lt;/b&gt; &lt;br /&gt;&lt;/p&gt;&lt;p&gt;Evde NoSQL konseptini anlamaya &#231;al&#305;&#351;&#305;rken da&#287;&#305;t&#305;k sistemlerde &#231;al&#305;&#351;an &lt;a href=&quot;http://cassandra.apache.org/&quot;&gt;Cassandra&lt;/a&gt;'y&#305; ke&#351;fetmi&#351;timtim. Bu yeni da&#287;&#305;t&#305;k database sistemini nas&#305;l kullanabilirim diye ara&#351;t&#305;r&#305;rken FluentCassandra'y&#305; buldum.&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;
&lt;b&gt;7. &lt;a href=&quot;http://sourceforge.net/projects/itextsharp/&quot;&gt;iTextSharp&lt;/a&gt;&lt;/b&gt; &lt;br /&gt;&lt;/p&gt;&lt;p&gt;Esasen Java i&#231;in yaz&#305;lm&#305;&#351; bu bile&#351;en'&#305;n .Net'e port edilmesiyle .NET d&#252;nyas&#305;na giren PDF dosyalar&#305; olu&#351;turmam&#305;z&#305; sa&#287;layan a&#231;&#305; kaynak bir ara&#231;. Projelerde PDF ile ilgili bir i&#351;lem olacaksa kullan&#305;yorum.
&lt;/p&gt;

&lt;p&gt;
&lt;b&gt;8. &lt;a href=&quot;http://lucene.apache.org/lucene.net/&quot;&gt;Lucene.Net&lt;/a&gt;&lt;/b&gt; &lt;br /&gt;&lt;/p&gt;&lt;p&gt;Lucene &#231;ok &#246;zellikli bir test search engine'i. Statik bir sitenin arama motoru olarak &#231;al&#305;&#351;t&#305;r&#305;p kulland&#305;m. Daha &#246;ncede bir data-mining projesinde kendi raporlar&#305;m&#305; &#231;&#305;karmak i&#231;in kullanm&#305;&#351;t&#305;m. A&#231;&#305;k kaynak ve string'e bak&#305;&#351; a&#231;&#305;s&#305;n&#305; de&#287;i&#351;tirebilecek bir &#252;r&#252;n.
&lt;/p&gt;

&lt;p&gt;
&lt;b&gt;9. &lt;a href=&quot;http://nvents.org/&quot;&gt;nvents&lt;/a&gt;&lt;/b&gt; &lt;br /&gt;&lt;/p&gt;&lt;p&gt;Fantastik bir publishing/subscribing olay y&#246;netim sistemi. .NET 4.0 deste&#287;i olan bu ara&#231; WCF &#252;zerinde &#231;al&#305;&#351;&#305;yor, Events'lar&#305; serialize ederek network &#252;zerinden g&#246;nderilmesini ve al&#305;nmas&#305;n&#305; sa&#287;l&#305;yor. Kendi pub/sub framework'&#252;n&#252; geli&#351;tirdikren sonra ke&#351;fetti&#287;im i&#231;in &#231;ok k&#305;z&#305;yorum kendime :)

&lt;/p&gt;&lt;p&gt;
&lt;b&gt;10. &lt;a href=&quot;http://quartznet.sourceforge.net/&quot;&gt;Quartz.NET&lt;/a&gt;&lt;/b&gt;
Open-Source camian&#305;n bize verdi&#287;i nitmetlerden bir tanesi daha. Quartz.NET. Uygulaman&#305;zda zamanlanm&#305;&#351; g&#246;revler mant&#305;&#287;&#305;ndan geli&#351;tirmeler yapabilece&#287;iniz bir ara&#231;. Hem ufak, hemde b&#252;y&#252;k &#246;l&#231;ekteki projelerde rahatl&#305;kla kullanabilirsiniz. Buda Java d&#252;nyas&#305;ndan .Net dunyas&#305;na dev&#351;irilmi&#351; uygulamalardand&#305;r.
&lt;/p&gt;

&lt;p&gt;
&lt;b&gt;11. &lt;a href=&quot;http://sparkviewengine.com/&quot;&gt;Spark View Engine&lt;/a&gt;&lt;/b&gt; &lt;br /&gt;&lt;/p&gt;&lt;p&gt;ASP.NET uygulamalar&#305;nda HTML templateleri olu&#351;turman&#305;za ve y&#246;netmenize yarayan bu ara&#231;. Razor &#231;&#305;kana kadar bir ka&#231; projede kulland&#305;m, kendine &#246;zg&#252; syntax'&#305; var. &#214;&#287;rendikten sonra html yazarak programlama yapmak zevkli oluyor. MVC3 ile birlikte gelen Razor'a bu &#252;r&#252;ne alternatif oldu.
&lt;/p&gt;

&lt;p&gt;
&lt;b&gt;12. &lt;a href=&quot;http://fluentvalidation.codeplex.com/&quot;&gt;FluentValidation&lt;/a&gt;&lt;/b&gt; &lt;br /&gt;&lt;/p&gt;&lt;p&gt;Uygulamalarda girilen verilerin do&#287;rulanmas&#305; hem g&#252;venlik a&#231;&#305;s&#305;ndan hemde uygulaman&#305;n stabilitesi a&#231;&#305;s&#305;ndan son derece &#246;nemlidir. FluentValidation'da tam burda devreye giriyor. Verileri do&#287;rulamak i&#231;in size kolay ve anla&#351;&#305;l&#305;r method'lar sunuyor validation i&#231;in ek olarak bir geli&#351;tirme yapman&#305;za gerek kalm&#305;yor.

&lt;/p&gt;&lt;p&gt;
&lt;b&gt;13. &lt;a href=&quot;http://npoi.codeplex.com/&quot;&gt;NPOI&lt;/a&gt;&lt;/b&gt; &lt;br /&gt;&lt;/p&gt;&lt;p&gt;Ba&#351;ka bir Open-Source projede NPOI yine Java d&#252;nyas&#305;ndan dev&#351;irilmi&#351; bu proje doc, ppt, xls gibi dosya uzant&#305;lar&#305;n&#305; a&#231;man&#305;z&#305; ve olu&#351;turman&#305;z&#305; sa&#287;l&#305;yor. Fakat sadece office 2003 deste&#287;i var ama yinede office 2010 bu dosyalar&#305; sorunsuz a&#231;abiliyor.
&lt;/p&gt;

&lt;p&gt;
&lt;b&gt;14. &lt;a href=&quot;http://www.xml-rpc.net/&quot;&gt;xmlrpcnet&lt;/a&gt;&lt;/b&gt; &lt;br /&gt;&lt;/p&gt;&lt;p&gt;Hosting firmas&#305;nda &#231;al&#305;&#351;t&#305;&#287;&#305;m i&#231;in bir &#231;ok registrar ve di&#287;er &#231;&#246;z&#252;m ortaklar&#305;m&#305;zla API'lerle haberle&#351;iyoruz. Bu API'lerde genelde &lt;a href=&quot;http://en.wikipedia.org/wiki/XML-RPC&quot;&gt;XMLRPC&lt;/a&gt; protokol&#252;nde haberle&#351;iyor. Bu protokol&#252; .NET &#252;zerinde kullanmak i&#231;in bu arac&#305; kullan&#305;yoruz.
&lt;/p&gt;

&lt;p&gt;
&lt;b&gt;15. &lt;a href=&quot;http://fluentpath.codeplex.com/&quot;&gt;FluentPath&lt;/a&gt;&lt;/b&gt; &lt;br /&gt;&lt;/p&gt;&lt;p&gt;FluentPath dosya i&#351;lemlerinizi (System.IO) &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/bb397687.aspx&quot;&gt;Lambda&lt;/a&gt; kullanarak &#231;ok daha kolay ger&#231;ekle&#351;tirmemizi sa&#287;layan bir ara&#231;. Path.Files(f =&amp;gt; new[]{&amp;quot;.aspx&amp;quot;}).Move( p =&amp;gt; p.Parent()).Hide(); gibi.

&lt;/p&gt;&lt;p&gt;
&lt;b&gt;16. &lt;a href=&quot;http://wpl.codeplex.com/&quot;&gt;Microsoft Web Protection Library (AntiXSS, SQLInjection)&lt;/a&gt;&lt;/b&gt; &lt;br /&gt;&lt;/p&gt;&lt;p&gt;Web uygulamalar&#305;nda g&#252;venli&#287;e dikkat etmek laz&#305;m. Developer fark&#305;nda olmadan XSS a&#231;&#305;klar&#305; ve SQLInjection a&#231;&#305;klar&#305;na neden olabiliyor. HTML , XML, CSS ve JavaScript baz&#305;nda g&#252;venlik a&#231;&#305;klar&#305; vermemek i&#231;in kullanabilirsiniz.
&lt;/p&gt;

&lt;p&gt;
&lt;b&gt;17. &lt;a href=&quot;http://www.icsharpcode.net/opensource/sharpziplib/&quot;&gt;SharpZipLib&lt;/a&gt;&lt;/b&gt; &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a&gt;Uygulaman&#305;zda zip paketleri &#252;retmenizi sa&#287;layan a&#231;&#305;k kaynakl&#305; bir ara&#231;. Zip, Gzip, Tar, Bzip2 deste&#287;ide gelmi&#351;. 10 numara.
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;
&lt;a&gt;&lt;b&gt;18. &lt;/b&gt;&lt;/a&gt;&lt;b&gt;&lt;a href=&quot;http://altairismailtoolkit.codeplex.com/&quot;&gt;Altairis Mail Toolkit&lt;/a&gt;&lt;/b&gt; &lt;br /&gt;&lt;/p&gt;&lt;p&gt;Geli&#351;mi&#351; bir e-posta y&#246;netimi yapabilece&#287;inz bu ara&#231; i&#351;lerinizi ger&#231;ekten kolayla&#351;t&#305;r&#305;yor. Tek sat&#305;r kodla e-mail g&#246;nderebiliyorsunuz, e-mail tamplate yap&#305;lar&#305;n&#305; kolayca olu&#351;uturup bir &#231;ok al&#305;c&#305;ya tek bir seferde g&#246;nderim yapabiliyorsunuz. Ek olarak Open-Souce.
&lt;/p&gt;

&lt;p&gt;
&lt;b&gt;19. &lt;a href=&quot;http://weblogs.asp.net/scottgu/archive/2008/01/07/dynamic-linq-part-1-using-the-linq-dynamic-query-library.aspx&quot;&gt;Dynamic Expression API&lt;/a&gt;&lt;/b&gt; &lt;br /&gt;&lt;/p&gt;&lt;p&gt;Linq2Sql ile bir proje geli&#351;tiriyorsan&#305;z sorgulamalar&#305; dinamik hale nas&#305;l getirece&#287;inizi ilk etapta bilememi&#351;sinizdir. &#350;ahsen ben dedim. &amp;quot;Nas&#305;l dinamik query olu&#351;turaca&#287;&#305;z bu Linq'de&amp;quot; diye ama arkas&#305;ndan Micsoroft beni duymu&#351; olacak ki &amp;quot;Dynamic Expression API&amp;quot; yi &#231;&#305;kard&#305;.
&lt;/p&gt;

&lt;p&gt;
&lt;b&gt;20. &lt;a href=&quot;http://aenetmail.codeplex.com/&quot;&gt;AE.Net.Mail&lt;/a&gt;&lt;/b&gt; &lt;br /&gt;&lt;/p&gt;&lt;p&gt;POP3 ve IMAP protkollerini kullanarak e-postalar&#305;n&#305;za eri&#351;meyi sa&#287;l&#305;yor. En son bakt&#305;&#287;&#305;mda SSL deste&#287;inide eklemi&#351;ler. Laz&#305;m olunca ba&#351;vuruyorum.
&lt;/p&gt;

&lt;p&gt;
&lt;b&gt;21. &lt;a href=&quot;http://fluentnhibernate.org/&quot;&gt;FluentNhibernate&lt;/a&gt;&lt;/b&gt; &lt;br /&gt;&lt;/p&gt;&lt;p&gt;Efsanevi &lt;a href=&quot;http://en.wikipedia.org/wiki/NHibernate&quot;&gt;Nhibernate&lt;/a&gt;'&#305;n XML dosyalar&#305;na gerek kalmadan bir &#231;ok i&#351;i otomatize eden bir ara&#231;. Nhibernate'i herkes biliyor ve kullan&#305;yor onun i&#231;in listeye ayr&#305;ca bir madde eklemedim.

&lt;/p&gt;&lt;p&gt;
&lt;b&gt;22. &lt;a href=&quot;http://paypalhelper.codeplex.com/&quot;&gt;PayPal Helper&lt;/a&gt;&lt;/b&gt; &lt;br /&gt;&lt;/p&gt;&lt;p&gt;e-ticaret uygulamalar&#305;nda en&#231;ok tercih edilen &#246;deme metodu olan &lt;a href=&quot;http://www.paypal.com&quot;&gt;paypal&lt;/a&gt;'&#305; .Net Web uygulamalar&#305;n&#305;zda kullanman&#305;za yard&#305;mc&#305; olur. Kullanmad&#305;m ama kenarda bekletiyorum.
&lt;/p&gt;

&lt;p&gt;
&lt;b&gt;23. &lt;a href=&quot;http://htmlagilitypack.codeplex.com/&quot;&gt;HTML Agility Pack&lt;/a&gt;&lt;/b&gt; &lt;br /&gt;&lt;/p&gt;&lt;p&gt;HTML parse etmek i&#231;in &lt;a href=&quot;http://en.wikipedia.org/wiki/Regex&quot;&gt;Regex&lt;/a&gt; kullanmay&#305;n. Regex bu i&#351;in do&#287;as&#305;na ayk&#305;r&#305; o nedenle adamlar oturmu&#351; HTML Agility Pack'i kullanman&#305;z i&#231;in geli&#351;tirmi&#351;, kodlar&#305;n&#305; a&#231;m&#305;&#351;. Son versionunda Linq deste&#287;i gelmi&#351; g&#252;zelde olmu&#351;. 
&lt;/p&gt;

&lt;p&gt;
&lt;b&gt;24. &lt;a href=&quot;http://json.codeplex.com/&quot;&gt;Json.Net&lt;/a&gt;&lt;/b&gt; &lt;br /&gt;&lt;/p&gt;&lt;p&gt;Art&#305;k ajax i&#351;lemlerinde istek ve cevaplar&#305; Json ile konu&#351;turuyorum. Hem okunmas&#305; hemde yazmas&#305; daha kolay oluyor, ama bazen server taraf&#305;ndaki objeleri Json'a, Xml'e &#231;evirimem gerekiyor o zaman Json.Net'in nimetlerinden faydalan&#305;yorum.
&lt;/p&gt;

&lt;p&gt;
&lt;b&gt;25. &lt;a href=&quot;http://twittervb.codeplex.com/&quot;&gt;TwitterVB - A .NET Twitter Library&lt;/a&gt; &lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;
Twitter &#252;zerinde bir uygulama geli&#351;tirecekseniz sizin i&#231;in bi&#231;ilmi&#351; kaftan. oAuth deste&#287;i ve bir &#231;ok API fonksiyonunu destekliyor. Twitter uygulamalar&#305;nda s&#252;rekli kullan&#305;yorum. Birde geo-location'i tam &#231;al&#305;&#351;sa s&#252;per olacak.
&lt;/p&gt;</description>
<pubDate>14.01.2011</pubDate>
<link>http://www.oguzhan.info/?531/Kulland%26%23305%3B%26%23287%3B%26%23305%3Bm+%2ENet+Library%27leri%2E</link>
<guid>http://www.oguzhan.info/?531/Kulland%26%23305%3B%26%23287%3B%26%23305%3Bm+%2ENet+Library%27leri%2E#531</guid>
</item>

<item>
<title>Powershell Database Backup Script'i</title>
<description>
.Net'in shell'e dev&#351;irilmi&#351; hali powershell ile ufak bir veritaban&#305; yedekleme script'i haz&#305;rlad&#305;m. Biraz daha geli&#351;tirilebilir tabi ama &#351;imdilik i&#351;imizi g&#246;r&#252;yor :)&lt;br /&gt;

&lt;pre&gt;[System.Reflection.Assembly]::LoadWithPartialName(&amp;quot;Microsoft.SqlServer.SMO&amp;quot;) | Out-Null&lt;br /&gt;[System.Reflection.Assembly]::LoadWithPartialName(&amp;quot;Microsoft.SqlServer.SmoExtended&amp;quot;) | Out-Null&lt;br /&gt;[System.Reflection.Assembly]::LoadWithPartialName(&amp;quot;Microsoft.SqlServer.ConnectionInfo&amp;quot;) | Out-Null&lt;br /&gt;[System.Reflection.Assembly]::LoadWithPartialName(&amp;quot;Microsoft.SqlServer.SmoEnum&amp;quot;) | Out-Null&lt;br /&gt;&lt;br /&gt;$server = New-Object (&amp;quot;Microsoft.SqlServer.Management.Smo.Server&amp;quot;) (&amp;quot;DATABASE_SERVER&amp;quot;)&lt;br /&gt;&lt;br /&gt;$dbBackup = new-Object (&amp;quot;Microsoft.SqlServer.Management.Smo.Backup&amp;quot;)&lt;br /&gt;$dbBackup.Database = &amp;quot;DATABASENAME&amp;quot;&lt;br /&gt;$dbBackup.Devices.AddDevice(&amp;quot;C:\Yedek\BACKUP_DB_NAME.bak&amp;quot;, &amp;quot;File&amp;quot;)&lt;br /&gt;$dbBackup.Action=&amp;quot;Database&amp;quot;&lt;br /&gt;$dbBackup.Initialize = $TRUE&lt;br /&gt;$dbBackup.SqlBackup($server)&lt;br /&gt;&lt;/pre&gt;



Arkas&#305;ndan &amp;quot;&lt;span style=&quot;font-weight: bold;&quot;&gt;Write-zip&lt;/span&gt;&amp;quot; metodu ile zip'leyip &lt;span style=&quot;font-weight: bold;&quot;&gt;new-object Net.Mail.SmtpClient(&amp;quot;SMTP_SERVER&amp;quot;)&lt;/span&gt; ile'de e-posta bildirimi yapabiliriz.&lt;br /&gt;&lt;br /&gt;Kolay Gelsin.&lt;br /&gt;&lt;div id=&quot;budaneki_icon&quot; style=&quot;position: absolute; left: 665px; top: 147px; width: 30px; height: 22px; display: block; opacity: 1; z-index: 9999; cursor: pointer; background: url(&quot;data:image;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAArhJREFUeNq0lU1PGkEYx2fnbYFFqC+1iWhF0RgRGkqaYEx69qgHjf0S9SO036MnT156MMbPgJCUmLTSJrYNVFMvvRiXV1dh+8wy207GrUkPLPlnmX35zZ9nnv+A0JAO44HrqrB2vw9yNT0IVmFEk/+sgPQ03ZuABkCxBDF5n8kxVtwK2C3oTp578ro/8T0wVmDWq52dZ5lMdtuyrNVwOJREhoFubro/2u1O+fT09P3+/v4neK6lTOKXyHOiQzkouvt6d2NqaurtwkLqZTaz8mRuft5Mzad4cjY5zhhN9/vu6vN87rpUKtW1ciAVrEJDW1tb+emZxJv19fXFRCIRAsc4EokYJjeNUCSMZ6Zn2NLS0qN6rbb4eHLyY7Va/aUvJlYcEx+ey+W2oQTJ0dFRNhIdQQBFpmkiDvLOIRNNTIyzQqGQzOfz29IQVRdZB4vaMnBYWEmnuSWAABEaQDkC14gz7o0z2SyPWtGC/54Kpkop/LaiAJ6Nx+OEEIoIJYgSgogiLM4Yo7GxMWJZkVnF7Z/uCeoKjGH1OeeIMgALuARhAsKD7wZ8d/suMjD2jWE1Fzgodu1O58JxnB5nJmKcIcYGohQmo9RzbMCnYTd67Vb7Ioihgl3Zh/1ms1n5+u27I6CcSueee3Bq/A1r9XPVsZuNiv+e2m56moTuyuXyYaXy4dxu2LeixgQPHKrH1dXVbblUOi8dHx/KcPTUBOoB8brj7OzsOr28bNdq9TnXda1YPG5Am3lk27Z7Jycn3aOjo/rPy8t3e3t7x3C5A7pR4u0aQQEBhUWkNzc302traxuxWOyFFbWeCtetZuuiAT+/WCweHhwcfJGRFuAuyPGjbfwj0iEpU46DNiFHuuzqUOGYKgvnKrsW0sZUA/u7mqOXIGh3c5WX/Afu/nPbdIe+0Q/tr2lox28BBgBARwD6fd1xxAAAAABJRU5ErkJggg==&quot;) no-repeat scroll 0% 0% transparent;&quot;&gt;&lt;span id=&quot;budaneki_t_icon&quot; style=&quot;background: url(&quot;data:image;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAVCAYAAAByrA+0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAZFJREFUeNqUU11qAjEQ/pLdWihSC2V9KmV7guIN2gN4KV989Bpt2QvYM1jsCQT7KIiiC9JNN9OZJPv3UurAZ8zMl/n5slHwphkXjMuwajRmGYbxLasKwSvGDeOW0Q+HKhNyztgy9ghZ7xhP9IdJPPBwzXikf5jwqt775KoTyC8IW3T8zNP1wJzA5eCf17cXTCYTJlm0/cKr1SCyIBckzOfvGAwGIMenAFvL6bUjH5xOpxgOhxiNRlh8LJBlGTabjYtXlogCRVGQMYZ2uz3NZjNarVZk2FcUxvklLry4aSmUtiXyPAcTOCtBySSt7HHTkoXc4uFwcAestWEudqpGuBitIWSsY35Er9cL1cgLSsol6xwoOaMK3iiKXAWBZzZtxR1ZOW5LC629eObHINKRJyh0ZSUmypDpQ4o0TXE6nbBef2H5uXR+iXdbIqpuE+PxGMq3znbvW2vN4L53ElWkciCKnCTD1nvfZVx972Uri5z0RKr3wXIdXtI2SZJnubRKnZJs/V/8Ehfe2S9OnfumfwUYAHLBUQ1Df82GAAAAAElFTkSuQmCC&quot;) repeat scroll 0% 0% transparent; float: right; position: relative; width: 12px; height: 21px; left: 0px; opacity: 0;&quot;&gt;&lt;/span&gt;&lt;/div&gt;</description>
<pubDate>05.01.2011</pubDate>
<link>http://www.oguzhan.info/?530/Powershell+Database+Backup+Script%27i</link>
<guid>http://www.oguzhan.info/?530/Powershell+Database+Backup+Script%27i#530</guid>
</item>

<item>
<title>Beta F&#305;rt&#305;nas&#305; (for .Net)</title>
<description>
&lt;p&gt;Pek duyuru haberleri vermeyi sevmiyorum ama &#246;nemli bir tak&#305;m geli&#351;meler olunca hemde hareket olsun diye .Net d&#252;nyas&#305;nda ki beklenen her&#351;eyin Beta's&#305;n&#305;n yada RTM'e en yak&#305;n olan versionlar&#305;n&#305;n haberlerini vereyim dedim. Akabinde...&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;VS.NET 2010'un SP1'in Beta's&#305; &lt;a href=&quot;http://www.microsoft.com/downloads/en/details.aspx?FamilyID=11ea69cb-cf12-4842-a3d7-b32a1e5642e2&amp;displaylang=en&quot;&gt;yay&#305;nland&#305;&lt;/a&gt;. G&#252;zel geli&#351;meler var major maddeleri a&#351;a&#287;&#305;da listeledim.&lt;/p&gt;

	&lt;ul&gt;
		&lt;li&gt;ASP.NET MVC3 ile birlikte gelen Razor HTML engine'i i&#231;in IntelliSense deste&#287;i sa&#287;lanm&#305;&#351;.&lt;/li&gt;
		&lt;li&gt;IntelliTrace in beklenen x64bit dete&#287;i nihayet eklenmi&#351;.&lt;/li&gt;
		&lt;li&gt;IntelliTrace i&#231;in .iTrace file &#246;zelli&#287;i eklenmi&#351;. B&#246;ylece trace'i bir dosyaya al&#305;p saklayabiliyorsunuz. ( Tool &amp;gt; Option &amp;gt;IntelliTrace men&#252;s&#252;ne bak&#305;n)&lt;/li&gt;
		&lt;li&gt;HTML5 Schema's&#305; eklenmi&#351;.&lt;/li&gt;
		&lt;li&gt;IIS Express deste&#287;i gelmi&#351;. (Sonunda SSL ve IIS 7.5'de &#231;al&#305;&#351;an bir &#231;ok &#246;zelli&#287;i local'de rahatl&#305;kla test edip, geli&#351;time yapabilece&#287;iz)&lt;/li&gt;
	&lt;/ul&gt;
	
&lt;p&gt;Beni ilgilendiren &#246;zellikler bunlar oldu&#287;u i&#231;in geri kalan ufak tefek fix'leri yazm&#305;yorum.&lt;/p&gt;

&lt;p&gt;Y&#305;l sonu bitmeden bir &#231;ok arac&#305;n ve altyap&#305;n&#305;n yeni version'lar&#305; yay&#305;nlanmaya ba&#351;lad&#305; bunlar&#305;da bir araya toplay&#305;p ufak bir liste yapt&#305;m. &#199;o&#287;u beta ve normal development ortam&#305;n&#305;za kurmadan sanal ortamda test etmenizi &#246;neririm.&lt;/p&gt;
	
	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.microsoft.com/downloads/en/details.aspx?FamilyID=6e3b7759-3df2-4755-8208-44955eee4d4c&amp;displaylang=en&quot;&gt;.NET Framework 4 Update Beta&lt;/a&gt; Yay&#305;nlanm&#305;&#351;.&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.microsoft.com/downloads/en/details.aspx?FamilyID=955d593e-cbd1-4ed1-88eb-02ff79dd74d8&amp;displaylang=en&quot;&gt;ASP.NET MVC 3 RC2 olmu&#351;.&lt;/a&gt; hala RC2, RTM olmas&#305; &#231;ok yak&#305;nd&#305;r.&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://blogs.msdn.com/b/adonet/archive/2010/12/14/ef-feature-ctp5-released.aspx&quot;&gt;EntityFramework Feature CTP5&lt;/a&gt; relese olmu&#351;.&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.microsoft.com/web/gallery/install.aspx?appid=iisexpress&quot;&gt;IIS 7.5 Express&lt;/a&gt; Web Platform Installer'a eklenmi&#351;.&lt;/li&gt;
	&lt;/ul&gt;
	
&lt;p&gt;
Sonu&#231; olarak developer'&#305;n hayat&#305;n&#305; kolayla&#351;t&#305;ran ve development'&#305;m&#305;z&#305; h&#305;zland&#305;racak ara&#231;lar kap&#305;ya geldi. Biraz daha pi&#351;tikten sonra kullan&#305;p yeni tart&#305;&#351;ma konular&#305; ba&#351;lataca&#287;&#305;z. &#214;rne&#287;in Razor Engine mi h&#305;zl&#305;? yoksa Spark Engine m&#305;? MVC2 stabildi, MVC3 yava&#351; gibi yada EF5 mi Nhibernate mi? :)&lt;/p&gt;

&lt;p&gt;
&lt;b&gt;Konu d&#305;&#351;&#305;: &lt;/b&gt;
Hosting sekt&#246;r&#252; ile ilgileniyorsan&#305;z yada merak duyuyorsan&#305;z di&#287;er blog'um &lt;a href=&quot;http://www.webhostingturkey.com&quot;&gt;webhostingturkey.com&lt;/a&gt;'a bir g&#246;z atabilrisiniz. Modaya uyup twitter profilimin reklam&#305;n&#305; da yapay&#305;m. &lt;a href=&quot;http://twitter.com/c1982&quot;&gt;@c1982&lt;/a&gt;
&lt;/p&gt;
		</description>
<pubDate>17.12.2010</pubDate>
<link>http://www.oguzhan.info/?529/Beta+F%26%23305%3Brt%26%23305%3Bnas%26%23305%3B+%28for+%2ENet%29</link>
<guid>http://www.oguzhan.info/?529/Beta+F%26%23305%3Brt%26%23305%3Bnas%26%23305%3B+%28for+%2ENet%29#529</guid>
</item>

<item>
<title>PDC 2010 &#304;zmir</title>
<description>Normalde b&#246;yle olaylar&#305; yazmam ama PDC olunca bir ba&#351;ka oluyor. Tabi bu yerel etkinlik ne kadar PDC tad&#305; verecek o ba&#351;ka bir blog yaz&#305;s&#305; olur ama yinede &#351;&#252;k&#252;r &#304;zmir'de b&#246;yle &#351;eyler 10 senede bir olsada oluyor.&lt;br /&gt;&lt;br /&gt;9 Aral&#305;k 2010 Per&#351;embe g&#252;n&#252; - &#304;zmir Ya&#351;ar &#220;niversitesinde &lt;span style=&quot;font-weight: bold;&quot;&gt;Profesyonel Yaz&#305;l&#305;m Geli&#351;tiriciler&lt;/span&gt; Konferans&#305; yap&#305;lacakm&#305;&#351;. &#304;zmir b&#246;yle etkinlikler a&#231;&#305;s&#305;ndan olduk&#231;a k&#305;t oldu&#287;undan (Belkide talep olmamas&#305;ndan) izmir'e Bono gelmi&#351; gibi haber veriyorum.&lt;br /&gt;&lt;br /&gt;Etklinlik tam g&#252;n s&#252;recek 09:00 - 17:00'a kadar bir s&#252;re. Windows Azure'dan, HTML5'e ve hatta anlams&#305;z bir &#351;ekilde IE9'dan bahsedeceklermi&#351;. Umar&#305;m yararl&#305; bir etkinlik olur.&lt;br /&gt;&lt;br /&gt;Kay&#305;t:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032469834&amp;culture=tr-TR&quot;&gt;https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032469834&amp;amp;culture=tr-TR&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.inetatr.org/&quot;&gt;http://www.inetatr.org/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;</description>
<pubDate>20.11.2010</pubDate>
<link>http://www.oguzhan.info/?528/PDC+2010+%26%23304%3Bzmir</link>
<guid>http://www.oguzhan.info/?528/PDC+2010+%26%23304%3Bzmir#528</guid>
</item>

<item>
<title>&#304;pucu: HttpWebRequest ile https</title>
<description>
HttpWebRequest s&#305;n&#305;f&#305; ile https &#252;zerinden veri al&#305;&#351;veri&#351;inde bulunduysan&#305;z muhakkak kar&#351;&#305;la&#351;m&#305;&#351;s&#305;n&#305;zd&#305;r.

&lt;br /&gt;&lt;br /&gt;&amp;quot;The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.&amp;quot;

&lt;br /&gt;&lt;br /&gt;Bu durumu a&#351;a&#287;&#305;daki event'a anonim bir delegate tan&#305;mlayarak bypass edebiliyoruz.


&lt;pre&gt;            &lt;b&gt;System.Net.ServicePointManager.ServerCertificateValidationCallback += delegate&lt;br /&gt;                                                                            (object sender, X509Certificate certificate, X509Chain chain, &lt;br /&gt;                                                                            SslPolicyErrors sslPolicyErrors)&lt;br /&gt;                                                                            { return true; };&lt;/b&gt;&lt;br /&gt;            &lt;br /&gt;            var parameters = &amp;quot;go=1&amp;quot;;&lt;br /&gt;&lt;br /&gt;            var cred = new NetworkCredential();&lt;br /&gt;            cred.Password = &amp;quot;demo&amp;quot;&lt;br /&gt;            cred.UserName = &amp;quot;admin&amp;quot;&lt;br /&gt;&lt;br /&gt;            var request = (HttpWebRequest)HttpWebRequest.Create(&amp;quot;https://www.google.com&amp;quot;);&lt;br /&gt;            request.AllowAutoRedirect = false;&lt;br /&gt;            request.ContentType = &amp;quot;application/x-www-form-urlencoded&amp;quot;;&lt;br /&gt;            request.Credentials = cred;&lt;br /&gt;            request.Method = &amp;quot;POST&amp;quot;;&lt;br /&gt;            request.UserAgent = &amp;quot;Vargonen/0.1&amp;quot;;&lt;br /&gt;            request.ContentLength = parameters.Length;&lt;br /&gt;&lt;br /&gt;            var reqStream = request.GetRequestStream();&lt;br /&gt;            reqStream.Write(parameters, 0, parameters.Length);   &lt;br /&gt;            reqStream.Close();&lt;br /&gt;&lt;br /&gt;            var response = (HttpWebResponse)request.GetResponse();&lt;br /&gt;            var sr = new StreamReader(response.GetResponseStream());&lt;br /&gt;            var htmlText = sr.ReadToEnd().Trim();&lt;br /&gt;&lt;/pre&gt;


&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/system.net.servicepointmanager.servercertificatevalidationcallback.aspx&quot;&gt;http://msdn.microsoft.com/en-us/library/system.net.servicepointmanager.servercertificatevalidationcallback.aspx&lt;/a&gt;</description>
<pubDate>12.11.2010</pubDate>
<link>http://www.oguzhan.info/?527/%26%23304%3Bpucu%3A+HttpWebRequest+ile+https</link>
<guid>http://www.oguzhan.info/?527/%26%23304%3Bpucu%3A+HttpWebRequest+ile+https#527</guid>
</item>

	</channel>
</rss>

