<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet type="text/css" href="/Content/rss.css"?>
<rss version="2.0">
<channel>
    <title>.net denemeleri</title>
    <link>http://www.ayrilmaz.com</link>
    <description>Emre Ayrılmaz'ın .Net Framework içerikli kişisel web sitesi.</description>
    <copyright>Yusuf Emre AYRILMAZ</copyright>

<item>
<title>Visual Studio Klavye Kısalyolu</title>
<description><![CDATA[<p>Herhangi bir text (cs,sql gibi) ortamında &ccedil;alışırken <strong>Ctrl+T</strong> klavye kısayolunu ile se&ccedil;ili t&uuml;m karakterleri k&uuml;&ccedil;&uuml;k harfe &ccedil;evirebilirsiniz.</p>]]></description>
<link>http://www.ayrilmaz.com/Home/Post/visual-stuido-klavye-kisalyolu.aspx</link>
<pubDate>9/3/2010 12:00 AM</pubDate>
</item>

<item>
<title>Powershell ile Guid Değer &#220;retme</title>
<description><![CDATA[<p>Guid değer elde etmenin bir &ccedil;ok yolu mevcut. Powershell kullanarak elde etmekte bunlardan bir tanesi.</p>
<p>&nbsp;<img src="../../BlogImages/powerguid.png" alt="Guid" width="314" height="159" /></p>]]></description>
<link>http://www.ayrilmaz.com/Home/Post/powershell-ile-guid-uretme.aspx</link>
<pubDate>9/2/2010 12:00 AM</pubDate>
</item>

<item>
<title>SqlBulkCopy ile veri kopyalamak</title>
<description><![CDATA[<p>Eğitmenlik yaptığım zaman dilimi i&ccedil;inde ve&nbsp;&ouml;zellikle&nbsp;Ado.Net 2.0 g&uuml;nlerinde (tabi ozamanlar linq yada&nbsp;EF yok) hatta eğtimin 500 saat olduğu d&ouml;nemlerde</p>]]></description>
<link>http://www.ayrilmaz.com/Home/Post/sqlbulkcopy-ile-veri-kopyalamak.aspx</link>
<pubDate>9/2/2010 12:00 AM</pubDate>
</item>

<item>
<title>Metot Geri D&#246;n&#252;şleri &#220;zerine</title>
<description><![CDATA[<p>&nbsp;Metotlar geriye değer d&ouml;nd&uuml;r&uuml;r yada d&ouml;nd&uuml;rmez. Peki d&ouml;nd&uuml;renler ka&ccedil; değer d&ouml;nd&uuml;r&uuml;r denildiğinde tabi ki bir deriz. Birden fazlaya ihtiya&ccedil; varsa ne yaparız? Bunun i&ccedil;in 3 metot prototipi yazdım, paylaşıyorum.</p>
<p><img id="bigo" src="http://ayrilmaz.com/BlogImages/method1.png" alt="method1" /></p>
<p>&nbsp;İlk y&ouml;ntem <a href="http://msdn.microsoft.com/en-us/library/ee332485.aspx" target="_blank">out</a> parametre anahtarını kullanmak. Geriye d&ouml;nmediği kesin ama metottan etkilendiğide bir ger&ccedil;ek. İşe yarıyor mu, evet :)</p>
<p><img id="bigo" src="http://ayrilmaz.com/BlogImages/method2.png" alt="method2" /></p>
<p>&nbsp;İkinci y&ouml;ntem ise Class<sup>nesne</sup> (Custom Reference Type) kullanmak. Geriye yine tek bir nesne d&ouml;n&uuml;yor. İ&ccedil;sel olarak genişletilebilmesi (property, field) sayesinde &ccedil;ok kullanışlı lakin yazması&nbsp;zahmetli.</p>
<p><img id="bigo" src="http://ayrilmaz.com/BlogImages/method3.png" alt="method3" /></p>
<p>Son y&ouml;ntem aslında yazının amacı ve&nbsp;Framework 4.0 yeniliği olan <a href="http://msdn.microsoft.com/en-us/library/system.tuple.aspx" target="_blank">Tuple</a><sup>&ccedil;ok-&ouml;geli</sup> kullanmak...</p>
<p>&Ouml;rnek <a class="download" href="http://ayrilmaz.com/ress/GeriDonGeriDon.rar">proje</a>.</p>]]></description>
<link>http://www.ayrilmaz.com/Home/Post/metot-geri-donusleri-uzerine.aspx</link>
<pubDate>6/23/2010 12:00 AM</pubDate>
</item>

