Fabulous هو إطار واجهة المستخدم التصريحي الحديثة لصياغة تطبيقات الهاتف المحمول وسطح المكتب في .NET.
يهدف إلى جلب لك تجربة تطوير رائعة وثقة في الكود الخاص بك من خلال الجمع بين بناء جملة واجهة المستخدم التعبيرية ، والهندسة المعمارية للمنتخب (MVU) البسيط والقوة ، والبرمجة الوظيفية.
يمكن العثور على الوثائق الكاملة لـ Fabulous في docs.fabould.dev.
روابط مفيدة أخرى:
بالإضافة إلى ذلك ، لدينا خادم Discord رائع حيث يمكنك طرح أي من الأسئلة ذات الصلة الرائعة.
نعتقد أن واجهة المستخدم التعريفية والبرمجة الوظيفية وإدارة ولاية MVU هي مناسبة تمامًا لتطوير التطبيق.
سوف تساعدك Fabulous على إنشاء تطبيقات الأجهزة المحمولة وسطح المكتب بسرعة وبفضل الثقة بفضل واجهة المستخدم التعريفية والهندسة المعمارية MVU ، كل ذلك بلغة واحدة: F# - لغة برمجة وظيفية.
يهدف Fabulous أيضًا إلى أن يكون أداءً من خلال الحصول على انخفاض استهلاك الذاكرة وآليات فرق العرض الفعالة.
لاحظ أن Fabulous نفسها لا توفر أي عرض واجهة المستخدم. ستحتاج إلى الجمع بينه وإطار عمل آخر مثل:
يمكن أن يكون تطوير واجهة المستخدم النموذجي كابوسًا إذا لم يتم ذلك بشكل صحيح.
يتم إنشاؤه بشكل عام في مكان واحد ، ثم يتحور هنا وهناك بناءً على الحاجة وما يفعله المستخدم. تنتهي قطع واجهة المستخدم ذات الصلة في عدة أماكن ، مما يجعل من الصعب التفكير عقلياً في جميع الاحتمالات ؛ حتى حالة السباق التي لا مفر منها أو خطأ بسبب تدفق المستخدم غير المقصود.
رائع يجعل من السهل التفكير في واجهة المستخدم بفضل واجهة المستخدم التعريفية المستوحاة من Swiftui.
يتم تعريف واجهة المستخدم للمكون في مكان واحد وسيسميه رائع في كل مرة يتم تغيير حالة هذا المكون.
لا تحتاج إلى التفكير في كيفية تحوير واجهة المستخدم ، وسوف يتعامل Fabulous معها لتتطابق دائمًا مع أحدث واجهة المستخدم التي تحتاجها.
/// A simple Counter app made with Fabulous.MauiControls
type Model =
{ Count : int }
type Msg =
| Increment
| Decrement
let view model =
Application (
ContentPage (
" Counter app " ,
VStack ( spacing = 16. ) {
Image ( Aspect.AspectFit , " fabulous.png " )
Label ( $ " Count is {model.Count} " )
Button ( " Increment " , Increment )
Button ( " Decrement " , Decrement )
}
)
)
MVU يجعل كل دولة والانتقال بين تلك الدول صريحة.
لا داعي للقلق بشأن الإجراءات غير المقصودة التي قد تؤدي إلى حالة غير صالحة من شأنها تعطل التطبيق.
بدلاً من ذلك ، يمكنك بسهولة تصميم حالة تطبيقك أو مكونك والتحولات بينهما باستخدام سجلات F# وأنواع النقابات المميزة.
عند البدء ، سوف يهيئة Fabulous الحالة. بعد ذلك ، عند إرسال الرسائل ، ستتيح لك Fabulous الانتقال من ولاية إلى أخرى معاً من رسالة محددة.
إذا تم استلام العديد من الرسائل في نفس الوقت ، فسيقوم Fabulous بتصويرها للسماح لك بتحديث الحالة بشكل صحيح.
let init () =
{ Count = 0 }
let update msg model =
match msg with
| Increment -> { model with Count = model.Count + 1 }
| Decrement -> { model with Count = model.Count - 1 }
وأخيراً ، بالنظر إلى الطبيعة الوظيفية لـ MVU ، من السهل للغاية اختبار الوحدة كل حالة ممكنة من تطبيقك.
[<Test>]
let ``When clicking the Increment button , increment the count by one`` () =
let previousState = { Count = 10 }
let expectedState = { Count = 11 }
let actualState = App.update Increment previousState
actualState |> should equal expectedState
.NET هو إطار ناضج للغاية وواسع من قبل Microsoft. يمكن تشغيله على أي جهاز ومنصة ، وهو فعال للغاية ، ويحتوي على نظام بيئي واسع من المكتبات المفتوحة والمصدر والمكونات الإضافية والأطر الأخرى.
ستتمكن من الاستفادة من النظام البيئي .NET باستخدام حزم الطرف الثالث مباشرة في تطبيقك الرائع.
أبسط طريقة لتظهر لنا دعمكم من خلال منح المشروع نجمًا.
يمكنك أيضًا دعمنا من خلال أن نصبح راعينا في برنامج GitHub Swertors.
هذه طريقة رائعة لدعم جميع الجهود المبذولة لجعل أفضل إطار واجهة المستخدم لأفضل إطار واجهة المستخدم لـ DOTNET.
إذا كنت بحاجة إلى دعم ، انظر قسم الدعم التجاري أدناه.
هل وجدت خطأ أو لديك اقتراح حول كيفية تعزيز رائع؟ افتح مشكلة وسنلقي نظرة عليها في أقرب وقت ممكن.
هل تريد المساهمة مع العلاقات العامة؟ نرحب دائمًا بالعلاقات العامة ، فقط تأكد من إنشائها من الفرع الصحيح (الرئيسي) واتبع دليل المساهم.
للتغييرات الأكبر ، أو إذا كنت في شك ، تأكد من التحدث عن مساهمتك في الفريق. إما عن طريق مشكلة ، أو مناقشة github ، أو التواصل مع الفريق إما باستخدام خادم Discord.
إذا كنت ترغب في تزويدك بـ:
لا تتردد في الاتصال بنا: [email protected]