<?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>zafergurel.com &#187; sql server</title>
	<atom:link href="http://www.zafergurel.com/tag/sql-server/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.zafergurel.com</link>
	<description></description>
	<lastBuildDate>Sat, 28 Jan 2012 01:52:39 +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>C# ve Asp.Net Alıştırmaları – 2</title>
		<link>http://www.zafergurel.com/2012/01/28/c-ve-asp-net-alistirmalari-2/</link>
		<comments>http://www.zafergurel.com/2012/01/28/c-ve-asp-net-alistirmalari-2/#comments</comments>
		<pubDate>Sat, 28 Jan 2012 01:44:21 +0000</pubDate>
		<dc:creator>zafergurel</dc:creator>
				<category><![CDATA[Yazılım Geliştirme]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[csharp]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[sql server]]></category>
		<category><![CDATA[t-sql]]></category>
		<category><![CDATA[veritabanı]]></category>

		<guid isPermaLink="false">http://www.zafergurel.com/?p=697</guid>
		<description><![CDATA[&#160; C# ve ASP.Net alıştırmaları serisine devam&#8230; Serinin ilk yazısında, motivasyonumu ve ilk iki alıştırmayı paylaşmıştım. İlk yazıyı okumadıysanız ve alıştırmaları denemek istiyorsanız, ilk yazıyı okumakta fayda var; çünkü geliştirme ortamının kurulması ile ilgili bazı ipuçları o yazıda bulunmakta. Bu yazıda, 3. alıştırma setini paylaşıyorum. Bu alıştırma setinde, tahmini bitirme sürelerini (süreler tamamiyle empiriktir, yani [...]]]></description>
			<content:encoded><![CDATA[<div>
<p><a href="http://www.zafergurel.com/wp-content/uploads/2012/01/csharp-dotnet-alistirmalari.png"><img class="alignleft size-medium wp-image-692" style="margin: 5px;" title="csharp-dotnet-alistirmalari" src="http://www.zafergurel.com/wp-content/uploads/2012/01/csharp-dotnet-alistirmalari-224x300.png" alt="CSharp ve ASP.Net Alıştırmaları" width="224" height="300" /></a></p>
<p>&nbsp;</p>
<p>C# ve ASP.Net alıştırmaları serisine devam&#8230; Serinin ilk <a href="http://www.zafergurel.com/2012/01/26/c-ve-asp-net-alistirmalari-1/">yazısında</a>, motivasyonumu ve ilk iki alıştırmayı paylaşmıştım. İlk yazıyı okumadıysanız ve alıştırmaları denemek istiyorsanız, ilk yazıyı okumakta fayda var; çünkü geliştirme ortamının kurulması ile ilgili bazı ipuçları o yazıda bulunmakta.</p>
<p>Bu yazıda, 3. alıştırma setini paylaşıyorum. Bu alıştırma setinde, tahmini bitirme sürelerini (süreler tamamiyle empiriktir, yani kişisel deneyime bağlı, özneldir)  ekledim.</p>
<p>İlk yazımda da belirttiğim gibi, bu yazılara devam edeceğim. Öneri ve düşüncelere açık olduğumu belirtmek isterim.</p>
<p><strong>Alıştırma Seti 3: Proje Takip Uygulaması </strong><br />
Tahmini Toplam Tamamlama Süresi: 22 saat</p>
<p><strong>Açıklama</strong>: Bu alıştırma seti için ilk olarak SQL Server 2008 (veya Express) veritabanı sistemine erişiminiz olmalı (bilgisayarınızda ya da ağda erişebileceğiniz ve yönetici yetkisine sahip olduğunuz başka bir bilgisayar).<br />
Bu alıştırma setindeki alıştırmalar yapılarak, basit bir proje takip uygulaması geliştireceğiz.<br />
Uygulama, proje oluşturma ve düzenleme, proje listeleme, çalışılan süre girişi ve süre raporlama gibi arayüzlerden oluşmakta.<br />
3 katmanlı yapıda (n-tier, n=3 -&gt; Sunum, veritabanı ve iş mantığı katmanı) geliştirilecek uygulamada, veritabanı sistemi olarak SQL Server kullanılmalıdır.</p>
<p><strong>Alıştırma 1: Veritabanı tablolarının oluşturulması</strong><br />
Tahmini Süre: 1 saat<br />
Bu alıştırma ilk aşamada yapılması gereken bir çalışma. Ancak yol gösterici olarak aşağıdaki formlarda girilecek bilgilere bakılmalıdır.<br />
Alan isimlendirmelerini size kalmış. Ancak aşağıdaki ipuçlarına göz atmanızda fayda var.</p>
<p>İpucu: Tablo isimlendirmesinde ST_ (standart tablo öneki) öneki kullanınız. Ara tablolar için MT_, yardımcı tablolar içinse HT_ öneki kullanılır.<br />
Alan isimlerinin hepsini büyük harfle isimlendirelim. Böylece case-sensitivity ile ilgili sorunlar yaşanmaz.<br />
Her tabloda, eşsiz tanımlayıcı ve birincil anahtar (unique identifier ve primary key) olarak, auto-increment özelliğine sahip bir int alanı kullanınız.</p>
<p><strong>Alıştırma 2: Veritabanı Stored Procedure’lerinin Oluşturulması</strong><br />
Tahmini Süre: 6 saat<br />
Aşağıdaki işlemler için stored procedureler geliştirilmeli:<br />
Yeni proje girişi (insert)<br />
Proje güncelleme (update)<br />
Proje listeleme (select)<br />
Proje detayı (select)<br />
Proje silme (delete)</p>
<p>kullanılabilir.</p>
<p>İpucu: SQL Server Management Studio kullanarak geliştirme yapılabilir.<br />
T-SQL işlemleri:<br />
Select: <a href="http://msdn.microsoft.com/en-us/library/ms189499.aspx" target="_blank">http://msdn.microsoft.com/en-us/library/ms189499.aspx</a><br />
Insert: <a href="http://msdn.microsoft.com/en-us/library/ms174335.aspx" target="_blank">http://msdn.microsoft.com/en-us/library/ms174335.aspx</a><br />
Delete: <a href="http://msdn.microsoft.com/en-us/library/ms189835.aspx" target="_blank">http://msdn.microsoft.com/en-us/library/ms189835.aspx</a><br />
Update: <a href="http://msdn.microsoft.com/en-us/library/ms177523.aspx" target="_blank">http://msdn.microsoft.com/en-us/library/ms177523.aspx</a></p>
<p><strong>Alıştırma 3: İş Mantığı Katmanının Geliştirilmesi</strong><br />
Tahmini Süre: 6 saat<br />
İş mantığı katmanı, arayüzden bağımsız olarak veritabanından veri çekme, veritabanına kayıt yapma, veritabanını sorgulama işlemlerinin yapıldığı katman olarak düşünülebilir. Ayrıca, bu katmanda belli kurallar uygulanabilir. Örneğin, proje kaydı yapılırken proje son tarihi, en fazla 3 ay sonra olabilir gibi bir kural bu katmanda belirlenebilir (arayüzde bu kontrol yapılabileceği gibi). Ancak bu projede sadece veritabanı işlemlerinin, arayüz katmanındaki kod katmanından gizleneceği bir katman olarak düşünelim. Örneğin bu katman bir class dosyasından (ProjeYoneticisi.cs gibi) oluşsun ve bu class dosyasında statik metotlar ile proje oluşturma, düzenleme işlemlerini yapabilelim:<br />
ProjeYoneticisi.Yeni(projeAdi, kategori, sorumlu, sonTarih);</p>
<p>Save metodu içinde ise, SQLClient.Command, SQLClient.Connection classları kullanılarak, ilgili stored procedure (SP_PROJECT_SAVE gibi), ilgili parametreler gönderilerek çağrılır ve proje bilgileri veritabanına kaydedilir.<br />
Dolayısıyla aşağıdaki statik metotların olduğu bir class işimizi görecektir:<br />
int ProjeYoneticisi.Yeni(projeAdi, kategori, sorumlu, sonTarih)<br />
void ProjeYoneticisi.Guncelle(projeID, projeAdi, kategori, sorumlu, sonTarih)<br />
DataTable ProjeYoneticisi.Listele()<br />
Proje ProjeYoneticisi.Oku(projeID)<br />
void ProjeYoneticisi.Sil(projeID)<br />
Oku metodunda, dikkat edildiyse dönüş değeri olarak Proje belirlenmiş. Buradaki Proje bir class. Aşağıdaki gibi bir proje classına ihtiyaç var:<br />
public class Proje {<br />
public string ProjeAdi {get;set;}<br />
.<br />
.<br />
}<br />
Bu class geliştirildikten sonra, diğer code-behind dosyalarında (web formlarında) kullanılarak, hızlıca geliştirme yapılabilir.<br />
Alıştırma 3: Proje Giriş Formu<br />
Tahmini Süre: 4 saat<br />
Proje giriş formunda aşağıdaki alanlar olsun.<br />
1. Proje adı (en fazla 50 karakter, zorunlu)<br />
2. Proje kategorisi (zorunlu, en fazla 20 karakter)<br />
3. Proje sorumlusu (en fazla 50 karakter, zorunlu)<br />
4. Proje son tarihi (tarih biçiminde girilmeli, tarih seçme kontrolü kullanılsın)</p>
<p>Bu formdaki tüm alanlar zorunludur. Kayıt yapıldığında, proje listeleme sayfasına yönlendirme yapılsın ve listenin üstünde “Kayıt başarıyla yapılmıştır.” şeklinde bir ibare ile kaydın yapıldığı gösterilsin.<br />
Validasyon kutusu olsun. Validasyon gösterimi dinamik olsun.<br />
İpucu: Jquery UI tarih kontrolü</p>
<p><strong>Alıştırma 4: Proje Listeleme Formu</strong><br />
Tahmini Süre: 2 saat<br />
Kaydedilmiş projelerin listelendiği sayfadır.<br />
Listedeki başlıklar, giriş formundaki alanların hepsi olsun.<br />
Sayfada gösterilebilecek en fazla kayıt sayısı 10 olsun.<br />
Sayfalar arasında dolaşılabilsin.<br />
Başlıklara göre sıralama yapılabilsin. Yani Proje Adı başlığına tıklandığında proje adına göre A’dan Z’ye sıralama, tekrar tıklandığında Z’den A’ya göre sıralama olsun.<br />
Listedeki herhangi bir proje adına tıkladığımda, proje düzenleme formuna gidilsin.</p>
<p>İpucu: Gridview</p>
<p><strong>Alıştırma 5: Proje Düzenleme Formu</strong><br />
Tahmini Süre: 3 saat<br />
Proje giriş formu ile aynı form kullanılabilir. Dolayısıyla bu alıştırma için, proje giriş formunun tekrar ele alınması uygun olacaktır.<br />
Kaydet işleminde (kaydet butonuna tıklandığında) proje güncellenmeli ve listeleme sayfasına yönlendirme yapılsın. Listeleme sayfasında “Proje başarıyla güncellenmiştir.” diye yazsın.<br />
Proje giriş formundan farklı olarak, Silme butonu da olsun (düzenleme modunda görünürlüğü açmak yeterli). Silme butonuna tıklandığında, ilk önce “Emin misiniz?” şeklinde sorsun. Tamam’a tıklandığında silme işlemi gerçekleşsin ve listeleme sayfasına yönlendirme yapılsın. Listeleme sayfasında üstte “Silme işlemi gerçekleşmiştir.” yazsın.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.zafergurel.com/2012/01/28/c-ve-asp-net-alistirmalari-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

