VB.NET, burza a Linux–není to šílené?

tuxDalší veliká fáma ohledně VB.NET je ta, že systém .NET, potažmo programovací jazyk VB.NET není multiplatformní. Je to samozřejmě úplný nesmysl. A opět, pojďme to dokázat malým experimentem, při němž použijeme kód z minulého a předminulého dílu a ten vyvineme, přeložíme a spustíme na čerstvě nainstalovaném Ubuntu Linuxu.

Předpoklady

Mějme tedy čerstvě nainstalovaný Linux, resp. Ubuntu 14.04 “Thrusty Tahr” i se všemi aktualizacemi k 27.12.2014 (to je den, kdy píšu tento článek). Pokud budete chtít testovat tuto konfiguraci ve VirtualBoxu (jako já), pak vytvoříte nový virtuální stroj, k němu připojíte instalační obraz stažený odsud: http://releases.ubuntu.com/trusty/ubuntu-14.04.1-desktop-amd64.iso, nainstalujete systém a provedete všechny aktualizace. Před instalací virtuální mašiny je třeba dát pozor pouze na dvě věci:

  1. Jako “Verze” v dialogovém okně “Vytvoření virtuálního počítače” je třeba zadat “Ubuntu (64 bit)”, nikoli “Ubuntu”.
  2. Bude třeba minimálně 20 GB velký virtuální disk, já měl 10 GB a musel jsem jej pak zvětšovat, protože se instalace se všemi aktualizacemi nevešla.

Ještě malá poznámka pro Virtualbox: Po instalaci budete chtít nainstalovat “Přídavky pro hosta”, už z toho důvodu, že výchozí rozlišení 640 x 480 je po instalaci příliš nízké. Nedělejte to pomocí vestavěných nástrojů, je to rozbité. Raději přepněte do konzole a instalujte vše pomocí jediného příkazu

sudo apt-get install virtualbox*

Bude to vyžadovat restart, ale po restartu již bude rozlišení v pořádku a budete moci aktivovat pitominky typu sdílené schránky.

A jdeme na to

Pokud máme nainstalovaný virtuální (či fyzický) stroj a provedeny všechny aktualizace, bude třeba především nainstalovat Javu, protože ta je třeba pro běh IB Gateway. Dříve to v Ubuntu byl docela porod, nyní již to není tak hrozné:

sudo apt-add-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer

Dále, je třeba pochopitelně stáhnout a nainstalovat samotnou IB Gateway. K tomu Vám pomáhej Bůh a následující příkazy, které opět spustíte v konzoli:

wget https://download2.interactivebrokers.com/download/unixmacosx_latest.jar"

jar xf unixmacosx_latest.jar
cd IBJts
export DISPLAY=:0.0
java -cp jts.jar:total.2013.jar -Dsun.java2d.noddraw=true -Xmx512M ibgateway.GWClient .

Pokud Vám to přijde stejně šílené jako mně, můžete celý proces spuštění IB Gateway automatizovat. Návod najdete tady.

A ten VB.NET?

Ubuntu ve výchozím stavu nástroje pro programování ve VB.NET neobsahuje, vše lze ale stáhnout. Jednak tedy běhové prostředí MONO, a jednak vývojové prostředí MONO-DEVELOP. Vše zrealizujme pomocí následující sady příkazů:

sudo apt-add-repository ppa:ermshiperete/monodevelop
sudo apt-get update
sudo apt-get install mono-complete
sudo apt-get install monodevelop
sudo apt-get install monodevelop mono-vbnc

Dále už je možné spustit IDE Monodevelop a v něm založit nový projekt. Jako typ projektu je třeba vybrat VB.NET, konzolovou aplikaci. Do našeho systému Ubuntu je třeba dostat knihovnu “Krs.Ats.IBNet.dll”, tu přidat do referencí a do modulu Module1 přidat stejný kód jako ten z minulého dílu. Výsledek by měl být stejný jako ten, který vidíme na následujícím obrázku:

ubuntu

Pokud byste se cestou někde ztratili, napište prosím dotazy do diskuse. Linux není moje silná stránka, ale pokud budu vědět, tak se pokusím odpovědět na všechny dotazy, které snad budete mít.

K čemu je to dobré?

Kromě toho, že jde o vynikající intelektuální cvičení, sluší se připomenout, že někdo chce provozovat virtuální (nebo i fyzický) počítač na OS Linux. A ani tady, jak vidíme, není nutné opustit svět VB.NETu. Za celé programové vybavení (operační systém, vývojové prostředí, běhové prostředí atd.) pak nedáme ani korunu. To je celkem sympatická cena, ne?

Ostatní články tohoto seriálu

  1. Použití VB.NET pro obchodování – zasílání e-mailů (25.2.2015)
  2. VB.NET, burza a Linux–není to šílené? (30.1.2015)
  3. Použití VB.NET pro obchodování na burze–10. díl (16.1.2015)
  4. Použití VB.NET pro obchodování na burze–9. díl (2.1.2015)
  5. Použití VB.NET pro obchodování na burze–8. díl (14.12.2014)
  6. Použití VB.NET pro obchodování na burze–7. díl (3.11.2014)
  7. Použití VB.NET pro obchodování na burze–6. díl (27.10.2014)
  8. VB.NET a burza – REALTIME data z Google–5. díl (20.10.2014)
  9. Použití VB.NET pro obchodování na burze–4. díl (13.10.2014)
  10. Použití VB.NET pro obchodování na burze–3. díl (6.10.2014)
  11. Použití VB.NET pro obchodování na burze - 2. díl (29.9.2014)
  12. Použití VB.NET pro obchodování na burze–1. díl (22.9.2014)
Příspěvek byl publikován v rubrice AOS. Můžete si uložit jeho odkaz mezi své oblíbené záložky.

