چگونگی دسترسی به فیلد و خاصیت غیر عمومی
یک از ابتدایی‌ترین مواردی که در یادگیری دات نت آموزش داده می‌شود مباحث مربوط به کپسوله سازی است. برای مثال فیلد‌ها و خواص Private که به صورت خصوصی هستند یا Protected هستند از خارج کلاس قابل دسترسی نیستند. برای دسترسی به این کلاس‌ها باید از خواص یا متدهای عمومی استفاده کرد. public class Book { private int code = 10; public int GetCode() { return code; } } یا فیلد ...
آشنایی با KnownTypeAttribute در WCF
تشریح مسئله : KnownTypeAttribute چیست و چگونه از آن استفاده کنیم؟پیش نیاز : آشنایی اولیه با مفاهیم WCF برای فهم بهتر مطالب در ابتدا یک WCf Service Application ایجاد کنید و مدل زیر را بسازید: [DataContract] public abstract class Person { [DataMember] public int Code { get; set; } [DataMember] public string Name { get; set; } } یک کلاس ...
آشنایی با TransactionScope
TransactionScope روشی برای پیاده سازی تراکنش در .Net است که برای اولین بار در دات نت 2 معرفی شده است. روش پیاده سازی آن بسیار ساده است و همین سادگی و راحتی کار با اون باعث شده است که خیلی از برنامه نویس‌ها رو متمایل به خودش کنه. در ادامه به روش استفاده و مزایا و معایب این روش برای پیاده سازی تراکنش‌ها می‌پردازیم. این روش دارای تمام خواص یک تراکنش است(اصطلاحا به این خواص ACID Properties گفته میشود) ...
مقایسه بین حلقه های تکرار (Lambda ForEach و for و foreach)
به حلقه‌های تکرار زیر دقت کنید. #1 حلقه for با استفاده از متغیر Count لیستvar ListOfNumber = new List<int>() { 100, 200, 300 , 400 , 500 }; for ( int i = 0 ; i < ListOfNumber.Count ; i++ ) { Console.WriteLine( ListOfNumber[i] ); }#2حلقه for با استفاده از متغیر یا مقدار صریحvar ListOfNumber = new List<int>() { 100, 200, 300 , 400 , 500 }; for ( int i = 0 ; i < 5 ; i++ ) { ...
بالا بردن سرعت DbContext هنگام ثبت داده های زیاد
تشریح مسئله :شاید شما هم هنگام ثبت، ویرایش و حتی حذف داده‌های زیاد در Code First متوجه کاهش چشمگیر کارایی پروژه خود شده باشید.(برای مثال ثبت 5000 داده یا بیشتر به صورت هم زمان).برای رفع مشکل بالا چه باید کرد؟نکته : آشنایی اولیه با مفاهیم EF CodeFirst برای درک بهتر مفاهیم الزامی است. EntityFramework Code First هنگام کار با Poco Entities برای اینکه مشخص شود که چه داده هایی باید به دیتابیس ارسال شود مکانیزمی ...
مدیریت تغییرات در سیستم های مبتنی بر WCF
تشریح مسئله : در صورتی که بعد از انتشار برنامه؛ در نسخه بعدی مدل سمت سرور تغییر کرده باشد و امکان بروز رسانی مدل‌های سمت کلاینت وجود نداشته باشد برای حل این مسئله بهترین روش کدام است. نکته : برای فهم بهتر مطالب آشنایی اولیه با مفاهیم WCF الزامی است. ابتدا مدل زیر را در نظر بگیرید: [DataContract] public class Book { [DataMember] public i ...
WCF Method Overloading
تشریح مسئله : چگونه متد‌های سرویس WCF را Overload کنیم. نکته : آشنایی با مفاهیم اولیه WFC برای فهم بهتر مفاهیم الزامی است. همانطور که می‌دانیم امکان Overload کردن متد‌ها در سرویس‌های WCF وجود ندارد. یعنی نمی‌توان 2 متد با نام و پارامتر‌های متفاوت داشت. به مثال زیر دقت کنید. ابتدا یک Contract به صورت زیر تعریف کنید [ServiceContract] public interface ISampleService { [OperationContract] int Sum( int n ...
مدیریت Instance در WCF
نحوه پیاده سازی و مدیریت Instance در پروژه‌های مبتنی بر WCF نکته : آشنایی اولیه با مفاهیم WCF جهت درک صحیح مطالب الزامی است. تشریح مسئله : در صورتی که نیاز باشد که نمونه ساخته شده از سرویس (سمت سرور) به صورت Singleton باشد بهترین روش برای پیاده سازی به چه صورت است. برای شروع ابتدا مثال زیر را پیاده سازی می‌کنیم. یک Contract به صورت زیر تعریف می‌کنیم:[ServiceContract(SessionMode=SessionMode.Allo ...
پیاده سازی UnitOfWork به وسیله MEF
در این پست قصد دارم یک UnitOfWork به روش MEF پیاده سازی کنم. ORM مورد نظر EntityFramework CodeFirst است. در صورتی که با UnitOfWork , MEF آشنایی ندارید از لینک‌های زیر استفاده کنید:MEFUnitOfWork برای شروع ابتدا مدل برنامه رو به صورت زیر تعریف کنید. public class Category { public int Id { get; set; } public string Title { get; set; } } ...
ایجاد ServiceLocator با استفاده از Ninject
در پست قبلی روش استفاده از ServiceLocator رو با استفاده از Microsoft Unity بررسی کردیم. در این پست قصد دارم همون مثال رو با استفاده از Ninject پیاده سازی کنم. Ninject ابزاری برای پیاده سازی Dependency Injection در پروژه‌های دات نت است که کار کردن با اون واقعا راحته. برای شروع کلاس‌های Book و BookRepository و BookService و اینترفیس IBookRepository از این پست دریافت کنید. حالا با استفاده از NuGet باید ServiceLocator رو بر ...