CodeKesh @codekeshland Channel on Telegram

CodeKesh

@codekeshland


در این کانال به مباحث فنی در هر زمینه ای پرداخته خواهد شد.

توضیح خاصی نداریم، همان همیشگی : شل کنید !

CodeKesh (Persian)

CodeKesh، یک کانال تلگرامی با عنوان کاربری @codekeshland است که به مباحث فنی در هر زمینه ای پرداخته می‌شود. اگر به دنبال آموزش‌های فنی و کدهای برنامه نویسی هستید، این کانال برای شما مناسب است. در اینجا شما می‌توانید با آخرین تکنولوژی‌ها و ابزارهای برنامه نویسی آشنا شوید و از دانش فنی بیشتری بهره‌مند شوید. بنابراین، اگر علاقه‌مند به یادگیری و به‌روزرسانی دانش فنی خود هستید، به کانال CodeKesh بپیوندید و از مطالب مفید آن بهره ببرید.

CodeKesh

26 Jan, 14:01


زیاد می بینم که از اواخر 2024 رایج شده که رزومه ها باید خیلی خیلی خیلی منطبق بر قواعد ATS باشد وگرنه رد می شود، اندکی فضولی کرده و به این Template رسیدم، ظاهرا که مفید بوده است، حالا هزینه که ندارد، فایلش را هم گذاشته ام ، امتحان کنید، انشاالله که مفید فایده باشد

#resume
#ats
#cv



https://www.youtube.com/watch?v=q1Z3BZ9b3BY

CodeKesh

26 Jan, 14:01


ATS friendly CV !

CodeKesh

25 Jan, 03:03


یک Drag and Drop ساده در Blazor WASM !

اصولا کار با DOM در SPA ها یک مساله بوده، هست و خواهد بود ، در این ویدئو یک لیست ساده خواهیم داشت که توسط یک Component دارای قابلیت Drag & Drop می توانیم آیتمهای آنرا Reorder کنیم

تا وقتی سورس کد را باز نکنید ، چیزی برایتان مشخص نخواهد شد ، لذا اول سورس را بردارید

#blazor
#aspdotnet
#csharp
@wasm



https://www.youtube.com/watch?v=NJFrvrqulyI

CodeKesh

19 Jan, 02:41


این یک نمونه از Coding Interview ها است که باید با TypeScript حل میشده و توسط Airbnb مطرح شده بوده است

این را برای نمونه زدم ترکاندم ولی باز هم افرادی که انتخاب شده اند با توضیحات و داستانهایی مفصل تر از اینها روبرو خواهند شد

این البته سوال سختی نبود، بعضی از نمونه سوالات جر می دهد، این چیزی نبود !

حتی از CodeEditor هم استفاده نکردم که دقیقا همه چیز مشابه وضعیت واقعی باشد


ثبت نام جمعه تمام شد و فقط 15 نفر را انتخاب خواهم کرد ، 5 نفر را از قبل پارتی بازی کرده ام، دلم خواست !!

#interview
#livecoding
#typescript



https://www.youtube.com/watch?v=IGZvYn5ul1M

CodeKesh

18 Jan, 00:53


این صرفا بررسی SingleOrDefault و FirstOrDefault نیست !

نگاه کنید ببینید چگونه جهل را منتشر می کنند و نمی دانید چون صرفا رنگی رنگی است ولی از بیخ اشتباه است !

اصولا یک Fact Check ساده بکنید، بد نیست !


hashtag#dotnet
hashtag#csharp
hashtag#database
hashtag#ef



https://www.youtube.com/watch?v=6KV-GE0kFm4

CodeKesh

17 Jan, 02:20


بنده به عنوان شوهر عمه تست نویسی ایران به شما اعلام می کنم، نگران بحث Commercial شدن Fluent Assertation نباشید !


در این ویدئو به بررسی چطوری به خاک و خون کشیدن آن توسط دیگر ابزارهای Alternative پرداخته شده است !

هیچ وقت یک اصفهانی را تهدید به پولی کردن چیزی نکنید !



https://www.youtube.com/watch?v=Nm-th3mXI0Y

CodeKesh

16 Jan, 03:55


بررسی Facade Design Pattern و موارد استفاده از آن

اصلا باید بررسی میشد بودن یا نبودن چنین کانسپتی چه نقشی در کدنویسی دارد که انجام شد ، یک تحرک ساده بدون این کانسپت انجام شد و سپس Facade Pattern وارد شد تا بررسی شود چه بخشی از مشکل برطرف شده است

#dotnet
#csharp
#aspdotnet
#designpatterns




https://www.youtube.com/watch?v=M8yx6_1BhF0

CodeKesh

15 Jan, 14:08


ثبت نام جهت بررسی افراد شرکت کننده در دوره منهدم کردن تستهای مصاحبه های فنی

- لطفا اگر به زبان انگلیسی تسلط ندارید، ثبت نام نکنید - دانه دانه با ZOOM مصاحبه می کنم و نتوانید صحبت کنید، حذف خواهید شد
- بیخودی ثبت نام نکنید
- تجربه کافی ندارید ثبت نام نکنید - این داستان فقط برای کسانی است که در پاس کردن مصاحبه ها مشکل دارند نه چیز دیگری
- اگر لیسانس نرم افزار ندارید، ثبت نام نکنید
- اگر پایتون کار می کنید، ثبت نام نکنید
- زیر 28 سال هستید، ثبت نام نکنید، فاصله فارق التحصیلی تا تجربه دار حساب شدن شما هنوز کافی نیست
- کد ملی و شماره شناسنامه خود را وارد نکنید - بیخودی در سایت گذاشته شده است
- به من پیام خصوصی ندهید، حالش را ندارم جواب بدهم
- اگر به هر دلیلی سایت باز نشد و ...، بیخیال شوید، حتما شانس شما نبوده است
- کلا حالش را ندارم، ایجاد دردسر کنید، بیخیال خواهم شد - خیلی شدید شول کنید
- تا جایی که می شود ثبت نام نکنید، حسش نیست

فرصت ثبت نام تا آخر جمعه است

فقط 15 تا 20 نفر انتخاب خواهند شد




https://iteasy.ir/Register

CodeKesh

13 Jan, 13:41


این ویدئو صرفا یک دموی ساده از برنامه ای است که در پیش دارم

20 تا نهایت 30 نفر را انتخاب و از صفر با آنها شروع می کنم چگونه این Coding Challenge ها را منفجر کنند !

اکثر این Challenge در سطح بسیار سخت و مطرح شده در مایکروسافت و.... می باشد

همه الگوریتمها و راه حل ها شکافته و بررسی خواهد شد

این یک کورس نیست و با افراد در ارتباط خواهم بود - در یوتوب هم قرار نخواهد گرفت

حوصله جینگیلها و کدکشها را هم ندارم، لذا باید انتخاب کنم چه افرادی می توانند شرکت کنند

بیشتر هم به درد افرادی می خورد که بخواهند بعدا یک شغل با درآمد سالانه اقلا 300 هزار دلار داشته باشند، اگر خارج از ایران لنگ 2000 دلار هستید، بزنید به چاک، وقت و حوصله ندارم، بلاک کنید بروید پی کارتان !.

راه و روش ما این شکلی خواهد بود، هر کس خوشش آمد، بعدا خواهم گفت چه کند تا ثبت نام کرده باشد




https://www.youtube.com/watch?v=qSZyByMZy8o

CodeKesh

11 Jan, 03:04


https://www.youtube.com/watch?v=PN2FPvwC9zM&t=27s

CodeKesh

08 Jan, 01:19


بررسی Strategy Design Pattern و موارد استفاده از آن

در این ویدئو درباره Strategy Design Pattern صحبت می‌کنیم. این الگو یکی از الگوهای رفتاری در طراحی نرم‌افزار است که به ما کمک می‌کند تا منطق یا الگوریتم‌های مختلف را به‌صورت مستقل پیاده‌سازی کنیم و در زمان اجرا به‌راحتی از آن‌ها استفاده کنیم.

به زبان ساده، اگر بخواهیم رفتارهای مختلفی (مثل روش‌های پرداخت) را بدون تغییر کد اصلی تغییر دهیم یا اضافه کنیم، Strategy Pattern بهترین گزینه است. این الگو اصل باز-بسته (Open/Closed Principle) را رعایت می‌کند و باعث می‌شود کدهایمان انعطاف‌پذیرتر و قابل نگهداری‌تر باشند.

#dotnet
#designpatterns
#csharp
#softwareengineering




https://www.youtube.com/watch?v=XfBdvS1jB6o

CodeKesh

06 Jan, 22:57


بررسی Code Smell Mutable Data و راه حل آن

