
آیا دوره معماری 3 لایه به انتها رسیده
قطعن تو محیط کار یا مصاحبه یا ... اسم معماریهای DDD یا CQRS یا Microservice رو زیاد شنیدید. کلن شدن trend این روز اما این معماریها اینقدرها خوب هستن؟ آیا معماری سه لایه تو حوضه clean code دیگه جایی نداره و یا زیادی ابتدایی و پیش پا افتادست؟ خیلی از ماها اولین معماری که در حوضه clean code آشنا میشیم معماری سه لایه ست. بعد یواش یواش یا اسمهای به ظاهر قشنگتر و حرفه ای تر روبرو میشیم مثل CQRS یا DDD یا در سطح معماری کل سیستم microservice . همه این معماریها در کنار خوبیهایی که دارن ، مشکلاتی هم با خودشون میارن که میخوام به برخی از این موارد اشاره کنم
آشنایی با کلاس IDesignTimeDbContextFactory
به طور خلاصه IDesignTimeDbContextFactory , یه سازنده (factory) برای ساخت یک نمونه از dbContext ی است که constructor پیش فرض از نوع public (public default constructor) نداره
تبدیل آرایه بایت به فایل در c#
خیلی پیش میاد که بخایم دیتایی از جنس byte array رو تو فایل ذخیره کنیم(مثلن فایل اپلود شده توسط کاربر). بیایید چند روش مختلف برای تبدیل یک آرایه بایت به یک فایل در نظر بگیریم.
Authentication And Authorization JWT در NET 6.0 با Identity Framework
به فرآیند تأیید اعتبار کاربر Authentication, میگن و بررسی دسترسی یک کاربر به ماژول های خاص در یک برنامه رو authorization می نامند. در این مقاله نحوه محافظت از برنامه ASP.NET Core Web API را با اجرای JWT authentication خواهیم دید. همچنین نحوه استفاده از authorization در ASP.NET Core را برای کنترل دسترسی به عملکردهای مختلف برنامه خواهیم دید. و با استفاده از Entity Framework و Identity Framework ,اعتبار کاربر را در پایگاه داده server SQL ذخیره میکنیم
پشتیبانی از DateOnly و TimeOnly با Entity Framework Core 6.0
متأسفانه، Entity Framework Core 6.0 در SQL Server از این نوع داده های جدید پشتیبانی نمی کند. این به این دلیل اتفاق میافتد که ارائهدهنده اصلی، Microsoft.Data.SqlClient، همانطور که در مورد مشکل GitHub توضیح داده شد، از آنها پشتیبانی نمیکند...
نحوه انتقال پروژه در Azure DevOps از یک Organization به Organization دیگر
بعضی وقتا شرایطی مثل اینکه repo یه پروژه در organization اشتباهی ایجاد شده یا ... پیش میاد که بخاید همون repo رو به organization دیگری در azure devops منتقل کنید. روش انتقال به همین سادگی هست که میبینید
بهترین انیمیشن های جاوا اسکریپت جالب برای استفاده در وب سایت شما
آیا شما یک توسعه دهنده هستید که به دنبال ایجاد وب سایت های فوق العاده ای هستید که توجه کاربران را به خود جلب کند؟ چه راهی بهتر از انیمیشن های جالب جاوا اسکریپت برای انجام این کار؟
فراخوانی یک متد غیر static در Blazor توسط DotNet.invokeMethodAsync
بعضی وقتها پیش میاد که میخایم یه متد داخل component blazor رو که با اتریبوت [JSInvokable] علامت گذاری شده رو با استفاده از DotNet.invokeMethodAsync صدا بزنیم اما مشکل اینجاست که متد مورد نظر باید static باشه. حالا اگر به هر دلیلی (مثل اینکه در بدنه متد از متغییرهایی استفاده کردیم که اونا static نیستن) نمی تونیم متد رو static کنیم. در اینجور مواقع میتونید از پترن زیر برای این کار استفاده کنید

