نظرات نظرسنجی‌ها
نظر شما در رابطه با استفاده از کامپوننت های رایگان و آماده Blazor چیست؟
کامپوننت‌های رایگان همیشه ریسک پولی شدن دارند و می‌تونن برای پروژه‌های متوسط و بزرگ مشکل خیلی جدی ایجاد کنند. البته مهمه که کدوم شرکتی پشت اونا هست. من تجربه استفاده ازAnt Blazor رو دارم. تا اینجا هم مشکلی نداشتم باهاش.
نظرات نظرسنجی‌ها
با توجه به امکانات جدید Razor Components، آیا در آینده از SPA frameworks استفاده میکنید؟
بله درحال حاضر چیزی بهتر از spa وجود نداره به همین دلیل به کرات درحال استفاده هستیم ... من به نسبت شعارغیر مستقیم تیم تولید blazor  این رو در نظر سنجی گذاشتم هر چند خودم هم احتمال این رو میدم یک روزی نه چندان دور کسی از spa استفاده نکنه.
اشتراک‌ها
یادگیری NET MAUI. با ساخت یک دفترچه‌ی تماس‌ها

Learn .NET MAUI while Creating a Contacts App in .NET 7 - YouTube

00:00:00 Introduction
00:02:54 What is .NET MAUI
00:06:13 Prepare Development Environment & Create first project.
00:11:50 Project Structure of .Net Maui
00:19:49 Three elements of stateful .Net Maui app
00:23:12 Page, Layout & View, Namespaces
00:32:23 URL based navigation - .Net Maui
00:50:31 Basics of ListView and Data Binding in .Net Maui
01:05:19 Events Handling of ListView in .Net Maui
01:16:15 Parameters in URL based Navigation & Static Repository in .Net Maui
01:34:56 Stacklayout for Edit Contact page in  .Net Maui
01:52:08 View Contact Details & Update Contact (.Net Maui)
02:06:01 Observable Collection
02:14:19 Field Validation with .Net Maui CommunityToolkit
02:26:18 Reusable Control in .Net Maui
02:39:42 Grid Layout and  Use reusable control in .Net Maui
02:52:44 ContextActions & MenuItems in ListView for .Net Maui
03:03:05 SearchBar in .NetMaui 

یادگیری NET MAUI. با ساخت یک دفترچه‌ی تماس‌ها
نظرات مطالب
Blazor 5x - قسمت 14 - کار با فرم‌ها - بخش 2 - تعریف فرم‌ها و اعتبارسنجی آن‌ها
یک نکته‌ی تکمیلی: روش تهیه‌ی ویژگی‌های سفارشی اعتبارسنجی، در برنامه‌های Blazor

اگر ویژگی‌های پیش‌فرض مهیا، پاسخگوی اعتبارسنجی مدنظر نبودند، می‌توان یک attribute سفارشی را تهیه کرد:
using System.ComponentModel.DataAnnotations;

namespace CustomValidators
{
    [AttributeUsage(AttributeTargets.Field | AttributeTargets.Property | AttributeTargets.Parameter)]
    public class EmailDomainValidator : ValidationAttribute
    {
        public string AllowedDomain { get; set; }

        protected override ValidationResult IsValid(object value, 
            ValidationContext validationContext)
        {
            string[] strings = value.ToString().Split('@');
            if (strings[1].ToUpper() == AllowedDomain.ToUpper())
            {
                return null;
            }

            return new ValidationResult($"Domain must be {AllowedDomain}",
            new[] { validationContext.MemberName });
        }
    }
}
توضیحات:
- کار با ارث بری از کلاس پایه‌ی ValidationAttribute شروع می‌شود و باید متد IsValid آن‌را بازنویسی کرد.
- اگر متد IsValid، نال برگرداند، یعنی مشکلی نیست؛ در غیراینصورت خروجی آن باید از نوع ValidationResult باشد.
- پارامتر validationContext اطلاعاتی مانند نام خاصیت در حال بررسی را ارائه می‌دهد.
- در اینجا متد ()ValidationContext.GetService نال را بر می‌گرداند؛ یعنی فعلا از تزریق وابستگی‌ها در آن پشتیبانی نمی‌شود.

و در آخر روش استفاده‌ی از آن، همانند سایر ویژگی‌های اعتبارسنجی است:
public class Employee
{
    [EmailDomainValidator(AllowedDomain = "site.com")]
    public string Email { get; set; }
}
اشتراک‌ها
دوره مقدماتی React 18

In this React 18: Full Course Video Tutorial, we'll be covering everything you need to know about React 18! From creating a basic React component to creating more advanced React components, we'll be covering everything in this React tutorial for beginners. 

دوره مقدماتی React 18
اشتراک‌ها
معرفی Rivets.js

Lightweight and powerful data binding + templating solution for building modern web applications. 

معرفی Rivets.js
اشتراک‌ها
آیا اکنون وقت آن رسیده است که از Blazor در تولید سایت ها استفاده شود؟

جواب کوتاه:بله.

جواب بلند: ما مدت زیادی است که با Blazor کار می‌کنیم و چند ماه پیش تصمیم گرفتیم که شروع به ایجاد یک پروژه منبع باز به نام FairPlayTube کنیم که در Blazor WebAssembly اجرا می‌شود تا قابلیت‌های فناوری را نشان دهیم، می‌توانید کد را در اینجا بررسی کنید:  FairPlayTube

Blazor سرعت توسعه را بهینه می‌کند و وضعیت توسعه شما را از این رو به اون رو می‌کند، به کاهش قابل توجه کدهای تکراری و ناسازگاری بین مدل‌های front-end و api/backend کمک می‌کند و بنابراین به نوبه خود به کاهش باگ‌ها و در نتیجه هزینه‌های توسعه کمک می‌کند.

آیا اکنون وقت آن رسیده است که از Blazor در تولید سایت ها استفاده شود؟
نظرات مطالب
بررسی تغییرات Blazor 8x - قسمت دوازدهم - قالب جدید پیاده سازی اعتبارسنجی و احراز هویت - بخش دوم
چند مطلب و پروژه‌ی تکمیلی، اگر علاقمند به پیاده سازی سفارشی اعتبارسنجی و احراز هویت Blazor 8x در حالت SSR هستید:
- Custom cookie authentication in Blazor SSR  (اگر موفق به خواندن کامل آن نشدید، از این آدرس استفاده کنید)
- «SparkPoc» یک پیاده سازی سفارشی مبتنی بر کوکی مخصوص SSR
که اصل و اساس آن‌ها این مطلب است: «اعتبارسنجی مبتنی بر کوکی‌ها در ASP.NET Core 2.0 بدون استفاده از سیستم Identity» و در Blazor SSR هم قابل استفاده‌است.
نظرات مطالب
Blazor 5x - قسمت پنجم - مبانی Blazor - بخش 2 - کامپوننت‌ها
امکان تعریف پارامترهای اجباری در Blazor 6x

ذکر پارامترهای Blazor اختیاری هستند و در صورت عدم تعریف آن‌ها، از مقدار پیش‌فرض این پارامترها استفاده می‌شود. اگر می‌خواهید تعریف پارامتری را اجباری کنید، اکنون در Blazor 6x می‌توان به صورت زیر عمل کرد:
[Parameter, EditorRequired]
public string Title { get; set; }
که به همراه قید ویژگی جدید EditorRequired است و در زمان Build برنامه، توسط کامپایلر بررسی خواهد شد.
باید دقت داشت که این ویژگی در زمان اجرای برنامه بررسی نشده و همچنین تعریف آن به معنای بررسی null بودن مقادیر نیست.