Przeczytaj w języku angielskim

Udostępnij za pośrednictwem


Obsługiwanie prawidłowego zarządzania cyklem życia aplikacji (ALM) dla formularzy aplikacji opartych na modelu

Ten artykuł prezentuje informacje o różnych scenariuszach: jak wdrożyć i stosować odpowiednie zarządzanie cyklem życia aplikacji (ALM) do dostosowywania formularzy w rozwiązaniach aplikacji opartych na modelu.

Poniższe sekcje opisują, jak działa łączenie formularzy i jak zachować dostosowane ustawienia. Podstawowe scenariusze rozwoju wraz z zaleceniami dotyczącymi utrzymania skutecznego ALM dla formularzy aplikacji opartej na modelu są szczegółowo omówione w każdej z poniższych części. W każdym scenariuszu są zawiera kroki, które pomogą Ci wdrożyć odpowiedni proces ALM podczas aktualizacji rozwiązania lub aplikacji opartej na modelu.

Tworzenie nowego formularza i zachowanie go przy użyciu wielu rozwiązań zarządzanych

Wykonaj te kroki, aby zaimplementować w tym scenariuszu odpowiednie ALM formularza.

  1. Utwórz nowy formularz o nazwie FormularzA w środowisku projektowym i wprowadź zmiany w formularzu, aby go dostosować.
  2. Utwórz nowe rozwiązanie (o nazwie Rozwiązanie A na poniższym diagramie) w środowisku projektowym, które będzie rozwiązaniem niezarządzanym, i dodaj swój nowy formularz. Wyeksportuj rozwiązanie jako zarządzane. W tym kroku jest eksportowany pełny FormXml formularza.
  3. W środowisku testowym zaimportuj rozwiązanie zarządzane z kroku 2, w którym jest tworzony FormularzA w środowisku testowym. Na poniższym diagramie w środowisku testowym zostaje utworzony FormularzA, a w jego interfejsie użytkownika widać Field1 i Field2, które RozwiązanieA dodało do formularza.
  4. Podczas dalszego dostosowywania formularza utworzonego w kroku 1 przy użyciu nowego środowiska programistycznego (źródłowego), zaimportuj zarządzane Rozwiązanie A utworzone w kroku 2 i upewnij się, że używana instancja programistyczna ma FormA w stanie zarządzanym. Jak przedstawiono na diagramie poniżej, zarządzane RozwiązanieA jest importowane w środowisku projektowym, a formularz jest dostosowywany, co tworzy aktywne dostosowania. Następnie można dodać FormularzA do nowego rozwiązania niezarządzanego (Rozwiązanie B na diagramie) i wyeksportować je jako rozwiązanie zarządzane ze środowiska projektowego. W tym kroku jest eksportowany inny FormXml formularza.
  5. W środowisku testowym zaimportuj rozwiązanie zarządzane (Rozwiązanie B) z kroku 4. Jak przedstawiono na poniższym diagramie Rozwiązanie B dodaje nowe Field3 do FormularzaA i usuwa Field2, które zostało dodane przez Rozwiązanie A. Interfejs użytkownika formularza w środowisku testowym będzie teraz pokazywał pola Field3 i Field1 w formularzu, a nie Field2 po scaleniu.

Scenariusz 1 Diagram ALM formularza.

W tym scenariuszu pokazano przykład w złej kondycji

Jak przedstawiono na poniższym diagramie, nie jest to zdrowa praktyka w zakresie rozwiązań ALM mająca na celu tworzenie wielu rozwiązań zarządzanych w środowisku projektowym, w którym rozwiązanie podstawowe (rozwiązanie A) jest w stanie niezarządzanym. Dzieje się tak dlatego, że podczas tworzenia innego rozwiązania niezarządzanego (rozwiązania B) dla formularza niezarządzanego, FormXml jest eksportowany jako pełny FormXml zamiast FormXml jak pokazano w prawidłowym scenariuszu powyżej. Następnie zmiany, takie jak usunięcie kolumny, nie zostaną wprowadzone.

