Trwa konkurs "Ogól naczelnego", w którym codziennie możecie wygrać najnowsze maszynki systemowe Hydro Connect 5 marki Wilkinson Sword.

Więcej informacji
Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

VSTO czy to kiedyś będzie popularna technologia?

Część osób zapewne kojarzy środowisko programistyczne dostarczane wraz z każdym pakietem Office od Microsoftu. Jest to stary ale doskonale znany język VBA (Visual Basic for Applications). Jednak z powodu jego pradawnej wręcz konstrukcji środowisko to nie jest już od wersji 2003 rozwijane a jedynie są dołączane uaktualnienia obiektów wraz z każdą nową wersją Office. Samo IDE odstrasza swą brzydotą i brakiem funkcjonalności, ale mimo wszystko masa osób do dziś z niego korzysta.

Z drugiej strony „barykady” mamy nowoczesne środowisko VSTO czyli Visual Studio Tools for Office. Tutaj możemy korzystać z całego dobrodziejstwa inwentarza jakim jest .NET Framework i środowisko Visual Studio. Do wyboru są języki C# i VB.NET oraz co bardzo pomocne w samym VS Intelli sense którego w VBA są tylko jakieś szczątki czy ochłapy. Ale za wiele osób z tego rozwiązania nie korzysta.

Spytacie się pewnie dlaczego?

I tutaj pojawia się problem którego Microsoft z jakiegoś powodu nie chce lub nie może dostrzec. Taka oczywista oczywistość jak zachowanie kompatybilności wstecznej oczywiście pozostaje i nie będę się tutaj nad nią rozwodził. Jest cała masa makr popisana w języku VBA i cały czas trzeba utrzymywać dla nich środowisko w celu ich kompatybilności z nowszymi wersjami pakietu Office.

To czemu ludzie w takim razie nadal korzystają z VBA przy pisaniu nowych makr?

Odpowiedz jest banalna, jak nie wiadomo o co chodzi to chodzi o pieniądze.
Moduł VSTO jest dołączany tylko do wersji Professional środowiska Visual Studio, czyli jeśli chcemy napisać jakieś małe makro to nadal po prostu taniej wychodzi używanie znanego już VBA i do tego dostarczanego za darmo wraz z pakietem Office.

Czy jest światełko w tunelu?

Na dzień dzisiejszy niestety nie. Microsoft wprawdzie stara się „wyplenić” VBA z pakietu Office ale nie dając taniej alternatywy nie jest w stanie tego zrobić. A wystarczyła by wersja Express narzędzi VSTO z wszelkimi ograniczeniami jakie wersje Express Visual Studio posiadają i w ciągu paru lat świat prawie by zapomniał o VBA (pozostało by tylko utrzymywanie starych makr napisanych w VBA).

PS. Napisałem do jednego z ewangelistów MS-u z pytaniem czy jest szansa na VSTO Express i czekam na odpowiedz (póki co odpisał że się popyta ?). Jak otrzymam odpowiedz to dodam ją do wpisu. 

programowanie inne

Komentarze

0 nowych
  #1 27.09.2012 16:24

Tekst fajny, ale to h2 co dwie linijki wygląda masakrycznie.

iluzion   5 #2 27.09.2012 17:20

Dokładnie! Też o tym kiedyś myślałem. VSTO powinno być dostępne w Visual Studio Express. Poza tym powinna być możliwość programowania w nim makr i programów w IronPython. To by było świetne połączenie. Jest wszystko... doskonały język do tego celu, środowisko programistyczne oraz plugin dynamicznie rozwijany, wystarczy to zintegrować.

http://ironpython.net/
http://pytools.codeplex.com/

Nie potrafię zrozumieć dlaczego nie zrobiono z tego użytku. Wielka szkoda.

  #3 27.09.2012 20:26

iluzion: Skryptuj sobie Pythonem office'a przez COM :P

  #4 27.09.2012 20:40

Zdecydowanie odradzałbym VBA. Microsoft zupełnie nie interesuję się już tą technologią, bo co chwilę ubija dodatki Office aktualizacjami zabezpieczeń ActiveX.

VSTO to niewyobrażalna ilość pracy jeśli kod ma wspierać więcej niż 1 wersję Office.

Ja polecam http://www.add-in-express.com/
Framework jest co prawda komercyjny, ale względnie tani.
Praktycznie tym samym kodem można obsłużyć wszystkie wersje Office'a od 2000 do 2010. Ograniczenia pojawiają się dopiero w sytuacji, gdy musimy użyć funkcji wprowadzonej w nowej wersji Office.

GL1zdA   12 #5 27.09.2012 23:12

Pytanie tylko, czy wśród "nie-informatyków" (bo wśród moich znajomych praktycznie tylko tacy muszą w pracy używać VBA) znajdą się tacy, którzy będą potrafili ogarnąć taki język jak C#. Z tego co wiem główną zaletą VBA jest jego prostota dla osób, które z programowaniem nie miały do czynienia.

iluzion   5 #6 27.09.2012 23:56

No właśnie. C# tu nie pasuje, a VBA jest "out-of-date". Całkowicie się przeterminuje jak Microsoft zrezygnuje z makr w pakiecie Office. W tym miejscu idealnie sprawdził by się język MATLAB-like.

... ale strasznych słów w tym komentarzu użyłem.

StawikPiast   11 #7 28.09.2012 00:17

@GL1zdA

VSTO to nie tylko C# ale także VB.NET więc stare nawyki z VBA da się wykożystać.

iluzion   5 #8 28.09.2012 00:39

@sprae

Wiem, wiem, ale miałem na myśli integrację z Office / VS zamiast VBA / VB.NET.

  #9 28.09.2012 09:35

Jakoś nie widzę tego aby użytkownik chcący napisać jakieś proste makro musiał instalować Vstudio Express. To się kupy nie trzyma.

StawikPiast   11 #10 28.09.2012 17:11

@bitx

A niby czemu?
Mogł by to byc jeden ze skladnikow instalatora Office i tyle i zamiast ALT F11 odpalac VBA odpalalo by VS.

mkrzys   2 #11 29.09.2012 12:59

@StawikPiast

VBA - nie ubiera się w ładne ciuszki, nie tańczy i nie śpiewa :)) , a poprostu spełnia swoje zadanie.

StawikPiast   11 #12 18.10.2012 10:54

@mkrzys

Nie chodzi o ladne ciuszki a o wygode. Nie wiem czy pracowales z VS ale jest o niebo wygodniejsze od VBA. Ot choćby dziala Intelisense, ktore w VBA tez niby jest, raz czy dwa cos mi nawet podpowiedzialo, ale to sa jakies pojedyncze przypadki.
A co do spelniania swojego zadania to tez nie do konca. MS juz go nie rozwija wiec chocby nie ma grida dla formularzy. A w VSTO jest i to bardzo wygodny.

Gratulacje!

znalezione maszynki:

Twój czas:

Ogól Naczelnego!
Znalazłeś(aś) 10 maszynek Wilkinson Sword
oraz ogoliłaś naszego naczelnego!
Przejdź do rankingu
Podpowiedź: Przyciśnij lewy przycisk myszki i poruszaj nią, aby ogolić brodę.