پروژه‌ای که ارسال شده دقیقا از همین روش استفاده می‌کند و مشکلی هم ندارد:


No provider for HttpClient هم یعنی تنظیمات اولیه ماژول‌ها را کامل نکردید (در دو قسمت imports و exports).

‫۶ سال و ۳ ماه قبل، دوشنبه ۲۱ خرداد ۱۳۹۷، ساعت ۱۵:۴۴
روش دوم تعریف «امکان نگاشت تنظیمات برنامه به کلاس‌‌های متناظر» در ASP.NET Core 2.1 
در نگارش 2.1، می‌توان تعریف تنظیمات strongly typed برنامه را در متد ConfigureServices، توسط متد جدید AddOptions نیز انجام داد:
public void ConfigureServices(IServiceCollection services)
{
  services.AddOptions<MyOptions>()
   .Configure<IHostingEnvironment>((o,env) =>
   {
    o.Path = env.WebRootPath;
   });
}
رفع محدودیت «خروجی کوئری SQL، تنها باید معادل یکی از کلاس‌های موجودیت‌های شما باشد» در نگارش 2.1
در نگارش 2.1 مفهوم جدیدی به نام Query Types ارائه شده‌است که امکان نگاشت به خروجی‌های خاص بانک اطلاعاتی مانند Viewها و یا رویه‌های ذخیره شده را میسر می‌کند که این خروجی‌ها عموما مستقل از فیلدهای جداول و موجودیت‌های تعریف شده‌ی در برنامه هستند.
برای مثال فرض کنید یک View ویژه را بر اساس جدول و یا جداول بانک اطلاعاتی خود طراحی کرده‌اید:
using (var db = new BloggingContext())
{
   db.Database.ExecuteSqlCommand(
         @"CREATE VIEW View_BlogPostCounts AS 
             SELECT Name, Count(p.PostId) as PostCount from Blogs b
             JOIN Posts p on p.BlogId = b.BlogId
             GROUP BY b.Name");
}
خروجی این View که دو ستون name و PostCount را به همراه دارد، متناظر با موجودیت‌های اصلی برنامه نیست. برای تهیه نگاشتی به آن، ابتدا کلاس مدل متناظر با این ستون‌های بازگشتی را تهیه می‌کنیم:
public class BlogPostsCount
{
    public string BlogName { get; set; }
    public int PostCount { get; set; }
}

سپس برای معرفی آن به Context باید دو مرحله انجام شود:
الف) این کلاس به صورت DbQuery در Context معرفی می‌شود:
public class BloggingContext : DbContext
{
    public DbQuery<BlogPostsCount> BlogPostCounts { get; set; }
ب) در متد OnModelCreating همین Context، نگاشت این DbQuery به View یاد شده توسط متد ToView انجام می‌شود:
   protected override void OnModelCreating(ModelBuilder modelBuilder)
   {
      modelBuilder
           .Query<BlogPostsCount>().ToView("View_BlogPostCounts")
           .Property(v => v.BlogName).HasColumnName("Name");
    }
متد ToView الزاما نیازی به یک view ندارد. مفهوم آن صرفا یک خروجی فقط خواندنی است. برای مثال حتی در اینجا یک جدول بانک اطلاعاتی را هم می‌توانید ذکر کنید. اما مفهوم آن غیرقابل تغییر بودن خروجی کوئری‌های آن است. بنابراین باید دقت داشت که در اینجا مهم نیست که کلاس نگاشت تعریف شده دارای کلید هست یا خیر و ارجاعی از این کلاس را نمی‌توان در کلاس‌های موجودیت‌های اصلی مورد استفاده قرار داد.
از متد Property به این جهت استفاده شده‌است که در کلاس BlogPostsCount، خاصیت BlogName، متناظر با هیچکدام از ستون‌های بازگشتی View تعریف شده نیست. به همین جهت با استفاده از این متد مشخص کرده‌ایم که این خاصیت باید به کدام ستون بازگشتی، نگاشت شود.
و در آخر کوئری گرفتن از این DbQuery تعریف شده به صورت زیر است:
using (var db = new BloggingContext())
{
   var postCounts = db.BlogPostCounts.ToList();

مثال کامل این نکته
‫۶ سال و ۳ ماه قبل، یکشنبه ۲۰ خرداد ۱۳۹۷، ساعت ۰۵:۵۷
- اگر به تصویر ارسال شده دقت کنید، یک لاگ عملیات هم مشخص است. در اینجا خطاهای احتمالی ذکر می‌شوند. مثلا سطر زرد رنگ این تصویر به معنای نبود پوشه‌ی مربوطه است.
- اصل این مطلب به روز رسانی هست که در نظرات عنوان شده و با build پروژه به صورت خودکار رخ می‌دهد.
‫۶ سال و ۳ ماه قبل، پنجشنبه ۱۷ خرداد ۱۳۹۷، ساعت ۱۹:۲۹
معادل HtmlCleaner ایی که در این مطلب مطرح شده برای NET Core.

ابتدا بسته‌ی نیوگت DNTCommon.Web.Core را نصب کنید:
PM> Install-Package DNTCommon.Web.Core
سپس به فایل appsettings.json، تنظیمات تگ‌ها و ویژگی‌های مجاز را اضافه کنید. این تنظیمات باید در فایل آغازین برنامه خوانده شوند.
پس از آن یک نمونه مثال از IAntiXssService آن‌را جهت تمیزسازی قطعه HTML دریافتی، در اینجا می‌توانید مشاهده کنید.
‫۶ سال و ۳ ماه قبل، پنجشنبه ۱۷ خرداد ۱۳۹۷، ساعت ۱۷:۲۵
به روز رسانی
- SQLite 3.6.19 به بعد از کلیدهای خارجی پشتیبانی می‌کنند.
- در مورد مباحث همزمانی، Microsoft.Data.Sqlite پشتیبانی خوبی را از این مساله دارد (default mode: serialized به صورت توکار توسط مایکروسافت کامپایل شده و ارائه می‌شود).
- رمزنگاری نیز توسط Microsoft.Data.Sqlite پشتیبانی می‌شود: EncryptionSample 
- در مورد مرتب سازی نیز امکان تعریف custom collation در Microsoft.Data.Sqlite پیش بینی شده‌است.