Forwarded from کدهک
فصل گمشده در معماری تمیز
بررسی و مقایسه انواع روش های طراحی ساختار پروژه در دات نت
https://youtu.be/oP5w9eiPhEw
بررسی و مقایسه انواع روش های طراحی ساختار پروژه در دات نت
https://youtu.be/oP5w9eiPhEw
👍10❤3
عبارت های لامبدا در سی شارپ متدهای بی نامی هستند که به جای delegate و Expression Tree قرار میگیرند و کد نویسی در سی شارپ را ساده تر می کنند.
https://youtu.be/ZqBT_kC7mOI
https://youtu.be/ZqBT_kC7mOI
👍13
بررسی ساختار درونی کالکشنها و ساخت یک کالکشن اختصاصی در دات نت.
https://www.aparat.com/v/Xr0OU
https://youtu.be/1oJ15J94dRg
https://www.aparat.com/v/Xr0OU
https://youtu.be/1oJ15J94dRg
👍9
حلقه foreach چطور آیتمهای یک آرایه را خوانش می کند؟
➡️ https://aparat.com/v/VJO6k
➡️ https://youtu.be/zmqwwDVe_10
➡️ https://aparat.com/v/VJO6k
➡️ https://youtu.be/zmqwwDVe_10
👍8
در این ویدیو به آموزش انواع کالکشن ها در دات نت می پردازیم. آرایه ها و لیست ها را با هم مقایسه می کنیم. می بینیم IEnumerable و IList و ICollection چه شباهت ها و تفاوت هایی دارند و کاربرد مناسب هر کدام چیست.
https://youtu.be/_s08TMRl4UM
https://youtu.be/_s08TMRl4UM
❤12👍2
دوره رایگان آموزش مبانی
در این دوره به مباحث پایه ای فریم ورک
سپس کار با میان افزارها و نحوه عمل سرور 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
🔥9
برگزاری دوره پیشرفته 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
🔥7
آموزش کنسل کردن عملیات های طولانی در دات نت
وقتی با متدهای 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
👍12🔥3
اجرای عملیات های نا همگام به صورت موازی در پس زمینه
یک برنامه کنسول پیاده می کنیم که تعدادی عکس را به حالت سیاه و سفید تبدیل می کند. ابتدا این کار را برای یک عکس به روش 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