Прочетете на английски

Споделяне чрез


Поддържане на здравословен ALM на формуляр на приложение, управлявано от модел

Тази статия ви предоставя информация за различните сценарии за това как да внедрите и практикувате здравословно управление на жизнения цикъл на приложения (ALM) за персонализиране на формуляри във вашите моделирани решения за приложения.

Следващите раздели описват как работи сливането на формуляри и как да поддържате персонализации. Основните сценарии за разработка с препоръки за поддържане на успешен ALM за модел, управляван от приложение, са подробно описани във всеки следващ раздел. Всеки сценарий включва стъпки за следване, които могат да ви помогнат да внедрите правилен процес на ALM при актуализиране на вашето решение или приложение, управлявано от модел.

Създаване на нова форма и поддържането й с помощта на множество управлявани решения

Следвайте тези стъпки, за да приложите здрава форма на ALM за този сценарий.

  1. Създайте нов формуляр с име ФормулярA във вашата среда за разработка и изпълнете персонализации на формуляра.
  2. Създайте ново решение (с име Решение А в диаграмата по-долу) в средата за разработка, което ще бъде неуправляемо решение и добавете новия си формуляр. Експортиране на решение като управлявано. Тази стъпка експортира пълен FormXml за формуляра.
  3. В тестовата среда импортирайте завършено решение от стъпка 2, която създава ФормулярA в тестовата среда. В диаграмата по-долу, ФормулярA се създава в тестовата среда и се показва потребителският интерфейс за формуляра Поле1 и Поле2, които Решение А добавя към формуляра.
  4. Когато допълнително персонализирате формуляра, който сте създали в стъпка 1, като използвате нова среда за разработка (източник), импортирайте управляваното Решение А създаден в стъпка 2, уверете се, че екземплярът за разработка, който използвате, има ФормулярА в управлявано състояние. Както е показано на диаграмата по-долу, управлявано Решение А се импортира в средата за разработка и формата се персонализира, създавайки активни персонализации. Тогава, ФормулярA след това може да се добави към ново неуправляемо решение (Решение Б в диаграмата) и експортирани като завършено решение от средата за разработка. Тази стъпка експортира диференциален (diff) FormXml за формуляра.
  5. В тестовата си среда импортирайте завършено решение (Решение Б) от стъпка 4. Както е показано на диаграмата по-долу Решение Б добавя ново Поле3 към ФормулярA и премахва Поле2, което беше добавено от Решение А. Потребителският интерфейс за формуляра в тестовата среда вече се показва Поле3 и Поле1 на формуляра, но не и Поле2 след сливането.

Сценарий 1 от ALM диаграма.

Нездравословен пример за този сценарий

Както се вижда на диаграмата по-долу, не е здравословна практика за ALM да се създават множество управлявани решения от средата за разработка, където основното решение (Решение А) е в неуправлявано състояние. Това е така, защото когато създавате друго неуправляемо решение (Решение Б) за неуправляемата форма FormXml се експортира като пълен FormXml, вместо като diff FormXml, както е показано в валидния сценарий по-горе. Впоследствие промени като премахване на колона няма да влязат в сила.

Пример за ALM за нездравословна форма за този сценарий.

Създаване на нова форма и извършване на персонализации с помощта на кръпки и надстройки

Следвайте тези стъпки, за да приложите здрава форма на ALM за този сценарий.

  1. Създайте нов формуляр с име ФормулярA във вашата среда за разработка и изпълнете персонализации на формуляра.

  2. Създайте решение (Решение А в диаграмата по-долу), което ще бъде неуправляемо решение и добавете новия си формуляр. Експортиране на решение като управлявано. Тази стъпка експортира пълен FormXml за формуляра.

  3. В тестовата среда импортирайте завършено решение от стъпка 2, създавайки по този начин формуляра в тестовата среда. В диаграмата по-долу, ФормулярA се създава в тестовата среда и се показва потребителският интерфейс за формуляра Поле1 и Поле2, които Решение А добавя към формуляра.

  4. Когато допълнително персонализирате формуляра, който сте създали в Стъпка 1 с помощта на кръпки, използвайте същата среда, където Решение А е в неуправлявано състояние и създайте кръпка за решението и персонализирайте формата. След това експортирайте пластира като завършено решение. Тази стъпка експортира пълен formXml за формуляра.

  5. В тестовата си среда импортирайте завършено решение за корекция от стъпка 4. Както е показано на диаграмата по-долу, Решение А кръпка добавя ново Поле3 към ФормулярA и премахва Поле2, което беше добавено от Решение А.

    Бележка

    Патчовете, съдържащи пълен formXml винаги се сравняват с основния слой, от който е създаден пластирът, и игнорират всички междинни корекции между основата и текущия пластир. В резултат на това Поле2 е премахнато, тъй като съществува в основния слой Решение A и премахването е открито. От друга страна, Field3 се добавя от това решение за корекция и не може да бъде премахнато от следващите корекции. По този начин полетата, добавени чрез решения за корекция, са адитивни по природа.

  6. Когато допълнително персонализирате формуляра, който сте създали в Стъпка 1 с помощта на надстройки, използвайте същата среда, където Решение А е в неуправлявано състояние и създайте клонирано Решение A и персонализирайте формуляра. След това експортирайте надстройката на Решение А като завършено решение. Тази стъпка експортира пълен FormXml за формуляра.

  7. В тестовата си среда импортирайте завършено Решение А, надстройка от стъпка 6. Както е показано на диаграмата по-долу надстройката на Решение А добавя ново Поле4 към ФормулярA и премахва Поле2, което беше добавено от Решение А. Потребителският интерфейс за формуляра в тестовата среда вече се показва Поле1, Поле3 и Поле4 на формуляра, но Поле2 ще бъде премахнато след сливането на формуляра от импортирането.

