Mantenir un formulari ALM d'aplicació sa controlat per models

En aquest article es proporciona informació sobre els diferents casos sobre com implementar i practicar una administració sana del cicle de vida de l'aplicació (ALM) per personalitzar formularis a les solucions d'aplicacions controlades per models.

Les seccions següents descriuen com funciona la combinació de formularis i com es fa el manteniment de les personalitzacions. Els casos de desenvolupament bàsic amb recomanacions per mantenir un ALM correcte per a un formulari d'aplicació controlat per models s'expliquen detalladament a cadascuna de les seccions següents. Cada cas inclou passos que cal seguir per ajudar-vos a implementar un procés ALM correcte a l'hora d'actualitzar l'aplicació controlada per solucions o models.

Crear un formulari nou i mantenir-lo mitjançant diverses solucions administrades

Seguiu aquests passos per implementar ALM de formulari sans per a aquest cas.

  1. Creeu un formulari nou anomenat FormA a l'entorn de desenvolupament i personalitzeu-lo.
  2. Creeu una solució nova (anomenada Solució A al diagrama) a l'entorn de desenvolupament, que serà una solució no administrada i afegiu el formulari nou. Exporteu la solució com a administrada. Aquest pas exporta un FormXml complet per al formulari.
  3. A l'entorn de prova, importeu la solució administrada del pas 2, en què es crea FormA a l'entorn de prova. Al diagrama, FormA es crea a l'entorn de prova i la interfície d'usuari del formulari mostra Field1 i Field2 que la solució A s'ha afegit al formulari.
  4. Quan personalitzeu encara més el formulari que heu creat al pas 1 mitjançant un entorn de desenvolupament nou (origen), importeu la solució A administrada creada al pas 2, assegureu-vos que la instància de desenvolupament que utilitzeu tingui el FormA en un estat administrat. Com es mostra al diagrama, la solució administrada A s'importa a l'entorn de desenvolupament i el formulari es personalitza creant personalitzacions actives. A continuació, es pot afegir FormA a una solució no administrada nova (Solutció B al diagrama) i exportar com a solució administrada des de l'entorn de desenvolupament. Aquest pas exporta un FormXml diferencial (diff) per al formulari.
  5. A l'entorn de prova, importeu la solució administrada (Solució B) del pas 4. Com es mostra al diagrama , la solució B està afegint un nou Field3 al FormA i eliminant el Field2, que va ser afegit per la solució A. La interfície d'usuari del formulari a l'entorn de prova ara mostra Field3 i Field1 al formulari, però no Field2 després de la combinació.

Escenari 1 forma el diagrama ALM.

Exemple poc saludable d'aquest cas

Com es veu en aquest diagrama, no és una pràctica ALM saludable crear diverses solucions administrades des de l'entorn de desenvolupament on la solució base (solució A) es troba en un estat no administrat. Això passa perquè, quan creeu una altra solució no administrada (Solució B) per al formulari no administrat, el FormXml s'exporta com a FormXml complet, en comptes d'un FormXml diferencial, tal com es mostra al cas vàlid anterior. Posteriorment, els canvis com la supressió d'una columna, no s'aplicaran.

Exemple d'ALM de formulari incorrecte per a aquest escenari.

Crear un formulari nou i fer personalitzacions mitjançant pedaços i actualitzacions

Seguiu aquests passos per implementar ALM de formulari sans per a aquest cas.

  1. Creeu un formulari nou anomenat FormA a l'entorn de desenvolupament i personalitzeu-lo.

  2. Creeu una solució (Solució A al diagrama), que serà una solució no administrada i afegiu el formulari nou. Exporteu la solució com a administrada. Aquest pas exporta un FormXml complet per al formulari.

  3. A l'entorn de prova, importeu la solució administrada del pas 2 per crear el formulari a l'entorn de prova. Al diagrama , FormA es crea a l'entorn de prova i la interfície d'usuari del formulari mostra Field1 i Field2 que la solució A s'ha afegit al formulari.

  4. Quan personalitzeu el formulari que heu creat al pas 1 per mitjà de pedaços, utilitzeu el mateix entorn on la Solució A està en estat no administrat, creeu un pedaç per a la solució i personalitzeu el formulari. A continuació, exporteu el pedaç com a solució administrada. Aquest pas exporta un formXml complet per al formulari.

  5. A l'entorn de prova, importeu la solució de pedaç administrada del pas 4. Com es mostra al diagrama, el pegat de la solució A està afegint un nou Field3 al FormA i eliminant el Field2 , que va ser afegit per lasolució A .

    Nota

    Els pedaços que contenen formXml complet sempre es comparen amb la capa base a partir de la qual es va crear el pedaç i ignoren qualsevol pedaç intermedi entre el pedaç base i el pegat actual. Com a resultat, Field2 s'elimina ja que existeix a la capa base Solució A,* i es detecta l'eliminació. D'altra banda, aquesta solució de pedaços afegeix el Field3 i no es pot suprimir pels pedaços posteriors. Per tant, els camps afegits mitjançant solucions de pedaços són additius a la naturalesa.

  6. Quan personalitzeu el formulari que heu creat al pas 1 per mitjà de pedaços, utilitzeu el mateix entorn on la Solution A està en estat no administrat i cloneu la Solució A per crear la solució actualitzada i personalitzar el formulari. A continuació, exporteu l'actualització de la Solució A com a una solució administrada. Aquest pas exporta un FormXml complet per al formulari.

  7. A l'entorn de prova, importeu l'actualització de la solució administrada Solució A del pas 6. Com es mostra al diagrama, l'actualització de la solució A està afegint un nou Field4 al FormA i eliminant el Field2 , que va ser afegit per lasolució A . La interfície d'usuari del formulari a l'entorn de prova ara mostra Field1 , Field3 iField4 al formulari, però Field2 s'eliminarà després que el formulari es fusioni de la importació.