Przykład formularza ALM dla tego scenariusza w złym stanie.

Tworzenie nowego formularza i dostosowywanie przy użyciu nowych funkcji i uaktualnień

Wykonaj te kroki, aby zaimplementować w tym scenariuszu odpowiednie ALM formularza.

  1. Utwórz nowy formularz o nazwie FormularzA w środowisku projektowym i wprowadź zmiany w formularzu, aby go dostosować.

  2. Utwórz rozwiązanie (Rozwiązanie A na poniższym diagramie), które będzie rozwiązaniem niezarządzanym, i dodaj swój nowy formularz. Wyeksportuj rozwiązanie jako zarządzane. W tym kroku jest eksportowany pełny FormXml formularza.

  3. W środowisku testowym zaimportuj rozwiązanie zarządzane z kroku 2, tworząc formularz w środowisku testowym. Na poniższym diagramie w środowisku testowym zostaje utworzony FormularzA, a w jego interfejsie użytkownika widać Field1 i Field2, które RozwiązanieA dodało do formularza.

  4. Jeśli formularz utworzony w kroku 1 został jeszcze bardziej dostosowywany przy użyciu technologii, należy użyć tego samego środowiska, w którym Rozwiązanie A znajduje się w stanie niezarządzanym, i utworzyć łatę dla rozwiązania i dostosować formularz. Następnie należy wyeksportować łatę jako rozwiązanie zarządzane. W tym kroku jest eksportowany pełny formXmlformularza.

  5. W środowisku testowym zaimportuj rozwiązanie łaty zarządzane z kroku 4. Jak przedstawiono na poniższym diagramie, łata Rozwiązania A służy do dodawania nowego pola Field3 do formularza FormA i usuwania pole Field2, które zostało dodane przez Rozwiązanie A.

    Uwaga

    Zestawy zawierające pełny formXml są zawsze porównywane z warstwy podstawowej, na podstawie których utworzono łatę, i należy ignorować wszelkie pośrednie czasy pomiędzy łatą podstawową a bieżącą. W rezultacie pole Field2 jest usuwane, ponieważ istnieje w rozwiązaniu A warstwy podstawowej i wykrywane jest usuwanie. Z drugiej strony rozwiązanie Patch dodaje Field3 i nie może zostać usunięte przez kolejne poprawki. W związku z tym pola dodawane przez rozwiązania patch mają charakter addytywny.

  6. W przypadku dalszego dostosowywania formularza utworzonego w kroku 1 za pomocą aktualizacji, należy użyć tego samego środowiska, w którym Rozwiązanie A jest w stanie niezarządzanym i sklonować Rozwiązanie A w celu utworzenia rozwiązania aktualizującego i dostosowania formularza. Następnie należy wyeksportować aktualizację Rozwiązanie A jako rozwiązanie zarządzane. W tym kroku jest eksportowany pełny FormXml formularza.

  7. W środowisku testowym zaimportuj zarządzane uaktualnienie Rozwiązanie A z kroku 6. Jak widać na poniższym diagramie, aktualizacja Rozwiązanie A dodaje nowe Field do FormA i usuwa Field2, które zostało dodane przez Rozwiązanie A. UI dla formularza w środowisku testowym pokazuje teraz Field1, Field3, oraz Field4 na formularzu, ale Field2 zostanie usunięte po połączeniu formularza z importu.

Scenariusz 2 Diagram ALM formularza.

Dostosowanie istniejącego formularza zarządzanego i zachowanie go przy użyciu wielu rozwiązań zarządzanych

