نظرات مطالب
اعتبارسنجی مبتنی بر کوکی‌ها در ASP.NET Core 2.0 بدون استفاده از سیستم Identity
- ابتدا باید هدر مورد انتظار را مشخص کنید:
public void ConfigureServices(IServiceCollection services)
{
   services.AddMvc();
   services.AddAntiforgery(options => options.HeaderName = "__RequestVerificationToken"); 
}
- بعد متدی را برای تولید توکن در فایل razor درج کنید:
@inject Microsoft.AspNetCore.Antiforgery.IAntiforgery Xsrf

@functions{
    public string GetAntiXsrfRequestToken()
    {
        return Xsrf.GetAndStoreTokens(Context).RequestToken;
    }
}
- سپس اگر از jQuery استفاده می‌کنید، به صورت زیر این هدر با هر درخواستی به سمت سرور ارسال می‌شود:
<script type="text/javascript">
  $.ajaxPrefilter(function (options, originalOptions, jqXHR) {
      jqXHR.setRequestHeader("__RequestVerificationToken", '@GetAntiXsrfRequestToken()');
  });
</script>
نظرات مطالب
مستند سازی ASP.NET Core 2x API توسط OpenAPI Swagger - قسمت هفتم - سفارشی سازی ظاهر مستندات API
ابتدا باید آن‌ها را گروه بندی کنید:
[HttpPost]
[ApiExplorerSettings(GroupName = "v2")]
public void Post([FromBody]Product product)
و بعد endpointهای متفاوتی را تعریف کنید:
public IServiceProvider ConfigureServices(IServiceCollection services)
{
// ....

   services.AddSwaggerGen(c =>
   {
     c.SwaggerDoc("v1", new Info { Title = "My API - V1", Version = "v1" });
     c.SwaggerDoc("v2", new Info { Title = "My API - V2", Version = "v2" });
   });

   // ....
}

