دوره رایگان آموزش مبانی
در این دوره به مباحث پایه ای فریم ورک
سپس کار با میان افزارها و نحوه عمل سرور Kestrel آموزش داده میشود و در ادامه نحوه کار با Configuration و Environment را بررسی می کنیم و در انتها به Logging و نحوه مدیریت خطا می پردازیم.
https://codehaks.com/Course/C101
ASP.NET Core
قبل از اینکه کار با MVC را شروع کنید لازم است درباره ساختار درونی فریم ورک ASP.NET Core
بدانید. در این دوره به مباحث پایه ای فریم ورک
ASP.NET Core
می پردازیم. از ساختار پروژه وب شروع می کنیم و به توضیح نحوه کار سیستم تزریق وابستگی می پردازیم. سپس کار با میان افزارها و نحوه عمل سرور Kestrel آموزش داده میشود و در ادامه نحوه کار با Configuration و Environment را بررسی می کنیم و در انتها به Logging و نحوه مدیریت خطا می پردازیم.
https://codehaks.com/Course/C101
برگزاری دوره پیشرفته DDD
در این دوره به صورت عملی یک پروژه واقعی را بر اساس Domain Driven Design روی قالب حرفه ای فارسی پیاده می کنیم. برای تهیه دوره از دات نت 8 و سی شارپ 12 استفاده میشود و پروژه روی داکر در سرور ابری منتشر میشود.
پروژه بر اساس معماری تمیز و است و تست واحد و تست Integration برای تمامی بخش ها پیاده می شود. برای قسمتهای Real-Time از SignalR استفاده میشود و بخش هایی هم با Blazor WASM انجام خواهد شد.
ویدیو معرفی دوره:
https://www.aparat.com/v/QgyqY
سر فصل ها:
شروع دوره از 18 شهریور به مدت یک ماه
برای تهیه دوره می توانید به @codehak پیام بدید یا به سایت کدهک مراجعه کنید:
https://codehaks.com/Course/C102
در این دوره به صورت عملی یک پروژه واقعی را بر اساس Domain Driven Design روی قالب حرفه ای فارسی پیاده می کنیم. برای تهیه دوره از دات نت 8 و سی شارپ 12 استفاده میشود و پروژه روی داکر در سرور ابری منتشر میشود.
پروژه بر اساس معماری تمیز و است و تست واحد و تست Integration برای تمامی بخش ها پیاده می شود. برای قسمتهای Real-Time از SignalR استفاده میشود و بخش هایی هم با Blazor WASM انجام خواهد شد.
ویدیو معرفی دوره:
https://www.aparat.com/v/QgyqY
سر فصل ها:
Domain Driven Designپیش نیاز ها: آشنایی با مباحث عمومی ASP NET Core MVC و سی شارپ
Clean Architecture
Unit Of Work/Repository Patterns
Testing
Concurrency Management
SignalR
Blazor WASM
شروع دوره از 18 شهریور به مدت یک ماه
برای تهیه دوره می توانید به @codehak پیام بدید یا به سایت کدهک مراجعه کنید:
https://codehaks.com/Course/C102
آموزش کنسل کردن عملیات های طولانی در دات نت
وقتی با متدهای Async در دات نت کار می کنید می توانید با استفاده از شی Cancelation Token کنسل شدن عملیات را پیگیری کنید و سرور را از ادامه کار منصرف کنید تا از فضای سرور بهتر استفاده کنید.
▶️https://www.aparat.com/v/DqVcB
▶️https://youtu.be/5JlICIfk_rA
وقتی با متدهای Async در دات نت کار می کنید می توانید با استفاده از شی Cancelation Token کنسل شدن عملیات را پیگیری کنید و سرور را از ادامه کار منصرف کنید تا از فضای سرور بهتر استفاده کنید.
▶️https://www.aparat.com/v/DqVcB
▶️https://youtu.be/5JlICIfk_rA
اجرای عملیات های نا همگام به صورت موازی در پس زمینه
یک برنامه کنسول پیاده می کنیم که تعدادی عکس را به حالت سیاه و سفید تبدیل می کند. ابتدا این کار را برای یک عکس به روش Async انجام می دهیم و سپس همه عکسها به صورت همزمان پردازش می کنیم. در آخر هم عملیات را به پس زمینه کنسول منتقل می کنیم.
▶️ https://aparat.com/v/3OWoY
▶️ https://youtu.be/a8iu9Zn72a8
یک برنامه کنسول پیاده می کنیم که تعدادی عکس را به حالت سیاه و سفید تبدیل می کند. ابتدا این کار را برای یک عکس به روش Async انجام می دهیم و سپس همه عکسها به صورت همزمان پردازش می کنیم. در آخر هم عملیات را به پس زمینه کنسول منتقل می کنیم.
▶️ https://aparat.com/v/3OWoY
▶️ https://youtu.be/a8iu9Zn72a8
مقایسه مصرف حافظه در اجرای عملیات موازی
در این پست نویسنده تلاش کرده حافظه مورد نیاز برای اجرای همزمان 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/
نسخه 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
در زبانهایی مثل پایتون و جاوا اسکریپت امکان اجرای مستقیم کدها به صورت اسکریپت همیشه وجود داشته است.
چطور کدهای سی شارپ را به صورت اسکریپت اجرا کنیم؟
▶️ https://www.aparat.com/v/UnI4w
▶️ https://youtu.be/Ul-d1YRT8cY
چطور کدهای سی شارپ را به صورت اسکریپت اجرا کنیم؟
▶️ https://www.aparat.com/v/UnI4w
▶️ https://youtu.be/Ul-d1YRT8cY
ابزار عمومی دات نت یا Global Tools در خط فرمان قابل اجرا هستند و می توانید از هر محلی در سیستم عامل آنها را صدا بزنید.
▶️ https://www.aparat.com/v/1jMtW
▶️ https://youtu.be/B3_A6ReVDC4
▶️ https://www.aparat.com/v/1jMtW
▶️ https://youtu.be/B3_A6ReVDC4
آموزش استفاده از 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
فروش ویژه پاییزی کدهک
تخفیف ویژه 20 درصد به 10 نفر اول خریداران دوره های آموزشی
کد تخفیف: mehr402
برای تهیه دوره ها می توانید به سایت کدهک سر بزنید.
https://codehaks.com/Shop
جهت پشتیبانی یا کسب اطلاعات بیشتر از طریق شماره 09380146555 یا آیدی @codehak در تلگرام تماس بگیرید.
تخفیف ویژه 20 درصد به 10 نفر اول خریداران دوره های آموزشی
کد تخفیف: mehr402
برای تهیه دوره ها می توانید به سایت کدهک سر بزنید.
https://codehaks.com/Shop
جهت پشتیبانی یا کسب اطلاعات بیشتر از طریق شماره 09380146555 یا آیدی @codehak در تلگرام تماس بگیرید.
جدول انتشار نسخه های دات نت
تا 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) میگیرند تا بعداً حذف شوند.
به روز رسانی مدام و سالانه می تواند کدهای شما را با آخرین قابلیت های دات نت همگام نگه دارد و نیاز به تغییرات گسترده و ناگهانی را در دراز مدت از بین ببرد.
در 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 قرار می گیرند و کلاسهایی که در این فایل می نویسید هر کدام به یک کلاس مجزا منتقل می شوند.
با
تصور کنید که یک جعبه جادو دارید که میتواند به سرعت یک عدد تولید کند، (مثلا 42). شما میخواهید از این جعبه جادو در یک برنامه استفاده کنید و میخواهید به نظر بیاید که دارید کاری ناهمگام انجام میدهید (مثل انتظار برای مدت طولانی)، حتی اگر نتیجه را فوراً دریافت میکنید. برای اینکار می توانید از Task.FromResult استفاده کنید.
بنابراین، به زبان سادهتر،
این روش برای حفظ ساختار کد هنگام کار با عملیاتهای Sync و Async در#C مفید است.
ممکن است کدی داشته باشید که در صورت درستی شرط عملیات Sync و در حالت دیگر از Async استفاده می کند ولی برای همه متد باید از خروجی Task استفاده کنید.
Task.FromResult
می توانید عملیاتی که همزمان (Sync) انجام میشود به صورت Async جا بزنید!تصور کنید که یک جعبه جادو دارید که میتواند به سرعت یک عدد تولید کند، (مثلا 42). شما میخواهید از این جعبه جادو در یک برنامه استفاده کنید و میخواهید به نظر بیاید که دارید کاری ناهمگام انجام میدهید (مثل انتظار برای مدت طولانی)، حتی اگر نتیجه را فوراً دریافت میکنید. برای اینکار می توانید از Task.FromResult استفاده کنید.
بنابراین، به زبان سادهتر،
Task.FromResult
روشی است برای تظاهر به اینکه چیزی ناهمگام است در حالی که در واقعیت به سرعت و همزمان اتفاق میافتد. این روش برای حفظ ساختار کد هنگام کار با عملیاتهای Sync و Async در#C مفید است.
ممکن است کدی داشته باشید که در صورت درستی شرط عملیات Sync و در حالت دیگر از Async استفاده می کند ولی برای همه متد باید از خروجی Task استفاده کنید.
دوره معماری تمیز به آموزشگاه کدهک اضافه شد
این دوره بر اساس کتاب 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
دات نت 8 نسخه RC2 منتشر شد
شمارش معکوس نسخه نهایی دات نت 8 از همین حالا شروع شده است.
نسخه RC2 با آپدیتها و چند Breaking Change همراه بود و به نظر میرسد تیم دات نت همچنان در حال اصلاح و بروز رسانی نسخه جدید است.
نسخه نهایی اواسط ماه نوامبر (یک ماه دیگر) در کنفرانس سالانه دات نت عرضه میشود.
https://dotnet.microsoft.com/en-us/next
شمارش معکوس نسخه نهایی دات نت 8 از همین حالا شروع شده است.
نسخه RC2 با آپدیتها و چند Breaking Change همراه بود و به نظر میرسد تیم دات نت همچنان در حال اصلاح و بروز رسانی نسخه جدید است.
نسخه نهایی اواسط ماه نوامبر (یک ماه دیگر) در کنفرانس سالانه دات نت عرضه میشود.
https://dotnet.microsoft.com/en-us/next
آپدیت به دات نت 8 و آموزش کار با چند قابلیت جدید
▶️ https://www.aparat.com/v/5Ts2f
▶️ https://youtu.be/2tz2gib5ai8
▶️ https://www.aparat.com/v/5Ts2f
▶️ https://youtu.be/2tz2gib5ai8
بررسی قابلیت های جدید 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
رشته یک نوع پیش ساخته در دات نت است که رفتار های منحصر به فردی دارد. در این ویدیو به معرفی بهینه سازی Interning می پردازیم.
▶️ https://www.aparat.com/v/AD6ug
▶️ https://youtu.be/e5w8BBPfVnQ
▶️ https://www.aparat.com/v/AD6ug
▶️ https://youtu.be/e5w8BBPfVnQ
برگزاری دوره پیشرفته 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
آموزش 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