.NET Fun
1.78K subscribers
84 photos
58 videos
3 files
179 links
Let's Connect!

Linkedin: https://www.linkedin.com/in/babak-taremi

Github: https://github.com/babaktaremi

Twitter: https://twitter.com/BabakTaremi

Telegram: @bob_tm

دانلود دوره های برنامه نویسی کاملا رایگان:
@DotNetFunBot
Download Telegram
Media is too big
VIEW IN TELEGRAM
همیشه کار با فایل یکی از پیچیده ترین و متداول ترین چالش ها بوده ، اینکه فایل کاربر (عکس ، فیلم و...) رو کجا ذخیره کنیم، چجوری دسترسی به فایل رو مدیریت کنیم ، چجوری لینک دانلود با تاریخ انقضا بسازیم، اگه روی کانتینر دیپلوی کرده باشیم و بعد دیپلوی مجدد فایل ها بپره چیکار کنیم؟ Minio همه این دغدغه های ما رو برطرف میکنه، کار باهاش خیلی راحته و کلاینت سی شارپی خیلی خوبی داره. در این ویدیو به بررسی Minio می پردازیم و توی یک پروژه ASP NET Core Web API توی محیطی نزدیک به پروداکشن از اون استفاده میکنیم

Repo : https://github.com/babaktaremi/Minio.Example

Join: Https://t.iss.one/DotNetIsFun
کار های انتشار جدیدترین قسمت از سری پادکست های Code Lodge هم انجام شد. حتما توی چنل عضو بشید تا اولین نفری باشید که از انتشار قسمت های جدید پادکست باخبر میشید

Code Lodge Channel: https://t.iss.one/CodeLodge
یکی از کارایی که موقع هایی که حوصلم سر میره انجام میدم بنچمارک گرفتن توی سناریو های مختلف هست. اینجام یه بنچمارک روی ادیت ساده تصویر توی دوتا سناریو Normal و Parallel انجام دادم که نتیجش رو میبینید. اگه براتون جالبه توی کامنت های این پست بگید که راجبش یه ویدیو بسازم.

Join: https://t.iss.one/DotNetIsFun
خیلی از مواقع لازمه که از فیچری که داریم توسعه میدیم Stress Test بگیریم و ببینیم سیستم تحت فشار چجوری عمل میکنه و مثلا استفاده از EF Core و یا Redis Cache چجوری پرفورمنس رو تحت تاثیر قرار میده ( رو پروژه ای که الان مشغول کار هستم این قضیه خیلی مهمه. چون نزدیک به ۲ میلیون کاربر فعال و ۱۲ میلیون ریکوئست توی طول روز رو هندل میکنه) . ابزار های متعددی برای اینکار هست ولی شخصا K6 رو به همه چی ترجیح میدم. سناریو نویسی سرراست و راحتی داره و اطلاعات خوبی هم توی گزارشش هست. به زودی یه ویدیو اموزشی راجب Stress Testing با K6 توی کانال قرار میگیره.

Join: https://t.iss.one/DotNetIsFun
Forwarded from CodeLodge
در این قسمت از سری پادکست های Code Lodge، به موضوع میکرومنیجمنت در تیم‌های توسعه نرم‌افزار می‌پردازیم. میکرومنیجمنت، یا مدیریت دقیق و زیرذره‌بینی کارکنان، می‌تواند تأثیرات منفی و جبران ناپذیری بر روحیه اعضای تیم و عملکرد آنها داشته باشد. در این اپیزود، به بررسی و شناسایی ریشه اصلی این رویکرد مدیریتی می‌ پردازیم. همچنین، سعی میکنیم به درک بهتر و نزدیکتری از تأثیرات و چالش‌های وحشتناک میکرومنیجمنت برسیم.
در این اپیزود، مسئله و عارضه را موشکافی کردیم، و در اپیزود بعدی راهکارهایی برای حل این مسئله از سمت اعضای تیم و سازمان خواهیم پرداخت.

میزبان های شما در این اپیزود :
بابک طارمی
ایمان صفری
مسعود بیگی

این ایپزود را می توانید از طریق لینک های زیر هم بشنوید :

- 🔗Spotify

- 🔗Amazon

- 🔗Castbox

-🔗Apple Podcasts

-🔗 Shenoto(بدون نیاز به فیلترشکن)


#Codelodge
#Management #MicroManagement #LeaderShip
#softwareDeveloper
#SoftwareEngineer
@codeLodge
Media is too big
VIEW IN TELEGRAM
استرس تست یکی از روش‌های تست نرم‌افزار است که معمولاً برای بررسی مقاومت و پایداری سیستم‌ها تحت شرایط فشار و بار زیاد استفاده می‌شود. در واقع با استرس تست میخوایم ببینیم که اپلیکیشنی که توسعه دادیم در دنیای واقعی چه تعداد ریکوئست رو میتونه هندل کنه و چه کار هایی میتونیم بکنیم که این تعداد ریکوئست رو افزایش بدیم و پرفورمنس بهتری داشته باشیم.
در این ویدیو به بررسی ابزار K6 Stress Test پرداختیم و از یک Web API Application رو که از EF Core استفاده میکنه تست گرفتیم. بعد با یه تغییر کوچیک، پرفورمنس رو ۲۰ درصد افزایش دادیم