public void Configure(IApplicationBuilder app)
{
   // ....

   app.UseSwaggerUI(options =>
   {
     options.SwaggerEndpoint("/swagger/v1/swagger.json", "AbpProjectName API V1");
     options.SwaggerEndpoint("/swagger/v2/swagger.json", "AbpProjectName API V2");
   }

  // ....
}
نظرات مطالب
تهیه قالب برای ارسال ایمیل‌ها در ASP.NET Core توسط Razor Viewها
با سلام؛ خطای زیر از چی میتونه باشه؟
System.AggregateException: 'Some services are not able to be constructed' 
InvalidOperationException: Error while validating the service descriptor 'ServiceType: Blog.Core.Services.Interfaces.IUserService Lifetime: Transient ImplementationType: Blog.Core.Services.UserService': Unable to resolve service for type 'Microsoft.AspNetCore.Mvc.Razor.IRazorViewEngine' while attempting to activate 'Blog.Core.Convertors.ViewRendererService'. 
InvalidOperationException: Unable to resolve service for type 'Microsoft.AspNetCore.Mvc.Razor.IRazorViewEngine' while attempting to activate 'Blog.Core.Convertors.ViewRendererService'.
در ضمن پروژه از نوع asp.net core 3 هست.
نظرات مطالب
شروع به کار با EF Core 1.0 - قسمت 4 - کار با بانک‌های اطلاعاتی از پیش موجود
این خطا صرفا به معنای عدم تطابق شماره نگارش بسته‌ی نصب شده در پروژه با آخرین شماره نگارش SDK نصب شده‌ی بر روی سیستم است. در نگارش الف، ابزار Migration از قابلیتی استفاده کرده که در نگارش ب آن از طرف خودشان ممنوع اعلام شده (برای تیم توسعه دهنده) و یا برعکس عنوان شده که چنین سرویسی را باید به صورت داخلی فراخوانی کنند (در کل هدف از این استثناء شما نیستید؛ خود تیم EF است):
public class MyDesignTimeServices : IDesignTimeServices
{
    public void ConfigureDesignTimeServices(IServiceCollection services)
        => services.AddEntityFrameworkSqlServerNetTopologySuite();
}
نظرات مطالب
ارتقاء به ASP.NET Core 1.0 - قسمت 18 - کار با ASP.NET Web API
ارتقاء به ASP.NET Core 3.0
در نگارش سوم، وابستگی مستقیم به JSON.NET در ASP.NET Core حذف شده‌است («معرفی System.Text.Json در NET Core 3.0.»). علت اینجا است که علاوه بر فراهم آوردن امکان استفاده‌ی از کتابخانه‌های JSON ثالث، نویسنده‌ی JSON.NET حاضر نشده API آن‌را بر اساس Span بازنویسی کند تا به حداکثر کارآیی برسد. بنابراین اگر می‌خواهید هنوز هم از JSON.NET استفاده کنید، نیاز است ابتدا بسته‌ی نیوگت Adapter مخصوص آن‌را جداگانه دریافت و سپس آن‌را به سیستم معرفی کنید:
public void ConfigureServices(IServiceCollection services)
{
    services.AddMvc()
        .AddNewtonsoftJson();
}
نظرات مطالب
ارتقاء به ASP.NET Core 1.0 - قسمت 6 - سرویس‌ها و تزریق وابستگی‌ها
- تنظیمات شما اسمبلی حاوی IMessagesService را اسکن می‌کند و تمام کلاس‌هایی را که از کلاس MessagesService مشتق شده باشند، به لیست سرویس‌های ثبت شده‌ی سیستم تزریق وابستگی‌ها اضافه خواهد کرد. یعنی هیچ کلاسی را.
- شما در عمل به دنبال اسکن کل اسمبلی و ثبت و اتصال IClassName‌ها به ClassName‌ها با طول عمر Transient هستید (چیزی شبیه به عملیات اسکن پیش‌فرض StructureMap) که در اینجا چنین شکلی را پیدا می‌کند:
public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
        services.Scan(scan => scan.FromAssemblyOf<IMessagesService>()
                                  .AddClasses()
                                  .AsMatchingInterface() // Registers all <`IClassName`, `ClassName`>
                                  .WithTransientLifetime()
               );
نظرات مطالب
کار با SignalR Core از طریق یک کلاینت Angular
دقیقا چه خطایی دریافت کردید؟ چون مشکلی نیست:

با این شرایط البته:

- سرویس مدنظر پیشتر در فایل آغازین برنامه ثبت شده باشد:

public void ConfigureServices(IServiceCollection services)
{
    services.AddTransient<IMyService, MyService>();
}
- همچنین هاب هم ثبت شده باشد:
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    app.UseSignalR(routes =>
            {
                routes.MapHub<MessageHub>(path: "/message");
            });
این ثبت هست که کلاس هاب را وارد سیستم تزریق وابستگی‌های ASP.NET Core می‌کند.
نظرات مطالب
ارتقاء به ASP.NET Core 1.0 - قسمت 6 - سرویس‌ها و تزریق وابستگی‌ها
معادل مطلب «Lazy loading در تزریق وابستگی‌ها به کمک StructureMap» در ASP.NET Core
public void ConfigureServices(IServiceCollection services) 
{     
   // ...
   services.AddScoped<IEmailService, EmailService>()
                .AddScoped(x => new Lazy<IEmailService>(() => x.GetRequiredService<IEmailService>())); 
   // ...
}
ابتدا سرویس مدنظر به صورت معمولی ثبت می‌شود و سپس نمونه‌ی Lazy آن بر اساس این سرویس تعریف خواهد شد.
اکنون امکان تعریف و تزریق این سرویس به صورت Lazy در سازنده‌ی کنترلرها وجود خواهد داشت:
public class EmailController : Controller 
{   
   private readonly Lazy<IEmailService> _emailService; 
   public EmailController(Lazy<IEmailService> emailService)   
   {        
       _emailService = emailService;
   }
نظرات مطالب
ارسال ویدیو بصورت Async توسط Web Api

IIS یک سری ابزار برای اینکار داره:

IIS Media Services: http://www.iis.net/media
Smooth Streaming Client: http://www.iis.net/download/SmoothClient

همچنین اصل کار به DirectX ختم میشه. دو نمونه پیاده سازی:

http://www.codeproject.com/Articles/7637/DirectX-Video-Stream-and-frame-capture

http://channel9.msdn.com/forums/TechOff/93476-Programatically-Using-A-Webcam-In-C/

نظرات مطالب
Portable Class Library چیست و چگونه از آن استفاده کنیم؟
با سلام
کار جالبی نیست، چون به شدت محدودیت می‌آره
کار صحیح‌تر این هست که یک پروژه مبتنی بر NET. بسازی، و برای استفاده مجدد کدت برای مثال در سیلورلایت، یه پروژه Silverlight ای بسازی، و فایل‌های پروژه NET. ای رو در اون Add As Link کنی که یه نوع Shortcut به حساب می‌آد، یعنی فقط یه فایل وجود داره
یک وقت هست که Library مورد نظر شما برای استفاده ( مثلا WCF Data Services Client ) در هر دو هست، آن هم با یک خط کد مشابه، ولی در حالت Portable امکان استفاده از اون رو ندارید، در حالی که در این روش هیچ محدودیتی نیست، مگر این که کلا کد شما برای مثال در سیلورلایت کار نکنه
موفق باشی