در این ویدئو به بررسی Code Smell Mutable Data پرداختیم ، این مشکل زمانی رخ می‌دهد که داده‌ها یا آبجکت‌ها پس از ایجاد قابل تغییر باشند. این موضوع می‌تواند باعث شود کد به سختی قابل پیش‌بینی و دیباگ باشد، زیرا تغییرات توسط بخش‌های مختلف سیستم انجام می‌شوند و ممکن است رفتار غیرمنتظره‌ای ایجاد کنند.


عدم کنترل روی تغییرات: هر بخشی از کد می‌تواند به داده‌ها دسترسی پیدا کرده و آن‌ها را تغییر دهد.

دیباگ سخت‌تر: پیدا کردن منبع اصلی تغییرات دشوار می‌شود.

ناهماهنگی داده‌ها: ممکن است داده‌ها در وضعیت نامعتبر قرار گیرند.

#codesmell
#csharp
#cleancode
#softwareengineering




https://www.youtube.com/watch?v=TmfE0qYBFI4

CodeKesh

05 Jan, 23:36


بررسی Middle Man ، یکی از Code Smell های رایج و چگونگی حل و فصل آن

در این ویدئو به یکی از Code Smell‌های رایج به نام Middle Man می‌پردازیم. این مشکل زمانی رخ می‌دهد که یک کلاس یا سرویس تنها به عنوان واسطه بین درخواست‌ها و سرویس‌های دیگر عمل می‌کند، بدون اینکه منطق خاصی به کد اضافه کند.


راه‌حل این است که یا این کلاس را حذف کنیم و مستقیماً از سرویس‌های اصلی استفاده کنیم، یا اگر نیاز به وجود کلاس واسطه است، منطق خاصی را در آن پیاده‌سازی کنیم که ارزش افزوده‌ای برای سیستم ایجاد کند.


#codesmell
#csharp
#cleancode
#softwareengineering




https://www.youtube.com/watch?v=UT-oxddlBYQ

CodeKesh

04 Jan, 23:58


نگاهی به چگونگی استفاده از View ها در EF Core !



استفاده از View در Entity Framework زمانی مفید است که بخواهید نتایج یک کوئری پیچیده را به‌صورت ساده‌تر مدیریت کنید. یک View در پایگاه داده شبیه به یک جدول مجازی است که از اجرای یک کوئری SQL ساخته می‌شود.

در EF، می‌توانید یک View را به‌عنوان یک (Entity) تعریف کنید و آن را در مدل خود استفاده کنید


#database
#coding
#efcore
#aspdotnet
#csharp




https://www.youtube.com/watch?v=XBORCnwNSM0

CodeKesh

04 Jan, 00:22


بررسی Refused Bequest ، یک Code Smell رایج در روند ارث بری

اگر بخواهیم Refused Bequest یا ارث‌بری نامناسب را توضیح دهیم، این Code Smell زمانی رخ می‌دهد که یک کلاس فرزند متدی را از کلاس والد به ارث می‌برد که برای آن بی‌معنی است و نباید در آن استفاده شود.

در این مثال، کلاس InStoreOrder متد SendShippingNotification را از کلاس والد Order به ارث می‌برد، اما چون سفارش‌های حضوری نیازی به ارسال اعلان حمل‌ونقل ندارند، این متد برای آن‌ها نامربوط است. در نتیجه، اجرای این متد در InStoreOrder منجر به پرتاب استثنای NotImplementedException می‌شود.

این وضعیت باعث:

ابهام در API: مصرف‌کننده نمی‌تواند از روی متدهای موجود تشخیص دهد که کدام کلاس واقعاً نیازمند این متد است.
نقض اصل LSP: کلاس فرزند نمی‌تواند جایگزین کلاس والد باشد، زیرا رفتار سازگاری ندارد.
نگهداری سخت‌تر: هر تغییری در متدهای نامربوط والد ممکن است کلاس فرزند را نیز به‌صورت غیرضروری تحت تأثیر قرار دهد.

#codesmell
#csharp
#cleancode
#softwareengineering



https://www.youtube.com/watch?v=vBTaAgTQmjI

CodeKesh

03 Jan, 00:26


بررسی Shallow Module به عنوان یکی دیگر از Code Smell های مرسوم

این نوع مشکل یعنی Shallow Module یا ماژول کم‌عمق یکی از مشکلات طراحی نرم‌افزار است که در آن یک ماژول یا کلاس تعداد زیادی متد سطح پایین ارائه می‌دهد، اما ارزش یا عملکرد قابل‌توجهی در اختیار مصرف‌کننده قرار نمی‌دهد. این مشکل باعث می‌شود:

پیچیدگی زیاد: مصرف‌کننده باید ترتیب اجرای متدها را بداند و همه جزئیات را مدیریت کند.
کاهش انتزاع: ماژول به جای ارائه یک رابط ساده، مصرف‌کننده را با جزئیات داخلی درگیر می‌کند.
افزایش خطا: فراموش کردن یک متد یا اشتباه در ترتیب اجرا می‌تواند منجر به خروجی اشتباه شود.
نگهداری سخت‌تر: تغییر در منطق ماژول نیازمند به‌روزرسانی چندین نقطه از کد است.

#codesmell
#csharp
#cleancode
#softwareengineering



https://www.youtube.com/watch?v=5r2QPPIL-ts

CodeKesh

02 Jan, 00:36


از شاتگان سرجری (Shotgun Surgery) به عنوان یک Code smell رایج دوری کنید !

شاتگان سرجری یک نشانه (Code Smell) است که زمانی رخ می‌دهد که یک تغییر در عملکرد نرم‌افزار نیازمند اعمال تغییرات کوچک در تعداد زیادی کلاس یا ماژول در کدبیس باشد. این وضعیت نشان‌دهنده‌ی انسجام پایین و عدم کپسوله‌سازی است که نگهداری و توسعه سیستم را دشوار می‌کند.

#codesmell
#csharp
#cleancode
#softwareengineering


https://www.youtube.com/watch?v=YuoSCHmZ0lo

CodeKesh

01 Jan, 09:53


در هم تندیدگی داده ها و Functionality و قصه مایکروسرویسها !

اگر بنا باشد از یک کانسپتی به درستی و در جای درستی استفاده کنیم، اول باید بدانیم در کجاها نباید از آن استفاده کنیم

در این ویدئو خارج از تمرکز بر زبان برنامه نویسی به یکی از مواردی پرداخته شد که در آن از مایکروسرویسها نباید استفاده نمود !

خلاصه با هرچه برنامه می نویسید، این را ببینید !

باشد که پند گیرید !

#microservicesarchitecture
#softwarearchitecture





https://youtu.be/xXFsuxpCNIU

CodeKesh

31 Dec, 00:05


ترکیب Polly و EF SavePoints در جهت پیاده سازی یک مکانیزم Retry در روند ذخیره دیتا

ترکیب Polly و EF SavePoints برای پیاده‌سازی یک مکانیزم Retry در روند ذخیره دیتا به این صورت است:

اولا Polly: برای تلاش مجدد در صورت وقوع خطاهای موقتی (مثل خطاهای پایگاه داده) استفاده می‌شود و تعداد دفعات Retry و تأخیر بین آن‌ها را مدیریت می‌کند.
دوما EF SavePoints: برای ایجاد نقاط بازگشت (Checkpoints) در تراکنش‌ها استفاده می‌شود تا در صورت شکست بخشی از عملیات، بتوان تغییرات موفق قبلی را حفظ کرد.

نتیجه: این ترکیب اجازه می‌دهد که عملیات‌هایی که موقتاً با شکست مواجه شده‌اند، دوباره امتحان شوند و در صورت موفقیت، کل تراکنش بدون نیاز به بازگشت کامل انجام شود.


#dotnet
#csharp
#efcore
#database
#aspdtnet




https://www.youtube.com/watch?v=pPwb0hc7f_8

CodeKesh

30 Dec, 01:21


چگونگی استفاده از SavePoints در مدیریت EF Transactions و مدیریت تراکنشهای نیمه کاره


در Entity Framework (EF)، Savepoint به عنوان یک مکانیزم در تراکنش‌ها استفاده می‌شود که به شما اجازه می‌دهد یک نقطه بازگشت (checkpoint) داخل تراکنش تعریف کنید. اگر بخشی از عملیات داخل تراکنش شکست بخورد، می‌توانید به این نقطه بازگشت کنید، بدون اینکه کل تراکنش را لغو کنید.

تعریف یک Savepoint: await transaction.CreateSavepointAsync("SavepointName")

بازگشت به Savepoint: await transaction.RollbackToSavepointAsync("SavepointName")

این قابلیت برای سناریوهایی مفید است که شامل چندین عملیات وابسته باشد و نمی‌خواهید در صورت خطا کل عملیات را از ابتدا شروع کنید.

#dotnet
#csharp
#efcore
#database
#aspdtnet




https://www.youtube.com/watch?v=IKc6oGt2410

CodeKesh

29 Dec, 00:23


بررسی Transaction Scope در دات نت 9 و ایجاد Data Consistency

