الثلاثاء، 9 سبتمبر 2014

شرح ال Runtime Binding و ال Licence Binding


السلام عليكم و رحمة الله و بركاته
في هذا الشرح سوف نتحدث عن ال Runtime Binding بشكل مبسط بحيث تستطيع عمل compile لبرنامجك بنجاح.

أولا: ما هي ال Runtime Binding ؟
هي عملية ربط البرنامج الخاص بك بال Runtime المثبتة علي الجهاز الخاص بك. بحيث يستطيع البرنامج ان يجد ال assemblies التي تحتوي علي ال classes و ال interfaces الضرورية لعمل البرنامج.


ثانيا: ما السبب وراء هذه العملية في الاصدار 10.0 و الاصدارات التي تليه ؟
في الاصدارات التي سبقت الاصدار 10.0 جميع برامج ال ArcGIS كانت تستخدم مجلد واحد لتنزيل ال Runtime الخاصة بها و تنزيل ال assemblies و باقي البرامج الخاصة بها. و هذا يسمي ال bin directorry. و بالتالي كانت تستخدم Runtime مشتركة و هذا هو السبب وراء عدم الحاجة لعملية ال Runtime Binding.

في الاصدار 10.0 و الاصدارات التي تلته تم فصل ال Runtime الخاصة بكل منتج من منتجات ال ArcGIS في مجلد منفصل. اي ان كل برنامج من برامج ال ArcGIS من اصدار 10.0 بدأت تستخدم bin directory خاص بها و بالتالي ال Runtime لكل برنامج مستقلة عن ال Runtime للبرنامج الاخر.
عملية الفصل هذه هي السبب وراء الحاجة لعملية ال Runtime Binding.

ثالثا: ما الفائدة من فصل ال bin directory الخاص بكل برنامج عن الاخر ؟
هناك عدة فوائد نلخص أهمها في النقاط التالية:
  • إمكانية تنزيل Service Pack الخاصة ببرنامج معين دون التأثير علي اداء البرامج الاخري.
  • إمكانية حذف Service Pack الخاصو ببرنامج معين دون التأثير علي برنامج آخر.
رابعا: كيف أقوم بال Runtime Binding ؟
  1. قم باضافة Reference علي ESRI.ArcGIS.Version بإتباع الخطوات الموجودة في إضافة reference علي مشروع ال Visual Studio 2010.
  2. قم باستخدام ال RuntimeManager static class للقيام بعملية ال Runtime Binding.
    من خلال الامر التالي:
ESRI.ArcGIS.RuntimeManager.Bind( ESRI.ArcGIS.ProductCode.Engine )
  تفصيل الامر
ESRI.ArcGIS.RuntimeManager
هو class نوعه static موجود في مكتبات ال ArcGIS يحتوي دوال تمكنك من القيام بعملية ال Runtime Binding بالاضافة الي الاستعلام عن ال Runtimes المتوفرة علي الجهاز و اصداراتها و معلومات اخري عنها

Bind
هي دالة نوعها static تقوم بربط البرنامج الخاص بك بال Runtime المحددة لها.
يلزم هذه الدالة تحديد ال Runtime التي سوف يعمل عليها البرنامج. في المثال قمنا بربط البرنامجمع ال Runtime الخاصة ببرنامج ال ArcGIS Engine. بإمكانة الربط مع برنامج آخر كمثال:
ESRI.ArcGIS.RuntimeManager.Bind( ESRI.ArcGIS.ProductCode.Desktop )

خامسا: ما هي عملية ال License Binding ؟
 هي ربط البرنامج مع ترخيص من التراخيص المتوفرة علي الجهاز. في الاصدار 10.0 تم فصل التراخيص عن بعضها و بالتالي تحتاج كمطور برمجيات ان تقوم بتحدديد الترخيص الذي سيعمل عليه البرنامج.

سادسا: ما الفائدة من تعدد التراخيص ؟
تعدد التراخيص يسمح باستخدام تراخيص من مستويات معينة
فمثلا ممكن ان يعمل ال ArcGIS Desktop علي ترخيص ال ArcView و برنامج ال ArcGIS for Server يعمل علي ترخيص ال Enterprise و بالتالي امكانية توفير تكاليف التراخيص. ففي حالة وحدة التراخيص فانت بحاجة لترخيص Enterprise لجميع البرامج لكي يعمل احدها علي ترخيص ال Enterprise أما في حالة تعدد التراخيص فانت بحاجة لشراء ترخيص Enterprise فقط للبرنامج الذي تريد ان يعمل علي ترخيص ال Enterprise و بالتالي توفير تكاليف تراخيص البرامج.

سابعا: كيف أقوم بعملية ال Licence Binding ؟
نستخدم دالة BindLicense الموجودة في نفي ال RuntimeManager class كما هو موضح في المثال التالي:
ESRI.ArcGIS.RuntimeManager.BindLicense( ESRI.ArcGIS.ProductCode.Engine )
كما في عملية ال Runtime Binding نستطيع ان نربط ببرنامج اخر.

ملاحظات :
  • في عملية ال Runtime Binding نقوم بإخبار برنامجنا من أين يحصل علي ال assemblies التي تحتوي علي ال classes و ال interfaces الضرورية للقيام بعمله علي اكمل وجه.
  • عملية ال Runtime Binding ضرورية للبرامج المستقلة و ليست ضرورية لإضافات البرامج.
  • التحقق من الترخيص يتم خلال عمل البرنامج.
  • التحقق من الترخيص يتم مرة واحدة كل مرة يتم فيها تشغيل البرنامج.
  • Runtime Binding يقوم بتحديد ال runtime  اما ال License Binding يقوم بتحديد الترخيص
  • ليس من الضروري تنزيل ال ArcGIS Engine علي الجهاز المراد تشغيل البرنامج عليه، يكفي تنزيل اي runtime و الترخيص المتوافق مع الميزات التي يدعمها البرنامج.
  • كمطور يلزمك ترخيص Developer License حتي تتمكن من عمل compile لبرامجك قبل تنصيبها علي اجهزة المستخدمين. أما المستخدم فلا يحتاج الي Developer License حتي يقوم بتشغيل البرنامج. 

ليست هناك تعليقات:

إرسال تعليق