Wykonaj te kroki, aby zaimplementować w tym scenariuszu odpowiednie ALM formularza.

  1. Edytuj istniejący formularz zarządzany, nazwany w tym przykładzie FormB, w swoim środowisku programistycznym i wykonaj na nim modyfikacje. Zauważ, że rozwiązanie A jest rozwiązaniem zarządzanym, które zostało już zainstalowane dla formularza w środowisku programistycznym.
  2. Utwórz nowe rozwiązanie (Rozwiązanie B na poniższym diagramie), które jest rozwiązaniem niezarządzanym i dodaj FormB. Wyeksportuj rozwiązanie jako zarządzane. W tym kroku jest eksportowany inny FormXml formularza.
  3. W swoim środowisku testowym zaimportuj rozwiązanie zarządzane z kroku 2, tworząc w ten sposób drugą warstwę rozwiązania dla formularza. Na poniższym diagramie, FormB otrzymuje połączone zmiany z Rozwiązania A i Rozwiązania B w środowisku testowym i UI dla formularza pokazuje Field1 i Field3 na formularzu, ale nie Field2, które zostało usunięte przez Rozwiązanie B.
  4. W przypadku dalszego dostosowywania formularza dostosowanego w kroku 1 przy użyciu nowych rozwiązań zarządzanych, należy upewnić się, że używasz nowego środowiska programistycznego, które ma FormB w stanie zarządzanym. Jak pokazano na poniższym diagramie, rozwiązania zarządzane Rozwiązanie A i Rozwiązanie B są importowane do nowego środowiska programistycznego. Formularz B jest dostosowywany do tworzenia aktywnych dostosowań, które można następnie dodać do nowego rozwiązania (rozwiązanie C na diagramie) i wyeksportować jako rozwiązanie zarządzane.
  5. W środowisku testowym zaimportuj zarządzane Rozwiązanie C z kroku 4. Jak widać na poniższym diagramie, Rozwiązanie C dodaje nowe Field4 do FormB i usuwa Field3, które zostało dodane przez Rozwiązanie B. UI dla formularza w środowisku testowym pokazuje teraz pola Field1 i Field4 na formularzu, ale nie pokazuje pól Field2 i Field3.

Scenariusz 3 Diagram ALM formularza.

W tym scenariuszu pokazano przykład w złej kondycji

Jak widać na poniższym diagramie, nie jest zdrową praktyką ALM tworzenie wielu zarządzanych rozwiązań ze środowiska programistycznego, które zawiera inne niezarządzane rozwiązanie, które utworzyłeś dla tego samego formularza. Zauważ, że Rozwiązanie B jest w stanie niezarządzanym. Podczas tworzenia innego niezarządzanego rozwiązania (Rozwiązanie C) dla FormB, FormXml jest eksportowany jako diff FormXml, jak pokazano w kroku 4 w powyższym scenariuszu. Ale FormB zawiera również zmiany z Rozwiązania B, które zostaną nadpisane przez Twoje nowe zmiany.

Na przykład, jak widać na poniższym diagramie, Field3 zostało dodane do FormB w Rozwiązaniu B. Jednak teraz, gdy w tym środowisku utworzymy nowe Rozwiązanie C, z Rozwiązaniem B w stanie niezarządzanym, i usuniemy Field3, Field3 zostanie również usunięte w środowisku deweloperskim. Pole Field3 nie będzie śledzone w pliku diff FormXml po wyeksportowaniu rozwiązania, ponieważ zmiana dodawania i usuwania tej kolumny została wprowadzona w tej samej aktywnej warstwie. Oznacza to, że kiedy zarządzane Rozwiązanie C jest importowane w środowisku testowym, formularz nadal będzie renderował Field3, ponieważ diff FormXml nigdy nie rejestruje go jako usuniętego (tak jak został usunięty w kroku 5 w zdrowej formie ALM scenariusz powyżej). Wykonywanie dostosowywania formularzy w ten sposób doprowadzi do tego, że środowisko programistyczne będzie niespójne ze środowiskiem testowym.

Inny przykład złego stanu formularza ALM dla tego scenariusza.

