Vzdrževanje kakovostnega obrazca aplikacije ALM, ki temelji na modelih
V tem članku so informacije o različnih primerih scenarijev, kako uporabljati in upravljati kakovosten življenjski cikel aplikacij (ALM) za prilagajanje obrazcev v rešitvah aplikacije, ki temeljijo na modelih.
Naslednji razdelki opisujejo, kako deluje združevanje obrazcev in kako ohraniti prilagoditve. Osnovni razvojni scenariji s priporočili za vzdrževanje uspešnega ALM za obrazec aplikacije, ki temelji na modelu, so podrobno opisani v naslednjih razdelkih. Vsak scenarij vključuje korake, ki vam lahko pomagajo pri izvajanju ustreznega postopka ALM pri posodabljanju rešitve ali aplikacije, ki temelji na modelu.
Za izvedbo kakovostnega obrazca ALM za ta scenarij sledite naslednjim korakom.
- Ustvarite nov obrazec z imenom ObrazecA v razvojnem okolju in izvedite prilagoditve obrazca.
- Ustvarite novo rešitev (z imenom Rešitev A v spodnjem diagramu) v razvojnem okolju, ki bo neupravljana rešitev, in dodajte novi obrazec. Izvozite rešitev kot upravljano rešitev. Ta korak izvozi celotni FormXml obrazca.
- V preskusno okolje uvozite upravljano rešitev iz 2. koraka, ki ustvari ObrazecA v testnem okolju. V spodnjem diagramu se v testnem okolju ustvari ObrazecA, uporabniški vmesnik za obrazec pa prikazuje Polje1 in Polje2, ki ju je Rešitev A dodala v obrazec.
- Ko dodatno prilagodite obrazec, ki ste ga ustvarili v 1. koraku, z novim razvojnim (izvornim) okoljem, uvozite upravljano Rešitev A, ustvarjeno v 2. koraku, in se prepričajte, da ima razvojni primerek, ki ga uporabljate, Obrazec A v upravljanem stanju. Kot je prikazano na spodnjem diagramu, se upravljana Rešitev A uvozi v razvojno okolje, obrazec pa se prilagodi tako, da se ustvarijo dejavne prilagoditve. ObrazecA lahko nato dodate novi neupravljani rešitvi (Rešitev B v diagramu) in izvozite kot upravljano rešitev iz razvojnega okolja. Ta korak izvozi diferencialni (diff) FormXml obrazca.
- V preskusno okolje uvozite upravljano rešitev (Rešitev B) iz 4. koraka. Kot je prikazano na spodnjem diagramu, doda Rešitev B novo Polje3 v ObrazecA in odstrani Polje2, ki ga je dodala Rešitev A. Uporabniški vmesnik obrazca v testnem okolju zdaj prikazuje Polje3 in Polje1 v obrazcu, po združitvi pa ne prikazuje polja Polje2.
Kot je razvidno iz spodnjega diagrama, v ALM ni dobro ustvariti več upravljanih rešitev iz razvojnega okolja, kjer je osnovna rešitev (Rešitev A) v neupravljanem stanju. Če namreč ustvarite novo neupravljano rešitev (Rešitev B) za neupravljani obrazec, se FormXml izvozi kot celotni FormXml, namesto kot diff FormXml, kot je prikazano v veljavnem scenariju zgoraj. Spremembe, kot je odstranjevanje stolpca, posledično ne bodo začele veljati.
Za izvedbo kakovostnega obrazca ALM za ta scenarij sledite naslednjim korakom.
Ustvarite nov obrazec z imenom ObrazecA v svojem razvojnem okolju in izvedite prilagoditve obrazca.
Ustvarite rešitev (Rešitev A v spodnjem diagramu), ki je neupravljana rešitev, in dodajte nov obrazec. Izvozite rešitev kot upravljano rešitev. Ta korak izvozi celotni FormXml obrazca.
V preskusno okolje uvozite upravljano rešitev iz 2. koraka, ki ustvari obrazec v testnem okolju. V spodnjem diagramu se v testnem okolju ustvari ObrazecA, uporabniški vmesnik za obrazec pa prikazuje Polje1 in Polje2, ki ju je Rešitev A dodala v obrazec.
Ko dodatno prilagodite obrazec, ki ste ga z uporabo popravkov ustvarili v 1. koraku, uporabite isto okolje, kjer je Rešitev A v neupravljanem stanju, in ustvarite popravek za rešitev ter prilagodite obrazec. Nato izvozite popravek kot upravljano rešitev. Ta korak izvozi celotni FormXml obrazca.
V preskusno okolje uvozite upravljano rešitev s popravkom iz 4. koraka. Kot je prikazano na spodnjem diagramu, popravek Rešitev A doda novo Polje3 v ObrazecA in odstrani Polje2, ki ga je dodala Rešitev A.
Opomba
Popravki, ki vsebujejo celotni formXml, se vedno primerjajo z osnovno plastjo, v kateri je bil popravek ustvarjen, ter prezrejo vse vmesne popravke med osnovnim in trenutnim popravkom. Posledično se Polje2 odstrani, saj obstaja v osnovnem sloju Rešitev A in je zaznana odstranitev. Po drugi strani pa ta rešitev popravka doda Polje3, ki ga naknadni popravki ne morejo odstraniti. Polja, dodana prek rešitev popravkov, se torej lahko samo dodajajo.
Ko dodatno prilagodite obrazec, ki ste ga z uporabo nadgradenj ustvarili v 1. koraku, uporabite isto okolje, kjer je Rešitev A v neupravljanem stanju, in klonirajte Rešitev A, da ustvarite nadgradnjo rešitve ter prilagodite obrazec. Nato izvozite nadgradnjo Rešitev A kot upravljano rešitev. Ta korak izvozi celotni FormXml obrazca.
V preskusno okolje uvozite upravljano nadgradnjo Rešitev A iz 6. koraka. Kot je prikazano na spodnjem diagramu, nadgradnja Rešitev A doda novo Polje4 v ObrazecA in odstrani Polje2, ki ga je dodala Rešitev A. Uporabniški vmesnik obrazca v testnem okolju zdaj prikazuje Polje1, Polje3 in Polje4 v obrazcu, vendar bo Polje2 odstranjeno po tem, ko bo obrazec iz uvoza združen.
Za izvedbo kakovostnega obrazca ALM za ta scenarij sledite naslednjim korakom.
- Uredite obstoječi upravljani obrazec, v tem primeru z imenom ObrazecB, v vašem razvojnem okolju, in izvedite prilagoditve obrazca. Upoštevajte, da je rešitev A upravljana rešitev, ki je že nameščena za obrazec v razvojnem okolju.
- Ustvarite novo rešitev (Rešitev B v spodnjem diagramu), ki je neupravljana rešitev, in dodajte ObrazecB. Izvozite rešitev kot upravljano rešitev. Ta korak izvozi diferencialni (diff) FormXml obrazca.
- V preskusno okolje uvozite upravljano rešitev iz 2. koraka in tako ustvarite drugo plast rešitve za obrazec. Kot je prikazano na spodnjem diagramu, pridobi ObrazecB združene spremembe iz rešitev Rešitev A in Rešitev B v testnem okolju in uporabniški vmesnik prikazuje Polje1 in Polje3 v obrazcu, vendar ne polja Polje2, ki ga je Rešitev B odstranila.
- Ko dodatno prilagodite obrazec, ki ste ga z novimi upravljanimi rešitvami prilagodili v 1. koraku, uporabite novo razvojno okolje, ki ima razvojno okolje ObrazecB v upravljanem stanju. Kot je prikazano na spodnjem diagramu, se Rešitev A in Rešitev B upravljane rešitve uvažajo v novem razvojnem okolju. FormB se prilagodi z ustvarjanjem aktivnih prilagoditev, ki jih je nato mogoče dodati novi rešitvi (Rešitev C v diagramu) in izvoziti kot upravljana rešitev.
- V preskusno okolje uvozite upravljano Rešitev C iz 4. koraka. Kot je prikazano na spodnjem diagramu, doda Rešitev C novo Polje4 v ObrazecB in odstrani Polje3, ki ga je dodala Rešitev B. Uporabniški vmesnik obrazca v testnem okolju zdaj prikazuje Polje1 in Polje4 v obrazcu, vendar ne polja Polje2 in Polje3.
Kot je razvidno iz spodnjega diagrama, pri ALM ni dobro ustvariti več upravljanih rešitev iz razvojnega okolja, ki vsebuje drugo neupravljano rešitev, ki ste jo ustvarili za isti obrazec. Upoštevajte, da je Rešitev B v neupravljanem stanju. Ko ustvarite novo neupravljano rešitev (Rešitev C) za ObrazecB, se FormXml izvozi kot diff FormXml, kot je prikazano v zgornjem scenariju v 4. koraku. ObrazecB pa vsebuje tudi spremembe iz funkcije Rešitev B, ki ga bodo nove spremembe prepisale.
Kot je razvidno iz spodnjega diagrama, je Polje3 dodano v ObrazecB v rešitvi Rešitev B. Toda ko ustvarite novo Rešitev C v tem okolju, z rešitvijo Rešitev B v neupravljanem stanju, in odstranite Polje3, bo Polje3 odstranjeno tudi v razvojnem oknu. Polju 3 ne bo sledilo v diff FormXml, ko bo rešitev izvožena, ker je bila sprememba dodajanja in odstranjevanja tega stolpca narejena v istem aktivnem sloj. To pomeni, da bo v primeru, ko je upravljana Rešitev C uvožena v preskusnem okolju, obrazec še vedno upodabljal Polje3, saj ga diff FormXml nikoli ne zabeleži kot odstranjenega (kot je bil odstranjen v 5. koraku v zgornjem scenariju za kakovosten obrazec ALM). Če na ta način prilagodite obrazce, bo razvojno okolje neskladno s testnim okoljem.
Za izvedbo kakovostnega obrazca ALM za ta scenarij sledite naslednjim korakom.
Prilagodite obstoječi upravljani obrazec, v tem primeru recimo ObrazecB, v vašem razvojnem okolju in izvedite prilagoditve obrazca. Upoštevajte, da je Rešitev A upravljana rešitev, ki je že nameščena za obrazec v razvojnem okolju.
Ustvarite rešitev (Rešitev B), ki bo neupravljana rešitev, in dodajte ObrazecB. Izvozite rešitev kot upravljano rešitev. Ta korak izvozi diff FormXml obrazca.
V preskusno okolje uvozite upravljano Rešitev B iz 2. koraka in tako ustvarite drugo plast rešitve za obrazec. V spodnjem diagramu se v ObrazecB združijo spremembe iz funkcij Rešitev A in Rešitev B v testnem okolju. Poleg tega uporabniški vmesnik za ObrazecB prikazuje Polje1 in Polje3 v obrazcu, ne pa tudi Polje2, ki ga je odstranila Rešitev B.
Ko dodatno prilagodite obrazec, ki ste ga prilagodili z rešitvijo s popravkom v 1. koraku, lahko uporabite isto razvojno okolje kot v 1. koraku, kjer je Rešitev B v neupravljanem stanju. Kot je prikazano na spodnjem diagramu, je Rešitev A v upravljanem stanju in Rešitev B v neupravljanem stanju. Obrazec je dodatno prilagojen, vi pa ustvarite popravek za Rešitev B tako, da tej rešitvi dodate obrazec in ga izvozite kot upravljano rešitev s popravkom. Ta korak izvozi diff FormXml obrazca.
V preskusno okolje uvozite upravljani popravek Rešitev B iz 4. koraka. Kot je prikazano na spodnjem diagramu, doda Popravek Rešitve B novo Polje4 v ObrazecB in odstrani Polje3, ki ga je dodala Rešitev B.
Opomba
Popravki so dodajajo in iz obrazca ne morejo odstraniti komponent, kot so na primer stolpci. Polje3 torej ne bo odstranjeno iz obrazca. Uporabniški vmesnik obrazca v testnem okolju zdaj prikazuje Polje1, Polje3 in Polje4 v obrazcu, vendar ne prikazuje polja Polje2.
Ko dodatno prilagodite obrazec, ki ste ga z uporabo nadgradenj ustvarili v 1. koraku, uporabite isto okolje, kjer je Rešitev B v neupravljanem stanju, in klonirajte Rešitev B, da ustvarite nadgradnjo rešitve, ter prilagodite ObrazecB. Izvozite nadgradnjo kot upravljano rešitev. Ta korak izvozi diff FormXml obrazca.
V preskusno okolje uvozite upravljano nadgrajeno rešitev Rešitev B iz 6. koraka. Kot je prikazano na spodnjem diagramu, doda Nadgradnja rešitve B novo Polje5 v ObrazecB in odstrani Polje3, ki ga je dodala Rešitev B. Uporabniški vmesnik obrazca v testnem okolju zdaj prikazuje Polje1, Polje4 in Polje5 v obrazcu, vendar sta polji Polje2 in Polje3 odstranjeni.
Za izvedbo kakovostnega obrazca ALM za ta scenarij sledite naslednjim korakom.
- V okolju Razvojno okolje 1 ustvarite nov ObrazecA in izvedite prilagoditve obrazca.
- Ustvarite rešitev (Rešitev A v spodnjem diagramu), ki je neupravljana rešitev, in dodajte nov obrazec. Izvozite rešitev kot neupravljano rešitev. Ta korak izvozi celotni FormXml obrazca.
- V okolju Razvojno okolje 2 uvozite neupravljano rešitev iz 2. koraka, ki ustvari obrazec v okolju Razvojno okolje 2. V spodnjem diagramu se v testnem okolju ustvari ObrazecA in uporabniški vmesnik za obrazec prikazuje Polje1 in Polje2, ki ju je Rešitev A dodala v obrazec.
- Obrazec dodatno prilagodite v okolju Razvojno okolje 2, kjer izvedete dejavne prilagoditve, kot na primer dodate novi stolpec z imenom Polje3. FormA zdaj prikazuje Field1, Field2in Polje3.
- V okolju Razvojno okolje 1 lahko obrazec dodatno prilagodite tudi z dodajanjem polja Polje4. Uporabniški vmesnik obrazca v okolju Razvojno okolje 1 zdaj prikazuje Polje1, Polje2 in Polje4.
- Izvozite neupravljano Rešitev A s spremembami iz 5. koraka. Ta korak izvozi celotni FormXml obrazca.
- V okolju Razvojno okolje 2 uvozite neupravljano nadgradnjo Nadgradnja rešitve A iz 6. koraka. Ker rešitev, ki jo uvažate, vsebuje ObrazecA v celotnem FormXml, ta prepiše dejavno prilagoditev, narejeno v okolju Razvojno okolje 1. Obrazec zdaj prikazuje samo Polje1, Polje2 in Polje4, vendar ne prikazuje polja Polje3, ki je bila dodatna dejavna prilagoditev, izvedena v okolju Razvojno okolje 1. To se zgodi pri katerem koli uvozu neupravljane rešitve, ki ima obrazec v celotnem FormXml.
Za izvedbo kakovostnega obrazca ALM za ta scenarij sledite naslednjim korakom.
- V okolju Razvojno okolje 1 prilagodite obstoječi obrazec, v tem primeru ObrazecB. Nato izvedite prilagoditve v obrazcu.
- Ustvarite rešitev (Rešitev B v spodnjem diagramu), ki je neupravljana rešitev, in dodajte ObrazecB. Izvozite rešitev kot neupravljano rešitev. Ta korak izvozi diff FormXml obrazca.
- V okolju Razvojno okolje 2 uvozite neupravljano rešitev iz 2. koraka in tako ustvarite drugo plast rešitve za obrazec. ObrazecB uporabniškega vmesnika po združitvi obrazca prikazuje Polje1, Polje2 in Polje3.
- Obrazec dodatno prilagodite v okolju Razvojno okolje 2, kjer izvedete dejavne prilagoditve, na primer dodate novi stolpec Polje4. ObrazecB zdaj prikazuje Polje1, Polje2, Polje3 in Polje4.
- V okolju Razvojno okolje 1 lahko obrazec dodatno prilagodite z dodajanjem novega stolpca Polje5. Uporabniški vmesnik obrazca v okolju Razvojno okolje 1 zdaj prikazuje Polje3 in Polje5.
- Izvozite neupravljano Rešitev B s spremembami iz 5. koraka. Ta korak izvozi diff FormXml obrazca.
- V okolju Razvojno okolje 2 uvozite neupravljano nadgradnjo Nadgradnja rešitve B iz 6. koraka. Ker rešitev, ki jo uvažate, vsebuje ObrazecB v diff FormXml, se ta združi z dejavno prilagoditvijo, ustvarjeno v okolju Razvojno okolje 1. Novi obrazec zdaj prikazuje Polje1, Polje2, Polje3, Polje4 in Polje5. To se zgodi pri katerem koli uvozu neupravljane rešitve, ki ima obrazec v obliki diff FormXml.
- Če združevanje obrazcev v 7. koraku ni tisto, kar želite, čeprav uvozite diff FormXml z neupravljano rešitvijo, in želite prepisati dejavne prilagoditve, narejene v okolju Razvojno okolje 2, potem odstranite dejavno plast za ObrazecB. Več o tem: Odstranjevanje neupravljane plasti.
- Izvozite neupravljano Rešitev B s spremembami iz 5. koraka. Ta korak izvozi diff FormXml obrazca.
- V okolju Razvojno okolje 2 uvozite neupravljano nadgradnjo Nadgradnja Rešitve B iz 9. koraka. Ker ni dejavne plasti za obrazec v okolju Razvojno okolje 2, (glejte 8. korak), so vse spremembe iz neupravljane rešitve Rešitev B uvožene, čeprav za ObrazecB uvažate diff FormXml. Obrazec zdaj prikazuje samo Polje1, Polje2, Polje3 in Polje5. To se zgodi pri katerem koli uvozu neupravljane rešitve, ki ima obrazec v obliki diff FormXml. To je enak rezultat kot v 7. koraku scenarija Vzdrževanje neupravljanih rešitev in prilagoditev obstoječega obrazca v več razvojnih okoljih.
Vsak izvoženi paket rešitev vključuje datoteko customizations.xml. Kadar je obrazec vključen v rešitev, je povezana definicija obrazca znotraj odsekov FormXml datoteke customizations.xml. FormXml je lahko celotni ali diferencialni (diff).
FormXml, ki ga dobite pri izvozu rešitve za obrazec v neupravljanem stanju, se imenuje celotni FormXml. Celoten pomeni, da vsebuje celotno definicijo obrazca. Ko ustvarite nov obrazec in ga izvozite, bo obrazec vedno celotni FormXml, ker je obrazec v okolju, iz katerega izvažate, v neupravljanem stanju, hkrati pa je tudi v stanju ustvarjanja. Če iz tega okolja izvozite dodatne rešitve, bodo tudi te vključevale celotni FormXml. Atribut solutionaction
namreč označuje diff FormXml, celotni FormXml v datoteki customization.xml v rešitvi, ki jo izvažate, pa ne vsebuje nobenega atributa solutionaction
.
FormXml, ki ga dobite pri izvozu rešitve za obrazec v upravljanem stanju, se imenuje diferencialni diff FormXml. Diff pomeni, da FormXml vsebuje samo spremembe, izvedene v dejavnih prilagoditvah v tem okolju, ne pa tudi celotne definicije obrazca. Ko prilagodite obstoječi upravljani obrazec in ga izvozite, bo obrazec vedno diff FormXml, ker bo vseboval le dejavne spremembe, ki so bile na njem opravljene. Diff FormXml bo v datoteki customization.xml v rešitvi, ki jo izvozite, vseboval atribute solutionaction
, ki določajo, kakšne so spremembe, kot na primer Dodano, Odstranjeno, Spremenjeno.
Diff FormXml zagotavlja, da bo vaša rešitev izrazila samo spremembe, ki jih potrebuje vaša aplikacija, nanj pa bodo spremembe iz drugih slojev vplivale manj. Zaradi diff FormXml je rešitev tudi manj obsežna, kar omogoča hitrejši uvoz.