Join: https://t.iss.one/DotNetIsFun
فیچر Output Caching به طور ناقص توی ASP NET Core 7 معرفی شد ( ناقص از این جهت که فقط از Memory Cache پشتیبانی میکرد)
خدا رو شکر این فیچر توی ASP NET Core 8 به بلوغ کامل رسید. این هفته در موردش یه ویدیو آموزشی خواهیم داشت

Join: https://t.iss.one/DotNetIsFun
Media is too big
VIEW IN TELEGRAM
فیچر Output Caching که توی ASP NET Core 7 معرفی شد جزو اون دسته از فیچر های لحظه آخری بود. فقط از مموری کش پشتیبانی میکرد که این قضیه چالش ها و مشکلات خاص خودش رو بوجود میاورد. ولی توی ASP NET Core 8 یک آپدیت خیلی مهم روی Output Caching اومد که توی این ویدیو بهش میپردازیم

Join: https://t.iss.one/DotNetIsFun
قدرت Expression رو توی سی شارپ دست کم نگیرید! به کمک Expression ها کار های خیلی باحالی میتونیم بکنیم که یکی از اون کارها ساختن Specification هست. توی این هفته یک ویدیو راجب Expression ها و Specification Pattern خواهیم داشت. منتظر باشید😉
Join: https://t.iss.one/DotNetIsFun
Media is too big
VIEW IN TELEGRAM
در این‌ ویدیو به بررسی Specification Pattern پرداختیم. الگویی که بوسیله اون میتونیم شرایط و منطق های پیچیده بیزنسی رو ترکیب کنیم، جداگانه ویرایش کنیم و یا از یک Specification چند جای مختلف استفاده کنیم. در این ویدیو ساختار کلاس Specification رو از صفر به وسیله Expression ها در سی شارپ می سازیم و سپس توی EF Core ازش استفاده میکنیم.

پ‌ن: موقع ترکیب Expression ها من کوتاه یه اشاره کردم که چرا پارامتر رو از Left Expression پاس دادیم.این یک اجبار هست و اگر غیر این عمل کنیم Expression هامون درست کار نمیکنن، ولی چرا؟ جواب کاملش رو تونستید زیر این پست بگید😉

Join : https://t.iss.one/DotNetIsFun
اولین ورژن استیبل بلیزور که با NET Core 3.1 معرفی شد هیچی نداشت. کامیونیتیش داشت تازه جون میگرفت و ما عملا ۸۰ درصد وابسته جاوا اسکریپت بودیم. همون موقع روی یکی از پروژه های شخصیم دغدغم استفاده از گوگل کپچا بود و طبق معمول دیدم هیچ معادلی براش توی بلیزور نیست. سریع شروع کردم به نوشتن یه پکیچ براش و دوستم سجاد آفاقی هم که دستی توی فوتوشاپ داشت یه لوگو براش ساخت. هیچ وقت یادم نمیره که ورژن ۱ این پکیج رو چقدر ضایع و فقط با توجه به نیاز خودم نوشته بودم( ولی کار رو راه مینداخت). الان ورژن ۴ اش هست و نزدیک به ۲۲ هزار بار دانلود شده و به جرئت میتونم بگم کامل ترین پکیچ برای گوگل کپچا توی بلیزور هست. دوست داشتید یه نگاهی بهش داشته باشید. ۱۰۰ ستاره شدن این پروژه یکی از اهدافی هست که دارم

https://github.com/babaktaremi/GoogleCaptchaComponent

Join:https://t.iss.one/DotNetIsFun
بنظر من ، اگه بخواهیم یه چیزی رو کامل یاد بگیریم باید بدون هیچ پکیج یا لایبرری خارجی اون رو توی یه پروژه شخصی پیاده کنیم. نمونش هم Outbox pattern . درسته که Masstransit این پترن رو داخل خودش داره، اما برای درک بهترش باید یه نمونه خیلی ساده از outbox pattern رو بدون اون پیاده سازی کرد که این هفته بهش میپردازیم

Join: https://t.iss.one/DotNetIsFun
یه جایگزین جذاب برای Swagger داریم! ویدیوی آموزشش فردا (شنبه) ساعت 11 صبح منتشر میشه.

Join: https://t.iss.one/DotNetIsFun
Media is too big
VIEW IN TELEGRAM
همونطور که میدونید، با اومدن NET 9 کلا swagger حذف میشه و توی تمپلیت های خود ASP NET Core دیگه خبری ازش نیست و باید از لایبرری خود مایکروسافت برای OpenApi documentation استفاده کرد که درحال حاضر هیچ پلنی برای توسعه UI Panel براش نیست. پروژه Swagger هم الان نزدیک به دوسال هست که کلا رها شده و دیگه maintain نمیشه. پنل swagger یکی از پرکاربردی ترین قسمت های web api هست که تست و توسعه رو برای ما و برنامه نویس های فرانت خیلی راحتتر میکنه. توی این ویدیو به بررسی و معرفی یک جایگزین خیلی خوب برای swagger ui میپردازیم که خیلی راحت اون رو میتونیم با OpenApi ادغام کنیم.

