پکیج 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.
👍3
Easy Microservices
Photo
ارثبری در رابط کاربری چگونه است؟ آیا قابلیت پیادهسازی دارد؟
ارثبری در رابط کاربری مانند برنامهنویسی نیست و پیادهسازی آن بهمراتب دشوارتر است، چرا که ابزارهای رابط کاربری هنوز در حال توسعهاند و به آن بلوغ نرسیدهاند که بتوان روی آنها معماری دقیق و کاملی را پیاده کرد.
امروز ما میخواهیم یک نمونه از ارثبری در رابط کاربری را به شما نشان دهیم تا ببینید که ما در Easy Microservices چگونه این موضوع را حل میکنیم.
تصور کنید که ما دو UI Kit قدرتمند MudBlazor و Radzen را در اختیار داریم. هر یک از این کامپوننتها خصوصیات خود را دارند؛ به طور مثال یک دکمه در MudBlazor با نام MudButton و در Radzen با نام RadzenButton معرفی شده است و هر کدام ویژگیهای خاص خود را دارند.
حال اگر به وابستگیها بپردازیم، فرض کنید کل پروژه را با Radzen توسعه دادهایم و بعد متوجه شویم که پشتیبانی از RTL (متن چپ-بهراست) را ندارد، دیگر چه عملی باید انجام داد؟ آیا باید وقت زیادی صرف کنیم تا کل پروژه را به MudBlazor تبدیل کنیم؟
راهحلی که ما ارائه کردهایم به این ترتیب است که ما یک کنترل به نام EasyButton میسازیم و سپس آن را برای Radzen و MudBlazor پیادهسازی میکنیم، دقیقاً همان کاری که در ارثبری دو کلاس از یک interface انجام میدهیم.
در نتیجه، اگر سیاستمان تغییر کند، تنها کافی است که چند خط کد را تغییر دهیم و بین UI Kits جابهجا شویم.
شما میتوانید نمونه پروژه سادهای که من به صورت پیادهسازی شده در اینجا توصیف کردم را در گیتهاب مشاهده کنید:
https://github.com/EasyMicroservices/UI-Kits/
#inheritance
#csharp
#blazor
#microcomponent
#easymicroservices
@easymicroservice
@easymicroservices
@csharptips
ارثبری در رابط کاربری مانند برنامهنویسی نیست و پیادهسازی آن بهمراتب دشوارتر است، چرا که ابزارهای رابط کاربری هنوز در حال توسعهاند و به آن بلوغ نرسیدهاند که بتوان روی آنها معماری دقیق و کاملی را پیاده کرد.
امروز ما میخواهیم یک نمونه از ارثبری در رابط کاربری را به شما نشان دهیم تا ببینید که ما در Easy Microservices چگونه این موضوع را حل میکنیم.
تصور کنید که ما دو UI Kit قدرتمند MudBlazor و Radzen را در اختیار داریم. هر یک از این کامپوننتها خصوصیات خود را دارند؛ به طور مثال یک دکمه در MudBlazor با نام MudButton و در Radzen با نام RadzenButton معرفی شده است و هر کدام ویژگیهای خاص خود را دارند.
حال اگر به وابستگیها بپردازیم، فرض کنید کل پروژه را با Radzen توسعه دادهایم و بعد متوجه شویم که پشتیبانی از RTL (متن چپ-بهراست) را ندارد، دیگر چه عملی باید انجام داد؟ آیا باید وقت زیادی صرف کنیم تا کل پروژه را به MudBlazor تبدیل کنیم؟
راهحلی که ما ارائه کردهایم به این ترتیب است که ما یک کنترل به نام EasyButton میسازیم و سپس آن را برای Radzen و MudBlazor پیادهسازی میکنیم، دقیقاً همان کاری که در ارثبری دو کلاس از یک interface انجام میدهیم.
در نتیجه، اگر سیاستمان تغییر کند، تنها کافی است که چند خط کد را تغییر دهیم و بین UI Kits جابهجا شویم.
شما میتوانید نمونه پروژه سادهای که من به صورت پیادهسازی شده در اینجا توصیف کردم را در گیتهاب مشاهده کنید:
https://github.com/EasyMicroservices/UI-Kits/
#inheritance
#csharp
#blazor
#microcomponent
#easymicroservices
@easymicroservice
@easymicroservices
@csharptips
GitHub
GitHub - EasyMicroservices/UI-Kits
Contribute to EasyMicroservices/UI-Kits development by creating an account on GitHub.
👍3🔥3
سرچ فازی Fuzzy Search
یکی از رفتارهای پرتکرار کاربران در اپلیکیشنها و سیستمهای جستجو، اینه که خیلی وقتها کل عبارتی که دنبالش هستند تایپ نمیکنند، یا کلمهای رو اشتباه تایپ میکنن. اما نتیجه؟
صفحهای خالی از داده، یا پیشنهادهایی که ربطی به نیت واقعی کاربر ندارن.
اینجا بود که مسئله شکل گرفت:
چطور میتونیم تجربهی جستجو رو هوشمندتر کنیم؟
بهجای اینکه از کاربر انتظار دقت ماشینی داشته باشیم، سیستم رو طوری طراحی کنیم که خودش نیت کاربر رو درک کنه.
از همین نگاه، پروژهی Fuzzy Search متولد شد.
برای مطالعه بیشتر و ریپو گیت هاب لینک زیر ببینید
https://www.linkedin.com/feed/update/urn:li:activity:7383751931095232512/?commentUrn=urn%3Ali%3Acomment%3A(activity%3A7383751931095232512%2C7383772897057734657)&dashCommentUrn=urn%3Ali%3Afsd_comment%3A(7383772897057734657%2Curn%3Ali%3Aactivity%3A7383751931095232512)#
یکی از رفتارهای پرتکرار کاربران در اپلیکیشنها و سیستمهای جستجو، اینه که خیلی وقتها کل عبارتی که دنبالش هستند تایپ نمیکنند، یا کلمهای رو اشتباه تایپ میکنن. اما نتیجه؟
صفحهای خالی از داده، یا پیشنهادهایی که ربطی به نیت واقعی کاربر ندارن.
اینجا بود که مسئله شکل گرفت:
چطور میتونیم تجربهی جستجو رو هوشمندتر کنیم؟
بهجای اینکه از کاربر انتظار دقت ماشینی داشته باشیم، سیستم رو طوری طراحی کنیم که خودش نیت کاربر رو درک کنه.
از همین نگاه، پروژهی Fuzzy Search متولد شد.
برای مطالعه بیشتر و ریپو گیت هاب لینک زیر ببینید
https://www.linkedin.com/feed/update/urn:li:activity:7383751931095232512/?commentUrn=urn%3Ali%3Acomment%3A(activity%3A7383751931095232512%2C7383772897057734657)&dashCommentUrn=urn%3Ali%3Afsd_comment%3A(7383772897057734657%2Curn%3Ali%3Aactivity%3A7383751931095232512)#
Linkedin
#userexperience #productdesign #fuzzysearch #ux #customerdrivendevelopment #dotnet #csharp #opensource | Mahdi Delzendeh Sarfe…
از نیاز کاربر تا تجربهای هوشمند در جستجو 🧩
بهترین ویژگیهای محصول، نتیجهی درک عمیق از رفتار و نیاز کاربرند — نه فقط کد و الگوریتم.
یکی از رفتارهای پرتکرار کاربران در اپلیکیشنها و سیستمهای جستجو، اینه که خیلی وقتها کل عبارتی که دنبالش هستند تایپ نمیکنند،…
بهترین ویژگیهای محصول، نتیجهی درک عمیق از رفتار و نیاز کاربرند — نه فقط کد و الگوریتم.
یکی از رفتارهای پرتکرار کاربران در اپلیکیشنها و سیستمهای جستجو، اینه که خیلی وقتها کل عبارتی که دنبالش هستند تایپ نمیکنند،…
👍4❤3⚡1
💡 ساخت View در MongoDB با استفاده از Aggregation Pipeline
گاهی وقتها در MongoDB نیاز داریم دادهها رو به شکل خاصی نمایش بدیم — بدون اینکه دادهی جدیدی ذخیره کنیم یا ساختار اصلی کالکشنهامون رو تغییر بدیم.
برای مطالعه بیشتر لینک زیر ببینید
https://www.linkedin.com/feed/update/urn:li:activity:7385605640624259072/
گاهی وقتها در MongoDB نیاز داریم دادهها رو به شکل خاصی نمایش بدیم — بدون اینکه دادهی جدیدی ذخیره کنیم یا ساختار اصلی کالکشنهامون رو تغییر بدیم.
برای مطالعه بیشتر لینک زیر ببینید
https://www.linkedin.com/feed/update/urn:li:activity:7385605640624259072/
Linkedin
#mongodb #backenddevelopment #nosql #database #aggregation #csharp #dotnet #developers | Mahdi Delzendeh Sarfe Jo
💡 ساخت View در MongoDB با استفاده از Aggregation Pipeline
گاهی وقتها در MongoDB نیاز داریم دادهها رو به شکل خاصی نمایش بدیم — بدون اینکه دادهی جدیدی ذخیره کنیم یا ساختار اصلی کالکشنهامون رو تغییر بدیم.
اینجاست که Viewها به کمک میان.
🔹 View در…
گاهی وقتها در MongoDB نیاز داریم دادهها رو به شکل خاصی نمایش بدیم — بدون اینکه دادهی جدیدی ذخیره کنیم یا ساختار اصلی کالکشنهامون رو تغییر بدیم.
اینجاست که Viewها به کمک میان.
🔹 View در…
❤2👌2🙏1