Lære det grunnleggende om OutSystems Agile Platform

Da jeg først satte meg ned med OutSystems Agile Platform, ville jeg få hendene dypt inn i den som om jeg var vant til å gjøre med andre produkter. Dessverre var jeg så vant til andre produkter (spesielt Visual Studio) at jeg prøvde å pålegge arbeidsflyt og paradigmer på toppen av Agile-plattformen, og det fungerer ikke. I dagens utviklerdagbok skal jeg lede deg gjennom mine erfaringer med å få tak i Agile-plattformen. Hvis du er en nykommer på Agile-plattformen, vil jeg forhåpentligvis spare deg for litt tid. Hvis du er en erfaren utvikler med Agile-plattformen, vil du muligens kaste sammen og si "meg også!"

Min første prøve med å bruke Agile-plattformen var en "Hello World" -type applikasjon der du ville ha et sted å skrive inn et navn og en knapp, og når du klikket på knappen, ville den sammenkoble "Hello" med innholdet i inngangen kontroll og sett resultatene på skjermen. I ASP.NET tok jeg følgende trinn for å skrive denne koden:

  1. Lag skjermen ved å dra de nødvendige kontrollene (en TextBox, en etikett og en knapp) til skjermen.
  2. Dobbeltklikk på Send-knappen for å få Visual Studio til å opprette en standardhåndterer for OnClick-hendelsen, og ta meg til den.
  3. Skriv kode for å få verdien på inngangskontrollen og prefiks den med "Hei."
  4. Skriv kode for å sette etikettkontrollens tekstegenskapsverdi til den nye strengen. Se figur A.
Figur A

Agile-plattformen inkluderer innebygde opplæringsprogrammer for å hjelpe utviklere i læringsprosessen.

Det er egentlig ikke så ille, i det minste for noe enkelt. Nå, hvis jeg ønsket noe litt mer robust, ville jeg flyttet all denne logikken til en egen funksjon og kalt funksjonen fra hendelsesbehandleren. Tross alt er det ofte mer enn en måte å utløse funksjonalitet i en webapplikasjon, så det er best å ikke knytte logikken opp i en hendelsesbehandler.

Da jeg prøvde dette i Service Studio (Agile Platforms modelleringsverktøy) skjønt, hadde det ikke skjedd. Ting virket det samme foran: Jeg klarte å dra kontrollene til skjermen og dobbeltklikke på Send-knappen for å få tilgang til skjermbildet Workflow Creation, men jeg kunne ikke finne en måte å angi tekstegenskapen til etiketten min (det Agile Platform kaller et uttrykk). Det var ikke før jeg satte meg ned med Miguel Baltazar fra OutSystems og han gikk gjennom dette at jeg virkelig forsto den gjennomgripende databindingen i Agile-plattformen. I dette tilfellet trengte jeg ikke å prøve å direkte sette Expressions tekstverdi, men å fortelle den at den får verdien fra en lokal variabel, og i arbeidsflyten min tilordne inngangsverdien til variabelen sin verdi. Og på grunn av Service Studios natur er det virkelig ikke nødvendig å dele funksjonaliteten i en egen funksjon (eller Action som Agile Platform kaller det) i de fleste tilfeller. I løpet av arbeidet med applikasjonen som jeg skriver med Agile Platform (applikasjonen kalles Rat Catcher), fant jeg bare noen få tilfeller der det var nødvendig å dele opp et stykke logikk i en egen, globalt tilgjengelig handling, og en håndfull ganger gjorde jeg det på en individuell skjerm.

Da dette skjedde, var det ikke så mange treningsvideoer på OutSystems nettsted som det er nå. Dette var før utgivelsen av Community Edition, og jeg får en følelse av at den gang den typiske kunden ville ha utviklerne sine til å tilbringe tid med en trener fra OutSystems, og at det første prosjektet en kunde ville gjøre var mer som et felles prosjekt enn et soloprosjekt. Dette er bare min erindring av mitt inntrykk den gangen, så jeg kan ta feil. Jeg husker at jeg fortalte Miguel at det måtte være flere treningsressurser tilgjengelig for folk som meg, spesielt hvis de ville gjøre Community Edition. Jeg så på Agile-plattformen for å gjøre en gjennomgang av den, så jeg måtte fortsette selv om jeg synes det var frustrerende, men den typiske utvikleren som bare eksperimenterte på lunsjtimen sin har en lav terskel for smerter. Så da Community Edition lanserte og kom med massevis av videoopplæringer, ble jeg virkelig imponert.

Jeg trodde jeg visste alt (jeg fikk "Hello World" til å fungere, ikke sant), så jeg tappet fremover i Rat Catcher. Etter noen timer fikk jeg et godt tak i å jobbe med Service Studio, selv uten videoopplæringen. Men det var fortsatt mange hull i kunnskapen min, spesielt med ting som hvordan man kan tilnærme seg visse typer problemer. Jeg har det tøft med all slags læring som innebærer å lene meg tilbake og lytte. (Jeg måtte en gang bruke en uke på å trene i klasserommet for å rapportere et produkt, og jeg trodde jeg kom til å miste tankene.) Så når jeg satt fast, ville jeg gå til treningssenteret, finne en video som snakket om emnet. for hånden, og se på den. Videoene er alle utmerkede - jeg har bare vanskelig for å se videoer, og jeg hadde veldig lyst til å komme i gang.

