C# Programming Guide
193 subscribers
113 photos
9 videos
14 files
102 links
سلام دوستان در این کانال نکاتی در مورد مسائل پیشرفته در سی شارپ ارائه میشه که مربوط به بیش از 15 سال تجربه ی کاری من هست.
ممنون از اینکه دنبال میکنید.
اگر نکات خاصی به ذهنتون رسید با ادمین در میون بذارید
تماس با ادمین:
@Ali_Visual_Studio
Download Telegram
جلسه‌ی ضبط شده‌ی جمعه 2023-01-06
Forwarded from Easy Microservices
سوال:
آیا بعد از اینکه پول رکوئست زدیم به ازای تغییراتی که روی همون برنچ میزنیم باید دوباره پول رکوئست بزنیم؟

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

اگر دوتا تغییر متفاوت برای دوتا تسک متفاوت دارید باید روی فورکتون برنچ متفاوت بزنید اینطوری می‌تونید دوتا پول رکوئست رو از هم تفکیک کنید تا کامیت‌هاتون با هم مخلوط نشن.

#پول_رکوئست
#برچ
#branch
#pullrequest
👍2
Forwarded from Easy Microservices
زیرساخت اولیه ریپازیتوری Database رو هم پیاده سازی کردیم روی Ef Core به زودی توسعه های بیشتری روش اعمال می کنیم اما معماریش رو استخراج کردیم که بقیه ی ساختار دیتابیسی هم پیرو اون معماری باشن.
دوستان عزیز میتونید روی زیرساخت دیتابسی زبان های مختلف و ... هم کار کنید.

https://github.com/EasyMicroservices/Database
بالاخره FolderBrowserDialog رو به WPF اضافه کردن 😭😂
Forwarded from Easy Microservices
خیلی از باگ‌ها و مشکلات اولونیا رفع شده و روی دات نت کور 7 هم قابلیت پیاده سازیش هست.

WPF
روی ویندوز، مک و لینوکس

پروژه‌ی عجیب و بزرگیه...

https://github.com/AvaloniaUI/Avalonia
Forwarded from Easy Microservices
کلی ریپازیتوری ساختم به ازای میکروسرویس هایی که قراره پیاده سازی کنیم.
قراره تک تک میکروسرویس ها رو پیاده سازی کنیم 😉.

وقتی میکروسرویس ها پیاده سازی بشن، اونوقت دیگه به ازای هر پروژه که میخوایم پیاده کنیم به زمان خیلی کمتری نیاز داریم.
جوین شید و ابراز آمادگی کنید، کلی کار داریم.
@easymicroservice
@easymicroservices
👎1
Forwarded from Easy Microservices
پکیج https://github.com/EasyMicroservices/SMS برای کاوه نگار تا به الان پیاده سازی شده.
چندتا چیز برای یادگرفتن هست:
1.یکپارچه سازی زیرساخت پیامکی
2.مجازی سازی httpclient در تست کیس ها با استفاده از پکیج EasyMicroservices/Laboratory و ببینید که چطوری سرویس کاوه نگار تست هاش زده شده بدون اینکه به لایو خود کاوه نگار درخواست بزنه.
3.پیاده سازی یک سیستم پیامکی جدید روی این ساختار چقدر سریع و آسون خواد بود 😉.

دوستانی که میخوان شروع کنن میتونن سیستم های پیامکی دیگری رو که مد نظرشون هست در این ساختار پیاده سازی کنند.
👍2
Forwarded from Easy Microservices
پکیج https://github.com/EasyMicroservices/Mapper هم برای AutoMapper تا به الان پیاده سازی شده. اگر علاقه مند بودید می‌تونید سر بزنید و issue های مد نظرتون رو براتی دیگر پکیج ها و یا توسعه های جدید رو اعمال کنید.
👍2
Forwarded from Easy Microservices
سلام بچه ها روزتون بخیر.
تا الان حدود 5 تا میکروسرویس رو به مرحله ی استفاده‌ی اولیه رسوندیم و اولین پروژه‌ی لایومون رو داریم روی این بستر پیاده سازی میکنیم که بزودی خبراشو بهتون میرسونیم که چی شد و چیکار کردیم. همچنان دوستانی که جوین شدن دارن با قدرت و سرعت زیر سیستم هارو توسعه میدن، هرچی زودتر به ما جوین شید❤️.
اگریگیتورها که سورس اصلی و داخلی شرکت ها هستن رو اوپن سورس نمی‌کنیم. چون پروژه‌های بزینسی هستن ولی ارائه اش رو بهتون خواهیم داد. اما تجمیع کردن میکروسرویس‌ها و ساخت یک پروژه کار خیلی آسونی میشه.
حمایتمون کنید تا دنیای کار با میکروسرویس رو برای همه آسون کنیم👌.

@easymicroservices
👍4
Forwarded from Easy Microservices
39 پکیج تا الان توی این زیر ساخت پیاده سازی و ریلیز شده.

