نظرة عامة على Microsoft Power Fx

Power Fx هي لغة التعليمات البرمجية المنخفضة التي تستخدمها Microsoft Power Platform. إنها لغة برمجة عامة، مكتوبة بقوة، وتصريحية، ووظيفية.

يتم التعبير عن Power Fx بنص سهل الاستخدام. إنها لغة منخفضة التعليمات البرمجية بإمكان المنشئين العمل معها مباشرة في شريط صيغة على غرار Excel أو نافذة نص تعليمة Visual Studio برمجية. يأتي "منخفض" في التعليمات البرمجية المنخفضة من الطبيعة البسيطة والموجزة للغة، ما يجعل مهام البرمجة الشائعة سهلة لكل من المصنعين والمطورين. فهو يتيح مجموعة كاملة من التطوير من دون تعليمة برمجية لأولئك الذين لم يبرمجوا من قبل إلى "المؤيدين للتعليمات البرمجية" للمحترفين المحنكين، مع عدم وجود التعلم أو إعادة كتابة المنحدرات بينهما. يمكن للفرق المتنوعة التعاون وتوفير الوقت والنفقات.

‏‫ملاحظة‬

  • إن Microsoft Power Fx هو الاسم الجديد للغة الصيغة لتطبيقات اللوحة في Power Apps. هذه النظرة العامة والمقالات المرتبطة بها هي عمل قيد التقدم حيث Microsoft تستخرج اللغة من تطبيقات اللوحة، وتدمجها مع منتجات Microsoft Power Platform الأخرى، وتجعلها متاحة على أنها مصدر مفتوح. لمعرفة المزيد حول لغة اليوم وتجربتها، ابدأ بإجراء الشروع في العمل باستخدام الصيغ في تطبيقات اللوحة في وثائق Power Apps وسجل مجانًا للحصول على الإصدار التجريبي المجاني من Power Apps trial.
  • في هذه المقالة، يشير المصنعون إلى المستخدمين الذين قد يستخدمون ميزة في أي من طرفي طيف مهارة البرمجة. يشير المطورون إلى المستخدمين عندما تكون الميزة أكثر تقدما ومن المحتمل أن تكون خارج نطاق مستخدم Excel نموذجي.

يربط Power Fx الكائنات معًا مع صيغ تصريحية تشبه جدول البيانات. على سبيل المثال، يمكنك أن تفكر في الخاصية المريئة لمراقبة واجهة المستخدم كخلية في ورقة عمل Excel، باستخدام صيغة مقترنة تقوم بحساب قيمتها استنادا إلى خصائص عناصر التحكم الأخرى. يقوم منطق الصيغة بإعادة حساب القيمة تلقائيا، بنفس طريقة عمل جدول البيانات، والذي يؤثر على رؤية عنصر التحكم.

كما يوفر Power Fx منطقيًا إلزاميًا عند الحاجة. لا تحتوي أوراق العمل عادة على أزرار يمكنها إرسال التغييرات إلى قاعدة البيانات، إلا أن التطبيقات غالبا ما تحتوي عليها. تستخدم نفس لغة التعبير للمنطقين التصريحي والمنطقي.

Microsoft سيجعل Power Fx متوفرا كبرنامج مفتوح المصدر. وهي مدمجة حاليا في تطبيقات اللوحة، Microsoft في عملية استخراجها من Power Apps لاستخدامها في منتجات Microsoft Power Platform الأخرى وك مصدر مفتوح. مزيد من المعلومات: Microsoft Power Fx على GitHub

هذا المقال هو نظرة عامة على اللغة ومبادئ التصميم الخاصة بها. لمعرفة المزيد حول Power Fx، راجع المقالات التالية:

فكر في جدول البيانات

ماذا لو كان بإمكانك إنشاء تطبيق بنفس سهولة إنشاء ورقة عمل في Excel؟

ماذا لو كان بإمكانك الاستفادة من معرفتك الحالية بجداول البيانات؟

ألهمت هذه الأسئلة إنشاء Power Apps وPower Fx. يقوم مئات الملايين من الأشخاص بإنشاء أوراق عمل باستخدام Excel كل يوم. دعونا نجلب لهم إنشاء تطبيق سهل ويستخدم المفاهيم Excel التي يعرفونها بالفعل. من خلال فصل Power Fx عن Power Apps، سنجيب على هذه الأسئلة لبناء الأتمتة، أو مندوب افتراضي، أو مجالات أخرى.

