<?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>CETURK &#187; ASP.NET</title>
	<atom:link href="http://www.ceturk.com/kategori/web-teknolojileri/asp-net/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ceturk.com</link>
	<description>Türkiye&#039;nin Bilişim Platformu</description>
	<lastBuildDate>Sat, 05 May 2012 16:04:53 +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>ASP.NET&#8217;te Chart Kontrolü Kullanırken Temp Directory Sorunu</title>
		<link>http://www.ceturk.com/asp-nette-chart-kontrolu-kullanirken-temp-directory-sorunu/</link>
		<comments>http://www.ceturk.com/asp-nette-chart-kontrolu-kullanirken-temp-directory-sorunu/#comments</comments>
		<pubDate>Wed, 17 Aug 2011 11:09:53 +0000</pubDate>
		<dc:creator>Semih Kırdinli</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[asp.net chart]]></category>
		<category><![CDATA[asp.net ipucu]]></category>
		<category><![CDATA[chart]]></category>

		<guid isPermaLink="false">http://www.ceturk.com/?p=8047</guid>
		<description><![CDATA[Merhabalar, bu makalede ASP.NET&#8217;te Chart kontrolünün sebep olduğu bir hatayı ele alacağız. “The temp directory in chart handler configuration is not accessible” hatası  projemizin kök dizininde bir “temp” klasörü bulunmadığından kaynaklanmaktadır. Bu nedenle projemizin kök dizinine “tempImages” adında bir klasör ekleyerek Web.config dosyamızda da &#60;appSettings&#62; etiketinin altında &#60;add key=&#8221;ChartImageHandler&#8221; value=&#8221;Storage=file;Timeout=20;Url=~/tempImages/;&#8221;/&#62; şeklinde bir key oluşturmalıyız. Daha [...]]]></description>
			<content:encoded><![CDATA[<p>Merhabalar, bu makalede ASP.NET&#8217;te Chart kontrolünün sebep olduğu bir hatayı ele alacağız.</p>
<p><a rel="attachment wp-att-8048" href="http://www.ceturk.com/web-teknolojileri/asp-net/asp-nette-chart-kontrolu-kullanirken-temp-directory-sorunu.html/attachment/hata"><img class="alignnone size-medium wp-image-8048" src="http://www.ceturk.com/images/hata-1000x587.png" alt="" width="1000" height="587" /></a></p>
<p><strong>“The temp directory in chart handler configuration is not accessible”</strong> hatası  projemizin kök dizininde bir “temp” klasörü bulunmadığından kaynaklanmaktadır. Bu nedenle projemizin kök dizinine <strong>“tempImages”</strong> adında bir klasör ekleyerek Web.config dosyamızda da <strong>&lt;appSettings&gt;</strong> etiketinin altında <strong>&lt;add key=&#8221;ChartImageHandler&#8221; value=&#8221;Storage=file;Timeout=20;Url=~/tempImages/;&#8221;/&gt;</strong> şeklinde bir key oluşturmalıyız. Daha sonra “tempImages” dosyasının fiziksel yoluna gitmeliyiz. Burada “tempImages” e sağ tıklayıp Properties’ i seçerek Security sekmesinde Edit butonuna tıklıyoruz. Önce “Group or user names” bölümünden “Users” ı seçiyoruz. Daha sonra da “Permissions for Users” bölümünden Full control’ü “Allow” olarak işaretleyerek işlemleri onaylıyoruz.</p>
<p><a rel="attachment wp-att-8049" href="http://www.ceturk.com/web-teknolojileri/asp-net/asp-nette-chart-kontrolu-kullanirken-temp-directory-sorunu.html/attachment/users_yetkilendirme"><img class="alignnone size-full wp-image-8049" src="http://www.ceturk.com/images/users_yetkilendirme.png" alt="" width="734" height="474" /></a></p>
<p>Bu şekilde sorunun ortadan kalktığını göreceğiz.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceturk.com/asp-nette-chart-kontrolu-kullanirken-temp-directory-sorunu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<enclosure url="http://www.ceturk.com/images/hata-1000x587.png" length="Array" type="image/jpg" />	</item>
		<item>
		<title>Asp.Net MVC3 Release Candidate 2 Duyruldu</title>
		<link>http://www.ceturk.com/asp-net-mvc3-release-candidate-2-duyruldu/</link>
		<comments>http://www.ceturk.com/asp-net-mvc3-release-candidate-2-duyruldu/#comments</comments>
		<pubDate>Tue, 14 Dec 2010 07:57:33 +0000</pubDate>
		<dc:creator>Halil İbrahim Ateş</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Asp.Net Mvc]]></category>
		<category><![CDATA[Asp.Net MVC3]]></category>

		<guid isPermaLink="false">http://www.ceturk.com/?p=7017</guid>
		<description><![CDATA[Microsoft Asp.Net ekibi geçtiğimiz günlerde  Asp.net MVC3 ün final sürümü niteliğinde olan release candidate sürümünü duyurdu. Bu sürümün neredeyse tamamen final sürümüyle aynı olduğunu belirten ekip, bu sürüm ile birlikte yazilim dünyasının son testlerini yapmasına imkan sağlamak istediklerini belirtti. Final sürümünün ise haziran ayında yayınlanması bekleniyor. RC2 sürüme hem Visula Studio. 2010 hem de Visula [...]]]></description>
			<content:encoded><![CDATA[<p>Microsoft Asp.Net ekibi geçtiğimiz günlerde  Asp.net MVC3 ün final sürümü niteliğinde olan release candidate sürümünü duyurdu. Bu sürümün neredeyse tamamen final sürümüyle aynı olduğunu belirten ekip, bu sürüm ile birlikte yazilim dünyasının son testlerini yapmasına imkan sağlamak istediklerini belirtti. Final sürümünün ise haziran ayında yayınlanması bekleniyor.</p>
<p><span id="more-7017"></span><br />
<img class="alignnone" src="http://msdn.microsoft.com/en-ca/ff657791.MVC3.gif" alt="" width="212" height="105" /></p>
<p>RC2 sürüme hem Visula Studio. 2010 hem de Visula Studio 2010 SP1 Beta ile uyumlu olarak çalışmakta. Henüz yeni duyurulan VS 2010 SP1 Beta ile ilgili detaylı bilgiye <a href="http://www.hanselman.com/blog/VisualStudioExplosionVS2010SP1BETAReleasedAndContext.aspx" target="_blank">buradan </a>ulaşabilirsiniz.</p>
<p>Bu sürüm bir çok bug düzeltmesi ve performans iyileştirmesi içermekte.Son yapılan performans testleri gösteriyorki, MVC3  MVC2 den daha hızlı çalışmakta.</p>
<p>Bu sürüm aynı zamanda jQuery 1.4.4 and jQuery Validation 1.7 yi de içermekte.Ayrıca yeni gelen güzel özelliklerden biride yeni proje oluşturacağınız Asp.net projelerinde JQuery UI içerecek şekilde oluşturabilirsiniz. Böylece bu komponentinde eklentilerini ve özelliklerini kolaylıkla kullanabileceksiniz..</p>
<p>Bu bunun gibi birçok özelliğini daha detaylı incelemek isterseniz yazının orjinaline <a href="http://weblogs.asp.net/scottgu/archive/2010/12/10/announcing-asp-net-mvc-3-release-candidate-2.aspx" target="_blank">buradan </a>ulaşabilirsiniz&#8230;</p>
<p>Halil İbrahim Ateş</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceturk.com/asp-net-mvc3-release-candidate-2-duyruldu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ziyaretci Defteri</title>
		<link>http://www.ceturk.com/ziyaretci-defteri/</link>
		<comments>http://www.ceturk.com/ziyaretci-defteri/#comments</comments>
		<pubDate>Wed, 23 Dec 2009 20:13:35 +0000</pubDate>
		<dc:creator>Yönetici</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Download]]></category>
		<category><![CDATA[Örnek Kodlar]]></category>
		<category><![CDATA[Programlama]]></category>
		<category><![CDATA[Web Teknolojileri]]></category>
		<category><![CDATA[asp.net örnek]]></category>
		<category><![CDATA[sude]]></category>
		<category><![CDATA[Ziyaretçi defteri]]></category>

		<guid isPermaLink="false">http://www.ceturk.com/?p=5091</guid>
		<description><![CDATA[İçinde Msj silme, degistirme ve admin paneli olan bir ziyaretçi defteri uygulaması. İşinize yarayacağını umuyorum. Ekleyen Üyemiz: sude]]></description>
			<content:encoded><![CDATA[<p>İçinde Msj silme, degistirme ve admin paneli olan bir ziyaretçi defteri uygulaması.<br />
İşinize yarayacağını umuyorum.</p>
<p>Ekleyen Üyemiz: <strong>sude</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceturk.com/ziyaretci-defteri/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Repeater ve DataList ile Pratik Sayfalama İşlemi</title>
		<link>http://www.ceturk.com/repeater-ve-datalist-ile-pratik-sayfalama-islemi/</link>
		<comments>http://www.ceturk.com/repeater-ve-datalist-ile-pratik-sayfalama-islemi/#comments</comments>
		<pubDate>Thu, 10 Dec 2009 18:08:56 +0000</pubDate>
		<dc:creator>Olcay KÜK</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Web Teknolojileri]]></category>
		<category><![CDATA[asp.net sayfalama işlemi]]></category>
		<category><![CDATA[datalist ile sayfalama]]></category>
		<category><![CDATA[repeater ile sayfalama]]></category>

		<guid isPermaLink="false">http://www.ceturk.com/?p=4833</guid>
		<description><![CDATA[Çalışmalarımızda birden fazla kaydın listelendiği noktalarda sayfalama işlemine ihtiyaç duyuyoruz. Bu işlemleri repeater ya da datalist kullanarak bir takım kod yapılarından geçirilerek sayfalama işlemini sonlandırabiliyoruz. Bu işlemler projelerimizde belli aşamalardayken ekstra olarak zamanımızı alabiliyor ve bu doğrultuda CollectionPager.dll dosyası imdadımıza yetişiyor. Projemize dosyamızı dahil ettikten sonra kolaylıkla repeater ya da datalist ile sayfalama işlemi yapabiliyoruz. [...]]]></description>
			<content:encoded><![CDATA[<p>Çalışmalarımızda birden fazla kaydın listelendiği noktalarda sayfalama işlemine ihtiyaç duyuyoruz. Bu işlemleri repeater ya da datalist kullanarak bir takım kod yapılarından geçirilerek sayfalama işlemini sonlandırabiliyoruz.</p>
<p>Bu işlemler projelerimizde belli aşamalardayken ekstra olarak zamanımızı alabiliyor ve bu doğrultuda CollectionPager.dll dosyası imdadımıza yetişiyor. Projemize dosyamızı dahil ettikten sonra kolaylıkla repeater ya da datalist ile sayfalama işlemi yapabiliyoruz. Bir örnekle açıklayalım.<span id="more-4833"></span></p>
<p>Öncelikle <a href="http://olcaykuk.com/file.axd?file=2009%2f12%2fCollectionPager.dll" target="_blank">bu adresten</a> dosyamızı upload edelim.</p>
<p>Dosyamızı upload ettikten sonra Toolbox’a dosyamızı import ediyoruz.Import işleminin ardından eklemiş olduğunuz dll dosyamızı projemize sürükleyip ekliyoruz ve sayfalama işlemini yapmak istediğiniz item’i seçiyoruz ben repeater’i seçtim .Gerekli database bağlantılarını ve Web.config ayarlarını yaptıktan sonra işlemlere geçebiliriz.</p>
<p><em>Default.aspx</em></p>
<pre class="brush:csharp">&lt;asp:Repeater ID="Repeater1" runat="server"&gt;

&lt;ItemTemplate&gt;

&lt;%#DataBinder.Eval(Container.DataItem,"yorum") %&gt;&lt;br /&gt;

&lt;/ItemTemplate&gt;

&lt;/asp:Repeater&gt;

&lt;br /&gt;

&lt;cc1:CollectionPager ID="CollectionPager1" runat="server" BackText="« Önceki"

FirstText="İlk" LabelText="Sayfa:" LastText="Son" NextText="Sonraki »"

PageNumbersDisplay="Numbers" ResultsFormat="Sayfalar {0}-{1} (Toplam:{2})"

PageSize="5" SectionPadding="10"&gt;

&lt;/cc1:CollectionPager&gt;</pre>
<p>CollectionPager dosyamız üzerinde sayfalama miktarı vb. ayarları yapabiliyoruz.Sayfamızdaki düzenlemeleri yaptıktan sonra şimdi de CollectionPager’i repeater ile etkileşim oluşturacağımız kodları yazalım.</p>
<p><em>Default.cs</em></p>
<pre class="brush:csharp">protected void Page_Load(object sender, EventArgs e)

{

if (Page.IsPostBack == false)

{

IcerikGetir();

}

}

protected void IcerikGetir()

{

SqlConnection cnn = new SqlConnection(ConfigurationManager.ConnectionStrings["cnn"].ConnectionString);

SqlCommand cmd = new SqlCommand("SELECT * FROM urunyorum",cnn);

SqlDataAdapter da = new SqlDataAdapter(cmd);

DataTable dt = new DataTable();

da.Fill(dt);

cnn.Open();

CollectionPager1.DataSource = dt.DefaultView;

CollectionPager1.BindToControl = Repeater1;

Repeater1.DataSource = CollectionPager1.DataSourcePaged;

Repeater1.DataBind();

cnn.Close();

}</pre>
<p>IcerikGetir adından bir fonksiyon oluşturdum bu fonksiyon içinde urunyorum tablosundaki verileri çekiyoruz ve ardından CollectionPager’ın datasource ve databind kontrollerinin görevlerini yerine getirmeleri için repeater kontrolümüze bağlıyoruz.</p>
<p>Bu işlemlerin ardından projemizi çalıştırıyoruz.</p>
<p><img class="alignnone size-full wp-image-4834" title="sayfalama" src="http://www.ceturk.com/images/sayfalama.jpg" alt="sayfalama" width="406" height="207" /></p>
<p>Gördüğünüz gibi sayfalama işlemini pratik olarak gerçekleştiriyoruz.</p>
<p>CollectionPager ile artık sayfalama işlemlerinizi kolaylıkla gerçekleştirebilirsiniz.</p>
<p>Olcay KÜK</p>
<p><a href="http://www.olcaykuk.com" target="_blank">http://www.olcaykuk.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceturk.com/repeater-ve-datalist-ile-pratik-sayfalama-islemi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<enclosure url="http://www.ceturk.com/images/sayfalama.jpg" length="33467" type="image/jpg" />	</item>
		<item>
		<title>Ajax-UpdateProgress Kontrolü</title>
		<link>http://www.ceturk.com/ajax-updateprogress-kontrolu/</link>
		<comments>http://www.ceturk.com/ajax-updateprogress-kontrolu/#comments</comments>
		<pubDate>Sun, 29 Nov 2009 18:03:45 +0000</pubDate>
		<dc:creator>Gorkem</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[asp.net ajax]]></category>
		<category><![CDATA[UpdateProgress]]></category>

		<guid isPermaLink="false">http://www.ceturk.com/?p=4625</guid>
		<description><![CDATA[Bugünkü makalemizde Ajax’taki UpdateProgress kontrolünün ne amaçla kullanıldığına dair bir örnek yapacağız. Öncelikle bir Asp .Net Web Site projesi açalım. Ana sayfamıza Ajax bileşenlerinden Script Manager ve Update Panel’i aşağıdaki görüldüğü gibi ekleyelim. Ardından UpdatePanel içine 1 textbox,1 button ve 1 label ekliyoruz. Buradaki amacımız textbox’a bir yazı yazdıktan sonra butona basınca textboxtaki yazıyı label’a [...]]]></description>
			<content:encoded><![CDATA[<p>Bugünkü makalemizde Ajax’taki UpdateProgress kontrolünün ne amaçla kullanıldığına dair bir örnek yapacağız. Öncelikle bir Asp .Net Web Site projesi açalım. Ana sayfamıza Ajax bileşenlerinden <em>Script Manager </em>ve <em>Update Panel’i </em>aşağıdaki görüldüğü gibi ekleyelim.</p>
<p><img class="aligncenter size-medium wp-image-4626" src="http://www.ceturk.com/images/updateprogress1-600x310.png" alt="updateprogress1" width="600" height="310" /></p>
<p>Ardından UpdatePanel içine 1 textbox,1 button ve 1 label ekliyoruz. Buradaki amacımız textbox’a bir yazı yazdıktan sonra butona basınca textboxtaki yazıyı label’a aktarmamız. İşte butona basarken UpdateProgress kontrolümüzün devreye girmesini sağlayacağız.</p>
<p><img class="aligncenter size-medium wp-image-4628" src="http://www.ceturk.com/images/updateprogress2-600x305.png" alt="updateprogress2" width="600" height="305" /></p>
<p>Hemen yukarıdaki şekilde gördüğünüz gibi UpdatePanelimizin içine bileşenlerimi yerleştirdik. Button’un text özelliğine Aktar yazdık, Label’in text özelliğinin içerisini sildik ve Label’in visible özelliğini false yaptık. Sıra geldi sayfamıza UpdateProgress kontrolünü eklemeye.</p>
<p><img class="aligncenter size-medium wp-image-4631" src="http://www.ceturk.com/images/updateprogress3-600x242.png" alt="updateprogress3" width="600" height="242" /></p>
<p>Şekilde görülen UpdateProgress kontrolünün içine textboxtaki yazıyı label’a aktarırken geçen sürede ne gözükecek onu belirteceğiz. Bu bekleyiniz türünden bir yazı da olabilir, bir resimde olabilir. Ben bu işlem için gif uzantılı bir resmi uygun gördüm. Yararlı olabileceğini düşündüğüm bir site var. Bu siteden bekleme süresince gözükmesini istediğiniz resmi düzenleyip indirebilirsiniz. <a href="http://www.ajaxload.info/">http://www.ajaxload.info</a> Ben bu siteden bir resim indirip kendi projeme ekledim. Sonra bu resmi aşağıdaki şekillerde görüldüğü gibi UpdateProgress kontrolü içine sürükleyip bırakıyoruz.</p>
<p><img class="aligncenter size-medium wp-image-4633" src="http://www.ceturk.com/images/updateprogress4-600x215.png" alt="updateprogress4" width="600" height="215" /></p>
<p><img class="aligncenter size-medium wp-image-4634" src="http://www.ceturk.com/images/updateprogress5-600x131.png" alt="updateprogress5" width="600" height="131" /></p>
<p>Gördüğünüz gibi gif resmimi sürükleyip UpdateProgress kontrolünün içine bıraktık. Şimdi gelelim son olarak button’a tıklanınca işlenecek kodları yazmaya.</p>
<pre class="brush:csharp">protected void Button1_Click(object sender, EventArgs e)
{
        System.Threading.Thread.Sleep(5000);
        Label1.Text = TextBox1.Text;
        Label1.Visible = true;
}</pre>
<p>Textbox’taki girilecek verinin Label’a aktarımı çok kısa bir süredir. UpdateProgress’in işlerliğini görebilmek için bir bekleme süresi gereklidir. Web sayfaları yüklenirken sayfada büyük bir resim ya da bir veritabanı kontrolü mevcutsa genelde bir bekleme süresi olur. Bu bekleme süresinde UpdateProgress devreye girer. Bizim bu sayfadaki işlemimiz çok kısa süren bir işlem olduğundan System.Threading.Thread.Sleep(5000); satırı ile 5 saniyelik bir bekleme süresi oluşturduk. 5 saniye boyunca eklediğimizde bar resmi gözükecek. 5 saniye ardından textbox’taki veri label’e aktarılmış olacaktır. Sitemizi çalıştırdığımızda aşağıdaki gibi görüntüler olacaktır. Textbox’a veriyi girdik ve Aktar butonuna tıkladık. 5 saniye boyunca aşağıdaki gibi işlem yapıldığını belirten bar şekli gözükecektir.</p>
<p><img class="aligncenter size-medium wp-image-4638" src="http://www.ceturk.com/images/updateprogress6-600x251.png" alt="updateprogress6" width="600" height="251" /></p>
<p>Ve 5 saniye sonra resim gidecek label’a aktarma işlemi tamamlanmış olacaktır.</p>
<p><img class="aligncenter size-medium wp-image-4639" src="http://www.ceturk.com/images/updateprogress7-600x157.png" alt="updateprogress7" width="600" height="157" /></p>
<p>Umuyorum ki yararlı olmuşumdur. Bir daha ki makalemizde tekrar görüşmek dileğiyle.</p>
<p style="text-align: right">Görkem SEZGİN</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceturk.com/ajax-updateprogress-kontrolu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<enclosure url="http://www.ceturk.com/images/updateprogress1-1000x526.png" length="81243" type="image/jpg" />	</item>
		<item>
		<title>Akıllı Sözlük</title>
		<link>http://www.ceturk.com/akilli-sozluk/</link>
		<comments>http://www.ceturk.com/akilli-sozluk/#comments</comments>
		<pubDate>Thu, 05 Nov 2009 18:15:21 +0000</pubDate>
		<dc:creator>Yönetici</dc:creator>
				<category><![CDATA[ADO.NET]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Download]]></category>
		<category><![CDATA[Örnek Kodlar]]></category>
		<category><![CDATA[Programlama]]></category>
		<category><![CDATA[Akıllı Sözlük]]></category>
		<category><![CDATA[Ruin]]></category>

		<guid isPermaLink="false">http://www.ceturk.com/?p=3847</guid>
		<description><![CDATA[XHR kullanımına örnek olması ve asp.net ile etkileşimli biçimde kullanılmasına örnek olması açısından basit bir sözlük projesi. Ekleyen Üyemiz : Ruin]]></description>
			<content:encoded><![CDATA[<p>XHR kullanımına örnek olması ve asp.net ile etkileşimli biçimde kullanılmasına örnek olması açısından basit bir sözlük projesi.</p>
<p>Ekleyen Üyemiz :  <strong> Ruin </strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceturk.com/akilli-sozluk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Asp.net ile Access&#8217;den Çekilen Verilerin Sayfalanması</title>
		<link>http://www.ceturk.com/asp-net-ile-accessden-cekilen-verilerin-sayfalanmasi/</link>
		<comments>http://www.ceturk.com/asp-net-ile-accessden-cekilen-verilerin-sayfalanmasi/#comments</comments>
		<pubDate>Thu, 05 Nov 2009 18:03:20 +0000</pubDate>
		<dc:creator>Yönetici</dc:creator>
				<category><![CDATA[ADO.NET]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Download]]></category>
		<category><![CDATA[Örnek Kodlar]]></category>
		<category><![CDATA[Programlama]]></category>
		<category><![CDATA[Web Teknolojileri]]></category>
		<category><![CDATA[muratseker]]></category>
		<category><![CDATA[Verilerin Sayfalanması]]></category>

		<guid isPermaLink="false">http://www.ceturk.com/?p=3844</guid>
		<description><![CDATA[Genelde DataGrid ve DataList kullanarak yapılan sayfalamanın bir başka yöntem ile yapılması. Ekleyen Üyemiz : muratseker]]></description>
			<content:encoded><![CDATA[<p>Genelde DataGrid ve DataList kullanarak yapılan sayfalamanın bir başka yöntem ile yapılması. </p>
<p>Ekleyen Üyemiz :  <strong> muratseker </strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceturk.com/asp-net-ile-accessden-cekilen-verilerin-sayfalanmasi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sunucuya Resim Yükleme</title>
		<link>http://www.ceturk.com/sunucuya-resim-yukleme/</link>
		<comments>http://www.ceturk.com/sunucuya-resim-yukleme/#comments</comments>
		<pubDate>Wed, 04 Nov 2009 13:18:20 +0000</pubDate>
		<dc:creator>Yönetici</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Download]]></category>
		<category><![CDATA[Örnek Kodlar]]></category>
		<category><![CDATA[Programlama]]></category>
		<category><![CDATA[Web Teknolojileri]]></category>
		<category><![CDATA[muheng]]></category>
		<category><![CDATA[Resim Upload]]></category>

		<guid isPermaLink="false">http://www.ceturk.com/?p=3537</guid>
		<description><![CDATA[Örnekte bilgisayarınızdaki bir resimi sunucuya yükleme işlemini yapan bir user control&#8217;lü webform vardır. sayfalarınıza Resimyukle.ascx olan controlü uygulamanız halinde sitenizin root kısmına YuklenenResimler şeklinde bir klasör oluşturmanız ve bu klasöre erişimleri düzenlemeniz gerekir. Ekleyen Üyemiz : muheng]]></description>
			<content:encoded><![CDATA[<p>Örnekte bilgisayarınızdaki bir resimi sunucuya yükleme işlemini yapan bir user control&#8217;lü webform vardır. sayfalarınıza Resimyukle.ascx olan controlü uygulamanız halinde  sitenizin root kısmına YuklenenResimler şeklinde bir klasör oluşturmanız ve bu klasöre erişimleri düzenlemeniz gerekir.</p>
<p>Ekleyen Üyemiz : <strong>muheng</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceturk.com/sunucuya-resim-yukleme/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Asp.Net ve Jquery İle Tab Uygulaması</title>
		<link>http://www.ceturk.com/aspnet-ve-jquery-ile-tab-uygulamasi/</link>
		<comments>http://www.ceturk.com/aspnet-ve-jquery-ile-tab-uygulamasi/#comments</comments>
		<pubDate>Tue, 03 Nov 2009 21:00:21 +0000</pubDate>
		<dc:creator>Olcay KÜK</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Download]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[Manşet]]></category>
		<category><![CDATA[Örnek Kodlar]]></category>
		<category><![CDATA[Web Teknolojileri]]></category>
		<category><![CDATA[asp.net örnek]]></category>
		<category><![CDATA[JQuery örnek]]></category>
		<category><![CDATA[olcay kük]]></category>
		<category><![CDATA[Ruin]]></category>
		<category><![CDATA[Tab Menü]]></category>

		<guid isPermaLink="false">http://www.ceturk.com/?p=2284</guid>
		<description><![CDATA[ASP.NET kullanılarak JQUERY ile Tab menü yapımı ve her tab içerisine programlamatik olarak veri çağıran örnek bir uygulamadır. Örneği ekleyen üyemiz :   Olcay Kük]]></description>
			<content:encoded><![CDATA[<p>ASP.NET kullanılarak JQUERY ile Tab menü yapımı ve her tab içerisine programlamatik olarak veri çağıran örnek bir uygulamadır.</p>
<p>Örneği ekleyen üyemiz :   <a href="http://www.ceturk.com/etiket/olcay-kuk"><strong>Olcay Kük</strong></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceturk.com/aspnet-ve-jquery-ile-tab-uygulamasi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Asp.Net MVC ile Kendi Doğrulama Niteliğimizi Yazalım</title>
		<link>http://www.ceturk.com/asp-net-mvc-ile-kendi-dogrulama-niteligimizi-yazalim/</link>
		<comments>http://www.ceturk.com/asp-net-mvc-ile-kendi-dogrulama-niteligimizi-yazalim/#comments</comments>
		<pubDate>Mon, 05 Oct 2009 06:00:12 +0000</pubDate>
		<dc:creator>GokayOkutucu</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[Programlama]]></category>
		<category><![CDATA[Web Teknolojileri]]></category>
		<category><![CDATA[Asp.Net Mvc]]></category>
		<category><![CDATA[Gökay Okutucu]]></category>
		<category><![CDATA[Membership]]></category>
		<category><![CDATA[Mvc Framework]]></category>

		<guid isPermaLink="false">http://www.ceturk.com/?p=2394</guid>
		<description><![CDATA[Uzunbir aradan sonra herkese merhaba. Daha öncede belirttiğim gibi üzerinde çalıştığım bir proje var. Bu yüzden makalelerime ara vermek zorunda kaldım. Bugün sizlerle birlikte Asp.Net Web Formlar için denediğimiz özel Membership’imizi yani kullanıcı denetleme sistemimizi Asp.Net MVC için yazmaya çalışacağız. Önceki yazımızda Web Form için bu olayı Üst/Taban(Base) bir sınıftan türeterek yaparken, MVC’de sadece doğrulama [...]]]></description>
			<content:encoded><![CDATA[<p>Uzunbir aradan sonra herkese merhaba. Daha öncede belirttiğim gibi üzerinde çalıştığım bir proje var. Bu yüzden makalelerime ara vermek zorunda kaldım.<br />
<img class="aligncenter" src="http://www.ceturk.com/images/attributemvcsamp1.png" alt="" width="500" height="289" /></p>
<p>Bugün sizlerle birlikte Asp.Net Web Formlar için denediğimiz özel Membership’imizi yani kullanıcı denetleme sistemimizi Asp.Net MVC için yazmaya çalışacağız. Önceki yazımızda Web Form için bu olayı Üst/Taban(Base) bir sınıftan türeterek yaparken, MVC’de sadece doğrulama işleminin gerçekleşmesini istediğimiz sınıf üzerine ilgili <span style="font-weight:bold;">Niteliği</span>(Attribute) koyarak yapacağız.</p>
<div><strong>Özel Doğrulama Niteliği</strong></div>
<div><strong><br />
</strong></div>
<div><strong>Nitelikler</strong>(Attributes) bildiğimiz üzere <strong>Yansıma</strong>(Reflection) teknikleri kullanarak çalışma zamanında nesneler ile ilgili bilgilere erişmemizi sağlarlar. <strong>Asp.Net MVC</strong> içerisinde yapacağımız bu projede de eski ve kullanımı zor yöntemlerden sıyrılıp çok daha kolay kullanılabilen bir doğrulama sistemi yazacağız. Bunu bize sağlayan şey ise tabiki de Asp.Net MVC’nin esnekliği ve Nitelikler&#8230;</div>
<div>
<div>Niteliğimizi yazmaya başlamadan önce üye bilgileri tutacağımız <strong>MemberInfo</strong> ve <strong>MemberTicket</strong> sınıflarını yazalım.</div>
<div>
<pre class="brush:csharp">namespace MvcCustomMembership.Helper
{
public class MemberInfo
{
public string User { get; set; }
public MemberTicket Ticket { get; set; }
public bool IsAuthenticate { get; set; }
}

public class MemberTicket
{
public Guid Guid { get; set; }
public int UserId { get; set; }
public string User { get; set; }
public DateTime IssueDate { get; set; }
public DateTime Expiration { get; set; }
}
}</pre>
</div>
</div>
<div>Bu sınıflarda kullanıcı adı, kullanıcı doğrulandı mı doğrulanmadı mı ve <strong>çerez</strong>(cookie) için bazı bilgiler içeriyor. Bu bilgileri <strong>Session’da </strong>tutacağız ve gerektiğinde kullanağız.</div>
<div>Niteliğimizi yazarken <strong>ActionFilterAttribute </strong>isimli <strong>Soyut</strong>(Abstract) sınıfından türettiğimize dikkat ediyoruz. Hatırlayacağınız üzere <strong>soyut</strong>(Abstract) sınıflar içerisinde tanımlanan <strong>soyut metotlar</strong>(Abstract Methods) mutlak suretle <strong>ezilmelidirler</strong>(Override). Şimdi biz de bu metotlardan birini ezerek devre dışı bırakacağız.</div>
<div><span style="font-family:-webkit-monospace;font-size:100%;"><span style=" white-space: pre;font-size:13px;"><span style="font-family:Georgia;font-size:130%;"><span style=" white-space: normal;font-size:16px;"><br />
</span></span></span></span></div>
<div>
<pre class="brush:csharp">public class AuthenticationAttribute : ActionFilterAttribute
{
private HttpContextBase _context;

public Role Roles { get; set; }

public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (filterContext.Controller is ControllerBase)
{
var baseControllar = filterContext.Controller as ControllerBase;
if (baseControllar != null)
{
_context = baseControllar.ControllerContext.HttpContext;

var memberInfo = (MemberInfo)_context.Session["MemberInfo"] ?? new MemberInfo();
Helper.CookieLogin(memberInfo);

if (!memberInfo.IsAuthenticate &amp;&amp; _context.Request.Path != null)
{
    string loginUrl = "~/Account/Login?returnUrl=" + _context.Request.Path;
    filterContext.HttpContext.Response.Redirect(loginUrl);
}
}
}
}
}</pre>
</div>
<div><strong>OnActionExecuting </strong>metodu <strong>Controller </strong>sınıfı içerisinde tanımlanmış olan bir <strong>ActionMethod</strong> çalıştırılmak üzereyken işleme alınır. Burada üzerinde bizim niteliğimiz tarafından işaretlenmiş olan bir <strong>Controller</strong> sınıfı metot gövdesinde kullanılmak üzere parametre ile aktarılıyor. Eğer <strong>Session</strong> da tanımlanmış olan <strong>MemberInfo</strong> null değilse <strong>memberInfo</strong> değişkenine aktarılıyor. Eğer null ise yeni bir <strong>MemberInfo </strong>sınıfı yaratılıyor. Yaratılma işleminden hemen sonra ise daha önce <strong>“Beni Hatırla”</strong> seçeneği işaretlenmişse çerez içerinden bilgiler aktarılıp <strong>memberInfo </strong>sınıfına bu şekilde aktarım gerçekleştiriliyor.</div>
<div>Bir sonraki satırda ise kullanıcının doğrulanma durumu kontrol ediliyor. Doğrulama işlemi gerçekleştirilmemişse kullanıcının hangi sayfadan <strong>Login </strong>sayfasına yönlendirildiğine dair bir <strong>Url</strong> bilgisi elde ediliyor. Böylelikle eğer <strong>About</strong> sayfasına girdiyseniz ve bu sayfada doğrulama işlemi gerekiyorsa, sistem sizi <strong>Login</strong> sayfasına yönlendiriyor(<strong>returnUrl</strong> isimli parametre).</div>
<div>Şimdi geçelim <strong>AccoutController </strong>sınıfımıza. Öncelikle yeni yaratılan <strong>MVC proje şablonu</strong> içerisindeki <strong>AccountController </strong>sınıfının gövdesini temizleyelim ve aşağıdaki kod blogunu buraya geçirelim.</div>
<div>
<pre class="brush:csharp">[HandleError]
public class AccountController : Controller
{
public ActionResult Index()
{
return RedirectToAction("Login");
}

public ActionResult Login()
{
ViewData["Title"] = "Login Page";
return View();
}

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Login(string username, string password, string rememberMe)
{
//Kullanıcı adı ve şifre kontrollerinide veritabanına bağlanıp yapmalıyız
if (username == "test" &amp;&amp; password == "test")
{
string requestUrl = Request.QueryString.Count &gt; 0 ? Request.QueryString["returnUrl"] : null;

//Bu kısımı database'den gelen veriye göre set etmemiz gerekiyor
var memberInfo = new MemberInfo { IsAuthenticate = true, User = "Gokay" };

Session["MemberInfo"] = memberInfo;
memberInfo.Ticket = new MemberTicket()
{
  User = memberInfo.User,
  Expiration = DateTime.Now.AddMinutes(2),
  IssueDate = DateTime.Now,
  UserId = 1,
  Guid = Guid.NewGuid()
};

if (rememberMe == "on")
  AddCookie(memberInfo);

if (requestUrl != null)
  return Redirect(requestUrl);
return RedirectToAction("Index", "Home");
}
else
return View();
}

private void AddCookie(MemberInfo memberInfo)
{
var myCookie = new HttpCookie("myCookie");

myCookie.Values.Add("userName", memberInfo.User);
myCookie.Values.Add("userIssueDate", memberInfo.Ticket.IssueDate.ToString());
myCookie.Values.Add("userId", memberInfo.Ticket.UserId.ToString());
myCookie.Values.Add("userGuid", memberInfo.Ticket.Guid.ToString());
myCookie.Values.Add("userExpiration", memberInfo.Ticket.Expiration.ToString());

myCookie.Expires = memberInfo.Ticket.Expiration;

Response.Cookies.Add(myCookie);
}

public ActionResult Logout()
{
Session["MemberInfo"] = null;
if (Request.Cookies["myCookie"] != null)
{
RemoveCookie();
}

return RedirectToAction("Index", "Home");
}

private void RemoveCookie()
{
var myCookie = new HttpCookie("myCookie") { Expires = DateTime.Now.AddYears(-1) };

Response.Cookies.Set(myCookie);
}
}</pre>
</div>
<p>En üsteki <strong>Index </strong>isimki <strong>ActionResult</strong> metodumuz tarayıcıdan <strong>http://localhost/Account</strong> biçminde bir istek gelirse <strong>Login</strong> <strong>ActionResult’una </strong>yönlendirme yapıyor. <strong>Login metodu</strong> içerisinde ise doğrulama işlemlerini ele alıyoruz. Bunun için bir de <strong>Login </strong>isimli bir <strong>View</strong> oluşturmamız gerekiyor. Burada kullanıcı arabirimimizi tasarlayacağız.</p>
<div>
<pre class="brush:csharp">&lt;asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"&gt;
&lt;% using (Html.BeginForm())
{ %&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;td&gt;
Username :
&lt;/td&gt;
&lt;td&gt;
&lt;%= Html.TextBox("username")%&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
Password :
&lt;/td&gt;
&lt;td&gt;
&lt;%= Html.Password("password")%&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="2"&gt;
&lt;input id="rememberMe" name="rememberMe" type="checkbox"/&gt;&lt;label for="rememberMe"&gt;Beni Hatırla&lt;/label&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="2"&gt;
&lt;input type="submit" name="login" id="login" value="Login" /&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;%} %&gt;
&lt;/asp:Content&gt;</pre>
</div>
<div><strong>Login ActionResult metodu</strong> içerindeki <strong>KullanıcıAdı </strong>ve <strong>Şifre</strong> kontrollerini veritabanına bağlanıp yapabiliriz. Ben burada işlemleri hızlı yapmak adına kullanıcı adı ve şifresiyi <strong>“test”</strong> olarak belirledim. <strong>İf blogunun </strong>içine bakmak gerekirse; burada <strong>Nitelik </strong>içerisinde belirtilen <strong>returnUrl </strong>isimli parametrenin <strong>Url </strong>üzerinde olup olmadığını kontrol ediyoruz. Daha sonra <strong>memberInfo </strong>sınıfını yaratıp, giriş yapan kullanıcının bilgilerini buradaki <strong>özelliklere</strong>(properties) atıyoruz. <strong>“Beni Hatırla”</strong> isimli <strong>chechBox</strong> işaretlenmişse çerezimizi yazıyor ve kullanıcıyı <strong>“returnUrl”</strong> parametresinde belirtilen adrese ya da anasayfaya yönlendiriyoruz.</div>
<div>Bunların dışında ben anasayfada kullanmak üzere ufak bir <strong>UserControl </strong>yazdım. Bu UserControl ile <strong>Login </strong>isimli <strong>View </strong>içerindeki kodlar birbiriyle oldukça benzer. Bu yüzden sadece UserControl içerisindeki kod bloglarını anlatacağım.</div>
<div>
<pre class="brush:csharp">&lt;%
MemberInfo memberInfo = Helper.GetMemberInfo();

if (memberInfo.IsAuthenticate)
{
%&gt;
&lt;span&gt;Hoş Geldiniz
&lt;%= Html.Encode(memberInfo.User) %&gt;&lt;/span&gt;
&lt;%
}
else
{
using (Html.BeginForm("login", "account", FormMethod.Post))
{
%&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;td&gt;
Kullanıcı Adı
&lt;/td&gt;
&lt;td&gt;
&lt;input id="username" name="username" type="text" maxlength="20" size="20" /&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
Şifre
&lt;/td&gt;
&lt;td&gt;
&lt;input id="password" name="password" type="password" maxlength="20" size="20" /&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="2"&gt;
&lt;input type="checkbox" id="rememberMe" name="rememberMe" /&gt;&lt;label for="rememberMe"&gt;Remember
  Me&lt;/label&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="2"&gt;
&lt;input type="submit" name="login" id="login" value="Login" /&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;%
}
}
%&gt;</pre>
</div>
<p>En üst satırda <strong>memberInfo </strong>sınıfımızı <strong>Helper </strong>metodu içerisindeki <strong>GetMemberInfo </strong>metodu ile <strong>set </strong>ediyorum</p>
<div>
<pre class="brush:csharp">public static class Helper
{
public static MemberInfo GetMemberInfo()
{
var memberInfo = new MemberInfo();

if (HttpContext.Current.Session["MemberInfo"] != null)
    memberInfo = (MemberInfo)HttpContext.Current.Session["MemberInfo"];
else
    CookieLogin(memberInfo);

return memberInfo;
}

public static void CookieLogin(MemberInfo memberInfo)
{
var myCookie = HttpContext.Current.Request.Cookies["myCookie"];
if (myCookie != null)
{
    int userExpration = Convert.ToDateTime(myCookie.Values["userExpiration"]).Year;
    int userIssueDate = Convert.ToDateTime(myCookie.Values["userIssueDate"]).Year;
    if (myCookie["userName"] != null &amp;&amp; !memberInfo.IsAuthenticate &amp;&amp; userExpration &gt;= userIssueDate)
    {
        memberInfo.User = myCookie["userName"];
        memberInfo.Ticket = new MemberTicket()
        {
            User = myCookie["userName"],
            Guid = new Guid(myCookie["userGuid"]),
            UserId = Convert.ToInt32(myCookie["userId"])
        };
        //Eğer belirtilen guid database'de bulunuyorsa isAuthenticate property'sini true yapalım
        memberInfo.IsAuthenticate = true;
    }
}
}
}</pre>
</div>
<div>Doğrulama işlemi başarılı gerçekleştirilmişse<strong> “Hoş Geldiniz”</strong> yazısını ve kullanıcı ismini gösteriyor, gerçekleştirilmemiş ise giriş yapma arabiriminiz gösteriyorum. Burada dikkat etmemiz gereken bir ikinci kısım ise buradaki belirtilen <strong>form</strong>’un yani <strong>BeginForm</strong> ile başlayan kısımın <strong>metot özelliğini “Post”</strong> olarak atıyoruz(Parametrelerden diğer ikisi ise <strong>ActionName</strong> ve <strong>Controller Name</strong>’i belirtiyor). Belirtilen bu metodun çalışması için <strong>Controller </strong>sınıfı içerindeki <strong>Login </strong>metodu üzerinide <strong>[AcceptVerbs(HttpVerbs.Post)] </strong>niteliğini tanımlıyoruz.</div>
<div>Şimdi geldi buraya kadar yaptıklarımızı denemeye. Hemen <strong>HomeController</strong> sınıfımıza giriyoruz ve <strong>About </strong>isimli <strong>metodumuzun </strong>üzerinde <strong>niteliğimizi </strong>yazıyoruz.</div>
<div>
<pre class="brush:csharp">[Authentication(Roles = Role.User)]
public ActionResult About()
{
  return View();
}</pre>
</div>
<div>Eğer istersek kullanıcı <strong>rollerinide</strong> belirtip <strong>role </strong>göre login işlemlerini gerçekleştirebiliriz.</div>
<div><img class="aligncenter" src="http://www.ceturk.com/images/attributemvcsamp2.png" alt="" width="500" height="342" /></div>
<div><img class="aligncenter" src="http://www.ceturk.com/images/attributemvcsamp3l.png" alt="" width="500" height="315" /></div>
<div>Geldik bir yazımızın sonuna daha&#8230; Farkı bir konuda, farklı bir yazıda görüşmek üzere esen kalın.</div>
<div>Örneği indirmek için <a href="http://www.ceturk.com/images/MvcCustomMembership.rar">tıklayın</a>.</div>
<p><strong>Mehmet Gökay Okutucu</strong><br />
<strong>Email : </strong><a href="mailto:gokayokutucu@gmail.com">gokayokutucu@gmail.com</a><br />
<strong>Blog : </strong><a href="http://gokayokutucu.blogspot.com">http://gokayokutucu.blogspot.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceturk.com/asp-net-mvc-ile-kendi-dogrulama-niteligimizi-yazalim/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

