Ext JS
Ext JS هو إطار عمل لتطبيقات جافا سكريبت يُستخدم لبناء تطبيقات ويب تفاعلية متعددة المنصات [ 2 ] باستخدام تقنيات مثل Ajax و DHTML وبرمجة DOM . يمكن استخدامه كإطار عمل بسيط للمكونات (على سبيل المثال، لإنشاء جداول ديناميكية على صفحات ثابتة) وأيضًا كإطار عمل كامل لبناء تطبيقات الصفحة الواحدة (SPAs).
تم بناء Ext JS في الأصل كإضافة مكتبة [ 3 ] لـ YUI بواسطة جاك سلوكوم في 15 أبريل 2007، [ 4 ] ولم يعد يعتمد على مكتبات خارجية بدءًا من الإصدار 1.1. [ 5 ] في الوقت الحاضر، يمكن استخدام Ext JS إما كبرنامج نصي واحد (مع جميع الفئات والمكونات في ملف واحد) أو عن طريق بناء التطبيق باستخدام Sencha CMD.
سمات
عناصر التحكم في واجهة المستخدم الرسومية (المكونات)
تتضمن مكتبة Ext JS مجموعة من عناصر التحكم في النماذج المستندة إلى واجهة المستخدم الرسومية (أو " الأدوات ") لاستخدامها داخل تطبيقات الويب:
- عناصر تحكم إدخال النص في حقل النص ومنطقة النص
- حقول التاريخ مع منتقي التاريخ المنبثق
- الحقول العددية
- مربع القائمة ومربعات التحرير والسرد
- عناصر التحكم في الراديو ومربعات الاختيار
- أداة التحكم في محرر HTML
- التحكم في الشبكة (مع وضع القراءة فقط ووضع التحرير، وبيانات قابلة للفرز، وأعمدة قابلة للقفل والسحب، ومجموعة متنوعة من الميزات الأخرى)
- مكافحة الأشجار
- لوحات علامات التبويب
- أشرطة الأدوات
- قوائم على غرار تطبيقات سطح المكتب
- لوحات المناطق للسماح بتقسيم النموذج إلى أقسام فرعية متعددة
- أشرطة التمرير
- مخططات الرسومات المتجهة
السمات ومجموعات الأدوات
توفر Sencha أيضًا بعض السمات لتنسيق المكونات. يتطلب تغيير السمة تعديل ملف CSS وملف برمجي خاص بها. عند استخدام Sencha CMD، قد يلزم إعادة بناء التطبيق. [ 6 ]
ينبغي أن تعمل جميع المكونات مع كل سمة، لكن مظهرها سيختلف. على سبيل المثال، تحتوي السمة الكلاسيكية على عناصر صغيرة نوعًا ما لا تناسب الأجهزة التي تعمل باللمس. أما سمة نبتون تاتش، فتحتوي على عناصر أكبر حجمًا تناسب الأجهزة اللوحية والهواتف بشكل أفضل.
يأتي Ext JS بنسختين: الحديثة والكلاسيكية . لا يقتصر الاختلاف بينهما على القوالب المتاحة فحسب، بل يشمل أيضًا بعض الاختلافات في واجهة برمجة التطبيقات (API). لذا، فإن الانتقال من نسخة إلى أخرى ليس بالسهولة نفسها التي يتم بها الانتقال بين القوالب. وتوجد خطط لتقليص بعض الاختلافات بين النسختين في Ext JS 7.1، المقرر إصداره عام 2019.[ 7 ]
مجموعة أدوات البرمجة
Ext JS عبارة عن مجموعة من الفئات التي تتمتع بالعديد من الإمكانيات. بعض الأمثلة:
- طبقة تجريدية للمتصفحات (على سبيل المثال
Ext.isArray، يمكن استخدامها كبديل لـArray.isArray) - إدارة الدولة (المتاجر)
- طبقة اتصال الخادم (الوكلاء و
Ext.Ajax.request) - تخطيط وإدارة النوافذ
- إدارة الأحداث (مع إنشاء أحداث مخصصة مبسطة للمكونات المخصصة)
- التوجيه
نظام الطبقات
يحتوي Ext JS على نظام فئات خاص به. [ 8 ] [ 9 ] تُعرَّف الفئات باستخدام `<class>` Ext.define، ثم يُمكن إنشاء نسخة منها باستخدام Ext.create`<class>`. بعض الفئات (مثل المكونات والمخازن) يمكن أن يكون لها أسماء بديلة، ويمكن إنشاؤها باستخدام اسم بديل. تُنشأ نسخ المكونات تلقائيًا عند إنشاء المكون الأصل.
يمكن للفئة أن ترث من الفئات المخصصة والفئات المدمجة. عادةً ما ترث المكونات المخصصة من المكونات المدمجة (على سبيل المثال، MyApp.views.ProductsTableترث من المكونات المدمجة Ext.grid.Panel). [ 10 ]
يحتوي ExtJS على مُحمِّل ديناميكي مُدمج، مما يسمح للفئات بامتلاك تبعيات ديناميكية (يتم تحميلها عند الطلب). يوجد نوعان من التبعيات في ExtJS: التبعيات المُعلنة باستخدام requiresالخاصية `property`، والتي يتم تحميلها قبل إنشاء نسخة الفئة. أما التبعيات المُعرّفة في usesالخاصية `property`، فقد يتم تحميلها بعد إنشاء نسخة الفئة.
من الممكن أيضًا إعادة تعريف الفئات، حتى الفئات المدمجة. قد يكون إعادة تعريف الفئات المدمجة مفيدًا، على سبيل المثال، لتوفير دعم التدويل [ 11 ] أو لإنشاء تصحيحات. يتم دمج الفئة المعاد تعريفها مع التصريح الجديد. يمكن إعادة تعريف كل فئة عدة مرات حسب الحاجة (مثل توفير دعم التدويل ثم الترجمة).
سجل إصدارات Ext JS
Ext JS 2.0
صدرت النسخة 2.0 من مكتبة Ext JS في 4 ديسمبر 2007. وقد رُوِّج لهذه النسخة باعتبارها توفر واجهة وميزات أقرب إلى تلك المرتبطة تقليديًا بتطبيقات سطح المكتب. كما رُوِّج أيضًا لوثائق المستخدم الجديدة، ووثائق واجهة برمجة التطبيقات (API) ، والأمثلة التوضيحية. [ 12 ]
لم يوفر Ext JS 2.0 توافقًا مع الإصدارات السابقة 1.1. وقد تم تطوير دليل ترحيل لمعالجة هذه المشكلة. [ 13 ]
Ext JS 3.0
صدرت النسخة 3.0 من مكتبة Ext JS في 6 يوليو 2009. أضافت هذه النسخة دعمًا للاتصال عبر بروتوكول REST ومنصة Ext.Direct جديدة للخادم. كما أُضيفت عناصر جديدة لعرض الرسوم البيانية وقوائم العرض (ListView) إلى مكونات العرض القياسية. وكانت متوافقة مع الإصدارات السابقة، بما في ذلك الإصدار 2.0.
Ext JS 4.0
صدرت النسخة 4.0 من إطار عمل Ext في 26 أبريل 2011. وتتضمن بنية فئات مُنقّحة بالكامل، [ 14 ] وحزمة بيانات مُنقّحة، وحزمة رسوم متحركة ورسومات تستخدم SVG و VML ، [ 15 ] بالإضافة إلى تحسينات في تصميم الرسوم البيانية والقوالب. كما تتضمن بنية اختيارية توفر نمط MVC لتنظيم الكود.
Ext JS 5.0
صدرت النسخة 5.0 من إطار عمل Ext JS في 2 يونيو 2014. [ 16 ] تتضمن هذه النسخة إمكانية إنشاء تطبيقات سطح مكتب تعمل باللمس [ 17 ] ، وذلك باستخدام قاعدة بيانات واحدة، وبنية MVVM (نموذج-عرض-عرض-نموذج )، وربط البيانات ثنائي الاتجاه، وتصميمات متجاوبة، بالإضافة إلى ترقيات أخرى للمكونات مع دعم إضافة عناصر واجهة المستخدم داخل خلية الشبكة لعرض البيانات وتحليلات البيانات الضخمة. [ 18 ] كما تتضمن Ext JS 5 حزمة رسوم بيانية مُحسّنة للأجهزة التي تعمل باللمس، إلى جانب إمكانيات إضافية للرسوم البيانية المالية.
يدعم Ext JS 5 المتصفحات الحديثة والقديمة، بما في ذلك: Safari 6+، وFirefox، وIE8+، وChrome، وOpera 12+. أما على منصة الأجهزة المحمولة، فيدعم Ext JS 5 متصفح Safari على نظامي iOS 6 و7، ومتصفح Chrome على نظام Android 4.1+، وأجهزة Windows 8 ذات الشاشة اللمسية (مثل أجهزة Surface وأجهزة الكمبيوتر المحمولة ذات الشاشة اللمسية) التي تعمل بنظام IE10+.
هام: بدءًا من الإصدار الخامس من Ext JS، لا يمكنك شراء ترخيص لأقل من 5 مطورين.
Ext JS 6.0
تم إصدار الإصدار 6.0 من إطار عمل Ext JS في 1 يوليو 2015. [ 19 ] وهو يدمج إطار عمل Sencha Touch (للهواتف المحمولة) في Ext JS. [ 20 ]
Ext JS 7.0
تم إصدار النسخة 7.0 من إطار عمل Ext JS في 29 أغسطس 2019. [ 21 ] وقد قدمت هذه النسخة العديد من المكونات الجديدة في مجموعة الأدوات الحديثة. كما حصلت مجموعة الأدوات الكلاسيكية على سمة تصميم ماتيريال .
سينشا
في 15 يونيو 2010، تم الإعلان عن دمج Ext JS مع JQTouch و Raphaël [ 22 ] لتشكيل منظمة جديدة تسمى Sencha Inc. ولا يزال Ext JS متاحًا كمنتج رئيسي على موقع Sencha الإلكتروني الجديد [ 23 ] جنبًا إلى جنب مع Sencha Touch و Sencha GWT (الآن Sencha GXT) و Sencha Architect و Sencha Animator و Ext core.
في 23 أغسطس 2017، استحوذت شركة IDERA (المالكة بدورها لشركة Embarcadero Technologies ) على شركة Sencha. وتشتهر Embarcadero باستحواذها على برامج تطوير التطبيقات السريعة مثل Delphi (التي تعتمد على لغة البرمجة Object Pascal كلغة برمجة أساسية). [ 24 ]
إضافة Sencha JetBrains
تُعدّ إضافة Sencha لـ JetBrains أداةً لبيئة التطوير المتكاملة، تُسهّل التكامل بين أطر عمل Sencha وبرنامج JetBrains. ويأتي هذا التكامل على شكل إكمال تلقائي للتعليمات البرمجية ، وفحصها، واقتراحها، مع مراعاة سلوك JetBrains الأصلي.
Ext.NET
Ext.NET هو إطار عمل مكونات ASP.NET يدمج مكتبة Ext، [ 25 ] الإصدار الحالي (اعتبارًا من سبتمبر 2017) هو 4.4 والذي يدمج إصدار ExtJS 6.5.1.
سجل الترخيص
كان برنامج YUI-Ext متاحًا بموجب ترخيص BSD . في أبريل 2008، تم تغيير ترخيص المصدر المفتوح المرتبط بـ Ext. في الإصدار 2.0.2، ذكر المطورون أن Ext متاح بموجب ترخيص مشابه لترخيص LGPL طالما أنك "تخطط لاستخدام Ext بطريقة شخصية أو تعليمية أو غير ربحية" أو "في مشروع مفتوح المصدر يمنع استخدام برامج غير مفتوحة المصدر" أو "تستخدم Ext في تطبيق تجاري ليس مكتبة أو مجموعة أدوات لتطوير البرامج". لم يعد هذا هو الحال مع Ext 2.1. [ 26 ] يدعي مطورو Ext أن القسم 7 [ 27 ] من ترخيص LGPL بصيغته الحالية لا ينطبق على "الشروط" التي يتطلبها ترخيصهم قبل السماح بالتوزيع بموجب ترخيص LGPL، على عكس "القيود الإضافية" التي يسمح القسم 7 للموزع بإزالتها. [ 28 ]
في 20 أبريل 2008، تم إصدار Ext 2.1 بموجب هيكل ترخيص مزدوج جديد يسمح بخيارات ترخيص GPL 3.0 الكامل أو ترخيص احتكاري. [ 29 ]
أثار تغيير الترخيص بمرور الوقت، من ترخيص مفتوح المصدر متساهل إلى ترخيص مزدوج مقيد، جدلاً في مجتمع مستخدمي Ext. [ 30 ] [ 31 ] [ 32 ] [ 33 ]
نشرت شركة سينشا تفاصيل حول شروط ترخيصها التجاري وترخيص GPL على موقعها الإلكتروني. [ 34 ]
في نوفمبر 2018، أعلنت شركة Sencha عن إصدارها المجتمعي المجاني، ولكنه مقيد بالإيرادات السنوية للفرد أو الشركة التي تستخدم ExtJS. [ 35 ] [ 36 ]
انظر أيضاً
مراجع
- ↑ "وصلت Ext JS 7.8" . Sencha.com . 21 مايو 2024. تم الاطلاع عليه بتاريخ 21 مايو 2024 .
- ↑ انظر أيضًا، تطبيق الإنترنت الغني
- ↑ "عشرة أسئلة مع جاك سلوكوم، مؤلف موقع YAHOO.ext" . مؤرشف من الأصل بتاريخ 13 سبتمبر 2015. تم الاطلاع عليه بتاريخ 11 أغسطس 2015 .
- ↑ "@jackslocum #ExtJS 1.0 تم إصداره في 15 أبريل 2007. عيد ميلاد سعيد. @Sencha" . جاك سلوكوم . تم الاطلاع عليه بتاريخ 14 أبريل 2013 .
- ↑ ابتداءً من الإصدار 2.0، يعمل Ext JS مع مكتبات أساسية أو محولات مختلفة (مثل YUI و jQuery و Prototype )، أو يمكن تشغيله بشكل مستقل . وقد أُزيلت إمكانية العمل مع مكتبات أساسية متعددة في الإصدار 4.0.
- ↑ "نظام السمات | Ext JS 6.5.3" . وثائق Sencha . تم الاطلاع عليه بتاريخ 11-06-2018 .
- ↑ "تحديث خارطة طريق منتجات سينشا" . Sencha.com . 29-11-2017 . تم الاطلاع عليه بتاريخ 11-06-2018 .
- ↑ "نظام الفئات | Ext JS 6.5.3" . وثائق Sencha . تم الاطلاع عليه بتاريخ 11-06-2018 .
- ↑ "أساسيات البرمجة الكائنية | Ext JS 6.5.3" . وثائق Sencha . تم الاطلاع عليه بتاريخ 11-06-2018 .
- ↑ "المكونات | Ext JS 6.5.3" . وثائق Sencha . تم الاطلاع عليه بتاريخ 10-06-2018 .
- ↑ "الترجمة | Ext JS 6.5.3" . وثائق Sencha . تم الاطلاع عليه بتاريخ 11-06-2018 .
- ^ "امتداد JS 4.0.7 – مستندات Sencha" . Extjs.com . تم الاسترجاع 2012/11/19 .
- ↑أُرشف بتاريخ 20 فبراير 2008 في أرشيف الإنترنت (Wayback Machine) .
- ↑ "العد التنازلي لإصدار Ext JS 4: التحميل الديناميكي ونظام الفئات الجديد | مدونة" . سينشا. 19 يناير 2011. تم الاطلاع عليه بتاريخ 19 نوفمبر 2012 .
- ↑ "العد التنازلي لإصدار Ext JS 4: حزمة البيانات | مدونة" . سينشا. 21-01-2011 . تم الاطلاع عليه بتاريخ 19-11-2012 .
- ↑ "الإعلان عن Sencha Ext JS 5 | مدونة" . Sencha. 2014-06-02 . تم الاطلاع عليه بتاريخ 2014-07-16 .
- ↑ "Sencha Ext JS 5 Unifies Mobile, Desktop App Dev" . eWeek. 2014-06-14 . تم الاطلاع عليه بتاريخ 2014-09-11 .
- ↑ "Sencha Ext JS 5 تبسيط وتوحيد" . دكتور دوبس. 2014-06-05 . تم الاطلاع عليه بتاريخ 2014-09-11 .
- ↑ "ملاحظات الإصدار لـ EXT JS 6.0.2" . تم الاطلاع عليه بتاريخ 6 يناير 2017 .
- ↑ "Sencha توحد أطر تطوير جافا سكريبت" . 20 مارس 2015. تم الاطلاع عليه بتاريخ 28 أغسطس 2015 .
- ↑ "ملاحظات الإصدار لـ EXT JS 7.0.0" . تم الاطلاع عليه بتاريخ 9 يوليو 2019 .
- ^ "تحويلة JS + jQTouch + Raphaël = Sencha | مدونة" . سينشا. 2010-06-14 . تم الاسترجاع 2012/11/19 .
- ↑ "إطار عمل جافا سكريبت الرائد في الصناعة لبناء تطبيقات الويب المكتبية | Sencha Ext JS | المنتجات" . Sencha . تم الاسترجاع في 19 نوفمبر 2012 .
- ↑ دياماندوبولوس، سيبيل (25 أغسطس 2017). "شركة IDERA تستحوذ على Sencha لتعزيز أعمال أدوات المطورين" . sencha.com . شركة Sencha . تم الاطلاع عليه بتاريخ 12 سبتمبر 2017 .
- ↑ "– إطار عمل مكونات ASP.NET (WebForm + MVC) الذي يدمج مكتبة Sencha Ext JS JavaScript | مكونات ASP.NET لتطبيقات WebForms وMVC. يدمج إطار عمل Sencha ExtJS" . Ext.NET. 2011-09-20 . تم الاطلاع عليه بتاريخ 2012-11-17 .
- ↑ "تغيير الترخيص؟" . Extjs.com . تم الاطلاع عليه بتاريخ 2022-05-06 .
- ↑ "رخصة جنو العمومية الصغرى - الإصدار 3، 29 يونيو 2007" . Gnu.org . تم الاطلاع عليه بتاريخ 17 نوفمبر 2012 .
- ↑ "منتديات سينشا، تغيير ترخيص ExtJS" .
- ↑ "إصدار Ext JS 2.1 و Ext GWT 1.0، ومعاينة Ext JS 3.0 | مدونة | Sencha" . Extjs.com. 22-04-2008 . تاريخ الاسترجاع: 19-11-2012 .
- ↑ الاثنين 28 أبريل 2008، الساعة 3:08 مساءً، بقلم تيم أوبراين، قسم الرأي (2008-04-28). "خدعة ترخيص تُصيب ExtJS و Java Service Wrapper: مجتمعات مُستاءة - مدونة O'Reilly ONJava" . Oreillynet.com . تاريخ الاطلاع: 2012-11-19 .
{{cite web}}: صيانة CS1: الأسماء الرقمية: قائمة المؤلفين ( رابط ) - ↑ آساي، مات (25 فبراير 2008). "ExtJS: عندما لا يكون المصدر المفتوح مفتوحًا على الإطلاق | الطريق المفتوح - أخبار CNET" . News.cnet.com . تم الاطلاع عليه بتاريخ 19 نوفمبر 2012 .
- ↑ "Ext JS ومتعة تراخيص المصادر المفتوحة" . أجاكسيان. 26-04-2008 . تم الاطلاع عليه بتاريخ 19-11-2012 .
- ↑ "جدل متزايد حول نمط الشخصية EXTJS « The Byte Stops Here»" . Bytestopshere.com . تاريخ الاسترجاع: 19 نوفمبر 2012 .
- ↑ "ترخيص سينشا | الموقع الإلكتروني | سينشا" . Sencha.com. 13 يناير 2011. تم الاطلاع عليه بتاريخ 16 مايو 2016 .
- ↑ "الإعلان عن إصدار Sencha Ext Community Edition" . Sencha.com . 2018-11-06 . تم الاطلاع عليه بتاريخ 2019-12-06 .
- ↑ "إصدار مجتمع Ext JS" . Sencha.com . 31-10-2018 . تم الاطلاع عليه بتاريخ 06-12-2019 .
فهرس
- أوركارد، ليزلي م.؛ بهليفانيان، آرا؛ كون، سكوت؛ جونز، هارلي (31 أغسطس 2009). أطر عمل جافا سكريبت الاحترافية: بروتوتايب، وYUI، وExtJS، وDojo، وMooTools ( الطبعة الأولى). دار نشر Wrox . ص 888. ISBN 978-0-470-38459-6أُرشف من الأصل في 6 يوليو 2011. تم الاطلاع عليه في 15 أغسطس 2009 .
- فريدريك، شيا؛ رامزي، كولين؛ "كَتَر" بليدز، ستيف (28 نوفمبر 2008). Learning Ext JS ( الطبعة الأولى). Packt Publishing . ص 299. ISBN 978-1-84719-514-2.
- غونزاليس، أرماندو؛ فيلا، كريسفيل (8 أكتوبر 2012). Learning Ext JS 4 ( الطبعة الأولى). Packt Publishing . ص 434. ISBN 978-1-84951-684-6.
روابط خارجية
- موقع Ext JS الأصلي من تصميم جاك سلوكوم
- مكتبات جافا سكريبت
- أجاكس (برمجة)
- أطر عمل الويب
