Uporabniška orodja

Barvna shema: Riviera

Posodobitev podedovanih aplikacij Access, Delphi in .NET

Access · VBA · Delphi · .NET

Na vaši programski opremi temelji vaše poslovanje. Posodobite jo, ne da bi začeli znova

Poslovno ključne aplikacije še naprej razvijamo – v Accessu in VBA, v Delphiju ali na proizvodnih podatkovnih bazah – in zamenjamo le tiste dele, ki so dosegli svoje meje. Za Microsoft Access orodja za to razvijamo sami.

Izsek aplikacije Access z nemškim uporabniškim vmesnikom: glava z napisom »Datenquellen« (podatkovni viri), vrstica z ukazi, podokno za krmarjenje in mreža podatkovnih virov
Aplikacija Access iz naše delavnice: skrbniška konzola našega podatkovnega prehoda, zgrajena z Forms Object Library in Office JSON (nemški vmesnik). S klikom si ogledate celoten posnetek zaslona.

Izhodišče

Kdaj preizkušena aplikacija postane tveganje

Redko zato, ker ne bi več delovala. Največkrat zato, ker si je nihče več ne upa spreminjati.

  • Ena datoteka, brez zgodovine. Aplikacija je datoteka ACCDB na omrežnem pogonu. Kdo je kaj spremenil in kdaj, ni mogoče ugotoviti, in če hkrati delata dva razvijalca, drug drugemu prepišeta spremembe.
  • Znanje v glavah nekaj ljudi. Poslovna pravila so zapisana v obrazcih, poizvedbah in kodi VBA – pogosto nikjer drugje.
  • Gesla na vsaki delovni postaji. Povezava s SQL Serverjem je skupaj z geslom podatkovne baze vgrajena v aplikacijo, od zunaj pa je dostop mogoč le prek VPN-ja.
  • Otok. Aplikacija ni povezana s spletnimi storitvami, sistemom ERP ali orodji za poročanje, zato se podatki izvažajo in ročno usklajujejo.
  • Zastarel uporabniški vmesnik. Neprekinjeni obrazci in gnezdeni podobrazci tam, kjer uporabniki danes pričakujejo drevesni pogled, mrežo s seštevki ali Ganttov diagram.

Zakaj je razvoj od začetka le redko pravi prvi korak

Vrednost aplikacije, ki se je razvijala več let, je v njenih pravilih: v izjemah, preverjanjih in postopkih, ki so se sčasoma nabrali v obrazcih, poizvedbah in kodi. Vse to mora nova aplikacija znova odkriti, opisati in preizkusiti – stari sistem pa je treba ves ta čas še naprej vzdrževati.

Zato najprej poskrbimo, da je aplikacijo spet mogoče spreminjati: izvorna koda pod nadzorom različic, urejene povezave z drugimi sistemi in uporabniški vmesnik, s katerim ljudje radi delajo. Posamezen del zamenjamo šele, ko doseže svoje meje – na primer ko podatki presežejo 2 GB, kolikor jih sprejme datoteka Access, ali ko mora z aplikacijo hkrati delati več lokacij.

Tudi takrat postopoma: obseg vsakega koraka določimo vnaprej, vrnitev na prejšnje stanje in skladnost podatkov pa načrtujemo in preizkusimo, preden preklopimo. Če stari in novi sistem nekaj časa vzporedno zapisujeta podatke, je usklajevanje del načrta.

Iz prakse · Kemijska industrija · od leta 2003

Trije poslovno ključni sistemi, ki smo jih razvijali dve desetletji – upravljanje naprav, informacijski sistem delavnice in upravljanje skladišča: nadgrajevani v Delphiju, postopoma preneseni na .NET 8, z uporabniškim vmesnikom DevExpress, optimizacijo podatkovnih baz in CI/CD.

Naše reference

Štiri poti – odvisno od tega, kje se zatika

Razvoj pod nadzorom različic

Aplikacija Access kot izvorna koda v Gitu: spremembe pregledujete po obrazcih in modulih, datoteko ACCDE pa zgradite iz točno določene različice.

Nov vmesnik, ista poslovna logika

Drevesni pogledi, podatkovne mreže z združevanjem in seštevki, Ganttov diagram in navigacija – kot kontrolniki na obrazcih, ki jih že imate.

Povezovanje namesto izolacije

Spletne storitve in JSON neposredno v VBA; podatki SQL Serverja prek podatkovnega prehoda namesto z geslom na vsaki delovni postaji.

Postopen prehod na .NET

Kjer je del res treba zamenjati: kos za kosom, z dogovorjenim obsegom in preizkušeno možnostjo vrnitve na prejšnje stanje – tako kot pri zgornjih sistemih v Delphiju.

V čem se razlikujemo

Lastna orodja namesto prosojnic: ekosistem WKL Access

Za Access sami razvijamo orodja, na katera se posodobitev lahko opre – dokumentirana, z jasno navedenim stanjem in omejitvami.