تتضمن جميع لغات البرمجة، بما في ذلك Power Fx تعبيرات: طريقة لتمثيل عملية حسابية على الأرقام أو السلاسل أو أنواع البيانات الأخرى. على سبيل المثال، mass * acceleration في معظم اللغات يعبر عن ضرب massوacceleration. يمكنك وضع نتيجة تعبير في متغير، أو استخدامه كوسيطة لإجراء، أو تضمينه في تعبير أكبر.

ينقل Power Fx هذه الخطوة إلى ما هو أبعد من ذلك. تعبير في حد ذاته لا يتحدث عن أي شيء عن ما يتم حسابه. ويمرر وضع هذا المتغير في المتغير أو تمريره إلى وظيفة ما. في Power Fx، بدلاً من كتابة تعبير ليس لديه أي معنى معين، يمكنك كتابة صيغة تربط التعبير بمعرف. أنت تكتب force = mass * acceleration كصيغة لحساب force. كما أو massacceleration التغييرات، force يحدث تلقائيا إلى قيمة جديدة. وصف التعبير عملية حسابية، أعطت الصيغة هذه العملية الحسابية اسمًا واستخدمتها كوصفة. ولهذا السبب نشير إلى Power Fx باعتباره لغة صيغة.

على سبيل المثال، تبحث صيغة من Stack Overflow عن سلسلة في ترتيب عكسي. في Excel، تبدو مثل الصورة التالية.

عكس البحث

