C# Programming Guide
193 subscribers
113 photos
9 videos
14 files
102 links
سلام دوستان در این کانال نکاتی در مورد مسائل پیشرفته در سی شارپ ارائه میشه که مربوط به بیش از 15 سال تجربه ی کاری من هست.
ممنون از اینکه دنبال میکنید.
اگر نکات خاصی به ذهنتون رسید با ادمین در میون بذارید
تماس با ادمین:
@Ali_Visual_Studio
Download Telegram
توی ویژوال استادیو شما توانایی اینو دارید که از قابلیت Multiple target frameworks استفاده کنید و برای پکیج هاتون چندین نسخه از دات نت رو ساپورت کنید و برای هر کدوم کد خاص خودشون رو بزنید.

مثلا وقتی یک قابلیت جدید توی دات نت 6 اضافه میشه پکیج شما باید هم توانایی کامپایل و تست روی نسخه ی 6 رو داشته باشه و هم نسخه ی 2.1 استاندارد، اما اگر میخواهید قسمتی از کد رو تغییر بدید تا از نسخه ی جدید بهرمند بشید باید از شرط های بخصوصی استفاده کنید که توی تصویر دارید می بینید.

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

اینطوری دیگه مشکل کد کلین هم رفع میشه و البته هر وقت بخوام میتونم با قابلیتی که وجود داره همه‌ی کد های همه ی پلتفرم هارو یکجا ببینم تا تشابه و رفع باگ گیجم نکنه.

#برنامه_نویسی
#تخصصی
#دات_نت
#سی_شارپ
#dotnet
#csharp
👍3
توابعی که خروجی Task دارند ولی از کیورد async توشون استفاده نشده در واقع sync هستند.
در مثالی که در تصویر میبینید شاید تصور بشه که متد Example باید در پس زمینه اجرا بشه ولی این اتفاق نمیوفته و کاملا به صورت sync اجرا خواهد شد. این متد در واقع مثل بقیه ی متد های sync فقط یک خروجی Task داره. مثل متد زیر:
static string Example()

پس حواستون باشه که اشتباه نکنید.

#تخصصی
#سی_شارپ
#dotnet
#csharp
#task
#async

@CSharpTips
👍4
Forwarded from Easy Microservices (Ali Yousefi ˢᵒᶠᵗʷᵃʳᵉ ᴰᵉᵛᵉˡᵒᵖᵉʳ)
پکیج EasyMicroservices.Logger یک اینترفیس به شما ارائه میکنه که با استفاده از اون میتونید توی اپلیکیشن خودتون هرچی میخواید رو لاگ کنید.
این اینترفیس میتونه سطوح زیر رو لاگ کنه:

Verbose
Debug
Information
Warning
Error
Fatal

یک اینترفیس هم برای توابع async وجود داره که میتونید ازش استفاده کنید.

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


1 .Log4net
2. Logary
3. Loupe
4. NLog
5. Sentry
6. Serilog


با استفاده از این اینترفیس هر زمان که دوست داشتید میتونید پکیج تامین کننده لاگ خودتون رو با یک خط کد تغییر بدید بدون اینکه زیر ساخت پروژه ی شما دست بخوره.
سورس:
https://github.com/EasyMicroservices/Logger

@easymicroservice
@easymicroservices
@csharptips

#log
#logger
#csharp
#dotnet