ویدئوی آموزش مقدمات CodeFirst در قالب یک کلاس آموزشی به همراه مثال
این ویدئو به مدت حدوداً یکساعت و حجمی حدود 50 مگابایت، مربوط به یک کلاس آموزشی است که در ضمن آن به بررسی مقدماتی چگونگی بکاربردن روش CodeFirst برای تولید دیتابیس و جداول آن، پرداخته‌ام. پیشاپیش از نواقص و نارسایی‌های احتمالی آن، پوزش می‌طلبم.سرفصل مطالبی که بطور مختصر مطرح شده‌اند، عبارتند از:معرفی EF CodeFirst و کاربرد آناستفاده از Nuget Package Manager برای افزودن EntityFrameWorkایجاد کلاس نمونه User و معرفی DbContext جهت معرفی کلاس ...
نکاتی درباره پرس و جو با استفاده از پردازش موازی
برای انجام عملیات پرس و جوی LINQ با استفاده از روش پردازش موازی به راحتی میتوان الحاقیه AsParallel را به هر داده‌ای از نوع IEnumerable<T> افزود: var data = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; // پرس و جوی عادی var q1 = from i in data select i; // پرس و جو به شیوه موازی var q2 = from i in data.AsParallel() select i;الحاقیه .AsParallel() در پرس و جویq2 نسخه موازی LINQ را بر روی متغیر data اجرا میکند و اگر ...
به دست آوردن اطلاعات کد اجراکننده یک متد
در C# 5 به بعد می‌توان به پارامترهای یک متد، پارامترهای دلخواهی را افزود تا به واسطه آن‌ها مشخصات کدی که این متد را فراخوانده، به دست آورد. روش انجام این کار، افزودن صفات زیر به پارامترهای متد مورد نظر است: [CallerFilePath]:مسیر کد فراخواننده را نگه می‌دارد. [CallerLineNumber]: شماره خط کد فراخواننده را نگه می‌دارد. [CallerMemberName] : ...
اجرای متد از طریق Reflection
برای اجرای متد درون یک کلاس از طریق Reflection ابتدا نوع آن کلاس را به دست می‌آوریم و سپس از طریق کلاس Activator.CreateInstance یک نمونه از آن کلاس را ساخته و در متغیری از نوع object ذخیره کرده و با استفاده از GetMethod اطلاعات متد مورد نظر خود را در متغیری ذخیره کرده و سپس از طریق دستور Invoke آن متد را اجرا می‌کنیم. دستور Invoke دو سربارگذاری دارد که در یک نوع از آن، متغیر حاوی نمونه کلاس و پارامترهای متد مورد نظر، در قالب یک آرایه از ...
Serialization #2
مطابق آنچه در قسمت قبل گفته شد برای آن‌که بتوان از مدل News برای سریالی‌کردن استفاده کرد، باید آن را به شکل ذیل پیاده‌سازی کرد: [DataContract] public class News { [DataMember] public int Id; [DataMember] public string Body; [DataMember] public DateTime News ...
Serialization #1
در این نوشتار به Serialization و Deserialization یعنی مکانیزمی که توسط آن اشیاء می‌توانند به صورت متنی مسطح و یا به شکل باینری درآیند، پرداخته می‌شود. مفهوم Serialization ...
تفاوت انواع var و dynamic
در ابتدا به توضیحاتی درباره کنترل نوع به صورت ایستا و کنترل نوع در زمان اجرا، توجه کنید: کنترل نوع ایستا (Static Type Checking) کامپایلر را قادر به بررسی درستی برنامه می‎کند، بدون آنکه آن را اجرا کند. مثلاً کد زیر با خطا مواجه می‎‎شود: ...
توابع تعمیم یافته در #C
از توابع تعمیم یافته می‌توان برای توسعه توابع هر کلاس یا اینترفیسی استفاده کرد. یعنی می‌‎توان یک تابع را به هر کلاسی اضافه کرد. قبل از C# 3.0 فقط می‌شد یک کلاس را از طریق ارث‌بری از آن توسعه داد و به کلاس مهروموم شده یاSealed نیز نمی‌شد تابعی افزود ...
نکته‌ای در استفاده از AutoMapper
مدل Student را به شکل زیر در نظر بگیرید public class Student { public int Id { get; set; } public string Name { get; set; } public string Family { get; set; } public DateTime Birthdate { get; set; } public string Tel { get; set; } public string CellPhone { get; set; } [Email] public string Email { get; set; } } : آن را به صورت زیر Vie ...
استفاده از MediaWiki بهترین روش نگهداری یادداشت‌های شخصی خصوصا برای برنامه‌نویس‌ها
شیوه‌های متعددی رو برای نگهداری نکات مختلفی که ضمن کار یادمی‌گرفتم، تست کردم از جمله نوشتن در کاغذهای مخصوص فیش و استفاده از OneNote و بعضی از نرم افزارهای فیش نگاری و ... همه روش‌هایی که گفته شد به نوعی یک یادداشت برداری کاغذی ولی به سبک دیجیتال هستند نه خیلی بیشتر که معمولا خسته کننده هستند و کم نتیجه و عمدتا پاسخگوی نیازهای جدید نیستند پس از مدتی استفاده از این شیوه‌ها به این نتیجه رسیدم که یک ویکی شخصی کم دردسر برای خودم ر ...