<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>asp.net, jquery ve diğer web teknolojileri üzerine &#187; asp.net</title>
	<atom:link href="http://www.apostylee.com/tag/asp-net-2/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.apostylee.com</link>
	<description>asp.net, jquery ve diğer web teknolojileri üzerine, biraz da kişisel.</description>
	<lastBuildDate>Mon, 10 Oct 2011 11:49:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>ADO.NET Entity&#8217; e Giriş eKitabı</title>
		<link>http://www.apostylee.com/ado-net-entity-ekitabi/</link>
		<comments>http://www.apostylee.com/ado-net-entity-ekitabi/#comments</comments>
		<pubDate>Sat, 16 Jul 2011 21:29:52 +0000</pubDate>
		<dc:creator>apoStyLEE</dc:creator>
				<category><![CDATA[Asp.Net]]></category>
		<category><![CDATA[ado.net]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[class]]></category>
		<category><![CDATA[code-first]]></category>
		<category><![CDATA[entity]]></category>
		<category><![CDATA[model]]></category>
		<category><![CDATA[mvc3]]></category>

		<guid isPermaLink="false">http://www.apostylee.com/?p=1713</guid>
		<description><![CDATA[ADO.Net Entity&#8217; e başlangıç yapmak için faydalı olacağına inandığım bir eKitap yazdım. Umarım konuya ilgi duyan arkadaşların işine yarayan bir kaynak olmuştur. Gelen istekler üzerine sürekli güncellemeye çalışacağım bu kitabı buradan indirebilirsiniz. Olumlu olumsuz görüşlerinizi belirtirseniz çok mutlu olurum ;)]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>ADO.Net Entity&#8217; e başlangıç yapmak için faydalı olacağına inandığım bir eKitap yazdım. Umarım konuya ilgi duyan arkadaşların işine yarayan bir kaynak olmuştur. Gelen istekler üzerine sürekli güncellemeye çalışacağım bu kitabı <span style="color: #ff0000;"><strong><a href="http://www.apostylee.com/wp-content/uploads/2011/07/AdoNet-Entity.pdf"><span style="color: #ff0000;">buradan</span></a></strong></span> indirebilirsiniz. Olumlu olumsuz görüşlerinizi belirtirseniz çok mutlu olurum ;)</p>
<p><a href="http://www.apostylee.com/wp-content/uploads/2011/07/ado.net-entity-kapak.jpg"><img class="alignnone size-full wp-image-1716" title="ado.net entity kapak" src="http://www.apostylee.com/wp-content/uploads/2011/07/ado.net-entity-kapak.jpg" alt="" width="586" height="477" /></a><a href="http://www.apostylee.com/wp-content/uploads/2011/07/ado.net-entity-içindekiler.jpg"><img class="alignnone size-large wp-image-1715" title="ado.net entity içindekiler" src="http://www.apostylee.com/wp-content/uploads/2011/07/ado.net-entity-içindekiler-e1310851297952.jpg" alt="" width="590" height="461" /></a></p>
<div class="shr-publisher-1713"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.apostylee.com/ado-net-entity-ekitabi/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Mvc 3 Jquery Ui &#8211; Autocomplete Kullanmak</title>
		<link>http://www.apostylee.com/mvc-3-jquery-ui-autocomplete-kullanmak/</link>
		<comments>http://www.apostylee.com/mvc-3-jquery-ui-autocomplete-kullanmak/#comments</comments>
		<pubDate>Wed, 25 May 2011 12:42:42 +0000</pubDate>
		<dc:creator>apoStyLEE</dc:creator>
				<category><![CDATA[Asp.Net]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[autocomplete]]></category>
		<category><![CDATA[jqueryui]]></category>
		<category><![CDATA[mvc3]]></category>

		<guid isPermaLink="false">http://www.apostylee.com/?p=1524</guid>
		<description><![CDATA[Uzun zaman önce jQueryUi AutoComplete kullanımı ve Asp.Net ile jQuery Autocomplete kullanmak adında yazılar yazmıştım. Geçtiğimiz günlerde Fehmi Can abi de bir video çekerek Play framework ile autocomplete kullanımını anlatmış. Bende kıskandım aynı olayın mvc3 de nasıl yapıldığını videosuz yazarak anlatmaya çalışacağım :) Bu arada MVC3 ve jQuery kullanımı ile ilgili videolara buradan ve buradan ulaşabilirsiniz. Hemen [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Uzun zaman önce <a href="http://www.apostylee.com/jqueryui-autocomplete-kullanimi/" target="_blank">jQueryUi AutoComplete kullanımı</a> ve <a href="http://www.apostylee.com/aspnet-ile-jquery-autocomplete-kullanmak/" target="_blank">Asp.Net ile jQuery Autocomplete kullanmak</a> adında yazılar yazmıştım. Geçtiğimiz günlerde <strong><a href="http://fehmicans.net/" target="_blank">Fehmi Can</a></strong> abi de bir video çekerek <a href="http://fehmicans.net/blog/2011/05/20/video-play-framework-ile-autocomplete-kullanimi/" target="_blank">Play framework ile autocomplete kullanımı</a>nı anlatmış. Bende kıskandım aynı olayın <a href="http://www.apostylee.com/tag/mvc3/" target="_blank">mvc3</a> de nasıl yapıldığını videosuz yazarak anlatmaya çalışacağım :) Bu arada MVC3 ve jQuery kullanımı ile ilgili videolara <strong><a href="http://www.apostylee.com/mvc-projesinde-jquery-ajax-kullanimi-video/" target="_blank">buradan</a></strong> ve <strong><a href="http://www.apostylee.com/mvc-ile-jquery-template-kullanimina-giris-video/" target="_blank">buradan</a></strong> ulaşabilirsiniz.<br />
<a href="http://www.apostylee.com/wp-content/uploads/2011/05/jquery-jqueryui-ninja.jpg"><img class="size-full wp-image-1550 aligncenter" title="jquery-jqueryui-ninja" src="http://www.apostylee.com/wp-content/uploads/2011/05/jquery-jqueryui-ninja.jpg" alt="" width="397" height="337" /></a><br />
<span id="more-1524"></span><br />
Hemen bir model oluşturup, <a href="http://www.apostylee.com/mvc3-tools-update-ve-getirdikleri/" target="_blank">ilgili kontrolleri </a>oluşturuyoruz.</p>
<pre class="brush: csharp; title: ; notranslate">
    public class kullanici
    {
        public int id { get; set; }
        public string adi { get; set; }
        public string soyAdi { get; set; }
    }
</pre>
<p>Kontrollerimizide oluşturduktan sonra veritabanımıza bir kaç tane kayıt ekliyoruz ve sonrasında arama işlemini yapıp geriye <strong>json</strong> data döndüren <strong>searchJson</strong> methodumuzu yazıyoruz.</p>
<pre class="brush: csharp; title: ; notranslate">
        public ActionResult searchJson(string term) {
            var result = db.kullanicis.Where(x =&gt; x.adi.Contains(term) || x.soyAdi.Contains(term)).Select(x =&gt; new { id = x.id, value = x.adi });
            return Json(result,JsonRequestBehavior.AllowGet);
        }
</pre>
<p>Yukarıda ki kodda ne yaptık bundan biraz bahsetmek istiyorum. <strong>Where</strong> ile kullanici tablosunda <strong>adi</strong> veya <strong>soyadi</strong> alanında aratılan kelimeyi sorguluyoruz. <strong>Select</strong> ile geri döndürelecek veriyi kişiselleştiriyoruz. Eğer Select ile bu işlemi yapmazsak json datamız şu şekilde olacaktı, yani modeli aynen geri döndürecekti.</p>
<pre class="brush: jscript; title: ; notranslate">
[{&quot;id&quot;:3,&quot;adi&quot;:&quot;ahmet&quot;,&quot;soyAdi&quot;:&quot;durmuş&quot;},{&quot;id&quot;:5,&quot;adi&quot;:&quot;mehmet&quot;,&quot;soyAdi&quot;:&quot;kalkan&quot;}]
</pre>
<p>Select ten sonra json datamız bu şekile dönüyor</p>
<pre class="brush: jscript; title: ; notranslate">
[{&quot;id&quot;:3,&quot;value&quot;:&quot;ahmet&quot;},{&quot;id&quot;:5,&quot;value&quot;:&quot;mehmet&quot;}]
</pre>
<p>Bu işlemden sonra arama yapacağımız sayfamızı yani view ımızı oluşturuyoruz (<strong>search.cshtml</strong>) ve içine autocomplete işlemini gerçekleştirecek kodlarımızı yazıyoruz. Bu arada <a href="http://jqueryui.com/demos/autocomplete/" target="_blank">Jquery Ui &#8211; Autocomplete</a> ile ilgili özelliklere buradan bakabilirsiniz.</p>
<pre class="brush: xml; title: ; notranslate">
    &lt;script src=&quot;@Url.Content(&quot;~/Scripts/jquery-ui-1.8.11.min.js&quot;)&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
    &lt;link href=&quot;@Url.Content(&quot;~/Content/themes/base/jquery.ui.all.css&quot;)&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; /&gt;

    &lt;script type=&quot;text/javascript&quot;&gt;
        $(function () {
            $(&quot;#deger&quot;).autocomplete({
                source: &quot;/kullanici/searchJson&quot;,
                minLength: 1,
                select: function (event, ui) {
                    alert(ui.item.id + &quot; / &quot; + ui.item.value);
                }
            });
        });
    &lt;/script&gt;

    &lt;div class=&quot;demo&quot;&gt;
        &lt;div class=&quot;ui-widget&quot;&gt;
            &lt;label for=&quot;deger&quot;&gt;Bir değer girin: &lt;/label&gt;
            &lt;input id=&quot;deger&quot; size=&quot;50&quot; /&gt;
         &lt;/div&gt;
    &lt;/div&gt;
</pre>
<p>Gördüğünüz gibi çok kolay ve hızlı bir şekilde autocomplete işlemini gerçekleştirdik. Bu örnekte aynı zamanda <strong>json</strong> veriyle ne kadar kolay işlem yaptığımızıda gördük ;) Projenin çalışan halini <a href="http://www.apostylee.com/wp-content/uploads/2011/05/autoComplete.zip" target="_blank">buradan indirebilirsiniz</a>. Umarım faydalı bir yazı olmuştur.</p>
<div class="shr-publisher-1524"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.apostylee.com/mvc-3-jquery-ui-autocomplete-kullanmak/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Razor View Engine püf noktaları</title>
		<link>http://www.apostylee.com/razor-view-engine-puf-noktalari/</link>
		<comments>http://www.apostylee.com/razor-view-engine-puf-noktalari/#comments</comments>
		<pubDate>Wed, 18 May 2011 08:04:03 +0000</pubDate>
		<dc:creator>apoStyLEE</dc:creator>
				<category><![CDATA[Asp.Net]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[helper]]></category>
		<category><![CDATA[layout]]></category>
		<category><![CDATA[masterpage]]></category>
		<category><![CDATA[mvc3]]></category>
		<category><![CDATA[razor]]></category>
		<category><![CDATA[RenderPage]]></category>
		<category><![CDATA[RenderPartial]]></category>
		<category><![CDATA[RenderSection]]></category>
		<category><![CDATA[syntax]]></category>
		<category><![CDATA[viewbag]]></category>

		<guid isPermaLink="false">http://www.apostylee.com/?p=1415</guid>
		<description><![CDATA[Adı üstünde Razor (ustura) ! kodlarımızı hızlıca yazıp geçiyoruz. Uzun zamandır mvc3 ile geliştirdiğim bir projeyle uğraşıyorum haliyle razor ile kodlarımı yazıyorum. Geçen gün web forms ile geliştirdiğim bir projeye bazı özellikler eklemem gerekti, aman Allah&#8217; ım &#60;% %&#62; bunlardan aç kapat aç kapat iflahım söküldü meğer razor candan da öteymiş bunu bir kez daha [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Adı üstünde <strong><a href="http://www.apostylee.com/tag/razor/" target="_blank">Razor</a></strong> (ustura) ! kodlarımızı hızlıca yazıp geçiyoruz. Uzun zamandır <a href="http://www.apostylee.com/tag/mvc3/" target="_blank">mvc3</a> ile geliştirdiğim bir projeyle uğraşıyorum haliyle razor ile kodlarımı yazıyorum. Geçen gün <a href="http://www.apostylee.com/category/asp-net/" target="_blank">web forms</a> ile geliştirdiğim bir projeye bazı özellikler eklemem gerekti, aman Allah&#8217; ım &lt;% %&gt; bunlardan aç kapat aç kapat iflahım söküldü meğer razor candan da öteymiş bunu bir kez daha anladım. Bu yazıda anlatacaklarımın  hepsini <strong><a href="http://weblogs.asp.net/scottgu/" target="_blank">Scottgu</a></strong> abimizin bloğundan öğrendiğimide söylemek istiyorum :) Düşünüyorumda yazacaklarımla başlık biraz alakasız gibi oldu ama idare edin :)</p>
<p style="text-align: center;"><a href="http://www.apostylee.com/wp-content/uploads/2011/05/asp.net-razor-view-engine-mvc3.jpg"><img class="alignnone size-full wp-image-1417" title="asp.net-razor-view-engine-mvc3" src="http://www.apostylee.com/wp-content/uploads/2011/05/asp.net-razor-view-engine-mvc3.jpg" alt="" width="397" height="337" /><span id="more-1415"></span></a></p>
<ul>
<li><strong>Sayfa Düzeni (Layout) </strong>Yapacağımız projelerde sayfanın düzenini basit ve dinamik bir şekilde kontrol etmek  hayati önem taşıyan unsurlardan bir tanesi. Bir kaç değişik şekilde bu kontrolü sağlayabiliyoruz, bunlar neler mi ?
<ul>
<li><strong>Html.RenderPartial </strong>bu methodla <strong>Shared</strong> yada ilgili kontrolün altında belirttiğiniz sayfayı, sayfanıza çağırmaya olanak sağlar. Bir nevi include file gibidir.
<ul>
<li><strong><span style="color: #888888;">@{Html.RenderPartial(&#8220;_menu&#8221;);}</span></strong> Şeklinde kullanıyoruz, bu kodu yazdığımız yere Shared klasörü içerisinde ki yada ilgili kontrol klasörü içindeki _menu.cshtml sayfası çağrılır. Çağırırken uzantıyı yazmamıza gerek yoktur, otomatik olarak aspx, ascx, cshtml ve vbhtml uzantılarında ilgili sayfayı bulur.</li>
</ul>
</li>
<li><strong>RenderPage </strong>Yukarıda ki kontrolün aynısı gibi çalışır, tek fark çağırırken tam yolu vermemiz gerekir. Bu sebepden dolayı çağıracığımız dosyanın bulunduğu klasörün bir önemi yoktur, istediğimiz dosyadan istediğimiz sayfayı çağırabiliriz.
<ul>
<li><strong><span style="color: #888888;">@RenderPage(&#8220;~/Views/Home/_test.cshtml&#8221;)</span></strong> şeklinde kullanıyoruz.</li>
</ul>
</li>
<li> Yukarıda ki iki yöntemde de data yı ilgili sayfalara gönderebiliyor ve o sayfalarda işlem yapabiliyoruz.
<pre class="brush: csharp; title: ; notranslate">
            @{Html.RenderPartial(&quot;_menu&quot;,Model);}
            @RenderPage(&quot;~/Views/Home/_test.cshtml&quot;,ViewBag.dinamik)
</pre>
</li>
<li><strong>RenderSection </strong>bu yöntem ile sayfa içinde ki kod bloğunu farklı bir yerde göstermek için kullanıyoruz. Yukarıdaki yöntemlerin aksine dışarıdan değil içeriden çağırma işlemini yapıyoruz.
<ul>
<li><span style="color: #888888;"><strong>@RenderSection(&#8220;menu&#8221;, false)</strong></span> diyoruz, burada ki false gerekliliği ifade ediyor. Sonrasında görüntülenecek section bloğunu yazıyoruz. <strong><span style="color: #888888;">@section menu{&lt;h1&gt;menu&lt;/h1&gt;}</span></strong></li>
</ul>
</li>
</ul>
</li>
<li><strong>Razor Sözdimi (Syntax)</strong>
<ul>
<li>Razor view engine kodlarının başına @ işareti koyuyoruz. Fakat bir mail adresini elle yazmak istediğimizde sıkıntı oluyor. Bunu ortadan kaldırmak için 2 tane <strong><span style="color: #888888;">@@</span></strong> ile yazıyoruz. <span style="color: #888888;"><strong>test@@test.com</strong></span> gibi..</li>
<li>Dinamik kodlarla html kodlarını iç içe yazdığımız bu yapıda nokta(.) simgesi başımızı ağırta biliyor. Yani <strong><span style="color: #888888;">@degisken</span>.</strong> yazdığımızda ToString(), ToLower() gibi methodların listelendiğini görürüz halbu ki biz sadece nokta koymak istiyoruz. Bunun için <span style="color: #888888;"><strong>@(degisken).</strong></span> şeklinde değişkeni parantez içine almamız yeterlidir.</li>
<li>Bir if bloğu yada herhangi bir kod bloğu içinde direk metin yada html kodu yazmamız gerekebilir. Bunun için razor bize 2 farklı yöntem sunuyor. İlk yöntemde tek satırlık yazımlar için @:tek satırlık yazım ve çok satırlı yazımlar için <span style="color: #888888;"><strong>&lt;text&gt;</strong>çok satırlı yazım<strong>&lt;/text&gt;</strong></span>
<pre class="brush: csharp; title: ; notranslate">
        @if (true)
        {
            @:Tek satır yazım.

                &lt;text&gt;
                çok
                satırlı
                yazım
               &lt;/text&gt;

        }
</pre>
</li>
</ul>
</li>
<li><strong>ViewBag kullanımı </strong>Mvc 3 ile birlikte gelen en önemli özelliklerden bir tanesi ViewBag nesnesi. Mvc 3 öncesinde ViewData["degisken"] şeklinde view katmanımıza veri gönderiyorduk, eğer gönderdiğimiz veri bizim modelimizse view tarafında  ViewData["degisken"] nesnesini ilgili modele dönüşümünü sağlıyorduk, yani 2 türlü iş yapıyorduk. ViewBag ile bu durum ortadan kalkıyor, ViewBag <span style="color: #888888;"><strong>var</strong> </span>gibi çalışıyor, neyi verirseniz o türe dönüşüyor ve ekstra bir işlem yapmadan kullanabiliyoruz.
<pre class="brush: csharp; title: ; notranslate">
        //control katmanımız
        public ViewResult Index()
        {
            ViewBag.dinamik = context.uruns;
            return View();
        }

        //view katmanımız
        @foreach (var item in ViewBag.dinamik)
        {
            @item.ozellikAdi
        }
</pre>
</li>
<li><strong>Helper Kullanımı </strong>Yardımımıza hızlıca koşan helper ları yazmak ve kullanmak için çok güzel bir mekanızma bulunuyor. App_Code içine .cshtml uzantılı bir sayfa ekliyoruz ve içine razor syntaxlarını kullanarak fonksiyonumuzu yazıyoruz ve tüm sayfalardan bu fonksyionlara sayfaAdi.fonksiyon adı şeklinde erişip kullanabiliyoruz.
<pre class="brush: csharp; title: ; notranslate">
         //App_Code klasörümüz içindeki myHelper.cshtml dosyamızın içi
        @helper stokDurumu(int stok){
            if (stok &lt; 1)
            {
                @:Yok :(
            }
            else
            {
                var. @stok adet
            }
        }

       //Herhangi bir sayfadan erişilip kullanılması
        @foreach (var item in Model) {
            @myHelper.stokDurumu(item.stok)
        }
</pre>
</li>
</ul>
<p>Yukarıda ki örneklerin içinde gerçekleştirdiğim projeyi <a href="http://www.apostylee.com/wp-content/uploads/2011/05/mvc3UpdateTest.zip">buradan</a> indirebilirsiniz.</p>
<div class="shr-publisher-1415"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.apostylee.com/razor-view-engine-puf-noktalari/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Mvc 3 ile Ziyaretçi Defteri</title>
		<link>http://www.apostylee.com/mvc-3-ile-ziyaretci-defteri/</link>
		<comments>http://www.apostylee.com/mvc-3-ile-ziyaretci-defteri/#comments</comments>
		<pubDate>Tue, 17 May 2011 13:52:33 +0000</pubDate>
		<dc:creator>apoStyLEE</dc:creator>
				<category><![CDATA[Asp.Net]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[ado.net]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[code-first]]></category>
		<category><![CDATA[crud]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[mvc3]]></category>
		<category><![CDATA[sql compact 4]]></category>
		<category><![CDATA[validation]]></category>

		<guid isPermaLink="false">http://www.apostylee.com/?p=1432</guid>
		<description><![CDATA[Çok sevdiğim bir öğrenci arkadaşım, &#8220;abi ziyaretçi defteri yapar mısın bana ?&#8221; dedi,  yaparım dedim. Ne kadar sürer dedi, taş patlasa 1 saat dedim. Mvc 3 sağolsun 15 dakika da istediğimiz özelliklerdeki ziyaretçi defterini yaptık :) Yeni başlayan arkadaşların işine yarar diye bu örneği paylaşmak istedim. Bu basit defterde, code-first ile model ve doğrulama (validation), [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Çok sevdiğim bir öğrenci arkadaşım, &#8220;abi ziyaretçi defteri yapar mısın bana ?&#8221; dedi,  yaparım dedim. Ne kadar sürer dedi, taş patlasa 1 saat dedim. <a href="http://www.apostylee.com/tag/mvc3/" target="_blank">Mvc 3 </a>sağolsun 15 dakika da istediğimiz özelliklerdeki ziyaretçi defterini yaptık :) Yeni başlayan arkadaşların işine yarar diye bu örneği paylaşmak istedim. Bu basit defterde, code-first ile model ve doğrulama (validation), <a href="http://www.apostylee.com/category/jquery/" target="_blank">jQuery </a>Ajax ve sql compact 4.0 kullandık. Örneği <a href="http://www.apostylee.com/wp-content/uploads/2011/05/ziyaretciDefteri.zip" target="_blank">buradan</a> indirebilirsiniz, umarım faydalı olur.<br />
<a href="http://www.apostylee.com/wp-content/uploads/2011/05/asp.net-razor-view-engine-mvc3.jpg"><img class="size-medium wp-image-1417 aligncenter" title="asp.net-razor-view-engine-mvc3" src="http://www.apostylee.com/wp-content/uploads/2011/05/asp.net-razor-view-engine-mvc3-300x254.jpg" alt="" width="300" height="254" /></a></p>
<p style="text-align: center;"><span style="color: #888888;"><small>Bu görseli başka bir yazı için hazırlamıştım, sanırım bundan sonra sık sık kullanacam, çok güzel oldu yav :)</small></span><span id="more-1432"></span></p>
<p><a href="http://www.apostylee.com/wp-content/uploads/2011/05/default.png"><img class="size-large wp-image-1433 aligncenter" title="default" src="http://www.apostylee.com/wp-content/uploads/2011/05/default-600x465.png" alt="" width="600" height="465" /></a><a href="http://www.apostylee.com/wp-content/uploads/2011/05/yoneticiLogin.png"></a><a href="http://www.apostylee.com/wp-content/uploads/2011/05/mesajForm.png"><img class="aligncenter" title="mesajForm" src="http://www.apostylee.com/wp-content/uploads/2011/05/mesajForm-600x465.png" alt="" width="600" height="465" /></a><img class="size-large wp-image-1437 aligncenter" title="yoneticiLogin" src="http://www.apostylee.com/wp-content/uploads/2011/05/yoneticiLogin-600x465.png" alt="" width="600" height="465" /><a href="http://www.apostylee.com/wp-content/uploads/2011/05/yoneticiEditForm.png"><img class="size-large wp-image-1436 aligncenter" title="yoneticiEditForm" src="http://www.apostylee.com/wp-content/uploads/2011/05/yoneticiEditForm-600x465.png" alt="" width="600" height="465" /></a><a href="http://www.apostylee.com/wp-content/uploads/2011/05/yoneticiEdit.png"><img class="size-large wp-image-1435 aligncenter" title="yoneticiEdit" src="http://www.apostylee.com/wp-content/uploads/2011/05/yoneticiEdit-600x465.png" alt="" width="600" height="465" /></a></p>
<div class="shr-publisher-1432"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.apostylee.com/mvc-3-ile-ziyaretci-defteri/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Asp.Net Mvc 3 Semineri sonrası</title>
		<link>http://www.apostylee.com/asp-net-mvc-3-semineri-sonrasi/</link>
		<comments>http://www.apostylee.com/asp-net-mvc-3-semineri-sonrasi/#comments</comments>
		<pubDate>Sat, 14 May 2011 06:14:11 +0000</pubDate>
		<dc:creator>apoStyLEE</dc:creator>
				<category><![CDATA[Asp.Net]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[ktü]]></category>
		<category><![CDATA[mvc3]]></category>
		<category><![CDATA[seminer]]></category>
		<category><![CDATA[tecrübe]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://www.apostylee.com/?p=1411</guid>
		<description><![CDATA[Dün KTUCEC &#8211; KTU Computer Engineering Club&#8216; ın düzenlediği etkinlikte Asp.Net Mvc 3 üzerine uygulamalı bir anlatım yaptım. İlk tecrübem olduğundan bir hayli heyecanlandım, öyle ki kendimi tanıtmadan direk konuya girdim :) Benim için çok önemli bir tecrübe oldu. Webe ilgi duymayan arkadaşların sıkıldığı, ilgi duyanların ise zevk aldığı bir anlatım olduğunu düşünüyorum. Kendimce bir yol haritası [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Dün <a href="http://www.facebook.com/pages/KTUCEC-KTU-Computer-Engineering-Club/135451033151389" target="_blank">KTUCEC &#8211; KTU Computer Engineering Club</a>&#8216; ın düzenlediği etkinlikte <strong>Asp.Net Mvc 3</strong> üzerine uygulamalı bir anlatım yaptım. İlk tecrübem olduğundan bir hayli heyecanlandım, öyle ki kendimi tanıtmadan direk konuya girdim :) Benim için çok önemli bir tecrübe oldu. Webe ilgi duymayan arkadaşların sıkıldığı, ilgi duyanların ise zevk aldığı bir anlatım olduğunu düşünüyorum. Kendimce bir yol haritası ve katılımcılara sormak için hazırladığım sorularım vardı ama sadece vardı heyecandan bakamadım bile :) Hayalini kurduğum bir olaydı ve gerçek oldu. Devamında çok daha iyi olacağına inanıyorum. Emeği geçen <a title="4primes 4asal teknoloji grubu" href="http://www.4primes.com" target="_blank">4primes Teknoloji Grubuna</a> ve <a href="http://www.sozenlerbilgisayar.com" target="_blank">Sözenler Bilgisayar</a>&#8216; a çok teşekkür ediyorum. Emeği geçenlere ve katılan herkese teşekkür ediyorum.<br />
<center><br />
<iframe src="http://player.vimeo.com/video/23724421?title=0&amp;byline=0&amp;portrait=0&amp;" width="640" height="362" frameborder="0"></iframe><br />
</center></p>
<div class="shr-publisher-1411"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.apostylee.com/asp-net-mvc-3-semineri-sonrasi/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>jQuery ile performans hareketleri &#8211; 1</title>
		<link>http://www.apostylee.com/jquery-ile-performans-hareketleri-1/</link>
		<comments>http://www.apostylee.com/jquery-ile-performans-hareketleri-1/#comments</comments>
		<pubDate>Thu, 05 May 2011 10:08:54 +0000</pubDate>
		<dc:creator>apoStyLEE</dc:creator>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[performans]]></category>
		<category><![CDATA[trick]]></category>

		<guid isPermaLink="false">http://www.apostylee.com/?p=1359</guid>
		<description><![CDATA[Bu yazı serisinde jQuery ile nasıl performans çakallıkları yapabiliriz bunlara değineceğim. Zaman zaman çok ufak nüanslar ile ciddi yüklerden kurtulabiliyoruz, önemli olan bu nüansları görebilmek. Yaptığım işlerde jQuery&#8217; i sadece bu amaçlarla kullandığım bile oluyor. Neyse lafı fazla uzatmadan ilk hareketimize geçelim. Satır sayısı yani veritabanından gelen kayıtların sayısı çoğu zaman ihtiyaç duyduğumuz bir veridir. [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Bu yazı serisinde jQuery ile nasıl performans çakallıkları yapabiliriz bunlara değineceğim. Zaman zaman çok ufak nüanslar ile ciddi yüklerden kurtulabiliyoruz, önemli olan bu nüansları görebilmek. Yaptığım işlerde jQuery&#8217; i sadece bu amaçlarla kullandığım bile oluyor. Neyse lafı fazla uzatmadan ilk hareketimize geçelim.</p>
<p><a href="http://www.apostylee.com/wp-content/uploads/2011/04/jquery_logo1.png"><img src="http://www.apostylee.com/wp-content/uploads/2011/04/jquery_logo1-600x147.png" alt="" title="jquery_logo" width="600" height="147" class="alignnone size-large wp-image-1312" /></a><br />
<span id="more-1359"></span><br />
Satır sayısı yani veritabanından gelen kayıtların sayısı çoğu zaman ihtiyaç duyduğumuz bir veridir. Bu veriyi veritabanından almak için <a href="http://www.w3schools.com/sql/sql_func_count.asp" target="_blank">Count()</a> fonksiyonunu kullanıyoruz. Karmaşık bir sorgu sonucu aldığımız verileri kullanıcılara sunacağımızı varsayalım, count işlemini yapabilmek için verileri gruplamamız (<a href="http://www.w3schools.com/sql/sql_groupby.asp" target="_blank">group by</a>) gerekebilir yada count için ayrı bir sorgu yazmamız gerekebilir. Bunlar hem ekstra uğraş isteyen hemde ekstra iş yüküdür. Eğer bir grid kontrülü yada datatable benzeri bir yapı kullanıyorsanız direk içindeki verinin satır sayısını alabilirsiniz kullanmıyorsanız jQuery ile html etiketlerini <strong><a href="http://api.jquery.com/length/" target="_blank">lenght</a></strong> ile sayarak sonuca ulaşabilirsiniz. Hemen örnekleyelim;</p>
<pre class="brush: xml; title: ; notranslate">
    &lt;ul class=&quot;ornekLi&quot;&gt;
	    &lt;li&gt;satır 1&lt;/li&gt;
	    &lt;li&gt;satır 2&lt;/li&gt;
	    &lt;li&gt;satır 3&lt;/li&gt;
	    &lt;li&gt;satır 4&lt;/li&gt;
	    &lt;li&gt;satır 5&lt;/li&gt;
    &lt;/ul&gt;

    &lt;table class=&quot;ornekTable&quot;&gt;
        &lt;tr&gt;
            &lt;td&gt;Satır 1&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;Satır 2&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;Satır 3&lt;/td&gt;
        &lt;/tr&gt;
    &lt;/table&gt;

    &lt;table class=&quot;ornekTable2&quot;&gt;
        &lt;tr&gt;
            &lt;td&gt;Satır 1&lt;/td&gt;
            &lt;td&gt;Satır 2&lt;/td&gt;
            &lt;td&gt;
                &lt;ul&gt;
	                &lt;li&gt;satır 1&lt;/li&gt;
	                &lt;li&gt;satır 2&lt;/li&gt;
	                &lt;li&gt;satır 3&lt;/li&gt;
	                &lt;li&gt;satır 4&lt;/li&gt;
                &lt;/ul&gt;
            &lt;/td&gt;
            &lt;td&gt;Satır 4&lt;/td&gt;
            &lt;td&gt;
                &lt;ul&gt;
	                &lt;li&gt;satır 1&lt;/li&gt;
	                &lt;li&gt;satır 2&lt;/li&gt;
                &lt;/ul&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/table&gt;
</pre>
<p>Yukarıdaki html çıktısında veritabanımızdan gelen verileri listelediğimizi varsayıyoruz.</p>
<pre class="brush: jscript; title: ; notranslate">
    &lt;script type=&quot;text/javascript&quot;&gt;
        $(document).ready(function () {

         alert($(&quot;.ornekLi&quot;).length);
         alert($(&quot;.ornekTable tr&quot;).length);

         $(&quot;.ornekTable2 tr td&quot;).each(function () {
                var t = $(this);
                var count = t.find(&quot;ul li&quot;).length;
                if (count &gt; 0) {
                    t.prepend(&quot;&lt;h5&gt;&quot; + count + &quot; adet&lt;/h5&gt;&quot;);
                }
                else {
                    t.prepend(&quot;&lt;h5&gt;li yok&lt;/h5&gt;&quot;);
                }
            });
        });
    &lt;/script&gt;
</pre>
<p>Bu sayede count işlemi için sql e bulaşmamış olduk. Hatta karmaşık durumlarda bile jquery&#8217; nin <a href="http://api.jquery.com/category/selectors/" target='_blank'>seçicileri </a>sayesinde bir sürü kod yazmaktan kurtulup işlemimizi gerçekleştirdik. Umarım faydalı bir bilgi olmuştur, ilerleyen günlerde benzer yöntemler ile geri geleceğim ;)</p>
<div class="shr-publisher-1359"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.apostylee.com/jquery-ile-performans-hareketleri-1/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Mvc projesinde jQuery Ajax Kullanımı &#8211; Video</title>
		<link>http://www.apostylee.com/mvc-projesinde-jquery-ajax-kullanimi-video/</link>
		<comments>http://www.apostylee.com/mvc-projesinde-jquery-ajax-kullanimi-video/#comments</comments>
		<pubDate>Wed, 20 Apr 2011 08:19:31 +0000</pubDate>
		<dc:creator>apoStyLEE</dc:creator>
				<category><![CDATA[Asp.Net]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[code-first]]></category>
		<category><![CDATA[entity]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[mvc]]></category>
		<category><![CDATA[scaffolding]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://www.apostylee.com/?p=1306</guid>
		<description><![CDATA[Mvc projemizde jQuery ajaxı kullanarak, bir içeriğin altına yorum ekleme ve silme işlemini gerçekleştireceğiz. Bu işlemin bize kazandırdıklarını, mvc ile uygulama geliştirmenin bize kattıklarınıda anlamaya çalışacağız. Umarım faydalı olur. Videoyu daha kaliteli izlemek için buradan indirebilirsiniz. Projeyi buradan, videoyu buradan indirebilirsiniz.]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Mvc projemizde jQuery ajaxı kullanarak, bir içeriğin altına yorum ekleme ve silme işlemini gerçekleştireceğiz. Bu işlemin bize kazandırdıklarını, mvc ile uygulama geliştirmenin bize kattıklarınıda anlamaya çalışacağız. Umarım faydalı olur.</p>
<p><iframe src="http://player.vimeo.com/video/22643547?title=0&amp;byline=0&amp;portrait=0" width="620" height="349" frameborder="0"></iframe></p>
<blockquote><p>Videoyu daha kaliteli izlemek için <a href="http://vimeo.com/download/video:47448757?v=2&#038;e=1303290228&#038;h=093a273e7f19e598e89277c33484ab22&#038;uh=3b46219503f38cc6bb20579eef8f8d5b">buradan</a> indirebilirsiniz.</p></blockquote>
<p>Projeyi <a href='http://www.apostylee.com/wp-content/uploads/2011/04/mvcJquery.zip'>buradan</a>, videoyu <a href="http://vimeo.com/download/video:47448757?v=2&#038;e=1303290228&#038;h=093a273e7f19e598e89277c33484ab22&#038;uh=3b46219503f38cc6bb20579eef8f8d5b">buradan</a> indirebilirsiniz.</p>
<div class="shr-publisher-1306"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.apostylee.com/mvc-projesinde-jquery-ajax-kullanimi-video/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>MasterPage kullanımda kontrollerin ID mevzusu</title>
		<link>http://www.apostylee.com/masterpage-kullanimda-kontrollerin-id-mevzusu/</link>
		<comments>http://www.apostylee.com/masterpage-kullanimda-kontrollerin-id-mevzusu/#comments</comments>
		<pubDate>Mon, 14 Feb 2011 08:44:43 +0000</pubDate>
		<dc:creator>apoStyLEE</dc:creator>
				<category><![CDATA[Asp.Net]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[clientid]]></category>
		<category><![CDATA[control]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[masterpage]]></category>

		<guid isPermaLink="false">http://www.apostylee.com/?p=1247</guid>
		<description><![CDATA[Asp.Net de sayfamıza eklediğimiz her kontrolün bir id si bulunuyor. Javascript ile kontrollerimize erişmek istediğimizde bu id leri direk kullanabiliyoruz. Eğer masterpage kullanırsak işler biraz değişiyor. Sayfamız masterpage den türediği zaman kontrollerin idlerine bir ön ek geliyor. Bunu kod tarafında göremesekte sayfa yorumlandıktan sonra kaynak kodlarına baktığımızda id lerin değiştiğini görüyoruz. Haliyle jquery ile ilgili [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Asp.Net de sayfamıza eklediğimiz her kontrolün bir id si bulunuyor. Javascript ile kontrollerimize erişmek istediğimizde bu id leri direk kullanabiliyoruz. Eğer masterpage kullanırsak işler biraz değişiyor. Sayfamız masterpage den türediği zaman kontrollerin idlerine bir ön ek geliyor. Bunu kod tarafında göremesekte sayfa yorumlandıktan sonra kaynak kodlarına baktığımızda id lerin değiştiğini görüyoruz. Haliyle jquery ile ilgili id deki elemanı seçmemiz için kod tarafında ki id değil, kullanıcı (client) tarafında ki id yi kullanmamız gerekiyor. Bu durumda İki şekilde problemimizi çözebiliyoruz. Birinci çözüm yolu kontrollerin <strong>ClientID </strong>özelliğini kullanmak. &lt;%=kontrol.ClientID%&gt; dediğimizde geriye dönen id bizim kontrolümüzün sayfa yorumlandıktan sonra oluşan değerdir. Fakat bu yöntemi .js sayfamızda kullanmamız söz konusu değil bu sebepten direk .js içerisine html de oluşan id yi yazarak kullanabiliyoruz. Şöylede bir durum var hiç uğraşmadan kontrollerimize class atayıp yukarıdaki olaylara bulaşmadan direk class adını yazarak seçip istediğimiz işlemleri aynen yapabiliriz. Burada ki tek nüans id yakalama performansı class a göre daha iyi fakat bunu küçük işlerde görmemiz çok zor ;) Neyse umarım konu anlaşılmıştır. Aşağıda bir örnek  bulunuyor, dilerseniz çalışan halini <a href="http://www.apostylee.com/wp-content/uploads/2011/02/IdMevzusu.zip">buradan indirebilirsiniz.</a></p>
<pre class="brush: xml; title: ; notranslate">
    &lt;script type=&quot;text/javascript&quot;&gt;
        jQuery(function($) {
            $(&quot;#&lt;%=date.ClientID %&gt;&quot;).mask(&quot;99/99/9999&quot;);
            $(&quot;#&lt;%=phone.ClientID %&gt;&quot;).mask(&quot;(999) 999-9999&quot;);
            $(&quot;#ctl00_ContentPlaceHolder1_tin&quot;).mask(&quot;99-9999999&quot;);
            $(&quot;#ctl00_ContentPlaceHolder1_ssn&quot;).mask(&quot;999-99-9999&quot;);
        });
    &lt;/script&gt;
</pre>
<div class="shr-publisher-1247"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.apostylee.com/masterpage-kullanimda-kontrollerin-id-mevzusu/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Asp.net ile çok dilli uygulama geliştirme.</title>
		<link>http://www.apostylee.com/asp-net-ile-cok-dilli-uygulama-gelistirme/</link>
		<comments>http://www.apostylee.com/asp-net-ile-cok-dilli-uygulama-gelistirme/#comments</comments>
		<pubDate>Wed, 26 Jan 2011 15:35:26 +0000</pubDate>
		<dc:creator>apoStyLEE</dc:creator>
				<category><![CDATA[Asp.Net]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[control]]></category>
		<category><![CDATA[GlobalResources]]></category>
		<category><![CDATA[language]]></category>
		<category><![CDATA[LocalResources]]></category>
		<category><![CDATA[multi]]></category>
		<category><![CDATA[resource]]></category>

		<guid isPermaLink="false">http://www.apostylee.com/?p=1217</guid>
		<description><![CDATA[Günümüzde çoklu dil (multi language) giderek önem kazanıyor. Bunun en büyük sebebi, projelerin artık ülke bazlı düşünülmüyor olması. Eskiden 2 dil bile fazla gelirken şimdilerde kullanıcı eğilimine göre bu sayı artabiliyor. Çoklu dil yapısı için bir sürü yöntem bulunuyor. Örneğin; xml, veritabanı, resource kullanmak vb.. Biz bu yazımızda resource ile çoklu dilli uygulama nasıl geliştirilir [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Günümüzde çoklu dil (multi language) giderek önem kazanıyor. Bunun en büyük sebebi, projelerin artık ülke bazlı düşünülmüyor olması. Eskiden 2 dil bile fazla gelirken şimdilerde kullanıcı eğilimine göre bu sayı artabiliyor. Çoklu dil yapısı için bir sürü yöntem bulunuyor. Örneğin; xml, veritabanı, resource kullanmak vb.. Biz bu yazımızda resource ile çoklu dilli uygulama nasıl geliştirilir buna bakacağız.</p>
<p>Öncelikle mevcut bir sayfamızı kolay bir şekilde nasıl çoklu dile çeviririz buna bakacağız. Ben örnek olarak küçük bir form hazırladım.</p>
<p><a href="http://www.apostylee.com/wp-content/uploads/2011/01/formDefault.jpg"><img class="alignnone size-large wp-image-1219" title="formDefault" src="http://www.apostylee.com/wp-content/uploads/2011/01/formDefault-600x363.jpg" alt="" width="600" height="363" /></a></p>
<p>Formumuz da textbox, dropdownlist, label, button ve validator kontrollerimiz bulunuyor. Eğer elle bu forma daha doğrusu sayfaya girişip tek tek elle değişkenleri tanımlamaya kalkarsak epey bir zamanımızı alır. Visual studio geliştiricileride böyle düşünmüşler ki bizi yormamak için <strong>Tools</strong> menüsünün altına <strong>Generate Local Resource</strong> özelliğini koymuşlar. Unutmadan bu menü sadece tasarım kısmındayken çıkıyor. Buraya tıkladığımızda bizim yerimize resource dosyası oluşturuluyor ve gerekli değişiklikler sayfamızda yapılıyor. Kaynak dosyamız <strong>App_LocalResources</strong> klasörünün altında <strong>sayfaAdi.aspx.resx</strong> şeklinde bulunuyor.<span id="more-1217"></span></p>
<p><a href="http://www.apostylee.com/wp-content/uploads/2011/01/formGenerate.jpg"><img class="alignnone size-large wp-image-1220" title="formGenerate" src="http://www.apostylee.com/wp-content/uploads/2011/01/formGenerate-600x363.jpg" alt="" width="600" height="363" /></a></p>
<p><a href="http://www.apostylee.com/wp-content/uploads/2011/01/formGenerateComplete.jpg"><img class="alignnone size-large wp-image-1221" title="formGenerateComplete" src="http://www.apostylee.com/wp-content/uploads/2011/01/formGenerateComplete-600x364.jpg" alt="" width="600" height="364" /></a></p>
<p>Form.aspx.resx kaynağımızın içerisine baktığımızda <strong>Name</strong>, <strong>Value </strong>ve <strong>Comment </strong>şeklide 3 alanla karşılaşıyoruz. Name alanı diğer diller içinde oluşturacağımız kaynak dosyamızla ortak olan parametreyi barındıran alanımız. Value ilgili Name alanına karşılık gelen değeri barındıran alanımız. Comment ise ilgili alanlar hakkında ki açıklamaların yazılması için bulunuyor. Bu yazdığımdan bir şey anlamamış olabilirsiniz, uygulama sırasında çok daha iyi anlayacaksınız ;)</p>
<p><a href="http://www.apostylee.com/wp-content/uploads/2011/01/formKaynak1.jpg"><img class="alignnone size-large wp-image-1224" title="formKaynak" src="http://www.apostylee.com/wp-content/uploads/2011/01/formKaynak1-600x363.jpg" alt="" width="600" height="363" /></a></p>
<p>Şimdi aynı formumuz için farklı bir dilde kaynak dosyası oluşturalım. Bunun için mevcut oluşan resx uzantılı dosyamızı aynı yere kopyalayıp yapıştırıyoruz ve adını <strong>sayfaAdi.aspx.en.resx </strong>şeklinde değiştiriyoruz, ben örneğimi İngilizce yapacağım için <strong>en</strong> ekini ekledim. Diğer diller için yapmanız gereken sadece bu eki değiştirmek. Buradan <a href="http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo(v=vs.71).aspx" target="_blank">dillere</a> bakabilirsiniz. Unutmadan bu örneği indirdiğinizde <strong>Kulturler.aspx</strong> sayfasını çalıştırdığınızda buradan da görebilirsiniz. Örneğin Fransızca için de bir kaynak oluşturmam gerekseydi kopyala yapıştır yapıp adını <strong>sayfaAdi.aspx.fr.resx </strong>şeklide yeniden adlandıracaktım.</p>
<p><a href="http://www.apostylee.com/wp-content/uploads/2011/01/formKaynakEng.jpg"><img class="alignnone size-large wp-image-1225" title="formKaynakEng" src="http://www.apostylee.com/wp-content/uploads/2011/01/formKaynakEng-600x363.jpg" alt="" width="600" height="363" /></a></p>
<p>Gördüğünüz gibi gayet basit bir şekilde <strong>sayfaAdi.aspx.en.resx </strong>dosyasının içine ilgili alanın karşısına ingilizcesini yazdık. Şimdi sayfamızda bu dil değişiminin nasıl yapılacağına bakalım.</p>
<pre class="brush: csharp; title: ; notranslate">
        protected override void InitializeCulture()
        {
            string strDil;
            if (Request.Form[&quot;ddlDil&quot;] == null)
            {
                strDil = &quot;tr-Tr&quot;;
            }
            else
            {
                strDil = Request.Form[&quot;ddlDil&quot;];
            }
            Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(strDil);
            Thread.CurrentThread.CurrentUICulture = new CultureInfo(strDil);
            base.InitializeCulture();
        }
</pre>
<p>Formumuzda bulunan dropdown menüden seçtiğimiz dilin değerini post edip uyguluyoruz. Sayfa yeniden yüklendiğinde seçtiğimiz dilin kaynak dosyasını kullanıp ekrana çıktıyı o şekilde veriyor. Yani eğer İngilizce dilini seçmişsek gidip <strong>sayfaAdi.aspx.en.resx</strong> kaynağında ki bilgileri getiriyor. Eğer xml yada başka bir yöntemle çoklu dil olayını halletmeye çalışsaydık şu ana kadar geldiğimiz kısmı çok daha uzun zamanda halletmiştik. Ayrıca kaynak kullanımının bir avantajı daha var ki o da kod yazmamızı çok kolaylaştırıyor, aşağıda bahsedeceğim.</p>
<p>Buraya kadar sorun var mı bilmiyorum ama çok basit ve anlaşılır bir şekilde işlemimizi tamamladık. Şimdi gelelim <strong>App_GlobalResources</strong> ile kaynak kullanımına, yani kod yazarken çoklu dil mekanızmasını kullanmaya. Buda gayet basit bir işlem. Öncelikle <strong>App_GlobalResources </strong>klasörümüzü oluşturup içerisine resx uzantılı kaynağımızı ekliyoruz. Ben örneğimde <strong>varsayilan.resx</strong> olarak ekledim. İçerisine kullanacağımız değişkenleri yazıyoruz. Mantığımız yukarıda ki LocalResources ile bire bir aynı. Değişkenlerimizi yazdıktan sorna kopyala yapıştır yapıp dosya adımızı yukarda ki gibi <strong>varsayilan.en.resx</strong> olarak yeniden adlandırıyoruz. GlobalResources&#8217; i LocalResources den ayıran en büyük özellik erişim özelliği, kod yazarken global kaynağa direk ulaşabilirken lokal kaynağa ulaşamıyoruz. Hemen kodumuza bakıp üzerinden konuşalım.</p>
<pre class="brush: csharp; title: ; notranslate">
        protected override void InitializeCulture()
        {
            string strDil;
            if (Session[&quot;dil&quot;] == null)
            {
                strDil = &quot;tr-Tr&quot;;
            }
            else
            {
                strDil = Session[&quot;dil&quot;].ToString();
            }

            Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(strDil);
            Thread.CurrentThread.CurrentUICulture = new CultureInfo(strDil);
            base.InitializeCulture();
        }

        protected void Page_Load(object sender, EventArgs e)
        {
            string strDil = Request.QueryString[&quot;Dil&quot;];

            if (strDil!=null)
            {
                Session[&quot;dil&quot;]=strDil;
                Response.Redirect(&quot;degisken.aspx&quot;);
            }

            Page.Title = Resources.varSayilan.sayfaBasligi;
            ltrHosgeldiniz.Text = Resources.varSayilan.hosgeldiniz;
        }
</pre>
<p>Bu örnekte session ile birlikte kullandım ki sayfamız her yenilendiğinde dil seçmek zorunda kalmayalım. Resources yazıp noktaya bastığımızda varSayilan kaynağını görüyoruz. Yani dosyamızın kök adını, tekrar noktaya bastığımızda değişkenlerimizi görebiliyor ve kullanabiliyoruz. Diğer çoklu dil sistemlerine göre bir artıda bu olay, çünkü kod yazarken değişkenleri aklımızda tutmamız bir hayli zor buda bize gidip kaynağa bakmamıza haliyle zaman kaybına sebep olacaktır. Tüm değişkenlerimizi görüp istediğimi gibi kullanabiliyoruz.</p>
<p>Globalizasyon ile ilgili bir sürü konu ve özellik bulunuyor. Diyelim ki onlarca sayfamız var <em>&#8220;Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(strDil);            Thread.CurrentThread.CurrentUICulture = new CultureInfo(strDil);&#8221;</em> bu kodları her sayfaya tek tekmi yazacığız tabiki hayır, global.asax içerisine bir kere yazarak tüm sayfalarda kullanabilirsiniz. İpucu olarak <strong>degisken.aspx</strong> sayfasında birde resim yollarını bu sistemde nasıl kullarınızı örneklendirdim. Eğer web.config dosyasısından <strong>uiculture=&#8221;auto&#8221; </strong>şeklinde bir ayarlama yaparsak kullanıcının tarayıcısının diline göre kaynak dosyamız okunacak ve sayfamızın o dildeki versiyonu kullanıcıya gösterilecektir. (Ne yalan söyleyeyimbunu hiç denemedim :D)</p>
<p>Evet benim yazacaklarım bu kadar, dediğim gibi globalizasyon çok derin bir konu, merak edenler <a href="http://msdn.microsoft.com/en-us/library/c6zyy3s9.aspx" target="_blank">buradan</a> dallanarak araştırabilirler. Umarım faydalı bir yazı olmuştur, herkese güzel günler..</p>
<p>Projeyi <strong><a href="http://www.apostylee.com/wp-content/uploads/2011/01/cokluDil.zip">buradan</a> </strong>indirebilirsiniz.</p>
<div class="shr-publisher-1217"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.apostylee.com/asp-net-ile-cok-dilli-uygulama-gelistirme/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>jQueryUi AutoComplete kullanımı</title>
		<link>http://www.apostylee.com/jqueryui-autocomplete-kullanimi/</link>
		<comments>http://www.apostylee.com/jqueryui-autocomplete-kullanimi/#comments</comments>
		<pubDate>Fri, 07 Jan 2011 08:03:32 +0000</pubDate>
		<dc:creator>apoStyLEE</dc:creator>
				<category><![CDATA[Asp.Net]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[autocomplete]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[jqueryui]]></category>
		<category><![CDATA[json]]></category>

		<guid isPermaLink="false">http://www.apostylee.com/?p=1143</guid>
		<description><![CDATA[Uzun zaman önce jQuery eklentisi olan Autocomplete ile birlikte nasıl bu işi yaptığımızı yazmıştım. Bu sefer jQueryUi ye eklenen bu özelliğin nasıl kullanıldığını anlatmaya çalışacağım. Jqueryui ile birlikte gelen autocomplete de bir çok özellik bulunuyor. Tüm özellikleri kolayca kullanabiliyor ve istediğiniz gibi şekillendire biliyorsunuz. Ben bu örnekte temel olarak arama işlemini anlatacağım, eklentinin sayfasından diğer özelliklerine [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Uzun zaman önce jQuery eklentisi olan <a href="http://www.apostylee.com/aspnet-ile-jquery-autocomplete-kullanmak/" target="_blank">Autocomplete</a> ile birlikte nasıl bu işi yaptığımızı yazmıştım. Bu sefer jQueryUi ye eklenen bu özelliğin nasıl kullanıldığını anlatmaya çalışacağım. Jqueryui ile birlikte gelen <a href="http://jqueryui.com/demos/autocomplete/" target="_blank">autocomplete</a> de bir çok özellik bulunuyor. Tüm özellikleri kolayca kullanabiliyor ve istediğiniz gibi şekillendire biliyorsunuz. Ben bu örnekte temel olarak arama işlemini anlatacağım, eklentinin sayfasından diğer özelliklerine bakıp kendinize göre geliştirmeler yapabilirsiniz. Hemen default.aspx sayfamızdan başlayalım;</p>
<pre class="brush: xml; title: ; notranslate">
    &lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
    &lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.2/jquery-ui.min.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
    &lt;link href=&quot;ui-Themes/ui-lightness/jquery-ui-1.8.2.custom.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; /&gt;
    &lt;script&gt;
        $(function() {
            $(&quot;#deger&quot;).autocomplete({
                source: &quot;Search.ashx&quot;,
                minLength: 1,
                select: function(event, ui) {
                    alert(ui.item.id +&quot; / &quot;+ ui.item.value);
                }
            });
        });
	&lt;/script&gt;

        &lt;div class=&quot;demo&quot;&gt;
            &lt;div class=&quot;ui-widget&quot;&gt;
	            &lt;label for=&quot;deger&quot;&gt;Bir değer girin: &lt;/label&gt;
	            &lt;input id=&quot;deger&quot; size=&quot;50&quot; /&gt;
            &lt;/div&gt;
        &lt;/div&gt;
</pre>
<p>Yukarıda ki kodda anlatılacak çok fazla bir şey bulunmuyor. Jquery kütüphanelerimizi yüklüyoruz, sonrasında değer girilecek input umuzun id sini yakalayıp autocomplete özelliğini ekliyoruz. Source ye dinamik olarak aramanın yapılacağı sayfamızın adresini veriyoruz. minLenght değeri ise kaç karakterden sonra aramaya başlanması gerektiğini ifade ediyor. 3 yazarsak 3. karakterle birlikte arama işlemi başlayacaktı. Select kısmında ise veri seçildiğinde ne olacağını fonksiyon olarak tanımlıyoruz. Bu örnekte gelen verinin değerini ve id sini alert ile ekrana basıyoruz.</p>
<p><strong>Search.ashx </strong>(arama işleminin gerçekleştiği sayfamız.)</p>
<pre class="brush: csharp; title: ; notranslate">
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = &quot;application/json&quot;;
            string strJsonTemplate = &quot;\&quot;id\&quot;:{0},\&quot;value\&quot;:\&quot;{1}\&quot;&quot;;
            string strParam = context.Request.QueryString[&quot;term&quot;];

            StringBuilder sb = new StringBuilder();
            Dictionary&lt;int, string&gt; d = veriler();
            sb.Append(&quot;[&quot;);
            foreach (KeyValuePair&lt;int, string&gt; item in d.Where(v =&gt; v.Value.Contains(strParam)))
            {
                sb.Append(&quot;{&quot; + string.Format(strJsonTemplate, item.Key, item.Value) + &quot;},&quot;);
            }
            sb.Append(&quot;]&quot;);

            context.Response.Write(sb.ToString().Replace(&quot;,]&quot;, &quot;]&quot;)); //sonda kalan virgülü kaldırıyoruz.
        }

        public Dictionary&lt;int,string&gt; veriler()
        {
            Dictionary&lt;int, string&gt; d = new Dictionary&lt;int, string&gt;();
            d.Add(1, &quot;javascript&quot;);
            d.Add(2, &quot;asp.net&quot;);
            d.Add(3, &quot;csharp&quot;);
            d.Add(4, &quot;php&quot;);
            d.Add(5, &quot;java&quot;);
            d.Add(6, &quot;jquery&quot;);
            d.Add(7, &quot;html&quot;);
            d.Add(8, &quot;css&quot;);
            d.Add(9, &quot;mssql&quot;);
            d.Add(10, &quot;mysql&quot;);
            d.Add(11, &quot;visual studio&quot;);
            d.Add(12, &quot;net beans&quot;);
            return d;
        }
</pre>
<p>Bur örnekte Dictionary içerisine elle eklediğim veriler içerisinde arama işlemi yaptım. Siz bu kısmı istediğiniz gibi düzenleyip veritabanınızda arama işlemini kolayca yaptırabilirsiniz. Bu sayfada ekstradan yaptığımız tek olay veriyi <a href="http://www.json.org/" target="_blank">jSon</a> veri türüne çevirmek. Arama işlemini QueryString ile birlikte gelen <strong>term</strong> bilgisini kullanıyoruz. Sonrasında basit bir foreach ve bilgileri ekrana yazdırıyoruz.</p>
<p>Basit bir jSon verisi;</p>
<pre class="brush: jscript; title: ; notranslate">
[{&quot;id&quot;:1,&quot;value&quot;:&quot;javascript&quot;},{&quot;id&quot;:5,&quot;value&quot;:&quot;java&quot;}]
</pre>
<p>Gördüğünüz gibi çok basit ve kullanışlı bir şekilde otomatik tamamlama işlemini yaptık. İlgili projeyi <a href="http://www.apostylee.com/wp-content/uploads/2011/01/jQueryUiAutoComplete.zip">buradan</a> indirebilirsiniz. Hepinize güzel ve sağlıklı günler, hoşça kalın..</p>
<div class="shr-publisher-1143"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.apostylee.com/jqueryui-autocomplete-kullanimi/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->