در واقع TransactionScope یک ابزار قدرتمند در دات نت برای مدیریت تراکنش‌های چند مرحله‌ای (Multi-Step) به صورت خودکار است. این ابزار به شما اجازه می‌دهد که چند عملیات بانک اطلاعاتی یا حتی چند عملیات مرتبط با منابع مختلف (مانند بانک اطلاعاتی و پیام‌رسان‌ها) را در قالب یک تراکنش واحد اجرا کنید. اگر هر یک از عملیات در طول تراکنش شکست بخورد، همه تغییرات به صورت خودکار به حالت قبل بازگردانده (Rollback) می‌شوند و این باعث می‌شود داده‌ها در یک حالت سازگار باقی بمانند.


#dotnet
#csharp
#efcore
#database
#aspdtnet




http://youtube.social-card-share.top/ue4vlg

CodeKesh

28 Dec, 02:31


بررسی آخرین تغییرات EF بر برخورد با فیلدهای نوع Json

در نسخه‌های اخیر EF ، پشتیبانی از فیلدهای نوع JSON به شکلی کامل و بهینه ارائه شده است. اکنون می‌توان به راحتی داده‌های ساختاریافته را در فیلدهای JSON ذخیره و مستقیماً با استفاده از LINQ کوئری‌های پیچیده روی آن‌ها انجام داد. این قابلیت، انعطاف‌پذیری فوق‌العاده‌ای برای کار با داده‌های نیمه‌ساختاریافته فراهم کرده و نیاز به استفاده از راه‌حل‌های جانبی را برطرف کرده است. ابزار قدرتمندی که برنامه نویسان دات نت را در مدیریت بهتر داده‌ها یاری می‌کند.

در این ویدئو به بررسی آخرین تغییرات در این حوزه خواهیم پرداخت


#dotnet
#csharp
#efcore
#database
#json



https://www.youtube.com/watch?v=0g8gXINmaps

CodeKesh

26 Dec, 00:51


بررسی FluentAssertions.Json و دلیل استفاده از آن حتی با وجود FluentAssertions

می توان گفت FluentAssertions یک کتابخانه عمومی برای نوشتن UnitTest در دات‌ نت است که امکان بررسی اشیاء، استثناها، و انواع داده‌ها را به صورت ساده و قابل خواندن فراهم می‌کند. FluentAssertions.Json یک افزونه خاص برای FluentAssertions است که ابزارهایی برای مقایسه مستقیم JSON‌ها ارائه می‌دهد. این افزونه به شما اجازه می‌دهد ترتیب خصوصیات را نادیده بگیرید، تفاوت‌ها در ساختارهای تو در تو را به راحتی بررسی کنید و مقایسه‌های خاص‌تری برای داده‌های JSON انجام دهید. اگر نیاز به تست JSON‌های پیچیده دارید، FluentAssertions.Json انتخاب بهتری است، اما برای بررسی عمومی JSON به صورت رشته‌ای، FluentAssertions کافی است.


#tdd
#dotnet
#flunetassertation
#unittesting




https://www.youtube.com/watch?v=nHexZaoejuc

CodeKesh

25 Dec, 01:02


استفاده از SQL Query ها در EF - نحوه استفاده از RAW SQL در EF Core

در EF Core، می‌توان از Raw SQL برای اجرای کوئری‌های مستقیم SQL استفاده کرد. این قابلیت برای مواردی مانند استفاده از کوئری‌های پیچیده یا بازگرداندن داده‌ها به انواع غیر مپ‌شده (Unmapped Types) بسیار کاربردی است. متدهایی مانند FromSqlRaw و SqlQuery امکان استفاده از این کوئری‌ها را با امنیت بالا و پشتیبانی از پارامترهای کوئری فراهم می‌کنند.

#dotnet
#efcore
#aspdotnet
#csharp




https://www.youtube.com/watch?v=QPbCFUxq5s8&t=9s

CodeKesh

24 Dec, 03:05


بررسی UseSeeding و UseAsyncSeeding در EF 9

در EF Core 9، متدهای UseSeeding و UseAsyncSeeding برای اضافه کردن داده‌های اولیه (Seeding) به پایگاه داده در زمان اجرا استفاده می‌شوند. UseSeeding به صورت همزمان (Synchronous) عمل کرده و داده‌ها را به پایگاه داده اضافه می‌کند، در حالی که UseAsyncSeeding به صورت غیرهمزمان (Asynchronous) این کار را انجام می‌دهد و برای عملیات سنگین یا استفاده از منابع خارجی مفید است. این متدها جایگزین استفاده از HasData در سناریوهای پیشرفته‌تر هستند.


#efcore
#csharp
#aspdotnet
#dotnet

https://www.youtube.com/watch?v=shyKJA12S9g

CodeKesh

23 Dec, 09:09


بررسی روند فشرده سازی فایلهای استاتیک در دات نت 9

در دات‌نت 9، روند فشرده‌سازی فایل‌های استاتیک (مانند CSS، JavaScript، و تصاویر) با بهینه‌سازی‌های قابل‌توجهی همراه شده است. این بهبودها شامل استفاده از فشرده‌سازی Brotli با تنظیمات پیش‌فرض بهینه‌تر و همچنین استفاده مجدد از کانتکست‌های فشرده‌سازی است. این ویژگی که به نام Compression Context Pooling شناخته می‌شود، باعث کاهش بار پردازشی و استفاده کمتر از حافظه در سرور می‌شود.

فایل‌های استاتیک ابتدا توسط Middleware فشرده‌سازی پاسخ‌ها پردازش شده و در صورت درخواست مرورگر، با الگوریتم‌های Brotli یا Gzip فشرده می‌شوند. استفاده از این قابلیت به راحتی با اضافه کردن Middleware مربوطه در فایل Program.cs امکان‌پذیر است.

این ویژگی‌ها باعث بهبود عملکرد در برنامه‌های با ترافیک بالا می‌شوند و زمان بارگذاری فایل‌ها را به شکل چشم‌گیری کاهش می‌دهند.

#dotnet
#aspdotnet
#csharp



https://www.youtube.com/watch?v=7z7IwKekjYc

CodeKesh

22 Dec, 04:06


بررسی Composite Design Pattern در دات نت

اگر بخواهیم در مورد Composite Design Pattern صحبت کنیم ، میتوان گفت ؛ این دیزاین پترن به شما این امکان را می‌دهد که اشیاء پیچیده‌ای را به صورت درختی سازماندهی کنید، به طوری که اشیاء منفرد (Leaf) و ترکیب‌شده (Composite) به صورت یکسان مدیریت شوند. این الگو برای نمایش ساختارهای سلسله‌مراتبی مانند سیستم فایل، منوها یا سازمان‌ها استفاده می‌شود.


#dotnet
#csharp
#aspdotnet
#designpatterns




https://www.youtube.com/watch?v=Se1wzGAZFf8

CodeKesh

20 Dec, 23:57


بررسی چگونگی برخورد با داده های مشترک بین چند Thread در MultiThreading

در (Multithreaded Environment)، دسترسی همزمان چند Thread به داده‌های مشترک می‌تواند منجر به (Race Condition) شود. در سی‌شارپ، از کلمه کلیدی lock برای هماهنگی بین رشته‌ها استفاده می‌شود تا تنها یک Thread در هر لحظه به بخش بحرانی کد دسترسی داشته باشد


#dotnet
#csharp
#aspdotnet
#async




https://www.youtube.com/watch?v=6Ji5RcDZCp4

CodeKesh

20 Dec, 08:27


مدیریت صحیح خطا در کدهای Asynchronous در سی شارپ


در برنامه‌های (Asynchronous) یا چند‌وظیفه‌ای (Concurrent) در سی‌شارپ، ممکن است چندین خطا به صورت هم‌زمان در (Tasks) های مختلف رخ دهند. در این موارد، .دات نت این خطاها را در قالب یک شیء AggregateException گردآوری می‌کند.

در عمل AggregateException این امکان را فراهم می‌کند که تمام خطاهای رخ‌داده در تسک های مختلف را به صورت مجموعه‌ای از InnerExceptions بررسی و مدیریت کنید. این روش به برنامه‌نویس کمک می‌کند تا به‌جای مدیریت جداگانه هر خطا، تمام آن‌ها را به صورت متمرکز بررسی و تحلیل کند.

#dotnet
#csharp
#aspdotnet
#async





https://www.youtube.com/watch?v=pY1ObQRou6c

CodeKesh

19 Dec, 14:30


بررسی سرعت در صورت استفاده از ReadOnlySpan - آیا همه جا باید استفاده شود ؟


اگر بخواهیم در مورد ReadOnlySpan صحبت کنیم ، باید گفت ، یک ساختار در زبان سی شارپ است که برای دسترسی به داده‌های پیوسته در حافظه طراحی شده است، بدون ایجاد کپی‌های غیرضروری یا تخصیص حافظه اضافی. این قابلیت بهینه‌سازی عملکرد و کاهش استفاده از حافظه را در برنامه‌های حساس به کارایی فراهم می‌کند.