<item>
<title>ConfigSource İle Daha D&#252;zenli Web.Config</title>
<description><![CDATA[<p>Web.config dosya tanımlamalarında bulunan configSource &ouml;zelliği ile verileri birden fazla dosyaya dağıtarak y&ouml;netimi daha rahat bir hale getirebiliriz.<br /><img src="../../blogImages/ConfigS_1.png" alt="ConfigSource" width="214" height="141" /><br />Burada dikkat edilmesi gereken nokta;<br />yeni eklenen config dosyasında xml bildirimi ve configuration k&ouml;k d&uuml;ğ&uuml;m&uuml;n&uuml;n olmaması gerekir.</p>
<p>Web.config dosyası. configSource ile diğer config dosyalarını kendine bağlıyor.<br /><img src="../../blogImages/ConfigS_2.png" alt="ConfigSource" width="430" height="139" /></p>
<p>T&uuml;m appSettings değerleri Applications.config dosyasında.<br /><img src="../../blogImages/ConfigS_3.png" alt="ConfigSource" width="373" height="102" /></p>
<p>T&uuml;m connectionStrings ifadeleri Connections.config dosyasında.<br /><img src="../../blogImages/ConfigS_4.png" alt="ConfigSource" width="688" height="231" /></p>
<p>&Ouml;rnek <a class="Download" href="../../Ress/ConfigS.rar">proje</a>.</p>]]></description>
<link>http://www.ayrilmaz.com/Home/Post/configsource-ile-daha-duzenli-web-config.aspx</link>
<pubDate>4/28/2010 12:00 AM</pubDate>
</item>

<item>
<title>Repeater Kontrol&#252; İle Veri Sıralama</title>
<description><![CDATA[<p>Repeater, veri kontrolleri i&ccedil;inde en sevdiğimdir. Onu esnek hale getiren basit yapısı ben en cezbeden &ouml;zelliğidir. Basit olduğundan dolayı g&ouml;revi sadece veri g&ouml;stermek. Peki sıralama yapmak istersek ne yapmalıyız?<br />
Aslında cevap basit; HeaderTemplate i&ccedil;ine koyacağımız LinkButton kontrolleri ve sıralama bilgilerini&nbsp;ViewState&nbsp;i&ccedil;inde&nbsp;tutarak yapabilir.</p>
<p>Burada tablo başlıklarına birer LinkButton ve Image kontrol&uuml; koyuyoruz. LinkButton sıralama komutunu işlerken, Image kontrolleride sıralama yapılan satırları işaret edecek.<br />
<br />
<img alt="Repeater Sort" width="603" height="323" src="/blogImages/sortingen_2.png" /></p>
<p>Sıralama sırasından iki adet bilgiye ihtiya&ccedil; var. Sıralanacak <strong>veri kolonu</strong> ve <strong>sıralama y&ouml;n&uuml;</strong>. Bu bilgileri ViewState i&ccedil;inde saklıyoruz. Kullanım kolaylığı olması i&ccedil;in &Ouml;zellik (Property) olarak tanımlıyoruz.</p>
<p><img alt="Repeater Sort" src="/blogImages/sortingen_3.png" /></p>
<p>Sıralama komutu i&ccedil;in ado.net kodlarımız. Kolon adı parametre olmadığı i&ccedil;in <strong>String </strong>nesnedinin <em>Format </em>metotunu kullandım.</p>
<p><img alt="Repeater Sort" width="587" height="230" src="/blogImages/sortingen_4.png" /></p>
<p>Uygulama sonunda elde edeceğimiz veri listesi.</p>
<p><img alt="Repeater Sort" width="614" height="323" src="/blogImages/sortingen_1.png" /></p>
<p>Kalan detaylara projeyi indirip bakabilirsiniz.</p>
<p>Projeyi <a class="download" href="/Ress/Sortingen.rar">indir</a>.</p>]]></description>
<link>http://www.ayrilmaz.com/Home/Post/repeater-kontrolu-ile-veri-siralama.aspx</link>
<pubDate>4/25/2010 4:37 AM</pubDate>
</item>

