کدهک
1.94K subscribers
1.29K photos
7 videos
1 file
674 links
آموزشگاه تخصصی دات نت

https://codehaks.com

لینکدین :
https://www.linkedin.com/in/codehaks

یوتیوب:
https://www.youtube.com/@codehaksfa

ارتباط با مدیر :
Admin: @codehak
Email: ghods.hakim@hotmail.com
call: 09380146555
Download Telegram
پیش نمایش 9 منتشر شد

آخرین پیش نمایش NET Core 3.0 منتشر شد. بیشترین تغییرات در زمینه ی Blazor است و بخشهایی هم مربوط به gRPC میشود. نکته ی جالب توجه حجم دانلود SDK است که با وجود اضافه شدن WinFrom و WPF نسبت به نسخه ی 2.2 حدود 20 مگابایت کمتر شده است.

طبق اعلام مایکروسافت این نسخه توسط مایکروسافت پشتیبانی میشود و می توان در Production مورد استفاده قرار گیرد. در حال حاضر سایت دات نت مایکروسافت به پیش نمایش 9 آپدیت شده است.

همچنین پیش نمایش جدید VS2019 با حجم دانلود 1.3 گیگابایت امروز منتشر شد که نشان از تغییرات زیادی دارد.

نسخه نهایی NET Core 3.0 به همراه ASP Core سه هفته ی دیگر در NET Conf معرفی میشود.
آشنایی با gRPC

در ASP NET Core 3.0 یک قالب اختصاصی برای پروژه ی gRPC در نظر گرفته شده است. همین موضوع نشان از اهمیت و کاربرد زیاد تکنولوژی gRPC در دنیای امروز دارد.

در gRPC کلاینت می تواند متدی را در سرور اجرا کند درست مانند اینکه متد درون خودش قرار دارد.

تکنولوژی RPC قدیمی است و سالهاست مورد استفاده قرار میگیرد. گوگل با استاندارد سازی و بهینه کردن روش انتقال اطلاعات تکنولوژی gRPC را پیاده کرد و بعدا به صورت متن باز در اختیار سایر برنامه نویسها قرار داد.

متدهایی که در سرور قابل صدا زدن هستند از طریق Protobuf که یک فایل با پسوند proto است در اختیار کلاینت قرار میگیرند. ساختار پیامهای ارسالی و دریافتی از طریق این فایل مشخص میشود و بدون آن امکان خواندن محتوا بین کلاینت و سرور وجود ندارد. بر خلاف JSON در Protocol Buffer ساختار پیام ارسال نمیشود و فقط شامل خود داده است تا کمترین حجم پهنای باند مصرف شود.

گوگل برای زبانهای برنامه نویسی مختلف ابزاری فراهم کرده که کدهای مورد نیاز برای ارتباط بین کلاینت و سرور را می سازد.

از gRPC در میکروسرویسها بسیار استفاده میشود.
دوره آموزش کار با Collection ها در سی شارپ و ASP NET Core

پخش در یوتوب :

https://kutt.it/rJvT82
Forwarded from اِسکیلی Skilly (مهدی کرامتی)
👩‍💻👨‍💻 روز #برنامه‌نویس مبارک

💢 روز ۲۵۶ام هر سال (معادل عدد ۱۰۰ در مبنای شانزده) و مطابق با ۱۳ سپتامبر (۱۲ سپتامبر در سال‌های کبیسه) به عنوان روز برنامه‌نویسان نام گرفته ‌است. عدد ۲۵۶ (۲ به توان ۸) بزرگترین توان عدد ۲ کوچکتر از، ۳۶۵ که تعداد روزهای یک سال است، می‌باشد.

@barnamenevis_org
@barnamenevis_net
آشنایی با Blazor در ASP NET Core 3.0

طبق اعلام مایکروسافت نسخه ی رسمی Blazor به همراه NET Core 3.0 منتشر میشود. اما در حال حاضر فقط حالت Server-Side آن توسعه داده شده است و استفاده از Blazor به صورتی که در مرورگر کاربر اجرا شود به نسخه های بعدی دات نت موکول شده است.

هر چند که قالب پروژه مخصوص Client-Side وجود دارد و از همین امروز میتوانید از این تکنولوژی استفاده کنید اما پشتیبانی رسمی از آن انجام نمیشود.

در حال حاضر Blazor از نسخه ی NET Mono استفاده میکند و در واقع مایکروسافت یک نسخه از Runtime Mono را روی Web Assembly کامپایل کرده است.