Agile-plattformen består av fire komponenter: Service Studio, Servicesenter, Integration Studio og Agile Network. Service Studio, som brukes til å modellere data og arbeidsflyt, er der jeg tilbringer mesteparten av tiden min. Servicesenteret ligger på serveren (eller utviklingsmaskinen din) og kontrollerer de distribuerte applikasjonene og komponentene, og hvordan serveren er konfigurert. Integrasjonsstudioet brukes til å koble applikasjonene dine til eksternt skrevet kode. Agile Network drives av OutSystems, og det er dit du går for opplæring og for å administrere prosjektene dine hvis du er et betalende medlem av nettverket.

Agile-plattformen har mye dybde, og jo lenger jeg kommer med Rat Catcher, jo mer ser jeg dette. Uten å vite de mer avanserte teknikkene som å jobbe med AJAX og bruke Enterprise Manager-komponenten, har Agile-plattformen fortsatt gitt meg et stort ben i utviklingen min. Hvis jeg virkelig ville, kunne jeg holde meg på et grunnleggende forståelsesnivå og fortsatt ha store produktivitetsgevinster i forhold til å bruke Visual Studio til å kvise ut ASP.NET. Den tette integrasjonen av databindingen og enhetssystemet sammen med TrueChange er verdt prisen for innrømmelse av seg selv. Du vil også se det første gang du må gjøre store strukturelle endringer i dataarkitekturen, og systemet sparer deg timer med manuell omskriving og omprøving.

Samtidig vil jeg ha mer. Hvis Agile-plattformen kan gjøre det enkelt å jobbe med AJAX som det gjør håndteringsdata, hvorfor ikke ta deg tid til å lære det? Treningsvideoene (under 90 minutter for videoene på Rich Widgets) er mye kortere enn hvor lang tid det vil ta meg å lære jQuery eller Microsoft AJAX Control Toolkit.

Rat Catcher er ganske forskjellig fra den typiske webapplikasjonen; det er mer som en portal for å kjøre batchjobber enn noe annet. På det nivået av grunnleggende funksjonalitet som jeg trenger å nå før den er i salgbar tilstand, er ting som AJAX ennå ikke nødvendig og vil ikke tilføre mye verdi. Men jeg har også et veikart med funksjonalitet. Jeg slår sammen Agile-ideene om iterasjoner, distribusjoner, spurter osv. Med en mer tradisjonell, planlagt modell. Jeg har en lang liste over ting jeg vil gjøre. Faktisk har jeg en plan for det "gode nok" nivået som jeg vil lansere med, og det "mye forbedrede" nivået av funksjonalitet som visse funksjoner vil ende opp med å ha. Mange av de "mye forbedrede" nivåene av funksjonalitet (og tilleggsfunksjoner som jeg vil legge til etter lansering) kommer til å bruke den ekstra dybden til Agile Platform. Det er bare så mange timer på en dag, men jeg har måttet sørge for at jeg setter av litt tid til å virkelig se de treningsvideoene og lære dette systemet for å kunne dra full nytte av kraften.

Rat Catchers funksjonalitet kjører spekteret av det du forventer å se i et webapplikasjon: brukerstyring, bla gjennom data og velge enkeltelementer for oppdateringer, og så videre. I tillegg vil den måtte utføre faktureringsoperasjoner, og hoveddelen av den faktiske behandlingen blir utført på en batch-behandlingsmåte, avsparket av Agile-plattformen og integrert med eksternt utviklet kode. Som et resultat vil den bruke omtrent alle fasetter av Agile-plattformen på en eller annen måte. Faktisk er styrken til Integration Studio og muligheten til å skrive batch-prosesser med Timer-komponenten store attraksjoner i Agile-plattformen for dette prosjektet. Uten disse mulighetene, ville jeg ha behov for å dele databasestrukturen mellom to applikasjoner og la batchbehandlingen bli startet av en planlagt oppgave i Windows; denne typen kodeseparering er for ofte et mareritt å feilsøke og koordinere. Fordi jeg planlegger å bruke så mye av Agile Platforms funksjonalitet, vil jeg virkelig kjenne den inne og ute når dette prosjektet er ferdig.

En av de første oppgavene mine på Rat Catcher-prosjektet var å få den samme funksjonaliteten som jeg hadde i min WinForms-prototype for å fungere på det nye nettstedet. Det betydde at jeg måtte bruke Integration Studio for å koble meg til min kjernealgoritmekode. I det neste avdraget, viser jeg deg noen av stiene jeg pleide å jobbe med eksternt utviklet kode gjennom Integration Studio.

J.Ja

Avsløring av Justin's tilknytning til industrien: Justin James har en kontrakt med Spiceworks for å skrive produktkjøpsguider; han har en kontrakt med OpenAmplify, som eies av Hapax, for å skrive en serie blogger, opplæringsprogrammer og artikler; og han har en kontrakt med OutSystems om å skrive artikler, eksempelskode, etc.

-------------------------------------------------- -------------------------------------

Få ukentlige utviklingstips i innboksen Hold utviklerferdighetene dine skarpe ved å registrere deg på TechRepublics gratis nyhetsbrev for Web Developer, levert hver tirsdag. Abonner automatisk i dag!

© Copyright 2021 | pepebotifarra.com