Održavanje zdravog ALM-a obrasca aplikacije stvorene prema modelu
Ovaj vam članak nudi informacije o različitim scenarijima o tome kako implementirati i prakticirati zdravo upravljanje životnim ciklusom aplikacija (ALM) za prilagođavanje obrazaca u rješenjima aplikacija stvorenima prema modelu.
Sljedeći odjeljci opisuju kako funkcionira spajanje obrazaca i kako održavati prilagodbe. Osnovni scenariji razvoja s preporukama za održavanje uspješnog ALM-a za obrazac aplikacije stvorene prema modelu podrobno su pokriveni u svakom odjeljku koji slijedi. Svaki scenarij uključuje korake koje treba slijediti koji vam mogu pomoći da implementirate odgovarajući ALM postupak prilikom ažuriranja rješenja ili aplikacije stvorene prema modelu.
Slijedite ove korake za primjenu zdravog ALM-a obrasca za ovaj scenarij.
- Stvorite novi obrazac naziva FormA u svom razvojnom okruženju i izvršite prilagodbe na obrascu.
- Stvorite novo rješenje (naziva Rješenje A na donjem dijagramu) u razvojnom okruženju koje će biti neupravljano rješenje i dodajte svoj novi obrazac. Izvezite rješenje kao upravljano. Ovaj korak izvozi puni FormXml za obrazac.
- U testno okruženje uvezite upravljano rješenje iz koraka 2, čime se stvara FormA u testnom okruženju. Na donjem dijagramu FormA stvara se u testnom okruženju, korisničko sučelje za obrazac prikazuje Field1 i Field2 koje je Rješenje A dodalo u obrazac.
- Kad dodatno prilagodite obrazac koji ste stvorili u 1. koraku pomoću novog razvojnog (izvornog) okruženja, uvezite upravljano Rješenje A stvoreno u 2. koraku, provjerite ima li razvojna instanca koju koristite FormA u upravljanom stanju. Kao što je prikazano na donjem dijagramu, upravljano Rješenje A uvozi se u razvojno okruženje, a obrazac se prilagođava stvarajući aktivne prilagodbe. Zatim se FormA može dodati novom neupravljanom rješenju (Rješenje B na dijagramu) i izvesti kao upravljano rješenje iz razvojnog okruženja. Ovaj korak izvozi razlikovni (diff) FormXml za obrazac.
- U testnom okruženju uvezite upravljano rješenje (Rješenje B) iz koraka 4. Kao što je prikazano na donjem dijagramu Rješenje B dodaje novo Field3 u FormA i uklanja Field2, koje je dodalo Rješenje A. Korisničko sučelje za obrazac u testnom okruženju sada prikazuje Field3 i Field1 na obrascu, no ne Field2 nakon spajanja.
Kao što se vidi na donjem dijagramu, nije zdrava praksa ALM-a stvarati više upravljanih rješenja iz razvojnog okruženja u kojem je osnovno rješenje (Rješenje A) u neupravljanom stanju. To je zato što, kada stvorite još jedno neupravljano rješenje (Rješenje B) za neupravljeni obrazac, FormXml se izvozi kao puni FormXml, umjesto kao razlikovni FormXml, kao što je prikazano u važećem scenariju gore. Stoga promjene poput uklanjanja stupca neće stupiti na snagu.
Slijedite ove korake za primjenu zdravog ALM-a obrasca za ovaj scenarij.
Stvorite novi obrazac naziva FormA u svom razvojnom okruženju i izvršite prilagodbe na obrascu.
Stvorite rješenje (Rješenje A na donjem dijagramu) koje će biti neupravljano rješenje i dodajte svoj novi obrazac. Izvezite rješenje kao upravljano. Ovaj korak izvozi puni FormXml za obrazac.
U testno okruženje uvezite upravljano rješenje iz koraka 2, čime se stvara obrazac u testnom okruženju. Na donjem dijagramu FormA stvara se u testnom okruženju, korisničko sučelje za obrazac prikazuje Field1 i Field2 koje je Rješenje A dodalo u obrazac.
Kada pomoću zakrpa dodatno prilagodite obrazac koji ste stvorili u koraku 1, koristite isto okruženje u kojem je Rješenje A u neupravljenom stanju i stvorite zakrpu za rješenje i prilagodite obrazac. Zatim izvezite zakrpu kao upravljano rješenje. Ovaj korak izvozi puni formXml za obrazac.
U testnom okruženju uvezite upravljano rješenje zakrpe iz koraka 4. Kao što je prikazano na donjem dijagramu, zakrpa za Rješenje A dodaje novo Field3 u FormA i uklanja Field2 koje je dodalo Rješenje A.
Napomena
Zakrpe koje sadrže potpuni formXml uvijek se uspoređuju s osnovnim slojem iz kojeg je zakrpa stvorena i zanemaruju sve međuzakrpe između baze i trenutne zakrpe. Kao rezultat toga, vrijednost Field2 je uklonjena budući da postoji u osnovnom sloju Solution A i uklanjanje je otkriveno. S druge strane, Field3 dodaje se ovim rješenjem zakrpe i ne može se ukloniti sljedećim zakrpama. Stoga su polja dodana kroz rješenja zakrpe aditivna po prirodi.
Kada pomoću nadogradnji dodatno prilagodite obrazac koji ste stvorili u koraku 1, koristite isto okruženje u kojem je Rješenje A u neupravljenom stanju i klonirajte Rješenje A kako biste stvorili rješenje za nadogradnju i prilagodite obrazac. Zatim izvezite nadogradnju za Rješenje A kao upravljano rješenje. Ovaj korak izvozi puni FormXml za obrazac.
U testnom okruženju uvezite upravljanu nadogradnju za Rješenje A iz koraka 6. Kao što je prikazano na donjem dijagramu, nadogradnja za Rješenje B dodaje novo Field4 u FormA i uklanja Field2, koje je dodalo Rješenje A. Korisničko sučelje za obrazac u testnom okruženju sada prikazuje Field1, Field3 i Field4 na obrascu, no Field2 uklonit će se nakon spajanja obrasca iz uvoza.
Slijedite ove korake za primjenu zdravog ALM-a obrasca za ovaj scenarij.
- Uredite postojeći upravljani obrazac, naziva FormB u ovom primjeru, u svom razvojnom okruženju i izvršite prilagodbe na obrascu. Imajte na umu da je rješenje A upravljano rješenje koje je već instalirano za obrazac u razvojnom okruženju.
- Stvorite novo rješenje (Rješenje B na donjem dijagramu), koje je neupravljano rješenje, i dodajte FormB. Izvezite rješenje kao upravljano. Ovaj korak izvozi razlikovni (diff) FormXml za obrazac.
- U testno okruženje uvezite upravljano rješenje iz koraka 2, čime se stvara drugi sloj rješenja za obrazac. Na donjem dijagramu FormB dobiva spojene izmjene iz Rješenja A i Rješenja B u tetsnom okruženja, a korisničko sučelje za obrazac prikazuje Field1 i Field3 na obrascu, no ne Field2, koje je uklonilo Rješenje B.
- Kada dodatno prilagodite obrazac koji ste prilagodili u 1. koraku pomoću novih upravljanih rješenja, pobrinite se da upotrijebite novo razvojno okruženje koje ima FormB u upravljanom stanju. Kao što je prikazano na donjem dijagramu, upravljana rješenja, Rješenje A i Rješenje B uvoze se u novo razvojno okruženje. Obrazac B je prilagođen stvaranjem aktivnih prilagodbi, koje se zatim mogu dodati novom rješenju (rješenje C na dijagramu) i izvesti kao upravljano rješenje.
- U testnom okruženju uvezite upravljano Rješenje C iz koraka 4. Kao što je prikazano na donjem dijagramu Rješenje C dodaje novo Field4 u FormB i uklanja Field3, koje je dodalo Rješenje B. Korisničko sučelje za obrazac u testnom okruženju sada prikazuje Field1 i Field4 na obrascu, no ne Field2 i Field3.
Kao što je prikazano na donjem dijagramu, nije zdrava praksa ALM-a stvarati više upravljanih rješenja iz razvojnog okruženja koje sadrži drugo neupravljano rješenje za isti obrazac. Primijetite da je Rješenje B u neupravljanom stanju. Kada stvorite još jedno neupravljano rješenje (Rješenje C) za FormB, FormXml izvozi se kao razlikovni FormXml, kao što je prikazano u koraku 4 u gornjem scenariju. No FormB sadrži i promjene iz Rješenja B, koje će vaše nove promjene prebrisati.
Primjerica, kao što se vidi na donjem dijagramu, Field3 dodaje se u FormB u Rješenju B. Ali sada kada stvorite novo Rješenje C u ovom okruženju, s Rješenjem B u neupravljenom stanju, a uklonite Field3, Field3 također će se ukloniti u razvojnom okruženju. Field3 se neće pratiti u diff FormXml kada se otopina izvozi, budući da je promjena dodavanja i uklanjanja ovog stupca napravljena u istom aktivnom sloj. To znači da kad se upravljano Rješenje C uveze u testno okruženje, obrazac će i dalje prikazivati Field3 jer ga razlikovni FormXml nikad ne bilježi kao uklonjeno (kao da je uklonjeno u koraku 5 u gornjem zdravom scenariju ALM-a obrasca). Ako na ovaj način izvršite prilagodbe obrazaca, razvojno okruženje neće biti u skladu s testnim okruženjem.
Slijedite ove korake za primjenu zdravog ALM-a obrasca za ovaj scenarij.
Prilagodite postojeći upravljani obrazac, naziva FormB u ovom primjeru, u svom razvojnom okruženju i izvršite prilagodbe na obrascu. Imajte na umu da je Rješenje A upravljano rješenje koje je već instalirano za obrazac u razvojnom okruženju.
Stvorite rješenje (Rješenje B), koje će biti neupravljano rješenje, i dodajte FormB. Izvezite rješenje kao upravljano. Ovaj korak izvozi razlikovni FormXml za obrazac.
U testno okruženje uvezite upravljano Rješenje B iz koraka 2, čime se stvara drugi sloj rješenja za obrazac. Na donjem dijagramu FormB dobiva spojene promjene iz Rješenja A i Rješenja B u testnom okruženju. Uz to, korisničko sučelje za FormB pokazuje Field1 i Field3 na obrascu, ali ne i Field2, koje je uklonilo Rješenje B.
Kada dodatno prilagodite obrazac koji ste prilagodili u Koraku 1 pomoću rješenja zakrpe, možete koristiti isto razvojno okruženje kao korak 1 gdje Rješenje B postoji u neupravljanom stanju. Kao što je prikazano na donjem dijagramu, Rješenje A je u upravljanom stanju, a Rješenje B je u neupravljanom stanju. Obrazac se dalje prilagođava i stvarate zakrpu za Rješenje B dodajući svoj obrazac u ovo rješenje i izvozeći ga kao upravljano rješenje zakrpe. Ovaj korak izvozi razlikovni FormXml.
U testnom okruženju uvezite upravljano Rješenje B zakrpe iz koraka 4. Kao što je prikazano na donjem dijagramu, Zakrpa za Rješenje B dodaje novo Field4 u FormB i uklanja Field3 koje je dodalo Rješenje B.
Napomena
Zakrpe su aditivne naravi i ne mogu ukloniti komponente, poput stupaca, iz obrasca. Dakle, Field3 neće se ukloniti iz obrasca. Korisničko sučelje za obrazac u testnom okruženju sada prikazuje Field1, Field3 i Field4 na obrascu, no ne i Field2.
Kada pomoću nadogradnji dodatno prilagodite obrazac koji ste stvorili u koraku 1, koristite isto okruženje u kojem je Rješenje B u neupravljenom stanju i klonirajte Rješenje B kako biste stvorili rješenje za nadogradnju i prilagodite FormB. Izvezite nadogradnju kao upravljano rješenje. Ovaj korak izvozi razlikovni FormXml za obrazac.
U testnom okruženju uvezite upravljano rješenje rješenja nadogradnje za Rješenje B iz koraka 6. Kao što je prikazano na donjem dijagramu Nadogradnja za Rješenje B dodaje novo Field5 u FormB i uklanja Field3, koje je dodalo Rješenje B. Korisničko sučelje za obrazac u testnom okruženju sada prikazuje Field1, Field4 i Field5 na obrascu, no Field2 i Field3 uklanjaju se.
Slijedite ove korake za primjenu zdravog ALM-a obrasca za ovaj scenarij.
- U Razvojnom okruženju 1 stvorite novi FormA i izvršite prilagodbe na obrascu.
- Stvorite rješenje (Rješenje A na donjem dijagramu), koje će biti neupravljano rješenje, i dodajte svoj novi obrazac. Izvezite rješenje kao neupravljano. Ovaj korak izvozi puni FormXml za obrazac.
- U Razvojnom okruženju 2 uvezite neupravljano rješenje iz koraka 2, koje stvara obrazac u Razvojnom okruženju 2. Na donjem dijagramu stvara se FormA, a korisničko sučelje za obrazac prikazuje Field1 i Field2 koje je Rješenje A dodalo u obrazac.
- Dalje prilagodite obrazac u Razvojnom okruženju 2 vršeći aktivne prilagodbe u okružemnju, poput dodavanja novog stupca naziva Field3. Obrazac A sada prikazuje Polje1, Polje2 i Polje3.
- U svom Razvojnom okruženju 1 obrazac dodatno prilagodite dodavanjem Field4. Korisničko sučelje za obrazac u Testnom okruženju 1 sada prikazuje Field1, Field2 i Field4.
- Izvezite neupravljano Rješenje A s promjenama učinjenima u koraku 5. Ovaj korak izvozi puni FormXml za obrazac.
- U Razvojnom okruženju 2 uvezite neupravljanu Nadogradnju za Rješenje A iz koraka 6. Budući da rješenje koje uvozite sadrži puni FormXml za FormA, ono prebriše aktivnu prilagodbu napravljenu u Razvojnom okruženju 1. Dakle, obrazac sada prikazuje samo Field1, Field2 i Field4, ali ne i Field3, koje je bilo dodatna aktivna prilagodba provedena u Razvojnom okruženju 1. To se ponašanje događa kod svakog uvoza neupravljanog rješenja koji ima puni FormXml za obrazac.
Slijedite ove korake za primjenu zdravog ALM-a obrasca za ovaj scenarij.
- U Razvojnom okruženju 1 prilagodite postojeći obrazac, koji je u ovom primjeru naziva FormB. Zatim izvršite prilagodbe na obrascu.
- Stvorite rješenje (Rješenje B na donjem dijagramu), koje će biti neupravljano rješenje, i dodajte FormB. Izvezite rješenje kao neupravljano. Ovaj korak izvozi razlikovni FormXml za obrazac.
- U Razvojnom okruženju 2 uvezite neupravljano rješenje iz koraka 2, čime se stvara drugi sloj rješenja za obrazac. Korisničko sučelje za FormB prikazuje Field1, Field2 i Field3 nakon spajanja obrasca.
- Dalje prilagodite obrazac u Razvojnom okruženju 2 vršeći aktivne prilagodbe u okružemnju, poput dodavanja novog stupca naziva Field4. Obrazac B sada prikazuje Polje1, Polje2, Polje3 i Polje4.
- U Razvojnom okruženju 1 obrazac dodatno prilagodite dodavanjem novog stupca naziva Field5. Korisničko sučelje za obrazac u Testnom okruženju 1 sada prikazuje Field3 i Field4.
- Izvezite neupravljano Rješenje B s promjenama učinjenima u koraku 5. Ovaj korak izvozi razlikovni FormXml za obrazac.
- U Razvojnom okruženju 2 uvezite neupravljanu Nadogradnju za Rješenje B iz koraka 6. Budući da rješenje koje uvozite sadrži razlikovni FormXml za FormB, spojit će se s aktivnom prilagodbom napravljenom u Razvojnom okruženju 1. Dakle, obrazac sada pokazuje Field1, Field2, Field3, Field4 i Field5. To se ponašanje događa za svaki uvoz neupravljanog rješenja koji ima razlikovni FormXml za obrazac.
- Ako spajanje obrazaca u koraku 7 nije ono što želite, iako uvozite razlikovni FormXml s neupravljanim rješenjem i želite biti u mogućnosti prebrisati aktivne prilagodbe izvršene u Razvojnom okruženju 2, tada uklonite aktivni sloj za FormB. Više informacija: Uklanjanje neupravljanog sloja.
- Izvezite neupravljano Rješenje B s promjenama učinjenima u koraku 5. Ovaj korak izvozi razlikovni FormXml za obrazac.
- U Razvojnom okruženju 2 uvezite neupravljanu Nadogradnju za Rješenje B iz koraka 9. Budući da u obrascu ne postoji aktivni sloj za obrazac u Razvojnom okruženju 2, (pogledajte korak 8), sve promjene iz neupravljanog Rješenja B uvoze se iako uvozite razlikovni FormXml za FormB. Dakle, obrazac sada pokazuje samo Field1, Field2, Field3 i Field5. To se ponašanje događa za svaki uvoz neupravljanog rješenja koji ima razlikovni FormXml za obrazac. To je isti rezultat kao korak 7 u scenariju Održavanje neupravljanih rješenja i prilagodbi za postojeći obrazac u više razvojnih okruženja.
Svaki izvezeni paket rješenja uključuje datoteku customizations.xml. Kad god se obrazac uključi u rješenje, povezana definicija obrasca postoji u odjeljcima FormXml datoteke customizations.xml. FormXml može biti puni ili razlikovni (diff).
FormXml koji dobijete pri izvozu rješenja za obrazac u neupravljanom stanju naziva se puni FormXml. Puni znači da sadrži cjelokupnu definiciju obrasca. Kada stvorite novi obrazac i izvezite ga, obrazac će uvijek biti puni FormXml jer je obrazac u okruženju iz kojeg izvozite u neupravljanom stanju, a također je i u stanju stvaranja. Ako iz istog okruženja izvezete daljnja rješenja, ona će također sadržavati puni FormXml. Budući da atribut solutionaction
naznačava razlikovni FormXml, puni FormXml u datoteci customization.xml u rješenju koje izvozite neće sadržavati atribute solutionaction
.
FormXml koji dobijete pri izvozu rješenja za obrazac u upravljanom stanju naziva se razlikovni ili diff FormXml. Diff znači da FormXml sadrži samo promjene izvršene u aktivnim prilagodbama u tom okruženju, no ne i cijelu definiciju obrasca. Kada prilagodite postojeći upravljani obrazac i izvezete ga, obrazac će uvijek biti diff FormXml jer će sadržavati samo aktivne promjene koje su na njemu izvršene. Diff FormXml u datoteci customization.xml u rješenju koju izvozite sadržavat će atribute solutionaction
koji definiraju kakve su promjene, kao što su Dodano, Uklonjeno, Izmijenjeno.
Diff FormXml osigurava da će vaše rješenje izražavati samo promjene koje vaša aplikacija treba i na njih će manje utjecati promjene iz drugih slojeva. Diff FormXml također čini rješenje manje glomaznim i pomaže u bržem uvozu.