آموزش ساخت یک بلاگ با Blazor .Net 8
200, OK
https://www.youtube.com/watch?v=bqlYviq4J4o icon

In this video we will build a complete full stack Blog Web App using the new Blazor Web App with SSR with .Net 8 | Step by Step | From Scratch to End You will learn: New Static Server Side Rendering with Blazor, QuickGrid, Enhanced Navigation, Enhanced Forms, Stream Rendering, Image Preview & Upload, Identity Authentication, Interactive Server Render Mode for Admin Panel, and much more  

آموزش ساخت یک بلاگ با  Blazor .Net 8
ابزار کمکی (اوپن سورس) برای ویندوز 10 , 11 توسط مایکروسافت
200, OK
https://learn.microsoft.com/en-us/windows/powertoys/ icon

با نصب این برنامه نسبتا کم حجم (اوپن سورس) مجموعه ای از چند ابزار جانبی برروی کامپیوترتان نصب می‌شود. یکی از ابزارهای بسیار کاربردی آن Color Picker است که با فشردن کلید‌های Win+shift+C این برنامه فعال شده و با کیلک بر روی هر نقطه از عکس کد رنگ نقطه انتخابی را نمایش میدهد.

سایر ابزار شامل این موارد است:

Always On Top, File Explorer add-ons, File locksmith, Image Resizer, Keyboard Manager, Mouse utilities, Power rename (enables you to perform bulk renaming, searching and replacing file names), PowerToysRun (can help you search and launch your app instantly. To open, use the shortcut Alt+Space and start typing), Screen Ruler, ShortCut Guid(shows the available shortcuts for the current state of the desktop), Text Extractor, Fancy Zones, PowerToys Awake

ابزار کمکی (اوپن سورس) برای ویندوز 10 , 11 توسط مایکروسافت
سریعترین روش خواندن آیتمهای یک لیست
200, OK
https://www.youtube.com/watch?v=jUZ3VKFyB-A icon

فرض کنید یک لیست از اعداد به تعداد مثلا 1000000 عضو دارید و میخواهید با خواندن آنها عملیاتی را انجام دهید. در این ویدیوی کوتاه نشان داده می‌شود که از بین روش‌های معمول خواندن آیتمهای این لیست ، سریعترین روش کدام است. مدت زمان روش پیشنهادی در این ویدیو، نصف زمان معمولی است که عموما با استفاده از حلقه for یا foreach استفاده میکنیم (و جالبتر اینکه این  دو روش یعنی: for و foreach در اکثر موارد، سریعترین روش خواندن محتویات یک کالکشن هستند). روش پیشنهادی یکی از دو روش زیر است :

List<int> items = new List<int>(new int[1000]);
foreach(int item in CollectionMarshal.AsSpan(items))
{
     ..........
}

var asSpan = CollectionMarshal.AsSpan(items); 
for(int i; i < asSpan.Length; i++)
{
     var item = asSpan[i];
}


سریعترین روش خواندن آیتمهای یک لیست
چرا لینک های درون صفحه ای (Anchor Tags) در Blazor عمل نمی کند و چگونه این مشکل را برطرف کنیم
200, OK
https://www.meziantou.net/anchor-navigation-in-a-blazor-application.htm icon

اگر در درون یک کامپوننت بخواهیم لینکی تعریف کنیم که کاربر با کلیک بر روی آن به بخش دیگری از همان صفحه برود (کاری که به راحتی در Html با تعریف یک آنکور <a> میسر است) در Blazor میسر نیست.

در این مقاله روش برطرف کردن این مشکل به همراه سورس توضیح داده شده است.

چرا لینک های درون صفحه ای (Anchor Tags) در Blazor عمل نمی کند و چگونه این مشکل را برطرف کنیم
افزونه طراحی گزارش در Visual Studio 2022 توسط مایکروسافت
200, OK
https://devblogs.microsoft.com/visualstudio/analysis-services-and-reporting-services-extensions-for-visual-studio-2022-are-here/ icon

افزونه های SQL Server Reporting Services Projects و RDLC Report Designer که جدیدا توسط مایکروسافت به صورت افزونه ای که میتوان به Visual Studio 2022 اضافه کرد، ارائه شده است. 