پ‌ن: NSwag نیست😁

join: https://t.iss.one/DotNetIsFun
قسمت جدید از سری پادکست های Code Lodge رسید . در این قسمت دوتا از دوستای با سواد و خوبم، رامبد و بهنیا، در مورد تست نویسی صحبت میکنن. این اپیزود نکاتی داشت که بشخصه برای خود من بسیار جالب بود. برای لینک های این قسمت به کانال Code Lodge مراجعه کنید.

لینک کانال:
https://t.iss.one/CodeLodge
Forwarded from CodeLodge
مهاجرت از کد بیس قدیمی/ چرا و چگونه؟

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

کی و کجا واقعا نیاز به Migration هست (دلایل)؟
اهمیت Migration برای سرویس هایی که بهش نیاز دارند
چه روش هایی برای Migration هست؟
مراحل و فرآیند
چالش ها و راهکارها
پرسش و پاسخ

سه شنبه 1 خرداد 1403 / ساعت 7 تا 8 عصر

میزبانان شما در این برنامه : محمدکریمی، نبی کرم پور، بابک طارمی، ایمان صفری، بهنیا آزاد، رامبد سواحلی مقدم، مسعود بیگی

برای ثبت نام رایگان در میت اینجا کلیک کنید

#CodeLodge
#Migration #Legacy #CodeBase
@CodeLodge
اولین دورهمی آنلاین Code Lodge ساعاتی پیش برگزار شد. از همه‌تون بابت استقبال گرمتون ممنونیم! شروعی قوی برای مسیری هیجان‌انگیزی که در تیم Code Lodge در نظر گرفتیم. حتماً Code Lodge رو توی شبکه‌های اجتماعی دنبال کنید تا از اتفاقات جذابی که قراره بیفته جا نمونید.

LinkedIn: https://www.linkedin.com/company/codelodge/

Telegram: https://t.iss.one/CodeLodge

Event Calendar: https://lu.ma/CodeLodge
خب توی سی شارپ ۱۳ تایپ جدید داریم! با اومدن Extension Types دیگه فقط محدود به نوشتن Extension Method نیستیم و میتونیم یک فیلد یا پراپرتی رو بعنوان Extension برای یک تایپ خاص تعریف کنیم. حتی میتونیم یک تایپ خاص رو Implicit طور از یک تایپ دیگه بعنوان اکستنشن تعریف کنیم. سینتکس عجیبی داره ولی بنظرم خیلی کاربردی میتونه باشه:

public implicit extension PersonExtension for Person
{
public bool IsLead
=> this.Organization
.Teams
.Any(team => team.Lead == this);
}



Join: https://t.iss.one/DotNetIsFun
کلیپ مربوط به Outbox Pattern هم ضبط شد و فردا منتشر میشه ( حدودای ساعت ۱۱ صبح) سعی کردم توی یک ساعت هم Outbox Pattern رو توضیح داده باشم و هم اون رو کامل توی یک پروژه پیاده سازی کرده باشیم. ( جدا از بحث کانال و برنامه نویسی، بردن تیم محبوبت یه جون به جونات اضافه میکنه😁😁❤️)

Join: https://t.iss.one/DotNetIsFun
Media is too big
VIEW IN TELEGRAM
به کمک Outbox Pattern میتونیم این تضمین رو بدیم که event ها از دست نمیرن و حتی اگه سرویس مربوط به اون event مشکل داشته باشه، ما اون رو جایی ثبت کردیم و میتونیم روی Retry داشته باشیم و اینجوری سرویسی قابل اطمینان خواهیم داشت که موقع بوجود اومدن مشکل در سرویس های دیگه، به کار خودش بدون مشکل ادامه خواهد داد و فلو های نصفه و نیمه درش بوجود نخواهد اومد. در این ویدیو حدودا یک ساعته به بررسی این پترن میپردازیم و به کمک EF Core و MediatR این پترن رو از صفر پیاده سازی میکنیم
سرفصل ها:

- Project Structure
- Detecting the problem
- Creating Outbox Entity Using EF Core and Conversion
- Registering Outbox messages
- Creating Outbox message handler
- Creating Outbox message publisher
- Automating message publishing

Code: https://github.com/babaktaremi/Outbox.Pattern.Sample

پ‌ن: اگه از این قسمت خوشتون اومد با دادن ⭐️به پروژه ای که لینکش رو گذاشتم حمایت کنید.

Join: https://t.iss.one/DotNetIsFun
بات دانلود دوره های پولی رو که یادتون نرفته؟؟ یه دوره خیلی خفن راجب گیت تحت عنوان Git Branching And Merging از Pluralsight داره داخلش آپلود میشه که رایگان میتونید دانلود کنید.

آدرس بات: @DotNetFunBot