گاهی نیاز داریم صفحات را در دیتابیس ذخیره کنیم تا علاوه بر قابلیت جستجوی پیشرفتهی صفحات از طریق Full Text Search، بتوانیم از پویایی صفحات کامپایل شونده نیز استفاده کنیم. جهت پیاده سازی این مثال ما از Entity Framework استفاده میکنیم. بنابراین ابتدا کلاس Page را جهت ذخیره آدرس و محتوی صفحات مجازی در دیتابیس، پیاده سازی میکنیم: public class Page
{
public int Id { get; set; }
public string Path { get; set; }
...
زمانیکه در ویژوال استودیو 2015، یک Unit Test Project جدید را ایجاد میکنید:
پروژهای را مبتنی بر نگارش قدیمی فریم ورک آزمونهای واحد مایکروسافت و یا همان MSTest، ایجاد میکند. در ادامه روش ارتقاء این نوع پروژهها را به نگارش 2 آن بررسی خواهیم کرد. پیشنیازهای کار با MSTest 2.x
فریم ورک MSTest برای پشتیبانی از دات نت فریم ورک کامل و همچنین NET Core. ارتقاء یافتهاست و اینبار به صورت بستههای نیوگت ارا ...
این روزها جهت اندازهگیری کارآیی قطعات کدهای دات نتی، استفاده از فریم ورکهای مخصوصی که بسیاری از نکات ریز مرتبط با اینگونه اندازهگیریها را مانند warmup یا گرم کردن JIT (جهت عدم اندازه گیری زمان کامپایل پویای کدها، بجای زمان واقعی اجرای آنها)، اندازهگیری فشار بر روی Garbage collector و غیره را انجام میدهند، بجای استفادهی از Stop Watch، متداول است. یکی از معروفترینهای این گروه، که تقریبا حالت استانداردی را در جهت اندازه گیری کارآیی ک ...
همانطور که اطلاع دارید، AutoMapper ابزاری برای نگاشت خودکار بین Model و Dto میباشد؛ که به صورت نادرست تصور کاهش سرعت در استفاده کردن از آن، بین توسعه دهندگان جا افتادهاست. در این مقاله قصد داریم به صورت دقیق، به بررسی سرعت عملکرد استفاده از AutoMapper و مقایسه آن با نگاشت دستی بپردازیم. کدهای کامل این قسمت را میتوانید از اینجا clone کرده و شخصا تست نمایید. ابتدا یک پروژهی Console Application را ساخته و AutoMapper را به ه ...
ممکن است برای شما هم پیش آمده باشد که بخواهید پس از پابلیش برنامهای که نوشتهاید، تمامی فایلهای اسمبلی استفاده شده در برنامه را نیز با فایل خروجی آن ادغام کنید و به اصلاح تنها یک فایل، برای اجرا داشته باشید. مایکروسافت ابزاری را به نام ILMerge ، برای اینکار معرفی کرده است که به وسیله آن، امکان ادغام اسمبلیها با فایل اصلی برنامه وجود دارد؛ بجز اسمبلیهای مربوط به WPF، به خاطر داشتن فایلهای XAML. برای حل این مسئله میتوان از دو راه استف ...
یکی از مشکلاتی که در برخی از طراحیهایی که تا کنون دیدهام وجود دارد، عدم استفاده از قابلیت ماژولار نویسی تنظیمات Autofac و عدم استفاده از Interfaceها برای ارتباط بین قسمتهای مختلف سیستم است. به این صورت که تمام تنظیمات مربوط به Autofac را در بالاترین لایه سمت سرور خود یعنی Service یا Web انجام میدهند که باعث میشود این لایه به تمامی لایههای پایین خود از جمله DataAccess دسترسی مستقیم داشته باشد. در یک سیستم بزرگ به دلایل بسیار از جمله ...
در بخشهای قبل، دلایل بوجود آمدن سیستمهای توزیع شده بررسی شد و تاکید کردیم که نیازمندیها، باعث تغییر و تکامل سیستمهای ما میشوند و بر همین اساس بررسی کردیم که چه نیازمندیهایی باعث میشوند که دیگر سیستمهای متمرکز به تنهایی پاسخگوی نیازهای ما نباشند و عاملی شوند برای رفتن به سمت سیستمهای توزیع شده. گفتیم که اتخاذ تصمیمات نادرست چه عواقبی را برای سیستمهای ما بوجود میآورد و بر همین اساس مهمترین فاکتورها را در انتخاب سیستمهای توزیع شده، به ...
برای ارسال متن ایمیلها، یا میتوان یک سری رشته را با هم جمع زد و ارسال کرد و یا یک View را به همراه ViewModel آن، طراحی و سپس این View را تبدیل به یک رشته کرد. روش دوم هم قابلیت طراحی بهتری دارد و هم نگهداری و توسعهی آن سادهتر است. در ادامه روش تبدیل Razor Viewهای ASP.NET Core را به یک رشته، بررسی میکنیم.
تهیه سرویسی برای رندر کردن Razor Viewها به صورت یک رشته
در ادامه کدهای کامل سرویسی را که توسط RazorViewEngi ...
بدلیل اینکه یکی از مهمترین معایب سیستمهای توزیع شده، پیچیدگی در طراحی و پیاده سازی این نوع از سیستمها میباشد و آشنا بودن ما با تعاریف، خصوصیات، مزایا، معایب، اهداف و اصطلاحات موجود در این نوع سیستمها، باعث کاهش این پیچیدگیها و مدیریت و کنترل بیشتری بر روی این پیچیدگیها میشود، پیش نیاز ورود به دنیای سیستمهای توزیع شده و استفاده از ابزارهای مرتبط با آنها، آشنا بودن با مفاهیم فوق است.
در این بخش تعاریف، خصوصیات، مزایا و معایب ...
API کار با امکانات Reflection نیز در NET Core. نسبت به نگارش کامل دات نت، دارای تغییراتی است که در ادامه مهمترینهای آنها را بررسی خواهیم کرد.
پیشنیازهای کار با Reflection در NET Core.
ابتدا نیاز است اسمبلی System.Reflection به قسمت وابستگیهای فایل project.json اضافه شود: "dependencies": {
"System.Reflection": "4.3.0"
},
البته اگر وابستگی دیگری در فایل project.json، این وابستگی را پیشتر مورد است ...