#dotnet
#csharp
#performance
#aspdotnet





https://youtu.be/mPtZGT55R9s

CodeKesh

19 Dec, 01:49


* شکست پروسه های سنگین توسط Parallel.Invoke در دات نت *

با توجه به اینکه Parallel.Invoke یکی از قابلیت‌های قدرتمند دات‌نت می باشد که به شما این امکان را می‌دهد چندین وظیفه مستقل را به صورت موازی اجرا کنید، لازم دیدم کمی در مورد آن صحبت کنیم .این روش زمانی مفید است که وظایف مختلفی دارید که نیاز به اجرا به صورت همزمان دارند و به منابع یکسانی وابسته نیستند. با استفاده از این قابلیت، می‌توانید از هسته‌های پردازنده بهینه‌تر استفاده کرده و عملکرد برنامه خود را بهبود دهید. از این روش می‌توان برای پردازش داده‌های سنگین، محاسبات پیچیده، یا اجرای وظایف مختلف مانند خواندن فایل‌ها و پردازش شبکه به صورت همزمان استفاده کرد.


#dotnet
#csharp

https://www.youtube.com/watch?v=t0HcXJVzE2M

CodeKesh

18 Dec, 02:44


در این ویدئوی بسیار کوتاه ، صرفا به بررسی مزیت استفاده از Parallel.Foreach پرداخته شده است

اکر بلد هستید، دیگر نبینید ، اگر بلد نیستید هم بروید از کسانی که بلد هستند بپرسید و این را نبینید !

اصلا کلا به من چه ؟

#dotnet
#csharp
#parallel

https://youtu.be/lBCf0DowY5w

CodeKesh

17 Dec, 14:55


آیا کد نویسی دیگر فایده خواهد داشت ؟. از نظر بزرگان حوزه AI و کسانی از پشت قضیه خبر دارند چطور؟





https://www.youtube.com/watch?v=oxXuf4G3A8w

CodeKesh

16 Dec, 13:42


.NET 9 Enhanced Service Registration

Dependency Injection (DI) is a fundamental principle of modern software development, enabling loose coupling and improving testability. With every release, .NET further enhances its DI framework, making it more efficient for developers to manage dependencies. The latest .NET 9 release brings several improvements that streamline the DI process, offering greater flexibility and better performance. In this article, we’ll take a closer look at these new features and share best practices for utilizing them effectively in your projects.


#dotnet
#DI
#Csharp

CodeKesh

14 Dec, 02:34


دیشب Nick خواست یک طوری ویدئوی قبلی را جمع کند، لذا مدیر تیم Blazor آمد و صحبت کردند و خلاصه همه چیز مثبت است و کل بحث را در 4 دقیقه برایتان در آوردم



https://www.youtube.com/watch?v=D4uOJyiy9m0

CodeKesh

13 Dec, 11:12


بررسی چگونگی پیاده سازی سه نوع رابطه رایج بین جداول توسط EF در یک پروژه دات نتی


به طور کلی در Entity Framework سه نوع رابطه اصلی میان موجودیت‌ها (Entityها) تعریف می‌شود:

یک-به-یک (One-to-One): هر موجودیت A با دقیقاً یک نمونه از موجودیت B مرتبط است و بالعکس.
یک-به-چند (One-to-Many): یک موجودیت A می‌تواند با چندین نمونه از موجودیت B مرتبط باشد، اما هر موجودیت B تنها با یک موجودیت A در ارتباط است.
چند-به-چند (Many-to-Many): چندین نمونه از موجودیت A با چندین نمونه از موجودیت B مرتبط‌اند. این رابطه معمولاً از طریق یک جدول واسط (Join Table) در پایگاه داده پیاده‌سازی می‌شود.

در این ویدئو به بررسی این موارد با ذکر یک مثال پرداختیم


#dotnet
#csharp
#database
#efcore



https://www.youtube.com/watch?v=qsXGgKzHfIM&t=13s

CodeKesh

13 Dec, 02:28


Entity Framework - Relationships with sample - Part 3- Many to Many relationship



In Entity Framework (EF), many-to-many relationships are modeled through a join entity (junction table) that contains foreign keys referencing the related entities. EF allows you to configure these relationships using the Fluent API or data annotations. By including and then including related entities in queries, you can retrieve linked data in a single round trip. Ultimately, EF’s handling of many-to-many simplifies complex data associations with clear object references.



#dotnet
#csharp
#database
#efcore





https://www.youtube.com/watch?v=leT30e9KKb4

CodeKesh

12 Dec, 14:00


Entity Framework - Relationships with sample - Part 2- One to Many relationship

In Entity Framework Core (EF Core), a one-to-many relationship occurs when one entity is related to multiple instances of another entity.

In this video, you can learn how to do it by Data Annotation and Fluent API as you wish


#dotnet
#csharp
#database
#efcore



https://www.youtube.com/watch?v=EzEeWu_H9Oc

CodeKesh

11 Dec, 15:11


Entity Framework - Relationships with sample - Part 1- Intro and One to One relation

The main feature of relational databases is relationships. Different relationship types control how the data and tables relate to one another. Establishing links between tables through relationships makes this database type unique, and knowing how relationships work helps broaden database modeling capabilities.

This video explains different relationship types and how they look through practical examples.


#dotnet
#csharp
#database
#efcore




https://www.youtube.com/watch?v=wmiA1Nx9Q5I

CodeKesh

11 Dec, 02:00


احساس می کنم اگر این ویدئو که زیر 6 دقیقه است را ببینید، بد نمی باشد !

6 دقیقه خلاصه شده ویدئوی

ASP.NET Community Standup - ASP.NET Core planning kickoff for .NET 10

که دیشب برگزار گردید

اگر ندیدید هم مهم نیست



https://www.youtube.com/watch?v=7lbYn6f_5qo

CodeKesh

09 Dec, 14:49


Command Pattern with Undo and Redo in C#.NET

The Command Pattern is a behavioral design pattern that encapsulates requests as objects, allowing you to parameterize objects with different requests, delay their execution, or support undoable operations. In this video, we'll implement the Command Pattern in .NET 9 with support for Undo and Redo, using a bank account system to manage deposit and withdrawal operations.


#dotnet
#aspdotnet
#csharp
#programming
#designpattern





https://www.youtube.com/watch?v=wDarY8fRGFI

CodeKesh

08 Dec, 03:49


Understanding MapFallback in Minimal APIs in .NET 9

In .NET 9, the introduction of minimal APIs has simplified the creation of lightweight HTTP services by providing developers with a flexible and concise way to define routes and endpoints. One of the features available is MapFallback, which allows you to define a fallback route for handling requests that do not match any explicitly defined routes.

#Minimal_API
#dotnet
#aspdotnet
#csharp
#webapi
#programming


https://www.youtube.com/watch?v=pKvePEF_L0g

CodeKesh

05 Dec, 00:02


بخش 20 منتشر شد !

بررسی CORS و چگونگی پیاده سازی تنظیمات آن در Minimal API ها

عملا CORS یک مکانیزم امنیتی در مرورگها است که به یک سرور اجازه می‌دهد تا مشخص کند چه دامنه‌هایی مجاز به دسترسی به منابع (مثل داده‌های API) هستند. این مکانیزم برای جلوگیری از دسترسی غیرمجاز به داده‌ها در هنگام درخواست از دامنه‌های متفاوت طراحی شده است.