تلاش زیادی برای کم کردن حجم Runtime صورت گرفته و در حال حاضر حجم آن به حدود 2 مگابایت رسیده است. این حجم در اولین نمایش صفحه دانلود میشود و در مرورگر کش میشود.

البته طبق گفته ی Steve Sanderson مبتکر اصلی Blazor در نسخه ی 5 از دات نت این روش تغییر خواهد کرد و روشهای بهتری جایگزن آن میشود که هنوز در دست بررسی است.
در حالت server-side کدهایی که برای کنترل UI نوشته شده درون سرور اجرا میشوند. وقتی کاربر روی یک دکمه کلید می کند رویداد آن از طریق SignalR به سرور ارسال میشود. در سرور اطلاعات پردازش شده و تغییراتی که باید در HTML اعمال شود به کلاینت برگردانده میشود.

از مزایای استفاده از Server-Side این است که کدهای شما در اختیار کلاینت قرار نمیگیرند. در این روش مستقیما به امکانات کامل دات نت دسترسی دارید و حتی می توانید با اکسل ارتباط مستقیم برقرار کنید. اطلاعات مستقیم از دیتابیس قابل دسترسی است و نیاز به Web API ندارید.

مشکل اصلی در Latency است چون گردش رویدادها بین کلاینت و سرور زمانبر است. همینطور زمانی که کاربرها زیاد باشند برای هرکدام یک کانکشن جدا به سرور ایجاد میشود که در ترافیک بالا میتواند فشار زیادی به سرور وارد کند. همینطور حالت آفلاین هم وجود ندارد و کلاینت نمیتواند بدون اینترنت از اپ استفاده کند.

خوشبختانه Blazor به شکلی توسعه داده شده است که می تواند به راحتی بین حالت Server-Side و Client-Side جابجا شد و در آینده اگر لازم باشه می تواند کدهای خود را بدون تغییر خاصی از سرور به کلاینت منتقل کنید.
آشنایی با GPU

در حالی که CPU به طور متوسط شامل 8 یا 16 هسته است اما GPU معمولا بیش از 1000 هسته دارد. این تعداد هسته در انجام پردازش های گرافیکی که نیاز به محاسبات ریاضی زیادی دارد به کار می آیند و تجربه ی بازی کردن یا طراحی سه بعدی را شکل میدهد.

در GPU واحدهای پردازشی محاسباتی یا (ALU) از طریق SIMD یک عملیات را به صورت موازی و همزمان انجام میدهند. این موضوع سرعت پردازش را چند ده برابر میکند اما تنوع عملیاهای قابل اجرا را کاهش میدهد.

در CPU عملیاهایی مانند محسبات ریاضی تا کار با دیسک و شبکه انجام میشود و هدف اصلی این است که عملیاتها های متنوع به صورت جداگانه و در کوتاهترین زمان ممکن انجام شود در نتیجه CPU بازه ی بسیار گسترده ای از عملیاتها را پوشش میدهد.

قدرت پردازش بالای GPU باعث شده است در هوش مصنوعی و یادگیری ماشین همینطور در رمز ارزها و دستگاههای ماینر BitCoin مورد استفاده قرار گیرد.

در سی شارپ می توانید با استفاده از کامپایلر hybridizer برای GPU برنامه نویسی کنید. این کامپایلر کد سی شارپ را به پلتفرم CUDA منتقل میکند و فایل باینری مورد نیاز را تولید میکند.

https://tinyurl.com/cdhks-hybridizer
آموزش مقدماتی SignalR در ASP NET Core

در 8 ویدیو به مدت 30 دقیقه

https://tinyurl.com/cdhk-signalr
آشنایی با Worker Service در NET Core 3.0

فردا همزمان با NETConf 2019 نسخه ی نهایی NET Core 3.0 منتشر میشود. یکی از موارد جدیدی که در این نسخه اضافه شده است قابلیت Background Service است که از طریق قالب پروژه Worker Service در دسترس است.

از Worker Service برای ایجاد سرویس هایی که قرار است برای مدت طولانی در سیستم عامل اجرا شوند استفاده میشود. این نوع اپ ها رابط کاربری ندارند و معمولا برای لوگ کردن اطلاعات یا نمایش وضعیت کلی سیستم در صفحه Terminal مورد استفاده قرار میگیرند.

کاربرد این نوع اپ ها در مواردی است که قصد دارید یک عملیات در پس زمینه همیشه در حال اجرا باشد .

یکی از کاربردهای Worker Service مدیریت پیامهای RabbitMQ است. یا اگر میخواهید پیامک یا ایمیل ها در ساعت زمانبندی شده خارج از پروسه اصلی سایت اجرا شود مناسب است. همچنین از این ابزار برای مونیتور کردن سلامت سرور و دیتابیس استفاده میشود.