Сценарий 2 формира ALM диаграма.

Персонализиране на съществуващ управляван формуляр и поддържането й с помощта на множество управлявани решения

Следвайте тези стъпки, за да приложите здрава форма на ALM за този сценарий.

  1. Редактирайте съществуващ управляван формуляр с име ФормулярB в този пример във вашата среда за разработка и изпълнете персонализации на формуляра. Имайте предвид, че решение А е завършено решение, вече инсталиран за формуляра в средата за разработка.
  2. Създайте ново решение (Решение B в диаграмата по-долу), което ще бъде неуправлявано решение и добавете новия си ФормулярB. Експортиране на решение като управлявано. Тази стъпка експортира диференциален (diff) FormXml за формуляра.
  3. В тестовата среда импортирайте завършено решение от стъпка 2, създавайки по този начин втори слой на решение за формуляра. В диаграмата по-долу ФормулярB взема слетите промени от Решение А и Решение B в тестовата среда и ПИ за формуляра показва Поле1 и Поле3 на формуляра, но не и Поле2, което е премахнато от Решение B
  4. Когато допълнително персонализирате формуляра, който сте персонализирали в Стъпка 1, като използвате нови управлявани решения, използвайте нова среда за разработка с ФормулярB в управлявано състояние. Както е показано на диаграмата по-долу, Решение А и Решение Б управляваните решения се внасят в новата среда за разработка. FormB е персонализиран, създавайки активни персонализации, които след това могат да бъдат добавени към ново решение (Решение C на диаграмата) и експортирани като завършено решение.
  5. В тестовата си среда импортирайте завършено Решение C от стъпка 4. Както е показано на диаграмата по-долу Решение C добавя ново Поле4 към ФормулярB и премахва Поле3, което беше добавено от Решение B. Потребителският интерфейс за формуляра в тестовата среда вече се показва Поле1 и Поле4 на формуляра, но не и Поле2 и Поле3.

Сценарий 3 формира ALM диаграма.

Нездравословен пример за този сценарий

Както се вижда на диаграмата по-долу, не е здравословна практика за ALM да се създават множество управлявани решения от средата за разработка, която съдържа друго неуправлявано решение, което сте създали за същия формуляр. Забележете, че Решение Б е в неуправлявано състояние. Когато създавате друго неуправляемо решение (Решение C) за ФормулярB, FormXml се експортира като различен FormXml, както е показано в стъпка 4 в горния сценарий. Но ФормулярB съдържа и промените от Решение Б, които ще бъдат заменени от новите ви промени.

Например, както се вижда на диаграмата по-долу Поле3 се добавя към ФормулярB в Решение Б. Но сега, когато създавате ново Решение C в тази среда, с Решение Б в неуправлявано състояние и премахнете Поле3, Поле3 също ще бъдат премахнати в средата за разработка. Field3 няма да бъде проследен в diff FormXml при експортиране на решението, тъй като промяната на добавяне и премахване на тази колона е направена в същия активен слой. Това означава, че когато се управлява Решение C се импортира в тестовата среда, формулярът пак ще изобрази Поле3 защото diff FormXml никога не го записва като премахнат (както беше премахнат в стъпка 5 в сценария за здрава форма по-горе). Извършването на персонализирането на формулярите ви по този начин ще доведе до несъответствие на средата за разработка с тестовата среда.

Друг пример за нездравословна форма ALM за този сценарий.

Персонализиране на съществуващ управляван формуляр и поддържането й с помощта на корекции и надстройки

