بررسی Bad code smell ها: درخت ارث بری موازی
این کد بد بو در دسته «جلوگیری کنندگان از تغییر» قرار میگیرد. اگر زمان ایجاد یک کلاس فرزند برای کلاسی، مجبور به ایجاد یک کلاس فرزند متناظر آن برای کلاس دیگری باشید، با این کد بد بود مواجه هستید. معمولا...
View Articleغیرمعتبر شدن کوکیهای برنامههای ASP.NET Core هاست شدهی در IIS پس از...
ASP.NET Core از مکانیزم «Data protection» برای تولید کلیدهای رمزنگاری اطلاعات موقتی خود استفاده میکند. این روش در دو حالت هاست برنامهها توسط IIS و یا عدم تنظیمات ذخیره سازی آنها به صورت دائمی،...
View ArticleC# 7 - Discards
در تکمیل سری بررسی ویژگیهای C# 7.0، ذکر ویژگی Discards نیز ضروری است. Discards به معنای متغیرهای محلی هستند که قابل انتساب بوده، اما قابل خواندن نیستند. دارای نامی نیستند و تنها توسط یک _ مشخص...
View Articleامکان تعریف قالبها در Angular با دایرکتیو ng-template
معرفی دایرکتیو ng-template همانطور که از اسم آن نیز مشخص است، ng-template به معنای قالب انگیولار است و هدف از آن، ارائهی قسمتی از قالب نهایی یک کامپوننت میباشد. فریم ورک Angular از دایرکتیو...
View Articleبررسی Bad code smell ها: درخت ارث بری موازی یا Parallel inheritance hierarchy
این کد بد بو در دسته «جلوگیری کنندگان از تغییر» قرار میگیرد. اگر زمان ایجاد یک کلاس فرزند برای کلاسی، مجبور به ایجاد یک کلاس فرزند متناظر آن برای کلاس دیگری باشید، با این کد بد بود مواجه هستید. معمولا...
View Articleطراحی یک گرید با Angular و ASP.NET Core - قسمت سوم - قالب پذیر ساختن گرید
در قسمت دوم، قالب نمایش ردیفهای جدول، ثابت است و درون جدول به صورت مستقیمی درج و تعریف شدهاست. در ادامه میخواهیم این گرید را به نحوی تغییر دهیم که به ازای حالتهای مختلفی مانند نمایش اطلاعات و یا...
View Articleبررسی Bad code smell ها: متد حسود یا Feature envy
متد حسود یا Feature envy در دسته بندی «کدهایی بیش از اندازه، وابسته به هم» قرار میگیرد. چنین متدی بیش از آنکه از فیلدها و خصوصیات کلاس خود استفاده کند، از فیلدها و خصوصیات شیء دیگری از نوعی دیگر،...
View Articleتغییرات Encoding در NET Core.
فرض کنید قصد دارید یک قطعه کد پیشین تغییر Encoding از ویندوز عربی، به یونیکد را که در Full .NET Framework به خوبی کار میکند، در NET Core. اجرا کنید:var path = @"D:\file1.srt"; var data =...
View ArticleAngular Animation – بخش اول
متحرک سازی (Motion)، یکی از مفاهیم مهم در طراحی وباپلیکیشنهای مدرن محسوب میشود. امروزه استفاده از انیمیشن در طراحی رابط کاربری به عنوان جزء جدا ناپذیر UX محسوب میشود. برای درک اهمیت انیمیشن در...
View Articleامکان ساخت قالب برای پروژههای NET Core.
یکی از قابلیتهای ابزار خط فرمان dotnet، امکان تبدیل یک پروژهی سفارشی سازی شده، به یک قالب نصب پروژههای جدید بر مبنای آن است. برای مثال فرض کنید میخواهیم پروژهی DNTIdentityرا تبدیل به یک قالب جدید...
View Articleتبدیل قالبهای سفارشی پروژههای NET Core. به بستههای NuGet
در مطلب «امکان ساخت قالب برای پروژههای NET Core.» با مقدمات تبدیل یک پروژهی سفارشی سازی شده، به یک قالب ایجاد پروژههای جدید NET Core. آشنا شدیم. اگر علاقمند باشید میتوانید قالبهای خود را به صورت...
View Articleروشهایی برای مدیریت بهتر عملگرهای RxJS در برنامههای Angular
کتابخانهی RxJS، جزو پایهای کار با برنامههای Angular است و سادهترین روش کار با آن، تعریف یک سطر ذیل است: import {Observable} from 'rxjs'; به این ترتیب تمام عملگرهای RxJS مانند map ،do ،catch و غیره...
View Articleبررسی Bad code smell ها: دلال یا Middle Man
دلال یا Middle man در دسته الگوهای «کدهایی بیش از اندازه وابسته به هم» قرار میگیرد. زمانیکه یک کلاس، تنها کاری را که انجام میدهد، هدایت فراخوانی به کلاس دیگری باشد، با این الگو مواجه هستیم. تشخیص این...
View Articleارتقاء به HTTP Client در Angular 4.3
عموما در برنامههای SPA، اطلاعات از طریق HTTP و از طرف سرور دریافت میشوند. از نگارشهای ابتدایی Angular، اینکار از طریق HTTP Module آن مسیر بود و هست. در Angular 4.3 روش بهبودیافتهای نسبت به این روش...
View Articleطراحی و پیاده سازی ServiceLayer به همراه خودکارسازی Business Validationها
در این مطلب قصد داریم علاوه بر طراحی زیرساختی برای راه اندازی هرچه سریعتر ServiceLayer، طراحی ای برای مکانیزم Validation به عنوان یک Cross Cutting Concern، نیز ارائه داده و آن را پیاده سازی کنیم.پیش...
View Articleطراحی و پیاده سازی DomainEvents
شرایطی را در نظر بگیرید که نیاز است از تغییرات یک Entity در سیستم آگاه شویم. برای مثلا در زمان ثبت سفارش جدید در فروشگاه، ایمیلی به مدیر فروشگاه ارسال شود، یک Business Rule نیز چک شود و همچنین بنابر...
View Articleارتقاء به ASP.NET Core 2.0 - معرفی بستهی Microsoft.AspNetCore.All
یکی از مهمترین تغییرات ASP.NET Core 2.0، نسبت به نگارشهای قبلی آن، ارائهی یک «متا پکیج» جدید به نام Microsoft.AspNetCore.Allاست. این بسته به همراه تمام وابستگیهای مورد نیاز جهت توسعهی برنامههای...
View Articleبررسی Bad code smell ها: زنجیره پیام یا Message chain
این کد بد بو در دسته «جلوگیری کنندگان از تغییر» قرار میگیرد. معمولا زمانیکه فراخوانیهایی مانند تکه کد زیر را در بخشی از کد مشاهده کردید، با چنین کد بد بویی مواجه هستید....
View Articleامکان استفادهی مستقیم از کتابخانههای Full .NET Framework در NET Core 2.0.
یکی از مواردی که به همراه NET Core 1.x. وجود دارد، کمبود کتابخانههای ثالث مخصوص آن است. برای مثال کتابخانهی log4net در اوایل ارائهی NET Core. نگارش مخصوص به آنرا نداشت (البته هم اکنون دارد). باید...
View ArticleTag Helper Components در ASP.NET Core 2.0
Tag Helper Components یکی از ویژگیهای جدید ASP.NET Core 2.0 است و هدف آن میسر ساختن ایجاد و یا ویرایش المانهای HTML ایی در حال رندر در صفحه هستند. برای مثال یکی از کاربردهای آنها میتواند افزودن...
View Article