در گذشته از برنامه های کنسول یا TopShelf استفاده میشد اما Worker Service ابزاری اختصاصی برای اجرا عملیاتهای بلند مدت فراهم می کند و به راحتی می توان آن را به صورت Windows Service یا Daemon Linux اجرا کرد.
پخش زنده کنفرانس NetConf در یوتویب

کنفرانس NETConf امشب ساعت 19:30 به وقت ایران شروع میشود.

قرار است طی این کنفرانس که به صورت مجازی برگزار میشود نسخه ی NET Core 3.0 RTM معرفی شود.

نسخه ی جدید NET Core شامل ASP NET Core و Blazor و Win Forms و WPF میشود که کاملا به صورت متن باز توسعه داده شده است.

در این نسخه فقط بخش Server-side از Blazor عرضه میشود و ارائه ی قابلیبت Client-side آن به نسخه ی 3.1 موکول شده است.

لینک پخش زنده :

https://tinyurl.com/cdhk-netconf
نسخه ی نهایی NET Core 3.0 منتشر شد.

طبق اعلام مدیر فنی NET Core توسط بیش از یک میلیون دولوپر مورد استفاده قرار گرفته است.


دات نت متن باز توسعه داده میشود و تا به حال بیش از 100 هزار Pull Request توسط افراد خارج از مایکروسافت پذیرفته شده است.

ویژوال استودیو نسخه 2019 سریعتر از نسخه های قبل توسط دولوپر ها دانلود و مورد استفاده قرار گرفته است.

نسخه ی نهایی NET Core 3.0 بعد از 10 نسخه ی پیش نمایش منتشر شده است و بسیاری از باگها و ایرادات آن در این بازه ی زمانی برطرف شده است. از همین امروز می توانید شروع به استفاده از این نسخه کنید.

این نسخه شامل پشتیبانی LTS نمیشود و برای آن باید تا انتشار نسخه ی 3.1 که یک ماه دیگر ارئه میشود صبر کنید.

مایکروسافت قصد دارد از این فرصت یک ماهه استفاده کند و مشکلات احتمالی که توسط دولوپر ها گزارش میشود قبل از شروع دوره ی پشتیبانی بلند مدت برطرف کند.
نقشه ی راه

مایکروسافت برنامه ی بلند مدت خود را برای توسعه ی نسخه های بعدی دات نت اعلام کرد.

نسخه ی 3.1 از NET Core در اواخر ماه نوامبر (یک ماه دیگر) منتشر میشود که شامل پشتیبانی LTS یا بلند مدت سه ساله است.

در دوره های پشتیبانی بلند مدت برای باگها و مشکلات امنیتی پچ و آپدیت ارائه میشود که به صورت رایگان در اختیار همه قرار میگیرد.

در سال 2020 قرار است نسخه ی یک پارچه ی دات نت به شماره 5.0 منتشر شود و همه ی فریم ورکهای مختلف دات نت را زیر یک چتر مشترک جمع آوری کند.

از سال 2021 هر سال نسخه ی جدیدی از دات نت منتشر خواهد شد و یک سال در میان هم پشتیبانی LTS ارائه میشود.
چرا برنامه نویسان دسکتاپ باید به NET Core مهاجرت کنند؟

نسخه ی NET Core 3.0 اولین نسخه ای است که از WinForm و WPF پشتیبانی می کند.

دات نت Core امکان نصب Side-by-Side دارد و میتوان چند نسخه ی NET Core را کنار هم روی یک سیستم عامل نصب کرد.

همچنین می توان برنامه را به صورت self-contained منتشر کرد. در این حالت فایلهای فریم ورک به همراه پروژه منتشر میشود و نیاز به نصب ندارد.

امکان ایجاد فایل یکتا برای کل پروژه وجود دارد و مانند اپ Portable با کپی و پیست تکسیر و بدون نصب اجرا میشود.

کامپایلر جدید امکان حذف کتابخانه های مازاد دات نت را فراهم کرده با این کار حجم بسیار کمتر میشود. دیگر لازم نیست همه فریم ورک NET Core در کنار برنامه ی شما روی سیستم کاربر کپی شود.

حالت WinForm و WPF فقط برای ویندوز است و در لینوکس یا مک اجرا نمیشود. این سیستم عاملها محیط گرافیکی متفاوتی نسبت به ویندوز دارند که پیاده سازی آن روی دات نت کاربردی نیست.