افزونه طراحی گزارش در Visual Studio 2022 توسط مایکروسافت
ذخیره سازی اطلاعات درحالت offline و sync کردن داده ها بعد از برقراری ارتباط با سرور در Blazor WebAssembly
200, OK
https://www.blazortrain.com/ icon

1- ذخیره سازی اطلاعات در حالت offline به کمک IndexedDB :

ویدیوی آموزشی ، سورس

2- Sync کردن اطلاعات ذخیره شده با سرور بخش اول:

ویدیوی آموزشی ، سورس

3- Sync کردن اطلاعات ذخیره شده با سرور بخش دوم: 

ویدیوی آموزشی ،  سورس

ذخیره سازی اطلاعات درحالت offline و sync کردن داده ها بعد از برقراری ارتباط با سرور در Blazor WebAssembly
افزونه NET MAUI Community Toolkit C# Markup Extensions
200, OK
https://codetraveler.io/using-net-maui-community-toolkit/ icon

اگر علاقه ای به توسعه برنامه هایی که با Net MAUI. نوشته خواهند شد با استفاده از XAML ندارید به کمک این افزونه میتوانید همان دستورات را به زبان #C بنویسید.

using System;
using CommunityToolkit.Maui.Markup;
using Microsoft.Maui;
using Microsoft.Maui.Controls;
using Microsoft.Maui.Essentials;
using static CommunityToolkit.Maui.Markup.GridRowsColumns;

namespace HelloMauiMarkup;

class MainPage : ContentPge
{
    public MainPage()
    {
        BindingContext = new MainViewModel();

        Content = new Grid
        {
            RowSpacing = 25,
            ColumnSpacing = 0,

            Padding = Device.RuntimePlatform switch
            {
                Device.iOS => new Thickness(30, 60, 30, 30),
                _ => new Thickness(30)
            },

            RowDefinitions = Rows.Define(
                (Row.HelloWorld, 44),
                (Row.Welcome, Auto),
                (Row.Count, Auto),
                (Row.ClickMeButton, Auto),
                (Row.Image, Star)),

            ColumnDefinitions = Columns.Define(
            (Column.Text, Star),
                (Column.Number, Star)),

            Children =
            {
                new Label { Text = "Hello World" }
.Row(Row.HelloWorld).ColumnSpan(All<Column>())
.Font(size: 32)
.CenterHorizontal().TextCenter(),

                new Label { Text = "Welcome to .NET MAUI Markup Community Toolkit Sample" }
                .Row(Row.Welcome).ColumnSpan(All<Column>())
                    .Font(size: 18)
                .CenterHorizontal().TextCenter(),

new Label { Text = "Current Count: " }
                .Row(Row.Count).Column(Column.Text)
.Font(bold: true)
.End().TextEnd(),

new Label()
                .Row(Row.Count).Column(Column.Number)
                    .Font(bold: true)
                    .Start().TextStart()
                    .Bind<Label, int, string>(Label.TextProperty, nameof(MainViewModel.ClickCount), convert: count => count.ToString())

                new Button { Text = "Click Me" }
                .Row(Row.ClickMeButton)
                .Font(bold: true)
                .CenterHorizontal()
.BindCommand(nameof(ViewModel.ClickMeButtonCommand)),

                new Image { Source = "dotnet_bot.png", WidthRequest = 250, HeightRequest = 310 }
.Row(Row.Image).ColumnSpan(All<Column>())
.CenterHorizontal()
}
};
    }

    enum Row { HelloWorld, Welcome, Count, ClickMeButton, Image }
    enum Column { Text, Number }
}


افزونه NET MAUI Community Toolkit C# Markup Extensions
نمایش قابلیتهای جدید Blazor
200, OK
https://www.youtube.com/watch?v=kesUNeBZ1Os icon

در این ویدیو Steve Sanderson از برنامه نویسان ارشد تیم Blazor نشان میدهد با امکانات جدید Blazor چگونه میتوان بدون نیاز به سرور از SqlLite و Entityframework درون مرورگر استفاده کرد، چگونه یک برنامه React میتواند کامپوننت‌های Blazor را استفاده کند و چگونه میتوان از یک Library نوشته شده در زبان Rust برای تولید بارکد QR در Blazor استفاده کرد و مطالب بسیار جالب دیگر. توصیه میکنم آن را از دست ندهید. سورس کد دمو هم در آدرس گیت هاب وی موجود است.

نمایش قابلیتهای جدید Blazor