به صورت داینامیک جاوا اسکریپت را در کامپوننت Blazor اضافه کنید
Blazer یک فریمورک جدید توسعه وب single-page از سوی مایکروسافت ه. Blazor به توسعه دهندگان دات نت اجازه میده تا به سرعت برنامه های single-page را توسعه دهند، چون برای نوشتن منطق سمت کلاینت به جای جاوا اسکریپت از Csharp استفاده می کنه. از اونجایی که در Blazer تگهای اسکریپت را فقط به فایل root HTML میتونید اضافه کنید, افزودن یک فایل جاوا اسکریپت فقط در یک component ، دشواره و تریکی هست.
نحوه حذف www. پیشوند در ASP.NET MVC برای سئو بهتر
اگر به ابزار مدیریت IIS دسترسی دارید، یک رابط کاربری گرافیکی برای تنظیم قوانین بازنویسی در بخش "IIS" تنظیمات سایت شما وجود دارد. اگر از آنجا (در منوی ستون سمت راست) "Add Rule(s...") را انتخاب کنید، قانون "Canonical domain name" را در بخش SEO انتخاب کنید تا تنظیم قانون تقریباً کاملاً خودکار باشد. اگر نه، قانون بازنویسی در web.config شما به این شکل خواهد بود:
محدود کردن تعداد درخواستها در بازه زمانی برای کال شدن ASP.NET Core Web API
در این مقاله، ما قصد داریم در مورد Rate Limiting در ASP.NET Core صحبت کنیم و راههای پیادهسازی آن را بررسی کنیم.

TagHelper های سفارشی پیچیده در ASP.NET Core MVC
همزمان با انتشار ASP.NET Core ،مفهوم Tag Helpers هم معرفی شد. یک ویژگی جدید برای کپسوله کردن HTML markup. جهت دادن تجربهای شبیه به HTML در هنگام استفاده از بیتهای markup توسط سرور بود. ایده جایگزینی Helpers HTML نیست، بلکه ارائه رویکرد دیگری است که از همان قراردادهای HTML با استفاده از tagها و attributeها پیروی می کند.

آشنایی با semaphore در C#
سمافور به زبان ساده یک متغیر غیر منفی(non-negative) است و بین ترد ها به اشتراک گذاشته می شود. سمافور یک مکانیزم سیگنال دهیست و تردی که روی سمافور منتظر است, توسط ان به تردهای دیگر علامت داده شود. از دو عملیات اتمیک، 1) انتظار، و 2) سیگنال برای همگام سازی فرآیند استفاده می کند.
استفاده از Hangfire و MediatR به عنوان یک توزیع کننده پیام
از دو کتابخانه محبوب Hangfire و MediatR می توان با هم برای ایجاد یک توزیع کننده پیام خارج از فرآیند(out-of-process) بسیار قدرتمند استفاده کرد.

شروع کار با YARP
متد Configure خط لوله ASP.NET را برای پردازش درخواست ها تعریف می کنه. پروکسی معکوس به مسیریابی نقطه پایانی ASP.NET متصل میشه که pipeline فرعی خود را برای پراکسی دارد. در اینجا ماژول های خط لوله پروکسی، مانند تعادل بار، می توانند برای سفارشی کردن رسیدگی به درخواست اضافه شوند.

