اعتبارسنجی IOptions توسط کتابخانه MiniValidation
308, PermanentRedirect
https://andrewlock.net/validating-nested-dataannotation-options-recursively-with-minivalidation icon

In this post I described the problem that by default, DataAnnotation validation doesn't recursively inspect all properties in an object for DataAnnotation attributes. There are several solutions to this problem, but in this post I used the MiniValidation library from Damian Edwards. This simple library provides a convenience wrapper around DataAnnotation validation, as well as providing features like recursive validation. Finally I showed how you can replace the built-in DataAnnotation validation with a MiniValidation-based validator

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddOptions<MySettings>()
    .BindConfiguration("MySettings")
    .ValidateMiniValidation() // 👈 Replace with mini validation
    .ValidateOnStart();

var app = builder.Build();
OptionsValidationException: 
  DataAnnotation validation failed for 'MySettings' member: 'Nested.Value' with errors: 'The Value field is required.'.; 
  DataAnnotation validation failed for 'MySettings' member: 'Nested.Count' with errors: 'The field Count must be between 1 and 100.'.
Microsoft.Extensions.Options.OptionsFactory<TOptions>.Create(string name)
Microsoft.Extensions.Options.OptionsMonitor<TOptions>+<>c__DisplayClass10_0.<Get>b__0()


اعتبارسنجی IOptions  توسط کتابخانه MiniValidation
راهنمای قدم به قدم برای آپتیمایز کردن کدی برای ساخت ۲،۰۰۰،۰۰۰ GUID
200, OK
https://dev.to/mehrandvd/optimizing-guid-generation-step-by-step-225o icon

فرض کنید با مسئله‌ای مواجه هستید که باید ۲ میلیون گوئد (GUID) در ثانیه بسازید؛ و بسیار مهم است که این کار در کوتاه‌ترین زمان ممکن انجام شود.


در مقاله زیر ابتدا ساده‌ترین کد ممکن که حلقه‌ای ساده برای انجام این کار است نوشته شده، و سپس قدم به قدم با استفاده از تکنیک‌های مختلف آپتیمایز شده. کد ساده‌ای که با آن کار شروع شده حدود ۲۱۲ میلی‌ثانیه زمان می‌برد و پس از اعمال آخرین آپتیمایزیشن این کار ۴۵ میلی‌ثانیه طول می‌کشد.

راهنمای قدم به قدم برای آپتیمایز کردن کدی برای ساخت ۲،۰۰۰،۰۰۰ GUID
اضافه شدن HTTP Logging توکار در NET 6.0.
200, OK
https://www.youtube.com/watch?v=3Oq0CE5RbZY icon

HTTP Logging is a middleware that logs information about HTTP requests and HTTP responses. HTTP logging provides logs of

HTTP request information
Common properties
Headers
Body
HTTP response information

HTTP Logging is valuable in several scenarios to

Record information about incoming requests and responses
Filter which parts of the request and response are logged
Filtering which headers to log

اضافه شدن HTTP Logging توکار در NET 6.0.
آشنایی با معماری OutboxPattern در microservice
307, RedirectKeepVerb
https://itnext.io/the-outbox-pattern-in-event-driven-asp-net-core-microservice-architectures-10b8d9923885 icon
Create the .NET Core Microservices and Exchange Messages
Implement the Transactional Outbox Pattern
(Optional) Test the Implementation
Add Publisher Notify, Acknowledgments, and Resilient Message Handling
Final Thoughts and Outlook 

آشنایی با معماری OutboxPattern  در microservice
دریافت خودکار پیامک کد تایید اعتبارسنجی با WebOTP API
301, MovedPermanently
https://web.dev/web-otp/ icon

The current process creates friction for users. Finding an OTP within an SMS message, then copying and pasting it to the form is cumbersome, lowering conversion rates in critical user journeys. Easing this has been a long standing request for the web from many of the largest global developers. Android has an API that does exactly this. So does iOS and Safari 


دریافت خودکار پیامک کد تایید اعتبارسنجی با WebOTP API
تقویم Datepicker متن‌باز شمسی برای React
200, OK
https://mmehdinasiri.github.io/react-calendar-datetime-picker/ icon
Supports Gregorian and Jalali calender
Uses context api to share data
Supports three types of calender: single day - date range - multiple dates
Fully customizable
Supports maximum and minimum dates
Capability to add a list of disabled dates
Supports time for single and range type
Capability to mark weekends
Function called for change, open and close events
Supports Typescript

تقویم Datepicker متن‌باز شمسی برای React
درک بهتر websockets با aspnetcore
200, OK
https://sahansera.dev/understanding-websockets-with-aspnetcore-5/ icon

In this article, we will go through RFC 6455 WebSockets specification and configure a generic ASP.NET (Core) 5 application to communicate over WebSockets connection with SignalR. We will dive into the underlying concepts to understand what happens under the covers. 

درک بهتر websockets با aspnetcore