Dostosowywanie istniejącego zarządzanego formularza i utrzymywanie go za pomocą poprawek i uaktualnień

Wykonaj te kroki, aby zaimplementować w tym scenariuszu odpowiednie ALM formularza.

  1. Dostosuj istniejący formularz zarządzany, nazwany w tym przykładzie FormB, w swoim środowisku programistycznym i wykonaj na nim modyfikacje. Zauważ, że Rozwiązanie A jest rozwiązaniem zarządzanym, które zostało już zainstalowane dla formularza w środowisku programistycznym.

  2. Utwórz rozwiązanie (Rozwiązanie B), które będzie rozwiązaniem niezarządzanym i dodaj FormB. Wyeksportuj rozwiązanie jako zarządzane. Ten krok eksportuje diff FormXml dla formularza.

  3. W swoim środowisku testowym zaimportuj Rozwiązanie B zarządzane z kroku 2, tworząc w ten sposób drugą warstwę rozwiązania dla formularza. Na poniższym diagramie, FormB otrzymuje połączone zmiany z Rozwiązania A i Rozwiązania B w środowisku testowym. Dodatkowo, UI dla FormB pokazuje Field1 i Field3 na formularzu, ale nie Field2, które zostało usunięte przez Rozwiązanie B.

  4. Podczas dalszego dostosowywania formularza, który został dostosowany w kroku 1 za pomocą rozwiązania patch, można użyć tego samego środowiska programistycznego, co w kroku 1, gdzie Rozwiązanie B istnieje w stanie niezarządzanym. Jak pokazano na poniższym diagramie, Rozwiązanie A jest w stanie zarządzanym, a Rozwiązanie B jest w stanie niezarządzanym. Formularz jest dalej dostosowywany i tworzysz łatę dla Rozwiązanie B dodając swój formularz do tego rozwiązania i eksportując go jako zarządzaną łatę. Ten krok eksportuje plik diff FormXml.

  5. W środowisku testowym, zaimportuj zarządzana łata Rozwiązanie B z kroku 4. Jak widać na poniższym diagramie, Łata rozwiązania B dodaje nowe Field4 do FormB i usuwa Field3, które zostało dodane przez Rozwiązanie B.

    Uwaga

    Łaty mają charakter addytywny i nie mogą usuwać komponentów, takich jak kolumny, z formularza. Tak więc, Field3 nie zostanie usunięte z formularza. UI dla formularza w środowisku testowym pokazuje teraz Field1, Field3, oraz Field4 na formularzu, ale nie Field2.

  6. W przypadku dalszego dostosowywania formularza utworzonego w kroku 1 za pomocą aktualizacji, należy użyć tego samego środowiska, w którym Rozwiązanie B jest w stanie niezarządzanym i sklonować Rozwiązanie B w celu utworzenia rozwiązania aktualizującego i dostosowania FormB. Eksportuj uaktualnienie jako rozwiązanie zarządzane. Ten krok eksportuje plik diff FormXml dla formularza.

  7. W środowisku testowym zaimportuj zarządzane rozwiązanie aktualizacyjne Rozwiązanie B z kroku 6. Jak widać na poniższym diagramie, Uaktualnienie rozwiązania B dodaje nowe Filed5 do FormB i usuwa Field3, które zostało dodane przez Rozwiązanie B. UI dla formularza w środowisku testowym pokazuje teraz Field1, Field4, i Field5 na formularzu, ale Field2 i Field3 są usunięte.

Edytuj istniejący formularz zarządzany przy użyciu schematu poprawek i uaktualnień.

Utrzymywanie niezarządzanych rozwiązań i dostosowań dla nowego formularza w wielu środowiskach programistycznych