10 komentářů u VB.NET, burza a Linux–není to šílené?

  1. Scapegrace napsal:

    Ahoj, děkuji za zajímavý článek. Já nejsem linuxák, ale nedávno jsem mamce na její už letitý počítač nainstaloval Linux Mint místo Windows XP. Ještě před tím jsem si to trošku osahal a říkal jsem si kdybych nepotřeboval několik aplikací které jedou jenom pod WIN (používám programy na editaci zvuku a vytváření hudby a strategii 90 mám taky v Excelu) tak bych nejraději osobně přešel na Linux. Pryč jsou ty časy, kdy uživatel musel psát do příkazového řádku. Je to velice příjemné prostředí. Všechno běží s menšími nároky na HW. Mamka je spokojená a já jsem z toho Linuxu taky docela nadšený. Osobně si myslím, že je to ideální řešení i pro firmy, které nechtějí investovat do licencí operačního systému. Balík Open Office je podle mě taky úplně dostačující na běžnou kancelářskou činnost.

    • Djm napsal:

      Scapegrace: co se tyka tech office, tak jsem se dozvedel od naseho IT technika, ze se mu na linuxu podarilo plnohodnotne rozchodit office 2013 (pomoci Wine). Jak se nainstalujou se dogooglis na webu. Sam jsem byl prekvapeny, ze tohle je vubec na Linuxu mozne (a bezne).

      • Kolous napsal:

        Pro firemní nasazení se dá použít https://www.codeweavers.com/products/crossover-linux/ (což je wine+patche+konfigurátor+podpora). Běžel jsem na tom nějakou dobu office a úplně bez problémů. Wine samotný mívá občas mezi verzema regrese při větších změnách.

        Zkoušel jsem rozchodit na centos 7+TWS+Java+vnc remote desktop a vše funguje bez problémů. Matlab pro linux nemám ale chtěl bych aspoň ozkoušet.

  2. Djm napsal:

    Tohle je dobry clanek. .NET aplikace skutecne jdou rozjet na Linuxu. Vim to z vlastni zkusenosti, protoze pracuji jako programator c# na vyvoji podnikove aplikace pro ucetnictvi/leasing/faktoring/atd.
    Vyvoj sice delame ve Visual Studiu na windows, protoze odvahu prejit na MonoDevelop ma asi malokdo. Nase aplikace nasazena na produkci ale bezi na Linuxu pod Monem.

    Nemam poneti jak je na tom mono nyni, ale vim, ze driv nepodporovala WPF. To nam v praci ale nevadi, jelikoz ho nase aplikacka nepouziva.

    Stejne ale jako i u ostatnich zalezitosti s GNU/Linuxem ma mono svoje mouchy. Melo dokonce nejaky problem s formatovanim datumu. Tzv. „short date format“ nam misto 30.1.2015 formatovalo na 30. 1. 2015 (s mezerama), tak vim ze s tim nasi ajtaci bojovali a mono museli nejak ohybat a prekompilovavat.

    Takze pokud uvazujete o behu .NET aplikace nad Linuxem, tak to chce vic trpelivosti. Ale aspon se clovek nauci neco noveho. Je to takove cviceni pro hackery.

    • cubecoop napsal:

      Takže vyvíjíte na Win a release nasazujete na Linux? To asi máte kvalitní testery :) Nebo se tolik překvapení nekoná?

      • Djm napsal:

        Ono to na tom monu jede vpohode. Drobne rozdily tam jsou a ty se museji vychytat pri na zacatku. Z toho duvodu furt zustavame u zasataraleho .NET 3.5. Takze je to trochu ulitle, ale jede to, takze se nikomu nechce delat upgrade a resit pripadne chyby v monu. Verim tomu, ze mono uz dost pokrocilo, tak by nebyl zas az tak velky problem prejit na vyssi verzi.

        • admin napsal:

          Taky mi jede projekt v 3.5 SP1, na tom není nic špatného -)))

          • cubecoop napsal:

            Jo, nám do nedávna jely nějaký aplikace ve 2.0 runtimu… holt některý firmy jsou konzervativnější než ostatní :) A 3.5 je dobrá verze.

      • Djm napsal:

        K tomu testovani – u nas v praci je to tak, ze funkcionalitu testuji nasi analytici (stale na Windows), pak jde aplikace do testovaciho prostredi zakaznika (tam uz je Mono). A teprve po tom co to otestuje zakaznik, jde aplikace na produkci. Takze nejaka ta kontrola tam je. Ale co se tyka problemu s kompatibilitou .NET vs. Mono, tak s tim fakt vubec problem neni.
        Akorat jak jsem psal vyse – drobny problem s formatem datumu a jeste jsem si vzpomnel nedavno, ze jsem resil problem s kodovanim, kdy na prostredi Linux/Mono chybela kodova stranka ibm852, to se ale nejak vyresilo doinstalovanim toho kodovani.

        Ja sam na desktopu doma pouzivam Linux distribuci Mint / Cinnamon. Vsem, kdo by chteli zkouset laborovat s Linuxem na desktopu tuto distribuci dopocuji, protoze Ubuntu je sice dobre (Mint z nej vychaze), ale Ubuntu pouziva to infantilni grafice prostredi Unity a kdyz se pokusite to rozjet treba s Gnome, tak to blbne.

        • cubecoop napsal:

          Zajímavé, díky.

          A nemáte někdy problém, že ty formuláře vypadají jinak/hůře, než jste nadesignovali ve win? Opravdu layout oken drží, nerozsype se to trochu? (různé spacingy, jiné fonty, jiné rozměry různých částí linuxových oken atd)

Napsat komentář

Vaše emailová adresa nebude zveřejněna.