C# Programming Guide
191 subscribers
113 photos
9 videos
14 files
102 links
سلام دوستان در این کانال نکاتی در مورد مسائل پیشرفته در سی شارپ ارائه میشه که مربوط به بیش از 15 سال تجربه ی کاری من هست.
ممنون از اینکه دنبال میکنید.
اگر نکات خاصی به ذهنتون رسید با ادمین در میون بذارید
تماس با ادمین:
@Ali_Visual_Studio
Download Telegram
توی سریالایز کردن در grpc طبق معماری کنونی سریالایز کردن به صورت وراثتی خوب پیاده سازی نشده، این یعنی ساپورت میکنه اما برای پیاده سازی به شکل خیلی عجیبی باید در کلاس Base پیاده سازی بشه نه در کلاس فرزند.
برای مثال اگر شما ی کلاس MessageContract داشته باشید و یک کلاس MessageContract<T> که ازش ارث ببره برای اینکه بتونید اونو به صورت جنریک سریالایز کنید حتما باید در کلاس پدر بگید که چه نوع هایی از MessageContract<T> رو ساپورت میکنه این یعنی اگر شما از کلاس فرزند n تا نوع داشته باشید در نتیجه باید روی کلاس پدر n تا اتریبیوت بذارید البته از طریق Fluent هم میتونید اینکار رو بکنید ولی تغییری در روند و معماری اشتباه grpc ایجاد نمی کنه.
یکی از مباحثی که احتمالا ممکنه توی استفاده اش به مشکل بخورید بحث global exception handling هست که توی این حالت اگر middleware داشته باشید نمی تونید همه ی n تا تایپ رو خروجی بگیرید و سریالایز کنید کلی باید کد بزنید و بی معنیه که برای تک تک توابعتون هم try catch بذارید در نتیجه ترجیح میدید توی midleware نوع MessageContract یعنی کلاس پدر رو برگردونید که منطقی هم هست اما توی grpc توی دیسریالایز به مشکل خواهید خورد چون سرویس کلاینت (یا میکروسرویس) میخواد از نوع MessageContract<T> دیسریالایز کنه که باید برای هندل کردنش یک midleware دیگه سمت کلاینت بسازید و ابتدا به MessageContract دیسریالایز کنید سپس دستی اونو تبدیل به MessageContract<T> کنید.
🤪

#OOP
#معماری
#گوگل

@CSharpTips
سلام دوستان عزیزم. مخصوصا اون عزیزانی که در حال پیدا کردن کار (#opentowork) هستند و در واقع الان نمیدونن چطوری باید خودشون رو بروز نگه دارن. یا اگر #کار دارید و بروز هم هستید دوست دارید یک ماجراجویی برای بالابردن کیفیت رزومه‌ی خودتون داشته باشید پیشنهاد میکنم با من همراه باشید. در غیر اینصورت ازتون خواهش میکنم با #لایک و و #کامنت و #اشتراک_گذاری #حمایت کنید.

ما در حال ساخت یک کامیونیتی بزرگ اپن سورس درمورد زیرساخت میکروسرویسی هستیم در صورتی که تمایل داشتید میتونیم باهم همکاری داشته باشیم.
اهداف ما:
1.زنده و فعال نگهداشتن پروفایل گیتهاب شما برای اینکه در آینده رزومه‌ی کاری شمارو افزایش بدیم.
2.آموزش به شما درباره‌ی زیر ساخت‌های میکروسرویس‌ها و بررسی معماری‌های موجود و چالش‌های پیش رو
3.بحث و گفتگو و ایجاد چالش، ساخت پکیج و بالا بردن کیفیت استفاده از میکروسرویس‌ها در آینده برای برنامه نویس ها

بعد از جوین شدن از شما انتظار میره:
1.معماری نرم افزار و OOP و Functional programming یاد بگیرید.
2.کار با nuget و ساخت و آپلود پکیج های خودتون رو یاد بگیرید.
3.کار با انواع بخش های گیتهاب از جمله issue, code review , pull request, project, wiki, actions, tests, code coverage رو یاد بگیرید.

این کامیونیتی کاملا رایگان و اوپن سورس هست و هدفش استخدام شما نیست، اگر بتونید یک ایده هم بدید یا حتی کدهای بقیه رو review کنید یا کامنت و تغییرات بزنید، شما پروفایل گیتهابتون عملا همیشه فعال میمونه و با بالابردن کیفیت اکانت گیتهابتون شما دیگه نیازی نیست دنبال کار بگردید بلکه کار به دنبال شما میگرده و ضمن اینکه عضو کانتریبیوترهای این پروژه شدید، خدارو چه دیدی شاید در آینده یه اتفاق خوب برای هممون افتاد :)

برای شروع میتونید به گروه تلگرامی ما بپیوندید:

https://t.me/easymicroservice

#github
#microservice
#oop
#functionalprogramming
#CSharp
#opensource
👍3