Wykonaj te kroki, aby zaimplementować w tym scenariuszu odpowiednie ALM formularza.

  1. W środowisku Development Environment 1, utwórz nowy formularz FormA i dostosuj go do swoich potrzeb.
  2. Utwórz rozwiązanie (Rozwiązanie A na poniższym diagramie), które będzie rozwiązaniem niezarządzanym, i dodaj swój nowy formularz. Eksportuj rozwiązanie jako niezarządzane. W tym kroku jest eksportowany pełny FormXml formularza.
  3. W środowisku Development Environment 2 importujemy niezarządzane rozwiązanie z kroku 2, które tworzy formularz w środowisku Development Environment 2. Na poniższym diagramie zostaje utworzony FormA, a w jego interfejsie użytkownika widać Field1 i Field2, które Rozwiązanie A dodało do formularza.
  4. Dalej dostosowujemy formularz w środowisku Development Environment 2 dokonując aktywnych zmian w środowisku, np. dodając nową kolumnę o nazwie Field3. Formularz A zawiera teraz pola Field1, Field2 i Field3.
  5. W swoim środowisku Development Environment 1, dostosowujesz formularz dodając do niego pole Field4. UI dla formularza w środowisku Development Environment 1 pokazuje teraz Field1, Field2, oraz Field4.
  6. Wyeksportuj niezarządzane Rozwiązanie A ze zmianami wprowadzonymi w kroku 5. W tym kroku jest eksportowany pełny FormXml formularza.
  7. W środowisku Development Environment 2, zaimportować niezarządzane Uaktualnienie rozwiązania A z kroku 6. Ponieważ rozwiązanie, które importujesz zawiera pełny FormXml dla FormA nadpisuje ono aktywne dostosowanie wykonane w środowisku Development Environment 1. Tak więc, formularz pokazuje teraz tylko Field1, Field2, i Field4, ale nie Field3, które było dodatkowym aktywnym dostosowaniem wykonanym w środowisku Development Environment 1. To zachowanie występuje w każdym niezarządzanym imporcie rozwiązania, który ma pełny FormXml dla formularza.

Rozwiązania niezarządzane w wielu środowiskach.

Utrzymywanie niezarządzanych rozwiązań i dostosowań dla istniejącego formularza w wielu środowiskach programistycznych

Wykonaj te kroki, aby zaimplementować w tym scenariuszu odpowiednie ALM formularza.

  1. W środowisku Development Environment 1 dostosuj istniejący formularz, nazwany w tym przykładzie FormB. Następnie wykonaj modyfikacje formularza.
  2. Utwórz rozwiązanie (Rozwiązanie B na poniższym schemacie), które będzie rozwiązaniem niezarządzanym i dodaj FormB. Eksportuj rozwiązanie jako niezarządzane. Ten krok eksportuje diff FormXml dla formularza.
  3. W środowisku Development Environment 2 zaimportuj niezarządzane rozwiązanie z kroku 2, tworząc w ten sposób drugą warstwę rozwiązania dla formularza. UI FormB pokazuje Pole1, Pole2, oraz Pole3 po scaleniu formularzy.
  4. Dalej dostosowujemy formularz w środowisku Development Environment 2 dokonując aktywnych zmian w środowisku, np. dodając nową kolumnę o nazwie Field4. Formularz B pokazuje teraz pola1, Pole2, Pole3 i Pole4.
  5. W środowisku Development Environment 1, dalej dostosowujesz formularz dodając nową kolumnę o nazwie Field5. UI dla formularza w środowisku Development Environment 1 pokazuje teraz pola Field3 i Field5.
  6. Wyeksportuj niezarządzane Rozwiązanie B ze zmianami wprowadzonymi w kroku 5. Ten krok eksportuje diff FormXml dla formularza.
  7. W środowisku Development Environment 2, zaimportować niezarządzane Uaktualnienie rozwiązania B z kroku 6. Ponieważ rozwiązanie, które importujesz zawiera pełny FormXml dla FormB scali ono aktywne dostosowanie wykonane w środowisku Development Environment 1. Tak więc, formularz pokazuje teraz Field1, Field2, Field3, Field4 i Field5. To zachowanie występuje dla każdego niezarządzanego importu rozwiązania, który ma plik diff FormXml dla formularza.
  8. Jeśli połączenie formularzy w kroku 7 nie jest tym, czego chcesz, mimo że importujesz plik diff FormXml z niezarządzanym rozwiązaniem i chcesz mieć możliwość nadpisania aktywnych dostosowań dokonanych w środowisku Development Environment 2, wtedy usuń aktywną warstwę dla FormB. Więcej informacji: Usuń niezarządzaną warstwę.
  9. Wyeksportuj niezarządzane Rozwiązanie B ze zmianami wprowadzonymi w kroku 5. Ten krok eksportuje plik diff FormXml dla formularza.
  10. W środowisku Development Environment 2, zaimportować niezarządzane Uaktualnienie rozwiązania B z kroku 9. Ponieważ w środowisku Development Environment 2 nie ma aktywnej warstwy formularza (patrz krok 8), wszystkie zmiany z niezarządzanego Rozwiązanie B są importowane, mimo że importowany jest plik diff FormXml dla FormB. Tak więc, formularz pokazuje teraz tylko Field1, Field2, Field3 i Field5. To zachowanie występuje dla każdego niezarządzanego importu rozwiązania, który ma plik diff FormXml dla formularza. Jest to taki sam wynik jak krok 7 w scenariuszu Utrzymywanie niezarządzanych rozwiązań i dostosowań dla istniejącego formularza w wielu środowiskach programistycznych.

