متى تبني عنصر تحكم PCF مخصصاً مقابل استخدام مكونات Canvas في Power Apps
By Mirko Peters ·
تعرّف على متى تبني مكونات PCF برمجية مخصصة مقارنةً باستخدام مكونات Canvas منخفضة البرمجة في Power Apps. قارن بين المهارات والأداء والبنية المعمارية.
Automatically translated with AI from the original post. Read the English original

يحدد الاختيار بين عناصر تحكم Power Apps Component Framework (PCF) القائمة على الكود ومكونات Canvas منخفضة البرمجة ما إذا كان مشروعك سينجح أم سيتعثر. يستعرض هذا الدليل الفروق المعمارية الجوهرية، ومتطلبات المهارات، وآثار الأداء، ومعايير القرار، لمساعدة المطوّرين والمُنشئين على اختيار الأداة المناسبة لتحديات واجهة المستخدم المعقدة.
النقاط الرئيسية
- تُبنى مكونات Canvas بالكامل داخل التطبيق باستخدام تعبيرات بلا برمجة سهلة على المُنشئين، ما يتيح التسليم السريع.
- تتطلب مكونات PCF البرمجية تطويراً برمجياً احترافياً باستخدام TypeScript وHTML وCSS وPower Platform CLI.
- يؤدي اختيار نوع المكوّن المناسب إلى منع تدهور الأداء الناتج عن الحلول البديلة المعقدة والعناصر المكدّسة.
- تتيح مكتبات React وFluent UI للمطوّرين بناء عناصر تحكم PCF خفيفة الوزن تستفيد من الأصول المؤسسية المحمّلة مسبقاً.
- يجب أخذ الحوكمة وأعباء الصيانة طويلة الأمد في الحسبان عند إدخال تبعيات برمجية مخصصة إلى حلول Dataverse.
الفجوة المعمارية: المُنشئون مقابل المطوّرين
كل تطبيق Power App يصل في النهاية إلى حائط وظيفي. تحتاج إلى تصور بيانات محدد، أو مخطط أرضي تفاعلي، أو شبكة تحرير بأسلوب جداول البيانات، أو لوحة توقيع، لكن صندوق الأدوات الافتراضي للسحب والإفلات يفتقر ببساطة إلى هذه القدرة. في هذه اللحظات، تلجأ الفرق غالباً إلى تكديس الحلول البديلة: إخفاء مربعات النص خلف الصور، وتراكب مشغلات غير مرئية، وربط عشر آليات منفصلة لمحاكاة تجربة مستخدم سلسة واحدة. ورغم أن هذا يعمل مؤقتاً، إلا أنه يتدهور بسرعة بأداء التطبيق، ويخلق متاهة يصعب صيانتها لكل من يرث الحل لاحقاً.
لمعالجة هذا السقف المعماري، تقسّم منصة Power Platform توسيع واجهة المستخدم إلى مسارين مختلفين: مكونات Canvas ومكونات PCF البرمجية. ومعرفة أين ينتهي أحدهما ويبدأ الآخر أمر أساسي للتخطيط الفعّال للتطبيقات. يبني المُنشئون مكونات Canvas مباشرةً داخل لوحة التطبيق باستخدام الصيغ المألوفة دون أي برمجة. وهي سريعة النشر، ويمكن لمُنشئي التطبيقات منخفضة البرمجة الآخرين تعديلها بسهولة، وهي مثالية لأنماط واجهة المستخدم القياسية. في المقابل، يُصمَّم مكونات PCF البرمجية من قبل مطوّرين محترفين. وهي مُغلَّفة كوحدات مستقلة لمنطق واجهة المستخدم، ويمكنها أن تمتد عبر التطبيقات المستندة إلى النماذج، وتطبيقات Canvas، وPower Pages.
مكونات Canvas للسرعة، وPCF للقدرة
عند تقييم النهج الذي يتطلبه مشروعك، يجب أن تُوازن بين سرعة التطوير والمتطلبات الوظيفية العميقة. تتفوق مكونات Canvas عندما تحتاج إلى تغليف جزء متكرر من تطبيق Canvas، مثل قائمة تنقل مخصصة أو تخطيط بطاقات منسّق، دون مغادرة المحرر المرئي. فهي تعيش داخل حزمة التطبيق، وترث سياق التطبيق بسلاسة، ولا تتطلب أي خطوط نشر أو أدوات سطر أوامر.
ومع ذلك، تخضع مكوّنات اللوحة (canvas) في جوهرها لقيود لغة التعبيرات ومحرك التخطيط الخاص ببيئة اللوحة. فهي لا تستطيع تجاوز حدود البيئة المعزولة للمنصة للاستفادة من مكتبات JavaScript متقدمة من جهات خارجية، أو عرض تصورات SVG مخصصة ومعقدة، أو تحويل سلوك الشبكات إلى جداول بيانات عالية الكثافة قابلة للتحرير بشكل أصلي. وهنا يأتي دور Power Apps Component Framework. فباستخدام Microsoft Power Platform CLI، يكتب المطورون مكوّنات ويب حقيقية بلغة TypeScript ومعايير الويب الحديثة. تُعلن مكوّنات الشيفرة هذه عن مدخلاتها ومخرجاتها صراحةً عبر ملف manifest، ما يضمن أن يربط التطبيق المضيف البيانات بالعنصر بسلاسة دون تخمين حالته الداخلية.
تحسين الأداء باستخدام React وFluent UI
كان بناء عنصر تحكم مخصص من الصفر يعني تاريخياً تضمين كل تبعية خارجية في الحزمة، وهو ما كان يتسبب غالباً في تضخم حجم الملفات وإبطاء أوقات التحميل. يلغي تطوير PCF الحديث هذا العبء من خلال مكتبات المنصة. يستطيع المطورون بناء المكوّنات باستخدام React وFluent UI، نظام التصميم الأصلي لدى Microsoft، من خلال الاعتماد على المكتبات المحمّلة مسبقاً من قبل البيئة المضيفة.
عندما يحمّل تطبيق عدة عناصر تحكم مخصصة تشترك في مكتبات المنصة نفسها، يتجنب المتصفح تنزيل شيفرة الإطار المكررة. وهذا يحافظ على واجهة مستخدم سريعة الاستجابة ومتسقة بصرياً مع بقية منظومة Microsoft 365. وفي الخلفية، تتولى دورة الحياة الخاصة بالمكوّن (init وupdateView وgetOutputs وdestroy) إدارة مهام الرسم، والتحديث عند تغير البيانات، وتنظيف الذاكرة عند إزالة العنصر من الصفحة. هذا الانضباط الصارم في دورة الحياة يمنع تسرب الذاكرة والعرض البطيء اللذين يعاني منهما الحقن العشوائي للشيفرة لدى الهواة.
الحوكمة وواقع الصيانة على المدى الطويل
يُدخل اعتماد مكوّنات الشيفرة المخصصة نمطاً من الصيانة تتجنبه عادةً حلول low-code. فبما أن عناصر PCF تتطلب خطوة بناء ومستودعاً للشيفرة المصدرية ونشراً عبر حلول Dataverse، فإنها تحتاج إلى مالك محدد. وإذا غادر المطور الأصلي دون توثيق مناسب، فقد يتحول عنصر التحكم المخصص بسرعة إلى صندوق أسود يصعب صيانته.
علاوة على ذلك، يجب على مسؤولي تقنية المعلومات فرض سياسات حوكمة صارمة لمنع انتشار مكوّنات شيفرة مكررة أو ضعيفة الأداء عبر بيئات المؤسسة. وقبل اعتماد بناء PCF مخصص، ينبغي لمهندسي الحلول التحقق من أنه لا يوجد عنصر تحكم أصلي أو مكوّن لوحة يمكنه تحقيق تسعين في المئة من الوظائف المطلوبة. فإذا كان النهج القياسي يحقق معظم المطلوب، فإن وفورات الصيانة تفوق في الغالب الرغبة في هندسة مخصصة بدقة البكسل.
الخلاصة
يتلخص الاختيار بين مكوّنات اللوحة وPower Apps Component Framework في مطابقة مواردك التقنية مع مشكلة واجهة المستخدم المحددة التي تواجهها. استخدم مكوّنات اللوحة لتغليف واجهات المستخدم السريع دون شيفرة داخل تطبيقات اللوحة، واحتفظ بمكوّنات PCF البرمجية للمتطلبات المتقدمة وعالية الأداء التي تمتد عبر الحلول المعتمدة على Dataverse. لاستكشاف هذا الموضوع بعمق والاستماع إلى رؤى الخبراء حول تطوير منصة Microsoft السحابية الحديثة، استمع إلى الحلقة الكاملة من بودكاست M365 FM.
الأسئلة المتداولة
هل يمكن استخدام مكوّنات اللوحة في التطبيقات المستندة إلى النماذج؟
لا، فمكوّنات اللوحة حصرية بتطبيقات اللوحة. وإذا احتجت إلى عناصر تحكم مخصصة داخل التطبيقات المستندة إلى النماذج أو Power Pages، فيجب استخدام مكوّنات الشيفرة في Power Apps Component Framework (PCF).
ما لغات البرمجة المطلوبة لبناء عناصر PCF؟
يتطلب بناء مكوّنات الشيفرة المخصصة معرفة عملية بلغة TypeScript (أو JavaScript)، وHTML، وCSS، بالإضافة إلى الإلمام بـ Microsoft Power Platform CLI لإنشاء الهيكل الأولي للمشروع وتغليفه.
هل يحتاج المستخدمون النهائيون إلى معرفة البرمجة لاستخدام عنصر PCF؟
إطلاقاً. فبمجرد أن يبني المطور عنصر PCF وينشره في بيئة حل Dataverse، يستطيع الصانعون سحبه وإفلاته في النماذج أو طرق العرض أو لوحات المعلومات تماماً كأي عنصر تحكم قياسي.
ما الغاية من ملف manifest الخاص بالمكوّن؟
ملف manifest هو ملف XML يعلن عن البيانات الوصفية للمكوّن، وخصائص الإدخال المتوقعة، وأحداث الإخراج، ويعمل كمخطط توصيل يتيح لـ Power Apps ربط البيانات بعنصر الشيفرة بشكل صحيح.