DuoCode is an alternative compiler, powered by Microsoft® Roslyn, and integrated in Visual Studio.
It magically cross-compiles your C# 6.0 code into high-quality readable JavaScript code, enabling rapid development of web applications utilizing the extensive features of the C# language, the Visual Studio IDE, and the .NET Framework base class libraries.
یکی از مزایای Blazor، استفاده از دانش C# / HTML / CSS (که خیلی از ما اینها را هم اکنون بلد هستیم) برای نوشتن برنامههای وب (SPA / PWA)، برنامههای Android / iOS / Windows و وبسایتهایی با قابلیت Pre Rendering و SEO Friendly است. با یک بار کدنویسی به کمک Blazor، ولی با Configurationهای متفاوت میتوان خروجیهای مختلفی را برای پلتفرمهای مختلف گرفت؛ برای مثال Blazor Hybrid خروجی Android / iOS / Windows و Blazor Web Assembly خروجی PWA / SPA و در نهایت Blazor Static خروجی وب سایت میدهد. به علاوه حالت Blazor Server نیز وجود دارد که امروزه بزرگترین مزیت آن، Development experience فوقالعادهاش هست که در آن با استفاده از Hot Reload، میتوان تغییرات در فایلهای SCSS / C# / Razor را به صورت آنی، بدون نیاز به Build مجدد، رفرش کردن و از دست دادن State مشاهده نمود. امکان استفاده از Nuget Packageهای DotNet ای در Android / iOS / Windows / Web در کنار امکان استفاده از امکانات Native هر پلتفرم نیز از دیگر مزایای این روش است.
اما یکی از موانع استفادهی جدی از Blazor در پروژههای داخلی، نبود تقویم شمسی است که سبک بوده و پیش نیاز خاصی جز خود Blazor نداشته باشد. یک راه حل جدید برای حل این مشکل، استفاده از Bit Components است که اخیرا به صورت Open Source ارائه شده است. شما میتوانید Repository مربوطه را Fork نموده، Clone نمایید، به فولدر src بروید و با ویژال استودیو، Bit.Client.Web.BlazorUI.sln را باز کنید و سورس کامپوننتها را به همراه تستهای خودکار آن ببینید.
در سایت مربوطه نیز میتوانید دمویی از بیش از ۲۷ کامپوننت را شامل File uploader، Drop Down، Date Picker، Color Picker، Tree list و... مشاهده کنید که هر کدام دارای Documentation کامل بوده و آماده به استفاده در پروژههای شما هستند.
برای استفاده از Bit Components در پروژه خود، ابتدا Package مربوطه را نصب نمایید و سپس فایل js و css مربوطه را نیز به index.html یا Host.cshtml یا Layout.cshtml اضافه کنید (بسته به تنظیمات پروژهتان).
در Bit Components جز معدود مواردی که چند خطی با JavaScript توسعه داده شدهاست، کمپوننتها با C# / Razor / CSS توسعه داده شدهاند. این روش نسبت به روشهایی که بر روی کمپوننتهای کاملا JavaScript ای، اصطلاحا Wrapper ایجاد میکنند، دارای دو مزیت سرعت بالاتر و تضمین کار کردن آن در حالتهای مختلف مانند Pre Rendering است.
<link href="_content/Bit.Client.Web.BlazorUI/styles/bit.blazorui.min.css" rel="stylesheet" />
<script src="_content/Bit.Client.Web.BlazorUI/scripts/bit.blazorui.min.js"></script>
@using Bit.Client.Web.BlazorUI
<BitButton>Hello!</BitButton>
<BitDatePicker SelectedDate="@BirthDate"></BitDatePicker>
در C# .NET، کلاس CultureInfo، وظیفه نگهداری مواردی چون چند زبانگی، تقویمهای مختلف (اعم از شمسی و...)، موارد مربوط به ارز (برای مثال علامت $ یا ریال و...) را به عهده دارد. از جمله مزایای BitDatePicker، سازگاری با CultureInfo است، به نحوی که CultureInfo.CurrentUICulture هر چه که باشد، بر اساس آن عمل میکند. بنابراین میتوانید در Program.cs پروژه Blazor خود بنویسید:
CultureInfo.CurrentUICulture = new CultureInfo("fa-IR");
سوال اول: اگر بخواهیم در کل سیستم، تقویم شمسی باشد، ولی در یکی از صفحات میلادی چه؟ خب میتوانیم در آن صفحه، به شکل زیر از BitDatePicker استفاده کنیم:
<BitDatePicker Culture="@(new System.Globalization.CultureInfo("en-US"))" />
سوال دوم: تقویم شمسی نمایش داده شده، اسامی ماهها را به صورت فینگلیش نمایش میدهد و یا اسامی خلاصه شده روزها صحیح نیست!
این به خود BitDatePicker ربطی ندارد، بلکه به CultureInfo فارسی خود dotnet مرتبط است، اما شما چگونه میتوانید این مورد را بهبود بدید؟
شما میتوانید ابتدا با
var cultureInfo = CultureInfo.CreateSpecificCulture("fa-IR")
cultureInfo.DateTimeFormat.MonthNames = new[] { "فروردین", "اردیبهشت", "خرداد", "تیر", "مرداد", "شهریور", "مهر", "آبان", "آذر", "دی", "بهمن", "اسفند", "" };
در ادامه لازم هست چه Culture Info ای را که خودتان سفارشی سازی کردهاید، یا Culture Infoهای سیستمی را در CultureInfo.CurrentUICulture قرار بدهید تا BitDatePicker از آن پیروی کند.
در صورت بروز هر گونه مشکلی یا درخواست اضافه شدن امکانی، در repo مربوطه روی GitHub میتوانید یک issue را ثبت کنید.
اشتراکها
Babel 7.8.0 منتشر شد
اشتراکها
NET 8 Preview 2. منتشر شد
اشتراکها
Flux چیست ؟
Flux is an architecture for creating data layers in JavaScript applications. It was designed at Facebook along with the React view library. It places a focus on creating explicit and understandable update paths for your application's data, which makes tracing changes during development simpler and makes bugs easier to track down and fix.
دوستان، همکاران سیستم یک وبینار رایگان در مورد Web Components برگزار میکند که من ارائه میکنم 🙂. اگر علاقهمند بودید ثبت نام کنید.
Web Components مجموعهای از تکنولوژیهایی هستند که امکان ساخت المانهای سفارشی استاندارد با قابلیت استفادهی مجدد و به همراه کپسولهسازی ساختار، استایل و عملکرد را در اختیار ما قرار میدهند. این المانهای استاندارد، وابستگی به فریمورک خاصی ندارند.
در این وبینار به بررسی مسائلی خواهیم پرداخت که با استفاده از Web Components قابل حل هستند و در ادامه روش تولید آنها با استفاده از JavaScript/HTML/CSS ارائه خواهد شد. در نهایت ابزارهایی مانند StencilJS و Polymer برای توسعه سادهتر و بهینهتر این کامپوننتها معرفی میشوند.
محورهای اصلی این وبینار:
- چرا Web Components؟
- وضعیت پشتیبانی و به کار گیری Web Components
- توسعه چند کامپوننت نمونه با استفاده از Web Components
- بررسی ابزارهای جانبی
- استفاده به شکل Framework agnostic
📌تاریخ برگزاری: شنبه 20 دی، ساعت 18:30 تا 20:00