Scenariusz 6 - schemat zarządzania cyklem życia aplikacji formularza.

FormXML pełny i diff

Każdy wyeksportowany pakiet rozwiązania zawiera plik customizations.xml. Kiedykolwiek formularz jest dołączony do rozwiązania, definicja formularza istnieje w sekcji FormXml pliku customizations.xml. FormXml może być albo pełny albo różnicowy (diff).

Pełny FormXml

FormXml, który otrzymasz podczas eksportowania rozwiązania dla formularza w stanie niezarządzanym to tak zwany pełny FormXml. Pełny oznacza, że zawiera całą definicję formularza. Kiedy tworzysz nowy formularz i eksportujesz go, formularz zawsze będzie pełnym FormXml, ponieważ formularz w środowisku, z którego eksportujesz jest w stanie niezarządzanym, a także jest w stanie utworzonym. Jeśli wyeksportujesz kolejne rozwiązania z tego samego środowiska, będą one również zawierały pełny FormXml. Ponieważ atrybut solutionaction wskazuje na diff FormXml, pełny FormXml w pliku customization.xml w eksportowanym rozwiązaniu nie będzie zawierał żadnych atrybutów solutionaction.

Różnicowy (diff) FormXml

FormXml, który otrzymasz podczas eksportowania rozwiązania dla formularza w stanie zarządzanym, jest nazywany różnicowym tj. diff FormXml. Diff oznacza, że FormXml zawiera tylko zmiany dokonane w aktywnych dostosowaniach w tym środowisku, a nie całą definicję formularza. Kiedy dostosowujesz istniejący formularz zarządzany i eksportujesz go, formularz zawsze będzie diff FormXml, ponieważ będzie zawierał tylko aktywne zmiany dokonane w nim. Diff FormXml w pliku customization.xml w eksportowanym rozwiązaniu będzie zawierał atrybuty solutionaction określające zmiany, takie jak Dodano, Usunięto, Zmodyfikowano.

Diff FormXml gwarantuje, że Twoje rozwiązanie będzie wyrażało tylko te zmiany, których potrzebuje Twoja aplikacja i będzie w mniejszym stopniu dotknięte zmianami z innych warstw. Diff FormXml sprawia również, że rozwiązanie jest mniej obszerne i pozwala na szybszy import.

Zobacz także

Zalecenia dotyczące zdrowej formy ALM