Menținerea unui ALM în bună stare pentru formularele aplicațiilor proiectate pe bază de model
Acest articol vă oferă informații despre diferitele scenarii despre cum să implementați și să practicați gestionarea sănătoasă a ciclului de viață al aplicațiilor (ALM) pentru personalizarea formularelor în soluțiile de aplicații pe bază de model.
Următoarele secțiuni descriu cum funcționează îmbinarea formularelor și cum se mențin personalizările. Scenariile de bază de dezvoltare cu recomandări pentru menținerea cu succes a ALM pentru un formular de aplicație pe bază de model sunt prezentate în detaliu în fiecare secțiune care urmează. Fiecare scenariu include pași de urmat care vă pot ajuta să implementați un proces ALM adecvat la actualizarea soluției sau a aplicației pe bază de model.
Urmați acești pași pentru a implementa ALM de formular sănătos pentru acest scenariu.
- Creați un formular nou denumit FormA în mediul dvs. de dezvoltare și efectuați personalizări pe formular.
- Creați o nouă soluție (denumită Soluția A în diagrama de mai jos) în mediul de dezvoltare, care va fi o soluție negestionată și va adăuga noul formular. Exportați soluția ca gestionată. Acest pas exportă un FormXml complet pentru formular.
- În mediul dvs. de testare, importați soluția gestionată de la pasul 2, care creează FormA în mediul de testare. În diagrama de mai jos, FormA se creează în mediul de testare și în interfața de utilizare pentru afișarea formularului Field1 și Field2 pe care l-a adăugat Soluția A la formular.
- Când personalizați în continuare formularul pe care l-ați creat la pasul 1 utilizând un nou mediu de dezvoltare (sursă), importați Soluția A gestionată creată la pasul 2, asigurați-vă că instanța de dezvoltare pe care o utilizați are FormA într-o stare gestionată. Așa cum se arată în diagrama de mai jos, Soluția A gestionată este importată în mediul de dezvoltare și formularul este personalizat creând personalizări active. Atunci, FormA poate fi apoi adăugat la o nouă soluție negestionată (Soluția B în diagramă) și exportat ca soluție gestionată din mediul de dezvoltare. Acest pas exportă un FormXml diferențial (dif.) pentru formular.
- În mediul dvs. de testare, importați soluția gestionată (Soluția B) de la pasul 4. Așa cum se arată în diagrama de mai jos Soluția B adaugă un nou Field3 la FormA și îndepărtează Field2, care a fost adăugat de Soluția A . UI, pentru formularul din mediul de testare, afișează acum Field3 și Field1 pe formular dar nu Field2 după îmbinare.
După cum se vede în diagrama de mai jos, nu este o practică ALM sănătoasă de a crea mai multe soluții gestionate din mediul de dezvoltare în care soluția de bază (Soluția A) se află într-o stare negestionată. Acest lucru se datorează faptului că, atunci când creați o altă soluție negestionată (Soluția B) pentru formular negestionat, FormXml este exportat ca un FormXml complet, în loc de un FormXml diferit așa cum se arată în scenariul valid de mai sus. Ulterior, modificările precum eliminarea unei coloane nu vor intra în vigoare.
Urmați acești pași pentru a implementa ALM de formular sănătos pentru acest scenariu.
Creați un formular nou denumit FormA în mediul dvs. de dezvoltare și efectuați personalizări pe formular.
Creați o soluție (Soluția A în diagrama de mai jos), care va fi o soluție negestionată și adăugați noul formular. Exportați soluția ca gestionată. Acest pas exportă un FormXml complet pentru formular.
În mediul dvs. de testare, importați soluția gestionată de la pasul 2, creând astfel formularul în mediul de testare. În diagrama de mai jos, FormA se creează în mediul de testare și în interfața de utilizare pentru afișarea formularului Field1 și Field2 pe care l-a adăugat Soluția A la formular.
Când personalizați în continuare formularul pe care l-ați creat la pasul 1 folosind patch-uri, utilizați același mediu în care Soluția A este într-o stare negestionată și creează un patch pentru soluție și personalizează formularul. Apoi, exportați patch-ul ca soluție gestionată. Acest pas exportă un FormXml complet pentru formular.
În mediul dvs. de testare, importați soluția de patch gestionată de la pasul 4. După cum se arată în diagrama de mai jos, patch-ul Soluția A adaugă un nou Field3 la FormA și elimină Field2, care a fost adăugat de Soluția A.
Notă
Patch-urile care conțin full formXml sunt întotdeauna comparate cu stratul de bază din care a fost creat patch-ul și ignoră orice patch-uri intermediare dintre bază și patch-ul curent. Ca rezultat, Field2 este eliminat deoarece există în stratul de bază Soluția A și eliminarea este detectată. Pe de altă parte, Field3 este adăugat de această soluție de patch și nu poate fi eliminat de patch-urile ulterioare. Astfel, câmpurile adăugate prin soluții de plasture sunt de natură aditivă.
Când personalizați în continuare formularul pe care l-ați creat la pasul 1 folosind upgrade-uri, utilizați același mediu în care Soluția A este într-o stare negestionată și clonați Soluția A pentru face upgrade la soluție și pentru a personaliza formularul. Apoi, exportați upgrade-ul Soluția A ca soluție gestionată. Acest pas exportă un FormXml complet pentru formular.
În mediul dvs. de testare, importați upgrade-ul gestionat Soluția A de la pasul 6. După cum se arată în diagrama de mai jos, upgrade-ul Soluția A adaugă un nou Field4 la FormA și elimină Field2, care a fost adăugat de Soluția A. UI pentru formularul din mediul de testare arată acum Field1, Field3 și Field4 pe formular, dar Field2 va fi eliminat după ce formularul este fuzionat din import.
Personalizarea unui formular gestionat existent și menținerea acestuia folosind mai multe soluții gestionate
Urmați acești pași pentru a implementa ALM de formular sănătos pentru acest scenariu.
- Editați un formular gestionat existent, numit FormB în acest exemplu, în mediul dvs. de dezvoltare și efectuați personalizări pe formular. Rețineți că soluția A este soluție gestionată deja instalată pentru formular în mediul de dezvoltare.
- Creați o nouă soluție (Soluția B în diagrama de mai jos), care este o soluție negestionată și adăugați FormB. Exportați soluția ca gestionată. Acest pas exportă un FormXml diferențial (dif.) pentru formular.
- În mediul dvs. de testare, importați soluția gestionată de la pasul 2, creând astfel un al doilea strat de soluție pentru formular. În diagrama de mai jos, FormB obține modificările combinate de la Soluția A și Soluția B în mediul de testare, iar interfața de utilizare a formularului arată Field1 și Field3 pe formular, dar nu Field2, care a fost eliminat de Soluția B.
- Când personalizați în continuare formularul pe care l-ați particularizat la pasul 1 utilizând noi soluții gestionate, asigurați-vă că utilizați noul mediu de dezvoltare care are FormB într-o stare gestionată. După cum se arată în diagrama de mai jos, soluțiile gestionate Soluția A și Soluția B sunt importate în noul mediu de dezvoltare. FormB este personalizat creând personalizări active, care pot fi apoi adăugate la o nouă soluție (Soluția C în diagramă) și exportate ca soluție gestionată.
- În mediul dvs. de testare, importați soluția de Soluția C de la pasul 4. Așa cum se arată în diagrama de mai jos Soluția C adaugă un nou Field4 la FormB și îndepărtează Field3, care a fost adăugat de Soluția B. UI, pentru formularul din mediul de testare, afișează acum Field1 și Field4 pe formular dar nu Field2 și Field3.
Așa cum se arată în diagrama de mai jos, nu este o practică ALM sănătoasă pentru a crea mai multe soluții gestionate din mediul de dezvoltare care conține o altă soluție negestionată pe care ați creat-o pentru același formular. Observați că Soluția B este în stare negestionată. Când creați o altă soluție negestionată (Soluția C) pentru FormB, FormXml este exportat ca FormXml diferit așa cum se arată în pasul 4 din scenariul de mai sus. Dar, FormB conține, de asemenea, modificările din Soluția B, care vor fi suprascrise de noile modificări.
De exemplu, așa cum se vede în diagrama de mai jos, Field3 se adaugă la FormB în Soluția B. Dar acum, când creați o nouă Soluția C în acest mediu, cu Soluția B în stare negestionată și scoateți Field3, Field3 vor fi, de asemenea, eliminate în mediul de dezvoltare. Field3 nu va fi urmărit în formatul FormXml când soluția este exportată, deoarece schimbarea adăugării și eliminării acestei coloane a fost făcută în același strat activ. Asta înseamnă când atunci când Soluția C gestionată este importată în mediul de testare, formularul va reda în continuare Field3 deoarece FormXml dif. nu îl înregistrează niciodată ca eliminat (cum a fost eliminat la pasul 5 în scenariul ALM de formular sănătos de mai sus). Efectuarea personalizărilor formularului în acest fel va duce la mediul de dezvoltare neconcordant cu mediul de testare.
Personalizarea unui formular gestionat existent și menținerea acestuia folosind patch-uri și upgrade-uri
Urmați acești pași pentru a implementa ALM de formular sănătos pentru acest scenariu.
Particularizați un formular gestionat existent, numit FormB în acest exemplu, în mediul dvs. de dezvoltare și efectuați personalizări pe formular. Rețineți că Soluția A- este soluție gestionată deja instalată pentru formular în mediul de dezvoltare.
Creați o soluție (Soluția B), care va fi o soluție negestionată și adăugați FormB. Exportați soluția ca gestionată. Acest pas exportă un FormXml dif. pentru formular.
În mediul dvs. de testare, importați Soluția B gestionată de la pasul 2, creând astfel un al doilea strat de soluție pentru formular. În diagrama de mai jos, FormB primește modificările combinate de la Soluția A și Soluția B în mediul de testare. În plus, interfața pentru FormB arată Field1 și Field3 pe formular, dar nu Field2, care a fost eliminat de Soluția B.
Când personalizați în continuare formularul pe care l-ați personalizat la pasul 1 utilizând o soluție de patch-uri, puteți utiliza același mediu de dezvoltare ca la pasul 1 unde Soluția B există într-o stare negestionată. După cum se arată în diagrama de mai jos, Soluția A se află într-o stare gestionată și Soluția B se află într-o stare negestionată. Formularul este personalizat în continuare și creați un patch pentru Soluția B adăugând formularul la această soluție și exportând-o ca soluție de patch gestionată. Acest pas exportă un FormXml dif.
În mediul dvs. de testare, importați Soluția B de patch gestionată de la pasul 4. După cum se arată în diagrama de mai jos, patch-ul pentru Soluția B adaugă un nou Field4 la FormB și elimină Field3, care a fost adăugat de Soluția B.
Notă
Patch-urile sunt de natură aditivă și nu pot elimina componente, cum ar fi coloanele, din formular. Așadar Field3 nu va fi eliminat din formular. Se afișează acum interfața pentru formularul din mediul de testare Field1, Field3 și Field4 pe formular, dar nu Field2.
Când personalizați în continuare formularul pe care l-ați creat la pasul 1 folosind upgrade-uri, utilizați același mediu în care Soluția B este într-o stare negestionată și clonați Soluția B pentru face upgrade la soluție și pentru a personaliza FormB. Exportați actualizarea ca soluție gestionată. Acest pas exportă un FormXml dif. pentru formular.
În mediul dvs. de testare, importați soluția de upgrade gestionată Soluția B de la pasul 6. După cum se arată în diagrama de mai jos, Soluția B Upgrade adaugă un nou Field5 la FormB și elimină Field3, care a fost adăugat de Soluția B. UI pentru formularul din mediul de testare arată acum Field1, Field4 și Field5 pe formular, dar Field2 și Field3 sunt eliminate.
Menținerea soluțiilor și personalizărilor negestionate pentru un nou formular în mai multe medii de dezvoltare
Urmați acești pași pentru a implementa ALM de formular sănătos pentru acest scenariu.
- În Mediul de dezvoltare 1, creați un formular nou FormA și efectuați personalizări pe formular.
- Creați o soluție (Soluția A în diagrama de mai jos), care va fi o soluție negestionată și adăugați noul formular. Exportați soluția ca negestionată. Acest pas exportă un FormXml complet pentru formular.
- În Mediul de dezvoltare 2, importați soluția negestionată de la pasul 2, care creează formularul în Mediul de dezvoltare 2. În diagrama de mai jos, FormA se creează și în interfața de utilizare pentru afișarea formularului Field1 și Field2 pe care l-a adăugat Soluția A la formular.
- Personalizați în continuare formularul în Mediul de dezvoltare 2 realizând personalizări active în mediu, cum ar fi adăugarea unei noi coloane numite Field3. FormA acum arată Field1, Field2 și Field3.
- În Mediul de dezvoltare 1 al dvs., personalizați formularul și adăugați de asemenea Field4. Se afișează acum interfața pentru formularul din Mediul de dezvoltare 1 cu Field1, Field2 și Field4.
- Export negestionat Soluția A cu modificările făcute la pasul 5. Acest pas exportă un FormXml complet pentru formular.
- În Mediul de dezvoltare 2, import negestionat Soluția A Upgrade de la pasul 6. Deoarece soluția pe care o importați conține FormXml complet pentru FormA va suprascrie personalizarea activă realizată în Mediul de dezvoltare 1. Deci, formularul arată acum numai Field1, Field2 și Field4, dar nu Field3, care a fost personalizarea activă suplimentară realizată în Mediul de dezvoltare 1. Acest comportament apare la orice import de soluție negestionată care are FormXml complet pentru formular.
Menținerea soluțiilor și personalizărilor negestionate pentru un formular existent în mai multe medii de dezvoltare
Urmați acești pași pentru a implementa ALM de formular sănătos pentru acest scenariu.
- În Mediul de dezvoltare 1, personalizați un formular existent, denumit FormB în acest exemplu. Apoi efectuați personalizări pe formular.
- Creați o soluție (Soluția B în diagrama de mai jos), care va fi o soluție negestionată și adăugați FormB. Exportați soluția ca negestionată. Acest pas exportă un FormXml dif. pentru formular.
- În Mediul de dezvoltare 2, importați soluția negestionată de la pasul 2, creând astfel un al doilea strat de soluție pentru formular. FormB se afișează interfața de utilizator Field1, Field2 și Field3 după îmbinarea formularului.
- Personalizați în continuare formularul în Mediul de dezvoltare 2 realizând personalizări active în mediu, cum ar fi adăugarea unei noi coloane numite Field4. FormB acum arată Field1, Field2, Field3 și Field4.
- În Mediul de dezvoltare 1, personalizați formularul și adăugați o nouă coloană numită Field5. Se afișează acum interfața pentru formularul din Mediul de dezvoltare 1 cu Field3 și Field5.
- Export negestionat Soluția B cu modificările făcute la pasul 5. Acest pas exportă un FormXml dif. pentru formular.
- În Mediul de dezvoltare 2, import negestionat Soluția B Upgrade de la pasul 6. Deoarece soluția pe care o importați conține FormXml dif. pentru FormB, se va îmbina cu personalizarea activă realizată în Mediul de dezvoltare 1. Deci, formularul arată acum Field1, Field2, Field3, Field4 și Field5. Acest comportament apare la orice import de soluție negestionată care are FormXml dif. pentru formular.
- Dacă formularul fuzionează la pasul 7 nu este ceea ce doriți, chiar dacă importați un FormXml diferit cu soluția negestionată și doriți să puteți suprascrie personalizările active făcute în Mediul de dezvoltare 2, apoi eliminați stratul activ pentru FormB. Mai multe informații: Eliminați un strat negestionat.
- Export negestionat Soluția B cu modificările făcute la pasul 5. Acest pas exportă un FormXml dif. pentru formular.
- În Mediul de dezvoltare 2, import negestionat Soluția B Upgrade de la pasul 9. Deoarece nu există un strat activ pentru formularul din Mediul de dezvoltare 2, (a se vedea pasul 8), toate modificările de la Soluția B negestionată sunt importate chiar dacă importați FormXml dif. pentru FormB. Deci, formularul arată acum numai Field1, Field2, Field3 și Field5. Acest comportament apare la orice import de soluție negestionată care are FormXml dif. pentru formular. Acesta este același rezultat ca la pasul 7 din scenariul Menținerea soluțiilor și personalizărilor negestionate pentru un formular existent în mai multe medii de dezvoltare.
Fiecare pachet de soluții exportate include un fișier customizations.xml. Ori de câte ori un formular este inclus într-o soluție, definiția formularului aferent există în secțiunile FormXml ale fișierului customisations.xml. FormXml poate fi complet sau diferențial (dif.).
FormXml pe care îl obțineți la exportul unei soluții pentru un formular într-o stare negestionată se numește un FormXml complet. Complet înseamnă că conține întreaga definiție a formularului. Când creați un formular nou și îl exportați, formularul va fi întotdeauna un FormXml complet, deoarece formularul din mediul din care exportați se află într-o stare negestionată și este, de asemenea, într-o stare de creare. Dacă exportați alte soluții din același mediu, acestea vor include și un FormXml complet. Pentru că atributul solutionaction
indică un FormXml dif., FormXml complet în fișierul customization.xml din soluția pe care o exportați nu va conține niciun atribut solutionaction
.
FormXml pe care îl obțineți la exportul unei soluții pentru un formular într-o stare gestionată se numește un FormXml diferențial dif.. Diff înseamnă că FormXml conține doar modificările efectuate în personalizările active din acel mediu și nu întreaga definiție a formularului. Când personalizați un formular gestionat existent și îl exportați, formularul va fi întotdeauna un FormXml dif., deoarece va conține doar modificările active care i-au fost făcute. FormXml dif. din fișierul customization.xml din soluția pe care o exportați va conține atributele solutionaction
care definesc care sunt modificările, de exemplu Adăugat, Îndepărtat, Modificat.
Diff FormXml vă asigură că soluția dvs. va exprima doar modificările de care are nevoie aplicația dvs. și va fi afectată mai puțin de modificările din alte straturi. Diff FormXml face, de asemenea, soluția mai puțin voluminoasă și ajută la importul mai rapid.