اجرای عملیات های نا همگام به صورت موازی در پس زمینه
یک برنامه کنسول پیاده می کنیم که تعدادی عکس را به حالت سیاه و سفید تبدیل می کند. ابتدا این کار را برای یک عکس به روش Async انجام می دهیم و سپس همه عکسها به صورت همزمان پردازش می کنیم. در آخر هم عملیات را به پس زمینه کنسول منتقل می کنیم.
▶️ https://aparat.com/v/3OWoY
▶️ https://youtu.be/a8iu9Zn72a8
یک برنامه کنسول پیاده می کنیم که تعدادی عکس را به حالت سیاه و سفید تبدیل می کند. ابتدا این کار را برای یک عکس به روش Async انجام می دهیم و سپس همه عکسها به صورت همزمان پردازش می کنیم. در آخر هم عملیات را به پس زمینه کنسول منتقل می کنیم.
▶️ https://aparat.com/v/3OWoY
▶️ https://youtu.be/a8iu9Zn72a8
❤7👍1
مقایسه مصرف حافظه در اجرای عملیات موازی
در این پست نویسنده تلاش کرده حافظه مورد نیاز برای اجرای همزمان 1 میلیون عملیات را بین زبانهای برنامه نویسی مقایسه کند.
یک میلیون Task در دات نت ایجاد شده که به صورت موازی اجرا میشوند و یک عملیات را به مدت 10 ثانیه انجام میدهند.
زبان سی شارپ با حدود 500 مگابایت در جایگاه خوبی بعد از Rust قرار دارد و زبانهایی مثل Go و پایتون آمار ضعیفی دارند و به بیش از 2 گیگابات حافظه نیاز دارند.
زبان Elixir هم در این حجم بالا ابتدا کرش می کند و سپس با مصرف حافظه ای بیش از 4 گیگابایت کار می کند.
لینک مقاله:
➡️ https://pkolaczk.github.io/memory-consumption-of-async/
در این پست نویسنده تلاش کرده حافظه مورد نیاز برای اجرای همزمان 1 میلیون عملیات را بین زبانهای برنامه نویسی مقایسه کند.
یک میلیون Task در دات نت ایجاد شده که به صورت موازی اجرا میشوند و یک عملیات را به مدت 10 ثانیه انجام میدهند.
زبان سی شارپ با حدود 500 مگابایت در جایگاه خوبی بعد از Rust قرار دارد و زبانهایی مثل Go و پایتون آمار ضعیفی دارند و به بیش از 2 گیگابات حافظه نیاز دارند.
زبان Elixir هم در این حجم بالا ابتدا کرش می کند و سپس با مصرف حافظه ای بیش از 4 گیگابایت کار می کند.
لینک مقاله:
➡️ https://pkolaczk.github.io/memory-consumption-of-async/
👍12🔥3
نسخه RC1 از دات نت 8 منتشر شد
نسخه Release Candidate آخرین بروز رسانی دات نت قبل از انتشار نهایی است و در این مرحله همه قابلیت های جدید روی فریم ورک سوار شده است.
نسخه نهایی دات نت 14 نوامبر ( 2 ماه دیگر) رو نمایی میشود و انتظار میرود تا قبل از آن نسخه RC2 هم منتشر شود.
https://dotnet.microsoft.com/en-us/download/dotnet/8.0
نسخه Release Candidate آخرین بروز رسانی دات نت قبل از انتشار نهایی است و در این مرحله همه قابلیت های جدید روی فریم ورک سوار شده است.
نسخه نهایی دات نت 14 نوامبر ( 2 ماه دیگر) رو نمایی میشود و انتظار میرود تا قبل از آن نسخه RC2 هم منتشر شود.
https://dotnet.microsoft.com/en-us/download/dotnet/8.0
👍15
در زبانهایی مثل پایتون و جاوا اسکریپت امکان اجرای مستقیم کدها به صورت اسکریپت همیشه وجود داشته است.
چطور کدهای سی شارپ را به صورت اسکریپت اجرا کنیم؟
▶️ https://www.aparat.com/v/UnI4w
▶️ https://youtu.be/Ul-d1YRT8cY
چطور کدهای سی شارپ را به صورت اسکریپت اجرا کنیم؟
▶️ https://www.aparat.com/v/UnI4w
▶️ https://youtu.be/Ul-d1YRT8cY
👍9
ابزار عمومی دات نت یا Global Tools در خط فرمان قابل اجرا هستند و می توانید از هر محلی در سیستم عامل آنها را صدا بزنید.
▶️ https://www.aparat.com/v/1jMtW
▶️ https://youtu.be/B3_A6ReVDC4
▶️ https://www.aparat.com/v/1jMtW
▶️ https://youtu.be/B3_A6ReVDC4
❤7
آموزش استفاده از Primary Constructors در سی شارپ 12
▶️ https://www.aparat.com/v/qJXSa
▶️ https://youtu.be/0ZFz-If0HN0
▶️ https://www.aparat.com/v/qJXSa
▶️ https://youtu.be/0ZFz-If0HN0
❤7
فروش ویژه پاییزی کدهک
تخفیف ویژه 20 درصد به 10 نفر اول خریداران دوره های آموزشی
کد تخفیف: mehr402
برای تهیه دوره ها می توانید به سایت کدهک سر بزنید.
https://codehaks.com/Shop
جهت پشتیبانی یا کسب اطلاعات بیشتر از طریق شماره 09380146555 یا آیدی @codehak در تلگرام تماس بگیرید.
تخفیف ویژه 20 درصد به 10 نفر اول خریداران دوره های آموزشی
کد تخفیف: mehr402
برای تهیه دوره ها می توانید به سایت کدهک سر بزنید.
https://codehaks.com/Shop
جهت پشتیبانی یا کسب اطلاعات بیشتر از طریق شماره 09380146555 یا آیدی @codehak در تلگرام تماس بگیرید.
👍3
جدول انتشار نسخه های دات نت
تا 45 روز دیگر نسخه نهایی 8 منتشر میشود.
طبق جدولی که مایکروسافت ارائه کرده نسخه های زوج (از جمله 8) به صورت LTS پشتیانی میشوند. حالت Long Term Support یعنی برای مدت 36 ماه پچ و آپدیت برای آن نسخه ارائه میشود و برای رفع باگها و ایرادهای امنیتی نیاز به آپدیت به نسخه جدیدتر ندارید.
نسخه 7 به صورت STS منتشر شد که فقط تا 18 ماه آپدیت میشود و 6 ماه بعد از انتشار دات نت 8 پشتیبانی آن به پایان میرسد به همین دلیل توصیه مایکروسافت این است که بعد از معرفی دات نت 8 پروژه های خود را به این نسخه جدید آپدیت کنید.
دات نت با دید Backward Compatibility توسعه داده میشود و مایکروسافت تلاش میکند نسخه جدید از نسخه های قبلی پشتیبانی کند و کدهای قدیمی بدون باگ و ایراد اجرا شوند. اما اینکار همیشه ممکن نیست و هر بار کتابخانه هایی هست که حذف میشوند یا نشان منقرض شده (Obsolete) میگیرند تا بعداً حذف شوند.
به روز رسانی مدام و سالانه می تواند کدهای شما را با آخرین قابلیت های دات نت همگام نگه دارد و نیاز به تغییرات گسترده و ناگهانی را در دراز مدت از بین ببرد.
تا 45 روز دیگر نسخه نهایی 8 منتشر میشود.
طبق جدولی که مایکروسافت ارائه کرده نسخه های زوج (از جمله 8) به صورت LTS پشتیانی میشوند. حالت Long Term Support یعنی برای مدت 36 ماه پچ و آپدیت برای آن نسخه ارائه میشود و برای رفع باگها و ایرادهای امنیتی نیاز به آپدیت به نسخه جدیدتر ندارید.
نسخه 7 به صورت STS منتشر شد که فقط تا 18 ماه آپدیت میشود و 6 ماه بعد از انتشار دات نت 8 پشتیبانی آن به پایان میرسد به همین دلیل توصیه مایکروسافت این است که بعد از معرفی دات نت 8 پروژه های خود را به این نسخه جدید آپدیت کنید.
دات نت با دید Backward Compatibility توسعه داده میشود و مایکروسافت تلاش میکند نسخه جدید از نسخه های قبلی پشتیبانی کند و کدهای قدیمی بدون باگ و ایراد اجرا شوند. اما اینکار همیشه ممکن نیست و هر بار کتابخانه هایی هست که حذف میشوند یا نشان منقرض شده (Obsolete) میگیرند تا بعداً حذف شوند.
به روز رسانی مدام و سالانه می تواند کدهای شما را با آخرین قابلیت های دات نت همگام نگه دارد و نیاز به تغییرات گسترده و ناگهانی را در دراز مدت از بین ببرد.
👍20🔥5
در Top-Level Statements چه می گذرد؟
از سی شارپ 9 فایل Program.cs تغییر اساسی کرد و تا حد زیادی پاک سازی شد. دیگر نیاز به نوشتن متد پیش فرض void Main و عبارت class نیست.
هدف اصلی این تغییر به گفته مایکروسافت ساده تر کردن کد نویسی با سی شارپ برای تازه کارها بود. تا بتوان با کمترین مراسم وارد کد نویسی شد.
اما باید بدانید که Top-Leve Statements در هر پروژه فقط روی یک فایل قابل استفاده است و در پس زمینه کد void main توسط کامپایلر ساخته میشود.
متدها به عنوان بخشی از از کلاس Program قرار می گیرند و کلاسهایی که در این فایل می نویسید هر کدام به یک کلاس مجزا منتقل می شوند.
از سی شارپ 9 فایل Program.cs تغییر اساسی کرد و تا حد زیادی پاک سازی شد. دیگر نیاز به نوشتن متد پیش فرض void Main و عبارت class نیست.
هدف اصلی این تغییر به گفته مایکروسافت ساده تر کردن کد نویسی با سی شارپ برای تازه کارها بود. تا بتوان با کمترین مراسم وارد کد نویسی شد.
اما باید بدانید که Top-Leve Statements در هر پروژه فقط روی یک فایل قابل استفاده است و در پس زمینه کد void main توسط کامپایلر ساخته میشود.
متدها به عنوان بخشی از از کلاس Program قرار می گیرند و کلاسهایی که در این فایل می نویسید هر کدام به یک کلاس مجزا منتقل می شوند.
👍17👎2
با
تصور کنید که یک جعبه جادو دارید که میتواند به سرعت یک عدد تولید کند، (مثلا 42). شما میخواهید از این جعبه جادو در یک برنامه استفاده کنید و میخواهید به نظر بیاید که دارید کاری ناهمگام انجام میدهید (مثل انتظار برای مدت طولانی)، حتی اگر نتیجه را فوراً دریافت میکنید. برای اینکار می توانید از Task.FromResult استفاده کنید.
بنابراین، به زبان سادهتر،
این روش برای حفظ ساختار کد هنگام کار با عملیاتهای Sync و Async در#C مفید است.
ممکن است کدی داشته باشید که در صورت درستی شرط عملیات Sync و در حالت دیگر از Async استفاده می کند ولی برای همه متد باید از خروجی Task استفاده کنید.
Task.FromResult
می توانید عملیاتی که همزمان (Sync) انجام میشود به صورت Async جا بزنید!تصور کنید که یک جعبه جادو دارید که میتواند به سرعت یک عدد تولید کند، (مثلا 42). شما میخواهید از این جعبه جادو در یک برنامه استفاده کنید و میخواهید به نظر بیاید که دارید کاری ناهمگام انجام میدهید (مثل انتظار برای مدت طولانی)، حتی اگر نتیجه را فوراً دریافت میکنید. برای اینکار می توانید از Task.FromResult استفاده کنید.
بنابراین، به زبان سادهتر،
Task.FromResult
روشی است برای تظاهر به اینکه چیزی ناهمگام است در حالی که در واقعیت به سرعت و همزمان اتفاق میافتد. این روش برای حفظ ساختار کد هنگام کار با عملیاتهای Sync و Async در#C مفید است.
ممکن است کدی داشته باشید که در صورت درستی شرط عملیات Sync و در حالت دیگر از Async استفاده می کند ولی برای همه متد باید از خروجی Task استفاده کنید.
👍9❤2
دوره معماری تمیز به آموزشگاه کدهک اضافه شد
این دوره بر اساس کتاب Clean Architecture نوشته باب مارتین تهیه شده است. در این دوره به مرور مباحث کتاب می پردازیم و نحوه استفاده از اصول معماری تمیز در ASP NET Core را به صورت عملی بررسی می کنیم.
در این به آموزش اصول SOLID می پردازیم. به سراغ مباحث Dependency Injection می رویم. درباره اصول برنامه نویسی شی گرا و نقش آن در یک معماری خوب صحبت می کنیم. کلاس های DTO و Value Object طراحی می کنیم و اصول نوشتن یک متد تمیز را معرفی می کنیم. ساختار سولوشن و جایگذاری اجزای پروژه های دات نت را مقایسه می کنیم. درباره CQS صحبت می کنیم.همچنین اصول اعتبار سنجی و پیاده سازی لایه Repository و Unit Of Work در این دوره آموزش داده میشود.
➡️ https://codehaks.com/Course/C103
این دوره بر اساس کتاب Clean Architecture نوشته باب مارتین تهیه شده است. در این دوره به مرور مباحث کتاب می پردازیم و نحوه استفاده از اصول معماری تمیز در ASP NET Core را به صورت عملی بررسی می کنیم.
در این به آموزش اصول SOLID می پردازیم. به سراغ مباحث Dependency Injection می رویم. درباره اصول برنامه نویسی شی گرا و نقش آن در یک معماری خوب صحبت می کنیم. کلاس های DTO و Value Object طراحی می کنیم و اصول نوشتن یک متد تمیز را معرفی می کنیم. ساختار سولوشن و جایگذاری اجزای پروژه های دات نت را مقایسه می کنیم. درباره CQS صحبت می کنیم.همچنین اصول اعتبار سنجی و پیاده سازی لایه Repository و Unit Of Work در این دوره آموزش داده میشود.
➡️ https://codehaks.com/Course/C103
👍10
دات نت 8 نسخه RC2 منتشر شد
شمارش معکوس نسخه نهایی دات نت 8 از همین حالا شروع شده است.
نسخه RC2 با آپدیتها و چند Breaking Change همراه بود و به نظر میرسد تیم دات نت همچنان در حال اصلاح و بروز رسانی نسخه جدید است.
نسخه نهایی اواسط ماه نوامبر (یک ماه دیگر) در کنفرانس سالانه دات نت عرضه میشود.
https://dotnet.microsoft.com/en-us/next
شمارش معکوس نسخه نهایی دات نت 8 از همین حالا شروع شده است.
نسخه RC2 با آپدیتها و چند Breaking Change همراه بود و به نظر میرسد تیم دات نت همچنان در حال اصلاح و بروز رسانی نسخه جدید است.
نسخه نهایی اواسط ماه نوامبر (یک ماه دیگر) در کنفرانس سالانه دات نت عرضه میشود.
https://dotnet.microsoft.com/en-us/next
🔥17👍1
آپدیت به دات نت 8 و آموزش کار با چند قابلیت جدید
▶️ https://www.aparat.com/v/5Ts2f
▶️ https://youtu.be/2tz2gib5ai8
▶️ https://www.aparat.com/v/5Ts2f
▶️ https://youtu.be/2tz2gib5ai8
❤10👍4🔥1
بررسی قابلیت های جدید Blazor در دات نت 8 و آشنایی با انواع Render Mode های Interactive که به تازگی اضافه شده است.
▶️ https://aparat.com/v/DK9Um
▶️ https://youtu.be/XLS-XHWKOvM
▶️ https://aparat.com/v/DK9Um
▶️ https://youtu.be/XLS-XHWKOvM
❤9
رشته یک نوع پیش ساخته در دات نت است که رفتار های منحصر به فردی دارد. در این ویدیو به معرفی بهینه سازی Interning می پردازیم.
▶️ https://www.aparat.com/v/AD6ug
▶️ https://youtu.be/e5w8BBPfVnQ
▶️ https://www.aparat.com/v/AD6ug
▶️ https://youtu.be/e5w8BBPfVnQ
❤4🔥3👍2
برگزاری دوره پیشرفته DDD
در این دوره یک پروژه واقعی را بر اساس Domain Driven Design و معماری تمیز روی قالب حرفه ای فارسی پیاده می کنیم.
ویدیو معرفی دوره:
https://www.aparat.com/v/QgyqY
سر فصل ها:
برای ثبت نام در این دوره می توانید به @codehak پیام بدید یا به سایت کدهک مراجعه کنید:
https://codehaks.com/Course/C102
در این دوره یک پروژه واقعی را بر اساس Domain Driven Design و معماری تمیز روی قالب حرفه ای فارسی پیاده می کنیم.
ویدیو معرفی دوره:
https://www.aparat.com/v/QgyqY
سر فصل ها:
Domain Driven Designپیش نیاز ها: آشنایی با مباحث عمومی ASP NET Core MVC و سی شارپ
Clean Architecture
Object Design
Unit Of Work/Repository Patterns
Design Patterns
Blazor WASM
Advanced Logging & Metrics
Docker & Cloud
Caching
Messaging
Background Services
Unit & Integration Testing
Concurrency Management
Real-Time Programming with SignalR
برای ثبت نام در این دوره می توانید به @codehak پیام بدید یا به سایت کدهک مراجعه کنید:
https://codehaks.com/Course/C102
👍15❤3
آموزش Rate Limiter در ASP NET Core 7
چند کتابخانه برای Rate Limit در ASP NET Core قبلا موجود بود اما حالا مایکروسافت دست به کار شده و این قابلیت را به NET 7 اضافه کرده است.
▶️ https://aparat.com/v/Q9DeW
▶️ https://youtu.be/qeTcmNroAyc
چند کتابخانه برای Rate Limit در ASP NET Core قبلا موجود بود اما حالا مایکروسافت دست به کار شده و این قابلیت را به NET 7 اضافه کرده است.
▶️ https://aparat.com/v/Q9DeW
▶️ https://youtu.be/qeTcmNroAyc
❤6
لیستی از مهمترین کلیدهای میانبر در Visual Studio
نسخه PDF برای چاپ:
https://visualstudio.microsoft.com/keyboard-shortcuts.pdf
نسخه PDF برای چاپ:
https://visualstudio.microsoft.com/keyboard-shortcuts.pdf
👍8
Nginx یک وب سرور قدرتمند و محبوب است که امکان مقیاس پذیری افقی و عمودی سریع را فراهم می کند.
با توزیع بار، مدیریت توزیع ترافیک و استفاده از پراکسی معکوس، می توانید سایت خود را به راحتی مقیاس پذیر کنید و همچنین بار ترافیک را به صورت موازی بین سرورهای مختلف تقسیم کنید.
https://aparat.com/v/5oQkx
با توزیع بار، مدیریت توزیع ترافیک و استفاده از پراکسی معکوس، می توانید سایت خود را به راحتی مقیاس پذیر کنید و همچنین بار ترافیک را به صورت موازی بین سرورهای مختلف تقسیم کنید.
https://aparat.com/v/5oQkx
🔥7❤1