Skip to content
Tekunda Team

Tekunda Team

نماذج تغليف Salesforce لشركات ISV: مقارنة 1GP و2GP وUnmanaged

نماذج تغليف Salesforce لشركات ISV: مقارنة 1GP و2GP وUnmanaged

بالنسبة لشركة ISV تبني منتجًا تجاريًا على AppExchange، نموذج التغليف باب يُفتح في اتجاه واحد: الـ namespace ومسار الترقية وحماية الملكية الفكرية، كلها تتحدد بهذا القرار المبكر الواحد. الحزم المُدارة من الجيل الثاني (2GP) هي الاختيار الافتراضي الصحيح لكل منتج تجاري جديد تقريبًا اليوم، بينما يبقى الجيل الأول (1GP) للحالات القديمة الخاصة، وتُستبعد الحزم unmanaged تمامًا لأي شيء تنوي بيعه.

ما الفرق بين حزم 1GP و2GP وunmanaged؟

الحزمة unmanaged بلا namespace وتشحن metadata قابلة للتعديل بالكامل. هذا مناسب لقوالب المصدر المفتوح أو لعملية نشر واحدة، لكن كل مكوّن يصبح غير مميز عن تخصيصات العميل نفسه لحظة وصوله، فتفقد القدرة على تحديد ما بنيته أو دعمه أو ترقيته بأمان.

أما الحزمة المُدارة، سواء 1GP أو 2GP، فلها namespace ومغلقة. يثبتها العملاء ويستخدمونها ولا يمكنهم تعديل مكوناتها الداخلية مباشرة. هذا ما يجعلها منتجًا وليس عملية نشر لمرة واحدة: أنت تتحكم في وتيرة الإصدارات، وSalesforce تحمي الحدود بالنيابة عنك.

الفرق بين 1GP و2GP يتعلق بالأدوات والاعتماد على الـ org. تُبنى حزم 1GP وتُرقَّم داخل packaging org مخصص يصبح جزءًا دائمًا لا يمكن استبداله من مسار الإصدار. أما حزم 2GP فتعتمد على المصدر، وتُبنى من نظام إدارة الإصدارات باستخدام Salesforce CLI، ولا تحتاج إلى packaging org ثابت أصلًا، ولهذا توجّه Salesforce شركات ISV الجديدة نحو 2GP منذ سنوات.

لماذا الـ namespace قرار دائم؟

بمجرد تسجيل namespace على Developer Edition org واستخدامه في حزمة مُصدرة، لا يمكن تغيير اسمه أو نقله إلى org آخر أو إعادة استخدامه. كل Apex class وcustom field وobject يشحنه منتجك سيحمل هذه البادئة في كل org لدى كل عميل، إلى الأبد. الأخطاء الإملائية والاختصارات الغريبة والأسماء المتعجلة لا تأخذ فرصة ثانية، فخطط للـ namespace كما تخطط لاسم المنتج، لا كتفصيلة تقنية لاحقة.

إزاي تعمل حماية الملكية الفكرية والتراخيص فعلًا؟

تترجم الحزم المُدارة كود Apex إلى byte code لا يستطيع العملاء عرضه أو تعديله، وهذه هي الحماية الأساسية التي يحتاجها أي منتج تجاري قبل أن يقترب من AppExchange Security Review. الحزم unmanaged لا تقدم شيئًا من ذلك: منطق عملك يُشحن كـ metadata عادية مقروءة ويمكن نسخها.

التراخيص طبقة منفصلة تمامًا. لقياس المقاعد والفترات التجريبية وتواريخ الانتهاء فعليًا، تربط حزمتك بـ License Management App (LMA)، الذي يتتبع عمليات التثبيت مقابل الـ leads والـ opportunities لديك. هذا لا يعمل بشكل سليم إلا مع الحزم المُدارة، فلا توجد طريقة موثوقة لترخيص وفرض الاستحقاقات على شيء يستطيع العميل تعديله بحرية.

وماذا عن الحزم unlocked؟

تقع الحزم unlocked بين هذين العالمين: لها namespace وإدارة إصدارات مثل 2GP، لكن الـ metadata قابلة للتعديل ولا يوجد فرض للتراخيص. صُممت للنشر الداخلي على عدة orgs داخل شركة واحدة، لا للبيع لعملاء غرباء على AppExchange. لا تلجأ إليها كاختصار للتهرب من التغليف التجاري.

أي نموذج تغليف يناسب مرحلة شركتك كـ ISV؟

  • بناء منتج AppExchange جديد اليوم: استخدم 2GP. إدارة إصدارات عبر الـ CLI، وتتبع ancestry للترقيات، ولا اعتماد على packaging org هش.
  • استلام منتج 1GP قديم أو صيانته: ابق على 1GP حتى توجد خطة ترحيل مدروسة. الـ namespace وقاعدة المشتركين ينتقلان معك، لكن التحويل له قيود تقنية حقيقية.
  • توزيع أدوات أو قوالب مجانية قابلة للتعديل: الحزمة unmanaged مشروعة هنا، تحديدًا لأنك لا تحمي ملكية فكرية ولا تتقاضى مقابل الترقيات.
  • توحيد عمليات النشر عبر الـ orgs الخاصة بك: الحزم unlocked، وليس الحزم المُدارة المصممة لإعادة البيع.

الخطأ هنا تكلفة إصلاحه عالية، ولهذا يبدأ عمل تطوير المنتجات في Tekunda مع شركاء AppExchange بهذا القرار تحديدًا، قبل بناء أي مكوّن، لأن كل قرارات الحوكمة والاختبار والإصدار بعده تعتمد عليه.

FAQ

هل يمكنني الانتقال من unmanaged إلى managed لاحقًا؟

ليس مباشرة. ستعيد بناء المكونات داخل حزمة مُدارة لها namespace وتدير عملية ترحيل حقيقية للعملاء، لأن الـ metadata والمعرّفات الأساسية لا تنتقل بشكل سليم.

هل يمكنني تحويل حزمة 1GP إلى 2GP؟

نعم، تدعم Salesforce تحويل الحزم المُدارة 1GP إلى 2GP مع الاحتفاظ بنفس الـ namespace وorgs المشتركين، لكن ذلك يتطلب تخطيطًا دقيقًا حول package ancestry والتثبيتات الحالية.

هل أحتاج إلى namespace إذا لم أكن أبيع على AppExchange؟

فقط إذا كنت توزع حزمة managed أو unlocked على عدة orgs. النشر الداخلي الواحد عبر unmanaged metadata أو change sets لا يحتاج إليه.

هل 2GP مطلوب للإدراج على AppExchange؟

لا، حزم 1GP ما زالت مدعومة ومدرجة حتى اليوم، لكن استثمار Salesforce في الأدوات يتركز بوضوح على 2GP، ومعظم مشاريع ISV الجديدة يجب أن تبدأ منه. تحدث مع Tekunda أو تصفح المدونة إذا كنت توازن هذا القرار لمشروع قادم.

مقالات ذات صلة