https://buraksenyurt.com/Burak Selim Şenyurt - .Net Framework 4.02016-08-08T07:25:35+00:00Matematik Mühendisi Bir Bilgisayar Programcısının NotlarıBurak Selim SenyurtBlogEngine.Net Syndication Generatorhttps://buraksenyurt.com/opml.axdBurak Selim SenyurtMatematik Mühendisi Bir Bilgisayar Programcısının Notlarıtr-TRBurak Selim Şenyurt0.0000000.000000https://buraksenyurt.com/post/managed-extensibility-framework-hello-worldManaged Extensibility Framework - Hello World2015-01-13T15:00:00+00:00bsenyurt<p><img style="width: 350px; float: right;" src="data:image/jpeg;base64,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" alt="" />Merhaba Arkadaşlar,</p>
<p>Günümüzde uygulamaların genişletilebilir olması önemli bir konu. Modüler olarak da nitelendirebileceğimiz bu felsefe ile bir uygulamanın kullanıcıları tarafından kolayca genişletilebilmesi amaçlanır. Hatta akıllı uygulamaların kendilerini bu şekilde genişletmesi de mümkündür. </p>
<p>Modülerliği kazandırmak için kullanabileceğimiz farklı yöntemler vardır. Bunlardan belki de en basiti <span style="font-weight: bold;">Interface </span>tiplerini ve <span style="font-weight: bold;">Reflection</span>' ı kullanarak uygulamanın standart fonksiyonelliklerini genişletilebilir şekilde dışarıya açmaktır. Basittir ancak geliştiricinin iyi tasarlamasını gerekitir ve kod maliyeti yükselebilir.</p>
<p>Pek tabii <span style="font-weight: bold;">Plug-In</span> tabanlı bir yaklaşım için <span style="font-weight: bold;">IoC<span style="font-style: italic;">(Inversion of Control)</span> Container</span>' larından da yararlanılabilir. <span style="font-weight: bold;">Ninject</span>, <span style="font-weight: bold;">Windsor Castle</span>, <span style="font-weight: bold;">Unity </span>gibi pek çok <span style="font-weight: bold;">IoC Container </span>bu noktada devreye girer. Ne var ki .Net cephesinde modülerlik adına Framework 4.0 sürümünden beri gündemde yer alan <span style="font-weight: bold;">MEF </span>alt yapısı ile de bu iş gerçekleştirilebilir.<span style="font-style: italic;">(ki benim <span style="font-weight: bold;">Hello World</span> demem epey zamanımı almıştır)</span></p>
<h1>Örnekler</h1>
<p><span style="line-height: 1.42857143;">Konuyu iyi analiz edebilmek adına gerçek hayat örneklerine bakmamızda da yarar var. Modüler uygulamalara günümüzde pek çok örnek verebiliriz aslında. <span style="font-weight: bold;">Plug-In </span>veya <span style="font-weight: bold;">Extension </span>desteği olan ürünlerin tamamında modüler bir tasarım olduğundan bahsedebiliriz. <span style="font-weight: bold;">Photoshop</span>' a kullanıcı bazlı efektlerin yüklenmesinden <span style="font-weight: bold;">Warcraft</span>' a yeni oyuncların ilave edilmesine, <span style="font-weight: bold;">Winamp</span>' da yeni bir <span style="font-weight: bold;">Skin'</span> in yüklenmesinden <span style="font-weight: bold;">Visual Studio</span>' da yazılım takımının geliştirdiği bir <span style="font-weight: bold;">TFS Policy</span>' sinin entegre edilmesine kadar pek çok örnek verebiliriz.</span></p>
<div>
<h1>MEF Nedir?</h1>
<div>
<div>
<div>Uygulamalarımızın modüler olması için .Net tarafında kullanabileceğimiz alt kütüphane topluluklarından birisidir. .Net' in bir parçası olduğu için .Net ile birlikte her yerde kullanılabilir.</div>
<div> </div>
<blockquote><span style="line-height: 1.42857143;">İşin gerçeği kurumsal uygulamalarda IoC Container' ların kullanıldığı ama n sayıda nesnenin Bind edilme ihtiyacının bulunduğu senaryolarda MEF kullanımı düşünülebilir.</span></blockquote>
<h1>MEF'in Avantajı</h1>
<p>Aslında .Net ile geliştirilmiş ürünlerde MEF kullanımının avantajını dile getirmeden önce Late Binding ve Early Binding kavramlarının bir uygulama yaşam döngüsü açısından ne anlama geldiğine bakmamızda yar var. Aşağıdaki amatör çizim bu konuda biraz fikir verebilir.</p>
<div><img style="width: 400px;" src="data:image/jpeg;base64,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" alt="" /></div>
<div> </div>
<div>
<div>Şimdi duruma bir bakalım. Modüler olarak düşünülen bir <span style="font-weight: bold;">API </span>tasarımı <span style="font-weight: bold;">Windows </span>tarafında başlatıldığında derleyici başlangıçta gerekli olan ne kadar kod varsa yükleyecektir. En azından bu şekilde düşünebiliriz. Bu durumda gerekli kod parçalarına <span style="font-weight: bold;">Compiler</span>' ın erken bağlandığından bahsedebiliriz. </div>
<div> </div>
<div>Diğer yandan kullanıcı veya uygulamanın kendi seçimlerine göre çalışma zamanında yüklenmesi istenen modüller varsa bunlar <span style="font-weight: bold;">geç bağlama<span style="font-style: italic;">(Late Binding)</span></span> tekniği ile ortama dahil edilebilirler. Bu tip bir sürecin sağladığı pek çok avantaj vardır. Söz gelimi uygulama başlangıçta minimum gereksinim ile belleğe açılır ve yaşamı boyunca kullanıcı seçimine bağlı olarak ek modüllerin yüklenmesi için tekrardan başlatılmasına gerek kalmaz. <span style="line-height: 1.42857143;">İşte <span style="font-weight: bold;">MEF </span>için bu sürecin <span style="font-weight: bold;">.Net API </span>versiyonu olduğunu ifade edebiliriz.<span style="font-style: italic;">(Yani <span style="font-weight: bold;">Late Binding</span> desteği olan bir yapı) </span></span></div>
<div><span style="line-height: 1.42857143;"> </span></div>
<blockquote><span style="line-height: 1.42857143;">Temelde <span style="font-weight: bold;">IoC </span>container' lar ile <span style="font-weight: bold;">MEF </span>arasında benzerlik olduğu düşünülebilir. Ancak temel bir fark vardır. Neredeyse tüm <span style="font-weight: bold;">IoC Container</span>' lar <span style="font-weight: bold;">Early Binding </span>tekniğine benzer bir şekilde yüklenirler ve genellikle <span style="font-weight: bold;">X</span> nesnesinin sadece bir örneğinin bağlanmasına izin verirler. <span style="font-weight: bold;">MEF </span>ise birden fazla nesnenin bağlanmasına olanak sunar.</span></blockquote>
<h1>Örnek Uygulama</h1>
<div>Gelin basit bir örnek ile <span style="font-weight: bold;">MEF </span>kullanımına merhaba diyelim/diyeyim. Senaryomuza göre şirketteki farklı kaynaklardan, kurum müşterilerine ait bir takım verileri toplayan modüllerimiz olduğunu farz edebiliriz. <span style="font-weight: bold;">.Net</span> ile geliştirilen bu modüllerin her biri farklı ortamlardan farklı şekillerde veri toplayacaktır. Toplanan verileri bir ortamda da sakladıklarını düşünebiliriz. Aslında veriyi toplama ve saklama şekilleri şu an önemli senaryo gereği çok önemli değil. Kavramamız gereken, ana uygulamanın bu modülerliğe nasıl kavuşabileceği. Yani kodu tekrar derlemeden bakması gereken yerlerdeki dll' lere ulaşarak, aynı fonksiyonelliklerin farklı işleniş şekillerini çalışma zamanı bünyesine nasıl entegre edebileceğini görmek.</div>
<h1>Solution</h1>
<div>İlk olarak aşağıdaki <span style="font-weight: bold;">Solution </span>yapısını oluşturarak işe başlayalım. <span style="font-style: italic;">(Unutmayın bu sadece bir <span style="font-weight: bold;">Hello World </span>uygulması, fazlası değil)</span></div>
</div>
<div> </div>
<div><img style="width: 294px;" src="data:image/png;base64,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" alt="" /></div>
<div> </div>
<div>Solution içerisinde modüler olmasını istediğimiz bir <span style="font-weight: bold;">Console Application<span style="font-style: italic;">(Miner)</span></span>, bu uygulamaya eklemek istediğimiz <span style="font-weight: bold;">modüller</span><span style="font-style: italic;"><span style="font-weight: bold;">(Modules klasörü içindeki Class Library projeleri)</span> </span>ve modüllerin <span style="font-weight: bold;">MEF</span>'e <span style="font-weight: bold;">expose </span>edilmesinde kullanılan <span style="font-weight: bold;">sözleşme kütüphanesi<span style="font-style: italic;">(Contracts isimli Class Library)</span></span> yer almakta. Önemli olan nokta <span style="font-weight: bold;">Modules </span>altında geliştirilen sınıf kütüphanelerinin ana uygulamaya hiç bir şekilde referans edilmeden kullanılabilecek olması. Bu modüller <span style="font-weight: bold;">Late Binding </span>tekniğine göre <span style="font-weight: bold;">MEF </span>üzerinden <span style="font-weight: bold;">Miner </span>isimli uygulamada kullanılır hale gelecekler. </div>
<div> </div>
<blockquote><span style="font-weight: bold;">Contracts </span>kütüphanesi dışındaki tüm projelerin <span style="font-weight: bold;">System.ComponentModel.Compositions.dll assembly</span>' ını referans etmesi gerektiğini ifade edelim. Bu sayede MEF alt yapısını kullanabileceğiz.</blockquote>
<h1 style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; color: #333333;">Kodlar</h1>
<p>İlk olarak Contracts isimli Class Library içerisine IContractModule interface tipini ekleyerek yola çıkalım.</p>
<div><img style="width: 217px;" src="data:image/png;base64,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" alt="" /></div>
<div>
<pre class="brush:csharp;auto-links:false;toolbar:false" contenteditable="false">namespace Contracts
{
public interface IContractModule
{
string Name { get; }
string Description { get;}
string Author { get;}
void Initialize();
void FindData();
void LoadData();
void SaveData();
}
}</pre>
<div><span style="font-weight: bold;">IContractModule </span>arayüzünü tasarlamaktaki amacımız aslında genişletilebilir modüller için ortak bir sözleşme sunmaktır. Sözleşme modüller için ortak bir kurallar bütünü sunacaktır. Bu sözleşmeyi uygulayan modüller, ana uygulama tarafından kullanılabilir hale gelecektir. Bunun içinse <span style="font-weight: bold;">MEF </span>tarafında çalışma zamanına bağlanmaları gerekmektedir. İyi ama nasıl? </div>
<h1><span style="color: inherit; font-family: inherit; line-height: 1.42857143;">Modül İçerikleri</span></h1>
<div><span style="color: inherit; font-family: inherit; line-height: 1.42857143;">Şimdi tüm konsantrasyonumuzu modüllerimize vereceğiz. Her bir modül bilinçli olarak ayrı birer </span><span style="color: inherit; font-family: inherit; line-height: 1.42857143; font-weight: bold;">Class Library</span><span style="color: inherit; font-family: inherit; line-height: 1.42857143;"> olarak tasarlanmıştır. Gerçek hayat senaryosunda her bir kütüphanenin farklı ekiplerce farklı </span><span style="color: inherit; font-family: inherit; line-height: 1.42857143; font-weight: bold;">Solution</span><span style="color: inherit; font-family: inherit; line-height: 1.42857143;">' lar içerisinde yazılması da söz konusu olabilir. Kritik olan nokta, modüler olması istenen uygulamanın, ilgili modül kütüphanelerini bir şekilde tarayabilmesidir. Modüllere ait kodları aşağıdaki gibi geliştirerek yolumuza devam edelim.</span></div>
<h3><span style="color: inherit; font-family: inherit; line-height: 1.42857143;">CRM Modüle</span></h3>
<div><img style="width: 219px;" src="data:image/png;base64,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" alt="" /></div>
<div>
<pre class="brush:csharp;auto-links:false;toolbar:false" contenteditable="false">using Contracts;
using System.ComponentModel.Composition;
namespace CRMModule
{
[Export(typeof(IContractModule))]
public class CRMMiner
: IContractModule
{
public string Author
{
get
{
return "Burki";
}
}
public string Description
{
get
{
return "CRM sistemindeki müşteri verilerini yükler.";
}
}
public string Name
{
get
{
return "CRM Data Miner";
}
}
public void FindData()
{
//Bir takım kodlar
}
public void Initialize()
{
//Bir takım kodlar
}
public void LoadData()
{
//Bir takım kodlar
}
public void SaveData()
{
//Bir takım kodlar
}
}
}</pre>
<strong>HRMiner Modül<br /></strong></div>
<div><img style="line-height: 1.42857143; width: 229px;" src="data:image/png;base64,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" alt="" /></div>
<div>
<pre class="brush:csharp;auto-links:false;toolbar:false" contenteditable="false">using Contracts;
using System.ComponentModel.Composition;
namespace HRModule
{
[Export(typeof(IContractModule))]
public class HRMiner
: IContractModule
{
public string Author
{
get
{
return "Coni bi gud";
}
}
public string Description
{
get
{
return "İnsan Kaynakları biriminden ilgili müşteri verilerini yükler";
}
}
public string Name
{
get
{
return "HR Customer Data Miner";
}
}
public void FindData()
{
//Bir takım kodlar
}
public void Initialize()
{
//Bir takım kodlar
}
public void LoadData()
{
//Bir takım kodlar
}
public void SaveData()
{
//Bir takım kodlar
}
}
}</pre>
ve son olarak </div>
<h3>Mernis Modül</h3>
<div><img style="color: inherit; font-family: inherit; line-height: 1.42857143; width: 215px;" src="data:image/png;base64,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" alt="" /></div>
<div>
<pre class="brush:csharp;auto-links:false;toolbar:false" contenteditable="false">using Contracts;
using System.ComponentModel.Composition;
namespace MernisModule
{
[Export(typeof(IContractModule))]
public class MernisMiner
: IContractModule
{
public string Author
{
get
{
return "ToBe Tuuba";
}
}
public string Description
{
get
{
return "Mernis sistemindeki müşteri verilerimizi yükler";
}
}
public string Name
{
get
{
return "Mernis Customer Data Miner";
}
}
public void FindData()
{
//Bir takım kodlar
}
public void Initialize()
{
//Bir takım kodlar
}
public void LoadData()
{
//Bir takım kodlar
}
public void SaveData()
{
//Bir takım kodlar
}
}
}</pre>
Her üç modül <span style="font-weight: bold;">IContractModule </span>sözleşmesini uygulayan birer sınıf içermektedir. Bu üç sınıfın en önemli özelliği ise <span style="font-weight: bold;">Export niteliğini<span style="font-style: italic;">(attribute)</span></span> kullanmalarıdır. Bu nitelik <span style="font-weight: bold;">MEF </span>altyapısına ilgili tipin hangi sözleşmeyi sunduğunu bildirmektedir ki bu sayede <span style="font-weight: bold;">IContractModule </span>arayüzünü uyarlayan sınıflara ait örnekler <span style="font-weight: bold;">MEF </span>tarafından değerlendirilebilsinler. Dikkat edileceği üzere <span style="font-weight: bold;">Export </span>niteliğine <span style="font-weight: bold;">IContractModule </span>arayüz tipi <span style="font-weight: bold;">typeof </span>operatörü ile parametre olarak geçilmiştir. Gelelim asıl kahramanımıza.</div>
<h1>Ana Uygulama</h1>
<div>Her ne kadar ana uygulama basit bir <span style="font-weight: bold;">Console </span>projesi olarak tasarlanmış olsa da içerisinde <span style="font-weight: bold;">MEF </span>kullanım şekline <span style="font-weight: bold;">Hello World </span>dememiz için yeterlidir. Tabiki ana uygulamanında <span style="font-weight: bold;">System.ComponentModel.Composition.dll</span> <span style="font-weight: bold;">assembly</span>' ını referans etmiş olması gerekmektedir. Diğer yandan modüllerin bu uygulama tarafından kolayca taranabilir bir yerde olmasında da yarar vardır. Bu amaçla ortak bir klasör kullanılabilir ve <span style="font-weight: bold;">dll</span>' lerin buraya atılması sağlanabilir.</div>
<div> </div>
<blockquote>Hatta bu modüllerin uygulamanın çeşidine göre ortak bir sunucundan indirilerek lullanılması da sağlanabilir. Nuget paket yönetim aracında olduğu gibi.</blockquote>
<div>Ben örnek olarak Debug\Extensions klasörü altına Build edilen modül dll' lerini xCopy ile kopyaladım.<br /><br /></div>
<div><img style="width: 426px;" src="data:image/png;base64,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" alt="" /></div>
<div> </div>
<div>Gelelim ana uygulama kodlarına. Program.cs içeriğini aşağıdaki gibi yazabiliriz.</div>
<div>
<pre class="brush:csharp;auto-links:false;toolbar:false" contenteditable="false">using Contracts;
using System;
using System.Collections.Generic;
using System.ComponentModel.Composition;
using System.ComponentModel.Composition.Hosting;
using System.IO;
namespace Miner
{
class Program
{
static void Main(string[] args)
{
Host houston = new Host();
foreach (var module in houston._modules)
{
Console.WriteLine("{0} {1}\n{2}", module.Name,module.Author,module.Description);
module.Initialize();
module.FindData();
module.LoadData();
module.SaveData();
}
}
}
class Host
{
[ImportMany(typeof(IContractModule))]
public IEnumerable<IContractModule> _modules;
public Host()
{
Bootsrap();
}
void Bootsrap()
{
AggregateCatalog catalog = new AggregateCatalog();
string extensionPath= Path.Combine(Environment.CurrentDirectory,"Extensions");
catalog.Catalogs.Add(new DirectoryCatalog(extensionPath));
CompositionContainer container = new CompositionContainer(catalog);
container.ComposeParts(this);
}
}
}</pre>
Dikkat edilmesi gereken yer <span style="font-weight: bold;">Host </span>isimli sınıf içeriğidir. Burada <span style="font-weight: bold;">IEnumerable<IContractModule> </span>tipinden bir değişken tanımlıdır. Söz konusu liste n adet <span style="font-weight: bold;">IContractModule </span>arayüz uyarlamasını taşıyabilir. Bu n sayıda bağlama tanımını <span style="font-weight: bold;">MEF </span>üzerinden gerçekleştirmek için alanın <span style="font-weight: bold;">ImportMany </span>niteliği ile imzalanması yeterlidir. <span style="font-weight: bold;">Yapıcı metod<span style="font-style: italic;">(Constructor)</span></span> içerisinden çağırılan <span style="font-weight: bold;">Bootsrap </span>isimli metod, geç bağlama işlemlerini üstlenmektedir. Nasıl mı?</div>
<div> </div>
<div>İlk olarak bir modül kataloğu tanımlanır. <span style="font-weight: bold;">AggregateCatalog </span>tipinden olan bu nesne örneğine farklı klasörlerden genişletmeler yüklenebilir. Bu nedenle <span style="font-weight: bold;">Catalogs </span>isimli bir özelliği vardır ve <span style="font-weight: bold;">DirectoryCatalog </span>ile modül klasörlerine ait yer bildirimleri yapılmaktadır. N adet modülün ilgili klasör içerisinde yer alan <span style="font-weight: bold;">IContractModule </span>uyarlamaları için düzenlenmesi gerekir. Bu noktada devreye <span style="font-weight: bold;">CompositionContainer </span>tipi girer. Dikkat edileceği üzere ilgili nesne örneklenirken parametre olarak <span style="font-weight: bold;">AggregateCatalog </span>nesnesini almaktadır. Son olarak bu kompozisyon o an çalışmakta olan canlı nesne örneği ile bağlanır. <span style="font-weight: bold;">ComposeParts </span>metodunun this anahtar kelimesi ile çağırılmasının sebebi ilgili modüllerin o anki çalışma zamanı sahibine bağlanmasıdır. Gelelim çalışma zamanı sonuçlarına.</div>
<div> </div>
<div><img style="width: 585px;" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAkkAAAC3CAIAAACJ5V0jAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjExR/NCNwAAKTVJREFUeF7tnfn/XVV57/tz722vrfXea/Xe3vZSi2KrbYVKaBFQqwwiilAFERSMA0OYBBISEqYwQxICYQqZSAiDTNJvSRgyMAUKXkEQMJAQREQUb/+D0+dZw7OfNex91hm+3+8+33zer+e1svZaz3qetc45e33Y+5zv5vc6AAAAwNSCte2Fn2yBwWAwGGzKGLQNBoPBYFPNKm37/V2+P7j9l7883tp//RDZCWR/8FfWTvzDXb19+KT/Zu0jM95jbbcZf7TbyWwfPfmP2U75479mey/Z35xK9idkHzuN7H1kHyc7/b+T/a21H/yPv3P2P//+DGvv/8SZ1v50d7Kz2PY46wNsMz/wDzM/aO2Ts/6XtT1n/e89z2abdvafTZvNthfb/9lrDts/zvlztnP+/J/O+Qtre8/9v9Y+NY9sF7J9yM79S7J92T6073kf2o/tr8g+fb61XT9zgbUPf5bsQrKP/LO1+bt9ztvnL/qotf0v+uv9L2Y74OK/OeAStgMv+RjbpR87iO3jZF+4jOxvyQ4mu/zvyL5IdsXfkx3C9olDrvzEl5zt/uWrrO1xKNkCsn8g+8pCsk+SHUa2iGzPw61dPe1fnO311cXW/vFrZNewHXHNPx1xLduR1+7NtmTvry/5lLWjrtvH2jfIrt+X7GiyG/YjO4bt08fc+Olvsn2G7Fs3kX2W7FiypWT/fBzZzWSf+7a1ZZ+f7mz/7yx39t3lB3x3Bdv3VhzItvLA7688iG3VQcev+oKzW75wwi0HWztx9RetnbT6kJPWsM1Y86UZt7KdzPblk9d++RS2Q8lOvY3sK2Snkd1+GNnpZHeQHf4Da3f+yxnOvnrmD6197Syyu8iOmGnt7iNm3X0k2z1Hnn3P163Nvvcoa3Pu/cac+9jOYTv6nB8dPZftmLn3HzOP7Ztk5/4r2bfIziMbIzuW7HyyfzuO7AKyB75NdiHb9AvXTZ/v7DsXrbf23YvJHiT73iXWHvr+pdYe/v5lDx9v7fJHTrB2xSMnXrGB7coNJ7FtPOmqjTPYNs1YwHYy2cLNZKeQLSJ79FSyq9lOu/qx0xZbe/z0a5z94NonrJ2xhOxJsjOvs7blzOu3nGXthqdmOnt61o3Ozr7p350t/ffZS59hu/mZOWzPzln27DlsPz5n+Y/nWlvx/+ZZW0n2k3PJVrGdt+q5825hO/+W589fzXYB2ZqfWrvwVrIXyOavtfbiRbc5u/j2nzm746VLrN350qV3vsz2w5cvY3vlsrteudza3T8nu4Lsnq1kV5LdS/bqVWT3sS247zW2H7Et/NG2hfezLbp/+6J/ZbuabOx1ssVk/0a24xqyB6y9ce06Z0vW/8LadQ++ae36h8h+yfbwL29ge+uGR9660dqGX91kbePbS61tIvv1zWSb2ZZtfmfZo2zLyR77DdkKssd/a23lE2Tvkq160trvbtnibPVT/9/amqf/Y1QM2gZtg7ZB26Bt0DZoWzeDtkHboG3QNmjbFNY2koye2GeffVytGBrSdy47MKNtVy1a0qvZgdagbdA2aBu0Ddo2tbXNSkaJzZs3z2pb1N5gdkjfuexAOsxo209feb3BvjtzoS6hbdA2aBu0DdoGbctau7Tt6WeeLbdibbvo6u2dziPLx0PbZmyiRXTWnzMUbbv6+h2dzqO3jaC2LV/+Zqez5f5hadt5T/Or+ujV0DZoG7QN2jYcbfu9eqIhaa7ILW3prm12QCGhtt38AIUTHlmur9v2Xfp2p/Pc8V7bTniEXdbNZG3bj7s6nQ0rSdvee9j6V6m+cdVnbubGV2++bGK1bfaBq97pdF48bQjadpdZ4ktnDaJtJzzxOgfxbLnPCNt9G90x8/qdy+x12xF3vtvpbJ17MLQN2gZtg7ZNTW0jsodk46dtVth+teiQmnuSh64j0Vo302mb1bNXl15C2nbCBh7Z2b7+0x89+TO2/ebLJum6bfafHb1xW6fz0Hmt0bYn7zPXbUuX/YLDbbzCaNuW+8x127JldK3WeXfZDHNPcsYWEsJNV0LboG3QNmhbS7VNurTp9jptIzOaE6B7S7WN2glbF9IW0ba9b/wV9W69cb6+J/mpm4xQ3TTffN/mb0sabXuPkTq6VnvPR1auI5/t5Pn8iR89+UTWubcXH37Ke89+nmqdjbe8d7apvP5r9ufKQ5812mYlTbDa9rnlv3bHnc5rKxa8f/cFS3ZQ9YVTSNjmvcCNKxd+cI+F11Hjjg0HfHLWaZuNq2HbqkWsbf62pGjbDx51DsS21XfcwAF/c+OxrG27HLeZhLDzxuZD9j33zMeMh2H7rdef+birG16aScJ28cvuiHjjsa+QsH3vMXpJOr/4LZfMK2df+oqr/uKJw4N7klbb3l12UnBPcs4W9t10pdE2uS0p2rZgK3db3tzy9VO38NzffJdLZuu8hd7hl09/w2jbuUbShFjbFr/mOoi3njn2yGsveIarO+69jbTtuPt+Z9qfPe4b1+27hF8Yx1s//ja0DdoGbYO2DaZtZEZ2HFFXkbZRox1sK9GhRrTtew9TZ+eBM4Pv20JtO/F4upDZvm7fXY227bqCJI2u1fb7yvpXScxmmfKwSxfzPbjnT6QrtljbSNJOm2Fuxq2bc/r75vyUa5tWB9dtc1m9OpvW0BXbKbZx3pmfX/FOp/POkqPO2n8lVah37QeP2kA7NIncAaZl26qFwXXbtNmnkZjt2HiQ0baDbjE+tyyurtsu+BnHeewO0rZD1vyGqg/Pd5Xta66rvW77DsvY9rU30HWbFbnta2902tZ5edbn5h+29rdcffJeum47+0mubrzMadtsc0jKNyf6vu2kJ80dS3/d9sXLzyGpe3PLEVbbrjK69eaWI/m6beWKp7y2kaQduuCou97l6lMP0HXbPKNnmxcu2nOR+e+Hp9flr9vOeoaG77h3LV+0XcMiR3W6bjPy9rs1sx5kcSdhO+q6fWc/+wbJ93138HXbdUb9f3QHtA3aBm2DtkmXNt0+GtoW3JPc9cQ/nPkcXZNdfaj5IcmHTzK3Ip87gRufO3E3vnpbdzaXnQ2r+IZkpG0bb/mTj1XaJhWtbSfbylxzT9Lp3K3vN5dr6+fxBdyDm17ky7V5L1LLg/NmWW2z0EVb9TvJ88jhneuPqbTNsm31YnNP8g6z1p+d8aklN7JW/OyMfZ22WbavuT7VtkOtdGmeuMdftz1+mNe2129bmmqbuW67xF6ibbzCa5sTNlKvJ79mvm/j30leSXr27vKTWdvm2ku6BeqepLtue+oor2077lqttc1etG1elL8n+c17zWWZ5pn15p7kbWvessfb5pt7ku4CTvPsw9A2aBu0DdomXdp0e4O2Gc0J0L29aVsEtUddom3Ze5Kxtu26nG8/Lr3Yapv5yu3tdRve5m/adrt08fbOqxuepwuHV5eaL9uGpW27r13PV2mPPMhXb2upfHATydWLp9ov24zOOTbf5rRtr9seMtdq7vu285XPo3f8xd5zD1ltLtce4wu4bWuWuO/b5r9kPAyP35XVNnvdVn3f1ou2ffV2VqPX77iZte2Kn7MH8/M5+m8ADr6fXoMdd64YP21z123B923mio0JtM1dt+H7NmgbtA3aZg5JMqRLm26v0zYjOEz2kKw3bbMVOSR0nRBty/6WJLonKbcl97O3JflupGHDyj/azX7TRry9+DDzBwCN2vbZZfy92mvLruh6T/JPdz/L1js7Htl/j4Xm6zeq85dt8lsS+/sRpW32tuQmvi0pvyX51ib2Mdq2y7GmzvzmxuPC35Ict5nlKtE2/2XbyzN70bbDb//t67cvNdqmfkuir9iSv29jSTO3JWvvSdZr29F3m8a7b9Xadsw9VtJu9V+2vXZBqG3mnuRrF1qFs/ck3Zdt2+ZD26Bt0Lapq21OBkKkl2zo2iaHaUuRthHUTti6xjZKr9I2kTfPI8tTbbN/CXCC1TbzKxJi3Szz922zjIbxL0q6a9v7Pn7FNW6Dd2R/S2J/J2m+ciPNW/uBPWZaneNflHwyuCfZ2bHxQLknudfsA/lW5Iunh/ckSe0O9r+TPMNeqjz2Q/s7SX1PsvPGo18yf9/25Vul0fyWxHzlJlTftzVqG9c8Gy83NyRF2wQSM69t7i8Bmn5LUqttex6+ZtUvuS4E2va1a+xXbsKOe9evNncjH7uWfycZ/JZk9o/f4AMHvm+DtkHboG3OI0c0JM3V1Uq1rZBQ2wqeS+L+EsB85Takv90el+eSHGP/EiD/NwC77H2N+aat8/CF7XsuyQwWsE1XDfo3ANbsDUl7TxJ/AwBtg7ZB2/rQm74lqu+BdDjh2ub+EmBF27VtL/uXALfntc3ek9yx+ZCmv2+bJG07eIX9SwBoG7QN2gZtGw9tIxUpx2qbOyhDa5trKqOLtvVqdqC1Am3D8yTHWdvwPEloG7QN2jZu2kb6MQH0ncsOzGjbgAZtg7ZB26Bt0LYprG0jYdA2aBu0DdoGbYO2TWltg8FgMBhsalilbe7LOAAAAGBksaIWaJv7Mg4AAAAYQUjL8trmfto/BZk+1ulsXTDNHbURmmHdBNs/eQAAGDJWm8qtm7ZN00+zGJvOTby3euwea1psZ/etVw+XQXWQc3/beE9TGg96WmZK3wsHAIApiBWqQqyE1WtbIBBCte2y8HF1+tjWrVudo6k3bctq1zbC2bjv973F9zSl8UDNvJ9F9L1wAACYgohQlVgXbXPKFZPu2iQeCxaMGSWx1aZtOdi1Wd2MAOnrQ9tNfiFOBFPPHDVTUoNdOMZMabrrUjFTb/Kkmp+aCpFQLVPWqBtVazam8jQ93JyfPAAATH1EqEqsi7bRnprbQ2Xb5b3W1Fg9ppkt2tX8tpxD7dqEP5o2zTfxVi5pQ2dDjWdE85SU3DAcyOVRMVVu8TeetkptdckZ68mozLmQ+ZjeU43wRJMHAICpjwhVifWtbQ6/61rlMO22Em/HmnC3ro6qsCpt6OzIekY0TymSB5UllpwK45GdT5bKkwNV1WyiNCY3jo1lRQzaBgDY6RChKrEu2kZ7aG4TdXsxb7GyO5vN2W/SPWgbHZgY/l8i2LoDZ0OdZ0TzlKKRKkvVoxJVUGNdxggVs6rXJUpjUmOHvzHMdDUtGwAApiQiVJHZrsi6aJvZYKsd2lNt0NzPu2ykHMXaZjZwU48aZetW7Y46z4jmKZVomwkfJee2uowRUUxbl0aO7Sefjek92THqhbYBAHY6RKi0ub5E3rppG8EbqRBt0L57bKxHbRMqvyrP2AJTdbu38nYtdZ4hQ9A2nYowHuSZTZeil1mt07eOTa8SZWNWU7KTUB7R5AEAYOojQiXmOjy6q0DbAAAAgMlGhMqaaw2RXmgbAACAEUCEqsSgbQAAAEYAEaoSa5u28bdRwfdi40Wviapvv3I09E7YigZksl55PrQMkL188sNdJkVLgw1lRQCAGBGqEivQtuDnFPLbB8Gev6bF/7xhuPtHjuyeMq40Zxyn+VBYek3pDegafOJfkCEzCgtI346mWY/8WwJAyxChKrFu2kYnaOZniNVpy8LH1ekT+/DGid83mjNO+j426RMYlNFcQNOsR/4tAaBliFCVWBdtc8oVo05bV+Vf2Bc/TzK4FHTCqZq0lKaelDBE3OMQdGwmxYe2j5vzicwy0udJivPYmNqp0hDhC9KUKAM5ZuapY3Kri6GiuqbyF8T4Us2PsI2pVw1qFkw0P0e/iVQ0yyAxTbDo3WzMrmC/YCZuZmqC7GJjqEYzLx1Z9VnKVgQAqMEKUzlN2kZnXe6Mk9NWNgLz12PmVHW18LQOsad0lmrbMNR5ygQqVJMLYvYS+pd6uIsO1Zg0kb69anuqmo/hqlGiqk31eaJEGWrmmcvDjdlgmcS58ZzCrYnagkhVjnp09qo+lEQqCDNYTONpx3NVu+azBwQudCCBkhlJo+oUorbceGqrWxEAIIYkqVf60DaHP12tmJl2W9GndYIbnwkd7CtEjSc1RwmqKVmo229L1MXj/aElSqQCSg+HFBdxyCSyvX0/+7FmnpIxiOHSxxGVs8M5CnHMmO7zJGR8OiOhv0ThgAFjKs84W2/L5Fq1zDQmN9a873oAQUcBpit0AQA0YrWp3Jq0jU7i3Hnrzkk+x+UkD07WLtpmMcOjkzu/9SSe6abAe0c0kEa5yZgef2iJEqmA0hOEFIdMItvY97Mfa+YpGTMxuKH3F0RS5Og+T8Z5+Tkyw0kULmDAmCpYnC2fPcZ50T96mWlMnmfN+64HEOyZOFFj97kAACxWqArpck/SnJLxrqlPW3/KRmLWqG3V/6ImPbvDrafWs5qAwDMJ2/zO5EbqjSpOpANKD1ecj6k6hzRRNZz7VFQmSpSBPPxgdlSHNg0HdWEHe0GiMSHd52nhTPKzIcNQEnFYFWOwmCpYnK3vZUpMnpp/l30jt8VRZYCFXQpXxHNM4wGwsyNCVWLdtI2wZ5pDTm85TU13T8+TDAJGZ3C49dR78k7hkPZ4onRsZuF2EH9oCRPpFakeiWh+6yGjpZnxKVyv7VORo0QZyMMHCebp16iePGmjO4Ko3pmQ9sBbp8ghObphMoWeQ0hEA9wr6BgkpgoWZ8tnz8COwYzMuonoQaDOh9vCl6X/FaWxAADD1zbQOqYvCDZNMHwSZQIATDIiVCUGbRtBpk2bHlyDgmHirs/w+gLQMkSoSgzaNnrglhUAYCfEClM50LY2w1cRo3AJUTLPhvt847fMhqQAgFGCJKlXGrSNtga5QpDv0Hkn8nTbOIJv0Pu42JjEvUkvs+vU+56nyeKj88HEL3fQ96iQSXkrJyUpAGD40PYkWtVrWa5tbr/gpoatg7fqATfLSdybVGqz+zcupO95Tp/YR3EmDOE9KmRS3spJ/PwAAIZJJFclpVR61rbGraNO+NQYCenkw+F3enfo8TNRHbaJxuYeyWh7jB/hmmgw1XwI75dDzVPNVM/TdtfNM/XMwX8vkXkUZzpxxkwpfe5l/8vkgfm5qVX50bns+XlmCYY77x6GK2f+rwGb38S00+deH0M8gweBAgBGGDqhRat6LbPaFmA2D9lQeAup3zl4bG7Dyu5H1Jjd3JSzRef0dbOV0XDOSMd0aD1ymdjHzYvasjkdYWp/VP39NEeS8aGzocYzwvwtIDnkH8Up07ZwIJdHxVS5e12miqLhMDpklTLNbojmmUUN1/GZ0uHOh6syDx+nipH1BACMNpFclZRSKb9uczRuG2qLCaD2dD/yQeMBytkSNLjx9I9poz4erw4DfGMYsJbQszrSYWW62bBZzwgrZsbTVoIw6gViVJaqR2dhjEd2Pik8NjOzYLRkyma3xMc5dFD2V/MrGB7MVELlppT3BACMNrS5iVb1WvZ2T5KPq96Uuv7cfuQxY/RulOxNQYMbT/+YNjdbdZjmdz4FBJl8LBUzmHzgbKjzjHBi5sf3qW1JdGqsy6jhKBlHlUdlyma3xMc5dNDIv2B4sEoJlZtS3hMAMNpEclVSSqU3bbO1qj+Fu9OtRYabbju+/EmJPAvf4uv0r2lyI/2hSRCOjqI3olJXgaJGCaXaHXWeEZGY9aFtJnyUnNvKlsmDk9H+hQ3r+eyG+DgHZ6qZccFwdnE+phpNySzD9uc9AQCjDZ3holW9lj1rW7CRZDH9HjfK7kM8TEIGbkE470z49qSJRpvQbrb+0PY4T0L7FKDSqP2xiji2wFRdtHSedZ4hQ9C2wZaZG02k66nNTsTHOXhKYz5q6FwyvJqSfrynb9OPeawWFD4IFAAwwkRyVVJKJdU2ANpHmRQCAKYSqXSVl9A20FrkYozApRgAOx2RXJWUUoG2AQAAaCOpdJWXNdrG/8U8tf9LWX2TVOG/yhn3y4RsdgvPoSz7eHhaGqbXB1F2PrT0NfmG4ZFna5mweZa/dOWUT364y6RoabChrAi0l0iuSkqppNpWfVwME/wlh/oEj6++Zk8VR1PfcBj/DAMxEdMbMMewp0jx6KNOn7muUVv+3nVnFBaQvh1Nsx75twTUQAokWtVr2XDdNilf3cundLw/rpN7qrT8ZJyI6Q2YY/JewZa/d90ZzQU0zXrk3xJQQyRXJaVUCrXNfHiSpxqyl0e8daP3zA/P4T6l9I9On8TkhiBONa7LPH2jG+Cq4fWp6mNqhtMIM5Kwg5WfjpbDZCh60GJpImrLPGCzNmbu7RDn4JGMaYia4Sn57A4TRY0VZ3l0ZPnwRk8NOWZeJR2MW10MFdU1kV+IZEtnQL5U8yNsY+pVg5oFE83P0W8iFc0ySEwTLPowNGZXsF8wEzczNUF2sTFUo5mXjqz6LGUrAq2H3ivRql7Lcm3zn1yu2i77cYnJPVMxOzwLdW8dG4tvDGViBjOkgyp6mqhmSsbP/6uJ2mpXJDORiTDxa5fDDLc52D3IFg4vTcQHfMT+FI4OVdBcTNvNVdtT1XwMV/VxJEh2eANRdoeKTKhAXFU9RcMteU8Ne7CLy0GHJogKVsWgxmywTObceE7h1kRtQaQqRz06e1UfSiIVhBkspvG047mqXfPZAwIXOpBAyYykUXUKUVtuPLXVrQi0l0iuSkqp9HLdFn/a3OclcGRcs8H25Yfn4LH8H+6xTxpTBaVa0hYmSoezJ4lonMegoljywwOXii4rNOjh7K9iRcNLE9GB8SN/bvOHlvqY0kNtlYs4cKvGp0iGN5F3UlHqslsKhju6z4Y8/BLYUR36YCoGT4qII6aZnaMQx4zpPk9CxqczEvpLFA4YMKbyjLP1tkyuVctMY3Jj2QlLRwGmK3QBIwK9faJVvZYDaZuFG9wHiOAPlusOP5d1w0OcJ3tVH8VsTKnTP+KaTVQ3payIMioKUTc8M9BQOdWjM0T+0WFpIjowEZ2/P7SkMZNXidoqF3EIWj254U3knVSUuuyWguGO7rMhDzOKRrOjOvTBkhjcUH28iTQztaR5XYoc3efJOC8/R2Y4icIFDBhTBYuz5bPHOC/6Ry8zjcnz7PmEraDG7nMBbSOSq5JSKgNoW/6BkMqz+ozlhucRT/ZrjMlwB33cw4YkUXa4b6xaKtQAom54PMrTZYUGlZWrKls8vDQRHfj1cJs/tKQxfaf0cMX5mKpziGfH5IY3kXdSUWqzGwqGO7rPhjzMKBrNjurQBqMKYWLkP95EJjMPy7TVzaX7PC2cKfh4DycRh1UxBoupgsXZ+l6mxOSpqTPONHJbHFUGWNilhxWB9mLlqb8y1Tb+YCjCDxYhn1iuCNXnpmqunqmYG55HedqZRKmi5zRyR/SpziRqnpLt1XPSkyBqhusRGpW4Fh5e9qDF0kR0YObs/P2hJY3Z9CqFj2SUZsanyAyvJ++kohjo2KWIHghZNpzpPhvy8EtgR38oyft93mnorVPkkBzdMJlCzyEkogHhSzdITBUszpbPnoEdgxmZdRP6kaFVIm4LX5bBVgTaSyRXJaVUaq7bRoTkMw1Gn+ItcUKYvgAfsHEGZzGoI5Wu8nJUtY3OBwbnxBRB/4d2m97UadOmB1fAYJjgLAbNRHJVUkpltK/bABhX0ttfAIAJQ4tWr+VEahv/Vxr+E20ywCsv4AYYACNDJFclpVRibeObBP4/U1u0IwbfDffxn9GTuKPxqyh0m3rf8zRZJu2NC94eR+0EenpBInpKlKXvVxgAMNHQ+S1a1WuZaFv1a9zpXG/DPhDs2/0xiTuaSm125saF9D1P82ZN+hvHC+z6Rqk19r3cokRZJvGTAADojUiuSkqppNrGP8HmbYN2SKpW+4D6T2a3q9A2QTUqo8bS58up5qA9hL1yu5HapNROl8b08xN8KtVhm2hs7mGDtsf4Ea6JBlPNh/B+OdQ81Uz1PG133TxTzxz23TJj9BuXTpwxU8o8EHKQZRpkeYJale8w2U3O0D0/1zxxoiqm6qpv9GuXGCq3fkEAAJMJnY+iVb2WGW2bRqf/2HTeIanmT/TcPkFthKlSm9smTKN15arfPJhqgzGYNK7eQBzFQ+3JjGpjKmcLD9HDuc7/8nDOSMd0aD1ymdgnWXuWMLU/yj2j0h4oZ0ONZ4R7u6g/euMMMm0LB3J5VEyVu49lGqI8fKhDVikteo657PXELtnRdY0+cTWlwhcZADChRHJVUkolp23V+S9bpGlRmGa1d1SoxngDymxITJedhL1yLvlENTGVsyVocOPpH9NGfTxeHQb4xjBgLaFndaTDynSzYbOeEfadMp62EoSJXnmVperRWRjjkZ1PPfV5VF/VyilVVdMla5RIZwpW1NhoWv2BnoCODACYNOhsFK3qtcxqm2wAgbYlZzw1pruA2jviDSg+tnBr015m+jO7TUOiNKZytgQNbjz9Y9rcutRhmt/5FBBk8rFUzGDygbOhzjPCvVN+fJ/alkSnxrqMOerzqD7dKvVs9nril0LFDFbU2BhMyYeLIwMAJo1IrkpKqeS1zVNtkXz2B10EtaW7QHZDsYTHtc/rS+DcSfIqkem248ufAchz0fPkOv1rmtxIf2gShKOj6I2o1FWgqFFCqXZHnWdEJGZ9aJsJHyXntsJlGqI8fKgT2XqU3dVz2euJElUxOYx/leoa/UiuioPPrfoBAJMLnbeiVb2WpdpmtxPBNNM2kO4CapuIN6DwOIjXbTdJk9tdiOn3GYBJE43W6/KHtsd5EvVrz6LSyCujI4ZPyEznWecZMgRtG2yZhigPka5HN+lXJJO9niSRD6qfQJht5BWlT/Kscje9yACACSWSq5JSKrG2uZAAAADApJJKV3kJbQMAANBGIrkqKaUCbQMAANBGUukqLydS2/jrjy7fo/TMeMTM0msi8m9wb+idsBUNyGS98nxoGSB7+eTHw7MEipYGG8raARgZIrkqKaUSaxufPP579OGerJNKdqcYV5ozjtN8KCy9edOqH8HUMvEvyJAZ+QUEpG9c0/qm1toBqEWLVq9lom1teCzh8Jn43aA546TvTiO/PU71/b1pfVN97QA4IrkqKaWSalvbnifJZDyLY/r5CeIeh6DjzPMk84lyyyTEmX9nLs1pCDPc9pr51SfKQI6ZeeqY3OpiqKiuqfwFMb5U8yNsY+pVg5oFE83P0W8iFc3Sf0xq6+V9D6j3TGG/YM5uDWop7GJjqEaTU0dWfZZ0BuRCNTOyagRgxKAPr2hVr2VG21r2PEmiwbMwJrX76XtUkwvC//C/1MNddKjGpInSZVY1H8NVo0RVm+rzRIky1Mwzl4cbs8EyiXPjOYVbE7UFkaoc9ejsVX0oiVQQZpCYfMBH7E9B6FBFDjw13KFnUO9ZEbhIntzcpVF1ClFbbjy11a0dgJEhkquSUio5bbMnhq24k8aeKhWmOTrFLLkTzREfu6AFJ169Z2HMdKrOUaBuiuXXxeP9oSVKpAJKD4cUF3HIJLK9Y2Ph1B3xilJq5ikZgxgufRxROTucoxDHjOk+T0LGpzMS+ksUDhgoJh14f27zh5Z8dm6Nm/OeEdWcXLagTcXgxppPiB5A0FGAX4tyAWA0oc+zaFWvZVbb5MwItC05y6gxPfPUSRWf7A3bRNGJmPMsjJme6pkV0Sjj5NblDy1Rotwyg5DikElkG/mbzbQnTpShZp6SMRODG3p/QSRFju7zZJyXnyMznEThAgaK6Sfn/PVcs9m5KRM545nBeekkailVDF5RzSdEDyDYM3FyawFgpInkqqSUSl7bPME9yXgzzJ8/6ryLT/bwuPx5kk2ehTHVrDzUFLX5/caN9IeWaDEqoPRwxfmYqnNIE1XDuU9FZaJEGcjDD2ZHdWjTcFAXdrAXJBoT0n2eFs4kv08yDCURh1UxBolZ83pa4ux8nGQyxJ518MyDF0SWwovwnwffyG1xVBlgYZd4RtRWMhcAWo2Vp/7KUm1zJ7XHn3bp+aPOu9y2UB0H8RrPwybP0ph8/jukPfCmSdOxXpc/tISJapYpEc1vE2S0NDM+heu1fSpylCgDefggwTz9GtXjE210RxDVOxPSHnjrFDkkRzdMptBzCIlogHsFHf3HpAPt7w8tUXazGEW9Zz3sGMzdB42ee+l8uC18Aas+h3VxmC63FgBGmkiuSkqpxNrmQoIpxfQFwVYIJpNEmQAAeVLpKi+hbTsB06ZND65FwOTgrs/wTgBQRiRXJaVUoG1Tn/SmFgAAtB8tWr2WO4O27VQ3gfjaABcGAIApQCRXJaVUUm1zN04cU+G/9sdJ2yZXMncqwQYA7IyQBIlW9Vpmtc0LWvKDrtEE2gYAAKNHJFclpVQatY3r9sA28iFTXcypHx9rQfSIY7Yxi/b0m7fZx4OHNyaqa1xqtnrVZ1aQmSk39RDThNH4kKqjeZnhQr1zZriZRPjgynz2aDWOzHDXaKs8StzzIQAAYFKgrUi0qteyUdt4E7V1u52aOm2Aqj/ZI9XwimxjnuqvjaPs1b5uGuNN2U8kA40xvf5fizrysXqISYThCB6uQzYN53VE/fnh7KiqMr0ku4NHilPNcDVWuedbAQBgkojkqqSUSlbbBNk91b5XoT2Zagslwq0x21iDDlu2F1OtKTI7Jo/m01kYmXxZTKLydQQNzfLA2ePe/HDVGoRMsjuivNnhdY0B2egAADBh0EYkWtVr2XxPUqhrzLRaeM9M9sdsY4iK2WUvljr907wPc8zk0Xw1ky+NSahZWYIGPdGUXPb8cNUahEyyO6K82eF1jXogAABMMpFclZRSGUTbzHYYbbDZBxg2PRAygrp9RI5uXVVjuHVzR/iswhx+eBWQ4aNo8oaymIQPK/Dc9Dxz0T2Z7PnhKkuw9iS7I3CqGS6NPAt5TfggGzKFQ5Up4Xh4AgB2DmhLEK3qtRxI2/yG5OCNMWjwQ7KNNVS+Ywv8bid7se1WEfiw635cDbfBs9OqohTFZFgMHD5kpqmOXPZ8RD8ZHlFFrUkVOtUM92P1AwyJ3JSyWEedto7x8AQA7BxEclVSSiXVtlFC7dxDYzxiAgAA6JVUusrLUdU2d+UxVBUaj5gAAAD6I5KrklIqo33dBgAAYKqSSld5CW0DAADQRiK5KimlAm0DAADQRlLpKi+hbQAAANpIJFclpVSgbQAAANpIKl3lJbQNAABAG4nkqqSUCrQNAABAG0mlq7yEtgEAAGgjkVyVlFKBtgEAAGgjqXSVl9A2AAAAbSSSq5JSKtA2AAAAbSSVrvIS2gYAAKCNRHJVUkoF2gYAAKCNpNJVXkLbAAAAtJFIrkpKqUDbAAAAtJFUuspLaBsAAIA2EslVSSkVaBsAAIA2kkpXeQltAwAA0EYiuSoppQJtAwAA0EZS6SovoW0AAADaSCRXJaVUoG0AAADaSCpd5SW0DQAAQBuJ5KqklAq0DQAAQBtJpau8hLYBAABoI5FclZRSgbYBAABoI6l0lZfQNgAAAG0kkquSUirQNgAAAG0kla7yEtoGAACgjURyVVJKBdoGAACgjaTSVV5C2wAAALSRSK5KSqlA2wAAALSRVLrKS2gbAACANhLJVUkpFWgbAACANpJKV3kJbQMAANBGIrkqKaUCbQMAANBGUukqL6FtAAAA2kgkVyWlVKBtAAAA2kgqXeUltA0AAEAbieSqpJQKtA0AAEAbSaWrvIS2AQAAaCORXJWUUoG2AQAAaCOpdJWX0DYAAABtJJKrklIq0DYAAABtJJWu8hLaBgAAoI1EclVSSgXaBgAAoI2k0lVeQtsAAAC0kUiuSkqpQNsAAAC0kVS6yktoGwAAgDYSyVVJKRVoGwAAgDaSSld5CW0DAADQRiK5KimlAm0DAADQRlLpKi+hbQAAANpIJFclpVSgbQAAANpIKl3lJbQNAABAG4nkqqSUCrQNAABAG0mlq7yEtgEAAGgjkVyVlFKBtgEAAGgjVpvKjSSMSmgbAACA9mKFqhArYdA2AAAArUaEqsSgbQAAAEYAEaoSg7YBAAAYAUSoSgzaBgAAYAQQoSoxaBsAAIARQISqxKBtAAAARgARKmuuNUR6oW0AAABGABEqMdfh0V3QNgAAACOACJU21xcKGxm0DQAAwAggQhWZ7YoM2gYAAGAEEKEqMWgbAACAEUCEqsSgbQAAAEYAEaoSg7YBAAAYAUSoSgzaBgAAYASwwlQOtA0AAEDbIUnqlby22QoMBoPBYCNqsbZRBQAAABh1XvjJlv8Ehtz+YiFhypYAAAAASUVORK5CYII=" alt="" /></div>
<div> </div>
<div>Dikkat edileceği üzere <span style="font-weight: bold;">Extensions </span>klasörü içerisinde yer alan ne kadar <span style="font-weight: bold;">dll </span>varsa içlerinde yer alan <span style="font-weight: bold;">IContractModule </span>uyarlamaları çalışma zamanına bağlanmış ve kullanılmıştır.</div>
<div> </div>
<blockquote>Bu noktada akla şöyle bir soru gelebilir. Extensions klasöründe MEF ile Import edilemeyecek assembly' lar olursa ne olur? Hiç bir şey olmaz. Sadece MEX' in Import edebileceği sözleşmeleri(Contract) uygulayabilen tipler değerlendirilir ve çalışma zamanı için bir Exception fırlatılması söz konusu olmaz. Diğer yandan Export edilen Contract ilgili klasördeki her bir tip için aranmakta mıdır ben de bilemiyorum. Bunu derinlemesine araştırmak gerekiyor. Nitekim MEF'in tüm dll' leri taraması ve Export edilen tipleri taraması ciddi bir performans kaybına neden olabilir. O halde taramamasının bir yolu var mıdır? Varsa nasıldır? ;)</blockquote>
<div><span style="line-height: 1.42857143;">Bir uygulamayı </span><span style="line-height: 1.42857143; font-weight: bold;">MEF </span><span style="line-height: 1.42857143;">alt yapısını kullanarak modüler hale getirmek son derece kolaydır. İlerleyen zamanlarda </span><span style="line-height: 1.42857143; font-weight: bold;">MEF</span><span style="line-height: 1.42857143;">' i daha geniş açıdan inceleyebiliriz. </span><a style="line-height: 1.42857143; background-color: #ffffff;" href="http://www.minepla.net/tag/mef/" target="_blank">Ancak o zamana adar sevgili Arda Çetinkaya hocamızın ilgili yazılarını takip etmenizi önerebilirim.</a><span style="line-height: 1.42857143;"> Ben kendime not düşmek amacıyla </span><span style="line-height: 1.42857143; font-weight: bold;">Hello World</span><span style="line-height: 1.42857143;"> demek istedim. Umarım sizler için de yararlı olmuştur. Böylece geldik bir makalemizin daha sonuna. Tekrardan görüşünceye dek hepinize mutlu günler dilerim.</span></div>
</div>
</div>
<div> </div>
<a href="https://buraksenyurt.com/file.axd?file=%2f2015%2f01%2fMEFHelloWorldV2.zip">MEFHelloWorldV2.zip (1MB)</a></div>
</div>
<div> </div>2015-01-13T15:00:00+00:00mef,managed extensibility framework,c#,.net framework,IoC,Dependency Injection,modul based development,windows api,.net runtimebsenyurtGünümüzde uygulamaların genişletilebilir olması önemli bir konu. Modüler olarak da nitelendirebileceğimiz bu felsefe ile bir uygulamanın kullanıcıları tarafından kolayca genişletilebilmesi amaçlanır. Hatta akıllı uygulamaların kendilerini bu şekilde genişletmesi de mümkündür. Modülerliği kazandırmak için kullanabileceğimiz farklı yöntemler vardır. Bunlardan belki de en basiti Interface tiplerini ve Reflection' ı kullanarak uygulamanın standart fonksiyonelliklerini genişletilebilir şekilde dışarıya açmaktır. Basittir ancak geliştiricinin iyi tasarlamasını gerekitir ve kod maliyeti yükselebilir.https://buraksenyurt.com/pingback.axdhttps://buraksenyurt.com/post.aspx?id=a99463e1-2e22-4722-b63a-6bee31bba1171https://buraksenyurt.com/trackback.axd?id=a99463e1-2e22-4722-b63a-6bee31bba117https://buraksenyurt.com/post/managed-extensibility-framework-hello-world#commenthttps://buraksenyurt.com/syndication.axd?post=a99463e1-2e22-4722-b63a-6bee31bba117https://buraksenyurt.com/post/Nedir-Bu-MSBuildNedir Bu MSBuild?2013-08-01T07:47:00+00:00bsenyurt<p><span style="color: #ff0000;"><a href="https://buraksenyurt.com/pics/msbuild_9.jpg"><img style="background-image: none; float: right; padding-top: 0px; padding-left: 0px; margin: 4px 0px; display: inline; padding-right: 0px; border-width: 0px;" title="msbuild_9" src="/pics/msbuild_9_thumb.jpg" alt="msbuild_9" width="204" height="204" align="right" border="0" /></a>[Orjinal Yazım Tarihi – 25/02/2013]</span></p>
<p>Merhaba Arkadaşlar,</p>
<p>Yıllar öncesinde bir kaç seneliğine de olsa saygın bir eğitim kurumunda eğitmen olarak görev alma şansını yakalamıştım. Özellikle <strong>C#</strong>’ ın öğretilmeye çalışıldığı başlangıç niteliğindeki seanslarda dilin temel özelliklerini anlatırken, tüm dış çevre ile olan bağlantıyı kesip, sadece anahtar kelime(keyword), ifade ve materyale odaklanmaya çalışırdık. Bu sebepten genellikle ilk örneklerimiz ve <strong>Hello World </strong>uygulamamız, <strong>Notepad </strong>gibi bir program ve komut satırındaki<strong> csc<em>(C# Compiler)</em></strong> ile inşa edilirdi.</p>
<p>O zamanlar bu bizim için yeterli görünüyordu ama tabi <strong>.Net Framework 2.0</strong> ile birlikte hayatımıza yeni bir inşa süreci de girdi. Aslında bu günkü konumuzda da, <strong>Notepad<em>(tam olarak Notepad 2)</em></strong> ve komut satırı aracını kullanarak ilerlemeye çalışıyor olacağız. Amacımız <strong>MSBuild</strong> platformunu çok kısaca tanımaya ve anlamaya çalışmak.</p>
<p><strong>Microsoft Build Engine</strong> aslında başlı başına bir platformdur. Kısaca <strong>MSBuild</strong> olarak anılmaktadır ve bir uygulamanın inşa edilmesi noktasında devreye giren <strong>XML<em>(eXtensible Markup Language)</em></strong> tabanlı bir <strong>Script</strong> bütününü esas alır. Kısacası uygulamanın inşa edilmesi sırasındaki aşamalar <strong>XML</strong> tabanlı bir akış olarak ifade edilebilmektedir. <strong>MSBuild</strong> platformunun en önemli özelliği ise, inşa sürecinde <strong>Visual Studio</strong> gibi bir araca ihtiyaç duymuyor oluşudur.</p>
<p>Evet <strong>Visual Studio</strong>’ nun kendisi, <strong>Build </strong>işlemlerinde bu platformu kullanmaktadır doğru ama, tam tersi durum geçerli değildir. Yani istersek <strong>MSBuild</strong> aracını kullanarak, bir uygulamanın veya uygulama ortamının üretilmesi sırasındaki aşamaları, basit bir <strong>Notepad</strong> aracı ile tasarlayabilir ve <strong>MSBuild.exe</strong>’ den yararlanarak hayata geçirebiliriz<em>(Ancak bu gün şanslısınız çünkü <strong>Notepad2 </strong>isimli ürünü kullanacağız. <a href="http://sourceforge.net/projects/notepad2/">Sourceforge adresinden indirebilirsiniz</a> <img class="wlEmoticon wlEmoticon-smile" style="border-style: none;" src="/pics/wlEmoticon-smile_91.png" alt="Smile" /> )</em></p>
<p>Bu fikir tabi ki otomatize edilmiş <strong>Build</strong> işlemlerinin de icra edilebileceği anlamına gelmektedir. Ki <strong>Team Foundation Server</strong> ürünü de <strong>MSBuild</strong>’ un etkin bir şekilde kullanılmasına olanak tanımaktadır. Özellikle <strong>Team Foundation Build </strong>olarak anılan platform içerisinde <strong>Build Server</strong>’ un kurulduğu ortam <strong>MSBuild Script</strong>’ lerini kullanarak üretim işlemlerini gerçekleştirmektedir. Söz gelimizi <strong>TFS </strong>tarafında eğer <strong>Continous Integration </strong>gibi bir strateji tercih edilmişse, kodlamacıların <strong>Check-In</strong> işlemleri sonrası <strong>Team Foundation Build</strong> devreye girecek ve <strong>MSBuild script</strong>’ leri otomatik olarak çalıştırılarak inşa işlemleri icra edilecektir. <em>(<strong>Team Foundation Build</strong> ayrıca incelenmesi gereken bir konu olduğundan bu yazımızda detaylandırılmamıştır)</em> </p>
<p><strong>Visual Studio</strong> ortamında geliştirdiğimiz projeleri göz önüne aldığımızda, oluşturulan proje dosyaları içerisinde, <strong>MSBuild</strong>’ un kullanacağı <strong>ayarlar<em>(Settings) </em></strong>ve bazı koşul bağlı işlevsellikler konuşlandırılmaktadır. Tabi geliştirici olarak bu kısımlar ile pek fazla uğraşmayız ve nihayetinde <strong>Visual Studio</strong> bizim için bu akışları otomatik olarak inşa eder. Ancak <strong>Release Manager</strong> gibi pozisyonlar özellikle bu proje dosya içeriklerini değerlendirerek genişletmeler yapabilir ve <strong>MSBuild</strong> sürecini farklılaştırabilirler.</p>
<blockquote>
<p>Visual Studio ile geliştirilen proje dosyaları C# tarafı için csproj, Visual Basic tarafı için vbproj, Managed C++ tarafı içinse vcxproj uzantılı olanlardır.</p>
</blockquote>
<h1>Hangi Durumlarda MSBuild</h1>
<p>Peki <strong>MSBuild</strong> ağırlık olarak hangi hallerde ele alınır.</p>
<ul>
<li>En bilinen sebep elimizde <strong>Visual Studio</strong> olmayan bir ortamda inşa etme işlemlerinde değerlendirilebiliyor olmasıdır.</li>
<li><strong>Compiler</strong> devreye girmeden önce bazı dosyaların <strong>Process</strong> edilmesi gereken durumlarda ele alınabilir.<em>(Pre-Processing Steps)</em> </li>
<li>Benzer şekilde <strong>Process</strong> sonrası yapılması istenen işlemler içinde kullanılabilir<em>(Post-Processing Steps)</em></li>
<li><strong>Build</strong> işlemi sonucu çıktıların farklı bir klasöre taşınması sağlanabilir. <em>(Ki bu klasör pek çok projenin ortaktaşa kullandığı bir assembly için paylaşımdaki bir makine bile olabilir)</em></li>
<li>Çıktıların sıkıştırılması istendiği bir durumda ele alınabilir.</li>
<li>İnşa işleminin birden fazla <strong>Process’</strong> e bölünerek daha hızlı tamamlanması istendiği durumlarda değerlendirilebilir. <em>(Özellikle Enterprise çözümlerde, n sayıda Branch’ in ve dolayısıyla çıktının söz konusu olabileceği senaryolarda, uzun sürebilecek Build işlemleri için kritik bir özelliktir)</em></li>
<li><strong>MSBuild 64bitlik </strong>bir sistem için inşa işlemini icra edebilir.</li>
<li><strong>Build</strong> işleminin herhangibir noktasında harici bir aracın kullanılması istendiği hallerde göz önüne alınabilir.</li>
</ul>
<p>ve benzeri pek çok durumda <strong>MSBuild</strong>’ u açık bir şekilde özelleştirerek kullanabiliriz.</p>
<h1>Proje Dosyasının İçine Bakalım</h1>
<p>Hızlı bir şekilde uygulama geliştirme işine giren pek çok yazılımcı çoğunlukla <strong>MSBuild </strong>gibi programların ürettiği çıktıları göz ardı etmektedir. Nasıl olsa binlerce dolar verilerek satın alınan <strong>Visual Studio </strong>bizim yerimize pek güzel bu işi halletmektedir. Ancak gerçek hayatta öyle vakalar ve senaryolara vuku bulmaktadır ki, bunların üstesinden gelebilmek için özelleştirmelere gidilmesi şart olmaktadır. Bu özelleştirme konsepti <strong>MSBuild </strong>tarafı için de geçerlidir. Bu sebepten proje dosyalarının içeriğinin az da olsa bilinmesi en azından şema yapısının anlaşılması yararlıdır. Tipik olarak bir <strong>Console </strong>uygulaması dahi açsak, üretilen proje dosyası içerisinde<em>(ki örneğimiz <strong>csproj </strong>uzantılı olandır)</em> aşağıdakine benzer bir içerik oluştuğu görülecektir.</p>
<pre class="brush:xml;auto-links:false;toolbar:false" contenteditable="false"><?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{21E86FBF-5A78-4175-8522-A6FC854BB637}</ProjectGuid>
<OutputType>Exe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>ConsoleApplication33</RootNamespace>
<AssemblyName>ConsoleApplication33</AssemblyName>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project></pre>
<p>Bu <strong>XML</strong> içeriğinin şema yapısına bakıldığında aşağıdaki grafikte görülen iskeletin söz konusu olduğu görülecektir.</p>
<p><a href="https://buraksenyurt.com/pics/msbuild_2.png"><img style="margin: 4px 0px; display: inline;" title="msbuild_2" src="/pics/msbuild_2_thumb.png" alt="msbuild_2" width="331" height="595" /></a></p>
<p>Aslında içerik okunduğunda, <strong>Visual Studio</strong> <strong>Proje</strong> <strong>Özelliklerinden</strong> de ayarladığımız pek çok öğenin buraya yazıldığı görülebilir. Örneğin <strong>PropertyGroup</strong> elementlerinde <strong>Debug</strong>, <strong>Debug-Any CPU</strong> ve <strong>Release-Any CPU</strong> için bazı atamalar söz konusudur.</p>
<p><strong>Debug</strong> ile alakalı <strong>PropertyGroup</strong>’ a bakıldığında uygulamanın vereceği çıktının <strong>exe</strong> olacağı,<strong> .Net</strong> <strong>Framework 4.5</strong> platformunu hedef aldığı, <strong>Assembly</strong> adının <strong>ConsoleApplication33</strong> olduğu ve buna bağlı olarak da <strong>Root</strong> <strong>Namespace’</strong> in yine <strong>ConsoleApplication33</strong> şeklinde set edildiği görülebilir. <strong>Condition</strong> niteliklerinde belirtilen kısımlar, <strong>MSBuild</strong> uygulamasına bazı kriterlere göre nasıl çıktı üretmesi gerektiğini de söylemektedir. Örneğin uygulama <strong>Release</strong> modda inşa edildiğinde, çıktının<strong> bin\Release</strong> klasörüne doğru yapılması gerektiği yine bir <strong>PropertyGroup</strong> içerisinde ifade edilmiştir.</p>
<blockquote>
<p>Condition niteliklerinde kullanılan $ notasyonu mutlaka dikkatinizi çekmiştir. Aslında burada $[PropertyName] şeklinde bir kullanım söz konusudur. Burada inanılmaz geniş bir esneklik vardır.</p>
<p>Örneğin $(registery:Hive\SomeKey\SomeSubKey@Value) gibi bir ifade ile Registery’ deki bir değeri okuyabilir ve Build içerisinde kullanabiliriz. Ya da $([System.DateTime]::Now.ToString("yyyy.MM.dd")) gibi bir kullanım ile o anki zamanı istediğimiz formatta elde edebiliriz vb…</p>
<p>[PropertyName] yerine gelecek MSBuild özelliklerinin neler olabileceğini <a href="http://msdn.microsoft.com/en-us/library/ms171458.aspx">MSDN adresinden</a> öğrenebilirsiniz.</p>
</blockquote>
<p><strong>ItemGroup</strong> elementleri içerisine bakıldığında, uygulamanın referans ettiği diğer <strong>Assembly’</strong> ların adları, <strong>Compile</strong> işlemi sırasında derlemeye tabi olacak <strong>C#</strong> dosyaları gibi bilgiler yer almaktadır. <strong>Visual Studio’</strong> nun ürettiği <strong>XML</strong> içeriğine bakıldığında, son kısımda yorum satırları içerisine dahil edilmiş <strong>Target</strong> isimli bir element daha olduğu görülmektedir. Bu elementi kullanarak <strong>MSBuild</strong> için bazı <strong>Task’</strong> lar tanımlanabilir ve inşa işlemi sırasında devreye girmeleri sağlanabilir.</p>
<p><strong>Task</strong> olarak yapılan tanımlamalar paylaşılabilir ve farklı geliştirme <strong>Build’</strong> larında da kullanılabilir. Bu yüzden bir yazılım evinin <strong>Build</strong> işlemlerinde standart olarak gerçekleştirdiği bazı yürütmeler, <strong>Task</strong> olarak tanımlanıp ilgili <strong>Build</strong> paketlerine gömülebilir. Ayrıca <strong>Task’</strong> lar <strong>Reusable</strong> özelliği taşımaktadır. <em>(<strong>Target</strong> elementleri genellikle yazıldıkları sırada çalışmaktadır. Yani belirli bir sırada icra edilmesi istenen <strong>Task’</strong> lar var ise, <strong>Target</strong> elementinin buna uygun olacak şekilde kullanılması gerekir)</em></p>
<blockquote>
<p>Schema yapısı bu kadar basit değildir. Kullanılabilecek tüm elementler için <a href="http://msdn.microsoft.com/en-us/library/5dy88c2e.aspx">MSDN üzerindeki şu adrese gitmenizi</a> öneririm.</p>
</blockquote>
<h1>Klavye Başına</h1>
<p>Yazımızın bu bölümünde basit bir örnek geliştirmeye çalışıyor olacağız. Amacımız temel seviyede <strong>MSBuild</strong> aracını kullanmak ve konsepti anlamaya çalışmak olacaktır. İlk olarak basit bir <strong>C#</strong> koduna ihtiyacımız var. Bu amaçla örneğin <strong>C:\Samples\HowToMSBuild\</strong> isimli klasör altında, aşağıdaki içeriğe sahip bir <strong>C#</strong> dosyası oluşturduğumuzu düşünelim.</p>
<p><a href="https://buraksenyurt.com/pics/msbuild_3.png"><img style="margin: 4px 0px; display: inline;" title="msbuild_3" src="/pics/msbuild_3_thumb.png" alt="msbuild_3" width="596" height="451" /></a></p>
<p>Bu adımdan sonra yine <strong>Notepad2</strong> aracını kullanarak aşağıdaki içeriğe sahip bir <strong>csproj</strong> dosyası üreterek devam edelim.</p>
<pre class="brush:xml;auto-links:false;toolbar:false" contenteditable="false"><Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Compile Include="MSBuildHowTo.cs" />
</ItemGroup>
<Target Name="Build">
<Csc Sources="@(Compile)"/>
</Target>
</Project></pre>
<p><strong>Project</strong> içerisinde bir adet <strong>ItemGroup</strong> ve <strong>Target</strong> elementi yer almaktadır. <strong>ItemGroup</strong> içerisinde yer alan <strong>Compile</strong> elementi, <strong>Include</strong> <strong>niteliğinde<em>(attribute)</em></strong>, derleme işlemine tabi olacak dosyayı belirtmektedir. <strong>Target</strong> altındaki <strong>Csc</strong> elementinin <strong>Sources</strong> niteliğinde ise <strong>Compile</strong> isimli bir komut yer almaktadır. Dolayısıyla bu <strong>Task</strong>, <strong>MSBuild</strong> aracına, <strong>Compile</strong> elementine dahil edilen dosyanın derlenmesi gerektiğini söylemektedir.</p>
<p>Bu içeriği <strong>Builder.csproj</strong> adı ile kaydettikten sonra ise sıradaki operasyon, <strong>MSBuild</strong> komut satırı aracını kullanarak inşa işlemini yürüttürmektir. Bunun için <strong>MSBuild’</strong> u aşağıdaki gibi kullanabiliriz.</p>
<p><strong>msbuild Builder.csproj /t: Build /verbosity: detailed</strong></p>
<p><a href="https://buraksenyurt.com/pics/msbuild_5.png"><img style="margin: 4px 0px; display: inline;" title="msbuild_5" src="/pics/msbuild_5_thumb.png" alt="msbuild_5" width="642" height="698" /></a></p>
<p>Görüldüğü gibi çalışma sonrasında <strong>MSBuildHowTo</strong> isimli bir <strong>exe</strong> dosyası oluşmuştur. Söz konusu <strong>exe</strong> dosyasını doğrudan çalıştırdığımızda ise, <strong>pre-precessor</strong> direktifi dışında kalan kod parçasının yürütüldüğü gözlemlenecektir.</p>
<blockquote>
<p>MSBuild özellikle kurulu olan .Net Framework versiyonuna bağlı olaraktan Microsoft.Net\Framework\vX.X.XXXXX altında yer almaktadır. Örneğin ben kendi sistemimde aşağıdaki klasörde yer alan sürümü kullandım.</p>
<p><a href="https://buraksenyurt.com/pics/msbuild_4.png"><img style="margin: 4px 0px; display: inline;" title="msbuild_4" src="/pics/msbuild_4_thumb.png" alt="msbuild_4" width="374" height="171" /></a></p>
<p>Bunu sistem’ de Path olarak belirtebiliriz ama dilerseniz doğrudan Visual Studio Command Prompt’ tan da yararlanabiliriz.</p>
</blockquote>
<h1>CSPROJ İçeriğini Genişletelim</h1>
<p>Şimdi <strong>csproj</strong> dosyasının içeriğini biraz daha genişletelim ve aşağıdaki hale getirelim.</p>
<pre class="brush:xml;auto-links:false;toolbar:false" contenteditable="false"><Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<AssemblyName>MSBuildHowTo</AssemblyName>
<OutputPath>Bin\</OutputPath>
</PropertyGroup>
<ItemGroup>
<Compile Include="MSBuildHowTo.cs" />
</ItemGroup>
<Target Name="Build">
<MakeDir Directories="$(OutputPath)" Condition="!Exists('$(OutputPath)')" />
<Csc Sources="@(Compile)" OutputAssembly="$(OutputPath)$(AssemblyName).exe" />
</Target>
</Project></pre>
<p>Bu sefer <strong>PropertyGroup</strong> içerisinde <strong>assembly</strong> adını<em><strong>(AssemblyName elementi)</strong></em> ve <strong>build</strong> işlemi sonrası ortaya çıkacak olan çıktının konuşlandırılacağı klasörü de belirttik<em><strong>(OutputPath)</strong></em>. Diğer yandan bu örneğimizde yer alan en önemli kısım <strong>Build </strong>isimli <strong>Target</strong> elementinin içeriğidir. Dikkat edilecek olursa ilk sırada <strong>MakeDir</strong> isimli element yer almaktadır. Burada <strong>$(OutputPath) </strong>ile çıktının yapılacağı klasör işaretlenirken aslında <strong>PropertyGroup>OutputPath </strong>elementinin içeriği ifade edilmektedir. Önemli olan kısım ise <strong>Condition</strong> niteliğinde yazılan değerdir. <strong>!Exists(‘$(OutputPath)’)</strong> ifadesi ile şu söylenmektedir. <strong>“OutputPath yoksa…”</strong>. Buna göre eğer <strong>Condition</strong> sağlanırsa, <strong>MakeDir</strong> <strong>OutputPath</strong>’ in oluşturulması gerektiğini belirtecektir.</p>
<p><strong>Csc</strong> elementinde ise derleme işlemi için kullanılacak olan kaynak <strong>Sources</strong> elementi ile ifade edilirken, aslında <strong>ItemGroup</strong> içerisindeki <strong>Compile</strong> elementinde yer alan <strong>Include</strong> niteliğinin değeri işaret edilmektedir. <strong>OutputAssembly</strong> niteliğine atanan değer ise, <strong>OutputhPath</strong> özelliğinin belirttiği klasörün altına <strong>AssemblyName’</strong> in işaret ettiği isimle bir <strong>exe</strong> üretilmesi gerektiğini belirtmektedir. Buna göre komut satırından yapılan <strong>MSBuild</strong> çağrısı sonucu aşağıdaki gibi olacaktır.</p>
<p><strong>msbuild Builder.csproj /t: Build /verbosity: detailed</strong></p>
<p><a href="https://buraksenyurt.com/pics/msbuild_6.png"><img style="margin: 4px 0px; display: inline;" title="msbuild_6" src="/pics/msbuild_6_thumb.png" alt="msbuild_6" width="639" height="782" /></a></p>
<p>Oldukça zevkli öyle değil mi? <img class="wlEmoticon wlEmoticon-smile" style="border-style: none;" src="/pics/wlEmoticon-smile_91.png" alt="Smile" /></p>
<h1>Target Belirtmek</h1>
<p>Öyleyse gelin olayı biraz daha genişleterek devam edelim.</p>
<pre class="brush:xml;auto-links:false;toolbar:false" contenteditable="false"><Project DefaultTargets="Build" xmlns=" http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<AssemblyName>MSBuildHowTo</AssemblyName>
<OutputPath>Bin\</OutputPath>
</PropertyGroup>
<ItemGroup>
<Compile Include="MSBuildHowTo.cs" />
</ItemGroup>
<Target Name="Build">
<MakeDir Directories="$(OutputPath)" Condition="!Exists('$(OutputPath)')" />
<Csc Sources="@(Compile)" OutputAssembly="$(OutputPath)$(AssemblyName).exe" />
</Target>
<Target Name="Clean" >
<Delete Files="$(OutputPath)$(AssemblyName).exe" />
</Target>
<Target Name="Rebuild" DependsOnTargets="Clean;Build" />
</Project></pre>
<p>Bu seferki çalışmada <strong>3 adet</strong> <strong>Target</strong> elementi söz konusudur. Ancak her birinin <strong>Name</strong> niteliğinin değerleri farklıdır. Buna göre, <strong>Build, Clean</strong> ve <strong>Rebuild</strong> isimli <strong>Target’</strong> lar olduğunu ve aslında bunların <strong>3 ayrı Task</strong>’ ı ifade ettiğini düşünebiliriz. Yani <strong>MSBuild</strong> aracını kullanırken <strong>/t: [TargetNameValue]</strong> şeklinde bir yaklaşım ile, istediğimiz <strong>Target’</strong> ın yürütülmesini sağlayabiliriz. Söz gelimi;</p>
<p><strong>msbuild Builder.csproj /t: Clean /verbosity: detailed</strong></p>
<p>şeklinde yapılan çağrı sonucunda, proje dosyasındaki <strong>Target</strong> elementlerinden <strong>Clean</strong> isimli olanı çalıştırılacaktır. Bu elementte ise <strong>Delete</strong> isimli bir alt element yer almakta olup <strong>Files</strong> niteliğinde belirtilen kritere göre, <strong>Bin</strong> klasöre altında <strong>assembly</strong> adı ile duran <strong>exe</strong> dosyasının silinmesi gerektiği ifade edilmektedir.</p>
<p><a href="https://buraksenyurt.com/pics/msbuild_7.png"><img style="margin: 4px 0px; display: inline;" title="msbuild_7" src="/pics/msbuild_7_thumb.png" alt="msbuild_7" width="638" height="547" /></a></p>
<p>Eğer <strong>Rebuild</strong> takısını kullanırsak bu durumda <strong>Target->Name</strong> niteliği <strong>Rebuild</strong> olan bölüm devreye girecektir. Bu vakada dikkat edilmesi gereken ise <strong>DependsOnTargets</strong> niteliği içerisinde yazılan <strong>Clean;Build</strong> ifadesidir. Yani şunu ifade etmiş oluruz;</p>
<blockquote>
<p><strong>Ey MSBuild!…Önce Clean isimli Target, sonrasında ise Build isimli Target içeriğini icra et</strong></p>
</blockquote>
<p>ki bu durumda <strong>Bin</strong> klasörü içeriği silinecek ve tekrardan bir derleme işlemi yapılarak, orada ilgili <strong>exe</strong> çıktısının üretilmesi sağlanacaktır.</p>
<p><strong>msbuild Builder.csproj /t: Rebuild /verbosity: detailed</strong></p>
<p><a href="https://buraksenyurt.com/pics/msbuild_8.png"><img style="margin: 4px 0px; display: inline;" title="msbuild_8" src="/pics/msbuild_8_thumb.png" alt="msbuild_8" width="638" height="785" /></a></p>
<p>Örnekler daha da çoğaltılabilir. Yapılabilecek pek çok şey var <img class="wlEmoticon wlEmoticon-winkingsmile" style="border-style: none;" src="/pics/wlEmoticon-winkingsmile_189.png" alt="Winking smile" /> Bunun için mutlaka <strong>MSDN</strong> orjinli bir kaynağa başvurmanızı veya yazımızın sonunda belirttiğimiz tarzdaki bir kitabı tedarik etmenizi öneririm. Ancak temel mantığı ifade edebildiğimizi varsayıyorum. Bundan sonrasında <strong>Condition’</strong> lara ve kullanılabilecek <strong>element/attribute</strong> tiplerine bakılması yeterli olur düşüncesindeyim.</p>
<h1>.Net Framework 4.5 ile Gelen Yenilikler</h1>
<p><strong>MSBuild</strong> ürününe <strong>Framework 4.5</strong> sürümü ile birlikte bazı geliştirmeler ve yeni özellikler de katılmıştır. Henüz inceleme fırsatı bulamadığım bu özellikleri aşağıdaki maddeler ile özetleyebiliriz.</p>
<ul>
<li><strong>ARM<em>(Advanced RISC Machine)</em></strong> desteği gelmiştir. Yani <strong>Build</strong> çıktıları <strong>ARM</strong> işlemcilerini hedef alacak şekilde üretilebilir.</li>
<li>Bir <strong>Task</strong><em> (Target elementi ile belirtilen bir görev diyelim)</em> süreç dışı<em><strong>(Out of Process)</strong></em> modda çalışmaya zorlanabilir.</li>
<li>Yeni bazı <strong>XML</strong> <strong>element</strong> ve <strong>nitelikleri<em>(Attributes)</em></strong> gelmiştir.</li>
<li>Klasik bir cümle olacak ama, <strong>Performans<em>(Performance)</em></strong> ve <strong>Ölçeklendirme<em>(Scabilitiy)</em></strong> noktasında iyileştirmeler vardır <img class="wlEmoticon wlEmoticon-smile" style="border-style: none;" src="/pics/wlEmoticon-smile_91.png" alt="Smile" /></li>
</ul>
<blockquote>
<p>MSBuild’ un etkili kullanımı üzerine geliştirilmiş bazı araçlar da vardır. Görsel arabirimleri olan bu araçlar yardımıyla MSBuild akışlarını daha kolay yönetebiliriz. Attrice firmasının bu alanda ön plana çıkan <a href="http://www.attrice.info/msbuild/index.htm">Microsoft Build Sidekick</a> isimli ürünü gibi.</p>
</blockquote>
<h1>Öneri Kitap</h1>
<p><a href="https://buraksenyurt.com/pics/msbuild_1.jpg"><img style="float: left; margin: 4px 0px; display: inline;" title="msbuild_1" src="/pics/msbuild_1_thumb.jpg" alt="msbuild_1" width="129" height="160" align="left" /></a><strong>Microsoft</strong>’ un <strong>Visual Studio</strong> ailesi ve geliştirme platformu oldukça geniş bir alana yayılmakta olup, pek çok notkasında uzmanlık gerektiren yapılar içermektedir. Bu sebepten söz konusu yapılara yönelik pek çok yayın da<em>(kitap, official site, blog vb) </em>mevcuttur.</p>
<p>Örneğin <strong>MSBuild</strong> tarafında daha önceden yayınlanmış olan <strong>Inside The Microsoft Build Engine</strong> isimli kitabın <strong>Nisan </strong>ayı içerisinde yayınlanan yeni bir tamamlayıcı baskısı mevcuttur. Yaklaşık olarak 120 sayfalık bir kitap olmasına rağmen odaklandığı konu özünde <strong>MSBuild </strong>ürünüdür. Kitaba <a href="http://www.amazon.com/Supplement-Inside-Microsoft%C2%AE-Build-Engine/dp/0735678162/ref=sr_1_1?s=books&ie=UTF8&qid=1361775657&sr=1-1&keywords=msbuild">Amazon üzerinden bu adres yardımıyla</a> erişebilirsiniz.</p>
<p>Böylece geldik bir yazımızın daha sonuna. Bu yazımızda kısada olsa, <strong>MSBuild</strong> platformunu ve <strong>XML</strong> tarafındaki <strong>betikleri<em>(Scripts)</em></strong> anlamaya çalıştık. Ağırlıklı olarak bir inşa sürecine müdahale edebildiğimizi, bunun için platformun sunduğu bazı standart element ve niteliklerin olduğunu gördük. Devamı sizde artık <img class="wlEmoticon wlEmoticon-smile" style="border-style: none;" src="/pics/wlEmoticon-smile_91.png" alt="Smile" /> Bir başka yazımızda görüşünceye dek hepinize mutlu günler dilerim.</p>
<p><span style="color: #ff0000;">[Orjinal Yazım Tarihi – 25/02/2013]</span></p>
<p><a href="http://blogs.msdn.com/b/visualstudio/archive/2013/07/24/msbuild-is-now-part-of-visual-studio.aspx" target="_blank"><span style="color: #ff0000;">[Güncel bilgi –> MS Build is now part of Visual Studio!]</span></a></p>2013-08-01T07:47:00+00:00microsoft build enginebuildcompilexmlproject filecommand promptvisual studioplatformteam foundation buildbuild serverbuild servicec#c# projectproject propertiesbsenyurtMicrosoft Build Engine aslında başlı başına bir platformdur. Kısaca MSBuild olarak anılmaktadır ve bir uygulamanın inşa edilmesi noktasında devreye giren XML(eXtensible Markup Language) tabanlı bir Script bütününü esas alır. Kısacası uygulamanın inşa edilmesi sırasındaki aşamalar XML tabanlı bir akış olarak ifade edilebilmektedir. MSBuild platformunun en önemli özelliği ise, inşa sürecinde Visual Studio gibi bir araca ihtiyaç duymuyor oluşudur...https://buraksenyurt.com/pingback.axdhttps://buraksenyurt.com/post.aspx?id=5e3559b5-233e-4292-a01a-fdf89d0ecdb65https://buraksenyurt.com/trackback.axd?id=5e3559b5-233e-4292-a01a-fdf89d0ecdb6https://buraksenyurt.com/post/Nedir-Bu-MSBuild#commenthttps://buraksenyurt.com/syndication.axd?post=5e3559b5-233e-4292-a01a-fdf89d0ecdb6https://buraksenyurt.com/post/Net-Memory-Management-Kavramak.Net Memory Management’ i Kavramak2012-03-02T06:54:00+00:00bsenyurt<p><a href="https://buraksenyurt.com/pics/Merovingian200px.png"><img style="display: inline; margin-left: 0px; margin-right: 0px;" title="Merovingian200px" src="/pics/Merovingian200px_thumb.png" alt="Merovingian200px" width="240" height="230" align="right" /></a><span style="line-height: 1.8;">Merhaba Arkadaşlar,</span></p>
<p>Matix! Ne filmdi ama değil mi? Özellikle yazılım tarafına hakim olan bizler için, filmin içerisindeki pek çok gönderi anlamlı birer mesaj haline gelmişti. İlk bölüm zaten efsanenin başlangıcı olma niteliğindeydi. İkinci bölümde işler daha da bir farklılaştı tabi. Örneğin, silinmeyen ve Matrix içerisinde kendini geliştirip küçük bir krallık yaratan <strong>Merovingian</strong> karakteri vardı. Bu sistem içerisinde yer alan ve süresi dolduktan sonra silinmesi gereken bir program iken, kaynağa (Source) geri dönmemişti.</p>
<p>Sanki C++ ile geliştirilmiş bir değişken tipiydi de, Release edilmesi unutulmuş ve bellek üzerinde bir şekilde ayakta kalmış bir programcıktı <img title="Smile" src="/editors/tiny_mce3/plugins/emotions/img/smiley-smile.gif" alt="Smile" border="0" /> Şimdi nereden çıktı bu <strong>Matrix, Merovingian</strong> diyeceksiniz. Konumuz <strong>.Net bellek yönetimi</strong>. Ama bu kez biraz daha farklı ve detaylı.</p>
<p><strong>.Net Framework</strong>’ ün bilindiği üzere en önemli özelliklerinden birisi de<strong> Managed Code</strong> adını verdiğimiz yaklaşımı destekliyor olmasıdır. Hatta özellikle bu yaklaşım üzerine kurulmuş bir alt yapı mimarisi sunduğunu ifade edebiliriz. <strong>Managed Code</strong> denildiğinde, üretilen kodun çalışma zamanında bir ortam tarafından kontrol atlında tutulduğu sonucuna varmamız yeterlidir. <strong>.Net Framework</strong>’ ün içsel yapılarını göz önüne aldığımızda, çalışma zamanı yani <strong>Common Language Runtime</strong>, yürütülmekte olan <strong>Assembly</strong>’ lar ve ilişkili <strong>Module</strong>’ ler ile ilgili olarak bir çok yönetsel kontrol mekanizmasını devreye sokar. Örneğin <strong>Exception Handling, Code Access Security, Type Safety</strong> ve en önemlilerinden birisi olan <strong>Memory Management</strong>.</p>
<p>Özellikle <strong>C++</strong> gibi programlama dilleri, sistemler üzerinde özgürce kod geliştirebilmemize olanak sağlamaktadır. Örneğin bellek üzerinde <strong>pointer</strong> gibi temel tipler yardımıyla her noktaya erişebilir ve nesnelerin yaşam döngülerini çok daha esnek bir biçimde ele alabiliriz. Tabi bu özgürlük, <strong>development’</strong> ı biraz daha zorlaştırır. Pointer aritmetiği ile uğraşılmak zorunda kalınır ve bellek yönetimi güçleşir. Sonuç pek tabi, kaynağa geri dönmesi unutulan bir <a href="http://en.wikipedia.org/wiki/Merovingian_%28The_Matrix%29" target="_blank">Merovingian</a> olup çıkar ki bunun doğal yansıması da genellikle <strong>Memory Leak</strong> ve kötü performans olur. Bu ve buna benzer bazı nedenlerden dolayı, <strong>.Net Framework </strong>daha ilk sürümünden itibaren, kodu kontrol altında tutmuş ve belleği yönetimini ağırlıklı olarak üzerine almıştır. Bize de belirli ölçülerde esnetmeler sunmuştur.</p>
<p><strong>.Net</strong> ile geliştirme yapmaya veya onu öğrenmeye başlayan hemen her programcı aşağıdakine benzer bir şekil ile de mutlaka karşılaşır.</p>
<p><a href="https://buraksenyurt.com/pics/memmng_1.png"><img style="display: inline;" title="memmng_1" src="/pics/memmng_1_thumb.png" alt="memmng_1" width="563" height="407" /></a></p>
<p>Bize öğretilen, bizim öğrendiğimiz ve hatta öğrettiğimiz haliyle, <strong>.Net Framework</strong> içerisinde veri türleri iki ana dala ayrılır. Belleğin <strong>Stack</strong> bölgesinde tutulan <strong>değer türleri(Value Types)</strong> ve belleğin <strong>Heap</strong> bölgesinde tutulan <strong>referans türleri(Reference Types).</strong> <strong>int, double, Point, DateTime </strong>gibi aslında <strong>Common Type System</strong> içerisinde birer <strong>struct</strong> ile ifade edilebilen tüm tipler değer türü iken, <strong>class</strong> gibi tipler de referans türleridir. Özellikle bunların kendi aralarındaki atamalarında bellek üzerindeki işleyiş şekilleri de çouğunlukla farklıdır. Aksi belirtilmediği ve müdahale edilmediği sürece referans türleri arası yapılan atamalar, aslında <strong>stack</strong> bölgesindeki adres işaretçilerinin çoğullanması ama heap üzerindeki aynı adres bölgesinin ifade edilmesidir. Değer türlerinde ise bu durum tam tersidir. Değerler <strong>stack</strong> bölgesinde atamalar sonrası kopyalanırlar.</p>
<p>Aslında bu bilgiler bizim için temel niteliği taşımaktadır. Dedik ya, <strong>CLR</strong> aslında çalışma zamanındaki bellek yönetimini de üstlenmektedir. O yüzden çoğumuz, <strong>“nasıl olsa belleği birileri yönetiyor, nesneleri de zamanı gelince temizliyor, ortalığı toparlıyor”</strong> diyerek temel olan başka bir konuyu da atlarız. Gerçekten de <strong>.Net Memory Management</strong> acaba nasıl çalışmaktadır? Eğer bunu merak ediyorsanız, yaptığım araştırmalar ve kendimce edindiğim fikirler ile konuyu sizlere aktarmaya çalışıyor olacağım. Dolayısıyla bundan sonrasını merak ediyorsanız okumaya devam edin <img title="Wink" src="/editors/tiny_mce3/plugins/emotions/img/smiley-wink.gif" alt="Wink" border="0" /></p>
<p>Uygulamalarımızın çalışma zamanında ürettiği referans tiplerinin <strong>Garbage</strong> <strong>Collector</strong> tarafından ele alındığını biliyoruz aslında. Hatta <strong>GC</strong>, <strong>GCSettings</strong> gibi tipler yardımıyla ona bir ölçüde müdahale etme şansımız da bulunmakta. Teorik olarak <strong>Heap</strong> bellek bölgesindeki nesne örneklerinin yaşam döngüsünden, onların bellek üzerindeki fragmantasyonlarından ve elbetteki serbest bırakılmalarından sorumlu olduğunu özetleyebiliriz. <strong>Garbage</strong> <strong>Collector</strong> ilke olarak iki tip nesne ile ilgilenir.</p>
<p><a href="https://buraksenyurt.com/pics/memmng_2.png"><img style="display: inline;" title="memmng_2" src="/pics/memmng_2_thumb.png" alt="memmng_2" width="445" height="198" /></a></p>
<p>Aslında bir <strong>.Net</strong> uygulaması <strong>process</strong> olarak belleğe açıldığında, <strong>Managed Heap</strong> üzerinde o process’e ait olacak şekilde iki farklı alan göz önüna alınır. Bunlardan birisi uygulamanın <strong>83Kilobyte</strong> ve daha az büyüklükteki nesneleri içindir ki <strong>Small Object Heap(SOH)</strong> olarak adlandırılır. Boyutu <strong>83Kb</strong> üzerinde olan nesneler içinse <strong>Large Object Heap(LOH)</strong> olarak adlandırılan başka bir <strong>heap</strong> bloğu göz önüne alınır.</p>
<blockquote>
<p>Tekil bir .net Process’ i Win32 platformunda çalıştırıldığında bellek üzerinden maksimum 2Gb’ a kadar yer kullanabilir.</p>
</blockquote>
<p>Çok doğal olarak <strong>Garbage Collector</strong> söz konusu bu nesnelerin bellek üzerinde yerleştirilmeleri(allocate), fragmante edilmeleri(re-allocate) ve geri çağırılmaları(reclaim) vb işlemler sırasında kritik bir rol üstlenir. Şimdi ilk olarak <strong>SOH</strong> tarafına bir bakalım. <strong>SOH</strong> temel olarak zaman içerisinde nesne ömürlerini 3 farklı jenerasyonda oluşacak şekilde ele almaktadır<em>(Generational yaklaşım)</em>.</p>
<blockquote>
<p><strong>Generation 0, Generation 1 ve Generation 2. </strong></p>
</blockquote>
<p><strong>SOH</strong> içerisinde yer alması gereken nesne örnekleri oluşturuldukça <strong>Generation 0</strong> adı verilen süreçte sırasyıla yerleştirilmeye başlarlar<em>(Burada C++ taki Linked List tarzındaki bellek açılımından farklı bir durum söz konusu)</em>. Çok doğal olarak zaman içerisinde bu bölgede yer alan bazı nesneler <strong>Dispose</strong> edilme aşamasına gelir. <strong>GC</strong> varsayılan davranış stratejisine göre <strong>Generation 0</strong> dolana kadar bir aksiyonda bulunmaz. <strong>Generation 0</strong> dolduğunda, <strong>Dispose</strong> sürecine girmesi gereken atıl nesneler toplanmaya ve halen yaşamakta olan canlı nesnelerde <strong>Generation 1</strong> bölgesine kopyalanarak taşınmaya başlanırlar.</p>
<p><strong>Generation 1</strong> bölgesinin de çok doğal olarak bir kapasitesi vardır ve zaman içerisinde buradaki canlı nesnelerden bazıları yine <strong>Dispose</strong> sürecine girecektir. Dolayısıyla <strong>Generation 1</strong> bölgesinin de dolması sonrası yine canlı nesnelerin bu kez <strong>Generation 2</strong> bölgesine kopyalanması ve atıl nesnelerin <strong>Generation 1</strong> den atılması söz konusu olacaktır.</p>
<p>Durumu kabaca bu şekilde düşünecek olursak aşağıdaki gibi bir zaman diagramını göz önüne almamız mümkün olabilir. Kabaca tabi <img title="Wink" src="/editors/tiny_mce3/plugins/emotions/img/smiley-wink.gif" alt="Wink" border="0" /> <br /><a href="https://buraksenyurt.com/pics/memmng_3.png"><img style="display: inline;" title="memmng_3" src="/pics/memmng_3_thumb.png" alt="memmng_3" width="486" height="634" /></a></p>
<p>Ancak, olay bu kadar da basit değildir. Aslında <strong>GC</strong> mekanizması ana uygulama <strong>Thread’</strong> inden bağımsız olarak çalışan farklı bir <strong>Thread</strong> olarak düşünüldüğünde, söz konusu işlemleri <strong>concurrent</strong> olarak gerçekleştirmektedir. Özellikle <strong>Generation 0,1</strong> ve <strong>2</strong> bölgeleri üzerinde her zaman şekilde olduğu gibi sıralı ve düzgün bir dizilim söz konusu olmayacaktır. Dolayısıyla kopyalama metoduna göre yapılan taşıma işlemleri sırasında, nesneler boş bulunan bellek bölgelerine atılırlar.</p>
<p>Diğer yandan kopyalama işlemleri sırasında oluşabilecek bir sorun da vardır. <strong>GC</strong> ayrı bir <strong>Thread</strong> üzerinden, bir alt <strong>Generation’</strong> daki canlı nesneleri tespit ettikten sonra, bunları bir üst generation’ a kopyalar. Lakin alt <strong>Generation’</strong> daki nesneler bu taşıma sırasında veya öncesinde halen daha ana veya farklı bir <strong>Thread</strong> tarafından kullanılıyor olabilirler. Hımmm <img title="Wink" src="/editors/tiny_mce3/plugins/emotions/img/smiley-wink.gif" alt="Wink" border="0" /></p>
<p>İşte bu noktada <strong>GC</strong> şöyle bir yol izler. <strong>Thread’</strong> ler arası güvenli bir nokta oluşturur<em>(Safe Point)</em> ve taşıma sırasında ilgili uygulama <strong>Thread’</strong> lerinin tamamı durdurulur. Sonrasında ise kopyalanan tüm içeriği orjinal referansları ile eşleştirerek düzeni korur. Güzel bir trick öyle değil mi? <img title="Laughing" src="/editors/tiny_mce3/plugins/emotions/img/smiley-laughing.gif" alt="Laughing" border="0" /> Bir o kadar da karışık aslına bakarsanız. <em>(Ben hala konu ile ilişkili kaynakları ve CLR via C#’ ın ilgili bölümlerini okuyarak pekiştirmeye çalışıyorum)</em></p>
<p><strong>Generation 2</strong> bölgesi aslında performans ölçümlerinde de ip ucu veren bir alan olarak düşünülmektedir. Bu bölgenin çok sık ve fazla şişerek dolması ileride programın bellek ile ilişkili sıkıntılar üretebileceğinin de bir işaretedir.</p>
<blockquote>
<p><a href="http://www.red-gate.com/products/dotnet-development/ants-memory-profiler/" target="_blank">ANTS Memory Profiler</a> gibi araçlar yardımıyla, uygulamalarımızın bellek üzerindeki ölçümlerini detaylamasına yapabiliriz. Tabi daha ucuz çözümler de var. CLR Performance Counter’ lar <img title="Wink" src="/editors/tiny_mce3/plugins/emotions/img/smiley-wink.gif" alt="Wink" border="0" /></p>
</blockquote>
<p>Gelelim <strong>LOH(Large Object Heap)</strong> bölgesine. <strong>83KB</strong> üzeri olarak belirtilen <strong>Large Object’</strong> lerin taşıma/kopylama maliyetleri tahmin edileceği üzere yüksektir. Bu sebepten dolayı <strong>SOH</strong> için uygulanan <strong>Generations</strong> tekniği yerine farklı bir yaklaşım kullanılır.<strong> Generation 2</strong> parçasında <strong>Large Object</strong> nesnelerinin, ölen nesnelerden boşalan yerlere iliştirilmesi söz konusudur. Aslında aşağıdaki şekil ile durumu biraz olsun ifade edebiliriz.</p>
<p><a href="https://buraksenyurt.com/pics/memmng_4.png"><img style="display: inline;" title="memmng_4" src="/pics/memmng_4_thumb.png" alt="memmng_4" width="498" height="539" /></a></p>
<p>Bir <strong>LO</strong> eklenmek istendiğinde <strong>Generation 2</strong> kısmındaki ilk boş bölgeye açılması söz konusudur. Sonrasında sisteme dahil olacak diğer <strong>LO’</strong> ler de <strong>Generation 2’</strong> de boş olan yerlere serpiştirilirler. Tabi <strong>Generation 1</strong> den gelen nesne örnekleri <strong>83Kb</strong>’ den küçük olduklarından, yeni gelen <strong>83Kb’</strong> den büyük nesnelerin sığabilecekleri uygun yerlerinde <strong>Generation 2</strong> üzerinde var olması gerekir.</p>
<p>Peki yoksa? <img title="Sealed" src="/editors/tiny_mce3/plugins/emotions/img/smiley-sealed.gif" alt="Sealed" border="0" /> Bu durumda uygulama daha fazla bellek alanının allocate edilmesi için işletim sisteminde bir talepte bulunacaktır. Hatta <strong>Heap</strong> alanının yetmediği durumlarda, fiziki disk bölgelerinden sanal olarak bu alanların karşılanması istenecektir. Eğer işletim sisteminden olumlu bir cevap alamazsa bu durumda <strong>GC’</strong> nin <strong>Generation 2</strong> içerisinde yapacağı <strong>de-allocate</strong> işlemlerinin yeteri kadar yer ayırması beklenecektir.</p>
<p><strong>LO’</strong> ler için uygulanan strateji, generations sistematiğine göre daha performanslıdır. Nitekim bellek üzerinde <strong>copy/move/re-refereance</strong> işlemleri yoktur. Ancak belleğin fragmente edilme noktalarında da bir dezavantaj oluşturacaktır. Tabi LOH ile SOH’ un bir arada çalıştığı da unutulmamalıdır. GC her iki tür için gerekli yönetsel işlemleri üstlenmektedir.</p>
<blockquote>
<p>İşte tüm bunlar göz önüne alındığında karmaşık olan ve bize aslına bakarsanız çok fazla sorun çıkartıp baş ağrısı yapmayan en basit uygulamalarımızın bile, şöyle bir bellek testinden geçirilerek ne yaptıklarının incelenmesinde yarar olduğu söylenebilir.</p>
</blockquote>
<p><strong>.Net Framework </strong>içerisinde sisteme gelen ve <strong>CLR’</strong> ın bellek yönetimi odaklı olarak kullanılan pek çok performans ölçüm kriteri bulunmaktadır.<strong> Bytes in all heaps, time spent in GC, allocated bytes per sec</strong> vb…Bu tip kriterlere bakılarak geliştirdiğimiz <strong>.Net</strong> uygulamalarının bellek yönetimi açısından daha performanslı hale getirilmesi, istatistiki bilgilerinin çıkartılması, farklı ürün stratejilerinin belirlenmesi de söz konusu olabilir. Diğer yandan <strong>Garbage Collector’</strong> un kod tarafından da ele alınması ve bazı kurallarının değiştirilmesi söz konusu olabilir. Özellikle performans ve heap’ in etkin kullanımı arasında fedakarlık yapılması gerektiği durumlarda<em>(kısaca performance ve heap etkinliği arası trade-off diyelim)</em> uygun modun seçilmesi sağlanabilir. Bu anlamda <strong>GC</strong> iki temel modu desteklemektedir. <strong>Workstation</strong> ve <strong>Server</strong>.</p>
<p><strong>Workstation</strong> modu, kullanıcıya maksimum cevap verilebilirlik için tercih edilmekte olup <strong>Concurrent</strong> ve <strong>non-Concurrent</strong> çalışacak şekilde ele alınabilir. Varsayılan olarak <strong>Concurrent</strong> çalışma prensibi uygulanır. Buna göre <strong>GC</strong> mekanizması uygulama ile birlikte ayrı bir <strong>Thread</strong> üzerinden işlemlerini gerçekleştirir.</p>
<p><strong>Server</strong> mode ağırlıklı olarak <strong>performans(Performance)</strong>, <strong>ölçeklenebilirlik(Scalability)</strong> ve <strong>verimliliğin(throughput)</strong> ön plana çıktığı <strong>sunucu ortamlarında(Server Environment)</strong> göz önüne alınmaktadır. Bu modda, generation eşik değerleri ile bellekteki segment boyutları, <strong>Workstation Mode’</strong> a göre çok daha yüksektir. Bu son derece doğaldır nitekim sunucuların bellek kapasiteleri, workstation’ lara göre daha fazldır <img title="Smile" src="/editors/tiny_mce3/plugins/emotions/img/smiley-smile.gif" alt="Smile" border="0" /> <strong>Server Mode</strong> ile çalışmanın en önemli artısı ise <strong>paralel</strong> veya <strong>multi-thread</strong> olarak çalışabilmesidir. Buna göre <strong>SOH</strong> ve <strong>LOH</strong> bölgeleri n sayıda fiziki işlemci tarafından ele alınabilir<em>(Tabi birbirlerini kesmeyecek şekilde)</em></p>
<blockquote>
<p>Bu söylenenlere göre Workstation’ ların da Server Mode’ da çalıştırılması düşünülebilir. Ancak bu modda kullanıcı cevap verilebilirliği ikinci plandadır. Çünkü tüm uygulama Thread’ leri, GC’ nin çalıştığı sürelerde Suspend moda geçecektir ki bu kullanıcının direk uygulama ile olan etkileşiminde eksi puandır.</p>
</blockquote>
<p>Bir de GC’ nin tekrardan toplamasına gerek duyulmayacak şekilde kullanılabilen<strong> Weak Referance</strong> tipleri bulunmaktadır. <strong>WeakReference</strong> sınıfı bu noktada devreye girmektedir. Bu konuyu ilerleyen zamanlarda incelemeyi ve sizlerle paylaşmayı planlıyorum.</p>
<p>Yukarıda bahsettiklerimiz anlamında <strong>GC’</strong> i kod tarafında ve <strong>config</strong> dosyası üzerinde ayarlayabilir ve hangi modda ne şekilde çalışacağına karar verebiliriz. Örneğin uygulamaya ait <strong>config</strong> dosyasına yapılacak aşağıdaki bildirim ile <strong>Server Mod</strong> üzerinde çalışılacağı ifade edilir.</p>
<pre class="brush:xml;auto-links:false;toolbar:false" contenteditable="false"><configuration>
<runtime>
<gcServer enabled="true" />
</runtime>
</configuration></pre>
<p>veya örneğin</p>
<pre class="brush:html;auto-links:false;toolbar:false" contenteditable="false"><configuration>
<runtime>
<gcServer enabled="false"/>
<gcConcurrent enabled="false"/>
</runtime>
</configuration></pre>
<p>bildirimi ile <strong>Workstation</strong> modda ve<strong> non-concurrent</strong> olarak çalışılacağı ifade edilebilir.</p>
<p>Bunlara ek olarak <strong>GCLatencyMode</strong> adında önemli bir ayar daha sunulmaktadır. Bu ayara göre daha fazla nesnenin bellekten toplanması bir başka deyişle çok daha fazla alanın açılması sağlanabilir. Bilindiği üzere <strong>GC</strong>, çöpleri topladığı sırada çalışmakta olan diğer tüm <strong>Thread’</strong> leri geçici olarak durdurur. Bu nedenle <strong>Latency(gecikme)</strong> ‘ nin kontrol altına alınması gereken uygulamalar söz konusu olabilir.</p>
<p><strong>GCLatencyMode</strong> özelliği <strong>Batch, Interactive</strong> ve <strong>LowLatency</strong> olmak üzere 3 sabit değerden birisini alabilir. <strong>Batch</strong> mode genellikle bir arayüzü veya sunucu taraflı operasyonu olmayan uygulamalarda tercih edilmektedir. Arayüzü(UI) bulunan uygulamalarda <strong>Interactive</strong> <strong>mode</strong> seçilebilir. Bunun dışında bazı uygulamalar bilindiği üzere bellek üzerinde çok daha fazla harekette bulunurlar. Özellikle çok kısa sürelerde işlemlerin yapılması gerekmektedir. Örneğin animasyon işlemleri ile uğraşan uygulamalar buna örnek olarak verilebilir. Bu tip uygulamalarda zaman oldukça önemlidir. O nedenle <strong>LowLatency</strong> modda çalıştırılmaları sağlanabilir. Latency Mode ile ilişkili daha detaylı bilgiyi <a href="http://msdn.microsoft.com/en-us/library/bb384202.aspx">MSDN adresinden</a> bulabilirsiniz.</p>
<p>Devam eden yazımızda <strong>LOH</strong> ve <strong>SOH</strong> kullanımları sırasında uygulamalarımıza ait bellek değerlerini nasıl ölçümlendirebileceğimizi aktarmaya çalışıyor olacağım. Şimdilik teoriyi pekiştirmemizde ve neyin ne olduğunu ayrıştırmamızda yarar var. Tekrardan görüşünceye dek hepinize mutlu günler dilerim.</p>
<p><a href="http://www.amazon.com/CLR-via-C-Jeffrey-Richter/dp/0735627045/ref=sr_1_1?ie=UTF8&qid=1330694365&sr=8-1"><img style="display: inline; margin-left: 0px; margin-right: 0px;" title="memmng_5" src="/pics/memmng_5.png" alt="memmng_5" width="150" height="181" align="left" /></a> Bu arada <strong>CLR’</strong> ın çalışma şeklini daha iyi ve derinlemesine öğrenmek isterseniz sizlere tavsiyem <strong>MS Press’</strong> in <strong>Jeffrey Ritcher</strong> imzalı <strong>CLR via C#</strong> isimli kitabı olacaktır.</p>
<p><strong>896</strong> sayfalık bu kitap içerisinde elbetteki bulacağınız tek şek <strong>bellek yönetimi(Memory Managemet) </strong>değil. Ama yazdığımız temel C# kod parçalarının <strong>CLR(Common Language Runtime)</strong> tarafından nasıl ele alındığını görmek, <strong>CIL(Common Intermediate Language)</strong> seviyesine kadar inebilmek mümkün. Fiyatı biraz yüksek görünebilir ama bence elinizin altında olması gereken bir kaynaktır diye düşünüyor ve hatta bu konuda ısrar ediyorum.</p>2012-03-02T06:54:00+00:00garbage collectiongarbage collector.net memory managementgcbsenyurtSanki C++ ile geliştirilmiş bir değişken tipiydi de, Release edilmesi unutulmuş ve bellek üzerinde bir şekilde ayakta kalmış bir programcıktı Smile Şimdi nereden çıktı bu Matrix, Merovingian diyeceksiniz. Konumuz .Net bellek yönetimi. Ama bu kez biraz daha farklı ve detaylı...https://buraksenyurt.com/pingback.axdhttps://buraksenyurt.com/post.aspx?id=64c268b7-a511-4e42-9eaf-4be2463e09ff5https://buraksenyurt.com/trackback.axd?id=64c268b7-a511-4e42-9eaf-4be2463e09ffhttps://buraksenyurt.com/post/Net-Memory-Management-Kavramak#commenthttps://buraksenyurt.com/syndication.axd?post=64c268b7-a511-4e42-9eaf-4be2463e09ffhttps://buraksenyurt.com/post/Log4Nete28099-i-Tanc4b1yalc4b1mLog4Net’ i Tanıyalım2012-03-01T07:22:00+00:00bsenyurt<p><a href="https://buraksenyurt.com/pics/910898_who_am_i_.jpg"><img style="display: inline; margin-left: 0px; margin-right: 0px;" title="910898_who_am_i_" src="/pics/910898_who_am_i__thumb.jpg" alt="910898_who_am_i_" width="216" height="300" align="right" /></a> Merhaba Arkadaşlar,</p>
<p>Herkesin kendine has bir parmak izi vardır. DNA gibi benzersizdir. Her ne kadar bazı ajanlı filmelerinde bu izler silinebilse de<em>(belki de silinebilyordur)</em> :) Krimonoloji labaratuvarlarından tutunda, şirketlerdeki giriş kapılarına kadar pek çok noktada parmak izlerimiz devreye girer. Hatta günümüzde kullandığımız bilgisayarların çoğunun açılması için parmak izi kullanılabilmektedir.</p>
<p>Parmak izinin sahibi, sistem içerisinde yaptığı hareketliliklere ait pek çok bilgi bırakır geriye. Ne zaman gelmiş, nerede durmuş, hangi eşyayı tutmuş, kaç saat çalışmış, bilgisayarını ne zaman açmış vs…Bu tip bilgiler bazı senaryolarda çok kritiktir ve önemli anlamlar ifade etmektedir.</p>
<p>Ancak izlenen sadece parmak izi sahip insanlar değildir. Zaman zaman sistemlerin ve onun parçası olan aktörlerin de<em>(cihazlar veritabanları, uygulamalar örneğin)</em> takip edilmesi ve toplanan bilgilerden yola çıkılarak, ya oluşan hataların giderilmesi ya da gelecek için gerekli yönün nasıl olacağına karar verilmesi aşamalarında da bilgi toplamak önem kazanır. Gelelim bu geniş evrenden bizim dünyamıza. Yani yazılıma.</p>
<p>Geliştirdiğimiz uygulama çözümlerde, programın herhangibir zaman diliminde neler yaptığının bilgisini tutmak, geriye dönük yapılan araştırmalarda, performans ölçümlerinde, bug’ ların ayıklanmasında veya bir sonraki iterasyon için gerekli backlog’ ların oluşturulmasında önemli bir unsurdur.</p>
<p>Benzer şekilde sistem içerisine dahil olan kullanıcıların veya sistemin parçası olan diğer aktörlerin, zaman dilimi içerisindeki hareketliliklerini de kayıt altına almamız önemlidir. Nitekim bu şekilde aktörlerin geriye dönük izlerine ulaşabilir, bazı yasal süreçlerdeki ispatlardan tutunda, ürünün sonraki versiyonları için gerekli kullanıcı deneyimi raporlarının çıkartılmasına kadar pek çok noktada faydalı verilere ulaşabiliriz. Burada loglama kavramı devreye girmekte olup bilginin toplanması noktasında önemli bir Concern olarak karşımıza çıkmaktadır.</p>
<p>Dolayısıyla loglama uygulamalar için hayati bir anlama sahiptir. Üstelik mimari açıdan baktığımızda, katmanlar arasında bir <strong>kıstas(Concern)</strong> olarak da göz çarpmaktadır. Söz gelimi çok basit anlamda <strong>SOA(Service Oriented Architecture)</strong> tabanlı bir mimari modeli düşündüğümüzde, pek çok katman arasında dikine ilişki taşıyan kıstaslardan birisi de Loglama parçasıdır ve Cross-Cutting düzleminde yer alan enstrümanlardan birisidir. Aşağıdaki şekilde bu durum özetlenmektedir.</p>
<p><a href="https://buraksenyurt.com/pics/l4n_1.png"><img style="display: inline;" title="l4n_1" src="/pics/l4n_1_thumb.png" alt="l4n_1" width="624" height="480" /></a></p>
<p>Dikkat edileceği üzere <strong>Sunum(Presentation), servis(Service), iş(Business)</strong> ve <strong>veri(Data)</strong> katmanlarının tamamı, <strong>Cross-Cutting</strong> içerisinde yer alan bloklara erişebilmektedir. <strong>Logging</strong> bloğu dışında diğer <strong>Concern’</strong> lerde söz konusudur elbette. Örneğin güvenlik, performans odaklı Caching, hata yönetimi vb…</p>
<p>Gelelim Loglama konusuna.</p>
<p>Yazılım evrenimizde Loglama amacıyla kullanılan pek çok yardımcı araç da bulunmaktadır. Bunların çoğu ücretsiz birer kütüphanedir ve kullanımları da son derece basittir. Söz gelimi Microsoft <strong>Enterprise Library</strong> ile birlikte gelen <strong>Caching Application Block, Log4Net, NLog</strong> ve diğerleri. Loglama işlemleri için kullanılan bloklar, <strong>Cross Cutting’</strong> de yer alan diğerleri gibi <strong>Inversion Of Control</strong> prensibini başarılı bir şekilde uygulayan ve dolayısıyla <strong>Dependency Injection</strong> kavramını içeren yapılardır. Daha doğrusu bu şekilde tasarlanmaları çok daha doğrudur.</p>
<p>Genellikle loglama amacıyla kullanılan araçlar, loglama stratejilerini, uygulama yeniden derlenmeye gerek kalmadan çalışma zamanında değişiklikler yapılabilmesine olanak tanımaktadır. Burada çok doğal olarak uygulama harici <strong>konfigurasyon</strong> ayarlarının kullanımı söz konusudur. Özellikle <strong>XML</strong> tabanlı olarak tutulan ve bu sayede basit bir editör ile dahi düzenlenebilecek konfigurasyon dosyaları bulunmaktadır.</p>
<p><strong>.Net Framwork</strong> tarafındaki masaüstü uygulamalar<em>(Console, Windows, WPF, Windows Service vb)</em> için <strong>app.config</strong> dosyası söz konusu iken, <strong>Web</strong> tabanlı uygulamalarda <strong>Web.config</strong> dosyası ön plana çıkmaktadır. Ancak çoğu loglama aracı, başka bir <strong>XML</strong> konfigurasyon dosyasının da <strong>App.config</strong> veya <strong>Web.config</strong> içerisinden işaret edilmesine izin vermektedir.</p>
<p>Loglama stratejisinin konfigurasyon dosyaları yardımıyla kolayca belirlenmesi bu işin ilk önemli adımlarından birisidir. Genellikle bu noktadan sonra, loglamanın hangi kaynağa doğru yapılacağına dair bir takım kararlar verilmeli ve uygun sınıf oluşumları sağlanmalıdır. Loglama popüler olarak metin tabanlı dosyalara <strong>düz yazı(Plaint Text – ki en az yer kaplayan ve performanslı olan çözümlerdendir)</strong> veya <strong>XML</strong> gibi formatlarda aktarılabilir. İstenirse bir veritabanı üzerinde ilişkisel anlamda tablolara yazılması da sağlanabilir. Dosya ve veritabanı sistemlerine ek olarak servis veya <strong>Windows Event</strong> sistemi odaklı çözümler de düşünülebilir. Yani log bilgilerinin bir servis aracılığıyla farklı ve çoğunlukla arkasında nasıl bir sistem olduğunu bilmediğimiz ortamlara aktarılması ya da <strong>Windows Event Log’</strong> larda uygulama bazlı olacak şekilde ayrıştırılarak saklanması da söz konusudur.</p>
<p>Çok doğal olarak bu işleri üstlenmesi ve seçilen <strong>provider’</strong> lara göre ilgili ortamlara log bilgilerini çalışma zamanında göndermesi gereken bir takım akıllı tiplerin olması gerekmektedir. Dolayısıyla ilgili loglama araçlarının bu tip desteğini sunduğunu da ifade edebiliriz.</p>
<p>Konfigurasyon ile loglama stratejisini belirlemek, uygun tiplerin devreye girerek bir veya daha fazla ortama log mesajı atılabilmesine olanak sağlamaktadır. Bundan sonraki adımda ise geliştiricinin uygun tiplere ait nesne örneklerini oluşturarak, uygulamanın ilgili ve doğru yerlerinde log atması yeterli olacaktır.</p>
<p>Tabi unutulmaması gereken bir husus da, her yerde her şeyi ve her zaman için <span style="text-decoration: underline;">loglamamak</span> gerekliliğidir. Nitekim her şeyli loglamak bir süre sonra bir veri çöplüğünün oluşmasına ve bilginin ayrımının zorlaşmasına neden olmaktadır. Ayrıca performans açısından adım başı loglamanın maliyeti düşünülmelidir. Bazen sadece test senaryolarının işletildiği sırada kullanılan logların ürünün <strong>Production</strong> ortamına çıkmasında kaldırılması veya <span style="text-decoration: underline;">kullanılmaması</span> öngörülebilir. Kısacası loglama stratejimizi belirlerken, neyi, ne zaman, hangi vaka da, ne şekilde loglayacağımıza da karar vermek gerekebilir.</p>
<p>Şimdi lafı fazla uzatmadan makalemizin asıl konusuna gelelim. Bu yazımızda ücretsiz olarak indirip kullanabileceğimiz loglama araçlarından birisi olan <strong>log4Net’</strong> e değiniyor olacağız. <a href="http://logging.apache.org/log4net/download_log4net.cgi" target="_blank">Bu adresten ücretsiz</a> olarak indirebileceğiniz ürün basit bir <strong>dll</strong> kütüphanesidir ve 3 önemli unsurun yerine getirilmesini beklemektedir. <em>(Ben makaleyi yazdığım tarih itibariyle ürünün 1.2.11.0 versiyonunu değerlendiriyor olacağım)</em></p>
<p><a href="https://buraksenyurt.com/pics/l4n_2.png"><img style="display: inline;" title="l4n_2" src="/pics/l4n_2_thumb.png" alt="l4n_2" width="394" height="347" /></a></p>
<p><strong>Log4Net</strong> ürününü indirdiğimizde beraberinde oldukça büyük bir <strong>XML</strong> konfigurasyon dosyası da gelmektedir. Bu dosya içerisinde, yapılacak konfigurasyon ayarlarına ait tüm detaylı bilgiler yer alır. <strong>Log4Net’</strong> de diğer pek çok loglama aracında olduğu gibi, loglanacak bilgilnin seviyelendirilmesini önerir. Bu anlamda <strong>Fatal, Error, Warn, Info, Debug, All</strong> ve <strong>Off</strong> gibi çeşitli seviyeler sunar. Konfigurasyon dosyasını oluşturmak son derece kolaydır. Örneğin aşağıdaki konfigurasyon içeriğinde veritabanına log mesajı yazacak şekilde yapılmış ayarlamalar vardır.</p>
<pre class="brush:csharp;auto-links:false;toolbar:false" contenteditable="false"><?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821" />
</configSections>
<log4net>
<appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
<bufferSize value="100" />
<connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<connectionString value="data source=.;initial catalog=SpeedyShop;integrated security=true;" />
<commandText value="INSERT INTO ApplicationLog ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" />
<parameter>
<parameterName value="@log_date" />
<dbType value="DateTime" />
<layout type="log4net.Layout.RawTimeStampLayout" />
</parameter>
<parameter>
<parameterName value="@thread" />
<dbType value="String" />
<size value="255" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%thread" />
</layout>
</parameter>
<parameter>
<parameterName value="@log_level" />
<dbType value="String" />
<size value="50" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%level" />
</layout>
</parameter>
<parameter>
<parameterName value="@logger" />
<dbType value="String" />
<size value="255" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%logger" />
</layout>
</parameter>
<parameter>
<parameterName value="@message" />
<dbType value="String" />
<size value="4000" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%message" />
</layout>
</parameter>
<parameter>
<parameterName value="@exception" />
<dbType value="String" />
<size value="2000" />
<layout type="log4net.Layout.ExceptionLayout" />
</parameter>
</appender>
<root>
<level value="DEBUG"/>
<appender-ref ref="AdoNetAppender"/>
</root>
</log4net>
</configuration></pre>
<p>Burada dikkat edileceği üzere <strong>Appender</strong> sekmesinde <strong>AdoNetAdppender</strong> isimli bir kısım tanımlanmıştır. Bu appender, <strong>connectionString</strong> bilgisine göre yerel sunucu üzerinde yer alan <strong>SpeedyShop</strong> isimli veritabanındaki <strong>Log</strong> tablosuna kayıt atacak şekilde tasarlanmıştır.</p>
<p>Sorgu cümlesine dikkat edilecek olarak <strong>@</strong> harfi ile başlayan parametrelerinin değerleri <strong>% </strong>ile başlayan özel <strong>keyword’</strong> lerdir. Örneğin, <strong>@log_level</strong> için <strong>%level</strong>, uygulamanın <strong>thread</strong> bilgisine ait değer için <strong>%thread</strong> gibi özel <strong>keyword’</strong> ler kullanılmaktadır. <strong>% </strong>ile başlayan anahtar kelimeler <strong>log4Net’</strong> e özgü yapılmış tanımlamalardır. <strong>%date, %level, %exception, %newline, %identity, %method</strong> ve benzerleri gibi, uygulama ortamında otomatik olarak loglama katına veri taşıyan sabitlerde mevcuttur.</p>
<p>Yukarıdaki <strong>config</strong> dosyasında <strong>Appender</strong> isimli bir kavramdan bahsettik. Veritabanı odaklı çalışan dışında dosyaya yazma amacıyla kullanılabilen <strong>FileAppender</strong> veya özellikle <strong>Console</strong> tabanlı test projelerinde ekrana log bilgisi vermek için kullanılan <strong>ConsoleAppender</strong> gibi versiyonlar da mevcuttur.</p>
<p><a href="https://buraksenyurt.com/pics/l4n_3.png"><img style="display: inline;" title="l4n_3" src="/pics/l4n_3_thumb.png" alt="l4n_3" width="275" height="418" /></a></p>
<p><strong>Object Browser</strong> yardımıyla <strong>Log4Net</strong> kütüphanesine baktığımızda pek çok <strong>Appender</strong> tipinin tanımlanmış olduğunu görürüz. <strong>Udp, SMTP, ASP.Net Trace</strong> bazlı vb gibi pek çok <strong>Appender</strong> bulunmaktadır.</p>
<p>Peki bu tipleri nasıl devreye alacağız? Gelin basit bir <strong>Console</strong> uygulaması üzerinden ilerleyelim ve <strong>Log4Net</strong> için alışılageldiği üzere bir <strong>HelloWorld</strong> örneği geliştirelim. İlk olarak projemize <strong>Log4Net</strong> <strong>Assembly’</strong> ının referans edilmesi gerekmektedir.</p>
<p><a href="https://buraksenyurt.com/pics/l4n_4.png"><img style="display: inline;" title="l4n_4" src="/pics/l4n_4_thumb.png" alt="l4n_4" width="250" height="299" /></a></p>
<p>İkinci olarak uygun bir loglama stratejisi belirlemeli ve <strong>App.config</strong> dosyasında buna ait ayarlamalar yapılabilmelidir. Bu örneğimizde loglarımızı dosya bazlı olarak tutuyor olacağız. Bu sebepten dolayı <strong>FileAppender</strong> tipini ele alacağız. Dolayısıyla <strong>app.config</strong> dosyasının içeriğini aşağıdaki gibi geliştirebiliriz.</p>
<pre class="brush:xml;auto-links:false;toolbar:false" contenteditable="false"><?xml version="1.0"?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821"/>
</configSections>
<log4net>
<appender name="FileAppender" type="log4net.Appender.FileAppender">
<file value="Logs.txt" />
<appendToFile value="true" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout">
<conversionpattern value="%date [%thread] %-5level – %message%newline" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="INFO" />
<levelMax value="FATAL" />
</filter>
</appender>
<root>
<level value="DEBUG"/>
<appender-ref ref="FileAppender"/>
</root>
</log4net>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
</configuration></pre>
<p>Loglanacak metinsel içerik <strong>layout</strong> boğumu içerisinde yer alan <strong>conversionPattern</strong> elementine ait <strong>value</strong> niteliğinde belirtilmektedir. Önce tarih bilgisi ve arkasından sırasıyla <strong>thread</strong>, <strong>log seviyesi</strong>, <strong>mesaj</strong> ve <strong>alt satıra</strong> geçme işlemleri uygulanmaktadır. Loglamayı yaparken minimum seviyemiz <strong>INFO</strong> dur. Maksimum ise <strong>FATAL</strong> olarak set edilmiştir. Bu basit ayarlamalardan sonra uygulamanın kod tarafına geçerek gerekli <strong>Setup</strong> işlemlerini yazabiliriz. İşte kodumuz.</p>
<pre class="brush:csharp;auto-links:false;toolbar:false" contenteditable="false">using System;
using System.Data;
using System.Data.SqlClient;
using log4net;
namespace HelloLog4Net
{
class Program
{
static ILog log = log4net.LogManager.GetLogger(typeof(Program));
static void Main(string[] args)
{
log4net.Config.BasicConfigurator.Configure();
SqlConnection connection = null;
try
{
const string connectionString = @"data source=.\SQLEXPRESS;database=AdventureWorks;user id=sa;pwd=1234.";
log.Warn(String.Format("Bağlantı açılacak. Connection String :{0}",connectionString));
connection=new SqlConnection(connectionString);
if(connection.State==ConnectionState.Closed)
connection.Open();
log.Info(String.Format("Bağlantı durumu : {0}",connection.State));
}
catch (Exception excp)
{
log.Error(excp.Message);
}
finally
{
if (connection != null && connection.State == ConnectionState.Open)
{
connection.Close();
log.Debug(String.Format("Finally bloğundayız. Bağlantı durumu {0}", connection.State));
}
}
log.Info("Program sonu");
}
}
}</pre>
<p>Dikkat edileceği üzere loglama nesne örneği üretilirken <strong>LogManager</strong> tipinin <strong>GetLogger</strong> metodu kullanılmakta ve sonuç <strong>ILog</strong> arayüzü referansına taşınmaktadır. İşte size <strong>IoC örneği</strong> :) Kodun ilerleyen kısımlarında konfigurasyon ayarlarının okunması işlemi gerçekleştirilir ve sonrasında istenilen noktalardan çeşitli seviyelerde log mesajları, konfigurasyon dosyasında belirtildiği üzere ilgili dosyaya yazdırılır. Son olarak <strong>AssemblyInfo</strong> dosyasında yapmamız gereken basit bir nitelik<strong>(Attribute)</strong> bildirimi daha söz konusudur.</p>
<pre class="brush:plain;auto-links:false;toolbar:false" contenteditable="false">…
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: log4net.Config.XmlConfigurator(Watch = true)]</pre>
<p>Uygulamayı çalıştırdığımızda aynı zamanda bir ekran çıktısı aldığımızı da görürüz. Varsayılan olarak <strong>ConsoleAppender’</strong> da devrededir. Tabiki bunu kapatabilirsiniz.</p>
<p><a href="https://buraksenyurt.com/pics/l4n_5.png"><img style="display: inline;" title="l4n_5" src="/pics/l4n_5_thumb.png" alt="l4n_5" width="588" height="127" /></a> </p>
<p>Test dosyasının içeriği de aşağıdaki gibi olacaktır.</p>
<p><a href="https://buraksenyurt.com/pics/l4n_6.png"><img style="display: inline;" title="l4n_6" src="/pics/l4n_6_thumb.png" alt="l4n_6" width="525" height="397" /></a> </p>
<p>Görüldüğü üzere <strong>log4Net</strong> kullanılarak çok basit bir şekilde loglama işlemleri yapılabilmekte ve uygulamanın herhangibir noktasından <strong>feedback’</strong> ler verilebilmektedir. Siz siz olun uygulamalarınızda loglama konusunu ihmal etmeyin. Nitekim hataları ayıklama, kullanıcı ve sistem gibi genel aktörlerin hareketliliklerini izleme ve backlog oluşturma noktasında hayati öneme sahip bir mevzudur. İlerleyen makalelerimizde Log4Net’ in farklı kullanımlarına da değinmeye çalışıyor olacağız. Bir sonraki makalemizde görüşünceye dek hepinize mutlu günler dilerim.</p>
<p><a href="https://buraksenyurt.com/pics/2012%2f1%2fHelloLog4Net.zip">HelloLog4Net.zip (2,28 mb)</a></p>2012-03-01T07:22:00+00:00.netc#cross cuttingloggingconcernlog4netnloglogging application blockbsenyurtGeliştirdiğimiz uygulama çözümlerde, programın herhangibir zaman diliminde neler yaptığının bilgisini tutmak, geriye dönük yapılan araştırmalarda, performans ölçümlerinde, bug’ ların ayıklanmasında veya bir sonraki iterasyon için gerekli backlog’ ların oluşturulmasında önemli bir unsurdur.https://buraksenyurt.com/pingback.axdhttps://buraksenyurt.com/post.aspx?id=f3410713-5370-460e-8e49-5a0441de84649https://buraksenyurt.com/trackback.axd?id=f3410713-5370-460e-8e49-5a0441de8464https://buraksenyurt.com/post/Log4Nete28099-i-Tanc4b1yalc4b1m#commenthttps://buraksenyurt.com/syndication.axd?post=f3410713-5370-460e-8e49-5a0441de8464https://buraksenyurt.com/post/Birlikte-GelistirdikBirlikte Geliştirdik2011-10-02T23:48:00+00:00bsenyurt<p><a href="https://buraksenyurt.com/pics/corba_739.jpg"><img style="background-image: none; margin: 4px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; padding-top: 0px; border: 0px;" title="corba_739" src="/pics/corba_739_thumb.jpg" alt="corba_739" width="240" height="240" align="right" border="0" /></a>Merhaba Arkadaşlar,</p>
<p>Eğer benim gibi yaz kış kolayca grip oluyorsanız eminim ki bol limonlu çorbalara aşinasınızdır. Hele ki şanslıysanız ve eşinizin ya da annenizin yanındaysanız şöyle evde var olan tüm sebzelerden oluşan karma bir sebze çorbası süper rahatlatıcı olacaktır. E bazen .Net Framework tarafında da eldeki materyalleri bir araya getirip güzel bir çorba yapmak gerekir <img class="wlEmoticon wlEmoticon-winkingsmile" style="border-style: none;" src="/pics/wlEmoticon-winkingsmile_67.png" alt="Göz kırpan gülümseme" /> Güzel bir çorba hazırlamaya ne dersiniz?</p>
<p>Hazırlayacağımız çorbamızda çok kıymetli yardımcılarımız da var. Son katılımcılarımız ile gerçekleştirmekte olduğumuz <strong>Asp.Net</strong> eğitiminden çok güzel fikirler ve örnekler çıkmaya devam ediyor. Geliştireceğimiz örnek <strong>Solution</strong> içerisinde <strong>Entity Framework, WCF Service, LINQ, Asp.Net Web Application, Web User Control, LINQ</strong> gibi pek çok kavram yer almakta. Temel olarak başlangıçtaki senaryomuz ise şu : <em>“Asp.Net web uygulamamızda yer alan bir Web User Control’ ümüz, AdventureWorks veritabanında yer alan herhangibir Product' satırına ait bazı alan bilgilerini gösterecek”</em></p>
<p>Pekala bu iş için hemen bir <strong>Web User Control</strong> geliştirebilir ve <strong>Load</strong> metodunda ilgili veri çekme işlemlerini gerçekleştirerek basitçe sonuca gitmeyi düşünebilirsiniz. Ama biz bu şekilde button arkası programlama yapmamayı tercih ediyoruz <img class="wlEmoticon wlEmoticon-smile" style="border-style: none;" src="/pics/wlEmoticon-smile_16.png" alt="Gülümseme" /> Bunun yerine aşağıdaki grafikte yer alan Solution içeriğini üreterek ilerleyeceğiz. <em>(Dilerseniz yazının son satırından Solution’ ı indirip inceleyin)</em></p>
<p><a href="https://buraksenyurt.com/pics/bei_10.gif"><img style="background-image: none; margin: 4px 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="bei_10" src="/pics/bei_10_thumb.gif" alt="bei_10" width="268" height="549" border="0" /></a></p>
<p><img class="wlEmoticon wlEmoticon-smile" style="border-style: none;" src="/pics/wlEmoticon-smile_16.png" alt="Gülümseme" /> İlk olarak <strong>AdventureWorks</strong> veritabanındaki bazı tabloları içerecek olan <strong>Entity Model’</strong> imizi tasarlayarak işe başlayalım. Söz konusu <strong>Class Library</strong> projesi içerisinde kullanacağımız <strong>Entity Model</strong> diagramının içeriğini ise başlangıçta aşağıdaki gibi oluşturabiliriz.</p>
<p><a href="https://buraksenyurt.com/pics/bei_11.gif"><img style="background-image: none; margin: 4px 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="bei_11" src="/pics/bei_11_thumb.gif" alt="bei_11" width="530" height="155" border="0" /></a></p>
<p>Şimdilik <strong>Product</strong> ve <strong>ProductSubCategory</strong> tablolarının karşılığı olan Entity içeriklerinin yer aldığı bir diagram ile karşı karşıyayız. Diğer yandan<strong> Web User Control’</strong> ümüzü geliştirene kadar kat etmemiz gereken daha çok yolumuz olacak. Öncelikle bir <strong>Product</strong> içeriğini dış ortama verecek olan iş fonksiyonelliklerini içeren bir katman daha yazacağız. Söz konusu katman tahmin edeceğiniz üzere bir <strong>Class Library</strong> olacak. Bu katmanda ekstradan bir<strong> Business Object</strong> daha kullanıyor olacağız. <em>Çünkü <strong>Product</strong> tipinin tüm içeriğini dış ortama sunmak gibi bir niyetimiz olmadığını düşünmekteyiz.</em> Bu sebepten <strong>Product</strong> tipi yerine geçecek olan bir<strong> Surrogate Type</strong> kullanımını ele alacağız. Dolayısıyla <strong>Company.Operations</strong> isimli <strong>Class Library</strong> içeriğini aşağıdaki sınıf çizelgesinde olduğu gibi tasarlayarak devam ediyoruz.</p>
<p><a href="https://buraksenyurt.com/pics/bei_12.gif"><img style="background-image: none; margin: 4px 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="bei_12" src="/pics/bei_12_thumb.gif" alt="bei_12" width="364" height="323" border="0" /></a></p>
<p>Burada görülen <strong>ProductBusinessObject</strong> aslında dış ortama sunulacak olan <strong>Product</strong> içeriğini taşıyan bir <strong>POCO</strong> nesnesidir. Aslında bu tip <strong>Business Object</strong> türlerini başka bir katman içerisinde tutmayı da düşünebiliriz <img class="wlEmoticon wlEmoticon-winkingsmile" style="border-style: none;" src="/pics/wlEmoticon-winkingsmile_67.png" alt="Göz kırpan gülümseme" /> </p>
<pre class="brush:csharp;auto-links:false;toolbar:false" contenteditable="false">namespace Company.Operations
{
public class ProductBusinessObject
{
public int ProductId { get; set; }
public string Name { get; set; }
public decimal ListPrice { get; set; }
public string SubCategoryName { get; set; }
public string Color { get; set; }
}
}</pre>
<p><strong>ProductionOperations</strong> isim sınıfımız ise şu an için tek bir operasyon sunmaktadır ve <strong>ProductId</strong> değerine göre <strong>ProductBusinessObject</strong> tipinden bir referans döndürmek üzere tasarlanmıştır.</p>
<pre class="brush:csharp;auto-links:false;toolbar:false" contenteditable="false">using System.Linq;
using AdventureWorksEntity;
namespace Company.Operations
{
public class ProductionOperations
{
public ProductBusinessObject GetProduct(int ProductId)
{
ProductBusinessObject result = null;
using (AdventureWorksEntities context = new AdventureWorksEntities())
{
result = (from p in context.Products
where p.ProductID == ProductId
select new ProductBusinessObject
{
ProductId=p.ProductID,
Name=p.Name,
ListPrice=p.ListPrice,
Color=p.Color,
SubCategoryName=p.ProductSubcategory.Name
}).FirstOrDefault<ProductBusinessObject>();
}
return result;
}
}
}</pre>
<p>Örneğimizi <strong>EF 4.0</strong> versiyonu ile geliştirdiğimiz için bir <strong>Lazy Loading</strong> durumunun da söz konusu olduğunu ifade edelim. <strong>SubCategoryName</strong> özelliğine değer atanan satıra dikkat edin <img class="wlEmoticon wlEmoticon-winkingsmile" style="border-style: none;" src="/pics/wlEmoticon-winkingsmile_67.png" alt="Göz kırpan gülümseme" /></p>
<p>Artık söz konusu iş operasyonunu dış dünyaya sunacak bir uygulamayı da geliştirebiliriz. Bu uygulama favorimiz olan <strong>WCF</strong> tabanlı bir servis olarak düşünülmektedir. Böylece <strong>Entity</strong> modelimiz, <strong>Business Object’</strong> lerimiz ve <strong>Business Operasyonlarımızın</strong> tamamı söz konusu servis uygulamasının arkasında kalacaktır. Yani asıl End User’ lar bu işlevselliklere erişebilmek için servis katmanı üzerinden geçmek zorunda kalacaklardır. WCF Service uygulamamızın içeriği aşağıdaki diagramda görüldüğü gibidir.</p>
<p><a href="https://buraksenyurt.com/pics/bei_13.gif"><img style="background-image: none; margin: 4px 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="bei_13" src="/pics/bei_13_thumb.gif" alt="bei_13" width="355" height="329" border="0" /></a></p>
<p><strong>IProductionService</strong> isimli <strong>servis sözleşmemiz(Service Contract)</strong> şu şekildedir;</p>
<pre class="brush:csharp;auto-links:false;toolbar:false" contenteditable="false">using System.ServiceModel;
using Company.Operations;
namespace AdventureWorksService
{
[ServiceContract]
public interface IProductionService
{
[OperationContract]
ProductBusinessObject GetProduct(int ProductId);
}
}</pre>
<p>Sözleşmemiz senaryomuza göre bir ürünün elde edilmesi ve <strong>ProductBusinessObject</strong> tipinden geriye döndürülmesi işlemini üstlenen basit bir operasyon sunmaktadır. Bu operasyonun uyarlaması ise <strong>ProductionService</strong> sınıfı içerisinde gerçekleştirilmektedir.</p>
<pre class="brush:csharp;auto-links:false;toolbar:false" contenteditable="false">using Company.Operations;
namespace AdventureWorksService
{
public class ProductionService
: IProductionService
{
ProductionOperations productionOperator = new ProductionOperations();
public ProductBusinessObject GetProduct(int ProductId)
{
return productionOperator.GetProduct(ProductId);
}
}
}</pre>
<p>Servis uygulamamızda dikkat edilmesi gereken noktalardan birisi de, <strong>AdventureWorks</strong> entity modelini kullanabilmesi için gerekli <strong>Connection String</strong> bilgisine sahip olma zorunluluğudur. Bildiğiniz üzere Entity Modelimizi bir <strong>Class Library</strong> içerisinde tutumaktayız ve çalışma zamanında ilgili mapping işlemlerini üstlenecek olan yürütücü uygulamanın söz konusu mapping için bir bağlantı bilgisine sahip olması gerekiyor. Dolayısıyla <strong>AdventureWorksEntity</strong> kütüphanesinde otomatik olarak üretilen <strong>connection string</strong> bilgisinin servis uygulamasındaki <strong>web.config</strong> dosyasında yer alması şart.</p>
<pre class="brush:xml;auto-links:false;toolbar:false" contenteditable="false"><?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>
<add name="AdventureWorksEntities" connectionString="metadata=res://*/AdventureModel.csdl|res:
//*/AdventureModel.ssdl|res://*/AdventureModel.msl;
provider=System.Data.SqlClient;provider connection string="Data Source=.;Initial Catalog=AdventureWorks;Integrated Security=True;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" />
</connectionStrings>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>
</configuration></pre>
<p>Çorbamıza yeni baharatlar katarak devam edelim <img class="wlEmoticon wlEmoticon-winkingsmile" style="border-style: none;" src="/pics/wlEmoticon-winkingsmile_67.png" alt="Göz kırpan gülümseme" /></p>
<p>Artık servis uygulamamız da hazır olduğuna göre bunu kullanacak olan <strong>Asp.Net Web</strong> <strong>Uygulamasını</strong> geliştirerek yol alabiliriz. Tahmin edileceği üzere Asp.Net Web uygulamamız, <strong>AdventureWorksService</strong> isimli <strong>WCF Servisini</strong> referans etmelidir.</p>
<p><a href="https://buraksenyurt.com/pics/bei_17.gif"><img style="background-image: none; margin: 4px 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="bei_17" src="/pics/bei_17_thumb.gif" alt="bei_17" width="282" height="225" border="0" /></a></p>
<p>Yazımızın başında belirttiğimiz senaryomuzdan hatırlayacağınız üzere bir <strong>Web User Control’</strong> den bahsediyorduk. Bu <strong>Web User Control’</strong> ün <strong>Business Object’</strong> imize göre tasarlanması gerekiyor. Bu amaçla aşağıdaki gibi bir tasarım gerçekleştirebiliriz.</p>
<p><a href="https://buraksenyurt.com/pics/bei_14.gif"><img style="background-image: none; margin: 4px 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="bei_14" src="/pics/bei_14_thumb.gif" alt="bei_14" width="419" height="267" border="0" /></a></p>
<pre class="brush:html;auto-links:false;toolbar:false" contenteditable="false"><%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ProductControl.ascx.cs" Inherits="CompanyPortal.ProductControl" %>
<style type="text/css">
.style1
{
width: 400px;
font-family: "Courier New", Courier, monospace;
}
.style2
{
width: 176px;
}
.style3
{
width: 176px;
font-weight: bold;
}
</style>
<table border="1" cellpadding="5" cellspacing="1" class="style1">
<tr>
<td class="style2">
</td>
<td style="text-align: right">
<asp:Label ID="ProductIdLabel" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td class="style3">
Name</td>
<td>
<asp:Label ID="ProductNameLabel" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td class="style3">
List Price</td>
<td>
<asp:Label ID="ProductListPriceLabel" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td class="style3">
Color</td>
<td>
<asp:Label ID="ProductColorLabel" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td class="style3">
Sub Category Name</td>
<td>
<asp:Label ID="ProductSubCategoryNameLabel" runat="server"></asp:Label>
</td>
</tr>
</table></pre>
<p>Kod tarafında ise aşağıdaki işlemleri gerçekleştirebiliriz.</p>
<pre class="brush:csharp;auto-links:false;toolbar:false" contenteditable="false">using System;
using CompanyPortal.Production;
namespace CompanyPortal
{
public partial class ProductControl
: System.Web.UI.UserControl
{
ProductionServiceClient proxy = new ProductionServiceClient();
int productId;
public int ProductId
{
get { return productId; }
set { productId = value; }
}
public string ProductName
{
get { return ProductNameLabel.Text; }
}
public decimal ProductListPrice
{
get { return Decimal.Parse(ProductListPriceLabel.Text); }
}
public string ProductColor
{
get { return ProductColorLabel.Text; }
}
public string ProductSubCategoryName
{
get { return ProductSubCategoryNameLabel.Text; }
}
public void LoadContent()
{
ProductBusinessObject bO = proxy.GetProduct(ProductId);
if (bO != null)
{
ProductIdLabel.Text = bO.ProductId.ToString();
ProductNameLabel.Text = bO.Name;
ProductListPriceLabel.Text = bO.ListPrice.ToString();
ProductColorLabel.Text = bO.Color;
ProductSubCategoryNameLabel.Text = bO.SubCategoryName;
}
}
}
}</pre>
<p>Dikkat edileceği üzere <strong>Web User Control</strong> herhangibir ürün numarasına bağlı bir <strong>ProductBusinessObject</strong> içeriğini dış ortama <strong>özellikler(Properties)</strong> yardımıyla da sunmaktadır. Ayrıca içerisinde yer alan <strong>Label</strong> kontrollerinin çalışma zamanında yüklenmesi için <strong>LoadContent</strong> isimli bir metoddan yararlanılmaktadır.</p>
<p>Artık <strong>Web User Control</strong> bileşenimizi örnek bir <strong>aspx</strong> sayfasında kullanmaya çalışarak ilk testimizi gerçekleştirebiliriz. Bunun için aşağıdaki tasarıma ve kod içeriğine sahip bir sayfa eklediğimizi düşünelim.</p>
<p><a href="https://buraksenyurt.com/pics/bei_15.gif"><img style="background-image: none; margin: 4px 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="bei_15" src="/pics/bei_15_thumb.gif" alt="bei_15" width="290" height="155" border="0" /></a></p>
<pre class="brush:html;auto-links:false;toolbar:false" contenteditable="false"><%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="CompanyPortal.Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
Ürün Numarasını Girin :
<asp:TextBox ID="ProductIdTextBox" runat="server"></asp:TextBox>
<br />
<br />
<asp:Button ID="GetProductButton" runat="server"
onclick="GetProductButton_Click" Text="Get Product" />
<br />
<br />
<asp:PlaceHolder ID="ProductPlaceHolder" runat="server"></asp:PlaceHolder>
</div>
</form>
</body>
</html></pre>
<p>ve kod içeriği;</p>
<pre class="brush:csharp;auto-links:false;toolbar:false" contenteditable="false">using System;
namespace CompanyPortal
{
public partial class Default : System.Web.UI.Page
{
protected void GetProductButton_Click(object sender, EventArgs e)
{
int productId;
if (Int32.TryParse(ProductIdTextBox.Text, out productId))
{
ProductControl prdControl = LoadControl("ProductControl.ascx") as ProductControl;
if (prdControl != null)
{
prdControl.ProductId = productId;
prdControl.LoadContent();
ProductPlaceHolder.Controls.Add(prdControl);
}
}
}
}
}</pre>
<p>Sayfamızda sembolik olarak <strong>TextBox</strong> kontrolüne girilen sayısal değere göre <strong>Product</strong> bilgisinin çekilmesi ve bulunan ürüne ait bazı bilgilerin dinamik olarak yüklenen <strong>Web User Control</strong> içerisinde gösterilmesi sağlanmaktadır. Söz gelimi çalışma zamanında <strong>774</strong> numaralı ürüne ait bilgileri çekmek istersek aşağıdaki ekran görüntüsünde yer alan sonucu elde ederiz <img class="wlEmoticon wlEmoticon-openmouthedsmile" style="border-style: none;" src="/pics/wlEmoticon-openmouthedsmile_16.png" alt="Açık ağızlı gülümseme" /></p>
<p><a href="https://buraksenyurt.com/pics/bei_16.gif"><img style="background-image: none; margin: 4px 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="bei_16" src="/pics/bei_16_thumb.gif" alt="bei_16" width="429" height="335" border="0" /></a></p>
<p>Eğer örneği buraya kadar başarılı bir şekilde getirdiyseniz şöyle bir arkanıza yaslanın ve neler yaptığımızı bir düşünün <img class="wlEmoticon wlEmoticon-winkingsmile" style="border-style: none;" src="/pics/wlEmoticon-winkingsmile_67.png" alt="Göz kırpan gülümseme" /></p>
<p>Son olarak <strong>Solution</strong> içerisinde yer alan <strong>Assembly’</strong> lar arasındaki ilişkiyi göstererek yazımızı yavaş yavaş sonlandıralım.</p>
<p><a href="https://buraksenyurt.com/pics/bei_9.gif"><img style="background-image: none; margin: 4px 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="bei_9" src="/pics/bei_9_thumb.gif" alt="bei_9" width="640" height="200" border="0" /></a></p>
<p>Örneği geliştirmek, farklı testler uygulayarak olası hataları düzeltmek, kodu tekrardan gözden geçirip iyileştirmek de sizin göreviniz olsun. Söz gelimi bir alt kategoriye bağlı ürünleri <strong>ProductBusinessObject</strong> tipinden çekip her biri için dinamik olarak <strong>ProductControl</strong> bileşeni üreten ve web sayfasına ekleyen bir senaryoyu çözümümüze ilave edebilirsiniz. Hatta alt kategori bilgilerinin Web uygulaması arayüzüne dahil edilmesi için gerekli geliştirmeleri de yapabilirsiniz. Eğer buraya kadar yaptıklarımızla kafanız çok karıştıysa aşağıdaki parçayı dinleyip kendinize gelmeyi de deneyebilirsiniz <img class="wlEmoticon wlEmoticon-smile" style="border-style: none;" src="/pics/wlEmoticon-smile_16.png" alt="Gülümseme" /></p>
<p><object width="250" height="40">
<param name="movie" value="http://grooveshark.com/songWidget.swf" />
<param name="wmode" value="window" />
<param name="allowScriptAccess" value="always" />
<param name="flashvars" value="hostname=cowbell.grooveshark.com&songIDs=32204406&style=wood&p=0" /><embed type="application/x-shockwave-flash" width="250" height="40" src="http://grooveshark.com/songWidget.swf" wmode="window" allowscriptaccess="always" flashvars="hostname=cowbell.grooveshark.com&songIDs=32204406&style=wood&p=0" />
</object></p>
<p>Tekrardan görüşünceye dek hepinize mutlu günler dilerim.</p>
<p><a href="https://buraksenyurt.com/pics/2011%2f10%2fCompany.rar">Company.rar (153,21 kb)</a></p>2011-10-02T23:48:00+00:00web user controldynamic control loadingentity frameworklinqwcfserviceentity modelbsenyurtHazırlayacağımız çorbamızda çok kıymetli yardımcılarımız da var. Son katılımcılarımız ile gerçekleştirmekte olduğumuz Asp.Net eğitiminden çok güzel fikirler ve örnekler çıkmaya devam ediyor. Geliştireceğimiz örnek Solution içerisinde Entity Framework, WCF Service, LINQ, Asp.Net Web Application, Web User Control, LINQ gibi pek çok kavram yer almakta. Temel olarak başlangıçtaki senaryomuz ise şu : “Asp.Net web uygulamamızda yer alan bir Web User Control’ ümüz, AdventureWorks veritabanında yer alan herhangibir Product' satırına ait bazı alan bilgilerini gösterecek”https://buraksenyurt.com/pingback.axdhttps://buraksenyurt.com/post.aspx?id=595060d7-fb4b-4fc9-bb48-1a2ad9f901a30https://buraksenyurt.com/trackback.axd?id=595060d7-fb4b-4fc9-bb48-1a2ad9f901a3https://buraksenyurt.com/post/Birlikte-Gelistirdik#commenthttps://buraksenyurt.com/syndication.axd?post=595060d7-fb4b-4fc9-bb48-1a2ad9f901a3