Forwarded from کدهک
مقایسه const و static readonly
در سی شارپ برای نگه داری مقادیر ثابت از const استفاده میشود. همچنین می توان با استفاده از static readonly متغیرهای فقط خواندنی تعریف کرد.
مقدار const باید در زمان تعریف مشخص شود و بعد از آن قابل تغییر نیست. همچنین const فقط مقادیر built-in مثل int و string به خود میگیرد.سی شارپ در پس زمینه هر جایی که const بکار رفته با مقدارش جایگزین میکند و در کد کامپایل شده hard-code میکند. این مقدار دیگر قابل تغییر نیست مگر اینکه پروژه مجدد build شود. به همین دلیل اگر از چند dll استفاده میکنید بهتر است از const استفاده نکنید.
مقادیر که به صورت Static readonly تعریف میشوند در زمان اجرا قابل تغییر نیستند. در اینجا می توان هر نوع داده ای از جمله مقادیر reference type هم ذخیره کرد. همچنین می توان مقدار اولیه را درون سازنده ی کلاس مشخص کرد. از آنجا که hard-code انجام نمیشود برای بدست آوردن مقدار باید به حافظه رجوع شود و ممکن است کندتر از const عمل کند.
نکته ی آخر اینکه مقادیر const خود به خود static هم هستند. مقادیر static پاکسازی نمیشوند و تا پایان اجرای برنامه درون حافظه باقی می مانند.
در سی شارپ برای نگه داری مقادیر ثابت از const استفاده میشود. همچنین می توان با استفاده از static readonly متغیرهای فقط خواندنی تعریف کرد.
مقدار const باید در زمان تعریف مشخص شود و بعد از آن قابل تغییر نیست. همچنین const فقط مقادیر built-in مثل int و string به خود میگیرد.سی شارپ در پس زمینه هر جایی که const بکار رفته با مقدارش جایگزین میکند و در کد کامپایل شده hard-code میکند. این مقدار دیگر قابل تغییر نیست مگر اینکه پروژه مجدد build شود. به همین دلیل اگر از چند dll استفاده میکنید بهتر است از const استفاده نکنید.
مقادیر که به صورت Static readonly تعریف میشوند در زمان اجرا قابل تغییر نیستند. در اینجا می توان هر نوع داده ای از جمله مقادیر reference type هم ذخیره کرد. همچنین می توان مقدار اولیه را درون سازنده ی کلاس مشخص کرد. از آنجا که hard-code انجام نمیشود برای بدست آوردن مقدار باید به حافظه رجوع شود و ممکن است کندتر از const عمل کند.
نکته ی آخر اینکه مقادیر const خود به خود static هم هستند. مقادیر static پاکسازی نمیشوند و تا پایان اجرای برنامه درون حافظه باقی می مانند.
متوسط حقوق
موسسه کاریابی Vettery هر سال گزارشی از وضعیت حقوق و درآمد صنعت IT منتشر میکند. به تازگی گزارش 2019 این موسسه منتشر شده که در ادامه آمار مربوط به شهر سانفرانسیسکو آمده است.
شهر سانفراسیسکو در ایالت کالیفرنیا ی آمریکا مرکز فعالیت شرکتهای بزرگ تکنولوژی مثل فیس بوک ، گوگل ، اوبر و ... است.
طبق این گزارش توسعه دهندگان موبایل هم در شروع کار هم بعد از 5 سال تجربه حقوق بیشتری دریافت می کنند.
برنامه نویسان Back-end بعد از سال اول نسبت به سایر تخصص ها درآمد بیشتری دارند.
اختلاف دستمزد در هیچ تخصصی چشمگیر نیست و متوسط درآمد به طور کلی بهم نزدیک است.
در اولین سال فعالیت دستمزد متخصصین علوم دیتا از همه بیشتر است اما اگر مایل هستید بیشترین حقوق را در بین همه ی همکاران داشته باشید باید به دنبال سمت های مدیریتی باشید.
موسسه کاریابی Vettery هر سال گزارشی از وضعیت حقوق و درآمد صنعت IT منتشر میکند. به تازگی گزارش 2019 این موسسه منتشر شده که در ادامه آمار مربوط به شهر سانفرانسیسکو آمده است.
شهر سانفراسیسکو در ایالت کالیفرنیا ی آمریکا مرکز فعالیت شرکتهای بزرگ تکنولوژی مثل فیس بوک ، گوگل ، اوبر و ... است.
طبق این گزارش توسعه دهندگان موبایل هم در شروع کار هم بعد از 5 سال تجربه حقوق بیشتری دریافت می کنند.
برنامه نویسان Back-end بعد از سال اول نسبت به سایر تخصص ها درآمد بیشتری دارند.
اختلاف دستمزد در هیچ تخصصی چشمگیر نیست و متوسط درآمد به طور کلی بهم نزدیک است.
در اولین سال فعالیت دستمزد متخصصین علوم دیتا از همه بیشتر است اما اگر مایل هستید بیشترین حقوق را در بین همه ی همکاران داشته باشید باید به دنبال سمت های مدیریتی باشید.
اضافه حقوق بر مبنای مهارت
داشتن مهارت در برنامه نویسی Scala می تواند برای شما تا 15 هزار دلار در سال حقوق بیشتر داشته باشد.
محبوبت زبان Go و استفاده ی زیاد آن در معماری میکروسرویس هم باعث شده است دانستن آن شامل 11 هزار دلار اضافه حقوق باشد.
آشنایی با ابزاری مثل D3.js که در Data Visualization و تحلیل داده کاربرد دارد هم در بین شرکتهای آمریکایی یک مزیت مهم به شمار میرود.
داشتن مهارت در برنامه نویسی Scala می تواند برای شما تا 15 هزار دلار در سال حقوق بیشتر داشته باشد.
محبوبت زبان Go و استفاده ی زیاد آن در معماری میکروسرویس هم باعث شده است دانستن آن شامل 11 هزار دلار اضافه حقوق باشد.
آشنایی با ابزاری مثل D3.js که در Data Visualization و تحلیل داده کاربرد دارد هم در بین شرکتهای آمریکایی یک مزیت مهم به شمار میرود.
Forwarded from کدهک
هنگامی که با کد Unmanaged کار می کنید همیشه احتمال دارد با Memory Leak مواجه شوید.
منظور از Unmanaged کدی است که توسط زبانهایی مثل ++C نوشته شده و حافظه ی آن به صورت خودکار پاکسازی نمی شود.
نشت حافظه یا Memory Leak زمانی اتفاق می افتد که کد Unmanaged به هر دلیلی حافظه ی خود را پاکسازی نمیکند و در نتیجه با گذشت زمان کد شما کندتر میشود.
در سی شارپ برای پاکسازی حافظه Unmanaged از کلمه ی کلیدی Using استفاده میشود. از نسخه ی 8.0 به بعد دیگر نیاز نیست برای Using از Code Block استفاده شود. هرجا متغیری با استفاده از Using تعریف شود در انتهای متد پاکسازی حافظه ی آن به صورت خودکار انجام میشود.
منظور از Unmanaged کدی است که توسط زبانهایی مثل ++C نوشته شده و حافظه ی آن به صورت خودکار پاکسازی نمی شود.
نشت حافظه یا Memory Leak زمانی اتفاق می افتد که کد Unmanaged به هر دلیلی حافظه ی خود را پاکسازی نمیکند و در نتیجه با گذشت زمان کد شما کندتر میشود.
در سی شارپ برای پاکسازی حافظه Unmanaged از کلمه ی کلیدی Using استفاده میشود. از نسخه ی 8.0 به بعد دیگر نیاز نیست برای Using از Code Block استفاده شود. هرجا متغیری با استفاده از Using تعریف شود در انتهای متد پاکسازی حافظه ی آن به صورت خودکار انجام میشود.
چرا Discord از Go به Rust مهاجرت کرد؟
دیسکورد (Discord) یک سرویس چت است که در بازی های آنلاین مورد استفاده قرار میگیرد.
تیم فنی Discord در یک مقاله مفصل شرح داده است که چرا از Go به Rust مهاجرت کرده است.
تیم Discord با بررسی لوگها متوجه شد در ترافیک بالا هنگام خواندن کش جهش های ناگهانی در CPU و Latency وجود دارد که در فواصل 2 دقیقه ای روی میدهند.
بررسی های بیشتر نشان داد مشکل از مکانیزم Garbage Collection در زبان Go است که باعث میشود برای لحظاتی سیستم هنگ کند تا پاکسازی حافظه انجام شود.
در زبان Rust پاکسازی حافظه بدون Garbage Collection صورت میگیرد در عین حال این زبان به صورت بهینه از حافظه استفاده میکند.
جایگزین کردن Rust کمک کرده است که نوسانات CPU و Latency حذف شود و سیستم روند یکدست و خطی را دنبال کند.
طراحی الگوریتم مناسب برای Garbage Collection از چالش های اصلی زبانهایی است که از این سیستم برای پاکسازی حافظه استفاده میکنند. یکی از دلایل محبوبیت Rust عدم استفاده از این روشهاست.
دیسکورد (Discord) یک سرویس چت است که در بازی های آنلاین مورد استفاده قرار میگیرد.
تیم فنی Discord در یک مقاله مفصل شرح داده است که چرا از Go به Rust مهاجرت کرده است.
تیم Discord با بررسی لوگها متوجه شد در ترافیک بالا هنگام خواندن کش جهش های ناگهانی در CPU و Latency وجود دارد که در فواصل 2 دقیقه ای روی میدهند.
بررسی های بیشتر نشان داد مشکل از مکانیزم Garbage Collection در زبان Go است که باعث میشود برای لحظاتی سیستم هنگ کند تا پاکسازی حافظه انجام شود.
در زبان Rust پاکسازی حافظه بدون Garbage Collection صورت میگیرد در عین حال این زبان به صورت بهینه از حافظه استفاده میکند.
جایگزین کردن Rust کمک کرده است که نوسانات CPU و Latency حذف شود و سیستم روند یکدست و خطی را دنبال کند.
طراحی الگوریتم مناسب برای Garbage Collection از چالش های اصلی زبانهایی است که از این سیستم برای پاکسازی حافظه استفاده میکنند. یکی از دلایل محبوبیت Rust عدم استفاده از این روشهاست.
Forwarded from برنامه نویس
🔈🤑 تخفیف 90% پکیج های آموزش ASP.NET Core تا مدتی محدود
چند وقت پیش بود که پکیج های آموزش ASP.NET Core 2.2 رو ارائه دادم. پس از انتشار ASP.NET Core 3.1 می خواستم شروع به ضبط آموزش های جدید خاص این ورژن کنم، اما با مرور مستندات ASP.NET Core 3.1 متوجه شدم خوشبختانه در ASP.NET Core 3.1 مطالبی که در پکیج های قبلی ما آموزش داده شده هیچ تغییری نکرده اند و اون مطالب عینا در ورژن های جدید قابل استفاده است.
ویژگی خاص پکیج های آموزش ASP.NET Core ما این است که تمام موارد با شرح کامل و همراه با مثال های عملی و قابل اجرا ارائه شده و تقریبا هیچ نکته ای درباره ASP.NET Core وجود ندارد که در این پکیج ها از قلم افتاده باشد.
در این آموزش ها، علاوه بر مطالب ارائه شده توسط مایکروسافت و دیگر بزرگان عرصه آموزش، از تجربیات شخصی مدرس در برنامه نویسی پروژه های مختلف نیز استفاده شده و بعضی مثال ها و تکنیک های ارائه شده، در هیچ منبع و مرجع دیگری یافت نمی شود.
جهت رفاه مالی مخاطبین گرامی، پکیج های فوق تا مدتی محدود با 90% تخفیف از سایت ما قابل خرید هست. لازم به ذکر است تخفیف فوق روی قیمت دوره از قبل اعمال شده و نیاز به کد تخفیف نیست.
جهت مشاهده جزئیات پکیج های فوق می توانید به صفحه ویژه آموزش های ASP.NET Core در سایت آموزش برنامه نویس مراجعه فرمائید.
با تقدیم احترام
#مهدی_کرامتی
@barnamenevis_net
@barnamenevis_org
چند وقت پیش بود که پکیج های آموزش ASP.NET Core 2.2 رو ارائه دادم. پس از انتشار ASP.NET Core 3.1 می خواستم شروع به ضبط آموزش های جدید خاص این ورژن کنم، اما با مرور مستندات ASP.NET Core 3.1 متوجه شدم خوشبختانه در ASP.NET Core 3.1 مطالبی که در پکیج های قبلی ما آموزش داده شده هیچ تغییری نکرده اند و اون مطالب عینا در ورژن های جدید قابل استفاده است.
ویژگی خاص پکیج های آموزش ASP.NET Core ما این است که تمام موارد با شرح کامل و همراه با مثال های عملی و قابل اجرا ارائه شده و تقریبا هیچ نکته ای درباره ASP.NET Core وجود ندارد که در این پکیج ها از قلم افتاده باشد.
در این آموزش ها، علاوه بر مطالب ارائه شده توسط مایکروسافت و دیگر بزرگان عرصه آموزش، از تجربیات شخصی مدرس در برنامه نویسی پروژه های مختلف نیز استفاده شده و بعضی مثال ها و تکنیک های ارائه شده، در هیچ منبع و مرجع دیگری یافت نمی شود.
جهت رفاه مالی مخاطبین گرامی، پکیج های فوق تا مدتی محدود با 90% تخفیف از سایت ما قابل خرید هست. لازم به ذکر است تخفیف فوق روی قیمت دوره از قبل اعمال شده و نیاز به کد تخفیف نیست.
جهت مشاهده جزئیات پکیج های فوق می توانید به صفحه ویژه آموزش های ASP.NET Core در سایت آموزش برنامه نویس مراجعه فرمائید.
با تقدیم احترام
#مهدی_کرامتی
@barnamenevis_net
@barnamenevis_org
Forwarded from کدهک
در این ویدیو با کارکرد IAsyncEnumerable آشنا می شویم. این ابزار در NET Core 3.0 و #C 8.0 اضافه شده است و به شما امکان میدهد داده های Enumerable را به صورت async پردازش کنید. با استفاده از این تکنیک یک فایل متنی را پردازش می کنیم سپس اطلاعات بینکوین را به صورت زنده از سرور به کلاینت استریم می کنیم.
https://tinyurl.com/cdhk-asyncenum
https://tinyurl.com/cdhk-asyncenum
Forwarded from کدهک
چرا foreach کندتر است؟
در نظر سنجی کدهک بیش از 50 درصد کاربرها اعتقاد داشتند که for-each سریعتر از for-loop است یا فرقی با آن ندارد. در اینجا این موضوع را بررسی می کنیم.
اگر با آرایه هایی کار می کنید که ابعاد مشخصی دارند فرقی بین for-loop و for-each وجود ندارد. از آنجا که در پس زمینه کامپایلر سی شارپ بجای حلقه ی for-each حلقه ی for-loop جایگزین می کند.
اما این تنها در صورتی است که آرایه را به IEnumerable تبدیل نکنید. کلاس IEnumerable برای پردازش آرایه از توابع Current و MoveNext استفاده می کند که در هر بار اجرای حلقه موقعیت جاری را چک می کند و شامل بک فرآیند try-catch هم میشود. این مسئله یک سربار روی حافظه و پردازش ایجاد می کند و منجر به کندتر شدن پردازش می شود. حتی اگر آرایه ابعاد ثابتی داشته باشد از آنجا که به IEnumerable تبدیل شده در پس زمینه قابل تبدیل به for-loop نیست.
پس به طور کلی for-each کندتر از for-loop است. در مواردی که پرفورمنس حلقه اهمیت زیادی پیدا می کند بهتر است آن را با for-loop جایگزین کنید.
در نظر سنجی کدهک بیش از 50 درصد کاربرها اعتقاد داشتند که for-each سریعتر از for-loop است یا فرقی با آن ندارد. در اینجا این موضوع را بررسی می کنیم.
اگر با آرایه هایی کار می کنید که ابعاد مشخصی دارند فرقی بین for-loop و for-each وجود ندارد. از آنجا که در پس زمینه کامپایلر سی شارپ بجای حلقه ی for-each حلقه ی for-loop جایگزین می کند.
اما این تنها در صورتی است که آرایه را به IEnumerable تبدیل نکنید. کلاس IEnumerable برای پردازش آرایه از توابع Current و MoveNext استفاده می کند که در هر بار اجرای حلقه موقعیت جاری را چک می کند و شامل بک فرآیند try-catch هم میشود. این مسئله یک سربار روی حافظه و پردازش ایجاد می کند و منجر به کندتر شدن پردازش می شود. حتی اگر آرایه ابعاد ثابتی داشته باشد از آنجا که به IEnumerable تبدیل شده در پس زمینه قابل تبدیل به for-loop نیست.
پس به طور کلی for-each کندتر از for-loop است. در مواردی که پرفورمنس حلقه اهمیت زیادی پیدا می کند بهتر است آن را با for-loop جایگزین کنید.
آمار جالب NET Core در Docker Hub
تعداد دانلود فریم ورک NET Core در داکر هاب بیش از یک میلیارد دانلود رسیده است. همینطور NET Core SDK هم بیش از 500 میلیون را ثبت کرده است.
به نظر میرسد تغییر ساختار دات نت به خوبی آن را با Docker سازگار کرده است و توسعه دهندگان این فریم ورک در حال استفاده گسترده از آن در فضای Container ها و سرویس های ابری هستند.
تعداد دانلود فریم ورک NET Core در داکر هاب بیش از یک میلیارد دانلود رسیده است. همینطور NET Core SDK هم بیش از 500 میلیون را ثبت کرده است.
به نظر میرسد تغییر ساختار دات نت به خوبی آن را با Docker سازگار کرده است و توسعه دهندگان این فریم ورک در حال استفاده گسترده از آن در فضای Container ها و سرویس های ابری هستند.
Forwarded from کدهک
استفاده از View Compilation در ASP NET Core 3.0
به صورت پیشفرض در ASP NET Core 3.0 ویوها تنها در زمان بیلد و پابلیش کامپایل میشوند و نمی توانید تغییرات ایجاد شده در HTML را با رفرش کردن صفحه مشاهده کنید.
برای حل این مشکل باید View Compilation را در حالت Runtime فعال کنید.
https://youtu.be/W2l2I17wVDs
به صورت پیشفرض در ASP NET Core 3.0 ویوها تنها در زمان بیلد و پابلیش کامپایل میشوند و نمی توانید تغییرات ایجاد شده در HTML را با رفرش کردن صفحه مشاهده کنید.
برای حل این مشکل باید View Compilation را در حالت Runtime فعال کنید.
https://youtu.be/W2l2I17wVDs
استریم کردن در SignalR
گاهی حجم اطلاعاتی که قرار است بین کلاینت و سرور جابجا شود زیاد است و نمی توان آن را به صورت یکپارچه ارسال کرد. در سیگنال آر امکان استریم کردن اطلاعات به صورت تکه شده وجود دارد این روش همچنین در اینترنت اشیا برای دریافت مداوم اطلاعات از کلاینت و سرور هم کاربرد دارد.
https://tinyurl.com/cdhk-signalr-stream
گاهی حجم اطلاعاتی که قرار است بین کلاینت و سرور جابجا شود زیاد است و نمی توان آن را به صورت یکپارچه ارسال کرد. در سیگنال آر امکان استریم کردن اطلاعات به صورت تکه شده وجود دارد این روش همچنین در اینترنت اشیا برای دریافت مداوم اطلاعات از کلاینت و سرور هم کاربرد دارد.
https://tinyurl.com/cdhk-signalr-stream
اگر در ایران زندگی می کنید و کارمند هستید میزان حقوق دریافتی شما چقدر است؟
Anonymous Poll
43%
کمتر از 5 میلیون تومان
19%
بین 5 تا 10 میلیون تومان
7%
بیشتر از 10 میلیون تومان
30%
دیدن نتایج
آشنایی با gRPC
در چند سال گذشته استفاده از gRPC در رشد قابل توجهی داشته که نشان میدهد این تکنولوژی توانسته بسیاری از چالش های برقراری ارتباط بین شبکه ای حل کند.
در این ویدیو به معرفی این ابزار می پردازیم و آن را در محیط ASP NET Core پیاده می کنیم.
https://tinyurl.com/cdhk-grpc-intro
در چند سال گذشته استفاده از gRPC در رشد قابل توجهی داشته که نشان میدهد این تکنولوژی توانسته بسیاری از چالش های برقراری ارتباط بین شبکه ای حل کند.
در این ویدیو به معرفی این ابزار می پردازیم و آن را در محیط ASP NET Core پیاده می کنیم.
https://tinyurl.com/cdhk-grpc-intro
Forwarded from کدهک
دیزاین پترنها روشهایی از قبل طراحی شده برای حل مسائل عمومی نرم افزار هستند. در حالی که اهمیت و کاربرد این مفاهیم در برنامه نویسی انکار ناپذیر است اما به نظر میرسد تاکید بیش از حدی روی آن وجود دارد. بر خلاف باور عمومی استفاده از آنها همیشه به سود شما نیست.
https://tinyurl.com/y5xrwer8
https://tinyurl.com/y5xrwer8
آشنایی با LSP
پروتکل Language Server روشی است برای ارتباط بین IDE و زبان برنامه نویسی که توسط مایکروسافت ابداع شده و به صورت متن باز توسعه داده میشود.
هنگام برنامه نویسی درون IDE یا ادیتور مانند VSCode یا Atom لازم است اطلاعاتی درباره کدی که وارد می کنید داشته باشید. مثلا تکمیل شدن دستور یا توضیحات درباره دستور و اینکه چه متدهایی در محدوده ی جاری کد در دسترس است کمک زیادی به تجربه ی بهتر برنامه نویسی می کند.
ابزار LSP یک دستورالعمل برای برقرار کردن گفتگو بین زبان برنامه نویسی و محیط Editor معرفی کرده است که دو طرف می توانند از طریق JSON با هم صحبت کنند.
هر کاراکتری که وارد می کنید از طریق JSON به سرور زبان برنامه نویسی ارسال میشود و اطلاعات آن برگشت داده میشود و در ادیتور نمایش داده میشود.
این سرور توسط افزونه روی IDE نصب میشود و به صورت محلی به درخواستها پاسخ میدهد. به این ترتیب می توان به راحتی یک زبان را در انواع ادیتور و IDE قابل پیاده سازی کرد.
پروژه OmniSharp برای سی شارپ LSP توسعه داده است که در VSCode و VIM و ... استفاده میشود. همچنین سایت Try.dot.net هم از این تکنیک استفاده میکند.
پروتکل Language Server روشی است برای ارتباط بین IDE و زبان برنامه نویسی که توسط مایکروسافت ابداع شده و به صورت متن باز توسعه داده میشود.
هنگام برنامه نویسی درون IDE یا ادیتور مانند VSCode یا Atom لازم است اطلاعاتی درباره کدی که وارد می کنید داشته باشید. مثلا تکمیل شدن دستور یا توضیحات درباره دستور و اینکه چه متدهایی در محدوده ی جاری کد در دسترس است کمک زیادی به تجربه ی بهتر برنامه نویسی می کند.
ابزار LSP یک دستورالعمل برای برقرار کردن گفتگو بین زبان برنامه نویسی و محیط Editor معرفی کرده است که دو طرف می توانند از طریق JSON با هم صحبت کنند.
هر کاراکتری که وارد می کنید از طریق JSON به سرور زبان برنامه نویسی ارسال میشود و اطلاعات آن برگشت داده میشود و در ادیتور نمایش داده میشود.
این سرور توسط افزونه روی IDE نصب میشود و به صورت محلی به درخواستها پاسخ میدهد. به این ترتیب می توان به راحتی یک زبان را در انواع ادیتور و IDE قابل پیاده سازی کرد.
پروژه OmniSharp برای سی شارپ LSP توسعه داده است که در VSCode و VIM و ... استفاده میشود. همچنین سایت Try.dot.net هم از این تکنیک استفاده میکند.
Forwarded from کدهک
اگر در ایران زندگی می کنید و کارمند هستید میزان حقوق دریافتی شما چقدر است؟
Anonymous Poll
43%
کمتر از 5 میلیون تومان
19%
بین 5 تا 10 میلیون تومان
7%
بیشتر از 10 میلیون تومان
30%
دیدن نتایج
استریم کردن دیتابیس از سرور به کلاینت
در این ویدیو با نحوه ی استریم کردن داده از سرور به کلاینت در SignalR آشنا می شویم. قرار است ردیف های یک جدول دیتابیس SQL Server را از استریم کنیم و یک به یک به کلاینت کنسول دات نت منتقل کنیم.
https://codehaks.com/go/sgh
در این ویدیو با نحوه ی استریم کردن داده از سرور به کلاینت در SignalR آشنا می شویم. قرار است ردیف های یک جدول دیتابیس SQL Server را از استریم کنیم و یک به یک به کلاینت کنسول دات نت منتقل کنیم.
https://codehaks.com/go/sgh
Forwarded from کدهک
در این ویدیو با کارکرد IAsyncEnumerable آشنا می شویم. این ابزار در NET Core 3.0 و #C 8.0 اضافه شده است و به شما امکان میدهد داده های Enumerable را به صورت async پردازش کنید. با استفاده از این تکنیک یک فایل متنی را پردازش می کنیم سپس اطلاعات بینکوین را به صورت زنده از سرور به کلاینت استریم می کنیم.
https://tinyurl.com/cdhk-asyncenum
https://tinyurl.com/cdhk-asyncenum