لینک فصلی که اخیرا اضافه شده : ( https://www.youtube.com/watch?v=RM35S8nqlss )

لینک کلی این پلی لیست : ( https://shorturl.at/jTqnh )



#dotnet
#aspdotnet
#csharp
#webapi
#programming




https://www.youtube.com/watch?v=RM35S8nqlss

CodeKesh

04 Dec, 23:57


بخش 19 منتشر شد !

تمیز کاری در Program.cs و جداسازی بخشهای مختلف در Minimal ApI ها

اصولا در یک پروژه واقعی با تعدد سرویس و ریپوزیتوری و تنطیمات مختلف روبرو خواهیم بود و اگر قرار باشد همه چیز داخل Program.cs انجام شود، پس از مدتی همه چیز گرفتار به هم ریختگی خواهد شد . در این بخش خواهیم دید چقدر ساده می شود جلوی منفجر شدن Program.cs را گرفت و همه چیز را مرتب و تر و تمیز نمود

لینک فصلی که اخیرا اضافه شده : ( https://www.youtube.com/watch?v=bWpjuWVPkEk )

لینک کلی این پلی لیست : ( https://shorturl.at/jTqnh )



#dotnet
#aspdotnet
#csharp
#webapi
#programming





https://www.youtube.com/watch?v=bWpjuWVPkEk

CodeKesh

04 Dec, 09:07


** The Zip method in LINQ **

The Zip method in LINQ is a powerful and straightforward tool used to merge two sequences (collections) into a single sequence by applying a specified function to corresponding elements from each sequence.

Key Points about Zip:

Purpose: Combines two sequences element-by-element and produces a single sequence.

Result: Each element in the resulting sequence is created by applying a function (e.g., a lambda expression) to the corresponding elements from the two input sequences.

Requirements:
Both sequences must have the same or compatible lengths.
The shorter sequence determines the length of the result (remaining elements in the longer sequence are ignored).

Working code : ( https://lnkd.in/gsZJxnZ8 )

CodeKesh

04 Dec, 03:22


همه بخشهای Mininal API ها در دات نت 9 را توی یوتوب آزاد کردم، فقط اطلاع رسانی نکرده ام، خواستید بروید ببینید، ولی اطلاع رسانی روزانه به صورت بخش به بخش تا پایان را خواهیم داشت

#dotnet
#aspdotnet
#csharp
#webapi
#programming



لینک کلی این پلی لیست : ( https://shorturl.at/jTqnh )

CodeKesh

04 Dec, 00:58


GroupBy with Multiple Keys


The GroupBy operation is a powerful feature in programming that allows you to categorize data into groups based on one or more attributes. It is often used for summarizing or aggregating data, such as calculating totals, averages, or counts within each group.

Working Code : ( https://lnkd.in/gw5u8y2p )

#dotnet
#csharp
#LINQ

CodeKesh

03 Dec, 23:53


بخش 18 منتشر شد !


بررسی چگونگی دانلود و آپلود فایل در Minimal API های دات نت 9

به طور قطع در یک پروژه واقعی ما درگیر کار با فایلها، آپلود و دانلود فایل نیز خواهیم شد، لذا در این ویدئو به بررسی چگونگی آپلود و دانلود فایل در Minimal API ها خواهیم پرداخت و سپس با کمک PostMan یک بار روند دانلود و آپلود را تست خواهیم نمود

لینک فصلی که اخیرا اضافه شده : ( https://www.youtube.com/watch?v=Kht5ImbAPOg )

لینک کلی این پلی لیست : ( https://shorturl.at/jTqnh )



#dotnet
#aspdotnet
#csharp
#webapi
#programming



https://www.youtube.com/watch?v=Kht5ImbAPOg

CodeKesh

03 Dec, 00:31


بخش 17 منتشر شد !

آشنایی با طریقه Custom کردن خروجی یک Endpoint در Minimal API ها


در Minimal API، سفارشی‌سازی نتایج به شما این امکان را می‌دهد که پاسخ‌های API را بر اساس نیازهای خاص کاربران شکل دهید. این شامل حذف فیلدهای حساس، اضافه کردن مقادیر محاسبه‌شده یا تغییر ساختار داده‌ها می‌شود. با استفاده از روش‌هایی مثل DTO یا ایجاد کلاس‌های سفارشی که از IResult ارث‌بری می‌کنند، می‌توان کد را خواناتر، انعطاف‌پذیرتر و قابل نگهداری‌تر کرد.

لینک فصلی که اخیرا اضافه شده : ( https://www.youtube.com/watch?v=BCh8-mj0xks )

لینک کلی این پلی لیست : ( https://shorturl.at/jTqnh )



#dotnet
#aspdotnet
#csharp
#webapi
#programming




https://www.youtube.com/watch?v=BCh8-mj0xks

CodeKesh

02 Dec, 14:35


Preventing Deadlocks in Asynchronous Programming

Why This Happens:
Using "Task.Run" along with .Result blocks the main thread, which can lead to deadlocks, especially in environments relying on a single-threaded synchronization context.

How to Prevent Deadlocks:
The solution is to use await when executing the task. This ensures the operation is non-blocking and allows the main thread to remain free.

#dotnet
#aspdotnet
#csharp

CodeKesh

02 Dec, 00:48


بخش 16 منتشر شد !



بررسی و افزودن Response Contract در جهت بهبود مستندات Swagger

استفاده از Response Contract در مستندات Swagger باعث بهبود شفافیت و خوانایی مستندات API می‌شود. این کار ساختار دقیق پاسخ‌ها و کدهای وضعیت HTTP را نمایش می‌دهد، که به توسعه‌دهندگان کمک می‌کند تا بهتر انتظارات از هر endpoint را درک کنند.

لینک فصلی که اخیرا اضافه شده : ( https://www.youtube.com/watch?v=iqD6okKhSzU )

لینک کلی این پلی لیست : ( https://www.youtube.com/watch?v=CD62NjvVn44&list=PLbluqgRVyY1MXkO0gLDY-7x4e4m0pufX8 )






#dotnet
#aspdotnet
#csharp
#webapi
#programming



https://www.youtube.com/watch?v=iqD6okKhSzU

CodeKesh

02 Dec, 00:47


بخش 15 منتشر شد !

بررسی چگونگی افزودن Authentication به Minimal API ها در دات نت 9

امن کردن APIها (مانند Web API) اهمیت زیادی دارد، زیرا نقاط ورود برای دسترسی به داده‌ها و سرویس‌های حساس در برنامه هستند. اگر امنیت رعایت نشود، مهاجمان می‌توانند به داده‌های کاربران دسترسی پیدا کنند، حملات Injection (مانند SQL Injection) انجام دهند یا سیستم را مختل کنند. استفاده از روش‌هایی مانند احراز هویت (JWT)، کنترل دسترسی، رمزنگاری ارتباطات (HTTPS) و اعتبارسنجی ورودی‌ها، از خطرات جلوگیری می‌کند و اعتماد کاربران را افزایش می‌دهد.


لینک فصلی که اخیرا اضافه شده : ( https://www.youtube.com/watch?v=rqd0HvBZcf4&list=PLbluqgRVyY1MXkO0gLDY-7x4e4m0pufX8&index=15 )
لینک کلی این پلی لیست : ( https://www.youtube.com/watch?v=CD62NjvVn44&list=PLbluqgRVyY1MXkO0gLDY-7x4e4m0pufX8 )


#dotnet
#aspdotnet
#csharp
#webapi
#programming



https://www.youtube.com/watch?v=rqd0HvBZcf4

CodeKesh

30 Nov, 23:28


بخش 14 منتشر شد !

معرفی و افزودن روشهای Validate کردن داده های ورودی در Minimal API های دات نت 9

اعتبارسنجی (Validation) در Minimal API‌ها نقش حیاتی در تضمین صحت و امنیت داده‌های ورودی ایفا می‌کند. این کار از ورود داده‌های نامعتبر جلوگیری کرده و از بروز مشکلات در منطق برنامه یا دیتابیس جلوگیری می‌کند. استفاده از ابزارهایی مانند FluentValidation به توسعه‌دهندگان کمک می‌کند تا قوانین اعتبارسنجی را به‌صورت جداگانه و قابل‌مدیریت تعریف کنند. این کار باعث افزایش خوانایی، نگهداری و قابلیت اطمینان کد می‌شود.

لینک فصلی که اخیرا اضافه شده : ( https://www.youtube.com/watch?v=40bNAsrXZtU )
لینک کلی این پلی لیست : ( https://www.youtube.com/watch?v=CD62NjvVn44&list=PLbluqgRVyY1MXkO0gLDY-7x4e4m0pufX8 )


#dotnet
#aspdotnet
#csharp
#webapi
#programming





https://www.youtube.com/watch?v=40bNAsrXZtU

CodeKesh

30 Nov, 00:22


بخش 13 منتشر شد !


افزودن EF به عنوان یک ORM و ایجاد یک CRUD

یک پروژه جدید ساختیم ، چرا ؟، چون تا به اینجا همه چیز به صورت In-Memory و کمی اولیه بود، در این قسمت یک EF را به پروژه افزودیم و همه چیز را واقعی کردیم - حالا یک CRUD واقعی داریم که به دیتابیس متصل خواهد بود و پروژه هم تمیز کاری شده است


لینک فصلی که اخیرا اضافه شده : ( https://www.youtube.com/watch?v=YvY-utvdjyM )

لینک کلی این پلی لیست : ( https://www.youtube.com/watch?v=CD62NjvVn44&list=PLbluqgRVyY1MXkO0gLDY-7x4e4m0pufX8 )


#dotnet
#aspdotnet
#csharp
#webapi
#programming



https://www.youtube.com/watch?v=YvY-utvdjyM

CodeKesh

28 Nov, 23:09


بخش 12 منتشر شد !


استفاده از Controller ها در پروژه های Minimal API در دات نت 9

من دقیقا خودم هم نمی دانم چرا شاید لازم شود از Controller ها در Minimal API ها استفاده کنیم، ولی خوب به هر حال در این کره خاکی هر چیزی ممکن است ، لذا توضیح داده شد که بماند به یادگار !

لینک فصلی که اخیرا اضافه شده : ( https://www.youtube.com/watch?v=OOzR9Qlmk8M )

لینک کلی این پلی لیست : ( https://www.youtube.com/watch?v=CD62NjvVn44&list=PLbluqgRVyY1MXkO0gLDY-7x4e4m0pufX8 )


#dotnet
#aspdotnet
#csharp
#webapi
#programming



https://www.youtube.com/watch?v=OOzR9Qlmk8M

CodeKesh

28 Nov, 23:09


بخش 11 منتشر شد !

بررسی Custom Binding در Minimal API های دات نت 9

در Minimal API‌ها . Custom Binding به شما اجازه می‌دهد داده‌های ورودی درخواست (مانند Route، Query، Header یا Body) را به شکلی سفارشی به پارامترهای متد تبدیل کنید. برای این کار، می‌توانید متدی به نام BindAsync در کلاس مورد نظر تعریف کنید. این متد وظیفه دارد داده‌های مورد نیاز را از درخواست استخراج کرده و به شیء دلخواه تبدیل کند. این روش زمانی کاربردی است که نیاز به پردازش یا تبدیل خاصی در داده‌ها داشته باشید.

لینک فصلی که اخیرا اضافه شده : ( https://www.youtube.com/watch?v=dc2VccHRbKk )
لینک کلی این پلی لیست : ( https://www.youtube.com/watch?v=CD62NjvVn44&list=PLbluqgRVyY1MXkO0gLDY-7x4e4m0pufX8 )


#dotnet
#aspdotnet
#csharp
#webapi
#programming




https://www.youtube.com/watch?v=dc2VccHRbKk

CodeKesh

28 Nov, 01:30


ظاهرا از دات نت 9 به بعد، به دلیل یکسری گیس و گیس کشیها در تیم دات نت و ساپورت کنندگان Swagger، این ابزار از حالت دیفالت و بخشی از پروژه ها بودن خارج شده که البته می توانید خودتان آنرا به پروژه ها اضافه کنید، اما :

تیم دات نت یک مزخرفی را جایگزین کرده که در این ویدئو خیلی سریع یک نگاهی به آن انداختیم

پیشنهاد خود من : این ویدئو را نبینید و همان Swagger را استفاده کنید !

سوال : پس چرا این ویدئو را درست کردم ؟. بیمارم !

CodeKesh

28 Nov, 00:48


Microservices Can Become Technical Debt

In the article "Microservices Can Become Technical Debt," I discuss how microservices architecture, despite its benefits, can lead to technical debt if not properly managed. Key points include:

Over-segmentation of Services: Dividing applications into too many small services without clear justification can increase complexity and communication overhead.

Lack of Standardization: Inconsistent standards across teams, such as using different frameworks or protocols, complicate integration and debugging.

Inadequate Monitoring and Logging: Without centralized systems, debugging distributed services becomes challenging.

Dependency Spaghetti: Unintended interdependencies among services can cause system fragility, where a failure in one service affects others.

I emphasize the importance of careful design, standardization, and robust monitoring to prevent microservices from becoming a source of technical debt.


https://dev.to/alikolahdoozan/microservices-can-become-technical-debt-1fo7

CodeKesh

28 Nov, 00:33


بخش دهم منتشر شد !

بررسی DI و Middleware در Minimal API های دات نت 9


تا این بخش، هیچ Object خاصی در Endpoint ها درگیر نبود، لذا خیلی با DI هم کاری نداشتیم و فقط یکجا به صورت نمادین استفاده شد !. در این ویدئو حالا هم سرویس و Repository داریم و هم اصلا قصد داریم Middleware و روند DI را بررسی کنیم .



لینک فصلی که اخیرا اضافه شده : ( https://www.youtube.com/watch?v=nHeP6Al3C-8 )
لینک کلی این پلی لیست : ( https://www.youtube.com/watch?v=CD62NjvVn44&list=PLbluqgRVyY1MXkO0gLDY-7x4e4m0pufX8 )


#dotnet
#aspdotnet
#csharp
#webapi
#programming




https://www.youtube.com/watch?v=nHeP6Al3C-8

CodeKesh

27 Nov, 03:55


We can test the endpoints using Endpoints Explorer in Visual Studio.

Select the following in the main menu: View ➤ Other Windows ➤ Endpoint Explorer

CodeKesh

27 Nov, 00:29


بخش نهم منتشر شد !

بررسی Parameter Binding در Minimal API ها در دات نت 9


اگر قرار باشد در مورد Parameter Binding صحبت کنیم، می توان گفت Parameter Binding در Minimal API‌ فرآیندی است که طی آن داده‌های ارسال‌شده در درخواست HTTP (مانند Route، Query String، Header یا Body) به طور خودکار به پارامترهای متد متصل می‌شوند. این ویژگی به برنامه‌نویسان امکان می‌دهد تا بدون نیاز به استخراج دستی داده‌ها، به صورت ساده و سریع به مقادیر مورد نیاز دسترسی پیدا کنند.


لینک فصلی که اخیرا اضافه شده : ( https://www.youtube.com/watch?v=aZdKln1ZB-4 )
لینک کلی این پلی لیست : ( https://www.youtube.com/watch?v=CD62NjvVn44&list=PLbluqgRVyY1MXkO0gLDY-7x4e4m0pufX8 )


#dotnet
#aspdotnet
#csharp
#webapi
#programming






https://www.youtube.com/watch?v=aZdKln1ZB-4

CodeKesh

26 Nov, 01:35


بخش هشتم منتشر شد !

** بررسی Response Type ها در Minimal API های دات نت 9 **


لینک فصلی که اخیرا اضافه شده : ( https://www.youtube.com/watch?v=aoKmNpf1CuE )
لینک کلی این پلی لیست : ( https://www.youtube.com/watch?v=CD62NjvVn44&list=PLbluqgRVyY1MXkO0gLDY-7x4e4m0pufX8 )


در این قسمت به سراغ Respnose Type در Minimal API ها خواهیم رفت - از طریق آنها می توانید مشخص می‌کند که یک Endpoint چه نوع پاسخی به کلاینت بازمی‌گرداند، مانند JSON، متن ساده یا یک کد وضعیت HTTP. استفاده از TypedResults امکان بازگشت پاسخ‌هایی با تایپ قوی‌تر و مدیریت دقیق‌تر را فراهم می‌کند. این قابلیت باعث می‌شود کد خواناتر و خطاها در زمان کامپایل شناسایی شوند. برای مثال، از TypedResults.Ok برای پاسخ موفق و از TypedResults.NotFound برای خطای پیدا نشدن استفاده می‌شود. انتخاب درست Response Type تجربه کاربری بهتری فراهم می‌کند و مدیریت کدها را آسان‌تر می‌سازد.


#dotnet
#aspdotnet
#csharp
#webapi
#programming




https://www.youtube.com/watch?v=aoKmNpf1CuE

CodeKesh

25 Nov, 00:56


بخش هفتم منتشر شد !

** بررسی چگونگی هندل کردن پارامتر در Route های تعریف شده در Minimal API ها در دات نت 9 **

تا قبل از این ویدئو، عملا همه Route ها مثل هم بودند و نه پارامتری داشتند، نه فرق خاصی می کردند، در این ویدئو قصد داریم پارامتر را نیز به Route ها اضافه کنیم تا بحث مقداری جدی تر شود، هر چند هنوز راه درازی برای جدی شدن بحث باقی است


لینک فصلی که اخیرا اضافه شده : ( https://www.youtube.com/watch?v=AwJ4gScxOsA )
لینک کلی این پلی لیست : ( https://www.youtube.com/watch?v=CD62NjvVn44&list=PLbluqgRVyY1MXkO0gLDY-7x4e4m0pufX8 )


#dotnet
#aspdotnet
#csharp
#webapi
#programming






https://www.youtube.com/watch?v=AwJ4gScxOsA

CodeKesh

24 Nov, 01:45


بخش ششم منتشر شد !

افزودن Swagger به Minimal API ها در دات نت 9



لینک فصلی که اخیرا اضافه شده : ( https://www.youtube.com/watch?v=f2LZ1Y6cHzo&list=PLbluqgRVyY1MXkO0gLDY-7x4e4m0pufX8&index=7 )
لینک کلی این پلی لیست : ( https://www.youtube.com/watch?v=CD62NjvVn44&list=PLbluqgRVyY1MXkO0gLDY-7x4e4m0pufX8 )


#dotnet
#aspdotnet
#csharp
#webapi
#programming


مستند سازی API ها و Endpoint ها خود مبحثی است طولانی و دارای کلی بحث و مطلب ، ما در ASP.NET اصولا از Swagger استفاده می کنیم که در دات نت 9 کمی چالشی شده است - در این ویدئو فعلا Swagger را افزودیم و روی API های ساده صرفا کار خواهد کرد، بعدا که پروژه واقعی شود، همه امور ساده تر و بهتر پیش خواهد رفت





https://www.youtube.com/watch?v=f2LZ1Y6cHzo&list=PLbluqgRVyY1MXkO0gLDY-7x4e4m0pufX8&index=7

CodeKesh

23 Nov, 01:07


بخش پنجم منتشر شد !

تعریف کلاس مجزا و TagName و Grouping در Endpoint های Minimal API های دات نت 9


کم کم باید به سراغ اندکی تمیز کاری و دسته بندی Endpoint ها می رفتیم که در این بخش حاصل شد ، هنوز همه چیز خیلی اولیه و شبه Hello Word است، ولی آرام آرام همه چیز شکل خواهد گرفت

لینک فصلی که اخیرا اضافه شده : ( https://www.youtube.com/watch?v=n7U3WX2_oHA )
لینک کلی این پلی لیست : ( https://www.youtube.com/watch?v=CD62NjvVn44&list=PLbluqgRVyY1MXkO0gLDY-7x4e4m0pufX8 )


#dotnet
#aspdotnet
#csharp
#webapi
#programming





https://www.youtube.com/watch?v=n7U3WX2_oHA

CodeKesh

22 Nov, 02:36


بخش چهارم منتشر شد !

بررسی Route Handler ها در فرآیند روتینگ و ایجاد بدنه برای EndPoint های تعریف شده در Minimal API های دات نت 9 - بخش دوم

اصولا یک EndPoint به یک بدنه نیاز دارید یا فرآیندی را شروع و به پایان برساند و این دقیقا مانند بدنه Action Method ها در Controller ها می باشد، ولی Minimal API ها به ما آزادی بیشتری داده و تقریبا همه چیز را به برنامه نویس سپرده تا خود برای خودش به تعریف بدنه EndPoint ها بپردازد، یعنی حتی نوع بدنه EndPoint هم دست من و شما است و فقط یک Delegate وظیفه اجرا شدن متد تعریف شده ما را بر عهده دارد.


لینک فصلی که اخیرا اضافه شده : ( https://www.youtube.com/watch?v=2d41G4bI0Ss )
لینک کلی این پلی لیست : ( https://www.youtube.com/watch?v=CD62NjvVn44&list=PLbluqgRVyY1MXkO0gLDY-7x4e4m0pufX8 )


#dotnet
#aspdotnet
#csharp
#webapi
#programming



https://www.youtube.com/watch?v=2d41G4bI0Ss

CodeKesh

21 Nov, 02:15


بخش سوم منتشر شد !

بررسی Routing در Minimal API های دات نت 9 - بخش اول

در Minimal API ها عملا همه چیز بر پایه Routing Patterns استوار است - در این ویدئو به بررسی چگونگی تعریف EndPoint ها زیر قاعده Map و Routing خواهیم پرداخت. دقت کنید این فقط معرفی است و با مشاهده ویدئوهای بعدی مبحث تکمیل خواهد شد


لینک فصلی که اخیرا اضافه شده : ( https://www.youtube.com/watch?v=BSC1KJUfqCM&list=PLbluqgRVyY1MXkO0gLDY-7x4e4m0pufX8&index=4 )

لینک کلی این پلی لیست : ( https://www.youtube.com/watch?v=CD62NjvVn44&list=PLbluqgRVyY1MXkO0gLDY-7x4e4m0pufX8 )


#dotnet
#aspdotnet
#csharp
#webapi
#programming



https://www.youtube.com/watch?v=BSC1KJUfqCM&list=PLbluqgRVyY1MXkO0gLDY-7x4e4m0pufX8&index=4

CodeKesh

19 Nov, 23:51


بخش دوم منتشر شد !

ایجاد و بررسی آناتومی یک پروژه Minimal API در دات نت 9

در این ویدئو یک پروژه از نوع Minimal API ایجاد کردیم، با Structure این پروژه ها آشنا شدیم و کمی هم در تنظیمات آن دست بردیم و یاد گرفتیم چطوری با کد در این تغییرات دست ببریم


لینک فصلی که اخیرا اضافه شده : ( https://www.youtube.com/watch?v=-sw_7ytluZA )

لینک کلی این پلی لیست : ( https://www.youtube.com/watch?v=CD62NjvVn44&list=PLbluqgRVyY1MXkO0gLDY-7x4e4m0pufX8 )


#dotnet
#aspdotnet
#csharp
#webapi
#programming



https://www.youtube.com/watch?v=-sw_7ytluZA

CodeKesh

19 Nov, 03:21


بخش اول منتشر شد !

به طور قطع شما با Verb ها آشنا هستید، در این ویدئو صرفا قصد داریم Action Method ها را مبتنی بر این Verb ها ببینیم و سپس آرام آرام مطرح کنیم قرار است وارد چه مبحثی بشویم

لینک فصلی که اخیرا اضافه شده : ( https://www.youtube.com/watch?v=jQ-7cRtkfzY&t=12s )
لینک کلی این پلی لیست : ( https://www.youtube.com/watch?v=CD62NjvVn44&list=PLbluqgRVyY1MXkO0gLDY-7x4e4m0pufX8 )


#dotnet
#aspdotnet
#csharp
#webapi
#programming



https://www.youtube.com/watch?v=CD62NjvVn44&list=PLbluqgRVyY1MXkO0gLDY-7x4e4m0pufX8

CodeKesh

18 Nov, 10:28


مقدمه و شروعی بر Minimal API ها در دات نت 9


از تقریبا دو سال پیش ، Minimal API ها در ASP.NET با ما هستند، اما در دات نت 9 ظاهرا با یک Performance Improvement قابل توجه روبرو گشته ایم، لذا با این ویدئو که مقدمه ای بر Minimal API ها در دات نت 9 می باشد، این مبحث را آغاز و با آن که مطمئن هستم شما خود با این قابلیت آشنا هستید، سعی می کنم C# 13 و قابلیتهای جدید آنرا را بیشتر درگیر و در کنار آن به ریزه کاریها بپردازم .

این سری ویدئو در یک PlayList منتشر و روزانه به روز رسانی خواهد گردید

#dotnet
#aspdotnet
#csharp
#programming

https://www.youtube.com/watch?v=CD62NjvVn44&list=PLbluqgRVyY1MXkO0gLDY-7x4e4m0pufX8

CodeKesh

14 Nov, 15:15


بررسی یک Large Dataset Processing ساده در سی شارپ توسط Memory

یکی از مباحث پایه در برنامه نویسی ، شناخت Memory است - البته بحث Memory Management در سی شارپ و دات نت بزرگتر از این حرفها است، ولی من در این حدود 8 دقیقه سعی کردم یک نگاه کوتاه به Memory و Span در سی شارپ داشته و در یک مثال عملی یک Large Dataset را تشکیل و یک Processing ساده در آن داشته باشم . خلاصه که High Performance Csharp برای خودش داستانی است - یک جاهاییش را خودم هم نمی فهمم، آنجاها را شول کردم !

#dotnet
#csharp
#aspdotnet
#programming



https://www.youtube.com/watch?v=LZFdgGY6x5g

CodeKesh

14 Nov, 03:15


ذخیره کردن اطلاعات مهم و کلیدی و حساس کاربران در دیتابیس به صورت رمزنگاری نشده برابر است با انواع خطرهای امنیتی به خطر افتادن کاربران و وجه کاری شرکتها ، در این ویدئو به بررسی چگونگی رمزنگاری داده ها در دات نت 9 خواهیم پرداخت که البته با هر زبان و فریم ورک دیگری هم مشابه آنرا می توان انجام داد

#dotnet
#csharp
#aspdotnet

https://www.youtube.com/watch?v=UyXsgWA4nhc

CodeKesh

09 Nov, 02:35


.NET Conf 2024!

More about Blazor and MAUI are on the way....

CodeKesh

08 Nov, 09:12


در زبان سی شارپ، Deconstructing Objects به شما این امکان را میدهد که مقادیر موجود در یک شیء را به صورت مستقیم به متغیرهای جداگانه اختصاص دهید. این ویژگی به ویژه زمانی مفید است که بخواهید به سرعت به مقادیر خاصی از یک شیء دسترسی پیدا کنید بدون اینکه نیاز به استفاده از ویژگیهای شیء به صورت جداگانه داشته باشید.

#dotnet
#csharp
#programming




https://www.youtube.com/watch?v=ax3sFGVtsCg

CodeKesh

07 Nov, 14:51


در سی شارپ، Anonymous Functions و Lambda Expressions به شما امکان میدهند تا متدهای بدون نام را به سادگی و به صورت مختصر تعریف و استفاده کنید. این قابلیتها به بهبود خوانایی و کاهش کدهای اضافی کمک میکنند.

#dotnet
#code
#csharp
#programming



https://www.youtube.com/watch?v=Iz2Bqo-Dgdo

CodeKesh

06 Nov, 14:58


و حالا مشاهده خواهید کرد چطور می توان با Multicast Delegate به سادگی یک روند اجرای پشت سر هم درست کنید بدون اینکه چیزی را Hardcode کنید.

یک سری متد را می توان به همدیگر Chain کرد و به یکباره دستور اجرای همه را صادر نمود - نکته و قسمت جالب ماجرا این است که میتوان مثلا یکی را قبل را Invoke از زنجیره خارج نمود یا یک روند را بیش از یکبار اجرا نمود !

شاید در ویدئوی بعدی همین را با یک Database درگیر و یک کانسپت Dynamic ایجاد کنم، شاید هم حالش را نداشته باشم !

#dotnet
#csharp
#programming

https://www.youtube.com/watch?v=dPQu-LR866k

CodeKesh

06 Nov, 09:22


در این ویدئو به بررسی Delegate ها در سی شارپ پرداخته شد و با یک مثال ساده بررسی شد Function Pointer یعنی چه و چه کاربردی دارد

#dotnet
#csharp
#programming


https://www.youtube.com/watch?v=MQEC8E_zx6M

CodeKesh

05 Nov, 02:44


بررسی تغییرات کلاسهای Partial در سی شارپ 13


https://www.youtube.com/watch?v=LEq8uGV3GfE

CodeKesh

04 Nov, 15:07


بررسی قابلیت جدید Params در سی شارپ 13

https://www.youtube.com/watch?v=BIvOu_QMy5w

CodeKesh

02 Nov, 02:26


#js #book #pdf #coding #programming

CodeKesh

02 Nov, 02:26


JavaScript The Definitive Guide

#book #pdf #js #programming #coding 👇👇👇👇

CodeKesh

31 Oct, 07:18


افقی برای کارگری و کارهای یدی در هیچ کجای جهان مشهود نمی باشد!.

نسخه جدید اطلس همانطور که در ویدیو بالا قابل مشاهده است، می‌تواند وظایف محول‌شده خود را تکمیل کند و به اتفاقات محیطی واکنش نشان دهد.

CodeKesh

29 Oct, 04:48


Building LLM Powered Applications

#book #LLM #AI #ML

CodeKesh

29 Oct, 04:48


#book #LLM #AI #ML

CodeKesh

19 Oct, 16:44


در یک ویدئوی کوتاه که میشود این ==> https://t.me/CodeForFood/2695

به بررسی Cancellation Token پرداختیم و آنرا در یک Windows Application مورد بررسی قرار دادیم

در این ویدئو به بررسی همین عزیز دل یعنی Cancellation Token در یک WebApi خواهیم پرداخت و با یک مثال ساده و 4 خط کد نشان دادیم چگونه می توان جان سرور را نجات داد و کاری کرد که کاربر هم ما را فحش کش نکند و از شر درخواستی که به هر دلیلی زمان بر شده بتواند نجات پیدا کند

CodeKesh

18 Oct, 15:15


اصولا ایجاد امکان بیخیال شدن یک روند کاری در برنامه نویسی بسیار اهمیت دارد !.

حتی در حوزه UX هم مهم است که کاربر بتواند هر جا عشقش کشید ، دکمه را بزند و هر روندی را درخواست کرده را کنسل کند و بیخیال شود و برود پی کارش !

خلاصه که حوصله ندارم توضیح متنی بدهم، خودتان بروید ببینید در این ویدئو با Cancellation Token چه می توان کرد

اگر هم بلد هستید، این ویدئو را بیخیال شوید - اگر هم بلد نیستید، باز هم می توانید این ویدئو را بیخیال شوید و بروید از آنها که می دانند بپرسید !

CodeKesh

18 Oct, 09:37


گاهی یک متد ساده در یک زبان برنامه نویسی ، سبب کلی صرفه جویی در وقت و زمان خواهد شد

یکی از آنها یک متد ساده به نام TrueForAll می باشد که سبب می شود حالی به حول شما شود و بسیار ساده هم هست

این ویدئو بسیار کوتاه و ساده است ، اصلا آنرا تماشا نکردید هم نکردید، اصلا برایم مهم نیست !!

#csharp #aspdotnet #programming

CodeKesh

13 Oct, 03:24


در این ویدئو، نه تنها در مورد یکی از مباحث پایه در برخورد با یکی از موارد رایج در Code Smell صحبت شده است، بلکه کمی هم در مورد یک تله در مصاحبه های فنی یا پروژه های تستی که سبب Fail شدن شما می گردد صحبت شده است

این مبحث ، فارق از زبان برنامه نویسی تهیه شده و بررسی آن به همه پیشنهاد می گردد

باشد که پند گیرید....
#programming
#DDD
#codesmell

CodeKesh

12 Oct, 14:23


Domain Driven Design is not a type or style of software architecture, nor is it a design or architectural pattern, and it's certainly not a software development methodology.

#DDD

CodeKesh

06 Oct, 12:54


هوش مصنوعی Apple Intelligence احتمالا دوشنبه، ۷ آبان ۱۴۰۳ به صورت عمومی منتشر خواهد شد

CodeKesh

02 Oct, 13:25


#book #pdf #api #web

CodeKesh

30 Sep, 01:07


AI-Assisted Programming for Web and Machine Learning: Improve your development workflow with ChatGPT and GitHub Copilot

#book #pdf #AI #web

CodeKesh

25 Sep, 13:15


البته مانند همیشه، به من چه ولی خیلی وقتها ،

کد شما در Code Review زیر بحث و رد شدن می رود یا وقتی در مصاحبه های فنی و Live Code هستید و یا پروژه تستی ارسال می کنید، پس از چند روز یک ایمیل قشنگ مبتنی بر اینکه شما خیلی خوب هستید و دانش شما هم عالی است ، ولی با عرض تاسف با کاندیدای دیگری ادامه خواهند داد روبرو می شوید !!

در حین برنامه نویسی در Production هم کد کمتر و خواناتر و کم خطر تر از نظر امکان بروز خطا یک فضیلت است، لذا به مواردی ساده مثل بازگرداندن Null دفت کنید !

نکته : شاید اصلا وضعیت کدنویسی واقعی اینقدر سخت گیرانه نباشد ( حداقل در سیستمهای کاری نه چندان قوی و بزرگ و مطلوب) ، ولی وضعیت مصاحبه ها داستان دیگری است که باید اول از آنها موفق خارج شوید تا بتوانید راحت و به صورت یابویی کد نویسی کنید !!

کمی وقت بیشتری صرف کنید و چیز یاد بگیرید و سپس وارد مصاحبه ها شوید، بهتر است تا پشت هم رد شوید، چنان که قبلا گفتم، بزرگی می فرماید : دیر کردن، بهتر از هرگز نکردن است !

CodeKesh

23 Sep, 12:54


ای کسانی که ایمان آورده اید، یا اگر نیاورده اید :

کد تمیز، همیشه به معنی صدها لایه و استفاده از مایکروسرویس و ... نیست، اگر همین نکات ریز را رعایت کنید، کد قابل خواندن خواهد بود و البته اگر به عنوان کارجو قصد دارید پروژه انجام دهید یا در جلسات Live Coding شرکت کنید، شاید موردی ساده مثل همین سبب موفقیت یا به گاراج رفتن شما گردد - باشد که پند گیرید !

در این ویدئوی کوتاه به بررسی چگونگی فرار از Double Negative خواهیم پرداخت - زبان برنامه نویسی مهم نیست ، با هر آشغالی کد می نویسید، این را ببینید

البته در کل که به من چه ؟

CodeKesh

18 Sep, 02:19


صدای دلپذیری نیست !. اصلا چرا باید جلسه برویم ؟. چه کاریه ؟.

CodeKesh

16 Sep, 14:31


در مثلا فرایند لاگین ، در صورت روبرو‌ شدن با میلیونها رکورد ، چه کنیم ؟


https://youtu.be/gUM5ZZSj23E?si=3xzyk5qamOnOpYBs

CodeKesh

11 Sep, 15:12


این ویدئو آموزش DDD نیست، فقط در 6 دقیقه کمی سعی کردم به بررسی دلیل استفاده از DDD بپردازم

فارق از زبان برنامه نویسی ، اگر شکل و معماری پیاده سازی یک Business را به درستی انجام ندهیم، پس از مدتی با کوهی از کد روبرو خواهیم بود که مدیریت، توسعه و حفظ پایداری آن تقریبا غیر ممکن یا بسیار سخت و هزینه بر خواهد بود

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

مخصوصا اگر حوزه Backend هستید ، بدون DDD نمی دانم چطور می خواهید زندگی کنید، البته شاید هم به صورت شانسی بتوانید کار و زندگی کنید و مشکلی پیش نیاید !

لینک همین در یوتوب به امید ادامه دار شدنش :

https://www.youtube.com/@bugandfix

#dotnet #DDD

CodeKesh

11 Sep, 04:59


بررسی IQueryables تاثیرات استفاده صحیح از آن در EF Core!

#EF #database #dotnet #csharp

CodeKesh

08 Sep, 14:58


#dotnet #benchmark #aspdotnet #programming #cloud