آشنایی و پیاده سازی الگوی Repository Pattern
ریپازیتوری (repository) یک لایه ای هست میان برنامه و دیتابیس که همه کارها و درخواستهای سمت دیتابیس توسط اون انجام میشه. اینطوری نه تنها قابلیت test و نگهداری برنامه افزایش پیدا میکنه بلکه برنامه به شکلی توسعه پیدا میکنه که هیچ وابستگی به هیچ دیتابسی نداره
پیاده سازی الگوهای CQRS با MediatR
CQRS مخفف Command and Query Responsibility Segregation است، الگویی که عملیات خواندن و نوشتن دیتا رو از هم جدا می کند. در این اموزش سمپل کد پیاده سازی CQRS به همراه MediatR رو بررسی میکنیم
NET 6 WebAPI - قدم به قدم با Elasticsearch و Kibana
در این مقاله ما dotNet 6 رو با Elk Stack از جمله Elasticsearch ، Kibana و Serilog بررسی میکنیم
نمایش و لاگ کوئری ایجاد شده توسط EF6
زمانهایی پیش میاد که میخاید کوئری ایجاد شده توسط EF رو مشاهده و بررسی کنید قبلن باید از ابزار profiler استفاده میکردید اما این امکان در EF6 بضورت توکار وجود داره
فراخوانی سرویس-به-سرویس با Dapr و .NET در مایکروسرویسها
Dapr بهترین شیوهها برای ساخت برنامههای میکروسرویس را در قالب APIهای باز و مستقل به نام بلوکهای ساختمانی ,میباشد که به شما امکان میده برنامههای قابل حمل را با زبان و فریم ورک انتخابی خود بسازید. برای مثال، یک میکروسرویس در پایتون نوشته شده ، در حالی که دیگری در دات نت نوشته شده. آنها همچنین می توانند به راحتی با استفاده از Dapr ارتباط برقرار کنند.
بارگذاری فایل JSON در جاوا اسکریپت
JSON مخفف JavaScript Object Notion است. برای به اشتراک گذاری داده ها بین سرورها و کلاینت ها استفاده می شه. در جاوا اسکریپت امکان بارگذاری فایل های JSON وجود داره. در این مقاله به نحوه بارگذاری فایل های JSON خواهیم پرداخت.
مقدمه DAPR قسمت 1
DAPR مخفف distributed application runtime شده است. این یک پروژه منبع باز است که توسط مایکروسافت آغاز شده است. از نوامبر 2021 به طور رسمی توسط CNCF به عنوان یک پروژه انکوباتور تأیید شد
پیاده سازی احراز هویت JWT در net 5 Web API.
در این مقاله یک فرآیند کامل گام به گام برای پیاده سازی Authentication در net Web API. با استفاده از JSON Web Token یا همون JWT رو یادمیگیریم. ما باید اطمینان حاصل کنیم که API های ما هنگام توسعه آنها محافظت و ایمن هستند.
C# دستورالعمل های پیش پردازنده (Preprocessor Directives)
Preprocessor Directives به کامپایلر دستور می دهد تا قبل از شروع کامپایل، اطلاعات را پیش پردازش کند. یا به زبان دیگر اطلاعاتی برای کامپایر در مورد بخش هایی از کد , فراهم میکنه که کامپایلر قبل از شروع به کامپایل کردن اونها رو پراسس میکنه
ایجاد Non-Entity Types یا Projections از روی جداول دیتابیس بصورت SqlRaw
EF Core مکانیزم هایی فراهم کرده است برای اجرای SQL خام ,مستقیماً روی دیتابیس برای شرایطی که نمی توانید(یا نمیخواهید) از LINQ برای کوئری گرفتن استفاده کنید (مثلاً جستجوی متن کامل)
استفاده از MassTransit با RabbitMQ در ASP.NET Core
در این مقاله، ما قصد داریم به نحوه استفاده از کتابخانه کاربردی و منبع باز MassTransit , در ارتباط با RabbitMQ در یک برنامه ASP.NET Core نگاهی بیندازیم
نحوه ریست مقادیر ستون Identity در SQL
ستون Identity جدول ستونی است که مقدار آن به طور خودکار افزایش می یابد. یک کاربر معمولاً نمی تواند مقداری را در ستون هویت وارد کند. یک جدول می تواند تنها یک ستون داشته باشد که با اتریبیوت Identity تعریف شده است.
فهرست کلیدهای غیر الفبایی
هنگام سر و کار با دستورات فنی که از صفحه کلید استفاده می کنند (مثلاً صفحات وب یا خط فرمان)، ممکن است مواردی مانند forward slash, backslash و caret بشنوید. بسیاری از اوقات، کاربران ممکن است گیج شوند زیرا ممکن است این کلیدها ناآشنا باشند. این صفحه نمونهای از صفحهکلید رایانه شخصی و جدولی را ارائه میکند که کلیدهای غیرالفبایی صفحهکلیدهای مستقر در ایالات متحده را به همراه توضیح یا پیوند برای اطلاعات بیشتر فهرست میکند.
تفاوت بین ()services.Configure و services.AddOptions<T>().Bind هنگام لود کانفیگ در ASP.NET Core چیست؟
در پروژه ASP.NET Core WebApi خودم، میخوام پیکربندی را از appsettings.json در یک آبجکت هست بخونم. appsettings.json دارای بخش پیکربندی زیر است:
حذف متن و علامت از روی عکس با PhotoShop و GMIP
اغلب اوقات ، عکس های ایجاد شده توسط دیگران با علامتی به منشأ اضافه می شوند. چگونه می توان یک علامت تصویری یا متن را از عکس ها حذف کرد ، بطوری که حذف آن علامت خیلی مشخص نباشد؟ در اینجا روشهایی برای حذف علامت و متن از روی عکس ها ، از جمله راه حل های رایگان آنلاین و چندین برنامه کاربردی حرفه ای آفلاین پیدا خواهید کرد.
ساخت button با gradient-borders
همه ما ویژگی border-image را می شناسیم که به ما امکان می دهد هر نوع تصویری (از جمله گرادیان ها) را به عنوان حاشیه اضافه کنیم.
مدل actor در 10 دقیقه
پردازندههای ما سریعتر نمیشوند. اتفاقی که می افتد این است که ما اکنون چندین هسته روی آنها داریم. اگر بخواهیم از تمام این سخت افزاری که اکنون در دسترس داریم استفاده کنیم، به راهی برای اجرای همزمان کدمان نیاز داریم. دههها باگ غیرقابل ردیابی و تزلزل توسعهدهندگان ,نشان داده است که threadها راهش نیستند. اما نترسید، جایگزین های عالی وجود دارد و امروز می خواهم یکی از آنها را به شما نشان دهم: مدل actor.
تفاوت <out T> و <T> در جنریکها
تا حالا به کلمات in و out که تو بعضی جنریکها هست دقت کردید؟ اصن چه معنی دارن و اگر نباشن چه فرقی میکنن؟
ارسال فایل ها و داده های اضافی با استفاده از HttpClient در NET Core
چگونه با استفاده از HttpClient در NET Core درخواست های HTTP چند بخشی(multipart) حاوی فایل ها را ارسال کنیم؟ اگر endpoint به مقداری داده اضافی نیاز دارد چه باید کرد؟ این مقاله راهحلهایی را برای موارد رایج توضیح میدهد و پیامهای HTTP خامی را که توسط HttpClient برای درخواستهای multipart تولید میشوند، ارائه میکند.
مفاهیم توسعه نرم افزار به سبک Microservice
امروزه با افزایش رسانه های اجتماعی، اینترنت پرسرعت و ... تمایل به استفاده از اپلیکیشن ها روز به روز بیشتر شده است. در نتیجه این تغییرات رفتاری، برنامه های کاربردی یکپارچه(monolithic ) نیاز به بروز شدن بر اساس حجم زیادی از تغییرات دارند. بیشتر بیزینسها با ویژگی جدیدی روبرو هستند که باید به برنامه هاشون اضافه شوند،اما از طرفی، حجم داده هایی که باید پردازش شوند بسیار افزایش می یایند و در بسیاری از موارد در برنامه های monolithic به دلیل معایب آنها مانند سرعت پایین توسعه، استقرار کندتر، زیرا به سختی از روش چابک (agile methodology ) پشتیبانی می کند که ایده اصلی واکنش به تغییرات سریع در صنعت نرم افزار است.
استراتژی وراثت در EF 6
میدانیم که ef برای هر کلاس یه حدول در دیتابیس ایجاد میکند از طرفی شما می توانید کلاس های خود را با استفاده از وراثت طراحی کنید و میدانیم که سیستم های مدیریت پایگاه داده SQL از وراثت نوع پشتیبانی نمی کنند. بنابراین، چگونه کلاس های دامنه شی گرا را با پایگاه داده رابطه ای ترسیم می کنید؟ در زیر سه رویکرد مختلف برای نشان دادن سلسله مراتب وراثت در Code-First آورده شده است:
Action filters, Service filters و Type filters در ASP.NET 5 و MVC 6
امروز، بیایید نگاهی به ناحیه فیلترها در ASP.NET MVC 6 بیاندازیم – زیرا در واقع شامل تغییرات بسیار جالبی در مقایسه با خطوط لوله فیلتر MVC و Web API کلاسیک است.
new کردن یه ابجکت از جنس dbcontext بدون استفاده از ioc در dotnet
بعضی وقتها پیش میاد دارید یه نرمافزار تست از جنس کنسول یا ... می نویسید که توش میخاید یه dbcontext رو new کنید و باهاش کار کنید و حوصله ioc و این چیزا رو ندارید
با استفاده از C# 10 کد تمیز بنویسید
C#10 به عنوان بخشی از NET 6 منتشر شده و ما شاهد پیشرفت های سیمتکسی زیادی هستیم و مطمئن هستم که شما نیز از آنها استقبال خواهید کرد. Global Usings File Scoped Namespaces Constant Interpolated Strings Lambda Improvements Extended Property Pattern Record Structs Record Types Can Seal ToString() Method Structure Type Improvements Parameterless Constructor With Expression Declaration and Initialization in Same Statement
تفاوت ()string.ToLower با ()string.ToLowerInvariant در C#
بسته به فرهنگ فعلی، ToLower ممکن است یک حرف کوچک خاص فرهنگ تولید کند که شما انتظارش را ندارید. مانند تولید ınfo بدون نقطه روی i به جای info و در نتیجه مختل کردن مقایسه رشته ها. به همین دلیل، از ToLowerInvariant باید در هر داده غیر خاص زبان استفاده شود. وقتی ممکن است ورودی کاربر به زبان مادری/مجموعه نویسههای آنها باشد، معمولاً تنها زمانی است که از ToLower استفاده میکنید.
Chain of Responsibility Design Pattern در .NET C#
الگوی طراحی زنجیره مسئولیت یکی از الگوهای طراحی رفتاری (behavioral ) است. این اجازه می دهد تا یک درخواست یا یک شی را از طریق زنجیره ای از کنترل کننده ها عبور دهید. هنگامی که یک کنترل کننده درخواستی را دریافت می کند، تصمیم می گیرد که آیا می تواند درخواست را پردازش کند یا آن را به کنترل کننده بعدی در زنجیره ارسال کند. اگر قبلاً تجربه ای با توسعه وب دارید، احتمالاً چیزی به نام Middleware شنیده اید. کل سیستم مدیریت قطعات Middleware از الگوی طراحی زنجیره مسئولیت استفاده می کند.
امکانات جدید EF Core 6 - قسمت 1
ده ویژگی جدید در EF Core 6. در این مقاله می توانید ویژگی های جدید، پشتیبانی از جداول زمانی، ستون های پراکنده و سایر ویژگی های جدید را بیابید.
حل ارور Exception in thread "main" java.util.zip.ZipException: zip END header not found در زمان flutter build apk
2 Method Flutter Doctor will give right result. Open Android Studio Create new flutter project Click on Tools > flutter >Flutter for editing in android studio and wait, flutter doctor takes time to identify problem.