Следвайте тези стъпки, за да приложите здрава форма на ALM за този сценарий.

  1. Персонализиране на съществуващ управляван формуляр с име ФормулярB в този пример във вашата среда за разработка и изпълнете персонализации на формуляра. Имайте предвид, че Решение А е завършено решение, вече инсталиран за формуляра в средата за разработка.

  2. Създайте решение (Решение B), което ще бъде неуправлявано решение и добавете новия си ФормулярB. Експортиране на решение като управлявано. Тази стъпка експортира диференциален formXml за формуляра.

  3. В тестовата среда импортирайте завършено решение B от стъпка 2, създавайки по този начин втори слой на решение за формуляра. В диаграмата по-долу, формулярB получава обединените промени от Решение А и Решение Б в тестовата среда. Освен това потребителският интерфейс за ФормулярB показва Поле1 и Поле3 във формуляра, но не и в поле 2, което беше премахнато от Решение Б.

  4. Когато допълнително персонализирате формата, която сте персонализирали в Стъпка 1 с помощта на решение за корекция, можете да използвате същата среда за разработка като стъпка 1, където Решение Б съществува в неуправлявано състояние. Както е показано на диаграмата по-долу, Решение А е в управлявано състояние и Решение Б е в неуправлявано състояние. Формата е допълнително персонализирана и вие създавате кръпка за Решение Б добавяне на вашата форма към това решение и експортиране като управлявано решение за корекция. Тази стъпка експортира диференциален formXml.

  5. В тестовата си среда импортирайте завършено решение B за корекция от стъпка 4. Както е показано на диаграмата по-долу, Решение Б кръпка добавя ново Поле4 към ФормулярB и премахва Поле3, което беше добавено от Решение B.

    Бележка

    Пачовете са адитивни по природа и не могат да премахват компоненти, като колони, от формуляра. Така Поле3 няма да бъдат премахнати от формуляра. Потребителският интерфейс за формуляра в тестовата среда вече се показва Поле1, Поле3 и Поле4 във формуляра, но не и Поле2.

  6. Когато допълнително персонализирате формуляра, който сте създали в Стъпка 1 с помощта на надстройки, използвайте същата среда, където Решение B е в неуправлявано състояние и създайте клонирано Решение B и персонализирайте формулярB. Експортирайте надстройката като завършено решение. Тази стъпка експортира диференциален formXml за формуляра.

  7. В тестовата си среда импортирайте завършено решение за надстройка Решение B от стъпка 6. Както е показано на диаграмата по-долу Решение B за надстройка добавя ново Поле5 към ФормулярB и премахва Поле4, което беше добавено от Решение B. Потребителският интерфейс за формуляра в тестовата среда вече се показва Поле1, Поле4 и Поле5 на формуляра, но Поле2 и Поле3 са премахнати.

Редактирайте съществуващ управляван формуляр, като използвате диаграма за корекции и надстройки.

Поддържане на неуправлявани решения и персонализации за нова форма в множество среди за разработка

Следвайте тези стъпки, за да приложите здрава форма на ALM за този сценарий.

  1. В Среда за развитие 1 създайте нов формуляр с име ФормулярA във вашата среда за разработка и изпълнете персонализации на формуляра.
  2. Създайте решение (Решение А в диаграмата по-долу), което ще бъде неуправляемо решение и добавете новия си формуляр. Експортиране на решение като неуправлявано. Тази стъпка експортира пълен FormXml за формуляра.
  3. В Среда за развитие 2, импортирайте неуправляваното решение от стъпка 2, която създава формуляра в Среда за развитие 2. В диаграмата по-долу, ФормулярA се създава и потребителският интерфейс за формуляра показва Поле1 и Поле2, които Решение А добавя към формуляра.
  4. Допълнително персонализирате формата в Среда за развитие 2 извършване на активни персонализации в средата, като добавяне на нова колона с име Поле3. FormA вече показва Field1, Field2 и Field3.
  5. Във вашия Среда за развитие 1, вие допълнително персонализирате формата също чрез добавяне Поле4. Потребителският интерфейс за формуляра в Среда за разработка 1 вече се показва Поле1, Поле2 и Поле4.
  6. Експортиране неуправлявано Решение А с промените, направени в стъпка 5. Тази стъпка експортира пълен FormXml за формуляра.
  7. В Среда за разработка 2 импортирайте незавършено Решение А надстройка от стъпка 6. Тъй като решението, което импортирате, съдържа пълния FormXml за формуляр A, той замества активната персонализация, направена в Среда за развитие 1. И така, формулярът сега показва само Поле1, Поле2 и Поле4, но не Поле3, което беше допълнителната активна персонализация направена през Среда за развитие 1. Това поведение се случва с всеки неуправляван импорт на решение, който има пълния FormXml за формуляра.

Неуправлявани решения в множество среди.

Поддържане на неуправлявани решения и персонализации за съществуващ формуляр в множество среди за разработка

