مصدر مفتوح بلغة C#: 7 مستودعات على GitHub ستغير شفرتك البرمجية

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

المصدر المفتوح بلغة C#: أفضل مستودعات GitHub لمطور .NET

\n\n

عندما نتحدث عن المصدر المفتوح، أول ما يتبادر إلى الذهن هو Python أو JavaScript أو Go. لكن C#؟ يعتقد الكثيرون خطأً أن نظام .NET البيئي مغلق ومملوك. في الواقع، المصدر المفتوح بلغة C# يزدهر، وGitHub مليء حرفيًا بمشاريع مذهلة. من الأطر القوية إلى الأدوات المساعدة الأنيقة، هناك كل ما يلهم حتى أكثر المطورين خبرة.

\n\n

في هذه المقالة، لن نقوم فقط بسرد الروابط. سنقوم بتحليل أفضل مستودعات GitHub بلغة C# مع أمثلة حقيقية للشفرات البرمجية، ونوضح كيفية استخدامها، ونشرح لماذا يستحق كل منها اهتمامك. إذا كنت تكتب بلغة C# أو بدأت للتو في الغوص في عالم .NET، فهذه المادة من أجلك.

\n\n

لماذا يجب دراسة مشاريع المصدر المفتوح بلغة C#؟

\n\n

العمل مع شفرة الآخرين هو أفضل طريقة لصقل المهارات. ترى كيف يتم حل المشكلات الحقيقية، وما هي الأنماط المستخدمة، وكيف يتم تحسين الأداء. بالإضافة إلى ذلك، مستودعات C# على GitHub هي كنز من الحلول الجاهزة. لماذا إعادة اختراع العجلة بينما يمكنك استخدام مكتبة موثوقة؟

\n\n

دعنا نغوص في أفضل المشاريع. لقد اخترت 7 مستودعات تغير قواعد اللعبة حقًا.

\n\n

1. Humanizer — تحويل الشفرة إلى لغة بشرية

\n\n

هل سبق لك أن كتبت: DateTime.Now.AddDays(-3).ToShortDateString() وفكرت: "كيف يمكنني جعل هذا أجمل؟" Humanizer هي مكتبة تفعل ذلك بالضبط. إنها تحول الأرقام والتواريخ والتعدادات وحتى البايتات إلى سلاسل نصية قابلة للقراءة.

\n\n

إليك كيف يبدو ذلك في الشفرة:

\n\n
using Humanizer;\n\nint number = 1234567;\nConsole.WriteLine(number.ToWords()); // واحد مليون ومئتان وأربعة وثلاثون ألفًا وخمسمئة وسبعة وستون\n\nDateTime birthday = new DateTime(1990, 5, 15);\nConsole.WriteLine(birthday.Humanize()); // منذ 34 عامًا\n\nTimeSpan time = TimeSpan.FromDays(3).Add(TimeSpan.FromHours(5));\nConsole.WriteLine(time.Humanize()); // 3 أيام و5 ساعات
\n\n

يستخدم آلاف الشركات مشروع المصدر المفتوح هذا بلغة C# في بيئات الإنتاج. إنه مثالي لتسجيل الأحداث والواجهات والتقارير. المستودع: github.com/Humanizr/Humanizer.

\n\n

2. FluentValidation — قواعد تحقق أنيقة

\n\n

التحقق من صحة البيانات هو صداع لكل مطور خلفية. FluentValidation يحل هذه المشكلة بأناقة: تصف القواعد في شكل سلسلة fluent بدلاً من توزيع عمليات التحقق في جميع أنحاء الشفرة.

\n\n

مثال:

\n\n
public class UserValidator : AbstractValidator<User>\n{\n    public UserValidator()\n    {\n        RuleFor(user => user.Name)\n            .NotEmpty().WithMessage("الاسم مطلوب")\n            .Length(2, 50).WithMessage("يجب أن يكون الاسم من 2 إلى 50 حرفًا");\n\n        RuleFor(user => user.Email)\n            .EmailAddress().WithMessage("البريد الإلكتروني غير صحيح");\n\n        RuleFor(user => user.Age)\n            .InclusiveBetween(18, 120).WithMessage("يجب أن يكون العمر بين 18 و120 عامًا");\n    }\n}\n\n// الاستخدام:\nvar validator = new UserValidator();\nvar result = validator.Validate(new User { Name = "أ", Email = "test", Age = 15 });\n\nif (!result.IsValid)\n{\n    foreach (var error in result.Errors)\n        Console.WriteLine(error.ErrorMessage);\n}
\n\n

هذا واحد من أشهر مستودعات C# على GitHub بأكثر من 10,000 نجمة. يتكامل مع ASP.NET Core ويجعل الشفرة أنظف.

\n\n

3. Polly — مقاومة الأخطاء دون ألم

\n\n

هل يتعطل تطبيقك عند عدم توفر قاعدة البيانات؟ Polly هي مكتبة للتعامل مع الأعطال باستخدام محاولات إعادة المحاولة والمهلات وقواطع الدائرة. إنها تنقذ الخدمات المصغرة من الأعطال المتتالية.

\n\n

مثال حقيقي:

\n\n
using Polly;\n\nvar retryPolicy = Policy\n    .Handle<HttpRequestException>()\n    .WaitAndRetryAsync(3, r                

المدونات

توصيات الكتب