كيفية تأثير إنشاء تسلسل البيانات على ترقية تطبيق ما

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

ما الذي يشكّل تنسيق البيانات الخاصة بك؟

بشأن تصميم خدمة Azure، تجد البيانات التي يتم استمرارها ونسخها في فئات C# الخاصة بك. بالنسبة للتطبيقات التي تستخدممجموعات موثوقة، فإن تلك البيانات هي العناصر الموجودة في القواميس وقوائم الانتظار الموثوقة. أما بالنسبة للتطبيقات التي تستخدم المستخدمين الموثوقينفإن هذه هي الحالة الداعمة للمستخدم. يجب أن تكون فئات C# هذه قابلة للتسلسل ليتم استمرارها ونسخها نسخًا متماثلًا. لذلك يتم تعريف تنسيق البيانات بواسطة الحقول والخصائص التي يتم تسلسلها، وكذلك كيفية تسلسلها. على سبيل المثال، IReliableDictionary<int, MyClass> البيانات تكون متسلسلة int ومتسلسلة MyClass.

تغيرات التعليمات البرمجية التي تؤدي إلى تغيير تنسيق البيانات

ونظرًا لأن تنسيق البيانات يتم تحديده بواسطة فئات C#، فقد تتسبب التغييرات التي تطرأ على الفئات في تغيير تنسيق البيانات. يجب توخي الحذر للتأكد من أن الترقية بالدور يمكنها معالجة تغيير تنسيق البيانات. أمثلة قد تتسبب في تغييرات في تنسيق البيانات:

  • مثل إضافة حقول أو خصائص أو إزالتها
  • إعادة تسمية الحقول أو الخصائص
  • تغيير أنواع الحقول أو الخصائص
  • تغيير اسم الفئة أو مساحة الاسم

اتفاق البيانات كمتسلسل افتراضي

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

كيفية تأثير تنسيق البيانات على ترقية بالدور

أثناء الترقية بالدور، هناك سيناريوهان رئيسيان قد يواجه فيهما المتسلسل إصدارًا أقدم أو أحدث:

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

ملاحظة

يشير "الإصدار الحديث" و"الإصدار القديم" هنا إلى إصدار التعليمات البرمجية التي هي قيد التشغيل. يشير "المتسلسل الحديث" إلى تعليمة برمجية المتسلسل الذي يتم تنفيذه في الإصدار الجديد من التطبيق الخاص بك. تشير "البيانات الحديثة" إلى فئة C# المتسلسلة من الإصدار الحديث من التطبيق الخاص بك.

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

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

الخطوات التالية

يرشدك Upgrading your Application Using Visual Studio خلال ترقية التطبيق باستخدام Visual Studio.

ترقية التطبيق باستخدام PowerShell ترشدك خلال ترقية التطبيق باستخدام PowerShell.

تحكّم في كيفية ترقية التطبيق الخاص بك باستخدام معلمات الترقية.

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

أصلح المشكلات الشائعة في ترقيات التطبيق بالرجوع إلى الخطوات في Troubleshooting Application Upgrades.