آموزش Collection Binding با Blazor Server و مقایسه آن با Blazor Web Assembly
https://youtu.be/uYT3k0P3rdc
https://youtu.be/uYT3k0P3rdc
در این ویدیو یک Custom TagHelper Attribute تعریف می کنیم که می تواند تگهای HTML درون ویو را پنهان کند.
https://youtu.be/kYdnCIohbIs
https://youtu.be/kYdnCIohbIs
مایکروسافت شرکت تولید کننده بازی Activision Blizzard را به قیمت 68.7 میلیارد دلار خریداری می کند.
این خرید به صورت تمام نقدی انجام میشود و پس از آن مایکروسافت را به سومین شرکت تولید کننده بازی های رایانه ای تبدیل می شود.
بازی هایی مثل Call of Duty و Candy Crush و Warcraft از محصولات Activision Blizzard هستند که به مالکیت مایکروسافت منتقل می شوند.
این بزرگترین گام مایکروسافت برای توسعه شاخه بازی و پلتفرم XBox به شمار میرود.
این خرید به صورت تمام نقدی انجام میشود و پس از آن مایکروسافت را به سومین شرکت تولید کننده بازی های رایانه ای تبدیل می شود.
بازی هایی مثل Call of Duty و Candy Crush و Warcraft از محصولات Activision Blizzard هستند که به مالکیت مایکروسافت منتقل می شوند.
این بزرگترین گام مایکروسافت برای توسعه شاخه بازی و پلتفرم XBox به شمار میرود.
مقایسه حجم دانلود اپلیکیشن های Blazor WebAssembly
اپ هایی که با Blazor WebAssembly پیاده میشوند برای اجرا ابتدا باید به طور کامل روی دستگاه کاربر دانلود شوند. این رفتار مشابه مانند React و Angular است. البته در مورد فریم ورکهای جاوا اسکریپت حجم دانلود به مراتب کمتر است.
حجم فریم ورک دات نت در وب اسمبلی چیزی در حدود 1 مگابایت است.
در حالت Ahead of time compilation که سورس بجای ترجمه در زمان اجرا از قبل کامپایل میشود حجم تا 3 مگابایت افزایش میابد.
استفاده از AOT برای اپ هایی که نیاز به پرفورمنس بالا دارند و CPU-Bound هستند توصیه میشود. مثل بازی ها و برنامه هایی با محاسبات ریاضی سنگین.
استفاده از EF Core حجم اپ های Blazor را به حد چشمگیری افزایش میدهد. پس اگر با دیتابیس کار می کنید (مثل sqlite در مرورگر) کاربر برای استفاده از برنامه شما باید چیزی در حدود 5 مگابایت را دانلود کند. البته این دانلود فقط در اجرای اول نیاز است و در مراحل بعدی کاهش میابید.
اپ هایی که با Blazor WebAssembly پیاده میشوند برای اجرا ابتدا باید به طور کامل روی دستگاه کاربر دانلود شوند. این رفتار مشابه مانند React و Angular است. البته در مورد فریم ورکهای جاوا اسکریپت حجم دانلود به مراتب کمتر است.
حجم فریم ورک دات نت در وب اسمبلی چیزی در حدود 1 مگابایت است.
در حالت Ahead of time compilation که سورس بجای ترجمه در زمان اجرا از قبل کامپایل میشود حجم تا 3 مگابایت افزایش میابد.
استفاده از AOT برای اپ هایی که نیاز به پرفورمنس بالا دارند و CPU-Bound هستند توصیه میشود. مثل بازی ها و برنامه هایی با محاسبات ریاضی سنگین.
استفاده از EF Core حجم اپ های Blazor را به حد چشمگیری افزایش میدهد. پس اگر با دیتابیس کار می کنید (مثل sqlite در مرورگر) کاربر برای استفاده از برنامه شما باید چیزی در حدود 5 مگابایت را دانلود کند. البته این دانلود فقط در اجرای اول نیاز است و در مراحل بعدی کاهش میابید.
آشنایی با LLVM
این پروژه در سال 2000 به عنوان یک تحقیق دانشجویی توس کریس لتنر شروع شد.
در گذشته وقتی میخواستید یک زبان برنامه نویسی جدید بسازید بایدفرآیند خوانش کد و تبدیل آن به زبان ماشین را خودتان پیاده میکردید. مشکل این است که پردازنده های سخت افزاری متعددی در بازار وجود دارد و ساز و کار x86 با ARM و PowerPC و ... متفاوت است.
این مشکلی است که LLVM به خوبی حل می کند. LLVM مجموعه ای از ابزار با API های ماژولار در اختیار شما قرار میدهد تا بتوانید سورس کد را به زبانی میانی یا Intermediate Representation تبدیل کنید. فقط کافی است کدهای مربوط به Front-End را بنویسید و به LLVM ارسال کنید.
این Front-End بخشی از کامپایلر است که وظیفه ی Parse کردن و تشخیص خطاهای Syntax را به عهده دارد. بعد از اینکه کد شما به IR تبدیل شد LLVM می تواند آن را برای انواع مختلف سخت افزار آماده کند و کد ماشین مورد نیاز را تولید کند.
ابزار LLVM کمک کرده فرآیند طراحی زبان های برنامه نویسی جدید آسانتر شود و در نتیجه زبانهایی مثل Kotlin و Rust و Swift در کوتاهترین زمان جای خود را بین برنامه نویسان باز کرده اند.
این پروژه در سال 2000 به عنوان یک تحقیق دانشجویی توس کریس لتنر شروع شد.
در گذشته وقتی میخواستید یک زبان برنامه نویسی جدید بسازید بایدفرآیند خوانش کد و تبدیل آن به زبان ماشین را خودتان پیاده میکردید. مشکل این است که پردازنده های سخت افزاری متعددی در بازار وجود دارد و ساز و کار x86 با ARM و PowerPC و ... متفاوت است.
این مشکلی است که LLVM به خوبی حل می کند. LLVM مجموعه ای از ابزار با API های ماژولار در اختیار شما قرار میدهد تا بتوانید سورس کد را به زبانی میانی یا Intermediate Representation تبدیل کنید. فقط کافی است کدهای مربوط به Front-End را بنویسید و به LLVM ارسال کنید.
این Front-End بخشی از کامپایلر است که وظیفه ی Parse کردن و تشخیص خطاهای Syntax را به عهده دارد. بعد از اینکه کد شما به IR تبدیل شد LLVM می تواند آن را برای انواع مختلف سخت افزار آماده کند و کد ماشین مورد نیاز را تولید کند.
ابزار LLVM کمک کرده فرآیند طراحی زبان های برنامه نویسی جدید آسانتر شود و در نتیجه زبانهایی مثل Kotlin و Rust و Swift در کوتاهترین زمان جای خود را بین برنامه نویسان باز کرده اند.
یک فانکشن در SQL Server تعریف می کنیم و آن را در یک Computed Column استفاده می کنیم و سرعت اجرای آن را با Sub Query در EF Core مقایسه می کنیم.
https://youtu.be/uCASTdXdYMg
https://youtu.be/uCASTdXdYMg
با استفاده از Razor Class Library می توانید ویوها و صفحات سایت رو به پروژه ها جدا منتقل کنید.
https://youtu.be/ByHhEebHz1c
https://youtu.be/ByHhEebHz1c
معماری WSL2
از نسخه 18917 ویندوز به بعد می توانید از قابلیت Windows Subsystem For Linux نسخه 2 استفاده کنید. معماری این نسخه تغییرات اساسی داشته و پرفورمنس محیط لینکوس را به طول قابل توجهی افزایش میدهد.
به طور کلی WSL به شما امکان میدهد روی ویندوز یک نسخه از لینوکس مثل Ubuntu یا CentOs نصب و اجرا کنید. در مقایسه با ابزاری مثل Virtual Box این کار راحت تر است و به منابع کمتری نیاز دارید.
در WSL1 دستورات Linux باید به Windows ترجمه میشد و بعد اجرا میشد اما در WSL2 هسته لینکوس به طور مجزا روی ویندوز نصب میشود و تنها نیاز به Hypvervisor جهت اجرا دارد که سربار به مراتب کمتری دارد.
با WSL2 می توانید عملا هر نرم افزار Linux را روی ویندوز اجرا کنید و این گزینه برای توسعه دهندگان نرم افزار میتواند ابزار خوبی باشد.
نسخه جدید Docker ویندوز هم روی WSL2 اجرا میشود.
از نسخه 18917 ویندوز به بعد می توانید از قابلیت Windows Subsystem For Linux نسخه 2 استفاده کنید. معماری این نسخه تغییرات اساسی داشته و پرفورمنس محیط لینکوس را به طول قابل توجهی افزایش میدهد.
به طور کلی WSL به شما امکان میدهد روی ویندوز یک نسخه از لینوکس مثل Ubuntu یا CentOs نصب و اجرا کنید. در مقایسه با ابزاری مثل Virtual Box این کار راحت تر است و به منابع کمتری نیاز دارید.
در WSL1 دستورات Linux باید به Windows ترجمه میشد و بعد اجرا میشد اما در WSL2 هسته لینکوس به طور مجزا روی ویندوز نصب میشود و تنها نیاز به Hypvervisor جهت اجرا دارد که سربار به مراتب کمتری دارد.
با WSL2 می توانید عملا هر نرم افزار Linux را روی ویندوز اجرا کنید و این گزینه برای توسعه دهندگان نرم افزار میتواند ابزار خوبی باشد.
نسخه جدید Docker ویندوز هم روی WSL2 اجرا میشود.
با ADO.NET می توایند با دیتابیس ارتباط برقرار کنید و دیتای آن را بخوانید یا تغییر دهید. در این ویدیو نحوه استفاده از ADO.NET در یک پروژه ASP.NET Core آموزش داده میشود و سپس به مقایسه آن با EF Core 5.0 می پردازیم.
https://youtu.be/ik5rTMDsP_c
https://youtu.be/ik5rTMDsP_c
عمر NET 5.0 تا سه ماه دیگر به پایان میرسد.
طبق اعلام قبلی مایکروسافت عمر نسخه 5.0 دات نت که سال گذشته منتشر شد در تاریخ 8 می 2022 به پایان میرسد و از این تاریخ به بعد هیچ آپدیتی برای آن ارائه نمیشود.
توسعه دهندگانی که از دات نت 5.0 استفاده میکنند بهتر است به دات نت 6.0 آپدیت کنند.
نسخه 6.0 شامل پشتیبانی بلند مدت (سه ساله ) میشود و حتی پس از انتشار نسخه 7.0 هم برای آن آپدیت ارائه میشود.
طبق اعلام قبلی مایکروسافت عمر نسخه 5.0 دات نت که سال گذشته منتشر شد در تاریخ 8 می 2022 به پایان میرسد و از این تاریخ به بعد هیچ آپدیتی برای آن ارائه نمیشود.
توسعه دهندگانی که از دات نت 5.0 استفاده میکنند بهتر است به دات نت 6.0 آپدیت کنند.
نسخه 6.0 شامل پشتیبانی بلند مدت (سه ساله ) میشود و حتی پس از انتشار نسخه 7.0 هم برای آن آپدیت ارائه میشود.
دات نت 20 ساله شد
اولین نسخه دات نت سال 2002 منتشر شد. 20 سال پیش در جریان کنفرانس PDC مایکروسافت برای اولین بار دات نت را معرفی کرد و سی دی آن را به توسعه دهندگان حاضر در جلسه هدیه داد.
دات نت ابتدا فقط برای ویندوز ارائه شد و قرار بود محصولی باشد که کمک کند ویندوز و نرم افزارهایش تا ابد به هم گره بخورند. اما زمانه عوض شد و مایکروسافت هم تغییر کرد.
دات نت امروز متن باز شده و به صورت رایگان قابل نصب و توسعه است. سورس کامل آن را می توانید از گیتهاب دانلود کنید و روند توسعه قابلیت های جدید آن را یک به یک دنبال کنید یا در پیاده سازی آن مشارکت کنید.
با دات نت می توانید بازی، وب سایت یا هوش مصنوعی طراحی کنید و برای موبایل و دسکتاپ اپ توسعه دهید. محیط یکپارچه و ابزار قدرتمندی چون ویژوال استودیو فرآیند پیاده سازی را به ساده ترین شکل پیش میبرد.
امروز بعد از 20 سال همچنان روز خوبی برای یک توسعه دهنده دات نت بودن است.
اولین نسخه دات نت سال 2002 منتشر شد. 20 سال پیش در جریان کنفرانس PDC مایکروسافت برای اولین بار دات نت را معرفی کرد و سی دی آن را به توسعه دهندگان حاضر در جلسه هدیه داد.
دات نت ابتدا فقط برای ویندوز ارائه شد و قرار بود محصولی باشد که کمک کند ویندوز و نرم افزارهایش تا ابد به هم گره بخورند. اما زمانه عوض شد و مایکروسافت هم تغییر کرد.
دات نت امروز متن باز شده و به صورت رایگان قابل نصب و توسعه است. سورس کامل آن را می توانید از گیتهاب دانلود کنید و روند توسعه قابلیت های جدید آن را یک به یک دنبال کنید یا در پیاده سازی آن مشارکت کنید.
با دات نت می توانید بازی، وب سایت یا هوش مصنوعی طراحی کنید و برای موبایل و دسکتاپ اپ توسعه دهید. محیط یکپارچه و ابزار قدرتمندی چون ویژوال استودیو فرآیند پیاده سازی را به ساده ترین شکل پیش میبرد.
امروز بعد از 20 سال همچنان روز خوبی برای یک توسعه دهنده دات نت بودن است.
Forwarded from کدهک
آشنایی با Throughput
هنگام اندازه گیری پرفورمنس در نرم افزارهای تحت وب از اصطلاح throughput استفاده می شود که بر اساس تعداد عملیات تقسیم بر زمان محاسبه می شود.
معمولا مقدار throughput بر اساس دو واحد درخواست بر ثانیه یا کیلوبایت بر ثانیه نماش داده میشود.
بر اساس شرایط پروژه ممکن است یکی از دو عدد اهمیت داشته باشد. پاسخگویی به تعداد زیاد درخواست در زمان کوتاه در شرایطی که حجم درخواست ها بسیار کم است لزوما نشان دهنده پرفورمنس بالا نیست.
در درون سرورهایی که با ASP NET و سی شارپ کار میکنند تخصیص حافظه ارزان و سریع است اما برای پاکسازی نیاز به Garbage Collection داریم.
هنگامی که GC اتفاق می افتد برنامه متوقف میشود در این زمان هیچ داده ای جابجا نمیشود در نتیجه مقدار Throughput کم میشود و پرفورمنس افت می کند.
هر چه تخصیص و پاکسازی حافظه بهینه تر انجام شود از نگاه ناظر بیرونی (کاربر) سایت نرمتر کارمیکند. این موضوع به خصوص در بازی های آنلاین که توقف برنامه آزار دهنده است اهمیت بیشتری پیدا میکند.
هنگام اندازه گیری پرفورمنس در نرم افزارهای تحت وب از اصطلاح throughput استفاده می شود که بر اساس تعداد عملیات تقسیم بر زمان محاسبه می شود.
معمولا مقدار throughput بر اساس دو واحد درخواست بر ثانیه یا کیلوبایت بر ثانیه نماش داده میشود.
بر اساس شرایط پروژه ممکن است یکی از دو عدد اهمیت داشته باشد. پاسخگویی به تعداد زیاد درخواست در زمان کوتاه در شرایطی که حجم درخواست ها بسیار کم است لزوما نشان دهنده پرفورمنس بالا نیست.
در درون سرورهایی که با ASP NET و سی شارپ کار میکنند تخصیص حافظه ارزان و سریع است اما برای پاکسازی نیاز به Garbage Collection داریم.
هنگامی که GC اتفاق می افتد برنامه متوقف میشود در این زمان هیچ داده ای جابجا نمیشود در نتیجه مقدار Throughput کم میشود و پرفورمنس افت می کند.
هر چه تخصیص و پاکسازی حافظه بهینه تر انجام شود از نگاه ناظر بیرونی (کاربر) سایت نرمتر کارمیکند. این موضوع به خصوص در بازی های آنلاین که توقف برنامه آزار دهنده است اهمیت بیشتری پیدا میکند.