<?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>katmanlı mimari nedir arşivleri - Mehmet Kirazlı</title>
	<atom:link href="https://www.mehmetkirazli.com/tag/katmanli-mimari-nedir/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.mehmetkirazli.com/tag/katmanli-mimari-nedir/</link>
	<description>Yazılımcı Notları</description>
	<lastBuildDate>Fri, 06 Apr 2018 11:13:01 +0000</lastBuildDate>
	<language>tr</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.1.10</generator>

<image>
	<url>https://www.mehmetkirazli.com/wp-content/uploads/2018/04/mehmetkirazlilogo.png</url>
	<title>katmanlı mimari nedir arşivleri - Mehmet Kirazlı</title>
	<link>https://www.mehmetkirazli.com/tag/katmanli-mimari-nedir/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Asp.NET ile 3 Katmanlı Mimari</title>
		<link>https://www.mehmetkirazli.com/asp-net-ile-3-katmanli-mimari/</link>
					<comments>https://www.mehmetkirazli.com/asp-net-ile-3-katmanli-mimari/#comments</comments>
		
		<dc:creator><![CDATA[Mehmet Kirazlı]]></dc:creator>
		<pubDate>Fri, 22 Jun 2012 13:18:12 +0000</pubDate>
				<category><![CDATA[Asp.Net]]></category>
		<category><![CDATA[3 katmanlı mimari nedir]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[asp.net ile 3 katmanlı mimari]]></category>
		<category><![CDATA[katmanlı mimari nedir]]></category>
		<category><![CDATA[üç katmanlı mimari nedir]]></category>
		<guid isPermaLink="false">http://www.mehmetkirazli.com/?p=859</guid>

					<description><![CDATA[<p>Hazırladığımız yazılımlarda bir, iki, üç veya daha fazla katmanı kullanarak programlar geliştiririz. Farkında olmadan bu katmanları kullanırız fakat nedir bu katmanlı mimari ? Bu makaleyi, Asp.NET ve MSSQL üzerinden anlatacağım. Diyelim ki bir basit öğrenci kayıt programı hazırladınız.Bunun için öncelikle bir veritabanınız ve arayüzünüz olmalı.Arayüz ile öğrenci kaydı, silme, listeleme gibi işlemler yaparsınız.Bunun için bir veritabanı &#8230;</p>
<p>The post <a rel="nofollow" href="https://www.mehmetkirazli.com/asp-net-ile-3-katmanli-mimari/">Asp.NET ile 3 Katmanlı Mimari</a> appeared first on <a rel="nofollow" href="https://www.mehmetkirazli.com">Mehmet Kirazlı</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;">Hazırladığımız yazılımlarda bir, iki, üç veya daha fazla katmanı kullanarak programlar geliştiririz. Farkında olmadan bu katmanları kullanırız fakat nedir bu katmanlı mimari ? Bu makaleyi, <span style="color: #ff6600;">Asp.NET</span> ve <span style="color: #ff6600;">MSSQL</span> üzerinden anlatacağım.<br />
<span id="more-859"></span></p>
<p style="text-align: justify;">Diyelim ki bir basit öğrenci kayıt programı hazırladınız.Bunun için öncelikle bir veritabanınız ve arayüzünüz olmalı.Arayüz ile öğrenci kaydı, silme, listeleme gibi işlemler yaparsınız.Bunun için bir veritabanı da gerekli.Ayrıca olmayan bir kaydı silmek, aynı 2 kişiyi eklemek gibi işlemler için kontrol yapacak olan bir birime de ihtiyacınız var.İşte biz buna üç katmanlı mimari diyoruz.Bu katmanlar;</p>
<p style="text-align: justify;">Kullanıcı ile etkileşimi sağlayacak olan <strong><span style="color: #ff6600;">Sunum Katmanı</span></strong>, veritabanı ile etkileşimi yapacak olan <strong><span style="color: #ff6600;">İş Katmanı</span></strong> ve verilerimizi saklayacak olan <strong><span style="color: #ff6600;">Veri Katmanı</span></strong>.Yazılımlar için yüksek performans ve yönetim kolaylığı sağlayan katmanlar bunlardır</p>
<p style="text-align: justify;">Eğer siz iş katmanı kullanmaz iseniz <span style="color: #ff0000;">arayüz</span> ve<span style="color: #ff0000;"> veritabanı</span>ndan oluşan mimarilere <strong>2 katmanlı mimari</strong> denir.Ayrıca isterseniz 3 den fazla katmana sahip mimarileri de kullanabilirsiniz.Bunlar gelişmiş uygulamalarda tercih edilir.Ben en sık kullanılan 3 katmanlı mimariden bahsedeceğim;</p>
<p style="text-align: justify;"><strong><span style="color: #ff0000;">***</span></strong>Peki bu 3 katmanlı mimariyi kullanmanın avantajı nedir?</p>
<p style="text-align: justify;">Bu mimariyi kullanarak yazılımımızı parçalara böleriz.Bunun tabiki en büyük avantajı yönetim kolaylığı sağlamasıdır.Yani eğer programımızda bir hata oluşursa, bunun hangi katmandan kaynaklandığını rahatlıkla anlayabiliriz.Ayrıca bir yerde değişiklik yapmak istediğimizde yazılımı baştan aşağı inceleyerek hatayı bulmak yerine, ayırdığımız katmanlarda oluşturduğumuz fonksiyonlara, sınıflara bakarak kolayca bulabiliriz.Bu sayede yüksek performans elde ederiz ve nesne yönelimli yaklaşımı da kullanarak gelişmiş yazılımlar elde edebiliriz.</p>
<p style="text-align: justify;">Şimdi biz bu makalemizde basit bir öğrenci ekleme çıkarma işlemi yapan bir programı kullanarak anlatımımıza başlayalım.</p>
<h3 style="text-align: justify;"><strong><span style="color: #ff0000;">Veri Katmanı</span></strong></h3>
<p style="text-align: justify;">Eğer veritabanı kullanan bir proje yapacaksanız,arayüzden önce veritabanını tasarlayın.Ben bunun için <span style="color: #ff0000;">MSSQL</span> &#8216;i kullanarak bir veritabanı oluşturacağım</p>
<p style="text-align: justify;">Veritabanımızın adını <span style="color: #ff0000;">ogrenci</span>, tablo adımızı ise <span style="color: #ff0000;">ogrenciler</span> olarak ayarlayalım.No kısmını <span style="color: #ff0000;">Primary key</span> olarak ayarlayalım ve <span style="color: #ff0000;">İdentity</span> özelliğini <span style="color: #ff0000;">Yes ve 1 yapalım</span>.Yani kendizi otomatik ve 1 er 1 er artsın.Biz bu No kısmına dokunamayız</p>
<p><img decoding="async" src="https://www.mehmetkirazli.com/wp-content/uploads/2012/06/3-katmanlı-mimari-veritabanı1.png" alt="3 katmanlı mimari" /></p>
<p>Ve şimdi <span style="color: #ff0000;">veri katmanı</span>mız için <span style="text-decoration: underline;">ekleme işlemini yapacak olan</span> <span style="color: #ff0000;">stored procedure</span>&#8216;umuzu yazıyoruz.Ben sadece <span style="color: #ff6600;">ekleme</span> ve <span style="color: #ff6600;">silme</span> işlemini yapacak olan <span style="color: #33cccc;">stored procedure</span> yazacağım.Stored Procedure eklemeyi bilmiyorsanız eski yazılarımdan bakabilirsiniz</p><pre class="crayon-plain-tag">CREATE PROCEDURE ekle
(
 @ogr_ad nvarchar(30),
 @ogr_soyad nvarchar(30),
 @ogr_bolum nvarchar(50),
 @ogr_sinif nvarchar(10)
)
AS
INSERT INTO ogrenciler (ogr_ad,ogr_soyad,ogr_bolum,ogr_sinif)
VALUES (@ogr_ad,@ogr_soyad,@ogr_bolum,@ogr_sinif) 
GO</pre><p>
Bakın bu ekleme görevi yapan Stored Procedure&#8217;de <strong><span style="color: #ff6600;">ogr_no</span></strong> kısmını eklemedik çünkü o kendisi ekleyecek ve değerini 1 arttıracak (her öğrenci eklemede) . Şimdi ise silme görevi yapacak olan Stored Procedure yazıyoruz</p><pre class="crayon-plain-tag">CREATE PROCEDURE sil
 @ogrenci_no int
  AS
  DELETE FROM ogrenciler WHERE (ogr_no=@ogrenci_no)
 GO</pre><p>
Bu procedure, aldığı <span style="color: #ff6600;">ogrenci_no</span> değerini veritabanındaki<span style="color: #ff0000;"> ogr_no</span> değişkenine atar.Sadece <span style="color: #ff0000;">ogr_no</span> değerini kullanıcıdan alır.Ve bu numaraya eşit olan ogrenciyi siler (tüm bilgileriyle beraber)</p>
<p>&nbsp;</p>
<h3><strong><span style="color: #ff0000;">İş Katmanı</span></strong></h3>
<p style="text-align: justify;">Bu katman, veritabanı ile arayüz arasında etkileşimi sağlar.Biz bunları <span style="color: #ff0000;"><strong>sınıflar</strong></span> ile yaparız.Bunun için iyi derecede <span style="color: #ff0000;">Nesneye yönelik programlama</span> bilmeniz gerekir.Bu katman sayesinde hataları kısa sürede bulabiliriz ve yazacağımız  kod satırları ile 2 katmanı birbirine bağlayabiliriz.Bu 3 katmanlı mimaride, sunum katmanına ise <span style="text-decoration: underline;">en az yükü</span> bırakırız.En önemlisi de budur</p>
<p style="text-align: justify;">Dediğimiz gibi bu katman için <strong><span style="color: #ff0000;">sınıflar</span></strong> oluşturmamız gerekir.Bu sınıflar, stored procedure&#8217;e değerler gönderir.Şimdi <span style="color: #ff0000;">Visual Studio</span> üzerinde <span style="color: #ff0000;">Solution Explorer</span>&#8216;de bulunan projemize sağ tıklayarak <span style="color: #ff6600;">Add New İtem</span> diyelim bir <span style="color: #ff6600;">Class</span> ekleyelim</p>
<p><span style="color: #333333;">Eklediğimiz class&#8217;a <span style="color: #ff0000;">veri ekle</span> diyelim ve aşağıdaki kodları yazalım</span></p><pre class="crayon-plain-tag">public class veriekle
{
 public string ogrenciAd, ogrenciSoyad, ogrenciBolum, ogrenciSinif;
 public void veriekleme()
 {
  SqlConnection con = new SqlConnection("Data source=.;Initial Catalog=ogrenci;Integrated Security=SSPI");
  con.Open();
  SqlCommand cmd = new SqlCommand();
  SqlParameter prm1 = new SqlParameter("@ogr_ad", SqlDbType.NVarChar, 30);
  SqlParameter prm2 = new SqlParameter("@ogr_soyad", SqlDbType.NVarChar, 30);
  SqlParameter prm3 = new SqlParameter("@ogr_bolum", SqlDbType.NVarChar, 50);
  SqlParameter prm4 = new SqlParameter("@ogr_sinif", SqlDbType.NVarChar, 10);
  prm1.Value = ogrenciAd;
  prm2.Value = ogrenciSoyad;
  prm3.Value = ogrenciBolum;
  prm4.Value = ogrenciSinif;
  cmd.Parameters.Add(prm1);
  cmd.Parameters.Add(prm2);
  cmd.Parameters.Add(prm3);
  cmd.Parameters.Add(prm4);
  cmd.CommandType = CommandType.StoredProcedure;
  cmd.CommandText = "ekleme";
  cmd.Connection = con;
  cmd.ExecuteNonQuery();
  con.Close();
 }
}</pre><p>
<span style="color: #ff0000;">verisil</span> adında aynı şekilde bir sınıf daha oluşturuyoruz ve aşağıdaki kodları sınıfın içerisine yazıyoruz</p><pre class="crayon-plain-tag">public class verisil
{
 public int ogrenciNo;
 public void verisilme()
 {
  SqlConnection con = new SqlConnection("Data source=.;Initial Catalog=ogrenci;Integrated Security=SSPI");
  con.Open();
  SqlCommand cmd = new SqlCommand();
  SqlParameter prm1 = new SqlParameter("@ogrenci_no", SqlDbType.Int);
  prm1.Value = Convert.ToInt32(ogrenciNo);
  cmd.Parameters.Add(prm1);
  cmd.CommandType = CommandType.StoredProcedure;
  cmd.CommandText = "silme";
  cmd.Connection = con;
  cmd.ExecuteNonQuery();
  con.Close();
 }
}</pre><p>
Görüldüğü gibi iş katmanı, <span style="text-decoration: underline;">aldığı değerleri işler ve veritabanındaki stored procedurlere</span> gönderir.Bu katman, yazılımlar için çok önemli göreve sahiptir.İş katmanında, <span style="color: #ff0000;">class&#8217;</span>larımızı da oluşturduktan sonra sıra geldi <span style="color: #ff0000;">sunum </span>katmanına.En basit katman burasıdır ve kod olarak fazla yüklenilmemesi gerekir.Yapacağımız örnekte, kod kısmına sadece birkaç satır yazacağız</p>
<p>&nbsp;</p>
<h3><strong><span style="color: #ff0000;">Sunum Katmanı</span></strong></h3>
<h3><img decoding="async" src="https://www.mehmetkirazli.com/wp-content/uploads/2012/06/3-katmanlı-mimari-2.png" alt="3 katmanlı mimari" /></h3>
<p><span style="color: #ff0000;">Ekle</span> butonumuzun <span style="color: #ff0000;">c</span><span style="color: #ff0000;">lick</span> olayına şunları yazalım;</p><pre class="crayon-plain-tag">protected void Button1_Click(object sender, EventArgs e)
{
 veriekle yeniogrenci = new veriekle();
 yeniogrenci.ogrenciAd = TextBox2.Text;
 yeniogrenci.ogrenciSoyad = TextBox3.Text;
 yeniogrenci.ogrenciBolum = TextBox4.Text;
 yeniogrenci.ogrenciSinif = TextBox5.Text;
 yeniogrenci.veriekleme();
}</pre><p>
<span style="font-family: 'Courier New';"><span style="color: #ff0000;">Sil</span> butonumuzun <span style="color: #ff0000;">click</span> olayına ise şu kodları yazalım;<br />
</span></p><pre class="crayon-plain-tag">protected void Button2_Click(object sender, EventArgs e)
{
 verisil silinen = new verisil();
 silinen.ogrenciNo = Convert.ToInt32(TextBox1.Text);
 silinen.verisilme();
}</pre><p>
<strong><span style="font-family: 'Courier New'; color: #ff0000;">Yapacağımız yazılımları bu mantığı kullanarak yaparsak, oluşacak hataları kolay sezeriz ve parçala yönet sistemi ile de hızlıca hataları bulabiliriz </span></strong></p>
<p>The post <a rel="nofollow" href="https://www.mehmetkirazli.com/asp-net-ile-3-katmanli-mimari/">Asp.NET ile 3 Katmanlı Mimari</a> appeared first on <a rel="nofollow" href="https://www.mehmetkirazli.com">Mehmet Kirazlı</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.mehmetkirazli.com/asp-net-ile-3-katmanli-mimari/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
	</channel>
</rss>