نکته : بخش Form Designer مربوط به WinForm هنوز آماده نشده است و فعلا به صورت Preview و با نصب افزونه قابل استفاده است ولی برای WPF و محیط XAML مشکلی وجود ندارد.
اولین نگاه به ASP NET Core 3.0

در این ویدیو به معرفی نسخه ی جدید ASP NET Core می پردازیم و آن را با نسخه ی 2.2 مقایسه می کنیم.

لینک :
https://tinyurl.com/cdhk-aspcore3
برای همه ی فصل ها : NET Core

دات نت Core متن باز توسعه داده میشود و به صورت cross-platform قابل پیاده سازی و اجراست. فرقی نمیکند سیستم عامل شما ویندوز، مک یا لینوکس باشد.

در NET Core 3.0 علاوه بر ASP و Console امکان توسعه ی رابط کاربری با WPF و WinForm هم اضافه شده است.

ابزار Xamarin این امکان را فراهم میکند که از یک کد مشترک برای توسعه ی اپ های موبایل روی پلتفرمهای گوناگون استفاده کنید تا اپ شما با کمترین دردسر در اختیار همه ی کاربران قرار گیرد.

برای توسعه ی بازی های دو بعدی و سه بعدی می توانید از ابزار Unity در دات نت استفاده کنید.

مایکروسافت امکان توسعه اینترنت اشیا با سی شارپ را فراهم کرده و میتوانید برای Rasberry Pi و ARM32 و ARM64 اپ بسازید.

نسخه ی 1.0 از ML.NET منتشر شده است که امکان برنامه نویسی ماشین و هوش مصنوعی را در دات نت و به زبان #C فراهم میکند.

ویژوال استودیو در کنار زبان #C و فریم ورک متن باز دات نت محیطی را فراهم میکند که هر نوع اپ با کاربری های گوناگون طراحی کنید و از پشتیبانی با کیفیت و بلند مدت بهره ببرید.
اضافه کردن کامپوننت Blazor به پروژه ASP NET Core

در این ویدیو ابتدا یک پروژه ی خالی ASP NET Core 3.0 ایجاد می کنیم و سپس به آن Razor Pages را اضافه می کنیم. در آخر یک کامپوننت Blazor را درون صفحه اصلی سایت نمایش میدهیم.

با استفاده از این تکنیک می توانید به پروژه های جاری خود کامپوننت Blazor اضافه کنید و از آخرین تکنولوژی های ارائه شده بهره ببرید.

https://tinyurl.com/cdhk-blazor-rp
آشنایی با قابلیت های Blazor

در این ویدیو یک اپ CRUD پیاده شده با Blazor در حالت Server-side را بررسی می کنیم.

https://youtu.be/Px9WedDTjQg
استفاده از View Compilation در ASP NET Core 3.0

به صورت پیشفرض در ASP NET Core 3.0 ویوها تنها در زمان بیلد و پابلیش کامپایل میشوند و نمی توانید تغییرات ایجاد شده در HTML را با رفرش کردن صفحه مشاهده کنید.

برای حل این مشکل باید View Compilation را در حالت Runtime فعال کنید.

https://youtu.be/W2l2I17wVDs
Forwarded from کدهک
آشنایی با ref struct

از نسخه های اول #C امکان استفاده از struct وجود داشت. struct شباهت زیادی به کلاس دارد با این تفاوت که یک Value Type است و محتوای آن در Stack نگه داری میشود. اما همیشه اینطور نیست. اگر Struct درون کلاس به صورت Property تعریف شود یا به عنوان پارامتر Generic در List قرار گیرد عملیات Boxing اتفاق می افتد و حافظه ی Struct به Heap منتقل میشود.

پاکسازی Heap توسط Garbage Collection صورت میگیرد و می تواند باعث افت پرفورمنس شود.

در سی شارپ 7.2 قابلیت ref struct معرفی شد که نوع خاصی از struct است و فقط می تواند در Stack نگه داری شود.

خواندن از Stack سریعتر از Heap است اما از نظرحجم محدودیت دارد. به همین دلیل نمی توان دادهای زیادی درون ref struct قرار داد.

همچنین استفاده از ref struct کاربردهای محدودی دارد. از آنجا که به صورت Property درون کلاس قابل استفاده نیست، Box نمی شود و در List هم قرار نمیگیرد موارد کمی است که به کارتان می آید.

در عوض زمانی که میشود از Ref struct استفاده کرد پرفورمنس بالایی دارد که قبلا نمونه ی آن را در Span دیدیم.
در این ویدیو با استفاده از SignalR قابلیت بروز رسانی Real-time را به یک برنامه ی Blazor اضافه می کنیم.

https://youtu.be/oX-ksIDtqhM