Следвайте тези стъпки, за да приложите здрава форма на ALM за този сценарий.

  1. В Среда за развитие 1, персонализирате съществуващ формуляр, наречен ФормулярB в този пример. След това извършете персонализиране на формуляра.
  2. Създайте решение (Решение B в диаграмата по-долу), което ще бъде неуправлявано решение и добавете новия си ФормулярB. Експортиране на решение като неуправлявано. Тази стъпка експортира диференциален formXml за формуляра.
  3. В Среда за разработка 2 импортирайте незавършено решение от стъпка 2, създавайки по този начин втори слой на решение за формуляра. ПИ на формулярB показва Поле1, Поле2 и Поле3 след сливането на формуляра.
  4. Допълнително персонализирате формата в Среда за развитие 2 извършване на активни персонализации в средата, като добавяне на нова колона с име Поле4. Формуляр Б вече показва Поле1, Поле2, Поле3 и Поле4.
  5. В Среда за развитие 1, вие допълнително персонализирате формата също чрез добавяне на нова колона с име Поле5. Потребителският интерфейс за формуляра в Среда за разработка 1 вече се показва Поле3 и Поле5.
  6. Експортиране неуправлявано Решение B с промените, направени в стъпка 5. Тази стъпка експортира диференциален formXml за формуляра.
  7. В Среда за разработка 2 импортирайте незавършено Решение B надстройка от стъпка 6. Тъй като решението, което импортирате, съдържа диференциалния FormXml за формуляр B, той се слива с активната персонализация, направена в Среда за развитие 1. Така че формулярът вече показва Поле1, Поле2, Поле3, Поле4 и Поле5. Това поведение се случва с всеки неуправляван импорт на решение, който има диференциалния FormXml за формуляра.
  8. Ако сливането на формуляр в стъпка 7 не е това, което искате, въпреки че импортирате diff FormXml с неуправляваното решение и искате да можете да презапишете активните персонализации, направени в Среда за развитие 2, след това премахнете активния слой за ФормулярB. Повече информация: Премахнете неуправляван слой.
  9. Експортиране неуправлявано Решение B с промените, направени в стъпка 5. Тази стъпка експортира диференциален formXml за формуляра.
  10. В Среда за разработка 2 импортирайте незавършено Решение B надстройка от стъпка 9. Тъй като няма активен слой за формата в Среда за развитие 2, (вижте стъпка 8), всички промени от неуправлявани Решение Б се импортират, въпреки че импортирате diff FormXml за ФормулярB. Така че формулярът вече показва само Поле1, Поле2, Поле3 и Поле5. Това поведение се случва с всеки неуправляван импорт на решение, който има диференциалния FormXml за формуляра. Това е същият резултат като стъпка 7 в Поддържане на неуправлявани решения и персонализации за съществуваща форма в множество среди за разработка сценарий.

Сценарий 6 от схемата за управление на жизнения цикъл на приложението.

Пълна и диференциална форма XML

Всеки експортиран пакет от решения включва файл customizations.xml. Винаги, когато формуляр е включен в решение, свързаната дефиниция на формуляр съществува в секциите FormXml на файла customizations.xml. FormXml може да бъде пълен или диференциален (разл.).

Пълен FormXml

FormXml, който получавате при експортиране на решение за формуляр в неуправлявано състояние, се нарича пълен FormXml. Пълно означава, че съдържа цялата дефиниция на формуляра. Когато създавате нов формуляр и го експортирате, формулярът винаги ще бъде пълен FormXml, тъй като формулярът в средата, от която експортирате, е в неуправлявано състояние и също е в състояние на създаване. Ако експортирате други решения от същата среда, те също ще включват пълен FormXml. Тъй като solutionaction атрибутът показва различен FormXml, пълният FormXml във файла customization.xml в решението, което експортирате, няма да съдържа solutionaction атрибути.

Диференциална (различна) формаXml

FormXml, който получавате при експортиране на решение за формуляр в управлявано състояние, се нарича диференциален FormXml. Diff означава, че FormXml съдържа само промените, извършени в активните персонализации в тази среда, а не цялата дефиниция на формуляра. Когато персонализирате съществуващ управляван формуляр и го експортирате, формулярът винаги ще бъде diff FormXml, защото ще съдържа само активните промени, направени в него. Разликата FormXml във файла customization.xml в решението, което експортирате, ще съдържа solutionaction атрибути, дефиниращи какви са промените Добавено, Премахнато, Модифициран.

Diff FormXml гарантира, че вашето решение ще изразява само промените, от които се нуждае вашето приложение, и ще бъде повлияно по-малко от промени от други слоеве. Diff FormXml също така прави решението по-малко обемисто и му помага да импортира по-бързо.

Вижте също

Препоръки за здрава форма ALM