Razvoj Excelovih dodatkov v .NET okolju

Zadnjič smo si ogledali nekatere izmed možnosti razvoja Excelovih dodatkov, danes pa se bom omejil samo na razvoj v .NET okolju in podrobneje predstavil opcije na tem področju.

Seveda ne bom opisal vseh možnosti saj to niti ni mogoče. Pa tudi sicer tale zapis ni neka poglobljena študija temveč bolj moj osebni vpogled v tehnologije, ki sem jih preizkusil.

VSTO

VSTO (Visual Studio Tools for Office) je MS tehnologija za razvoj Office dodatkov. Preko VSTO lahko razvijate tako dodatke za Excel kakor tudi za vse preostale produkte za Office.

Prednosti

  • Podprta s strani MS
Slabosti

  • Za razvoj potrebujete Visual Studio 20xx Professional ali še višjega
  • Za vsako aplikacijo (Excel, Word…) potrebujete lasten projekt
  • Težko razvijate dodatek ki bi tekel na različnih verzijah Excela (vsaka verzija svoj dodatek)

Excel-DNA

Excel DNA je čudovito orodje in ga priporočam vsakemu, ki želi razvijati dodatke za Excel.

Prednosti

  • Zastonj
  • Ne potrebujete Visual Studia za razvoj, dovolj je .NET prevajalnik
Slabosti

  • Težko razvijate dodatek ki bi tekel na različnih verzijah Excela (vsaka verzija svoj dodatek)
  • Primeren izključno samo za razvoj Excelovih dodatkov, na pa tudidodatkov za druge Office programe

Add-in Express

Add-in Express ima glede na Excel-DNA eno veliko prednost in eno manjšo pomanjkljivost. Njegova velika prednost je zmožnost razvoje ene aplikacije za VSE verzije Excela hkrati, pomanjkljivost pa je da (za razliko od Excel-DNA) ni zastonj.

Prednosti

  • En projekt za vse verzije Excela hkrati
  • Preprost za uporabo
Slabosti

  • Ni zastonj

Primerjava

Ko primerjate omenjene produkte je potrebno vedeti, za katero verzijo Excela boste dodatek razvijali in katero verzijo Visual Studia uporabljate.


Kako brati sliko?

Vsak oblaček prikazuje ali lahko v izbranem okolju razvijate dodatek. Ker rdečega krogca (VSTO) ni narisanega pod Visual Studio Express to pomeni, da s to različico v okolju VSTO ne morete razvijati. Velikost oblačka pa prikazuje čez koliko verzij Excela lahko greste brez spremembe kode.

Glede na prikaz v sliki se najslabše odreže VSTO. Da bi lahko razvijali s slednjim morate imeti ustrezno verzijo Visual Studia. To je torej najslabša izbira.

Če izberete Excel-DNA pomeni, da lahko razvijate v poljubni različici Visual Studia, vendar morate imeti za vsako verzije Excela lasten projekt. Tu moram opozoriti, da lahko tudi v okoljih VSTO in Excel DNA razvijate dodatek, ki teče tako na verziji 2003 kot na 2007, vendar je potrebno vložiti kar nekaj truda.

Na drugi strani pa je Add-in Express, kjer pa lahko v enem projektu razvijate za vse verzije Excela hkrati.

Kaj torej izbrati

Po mojem mnenju je odločitev dokaj preprosta. VSTO definitivno odpade, ker nima nobene prednosti. V kolikor nimate potrebe po razvoju za več verzij Excela potem izberite Excel-DNA, ki je super produkt in povsem zastonj.

V kolikor razvijate za več verzij Excela hkrati pa se lahko potrudite in rešitev vseeno razvijate s pomočjo Excel-DNA ali pa vložite nekaj denarja in izberete produkt Add-in Express, saj z nakupom slednjega dobite tudi možnost razvoja dodatkov za druge programe v okolju Office (Word, Excel…)

Razvoj dodatkov za Excel

Ko razvijamo dodatke za Excel se prej ali slej srečamo s problemom vzdrževanja programske kode. Na izbiro imamo namreč kar nekaj različnih načinov in okolij za razvoj dodatkov.

Na eni strani imamo VBA, ki je vgrajen v večino Office produktov, na drugi strani imamo programski jezik C in WIN API ter COM, na tretji pa .NET tehnologijo in COM.

VBA

Vsekakor je se potrebno pred kakršnimkoli resnim razvojem za MS Office dodobra seznaniti z programskim jezikom VBA. Razvoj v VBA-ju je nekako najlažji izmed vseh načinov in ima mnogo prednosti:

VBA Prednosti

  • VBA bazira na programskem jeziku BASIC, ki je zelo preprost jezik
  • Zelo dobra podpora znotraj vseh Office programov
  • Vvečino problemov nam reši vgrajeno snemanje makrov – če želite kaj postoriti, začnete s snemanjem makra in ga nato razvijate dalje
  • VBA urejevalnik nam preko vgrajenega ‘InteliSence’-a aktivno in obilno pomaga pri programiranju.
  • Programska koda se ne prevaja, temveč interpretira, kar je za razvoj dobrodošlo, saj lahko programsko kod spreminjamo med razhroščevanjem programa (glej spodaj)

VBA Slabosti

  • Programska koda je zapakirana v posamezen dokument (Excelov XLS ali XLSM oz. XLA in XLAM) kar pomeni slab nadzor nad programsko kodo
  • Programske kode ni možno dajati v repozitorije programske kode
  • Otežena je souporaba kode v več projektih saj VBA ne pozna koncepta knjižnic
  • Programska koda se ne prevaja temveč interpretira (glej zgoraj), kar je lahko slabost, saj se ob prevajanju odkrijejo mnoge napake.
  • Preko VBA ne moremo storiti vsega – določene stvari lahko spreminjamo, popravljamo, dograjujemo samo preko knjižnic v C oz. C++ jezikih.

C / C++

Izmed vseh izbir je to najtežja pot, ki ima glede na naslednjo možnost, torej razvoj v .NET-u eno slabost in eno prednost

C / C++ prednosti

  • Najhitrejša koda in največja možnost nadzora nad načinom izvajanja

C / C++ slabosti

  • Zelo zapleten in dolgotrajen razvoj, slaba (zelo slaba!) literatura

.NET

Za razvoj v .NET-u pa imamo več možnosti, ki so prikazane spodaj.

.NET Prednosti

  • Možna uporaba knjižnic
  • Možna uporaba vseh znanj pridobljenih na področju –NET razvoja vključno z tisiči in tisoči objektov, ki so napisani zanj
  • Glede na prejšnjo točko seveda tudi preprosta možnost povezav do podatkovnih baz, spletnih storitev…
  • Popoln nadzor nad programsko kodo in možnost uporabe repozitorijev programske kode

.NET Slabosti

  • Neintuitivni razvoj
  • Težak dostop do ustrezne literature za dostop do Office automatization objektov