توی ویژوال استادیو شما توانایی اینو دارید که از قابلیت Multiple target frameworks استفاده کنید و برای پکیج هاتون چندین نسخه از دات نت رو ساپورت کنید و برای هر کدوم کد خاص خودشون رو بزنید.
مثلا وقتی یک قابلیت جدید توی دات نت 6 اضافه میشه پکیج شما باید هم توانایی کامپایل و تست روی نسخه ی 6 رو داشته باشه و هم نسخه ی 2.1 استاندارد، اما اگر میخواهید قسمتی از کد رو تغییر بدید تا از نسخه ی جدید بهرمند بشید باید از شرط های بخصوصی استفاده کنید که توی تصویر دارید می بینید.
اما دغدغهی من که سالهاست برای پکیج هام با این قابلیت کار میکنم اینه که کدهام رو ناخوانا میکنه و از کسانی که در ایده گذاری های مایکروسافت کار میکنن تقاضا دارم یک قابلیت اضافه کنند که توی کادر بالا وقتی من انتخابش میکنم تمامی #if ها رو حذف کنه و فقط کد مخصوص اون پلتفرم رو نشون بده.
اینطوری دیگه مشکل کد کلین هم رفع میشه و البته هر وقت بخوام میتونم با قابلیتی که وجود داره همهی کد های همه ی پلتفرم هارو یکجا ببینم تا تشابه و رفع باگ گیجم نکنه.
#برنامه_نویسی
#تخصصی
#دات_نت
#سی_شارپ
#dotnet
#csharp
مثلا وقتی یک قابلیت جدید توی دات نت 6 اضافه میشه پکیج شما باید هم توانایی کامپایل و تست روی نسخه ی 6 رو داشته باشه و هم نسخه ی 2.1 استاندارد، اما اگر میخواهید قسمتی از کد رو تغییر بدید تا از نسخه ی جدید بهرمند بشید باید از شرط های بخصوصی استفاده کنید که توی تصویر دارید می بینید.
اما دغدغهی من که سالهاست برای پکیج هام با این قابلیت کار میکنم اینه که کدهام رو ناخوانا میکنه و از کسانی که در ایده گذاری های مایکروسافت کار میکنن تقاضا دارم یک قابلیت اضافه کنند که توی کادر بالا وقتی من انتخابش میکنم تمامی #if ها رو حذف کنه و فقط کد مخصوص اون پلتفرم رو نشون بده.
اینطوری دیگه مشکل کد کلین هم رفع میشه و البته هر وقت بخوام میتونم با قابلیتی که وجود داره همهی کد های همه ی پلتفرم هارو یکجا ببینم تا تشابه و رفع باگ گیجم نکنه.
#برنامه_نویسی
#تخصصی
#دات_نت
#سی_شارپ
#dotnet
#csharp
👍3
توابعی که خروجی Task دارند ولی از کیورد async توشون استفاده نشده در واقع sync هستند.
در مثالی که در تصویر میبینید شاید تصور بشه که متد Example باید در پس زمینه اجرا بشه ولی این اتفاق نمیوفته و کاملا به صورت sync اجرا خواهد شد. این متد در واقع مثل بقیه ی متد های sync فقط یک خروجی Task داره. مثل متد زیر:
پس حواستون باشه که اشتباه نکنید.
#تخصصی
#سی_شارپ
#dotnet
#csharp
#task
#async
@CSharpTips
در مثالی که در تصویر میبینید شاید تصور بشه که متد 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
این اینترفیس میتونه سطوح زیر رو لاگ کنه:
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
GitHub
GitHub - EasyMicroservices/Logger: Wrapper for logging
Wrapper for logging. Contribute to EasyMicroservices/Logger development by creating an account on GitHub.