در قسمت قبل ، تغییرات Migrations، در EF Core 1.0 بررسی و گردش کاری آن به همراه مثالهایی ارائه شدند. در این قسمت یک سری از نکات تکمیلی EF Core Migrations را بررسی خواهیم کرد. انتقال Context و Migrations به یک اسمبلی دیگر
تا اینجا اگر مثال بررسی شده را دنبال کرده باشید، دو پوشهی Entities و Migrations را به همراه فایلهای موجودیتها، Context برنامه و Migrations آنها، در همان پروژهی اصلی برنامه، خواهید داشت: ...
پس از برپایی تنظیمات اولیهی کار با EF Core در ASP.NET Core ، اکنون نوبت به تبدیل کلاس Person، به جدول معادل آن در بانک اطلاعاتی برنامه است. در EF Core نیز همانند EF Code First 6.x، برای انجام یک چنین اعمالی از مفهومی به نام Migrations استفاده میشود که در ادامه به آن خواهیم پرداخت.
پیشنیازهای کار با EF Core Migrations در قسمت قبل در حین بررسی «برپایی تنظیمات اولیهی EF Core 1.0 در یک برنامهی ASP.NET Core 1.0»، چهار م ...
اصل چهارم: Starve for loosely coupled designs "به دنبال طراحی با
اتصال سست بین اجزا باش" اتصال بین اجزای برنامه نویسی
باعث سختتر شدن مدیریت تغییرات میشود؛ چرا که با تغییر یک بخش، بخشهای متصل نیز
دچار مشکل خواهند شد. اتصالها از لحاظ نوع قدرت متفاوتند و اساسا سیستمی بدون
اتصال وجود ندارد. لذا باید به دنبال یک طراحی با کمترین میزان قدرت اتصال یا
همان سست اتصال باشیم. تا به اینجا ، اصلهای دوم و سوم ما
...
در ادامهی سری « ارتقاء به ASP.NET Core 1.0 » اگر بخواهیم مباحث اعتبارسنجی کاربران و ASP.NET Identity مخصوص آنرا بررسی کنیم، نیاز است ابتدا مباحث Entity framework Core 1.0 را بررسی کنیم. به همین جهت در طی چند قسمت مباحث پایهای کار با EF Core 1.0 را در ASP.NET Core 1.0، بررسی خواهیم کرد. بنابراین پیشنیاز ضروری این مباحث، مطالعهی سری « ارتقاء به ASP.NET Core 1.0 » است و در آن از مباحثی مانند چگونگی کار با فایلهای کانفیگ جدید، تزریق وابست ...
قصد دارم مجموعه ای کامل از اصول طراحی شیء گرا، الگوهای
طراحی و best practice های مربوطه را ارائه دهم. از این رو
ابتدا با اصول طراحی شروع میکنم. سپس در مقالات آتی به الگوهای مختلف خواهم
پرداخت و تا جایی که معلومات اجازه دهد مشخص خواهم کرد که هر الگو متمرکز بر رعایت
کدام یک از اصول است و اینکه آیا مناسب است از الگوی مورد نظر استفاده کنیم. این مطالب نیز چکیده ای از آموزشهای Lynda, Pluralsight , SkillFeed ...
Capturing Outer Variables
یک عبارت لامبدا میتواند از متغیرهای محلی و یا پارامترهای متدی که در آن تعریف شده است، استفاده نماید (Outer Variables). این متغیرها را captured variables مینامند. عبارت لامبدایی که از این متغیرها استفاده میکند، closure نامیده میشود. برای مثال: static void Main()
{
int factor = 2;
Func<int, int> multiplier = n => n * factor;
Console.WriteLi ...
یکی از مفاهیمی که بنظر پیچیده میآمد و هر دفعه موقع مطالعه از آن فرار میکردم، همین بحث COVARIANCE و CONTRAVARIANCE بود. در اینجا قصد دارم به زبان ساده این مفاهیم را شرح دهم. Covariance A را در نظر بگیرید که قابل تبدیل به B باشد. در اینصورت X، دارای پارامتر کواریانس است اگر <X<A قابل تبدیل به <X<B باشد. بدون ذکر مثال شاید این تعریف خیلی ملموس نباشد. پس بهتر است با ذکر مثال به تشریح مفاهیم بپردازیم. نکته: ...
در سه قسمت قبلی با مفاهیم گوناگونی از وبپک آشنا شدیم که میتوان به ساخت باندلهای ساده و پیشرفته، استفاده از لودرها، فایلهای پیکربندی و ... اشاره کرد. بارگذاری فایلهای css به کمک وبپک همان طور که قبلا اشاره شد، هستهی وبپک به خودی خود بجز باندل کردن اسکریپتهای خام جاوا اسکریپت و در نهایت Minify کردن آنها، قادر به انجام کار دیگری نیست. همین طور ذکر شد، برای اینکه وبپک فوت و فن جدیدی را یاد بگیرد، از Loaderها استفا ...
یکی از راههای ذخیره دادهها در سمت کلاینت، استفاده از کوکیها میباشد که تقریبا همه با آن کم و بیش آشنایی داریم و هر کدام بسته به نیاز، تا
حدودی از آن استفاده کردهایم. اما میتوان local storage را در یکی دو
مورد نسبت به کوکی برتر شمرد؛ مواردی مثل حجم دادههای ذخیره شده که نسبت
به کوکی بیشتر میباشد و عدم ارسال با درخواستهای ارسالی سمت سرور.
Local Storage
با استفا ...
در مطلب قبلی با فایلهای پیکربندی وبپک، وب سرور وبپک، لودرها و ... آشنا شدیم . استفاده از preLoaderها در وبپک پیشتر با Loaderها آشنا شدیم و دلیل استفادهی از آنها نیز ذکر و Loader تایپ اسکریپت را نیز نصب کرده و با استفاده از آن فایلهای پروژه را ترنسپایل کردیم. اما ممکن است که همهی کارها در استفاده از یک Loader خلاصه نشوند. ممکن است بخواهید از یک ابزار Linting مانند jsHint قبل از اجرای Loader ها بهره ببرید و این ...