<?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>Yılmaz Yavuz &#187; CST</title>
	<atom:link href="http://www.yilmazyavuz.com/yyblog/index.php/tag/cst/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.yilmazyavuz.com/yyblog</link>
	<description>yazılım üzerine taze taze</description>
	<lastBuildDate>Mon, 14 Feb 2011 15:35:43 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Nettiers Data Access Layer ile kayıt yapmak</title>
		<link>http://www.yilmazyavuz.com/yyblog/index.php/2008/11/nettiers-data-access-layer-ile-kayit-yapmak/</link>
		<comments>http://www.yilmazyavuz.com/yyblog/index.php/2008/11/nettiers-data-access-layer-ile-kayit-yapmak/#comments</comments>
		<pubDate>Mon, 03 Nov 2008 22:17:55 +0000</pubDate>
		<dc:creator>Yılmaz Yavuz</dc:creator>
				<category><![CDATA[C Sharp]]></category>
		<category><![CDATA[CodeSmith]]></category>
		<category><![CDATA[Csharp]]></category>
		<category><![CDATA[CST]]></category>
		<category><![CDATA[Enterprise Library]]></category>
		<category><![CDATA[Nettiers]]></category>

		<guid isPermaLink="false">http://www.yilmazyavuz.com/yyblog/?p=54</guid>
		<description><![CDATA[<p>Nettiers C# 2.0 ile DAL bastırmak için kullanılan bir CodeSmith template i ve CodeSmith&#8217;i satın aldığınızda içinde ücretsiz ve opensource olarak geliyor yani istediğiniz değişikliği yapabiliyor kendi projenize yada firmanıza uyarlayabiliyorsunuz.  Basit olarak bir db den nasıl Nettiers ile data access layer basılır onu anlatmaya çalışacağım.  Öncelikle CodeSmith in ücretsiz deneme sürümünü  CodeSmith <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.yilmazyavuz.com/yyblog/index.php/2008/11/nettiers-data-access-layer-ile-kayit-yapmak/">Nettiers Data Access Layer ile kayıt yapmak</a></span>]]></description>
			<content:encoded><![CDATA[<p>Nettiers C# 2.0 ile DAL bastırmak için kullanılan bir CodeSmith template i ve CodeSmith&#8217;i satın aldığınızda içinde ücretsiz ve opensource olarak geliyor yani istediğiniz değişikliği yapabiliyor kendi projenize yada firmanıza uyarlayabiliyorsunuz.  Basit olarak bir db den nasıl Nettiers ile data access layer basılır onu anlatmaya çalışacağım.  Öncelikle CodeSmith in ücretsiz deneme sürümünü <a href="http://www.codesmithtools.com/"> CodeSmith Resmi web sitesi</a>nden edinebilirsiniz. Nettiers kendi içinde yüklü olarak gelecektir. Benim örnekte kullandığım sürümü 4.2 olup yeni sürümünde bazı değişiklikler olabilir.  Öncelikle CodeSmith Studio yu açıyoruz.</p>
<div id="attachment_55" class="wp-caption alignnone" style="width: 310px"><a href="http://www.yilmazyavuz.com/yyblog/wp-content/uploads/codesmith.jpg"><img class="size-medium wp-image-55" title="codesmith" src="http://www.yilmazyavuz.com/yyblog/wp-content/uploads/codesmith-300x256.jpg" alt="Code Smith Studio" width="300" height="256" /></a><p class="wp-caption-text">Code Smith Studio</p></div>
<p>Daha sonra Template Explorer üzerinden Nettiers.cst yi açıyoruz. Burda bize template in code-behind scriptler çalıştırdığını ve devam etmek isteyip istemediğimizi soracaktır buna evet diyelim ve eğer isterseniz sonra tekrar sormaması için checkbox ı işaretleyebilirsiniz.  Nettiers açıldığında sol tarafta template kodları cst dilinde yazılmış bir şekilde açılacaktır. Bu kodlar sizi korkutmasın Asp.Net ile çok benzer bir yapıya sahip ve Csharp yada başka bir desteklenen dilde yazabiliyorsunuz. Nettiers Csharp ile yazılmıştır. Kodların üzerine bir kez tıklayıp Properties kısmına geçtiğinizde Nettiers ın Propertyleri karşınıza gelecektir. <a href="http://www.yilmazyavuz.com/yyblog/wp-content/uploads/db.jpg"><img class="alignnone size-medium wp-image-56" title="DataBase seçimi" src="http://www.yilmazyavuz.com/yyblog/wp-content/uploads/db-300x229.jpg" alt="" width="300" height="229" /></a> Burdan <strong>Choose Source Database</strong> (En üstte bulunan) kısmından DAL&#8217;ını bastırmak istediğiniz db yi seçebilirsiniz. Sonrasında <strong>Output Directory</strong> kısmından üretilecek olan dosyaların nereye kaydedilmesi gerektiğini seçmeniz gerekecektir.  Bukadar işlem DAL&#8217;ınızın basılması için yeterli olsada bastırmak istemediğiniz tablolar var ise bunların DAL&#8217;a eklenmemesi için <strong>SourceTables</strong> kısmından sadece işinize yarayacak olan tabloları yine <strong>SourceViews</strong> kısmından işinize yarayacak olan view leri seçebilirsiniz.  <a href="http://www.yilmazyavuz.com/yyblog/wp-content/uploads/table.jpg"><img class="alignnone size-medium wp-image-57" title="Tablo seçimi" src="http://www.yilmazyavuz.com/yyblog/wp-content/uploads/table-300x298.jpg" alt="" width="300" height="298" /></a> Burda işlemimiz temel olarak bitiyor ancak Nettiers bir hayli gelişmiş bir CodeSmith template i bir çok özelleştirme yapmanıza imkan tanıyor bunların ne olduğu Nettiers sitesinde çok net bir şekilde anlatılmıyor malesef ancak CodeSmith web sitesinde bulunan forumlardan takıldığınız yerler hakkında bilgi alabilirsiniz. Yine properties kısmında üzerine geldiğiniz property&#8217;nin açıklaması aşağı kısımda yer almakta.  CodeSmith studio genel anlamda .Net için birşeyler yapmakla beraber Sql sorgularıda oluşturabilen bir program. Ve .Net yazılımcılarının kolay kullanabilmesi için bildiğimiz Visual Studio ortamının benzerini geliştirmiş. Üst araç çubuğunda yer alan Run (Üçgen) butonuna tıkladığımızda artık DAL&#8217;ımız oluşturulmaya başlanıyor. <a href="http://www.yilmazyavuz.com/yyblog/wp-content/uploads/cikti.jpg"><img class="alignnone size-medium wp-image-60" title="cikti" src="http://www.yilmazyavuz.com/yyblog/wp-content/uploads/cikti-300x67.jpg" alt="" width="300" height="67" /></a> Oluşturulduğunda varsayılan tarayıcı ile bir rapor sayfası gösteriliyor ve bize tam olarak hangi class&#8217;ları oluşturduğunu ve nasıl kullanılacağını ufak örneklerle açıklıyor.  Bundan sonra bize Visual Studio solution unu açıp derlemek ve çıkan Dll leri projemizde kullanmak kalıyor. <a href="http://www.yilmazyavuz.com/yyblog/wp-content/uploads/solution.jpg"><img class="alignleft size-medium wp-image-58" title="solution" src="http://www.yilmazyavuz.com/yyblog/wp-content/uploads/solution-141x300.jpg" alt="" width="141" height="300" /></a> Küçük bir örnek olaması amacıyla Solution u Visual Studio da açıp Web kısmına gelin ve yeni bir WebForm ekleyin. Kod kısmına geçerek aşağıda verdiğim kodları kendi Db nize uyarlayarak Nettiers&#8217;ın neler yapabildiğini görün.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp csharp" style="font-family:monospace;"><span style="color: #0600FF;">using</span> <span style="color: #008080;">Sozluk.Entities</span>;
<span style="color: #0600FF;">using</span> <span style="color: #008080;">Sozluk.Data</span>;
&nbsp;
<span style="color: #0600FF;">public</span> partial <span style="color: #FF0000;">class</span> Test <span style="color: #008000;">:</span> <span style="color: #000000;">System.<span style="color: #0000FF;">Web</span>.<span style="color: #0000FF;">UI</span></span>.<span style="color: #0000FF;">Page</span>
<span style="color: #000000;">&#123;</span>
<span style="color: #0600FF;">protected</span> <span style="color: #0600FF;">void</span> Page_Load<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">object</span> sender, EventArgs e<span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</span>
Entry birAdetEntry <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> Entry<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
birAdetEntry.<span style="color: #0000FF;">Entry</span> <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;Merhaba Dünya Nasılsın&quot;</span>;
&nbsp;
birAdetEntry.<span style="color: #0000FF;">UserIdSource</span> <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> User<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
birAdetEntry.<span style="color: #0000FF;">UserIdSource</span>.<span style="color: #0000FF;">Email</span> <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;yilmaz@nospm.yilmazyavuz.com&quot;</span>;
birAdetEntry.<span style="color: #0000FF;">UserIdSource</span>.<span style="color: #0000FF;">NickName</span> <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;yilmaz&quot;</span>;
birAdetEntry.<span style="color: #0000FF;">UserIdSource</span>.<span style="color: #0000FF;">UserName</span> <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;abc&quot;</span>;
birAdetEntry.<span style="color: #0000FF;">UserIdSource</span>.<span style="color: #0000FF;">Password</span> <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;123&quot;</span>;
&nbsp;
birAdetEntry.<span style="color: #0000FF;">TitleIdSource</span> <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> Title<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
birAdetEntry.<span style="color: #0000FF;">TitleIdSource</span>.<span style="color: #0000FF;">Title</span> <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;Merhaba&quot;</span>;
&nbsp;
DataRepository.<span style="color: #0000FF;">EntryProvider</span>.<span style="color: #0000FF;">Save</span><span style="color: #000000;">&#40;</span>birAdetEntry<span style="color: #000000;">&#41;</span>;
&nbsp;
<span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p><a href="http://www.yilmazyavuz.com/yyblog/wp-content/uploads/providersave.jpg"><img class="alignnone size-medium wp-image-59" title="providersave" src="http://www.yilmazyavuz.com/yyblog/wp-content/uploads/providersave-300x68.jpg" alt="" width="300" height="68" /></a> Burda oluşturduğumuz Entry class&#8217;ının instance ı içine UserIdSource ile ona bağlı yeni bir user oluşturuyoruz, aynı şekilde yeni ona bağlı bir title oluşturuyoruz. Ve Nettiers&#8217;ın oluşturduğu EntryProvider.Save methodu ile bunları db mize kaydediyoruz.  dipnotlar: Nettiers Enterprise Library alt yapısını kullanmaktadır. CodeSmith ücretli bir yazılımdır ve bir çok template i bulunmaktadır Nettiers hakkında kısıtlı bir destek olmakla birlikte kendi sitesinden ücretli destek satın alınabilmektedir. Örnekte bulunan kodların Sourtimes ile herhangi bir ilgisi yoktur.</p>
<p>&#8211;</p>
<p><strong>Düzenleme:<br />
<span style="font-weight: normal;">Save(..) methodu sadece entity nin kendisini kaydetmek için kullanılmaktadır. Bu örnekde <strong><span style="font-weight: normal;">kullanılması gereken method DeepSave(..)</span> </strong>dir. DeepSave(..) entity ve ona ilişkili KOLONADISource yada TABLOADICollection şeklindeki propertylerin içinde bulunan entityleri de kaydetmek için kullanılır.</span></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.yilmazyavuz.com/yyblog/index.php/2008/11/nettiers-data-access-layer-ile-kayit-yapmak/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