<item>
<title>Sınırsız Ağa&#231; Yapısı İle Kategori Listeleme</title>
<description><![CDATA[<p>&Ouml;yle bir tablom olsun ki sınırsız kategori ve alt kategori ekleyebileyim. Neden bahsettiğimi anladınız sanırım :) Halk arasında Sınırsız Ağa&ccedil; Yapısı denilen tablo &ccedil;eşidi.</p>
<p>&Ouml;rnek tablo:<br />
<img alt="Data Diagram" width="418" height="184" src="/blogImages/sonsuz_data_diagram.png" /></p>
<p>&Ouml;rneğimizdeki yapı ş&ouml;yle olacak; Kategori hiyerarşinin en&nbsp;&uuml;st&uuml;nde ise alt kategori değeri 0 (sıfır) olacak. Değilse &uuml;st kategorinin id değeri yer alacak.<br />
<img alt="Data" src="/blogImages/sonsuz_data.png" /></p>
<p>Azıcık kod yazalım.</p>
<p><img alt="Code" width="518" height="441" src="/blogImages/sonsuz_code(1).png" /></p>
<p>Sonu&ccedil;;<br />
<img alt="Result" width="383" height="354" src="/blogImages/sonsuz_sonuc.png" /></p>
<p>&Ouml;rnek <a class="download" href="/Ress/sonsuz.rar">proje</a>.</p>]]></description>
<link>http://www.ayrilmaz.com/Home/Post/sinirsiz-agac-yapisi-ile-kategori-listeleme.aspx</link>
<pubDate>4/9/2010 1:28 PM</pubDate>
</item>

<item>
<title>Calendar (Takvim) Kontrol&#252; İle Popup Pencere A&#231;mak</title>
<description><![CDATA[<p>Ge&ccedil;enlerde Asp.Net sunucu kontrollerinden Takvim (Calendar) &uuml;zerine uygulama geliştiriyorduk. &Ouml;nemli g&uuml;nleri vurgulamak &ccedil;ok klasik bir &ouml;rnektir. Bizde bu &ouml;rnek &uuml;zerinden yola &ccedil;ıktık. Farklı olarak, g&uuml;n se&ccedil;ildiğinde sonu&ccedil;ları popup pencere ile g&ouml;stermeye karar verdik.</p>
<p>&Ouml;rneği besleyecek basit bir xml verisi hazırladık. Veriyi kodda kullanmayı sağlayan basitte bir class yazdık. Gerisi Takvim kontrol&uuml;n&uuml; kullanamaya kaldı.</p>
<p>Sonu&ccedil;ları popup pencerede nasıl g&ouml;stereceğimizi anlamak i&ccedil;in Takvim kontrol&uuml;n&uuml; biraz irdelemek gerekir. Kontrol tarayıcı penceresine basıldığında (Render) html tarafında bir table etiketine karşılık gelir. Varsayılan olarakta herbir h&uuml;credeki (td) g&uuml;n ifadesi anchor etiketi i&ccedil;inde g&ouml;sterilir. H&uuml;cerelere tıklandığında ise dopostback fonksiyonu tetiklenerek işlem yapılır. Fakat bizim uygulamamızda anchor' a ihtiya&ccedil; yok.</p>
<p><img alt="Calendar Render" width="693" height="253" src="/blogImages/calendarPOP4.png" /></p>
<p>O y&uuml;zden kontrol&uuml;n SelectionMode &ouml;zelliğini None olarak ayarlıyoruz. B&ouml;ylece h&uuml;cre i&ccedil;lerine sadece g&uuml;n değerleri eklenir.</p>
<p><img alt="Calendar" width="591" height="365" src="/blogImages/calendarPOP1.png" /></p>
<p>Detayları g&ouml;stereceğimiz popup penceresini a&ccedil;mak&nbsp;i&ccedil;in basit bir JavaScript fonksiyonu hazırlıyoruz.</p>
<p><img alt="Day Render" width="573" height="230" src="/blogImages/calendarPOP2.png" /></p>
<p>&Ouml;nemli g&uuml;nleri vurgulayacak kodlarımızı Takvim kontrol&uuml;n&uuml;n DayRender adlı olayına yazıyoruz. Bu olay, her bir g&uuml;n&nbsp; i&ccedil;in bir kez tekrarlanır.<br />
Uygun g&uuml;n&uuml; yakaladığımızda, h&uuml;cre i&ccedil;ini temizleyip yerine <strong>openPen</strong> JavaScript fonksiyonunu &ccedil;ağıran bir HyperLink kontrol&uuml; ekliyoruz.<br />
Bundan sonra &ccedil;eşitlendirmek m&uuml;mk&uuml;n.</p>
<p><img alt="Calendar Result" width="578" height="340" src="/blogImages/calendarPOP3.png" /><br />
Uygulamayı daha iyi anlamak i&ccedil;in aşağıdaki projeyi indirip bakmanızda fayda var.</p>
<p><a class="download" href="/ress/CalendarPopUp.rar">Proje</a></p>]]></description>
<link>http://www.ayrilmaz.com/Home/Post/calendar-(takvim)-kontrolu-ile-popup-pencere-acmak.aspx</link>
<pubDate>2/16/2010 4:05 PM</pubDate>
</item>