Escenari 2 forma el diagrama ALM.

Personalitzar un formulari administrat existent i mantenir-lo mitjançant diverses solucions administrades

Seguiu aquests passos per implementar ALM de formulari sans per a aquest cas.

  1. Editeu un formulari administrat existent, anomenat FormB en aquest exemple, a l'entorn de desenvolupament i personalitzeu-lo. Heu de tenir en compte que la solució A és la solució administrada instal·lada per al formulari a l'entorn de desenvolupament.
  2. Creeu una solució (Solution B al diagrama de sota), que és una solució no administrada, i afegiu-hi FormB. Exporteu la solució com a administrada. Aquest pas exporta un FormXml diferencial (diff) per al formulari.
  3. A l'entorn de prova, importeu la solució administrada del pas 2 per crear una segona capa de solució per al formulari a l'entorn de prova. Al diagrama, el FormB obté els canvis combinats de la Solució A i la Solució B a l'entorn de prova i la interfície d'usuari del formulari mostra el Field1 i el Field3 al formulari, però no el Field2 , que va ser eliminat perla Solució B .
  4. Quan personalitzeu encara més el formulari que heu personalitzat al pas 1 mitjançant solucions administrades noves, assegureu-vos d'utilitzar un entorn de desenvolupament nou que tingui FormB en estat administrat. Com es mostra al diagrama, les solucions gestionades de la solució A i la solució B s'importen al nou entorn de desenvolupament. El FormB es personalitza creant personalitzacions actives, que després es poden afegir a una solució nova (solució C al diagrama) i exportar-les com a solució administrada.
  5. A l'entorn de prova, importeu la solució Solució C administrada del pas 4. Com es mostra al diagrama, la solució C està afegint un nou Field4 al FormB i eliminant el Field3, que va ser afegit per la solució B. La interfície d'usuari del formulari a l'entorn de prova ara mostra Field1 i Field4 al formulari, però no Field2 i Field3 .

Escenari 3 del diagrama ALM.

Exemple poc saludable d'aquest cas

Com es mostra al diagrama, no és una pràctica correcta d'ALM crear diverses solucions administrades des de l'entorn de desenvolupament que contingui una altra solució no administrada que heu creat per al mateix formulari. Observeu que la Solució B està en estat no administrat. Quan creeu una altra solució no administrada (Solution C) per a FormB, el FormXml s'exporta com un FormXml diferencial, tal com es mostra al pas 4 del cas anterior. Però, FormB també conté els canvis de la Solution B, que els canvis nous sobreescriuran.

