HttpClient به عنوان جایگزینی برای HttpWebRequest API قدیمی، به همراه NET 4.5. ارائه شد و هدف آن یکپارچه کردن پیاده سازیهای متفاوت موجود به همراه ارائه راهحلی چندسکویی است که از WPF/UWP ، ASP.NET تا NET Core. و iOS/Android را نیز پشتیبانی میکند. تمام قابلیتهای جدید پروتکل HTTP مانند HTTP/2 نیز از این پس تنها به همراه این API ارائه میشوند.
در مطلب « روش استفادهی صحیح از HttpClient در برنامههای دات نت » با روش استفادهی تک وه ...
اگر در کدهای خود قطعه کد ذیل را دارید: using(var client = new HttpClient())
{
// do something with http client
}
استفادهی از using در اینجا، نهتنها غیرضروری و اشتباه است، بلکه سبب از کار افتادن زود هنگام برنامهی شما با صدور استثنای ذیل خواهد شد: Unable to connect to the remote server
System.Net.Sockets.SocketException: Only one usage of each socket address (protocol/network address/port) is normally permit ...
ConcurrentDictionary، ساختار دادهای است که امکان افزودن، دریافت و حذف عناصری را به آن به صورت thread-safe میسر میکند. اگر در برنامهای نیاز به کار با یک دیکشنری توسط چندین thread وجود داشته باشد، ConcurrentDictionary راهحل مناسبی برای آن است.
اکثر متدهای این کلاس thread-safe طراحی شدهاند؛ اما با یک استثناء: متد GetOrAdd آن thread-safe نیست: TValue GetOrAdd(TKey key, Func<TKey, TValue> valueFactory); بررسی نح ...
اگر برنامه نویس NET. باشید، پس از مدتی کار با LINQ، در سایر زبانهای دیگر نیز به دنبال این قابلیت فوق العادهی functional یا تابعی خواهید گشت. در این مطلب، خلاصهای از متدهای توکار جاوا اسکریپت را که میتوانند معادلهایی برای متدهای LINQ to Objects دات نت باشند، بررسی خواهیم کرد.
تدارک ساختار ابتدایی این مطلب
در اینجا اینترفیسی را که بیانگر ساختار شیء شخص است، به صورت ذیل ایجاد میکنیم: export interface Person ...
برای فعالسازی SSL در ASP.NET Core میتوانیم از ویژگی RequireHttps برای کنترلرها و همچنین اکشنمتدها استفاده کنیم: [RequireHttps]
public class AccountController : Controller
{
public IActionResult Login()
{
return Content("Login Page");
}
}
اکنون اگر پروژه را اجرا کنید، خروجی به صورت زیر خواهد بود و اگر به آدرس Account/Login مراجعه کنید، چیزی در خروجی نمایش داده ن ...
تا پیش از ارائهی کامپایلر TypeScript 2.0، مقادیر null و undefined، به هر نوعی قابل انتساب بودند و امکان تفکیک آنها وجود نداشت که این مورد میتواند منشاء بروز بسیاری از خطاهای در زمان اجرا شود. let name: string;
name = "Vahid"; // OK
name = null; // OK
name = undefined; // OK let age: number;
age = 24; // OK
age = null; // OK
age = undefined; // OK
برای نمونه در اینجا یک متغیر رشتهای و همچنین عددی تعریف شده ...
یکی از اهداف مهم استفادهی از TypeScript، یافتن خطاهای متداول کدهای جاواسکریپتی، پیش از اجرای آنها در مرورگر است. برای مثال، قطعه کد زیر: defaultChecks() {
const author = { firstName: "Vahid", lastName: "N" };
console.log(author.lastname);
author.lastName.trimStart();
author.firstName.charCodeAt("1");
}
دارای سه مشکل است که سریعا توسط TypeScript شناسایی میشود:
- خاصیت lastname در ...
در قسمت قبلی در مورد ساخت و اجرای یک image درون container صحبت کردیم. اما در سناریوهای واقعی، عملا سیستم تک بعدی نخواهد بود و حاوی دیتابیسهای مختلف، message broker ،Caching server و غیره نیز خواهد بود. بنابراین احتیاج به imageهای مختلفی داریم که راه اندازی شده و با یکدیگر ارتباط مستقیم داشته باشند. از نسخههای اولیهی داکر از مفهومی به نام Linking، برای ایجاد کردن Containerهای مختلفی درون یک شبکه استفاده میشد. از آنجائیکه این روش م ...
پس از تکمیل کنترل دسترسیها به قسمتهای مختلف برنامه بر اساس نقشهای انتسابی به کاربر وارد شدهی به سیستم، اکنون نوبت به کار با سرور و دریافت اطلاعات از کنترلرهای محافظت شدهی آن است. افزودن کامپوننت دسترسی به منابع محافظت شده، به ماژول Dashboard
در اینجا قصد داریم صفحهای را به برنامه اضافه کنیم تا در آن بتوان اطلاعات کنترلرهای محافظت شدهی سمت سرور، مانند MyProtectedAdminApiController (تنها قابل دسترسی ...
در قسمت سوم ، کار ورود به سیستم و امکان مشاهدهی صفحهی محافظت شدهی پس از لاگین را پیاده سازی کردیم. در این قسمت میخواهیم امکان دسترسی به مسیر http://localhost:4200/protectedPage را کنترل کنیم. تا اینجا اگر کاربر بدون لاگین کردن نیز این مسیر را درخواست کند، میتواند حداقل ساختار ابتدایی آنرا مشاهده کند که باید مدیریت شود و این مدیریت دسترسی میتواند بر اساس وضعیت لاگین کاربر و همچنین نقشهای او در سیستم باشد:
...