OrodjeKaj rešiStanje
Office SDK Aplikacijo hrani kot izvorno kodo v Gitu ali Subversionu in iz točno določene različice zgradi ACCDB ali ACCDE – enako na vsakem računalniku in v sistemu CI. V razvoju
izdaja 0.13.0; Windows 11 z 32- ali 64-bitnim Accessom iz Microsoft 365
Forms Object Library 31 kontrolnikov ActiveX in objektov za obrazce Access – drevesni pogled, mreža, Ganttov diagram, navigacija; nastavite jih v listu z lastnostmi, delujejo pa tudi v datotekah ACCDE in okolju Access Runtime. Izdano
izdaja 2.0.0, 32- in 64-bitni Access
Office JSON JSON v VBA z objektnim modelom MSXML: poizvedbe JPath v skladu z RFC 9535, zneski brez tihega zaokroževanja in brez nameščanja izvajalnega okolja. Izdano
32- in 64-bitni Office (Microsoft 365)
Bootstrapper Nove izdaje za vsakega uporabnika brez skrbniških pravic, ko oddelek IT enkrat namesti zaganjalnik: namestitev z vrnitvijo na prejšnje stanje, komponente v bitnosti nameščenega Officea, odstranitev v razdelku Aplikacije. Izdano
Windows 11 z 32- ali 64-bitnim Accessom (Microsoft 365)
Database Gateway in gonilnik OData ODBC Podatki SQL Serverja brez gesla podatkovne baze na delovni postaji, pravice po tabelah, dostop od zunaj brez VPN-ja; v Accessu tabele povežete in urejate brez kode VBA. z Accessom in okoljem Access Runtime, 32- in 64-bitno

Orodja in podatkovni prehod so dokumentirani v slovenščini, nemščini in angleščini; referenčna priročnika API za Forms Object Library in Office JSON sta samo v angleščini.

Od ene datoteke do ponovljive gradnje

Tako obstoječa aplikacija Access z orodjem Office SDK preide pod nadzor različic. Ukazi in vzorčni projekt »Kunden« so vzeti iz vodiča.

  1. Prevzem obstoječe aplikacije

    Ustvarite projekt in izvozite podatkovno bazo. Izvoz poteka na kopiji v skritem primerku Accessa – izvirno podatkovno bazo samo bere.

    wkl-office new C:\Work\Kundencd C:\Work\Kundengit initwkl-office export Kunden.acproj -d C:\Data\Kunden.accdb
  2. Izvorna koda namesto binarne datoteke

    Vsaka poizvedba, obrazec, poročilo in modul postane besedilna datoteka, tabele postanejo opisi sheme, podatki šifrantov pa vrstice JSON. Kar Access ob vsakem shranjevanju zapiše na novo, izvoz izpusti.

    Kunden.acproj
    source/
      queries/     *.query.txt
      forms/       *.form.txt
      reports/     *.report.txt
      modules/     *.bas
      classes/     *.cls
      tables/      *.table.json
      data/        *.jsonl
      references.json
  3. Pregled sprememb kot pri kodi

    Razvijalci še naprej delajo v Accessu. SDK nato pokaže, kaj se je spremenilo – po objektih in po vrsticah –, potrditev pa se v repozitorij zapiše kot berljivo besedilo, ki ga ekipa pregleda kot vsako drugo kodo.

    wkl-office status Kunden.acprojwkl-office diff Kunden.acproj form:frmKundenwkl-office commit Kunden.acproj -m "ID za DDV"
  4. Ponovljiva gradnja

    Gradi se iz repozitorija, ne iz kopije, ki je bila nazadnje shranjena. check že pred zagonom Accessa najde neveljavne izvorne datoteke, manjkajoče sklice in gesla v poizvedbah. roundtrip dokaže, da je izvorna koda celovita: izhodna koda 0 pomeni, da vsak, ki klonira repozitorij, zgradi enako aplikacijo – enake objekte, tabele, podatke in nastavitve, čeprav datoteka ni enaka do zadnjega bajta.

    wkl-office check Kunden.acprojwkl-office roundtrip Kunden.acprojwkl-office build Kunden.acproj -c Release

V razvoju
Izdaja 0.13.0 Office SDK deluje v sistemu Windows 11 z 32- ali 64-bitnim Accessom iz Microsoft 365. Access od 2016 do 2021, Windows 10 in gradnja samo z okoljem Access Runtime niso podprti, gradnja pa potrebuje prijavljeno sejo Windows z Accessom. Več o SDK-ju

Dokazi, ki jih lahko preverite

Access s povezano tabelo dbo_Artikel v podoknu za krmarjenje in njenim podatkovnim listom s številko, nazivom, skupino in ceno (nemški uporabniški vmesnik)
Tabela podatkovnega prehoda, v Accessu povezana prek gonilnika ODBC za OData, ki jo lahko urejate v podatkovnem listu – brez VBA. Testni podatki, nemški vmesnik.

Več o tem: vodič za SDK, zgradba izvorne kode, pregled orodij za Access; pregled podatkovnega prehoda, pregled gonilnika.

Vaš naslednji korak

  • Želite, da vaša aplikacija Access ostane v uporabi? Skupaj jo pregledamo in vam povemo, katera od štirih poti je prava – dogovorite se za pogovor.
  • Bi orodja raje najprej preizkusili sami? Vodič za SDK vas v sedmih korakih pripelje od podatkovne baze do repozitorija.
  • Vaš podedovani sistem ni Access? Delphi, .NET ali proizvodna podatkovna baza: oglejte si industrijsko programsko opremo in naše reference.

Katera pot ustreza vaši aplikaciji, najlažje ugotovimo ob vašem dejanskem sistemu – ne ob predstavitvenih prosojnicah.

Dogovorite se za pogovor