احراز هویت و اعتبارسنجی کاربران در برنامههای Angular - قسمت ششم - کار با...
پس از تکمیل کنترل دسترسیها به قسمتهای مختلف برنامهبر اساس نقشهای انتسابی به کاربر وارد شدهی به سیستم، اکنون نوبت به کار با سرور و دریافت اطلاعات از کنترلرهای محافظت شدهی آن است.افزودن کامپوننت...
View Articleمقدمه ای بر Docker، قسمت چهارم
در قسمت قبلی در مورد ساخت و اجرای یک image درون container صحبت کردیم. اما در سناریوهای واقعی، عملا سیستم تک بعدی نخواهد بود و حاوی دیتابیسهای مختلف، message broker ،Caching server و غیره نیز خواهد...
View Articleیافتن خطاهای متداول کدهای جاوا اسکریپتی با غنی سازی تنظیمات کامپایلر TypeScript
یکی از اهداف مهم استفادهی از TypeScript، یافتن خطاهای متداول کدهای جاواسکریپتی، پیش از اجرای آنها در مرورگر است. برای مثال، قطعه کد زیر: defaultChecks() { const author = { firstName: "Vahid",...
View Articleنوعهای نال نپذیر در TypeScript
تا پیش از ارائهی کامپایلر TypeScript 2.0، مقادیر null و undefined، به هر نوعی قابل انتساب بودند و امکان تفکیک آنها وجود نداشت که این مورد میتواند منشاء بروز بسیاری از خطاهای در زمان اجرا شود. let...
View Articleفعالسازی HSTS در ASP.NET Core
برای فعالسازی SSL در ASP.NET Core میتوانیم از ویژگی RequireHttps برای کنترلرها و همچنین اکشنمتدها استفاده کنیم:[RequireHttps] public class AccountController : Controller { public IActionResult...
View Articleبررسی معادلهای LINQ to Objects در TypeScript
اگر برنامه نویس NET. باشید، پس از مدتی کار با LINQ، در سایر زبانهای دیگر نیز به دنبال این قابلیت فوق العادهی functional یا تابعی خواهید گشت. در این مطلب، خلاصهای از متدهای توکار جاوا اسکریپت را که...
View Articleالگویی برای مدیریت دسترسی همزمان به ConcurrentDictionary
ConcurrentDictionary، ساختار دادهای است که امکان افزودن، دریافت و حذف عناصری را به آن به صورت thread-safe میسر میکند. اگر در برنامهای نیاز به کار با یک دیکشنری توسط چندین thread وجود داشته باشد،...
View Articleروش استفادهی صحیح از HttpClient در برنامههای دات نت
اگر در کدهای خود قطعه کد ذیل را دارید:using(var client = new HttpClient()) { // do something with http client } استفادهی از using در اینجا، نهتنها غیرضروری و اشتباه است، بلکه سبب از کار افتادن زود...
View Articleبررسی نکات دریافت فایلهای حجیم توسط HttpClient
HttpClient به عنوان جایگزینی برای HttpWebRequest API قدیمی، به همراه NET 4.5. ارائه شد و هدف آن یکپارچه کردن پیاده سازیهای متفاوت موجود به همراه ارائه راهحلی چندسکویی است که از WPF/UWP ، ASP.NET تا...
View Articleاز سرگیری مجدد، لغو درخواست و سعی مجدد دریافت فایلهای حجیم توسط HttpClient
پس از آشنایی با «نکات دریافت فایلهای حجیم توسط HttpClient»، در ادامه میتوان سه قابلیت مهم از سرگیری مجدد، لغو درخواست و سعی مجدد دریافت فایلهای حجیم را با HttpClient، همانند برنامههای download...
View Articleبازسازی کد: جابجایی متد (Move method)
معمولا زمانیکه متدی از امکانات کلاس دیگری غیر از کلاسی که در آن تعریف شده است استفاده میکند، نیاز به چنین بازسازی کدی داریم. روش کلی این بازسازی کد، انتقال متد به کلاسی است که بیشترین تعلق را به آن...
View Articleدریافت و نمایش تصاویر از سرور در برنامههای Angular
عملیات دریافت اطلاعات راه دور، در برنامههای Angular به صورت Ajaxانجام میشود. در این حالت، پردازش تصاویر دریافتی از سرور، به علت داشتن محتوای باینری، نیاز به رعایت یک سری نکات خاص دارد که آنها را در...
View Articleبازسازی کد: استخراج کلاس (Extract class)
زمانیکه کلاسی، دو یا چند کار را انجام میدهد، بهتر است این امور در کلاسهای مجزایی انجام شوند. راه اصلی این کار، بازسازی کد استخراج کلاس است. ایده اصلی این بازسازی کد با ساختن کلاسی جدید و انتقال...
View Articleنمایش، ذخیره و چاپ فایلهای PDF در برنامههای Angular
با توجه به اینکه فایلهای PDF نیز فایل باینری هستند، کلیات نکات مطلب «دریافت و نمایش تصاویر از سرور در برنامههای Angular» در مورد آنها هم صادق است. در اینجا به تکمیل این نکات پرداخته و مواردی را...
View Articleطراحی و پیاده سازی مکانیزم مدیریت Transactionها در ServiceLayer
هدف ارائه راه حلی برای مدیریت Transactionها به عنوان یک Cross Cutting Concern، توسط ApplicationServiceها میباشد. پیش نیازها:دوره Aspect oriented programming بررسی مفاهیم معکوس سازی وابستگیها و...
View Articleبازسازی کد: پنهان سازی delegate یا Hide delegate
زمانی نیاز به این بازسازی کد بهوجود میآید که استفاده کنندهی از کلاسها، درگیر جزییات بیش از اندازهی کلاسها میشود. به طور مثال به نمودار بالا توجه نمایید.در این نمودار تکه کدی مدل شده است که در آن...
View Articleبازسازی کد: گسترش امکانات کلاس های غریبه
هیچ کلاسی کامل نیست. در مواقع زیادی ممکن است یک کلاس نیاز به متدی داشته باشد که در آن وجود ندارد. در چنین شرایطی اگر سورس کلاس را در دست داشته باشیم به راحتی میتوان رفتار مورد نظر را به آن اضافه کرد....
View Articleنمایش Breadcrumbs در برنامههای Angular
داشتن Breadcrumbs یکی از گزینههای مفید بهبود کاربری هر سایتی است و در برنامههای Angular با کوئری گرفتن از سیستم مسیریابی آن میتوان به سادگی آنها را تولید کرد.ایجاد ساختاری برای نگهداری آرایهی...
View Articleبازسازی کد: جایگزینی داده با شیء (Replace data with object)
بازسازی کد جایگزینی داده با شیء، معمولا در طراحی موجودیتهای قابل ذخیره و بازیابی سیستمهای اطلاعاتی مورد نیاز قرار میگیرید. این بازسازی کد معمولا زمانی مورد نیاز است که آیتم دادهای نیاز به اطلاعات...
View Articleبهبود SEO برنامههای Angular
یکی از موارد مهم بهینه سازی صفحات سایت برای موتورهای جستجو، افزودن عنوانی مناسب، به همراه توضیحات و واژههای کلیدی، twitter card ،Facebook Graph و امثال آنها است. برای این منظور Angular به همراه...
View Article