sign کردن apk در Command Line
برای امضای برنامه Android Studio تنها مسیر ممکن نیست و میتوانید در Command Line نیز، با استفاده از ابزار استانداردی که Android SDK و JDK در اختیارتان قرار میدهد، بستهی برنامه را امضا کنید. برای امضای برنامه از مسیر Command Line مراحل زیر را انجام دهید:

استفاده از Autofac به جای اینجکتور توکار dotnet core
Autofac یکی از بهترین و سریعترین و محبوبترین ioc های دانت هست که مدیریت کامل برای ساخت ابجکتها و چرخه حیاط آنها را اراعه می دهد که بسیار کاملتر از ioc توکار خود دانت میباشد

Design Pattern به زبان ساده
در سال 1994 گروه 4 نفره Gang of Four که به اختصار با نام GOF شناخته میشوند 23 الگوی طراحی را که توسط کریستوف الکساندر (Christopher Alexander) توسعه داده شده بودند، طبقه بندی و ارائه کردند.
راحتترین راه نمایش عدد بصورت پول در javascript
var moneyFormet=function(i) { return i.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); }
اموزش مفاهیم saga در microservice
در این مقاله به بررسی الوی saga که به منظور مدیریت transaction در معماری میکروسرویس می باشد خواهیم پرداخت. بدین منظور برا درک بهتر از این الگوی ابتدا با فرض داشتن یک سیستم (ثبت سفارش مشتری) چالش و مسیله هایی که با آن روبرو هستیم و راه ها مختلف برا حل این چالش ها را بررس می کنیم و در نهایت به توضیح و تشریح کامل الوی saga خواهیم پرداخت . لیست مطالب ارائه شده در این مقاله: • تعریف متلهه • Distributed transaction • Two phase commit • Saga • compensating transactions • Coordinating sagas • Choreography • Orchestration-based sagas
سه اصل ساده سازی کدنویسی KISS, YAGNI, DRY به زبان ساده
بطور خلاصه KISS, YAGNI, DRY سه اصل مهم در برنامه نویسی هستن که رعایت کردن اونها در نگهداری , تغییر و خوانایی کدهای برنامه در طولانی مدت بسیار تاثیرگذار هستند بويژه در پروزه هایی که هر روز تغییرات داریم و هر روز در حال بزرگتر شدن هستند رعایت از ن اصول بسیار مهمتر میشن
آشنایی با انواع naming convention هنگام تعریف متغیر
شاید برای شما هم پیش اومده رفتید تو شرکتی مشغول به کار شدید و میخای متغیری در کد تعریف کنی که ترکیبی از چند کلمست و گفتن که ما متغیرهامون رو مثلن kebabCase مینویسیم یا ....
ارسال پارامتر بصورت post و redirectکردن به سایت دیگر در MVC Core
بعضی وقتها پیش میاد که میخای یکسری پارامتر بفرستی به یه سایت دیگه بصورت post . ولی نمیخای پارامترها رو بصورت hidden یا هر چیز دیگه ای تو صفحه html قرار بدی که کابربران نتونن با inspect گرفتن ببینن
ادیتور انلاین C# و F# و vb
بعضی ووقتها نیاز هست یه تیکه کدی رو که از اینترنت پیداکردیم و تو ذهنمون هستو میخایم تست کنیم اما حوصله اجرای برنامه سنگین visual studio رو نداریم

اصول SOLID به زبان ساده
SOLID مخفف 5 اصل هست که موقع برنامه نویسی باید رعایت بشن تا قابلیت نگهداری و اپدیت کد در دراز مدت به آسونترین و بهترین شکل پیش بره.

سوالات استخدامی اپل
مهمترین دارایی هر سازمان نیروی انسانی اون هست از این رو استخدام کارمند یکی از مهمترین مسولیتهای هر سازمان باید براش برنامه ریزی جدی داشته باشه.

نحوه استفاده از nic.ir برای ثبت دامنه ir
برای شما هم پیش اومده که بخاید سایت جدید راه انازی کنید با دامنه .ir حتمن دیدید که تو مراحل ثبت ازتون irhandler را میخان. حالا این چی هست و از کجا باید بگیرم؟