@easymicroservices
@easymicroservice
@CsharpTips
#تخصصی

در معماری نرم افزار یکی از مولفه‌های مهم «حذف وابستگی» هست.
چطوری بفهمیم معماری نرم افزاری که پیاده سازی کردیم از نظر «حذف وابستگی» داره درست کار میکنه؟
تنها با طرح سوال می‌تونید متوجه معماری درست برای بخش «حذف وابستگی» بشید.
برای مثال:
از چه ابزاری برای کشینگ استفاده می‌کنید؟
پاسخ: Redis
آیا با بسته شدن Redis بخشی از سیستم شما از کار میوفته؟
در صورتی که پاسخ به این سوال بله باشه نشان از ضعف معماری در بخش «حذف وابستگی» هست.
سوال بعدی:
از چه ابزاری برای Api gateway استفاده می‌کنید؟
پاسخ: Ocelot
آیا با از کار افتادن Api gateway ها، بخشی از سیستم شما از کار میوفته؟
پاسخ به این سوال هم مانند سوال قبلی به شما کمک می‌کنه تا راه حل هایی رو برای حذف وابستگی ها در معماری نرم افزار خودتون پیدا کنید.

حذف وابستگی ها در معماری نرم افزار کمک می‌کنه تا اپلیکیشن شما با کمترین خطا در ارائه‌ی خدمات به مشتری به کارش ادامه بده.

#وابستگی
#معماری
#معماری_نرم_افزار

@CSharpTips
👍3
Forwarded from Easy Microservices
اگر شما نسخه های متعددی برای پکیج خودتون از دات نت دارید اما این نسخه ها با یک نسخه ثابت از پکیج سازگار نیستند. شما می‌تونید با اضافه کردن شرط در فایل csproj خودتون توسط این شرطها نسخه‌های متفاوتی از پکیج‌هارو به ازای هر نسخه از دات نت نصب کنید.
اینطوری پروژه‌ی شما مالتی‌پلتفرم میشه (لازم نیست پلتفرم‌های دیگه رو به خاطر کانفیلیت پکیج‌ها حذف کنید) و برای نسخه‌های جدیدتر همیشه پکیج‌های بروز شده دارید و نسخه‌های قدیمی تر با پکیج‌های قدیمی‌تر کار میکنن.

#nuget
#package
#packages
#multipleplatform
#multiplatform

@csharptips
@easymicroservices
Forwarded from Easy Microservices
نحوه‌ی استفاده از پکیج سریالایز در Asp core رو در تصویر مشاهده می‌کنید.
شما با نصب پکیج EasyMicroservices.Serialization.DependencyInjection سپس نصب یکی از Provider های زیر میتونید به انتخاب خودتون از پکیج سریالایز Easy microservice استفاده کنید:
1.EasyMicroservices.Serialization.Newtonsoft.Json
2.EasyMicroservices.Serialization.System.Text.Json
3.EasyMicroservices.Serialization.BinaryGo
4.EasyMicroservices.Serialization.MessagePack
5.EasyMicroservices.Serialization.MemoryPack
6.EasyMicroservices.Serialization.System.Text.Xml
7.EasyMicroservices.Serialization.YamlDotNet

با اینکار لازم نیست بعد از هربار تغییر پکیج سریالایز، کدهاتون رو تغییر بدید.

@csharptips
@easymicroservices
👍1
C# Programming Guide
#سی_شارپ #تست #آزمایشگاه یکی از ابزارهای تست ابزار Mock کردن تست هاست، ابزارهایی توی سی شارپ و زبان های برنامه نویسی وجود دارن که شما میتونید باهاشون مدل های آزمایشگاهی خودتون رو کمی به واقعیت نزدیک کنید و برای پروژه خودتون تست بنویسید. اما آیا این تست ها…
چند سال پیش این پست رو زدم و این نکات رو متذکر شدم و تازه در نسخه‌های اخیر در ویژوال استودیو شما تازه در مورد فایل‌های .http دارید می‌شنوید. و اینکه چطوری کار میکنن و به چه علتی این فیچر داره اضافه میشه.

با ایده‌های ما همراه باشید ما همیشه سعی کردیم چند قدم جلوتر باشیم.

#csharptips
Forwarded from Easy Microservices
پکیج ServiceContracts هدفش اینه که خروجی های سرویس های شمارو یکپارچه، زیبا و مدیریت کنه.
استفاده از این پکیج خیلی آسونه فقط کافیه نصبش کنید و خروجی سرویس هاتون رو از این نوع بذارید.

اطلاعات خطا و stacktrace برای بحث دیباگینگ و این مسائل توش هندل شدست.

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

پذیرای هرگونه ایده و نظر هستیم.

اطلاعات بیشتر:

https://github.com/EasyMicroservices/ServiceContracts


@csharptips
@easymicroservices
👍1