Ext JS
Ext JS is a JavaScriptapplication framework for building interactive cross-platform web applications[2] using techniques such as Ajax, DHTML and DOM scripting. It can be used as a simple component framework (for example, to create dynamic grids on otherwise static pages) but also as a full framework for building single-page applications (SPAs).
Originally built as an add-on library extension[3] of YUI by Jack Slocum on April 15, 2007,[4] Ext JS has had no dependencies on external libraries beginning with version 1.1.[5] Nowadays, Ext JS can be used both as a single script (with all classes and components in one file) or by building the application with the Sencha CMD.
Features
GUI controls (components)
Ext JS includes a set of GUI-based form controls (or "widgets") for use within web applications:
- text field and textarea input controls
- date fields with a pop-up date-picker
- numeric fields
- list box and combo boxes
- radio and checkbox controls
- html editor control
- grid control (with both read-only and edit modes, sortable data, lockable and draggable columns, and a variety of other features)
- tree control
- tab panels
- toolbars
- desktop application-style menus
- region panels to allow a form to be divided into multiple sub-sections
- sliders
- vector graphics charts
Themes and toolkits
Sencha also provides some themes to style the components. Changing a theme requires simply changing CSS and a script of the theme. When using Sencha CMD a re-build of the application might be required.[6]
All components should work with each theme, but their look&feel will change. For example Classic theme has rather small elements not suited for touch devices. Neptune Touch has bigger elements better suited for tablets and phones.
Ext JS comes in two flavours called modern and classic toolkit. They differ not only with available themes but there are also some API differences between them. So it is not as easy to migrate from one toolkit to the other as it is for themes. There are plans to even out some differences between the toolkits in Ext JS 7.1, which is planned for 2019.[7]
Programming toolkit
Ext JS is a composition of classes that has many capabilities. Some examples:
- an abstract layer for browsers (e.g.
Ext.isArraythat can be used as a replacement forArray.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 الأصلي من تصميم جاك سلوكوم
- مكتبات جافا سكريبت
- أجاكس (برمجة)
- أطر عمل الويب