لقطة شاشة لشريط الصيغة في Excel بالصيغة: = =RIGHT(A1,LEN(A1)- FIND("|", SUBSTITUTE(A1," ","|", LEN(A1)-LEN(SUBSTITUTE(A1," ","")))) تحتوي الخلية A1 على النص "مرحبًا بالعالم! إنه أمر رائع أن نقابلك!" تحتوي الخلية A2 على النص "أنت!".

يعمل Power Fx مع نفس الصيغة، مع استبدال مراجع الخلايا بمراجع خاصية التحكم:

عكس البحث في Power Fx.

لقطة شاشة لشريط صيغة Power Fx في Power Apps. الصيغة هي =RIGHT(Input.Text,Len(Input.Text)- FIND("|", SUBSTITUTE(Input.Text," ","|", Len(Input.Text)-Len(Substitute(Input.Text," ","")))) في مربع الإدخال أسفل الصيغة، يظهر النص "Hello, World! من الرائع مقابلتك!"، رسالة برسالة. في نفس الوقت في مربع التسمية، تظهر أحرف الكلمة الأخيرة. عندما يظهر النص الكامل في مربع الإدخال، تظهر كلمة "أنت!" في مربع التسمية.

Input مع تغير قيمة عنصر التحكم، Label يعيد عنصر التحكم حساب الصيغة تلقائيا ويعرض القيمة الجديدة. ولا توجد معالجات أحداث OnChange هنا كما قد تكون شائعة في اللغات الأخرى.

يستخدم مثال آخر صيغة Fill للون الشاشة. مع تغير أشرطة التمرير التي تتحكم في الأحمر والأخضر والأزرق، يتغير لون الخلفية تلقائيا أثناء إعادة حسابه.

شريط تمرير اللون.

لا توجد أحداث OnChange لمراقبة شريط التمرير كما قد تكون شائعة في اللغات الأخرى. لا توجد طريقة لتعيين قيمة الخاصية Fill بشكل واضح على الإطلاق. إذا لم يعمل اللون كما هو متوقع، ستحتاج إلى النظر إلى هذه الصيغة واحدة لفهم سبب عدم عمله. لست بحاجة للبحث من خلال التطبيق للعثور على رمز من هذه التعليمات البرمجية التي تقوم بتعيين الخاصية في وقت غير متوقع؛ لا يوجد عنصر وقت. يتم الاحتفاظ بقيم الصيغة الصحيحة دائما.

وعندما يتم تعيين منشرات التمرير على لون مهيئ، تتغير تسميات اللون الأحمر والأخضر والأزرق إلى اللون الأخضر إلى اللون الأحمر إلى اللون الأزرق. يحدث هذا التغيير من خلال صيغة بسيطة على الخاصية Color لكل عنصر تحكم تسمية.

أشرطة تمرير الألوان في Power Fx.

ما هو رائع في هذه الصيغة هو أنها معزولة عما يحدث للون Fill : وهما حسابان مختلفان تماما. وبدلاً من الإجراءات الكبرى أحادية الطبقة، يتكون منطق Power Fx عادة من الكثير من الصيغ الصغيرة المستقلة. تسهل هذه البنية فهمها وتمكنها من التحسينات دون إزعاج المنطق الموجود.

إن Power Fx عبارة عن لغة تصريحية، كما هو الحال مع Excel. يحدد المصنّع السلوك الذي يريده، ولكن الأمر متروك للنظام لتحديد وتحسين كيفية ومتى يتم ذلك. ولتنفيذ ذلك من الناحية العملية، يتم إنجاز معظم الأعمال من خلال وظائف خالصة بدون تأثيرات جانبية، مما يجعل Power Fx أيضا لغة وظيفية (مرة أخرى، كما هو الحال مع Excel).

مباشر دائما

يتمثل أحد الجوانب المحددة لأوراق العمل في أنها حية دائمًا، وتنعكس التغييرات على الفور. لا يوجد وضع التحويل البرمجي أو التشغيل في ورقة العمل. عند تعديل صيغة أو إدخال قيمة، تعيد ورقة العمل حسابها على الفور لتعكس التغييرات. تظهر أي أخطاء تم الكشف عنها على الفور ولا تتداخل مع بقية ورقة العمل.

Power Fx ينفذ نفس الشيء. ويستخدم محولا برمجيا تزايديا للحفاظ على البرنامج متزامنا باستمرار مع البيانات التي يعمل عليها. يتم نشر التغييرات تلقائيا من خلال الرسم البياني للبرنامج، مما يؤثر على نتائج العمليات الحسابية التابعة. قد تقود هذه العمليات الحسابية خصائص على عناصر التحكم مثل اللون أو الموضع. كما يوفر هذا المترجم المقترن تجربة تحرير صيغة ثرية مع IntelliSense، واقتراحات، وأتمتة، والتحقق من النوع.

في الحركة التالية، يتم عرض رقم الطلب في عنصر تحكم تسمية يعتمد على عنصر تحكم شريط التمرير، على الرغم من وجود خطأين على التسميات الموجودة أسفله. التطبيق متفاعل وتفاعلي إلى حد كبير. المحاولة الأولى لإصلاح الصيغة عن طريق إدخال .InvalidName تؤدي إلى ظهور خط أحمر فوري وخطأ عرض، كما ينبغي، لكن التطبيق يستمر في العمل.

مباشر دائمًا.

عند إدخال .Employee، Data يضيف الجزء جدول الموظفين، ويسترد بيانات التعريف لهذا الجدول، ويقدم على الفور اقتراحات للأعمدة. لقد عبرت للتو علاقة من جدول إلى آخر، وأدخل النظام التعديلات المطلوبة على مراجع التطبيق. الشيء نفسه يحدث عند إضافة .Customer.

وبعد كل تغيير، يستمر شريط التمرير في آخر قيمة له، كما تحتفظ أية متغيرات بقيمتها. طوال الوقت، يستمر عرض رقم الطلب في التسمية العلوية كما ينبغي. التطبيق مباشر، يعالج البيانات الحقيقية، طوال الوقت. يمكنك حفظه والابتعاد عنه، ويمكن للآخرين فتحه واستخدامه تماما مثل Excel. لا توجد خطوة بناء، أو تحويل برمجي، هناك خطوة نشر فقط لتحديد إصدار التطبيق الجاهز للمستخدمين.

رمز منخفض

يصف Power Fx منطق العمل من خلال صيغ موجزة وكلن قوية. معظم المنطق يقلل إلى خط واحد، مع الكثير من التعبير والتحكم لتلبية احتياجات أكثر تعقيدا. فالهدف هو الاحتفاظ بالحد الأدنى المفاهيم التي يحتاج المنشئ إلى فهمهم — عادةً، لا يزيد عما قد يعرفه مستخدم Excel بالفعل.

على سبيل المثال، للبحث عن الاسم الأول لموظف لأمر ما، تكتب Power Fx كما هو موضح في الحركة التالية. بالإضافة إلى مفاهيم Excel، فإن المفهوم المضاف الوحيد المستخدم هنا هو ترميز النقطة "." للتنقيب في بنية البيانات، في هذه الحالة .Employee.'First Name'. تعرض الحركة التعيين بين أجزاء صيغة Power Fx والمفاهيم الواجب ترميزها بشكل واضح في JavaScript المكافئ.

رمز منخفض بلغة JavaScript.

لنلق نظرة أكثر تعمقا على جميع الأشياء التي يقوم بها Power Fx بالنسبة لنا والحرية التي يتمتع بها لتحسينها لأن الصيغة تعريفية:

  • غير متزامنة: جميع عمليات البيانات غير Power Fx متزامنة. لا يحتاج المُصنِّع إلى تحديد ذلك، ولا يحتاج المُصنِّع إلى مزامنة العمليات بعد انتهاء المكالمة. لا يحتاج الصانع إلى أن يكون على دراية بهذا المفهوم على الإطلاق، ولا يحتاج إلى معرفة ما هو الوعد أو وظيفة لامدا.

  • محلي وبعيد: Power Fx يستخدم نفس بناء الجملة والوظائف للبيانات المحلية في الذاكرة وتوصيل قاعدة بيانات أو خدمة عن بعد. لا يحتاج المستخدم التفكير في هذا الامتياز. يفوض Power Fx ما يمكنه القيام به تلقائيًا إلى الخادم لمعالجة عوامل التصفية والفرز بشكل أكثر فعالية.

  • البيانات العلائقية: الطلبات والعملاء هما جدولان مختلفان، مع علاقة متعدد إلى واحد. يتطلب استعلام OData "$expand" مع معرفة بالمفتاح الخارجي، مشابها للانضمام إلى SQL. الصيغة لا تحتوي على أي من هذا ؛ في الواقع، تعتبر مفاتيح قاعدة البيانات مفهومًا آخر لا يحتاج المصمم إلى معرفته. يمكن للصانع استخدام تسجيل نقطة بسيطة للوصول إلى الرسم البياني الكامل العلاقات سجل.

  • الإسقاط: عند كتابة استعلام ، يكتب select * from table العديد من المطورين ، مما يعيد جميع أعمدة البيانات. يحلل Power Fx كافة الأعمدة المستخدمة من خلال التطبيق بالكامل، حتى عبر تبعيات الصيغة. يتم تحسين العرض تلقائيًا، ومرة أخرى، لا يحتاج المصمم إلى معرفة معنى "الإسقاط".

  • استرجاع ما هو مطلوب فقط: في هذا المثال ، تشير الدالة LookUp إلى أنه يجب استرداد سجل واحد فقط وهذا كل ما يتم إرجاعه. إذا تم طلب المزيد من السجلات باستخدام وظيفة Filter —التي قد تكون مؤهلة لآلاف السجلات — يتم إرجاع صفحة واحدة فقط من البيانات في المرة الواحدة، بترتيب 100 سجل لكل صفحة. يجب على المستخدم الإيماءة من خلال معرض أو جدول بيانات لرؤية المزيد من البيانات، ويجلب تلقائيا المزيد من البيانات لهم. يمكن للمصنع التفكير في مجموعات كبيرة من البيانات دون الحاجة إلى التفكير في قصر طلبات البيانات على أجزاء يمكن إدارتها.

  • يتم تشغيله فقط عند الحاجة: يمكنك تعريف صيغة Text لخاصية عنصر تحكم التسمية. ومع تغير المتغير المحدد، يتم إعادة حسابه LookUp تلقائيا وتحديث التسمية. لم يكن الصانع بحاجة إلى كتابة معالج OnChange من أجل التحديد، ولم يكن بحاجة إلى تذكر أن هذه التسمية تعتمد عليه. هذه برمجة تعريفية، كما تمت مناقشته سابقًا: حدد المُصمم ما يريدون الحصول عليه في الملصق، وليس كيف أو متى يجب جلبه. إذا لم تكن هذه التسمية مرئية لأنها على شاشة غير مرئية، أو كانت الخاصية الخاصة بها Visible خاطئة، يمكنك تأجيل هذه العملية الحسابية حتى تصبح التسمية مرئية وتقضي عليها بشكل فعال إذا نادرا ما يحدث ذلك.

  • Excel ترجمة بناء الجملة: يعرف العديد من المستخدمين أن علامة العطف (&) تستخدم لسلسلة السلسلة في Excel. يستخدم JavaScript علامة زائد (+) ولغات أخرى تستخدم نقطة (.).

  • أسماء العرض والتوطين: First Name Power Fx في الصيغة أثناء nwind_firstname استخدامه في ما يعادل JavaScript. في Microsoft Dataverse وSharePoint، يوجد اسم معروض للأعمدة والجداول بالإضافة إلى اسم منطقي فريد. غالبًا ما تكون أسماء العرض أكثر سهولة في الاستخدام، كما هو الحال في هذه الحالة، ولكن لها صفة مهمة أخرى تتمثل في إمكانية توطينها. إذا كان لديك فريق متعدد اللغات، فيمكن لكل عضو في الفريق رؤية أسماء الجداول والحقول بلغته الخاصة. في كافة الحالات، يتأكد Power Fx من إرسال الاسم المنطقي الصحيح إلى قاعدة البيانات تلقائيًا.

بلا تعليمات برمجية

لا تحتاج إلى قراءة Power Fx أو كتابته لبدء التعبير عن المنطق. يمكنك التعبير عن العديد من التخصيصات والمنطق من خلال مفاتيح بسيطة ومنشئي واجهة المستخدم. تم تصميم هذه الأدوات بدون تعليمات برمجية لقراءة وكتابة Power Fx، لذلك هناك الكثير من العناوين لشخص ما ليأخذها إلى أبعد من ذلك. ومع ذلك، لا تقدم أدوات بدون تعليمات برمجية جميع التعبيرات للغة الكاملة. حتى عندما تستخدم منشئي التعليمات البرمجية، يكون شريط الصيغة في المقدمة والوسط في Power Apps لتثقيف صانع ما يتم القيام به نيابة عنه حتى يتمكنوا من البدء في تعلم Power Fx.

لنلق نظرة على بعض الأمثلة. في Power Apps، توفر لوحة الخاصية تبديلات "بدون تعليمات برمجية" ومفاتيح لخصائص عناصر التحكم. من الناحية العملية، فإن معظم قيم الخاصة ثابتة. يمكنك استخدام منشئ الألوان لتغيير لون خلفية Gallery. لاحظ أن شريط الصيغة يعكس هذا التغيير، بتحديث الصيغة إلى مكالمة RGBA مختلفة. في أي وقت، يمكنك الانتقال إلى شريط الصيغة واتخاذ هذا التغيير خطوة أخرى - في هذا المثال، باستخدام ColorFade لضبط اللون. تظل خاصية اللون تظهر في لوحة الخصائص، لكن رمز fx يظهر عند التمرير ويتم توجيهك إلى شريط الصيغة. يعمل هذا بشكل كامل بطريقتين: تؤدي إزالة مكالمة ColorFade إلى إرجاع اللون إلى شيء يمكن أن تفهمه لوحة الخصائص، ويمكنك استخدامه مرة أخرى لتعيين لون.

لا يوجد لون رمز.

هذا مثال أكثر تعقيدًا. يعرض المعرض قائمة بالموظفين من Dataverse. Dataverse يوفر طرق عرض فوق بيانات الجدول. يمكنك تحديد إحدى طرق العرض هذه وتغيير الصيغة لاستخدام الدالة Filter باسم طريقة العرض هذه. يمكنك استخدام القائمتين المنسدلتين لطلب الجدول الصحيح وعرضه دون لمس شريط الصيغة. ولكن لنفترض أنك تريد المضي قدمًا وإضافة نوع. يمكنك إضافة هذه الدالة في شريط الصيغة، وتعرض لوحة الخاصية مرة أخرى أيقونة fx وتوجه التعديلات إلى شريط الصيغة. ومرة أخرى، إذا قمت بتبسيط الصيغة إلى شيء يمكن للوحة الخاصية قراءتها وكتابتها، فيمكن استخدامها.

بلا فرز رمز.

هذه الأمثلة بسيطة. يقدم Power Fx لغة رائعة لوصف التفاعلات بدون تعليمات برمجية. إنه موجز وقوي وسهل التحليل. يوفر غرفة الرأس التي غالبا ما تكون هناك حاجة إليها مع "بلا منحدرات" حتى التعليمات البرمجية المنخفضة.

الكود الترويجي

يقوم صانعو التعليمات البرمجية المنخفضة في بعض الأحيان ببناء حلول تتطلب مساعدة خبير أو يتم توليها من قبل مطور محترف للحفاظ عليها وتحسينها. كما تقدر المتخصصات أيضا أن تطوير التعليمات البرمجية منخفضة قد يكون أسهل وأسرع وأقل تكلفة من بناء أداة احترافية. لا يتطلب كل موقف القدرة الكاملة على Visual Studio.

يرغب المتخصصون في استخدام الأدوات المهنية حتى يكونوا أكثر إنتاجية. يمكنك تخزين صيغ Power Fx في ملفات مصدر YAML، والتي يسهل تحريرها باستخدام تعليمة Visual Studio برمجية أو Visual Studio أو أي محرر نصوص آخر. يمكنك تخزين الصيغ في ملفات YAML من وضع Power Fx تحت التحكم بالمصادر باستخدام GitHub أو Azure DevOps أو أي نظام آخر للتحكم في التعليمات البرمجية المصدر.

الكود الترويجي في تعليمة Visual Studio برمجية.

رمز المحترفين GitHub.

يدعم Power Fx المكونات المستندة إلى الصيغ لمشاركتها وإعادة استخدامها وهو يدعم المعلمات لخصائص المكون، ما يتيح إنشاء وظائف نقية معرفة من قبل المستخدم مع المزيد من التحسينات في الطريق.

علاوةً على ذلك، يُعد Power Fx مفيدًا لجمع معًا المكونات والخدمات التي يبنيها الأخصائيون. توفر الموصلات الجاهزة الوصول إلى مئات مصادر البيانات وخدمات الويب. تمكن الموصلات المخصصة Power Fx من التحدث إلى أي خدمة ويب REST. تمكن مكونات التعليمات البرمجية Power Fx من التفاعل مع JavaScript المخصص بالكامل على الشاشة والصفحة.

مبادئ التصميم

بسيط

تم تصميم Power Fx لاستهداف جمهور صانع البرامج، الذي لا يتم تدريب أعضائه كمطورين. حيثما أمكن، تستخدم اللغة المعرفة التي يعرفها هذا الجمهور بالفعل أو يمكنه التقاطها بسرعة. ويبقى عدد المفاهيم المطلوبة لكي تنجح في الحد الأدنى.

كما أن بساطة الأمر جيد أيضا للمطورين. بالنسبة لجمهور المطور، تهدف Power Fx إلى أن تكون لغة منخفضة التعليمات البرمجية تعمل على تقليل الوقت المطلوب لبناء حل.

تناسق Excel

تستعير لغة Microsoft Power Fx بشكل كبير من لغة صيغة Excel. فإنه يستفيد من المعرفة Excel والخبرة من العديد من صانعي الذين يستخدمون أيضا Excel. تكون الانواع و عوامل التشغيل و الدلالات الخاصة بالوظيفة أقرب ما يكون إلى Excel.

إذا لم يكن لدى Excel إجابة، فإن Power Fx يبحث بعد ذلك عن SQL. بعد Excel، تعد SQL هي اللغة التعريفية التالية الأكثر استخدامًا ويمكن أن توفر إرشادات حول عمليات البيانات والكتابة القوية التي لا يوفرها Excel.

تصريحي

يصف الصانع ما يريدون أن يفعل منطقهم، ليس بالضبط كيف أو متى ينبغي القيام به. يسمح هذا الأسلوب للمحول البرمجي بالتحسين عن طريق تنفيذ العمليات بالتوازي، وتأجيل العمل حتى الحاجة، والإحضار المسبق وإعادة استخدام البيانات المخزنة مؤقتا.

على سبيل المثال، في ورقة عمل Excel، يحدد الكاتب العلاقات بين الخلايا ولكن Excel يحدد متى وبأي ترتيب لتقييم الصيغ. وبالمثل، يمكنك التفكير في الصيغ في التطبيق على أنها "إعادة حساب" حسب الحاجة استنادا إلى إجراءات المستخدم أو تغييرات قاعدة البيانات أو أحداث المؤقت.

وظيفي

استخدم الدالات النقية التي لا تحتوي على آثار جانبية. ينتج عن هذا النهج منطق أسهل في الفهم ويعطي المحول البرمجي أكبر قدر من الحرية في التحسين.

على عكس Excel، تعمل التطبيقات بطبيعتها على تغيير الحالة. على سبيل المثال، تحتوي التطبيقات على أزرار تحفظ التغييرات على السجل في قاعدة بيانات. بعض الوظائف، لذلك، لها آثار جانبية، على الرغم من الحد من هذه الآثار الجانبية بقدر ما هو عملي.

إنشاء

حيثما أمكن، أضف وظائف تؤلف بشكل جيد مع الوظائف الموجودة. يمكنك تحليل الوظائف القوية إلى أجزاء أصغر يمكنك استخدامها بسهولة أكبر بشكل مستقل.

على سبيل المثال، لا يشتمل عنصر تحكم المعرض على خصائص Sort وFilter منفصلة. بدلا من ذلك، يمكنك إنشاء Sort الدالتين و Filter معا في خاصية واحدة Items . يمكنك وضع طبقة لواجهة المستخدم للتعبير عن Sort الخاصية Items وسلوكها Filter باستخدام محرر ثنائي الاتجاه لهذه الخاصية.

كتابة قوية

تعرف أنواع كافة القيم في وقت التحويل البرمجي. يسمح هذا النهج بالكشف المبكر عن الأخطاء والاقتراحات الغنية أثناء التأليف.

يتم دعم الأنواع متعددة الأشكال، ولكن قبل أن تتمكن من استخدامها، يجب تثبيت نوعها بنوع ثابت ويجب أن يكون هذا النوع معروفا في وقت التحويل البرمجي. يتم توفير وظائف IsType وAsType لأنواع الاختبار واختبار البيانات التي يتم تلقيها.

استدلال النوع

تشتق الأنواع من استخدامها دون إعلانها. على سبيل المثال، يؤدي تعيين متغير إلى رقم إلى إنشاء نوع المتغير كرقم.

يؤدي تعارض نوع الاستخدام إلى حدوث خطأ في وقت جمع المعلومات.

فاصلات عشرية حساسة للسكان المحليين

تستخدم بعض مناطق العالم نقطة (.) كفاصل عشري، بينما يستخدم الآخرون فاصلة (،). Excel يتبع هذه الاتفاقية الإقليمية. تستخدم لغات البرمجة الأخرى بشكل عام نقطة متعارف عليه (.) كفاصل عشري لجميع المستخدمين في جميع أنحاء العالم. لكي تكون ودودًا قدر الإمكان للصانعين على جميع المستويات، من المهم ذلك 3,14 هو رقم عشري لشخص في فرنسا استخدم هذا النحو طوال حياته.

اختيار الفاصل العشري له تأثير متتالي على فاصل القائمة، المستخدم لوسائط استدعاء الوظيفة، وعامل التسلسل.

الفاصل العشري للغة المؤلف فاصل عشري Power Fx فاصل قائمة Power Fx عامل تسلسل Power Fx
. (نقطة) . (نقطة) ( فاصلة) ؛ (فاصلة منقوطة)
( فاصلة) ( فاصلة) ؛ (فاصلة منقوطة) ؛؛ (فاصلة منقوطة مزدوجة)

مزيد من المعلومات: الدعم العمومي

‏‏بلا كائن موجه

إن Excel غير موجه للكائنات، وهو ليس Power Fx. على سبيل المثال، في بعض اللغات، يتم التعبير عن طول السلسلة كخاصية للسلسلة، مثل "مرحبًا بالعالم".length في JavaScript. بدلاً من ذلك، يعبر كل من Excel وPower Fx عن هذا من حيث وظيفة، مثل Len( "مرحبًا بالعالم" ).

تكون المكونات ذات الخصائص الأساليب موجهة نحو الكائن، ويعمل Power Fx معها بسهولة. ولكن، حيثما أمكن، تفضل نهجا وظيفيا.

الموسعه

بإمكان المنشئين استخدام مكوناتهم ووظائفهم باستخدام Power Fx بحد ذاته. يمكن للمطورين إنشاء مكوناتهم ووظائفهم من خلال كتابة JavaScript.

سهلة للمطورين

على الرغم من أن صانعي هي الهدف الأساسي، حاول أن تكون صديقة للمطورين كلما أمكن ذلك. إذا لم يتعارض مع مبادئ التصميم الموضحة سابقا، فقم بأشياء بطريقة يقدرها المطور. على سبيل المثال، Excel ليس لديها إمكانية لإضافة تعليقات، لذا استخدم التعليقات المضمنة والخطية التي تشبه C.

تطور اللغة

تعد لغات البرمجة المتطورة ضرورية وصعبة. يشعر الجميع،عن حق، بالقلق من أن التغيير، بغض النظر عن حسن النية، قد يكسر الشفرة الحالية ويتطلب من المستخدمين تعلم نمط جديد. يأخذ Power Fx التوافق مع الإصدارات السابقة على محمل الجد، ولكن فريق Power Fx يعتقد بقوة أيضا أنه لن يحصل عليه دائما بشكل صحيح في المرة الأولى وأن المجتمع يمكن أن يتعلم بشكل جماعي ما هو أفضل. يجب أن تتطور لغة البرمجة، وتم تصميم Power Fx لدعم تطور اللغة من البداية.

يتضمن كل مستند Power Fx محفوظ طابع إصدار لغة. إذا أراد فريق Power Fx إجراء تغيير غير متوافق، فسيكتب ما يطلق عليه "محول توافق مع الخلف" الذي يعيد كتابة الصيغة تلقائيا في المرة التالية التي يتم تحريرها فيها. إذا كان التغيير شيئا رئيسيا يحتاج الفريق إلى تثقيف المستخدم بشأنه، يعرض التطبيق رسالة تحتوي على ارتباط إلى المستندات. باستخدام هذا المرفق، لا يزال بإمكان Power Fx تحميل التطبيقات التي تم إنشاؤها باستخدام إصدارات المعاينة من Power Apps منذ سنوات عديدة، على الرغم من جميع التغييرات التي حدثت منذ ذلك الحين.

على سبيل المثال، قدم ShowError فريق Power Fx الوظيفة لعرض شعار خطأ بخلفية حمراء.

إظهار الخطأ.

أحب المستخدمون ذلك، لكنهم طلبوا أيضا طريقة لإظهار شعار نجاح (خلفية خضراء) أو شعار إعلامي (خلفية زرقاء). لذلك، خرج الفريق بوظيفة أكثر عمومية Notify تأخذ وسيطة ثانية لنوع الإعلام. كان يمكن للفريق أن يضيف Notify ويحافظ ShowError على الطريقة التي كان عليها، ولكن بدلا من ذلك استبدلوا ShowError ب Notify. لقد أزلوا دالة كانت في وقت سابق في الإنتاج واستبدلوها بشيء آخر. ونظرا لوجود طريقتين للقيام بالشيء نفسه، فإن هذا التغيير كان سيسبب ارتباكا - خاصة للمستخدمين الجدد - والأهم من ذلك أنه كان سيضيف تعقيدا. لم يشتكي أحد، فقد قدر الجميع التغيير ثم انتقلوا إلى ميزة الإعلام التالية.

هذه هي الطريقة التي يبدو بها التطبيق نفسه عند تحميله إلى أحدث إصدار من Power Apps. لم يطلب المستخدم أي إجراء لإجراء هذا التحويل، فقد حدث تلقائيًا عند فتح التطبيق.

يحل الإعلام محل ShowError.

باستخدام هذا المرفق، يمكن أن تتطور Power Fx بشكل أسرع وأكثر قوة من معظم لغات البرمجة.

بلا قيمة غير محددة

تستخدم بعض اللغات، مثل JavaScript، مفهوم قيمة غير محددة للمتغيرات غير المهيأة أو الخصائص المفقودة. من أجل البساطة، تتجنب Power Fx هذا المفهوم. يتم التعامل مع المثيلات التي قد تكون غير معرّفة في لغات أخرى كخطأ أو قيمة فارغة. على سبيل المثال، تبدأ كافة المتغيرات أحادية القيم بقيمة فارغة. يمكن لجميع أنواع البيانات استخدام قيمة البيانات الفارغة.

أنواع البيانات
عوامل التشغيل والمعرفات
المناضد
المتغيرات
المنطق الحتمي
دعم عالمي
قواعد التعبير
قواعد صيغة YAML
الصيغ في تطبيقات اللوحة