<item>
<title>Visual Studio 2010</title>
<description><![CDATA[<p><img hspace="2" alt="Visual Studio 2010" vspace="2" align="left" width="182" height="44" src="/blogImages/vs2010.jpg" /></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Nihayet Visual Studio 2010 RC s&uuml;r&uuml;m&uuml;ne ulaştı. Artık kullanma zamanı gelmiştir benim i&ccedil;in. Bundan sonra sitemde yayınlayacağım projeler bu versiyonda olacak.</p>
<p>&nbsp;</p>]]></description>
<link>http://www.ayrilmaz.com/Home/Post/visual-studio-2010.aspx</link>
<pubDate>2/15/2010 4:53 PM</pubDate>
</item>

<item>
<title>Asp.Net Publish 2</title>
<description><![CDATA[<p>Ge&ccedil;en hafta 1. b&ouml;l&uuml;m&uuml; biten <a href="http://www.ayrilmaz.com/Home/Post/asp-net-publish-1.aspx">site yayınlama</a> konusunun devamı.</p>
<h3>İkinci B&ouml;l&uuml;m</h3>
<p>Bu b&ouml;l&uuml;mde, uygulama i&ccedil;in tasarlanmış veritabanını uzak sunucuya nasıl aktarılacağına bakacağız. Burada ki s&ouml;z konusu veritabanı MS Sql Server 2000 yada daha yeni bir s&uuml;r&uuml;m olacak.</p>
<p>Tabiki de bu işlemleri yaparken hizmeti aldığımız hosting firmasının bize sunduğu imkanlar &ccedil;ok &ouml;nemli. Biz olayı, bakup-restore imkanı vermeyen hosting firmalar i&ccedil;in ele alacağız.</p>
<h4>Sql Publish Wizard</h4>
<p>Hosting firması, bir aray&uuml;z ile backup/restore hizmeti vermiyor yada uyumsuzluklardan dolayı işlemi ger&ccedil;ekleştiremiyorsanız yapmanız gereken;<br />
&Ouml;nce veritabanının DDL(Create) scriptini oluştumanız daha sonra bunu &ccedil;alıştırmalısınız. İskeleti oluşturduktan sonra DML(Insert) scriptlerini (ki bu &ccedil;ok zahmetli bir işlemdir) oluşturup yine sunucuda &ccedil;alıştırmanız gerekmektedir. Klasik MS Sql Server Management Studio sadece DDL scriptleri oluşturabilir. İşte tam burada Sql Publish Wizard uygulaması devreye girip hayatımızı kurtarıyor.</p>
<p class="info" style="border-bottom: #808080 1px solid; text-align: center; border-left: #808080 1px solid; background-color: #e9e9e9; height: 100px; border-top: #808080 1px solid; border-right: #808080 1px solid"><br />
VS2008 kurulu ise SWP uygulamasını şu dizin altından bulabilirsiniz;<br />
64 bit işlemciler i&ccedil;in C:\Program Files (x86)\Microsoft SQL Server\90\Tools\Publishing\1.2<br />
32 bit işlemciler i&ccedil;in C:\Program Files\Microsoft SQL Server\90\Tools\Publishing\1.2</p>
<p>Başlamadan &ouml;nce belirtmeliyim ki, SPW ile oluşturulan scriptler var olan bir veritabanı &uuml;zerinde işlem yapar. &Ouml;ncelikle sunucu &uuml;zerinde aynı adlı bir veritabanı oluşturmuş olmanız gerekmektedir.</p>
<p><a target="_blank" href="/blogImages/PW1.png"><img alt="Sql Publish Wizard" width="185" height="125" style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="/blogImages/PW1.png" /></a><br />
Kendi bilgisayarınızda kurulu olan sql server' a bağlantı kuruyoruz.</p>
<p><a target="_blank" href="/blogImages/PW2.png"><img alt="Sql Publish Wizard" width="185" height="125" style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="/blogImages/PW2.png" /></a><br />
Publish edilecek veritabınını se&ccedil;iyoruz. &quot;Script all objects in the selected database&quot; se&ccedil;eneği se&ccedil;ildiği takdirde, adım sayısı azalacak ve gerekli olan t&uuml;m ddl ve dml scripleri direk oluşacaktır.</p>
<p><a target="_blank" href="/blogImages/PW3.png"><img alt="Sql Publish Wizard" width="185" height="125" style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="/blogImages/PW3.png" /></a><br />
İhtiya&ccedil; duyduğumuz nesneleri (Table,View,Procedure vs) se&ccedil;iyoruz.</p>
<p><a target="_blank" href="/blogImages/PW4.png"><img alt="Sql Publish Wizard" width="185" height="125" style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="/blogImages/PW4.png" /></a><a target="_blank" href="/blogImages/PW5.png"><img alt="Sql Publish Wizard" width="185" height="125" style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="/blogImages/PW5.png" /></a><br />
Alt nesneleri se&ccedil;iyoruz.</p>
<p><a target="_blank" href="/blogImages/PW6.png"><img alt="Sql Publish Wizard" width="185" height="125" style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="/blogImages/PW6.png" /></a><br />
Oluşacak script i&ccedil;in dosya adı ve yolu belirliyoruz.</p>
<p><a target="_blank" href="/blogImages/PW7.png"><img alt="Sql Publish Wizard" width="185" height="125" style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="/blogImages/PW7.png" /></a><br />
Uygun Ms Sql Server versiyonu se&ccedil;illir.</p>
<p><a target="_blank" href="/blogImages/PW8.png"><img alt="Sql Publish Wizard" width="185" height="125" style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="/blogImages/PW8.png" /></a><a target="_blank" href="/blogImages/PW9.png"><img alt="Sql Publish Wizard" width="185" height="125" style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="/blogImages/PW9.png" /></a><br />
&Ouml;zet bilgisi ve&nbsp;ardından scriptimiz oluşturulur.</p>
<p>Bu işlemlerden sonra yapmanız gereken tek şey, oluşan script i&ccedil;eriğini host firmasının size verdiği aray&uuml;z de &ccedil;alıştırmak olacaktır.</p>
<p>İkinci b&ouml;l&uuml;m&uuml;n sonu...</p>]]></description>
<link>http://www.ayrilmaz.com/Home/Post/asp-net-publish-2.aspx</link>
<pubDate>1/28/2010 3:59 PM</pubDate>
</item>

</channel></rss>