Per exemple, com es veu al diagrama, Field3 s'afegeix al FormB a la Solució B. Però ara, quan creeu una nova solució C en aquest entorn, amb la solució B en estat no administrat i suprimiu Field3, Field3 també s'eliminarà a l'entorn de desenvolupament. El Field3 no es farà un seguiment al FormXml de la diferència quan s'exporti la solució, ja que el canvi d'afegir i suprimir aquesta columna s'ha fet a la mateixa capa activa. Això vol dir que quan s'importa la solució administrada Soluió C a l'entorn de prova, el formulari encara representarà Field3 perquè el FormXml diferencial mai no el registra com a suprimit (com si s'hagués suprimit al pas 5 del cas ALM del formulari saludable anterior). Fer les personalitzacions de formulari d'aquesta manera farà que l'entorn de desenvolupament sigui inconsistent amb l'entorn de prova.

Un altre exemple d'ALM de forma no saludable per a aquest escenari.

Personalitzar un formulari administrat existent i mantenir-lo mitjançant pedaços i actualitzacions

Seguiu aquests passos per implementar ALM de formulari sans per a aquest cas.

  1. Personalitzeu un formulari administrat existent, anomenat FormB en aquest exemple, a l'entorn de desenvolupament i personalitzeu-lo. Heu de tenir en compte que la Solució A és la solució administrada instal·lada per al formulari a l'entorn de desenvolupament.

  2. Creeu una solució (Solution B), que serà una solució no administrada, i afegiu-hi FormB. Exporteu la solució com a administrada. Aquest pas exporta un FormXml diferencial per al formulari.

  3. A l'entorn de prova, importeu la solució administrada Solution B del pas 2 per crear una segona capa de solució per al formulari. Al diagrama, FormB obté els canvis combinats de la solució A i la solució B a l'entorn de prova. A més, la IU per a FormB mostra Field1 i Field3 al formulari però no Field2, que la Solution B va suprimir.

  4. Quan personalitzeu més a fons el formulari que heu personalitzat al pas 1 mitjançant una solució de pedaç, podeu utilitzar el mateix entorn de desenvolupament que el pas 1, on la Solució B existeix en estat no administrat. Com es mostra al diagrama, la solució A està en un estat administrat i la solució B està en un estat no administrat. El formulari es personalitza més a fons i es creeu un pedaç per a la Solució B que afegeix el vostre formulari a aquesta solució i l'exporta com a solució de pedaç administrada. Aquest pas exporta un FormXml diferencial.

  5. A l'entorn de prova, importeu del pas 4 la solució de pedaç administrada Solució B. Com es mostra al diagrama, el pegat de la solució B està afegint un nou Field4 al FormB i eliminant el Field3, que va ser afegit per la solució B.

    Nota

    Els pedaços són additius i no poden suprimir components, com ara columnes, del formulari. Per tant, Field3 no s'eliminarà del formulari. La IU del formulari de l'entorn de prova ara mostra Field1, Field3 i Field4 al formulari, però no Field2.

  6. Quan personalitzeu més a fons el formulari que heu creat al pas 1 per mitjà de pedaços, utilitzeu el mateix entorn on la Solució B està en estat no administrat i cloneu la Solució B per crear la solució actualitzada i personalitzar el FormB. Exporteu l'acualització com a solució administrada. Aquest pas exporta un FormXml diferencial per al formulari.

  7. A l'entorn de prova, importeu la solució actualitzada administrada Solució B del pas 6. Com es mostra al diagrama, l'actualització de la solució B està afegint un nou Field5 al FormB i eliminant el Field3 , que va ser afegit per lasolució B . La interfície d'usuari del formulari a l'entorn de prova ara mostra Field1 , Field4 iField5 al formulari, però Field2 i Field3 s'eliminen .

Editeu un formulari administrat existent mitjançant pedaços i diagrames d'actualitzacions.

Mantenir solucions i personalitzacions no administrades per a un formulari nou en diversos entorns de desenvolupament

Seguiu aquests passos per implementar ALM de formulari sans per a aquest cas.

  1. A l'Entorn de desenvolupament 1, creeu un nou FormA i personalitzeu el formulari.
  2. Creeu una solució (Solució A al diagrama), que serà una solució no administrada, i afegiu el formulari nou. Exporteu la solució com a no administrada. Aquest pas exporta un FormXml complet per al formulari.
  3. A l'Entorn de desenvolupament 2, importeu la solució no administrada a partir del pas 2, que crea el formulari a l'Entorn de desenvolupament 2. Al diagrama, es crea FormA i la interfície d'usuari del formulari mostra Field1 i Field2 que la solució A s'ha afegit al formulari.
  4. Personalitzeu el formulari més a fons a l'Entorn de desenvolupament 2 fent personalitzacions actives a l'entorn, fent personalitzacions actives a l'entorn, com ara afegir una columna nova anomenada Field3. El FormA ara mostra el Camp 1, el Camp 2 i el Camp 3.
  5. Al vostre Entorn de desenvolupament 1, personalitzeu més a fons el formulari afegint-hi també Field4. La IU del formulari de l'Entorn de prova 1 ara mostra Field1, Field2 i Field4.
  6. Exporteu la Solució A amb els canvis fets al pas 5. Aquest pas exporta un FormXml complet per al formulari.
  7. A l'Entorn de prova 2, importeu la Solució A actualitzada del pas 6. Com que la solució que esteu important conté el FormXml complet per al FormA, sobreescriu la personalització activa feta a l'entorn de desenvolupament 1. Per tant, el formulari només mostra Field1, Field2 i Field4, però no Field3, que era la personalització activa addicional realitzada a l'Entorn de desenvolupament 1. Aquest comportament es produeix amb qualsevol importació de solució no administrada que té el FormXml complet per al formulari.

Solucions no administrades en diversos entorns.

Mantenir solucions i personalitzacions no administrades per a un formulari existent en diversos entorns de desenvolupament

Seguiu aquests passos per implementar ALM de formulari sans per a aquest cas.

  1. A l'Entorn de desenvolupament 1, personalitzeu un formulari existent, que s'anomena FormB en aquest exemple. A continuació, personalitzeu el formulari.
  2. Creeu una solució (solució B al diagrama), que serà una solució no administrada, i afegiu FormB. Exporteu la solució com a no administrada. Aquest pas exporta un FormXml diferencial per al formulari.
  3. A l'Entorn de prova 2, importeu la solució no administrada del pas 2 per crear una segona capa de solució per al formulari. La IU de FormB mostra Field1, Field2 i Field3 després de la combinació de formularis.
  4. Personalitzeu el formulari més a fons a l'Entorn de desenvolupament 2 fent personalitzacions actives a l'entorn, fent personalitzacions actives a l'entorn, com ara afegir una columna nova anomenada Field4. El FormB ara mostra Field1, Field2, Field3 i Field4.
  5. A l'Entorn de desenvolupament 1, personalitzeu més a fons el formulari afegint-hi una columna nova anomenada Field5. La IU del formulari de l'Entorn de prova 1 ara mostra Field3 i Field5.
  6. Exporteu la Solució B no administrada amb els canvis fets al pas 5. Aquest pas exporta un FormXml diferencial per al formulari.
  7. A l'Entorn de prova 2, importeu la Solució A actualitzada no administrada del pas 6. Com que la solució que esteu important conté la diferència FormXml per a FormB, es fusionarà amb la personalització activa feta a l'entorn de desenvolupament 1. Així doncs, el formulari ara mostra Field1, Field2, Field3, Field4 i Field5. Aquest comportament es produeix amb qualsevol importació de solució no administrada que tingui el FormXml diferencial per al formulari.
  8. Si la combinació de formularis del pas 7 no és el que voleu, tot i que esteu important un FormXml diferent amb la solució no administrada i voleu poder sobreescriure les personalitzacions actives fetes a l'entorn de desenvolupament 2, suprimiu la capa activa del FormB. Més informació: Suprimir una capa no administrada.
  9. Exporteu la Solució B no administrada amb els canvis fets al pas 5. Aquest pas exporta un FormXml diferencial per al formulari.
  10. A l'Entorn de prova 2, importeu la Solució A actualitzada no administrada del pas 9. Com que no hi ha cap capa activa per al formulari a l'entorn de desenvolupament 2 (pas 8), tots els canvis de la solució B no administrada s'importen encara que esteu important diff FormXml per al FormB. Així doncs, el formulari ara només mostra Field1, Field2, Field3 i Field5. Aquest comportament es produeix amb qualsevol importació de solució no administrada que tingui el FormXml diferencial per al formulari. Aquest és el mateix resultat que el pas 7 al cas Mantenir solucions i personalitzacions no administrades per a un formulari existent a diversos entorns.

Diagrama d'administració del cicle de vida de l'aplicació del formulari del cas 6.

XML de formulari complet i diferencial

Cada paquet de solucions exportat inclou un fitxer customizations.xml. Cada vegada que s'inclou un formulari en una solució, la definició del formulari relacionat existeix a les seccions FormXml del fitxer customizations.xml. FormXml pot ser completo diferencial (diff).

FormXml complet

El FormXml que obteniu en exportar una solució per a un formulari en un estat no administrat s'anomena FormXml complet. "Complet" vol dir que conté tota la definició del formulari. Quan creeu un formulari nou i l'exporteu, el formulari sempre serà un FormXml complet perquè el formulari de l'entorn des del qual esteu exportant està en un estat no administrat i també en un estat de creació. Si exporteu més solucions d'aquest mateix entorn, aquestes també inclouran un FormXml complet. Com que l'atribut solutionaction indica un FormXml diferent, el FormXml complet del fitxer customization.xml de la solució que exporteu no contindrà cap solutionaction atribut.

FormXml diferencial (diff)

El FormXml que obteniu en exportar una solució per a un formulari en un estat administrat s'anomena FormXml diferencial o diff. Diff significa que el FormXml només conté els canvis fets a les personalitzacions actives en aquest entorn i no en la definició completa del formulari. Quan personalitzeu un formulari administrat existent i l'exporteu, el formulari sempre serà un FormXml diferencial perquè només inclourà els canvis actius que s'hi hagin fet. El FormXml diferencial del fitxer customization.xml de la solució que exporteu contindrà els atributs solutionaction que defineixen quins són els canvis, com ara Afegit, Suprimit i Modificat.

FormXml diferencial garanteix que la solució només expressarà els canvis que l'aplicació necessita i que es veurà menys afectada pels canvis d'altres capes. FormXml diferencial també fa que la solució sigui menys massiva i ajuda a importar-la més ràpidament.

Consulteu també

Recomanacions per a la forma sana d'ALM