Visual Basic -sovelluskehitin Juha Vitikka



Samankaltaiset tiedostot
Microsoft Visual J++ ohjelmointiympäristö

WWW-sivut HTML-kielellä esitettyä hypertekstiaineistoa

SISÄLLYSLUETTELO. Sisällysluettelo. ALKUSANAT... III Palaute... III Kirjailijat... III

4. Lausekielinen ohjelmointi 4.1

1. Olio-ohjelmointi 1.1

Kieliversiointityökalu Java-ohjelmistoon. Ohje

Sovellusarkkitehtuurit

Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Anne Benson. Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen:

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

.NET ja C# Virtuaalikone. Common Language Infrastructure (CLI) Periaate. Etuja. Haittoja. Mikä on CLI. CLI standardin merkitys (CLS, Ecma)

Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python

Web Services tietokantaohjelmoinnin perusteet

Järjestelmäarkkitehtuuri (TK081702) Järjestelmäarkkitehtuuri. Järjestelmäarkkitehtuuri

Malliperustainen ohjelmistokehitys - MDE Pasi Lehtimäki

Uutta Remote Support Platform 3.0 -versiossa

L models. Käyttöohje. Ryhmä Rajoitteiset

Yksikkötestaus. import org.junit.test; public class LaskinTest public void testlaskimenluonti() { Laskin laskin = new Laskin(); } }

Written by Administrator Monday, 05 September :14 - Last Updated Thursday, 23 February :36

Microsoft Visual Studio 2005

15. Ohjelmoinnin tekniikkaa 15.1

BlueJ ohjelman pitäisi löytyä Development valikon alta mikroluokkien koneista. Muissa koneissa BlueJ voi löytyä esim. omana ikonina työpöydältä

TIE PRINCIPLES OF PROGRAMMING LANGUAGES Eiffel-ohjelmointikieli

Maiju Mykkänen Susanna Sällinen

11/20: Konepelti auki

VisualStudio Pikaopas, osa 1: WEB sivujen suunnittelu

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena

Tech Conference Visual Studio 2015, C#6,.NET4.6. Heikki Raatikainen. #TechConfFI

HELIA 1 (17) Outi Virkki Käyttöliittymät ja ohjelmiston suunnittelu

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python

Navistools Standard. Navistools

Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla

Eclipse 3.2 pikku opas versio 1.0. Esittely Uuden projektin perustaminen Sovelluksen luominen Koodin siistiminen Vinkkejä

Verkkosivut perinteisesti. Tanja Välisalo

Apuja ohjelmointiin» Yleisiä virheitä

SQL Buddy JAMK Labranet Wiki

Oliotietokannat. Nääsvillen Oliopäivät Pekka Kähkipuro Kehitysjohtaja, FT

Toinen harjoitustyö. ASCII-grafiikkaa

Tikon Ostolaskujenkäsittely versio SP1

C++ Ohjelmoijan käsikirja. Johdanto

Directory Information Tree

Testidatan generointi

.NET ajoympäristö. Juha Järvensivu 2007

15. Ohjelmoinnin tekniikkaa 15.1

Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä

Tieto- ja viestintätekniikka. Internetistä toimiva työväline, 1 ov (YV10TV2) (HUOM! Ei datanomeille)

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät

Tähtitieteen käytännön menetelmiä Kevät 2009

Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.3.0

Ohjelmoinnin perusteet Y Python

<e.g. must, essential, conditional>

- Jarjestelmaasiantuntija Markku Jaatinen

Pedacode Pikaopas. Web Service asiakasohjelman luominen

Ylläpitodokumentti Mooan

Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.4.0

Rajapinnasta ei voida muodostaa olioita. Voidaan käyttää tunnuksen tyyppinä. Rajapinta on kuitenkin abstraktia luokkaa selvästi abstraktimpi tyyppi.

Johdanto Javaan ja tietokantojen käsittelyyn Java Database Connectivity (JDBC)

Ylläpitodokumentti. Boa Open Access. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

WWW-PALVELUN KÄYTTÖÖNOTTO LOUNEA OY

Aditro Tikon ostolaskujen käsittely versio SP1

Visma Liikkuvan työn ratkaisut Päivitysohje. Pääkäyttäjän opas

Aditro Tikon ostolaskujen käsittely versio 6.2.0

JavaBeans Components

XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy

Sisällys. 11. Rajapinnat. Johdanto. Johdanto

2. Olio-ohjelmoinista lyhyesti 2.1

Ohjelmoinnin perusteet Y Python

Jypelin käyttöohjeet» Ruutukentän luominen

Visma Business AddOn Tuotetarrat. Käsikirja

Visual Case 2. Miika Kasnio (C9767)

Visma Liikkuvan työn ratkaisut

4. Lausekielinen ohjelmointi 4.1

TT00AA Ohjelmoinnin jatko (TT10S1ECD)

5. HelloWorld-ohjelma 5.1

VERKON ASETUKSET SEKÄ WINDOWSIN PÄIVITTÄMINEN

Javan perusteita. Janne Käki

13/20: Kierrätys kannattaa koodaamisessakin

Fiscal INFO TV -ohjelmisto koostuu kolmesta yksittäisestä ohjelmasta, Fiscal Media Player, Fiscal Media Manager ja Fiscal Media Server.

SEPA REFAKTOROINTI Antti Ahvenlampi, 57408L Erik Hakala, 57509T

J2EE vs..net Olli Sakari

Hälyri-tietojärjestelmä, Palvelinohjelmiston version asennusohje

Selainpelien pelimoottorit

ELM GROUP 04. Teemu Laakso Henrik Talarmo

Suosituimmat ohjelmointikielet. Vuosien mittaan

Tekniset vaatimukset Tikon 6.4.1

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

P e d a c o d e ohjelmointikoulutus verkossa

.NET 2006 ja sen jälkeen

T Hypermediadokumentin laatiminen. Sisältö. Tavoitteet. Mitä on www-ohjelmointi? Arkkitehtuuri (yleisesti) Interaktiivisuuden keinot

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

Ohjelmoinnin perusteet Y Python

Kehyksillä toteuttettujen tuotelinjojen rakenteellinen optimointi

Object Framework - One. OF-1 is a high-productive Multi-UI OpenEdge data driven development framework. Veli-Matti Korhonen

Sunin määrittelemä JSP 1.1 (javaserver pages) yhdistää

Condes. Quick Start opas. Suunnistuksen ratamestariohjelmisto. Versio 8. Quick Start - opas Condes 8. olfellows 1.

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

Esimerkkiprojekti. Mallivastauksen löydät Wroxin www-sivuilta. Kenttä Tyyppi Max.pituus Rajoitukset/Kommentit

CSS - tyylit Seppo Räsänen

Järjestelmäarkkitehtuuri (TK081702) Lähtökohta. Integroinnin tavoitteet

Transkriptio:

Visual Basic -sovelluskehitin Helsinki 30.10.2000 Seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Visual Basic sovelluskehitin Seminaari: Ohjelmistotuotantovälineet Tietojenkäsittelytieteen laitos Helsingin yliopisto 30.10.2000, 8 sivua Microsoft Visual Basic on Basic-kieleen perustuva sovelluskehitin, joka helppokäyttöisyytensä ansiosta on saavuttanut laajan käyttäjäkunnan. Ohjelmistoa käytetään sekä pienien prototyyppien laadintaan että laajojen monen käyttäjän sovellusten kehittämiseen. Tässä seminaarialustuksessa tarkastellaan joitakin Visual Basicin ominaisuuksia sekä sovelluskehittimen erilaisia käyttömahdollisuuksia. Lisäksi tuodaan esille joitakin Visual Basicin puutteita ja heikkouksia. Avainsanat: Visual Basic, Microsoft, COM, sovelluskehitin

Sisällys 1 JOHDANTO... 1 2 KEHITYSYMPÄRISTÖ... 1 2.1 TYÖPÖYTÄ... 2 2.2 KOODIN GENEROINTI... 3 2.3 VIRHEENJÄLJITYS... 4 3 SOVELLUSALUEET... 4 3.1 KÄYTTÖLIITTYMÄSUUNNITTELU... 5 3.2 TIETOKANTASOVELLUKSET... 5 3.3 WWW-PALVELINSOVELLUKSET... 6 4 PUUTTEET... 7 5 YHTEENVETO... 7 VIITTEET... 8

1 Johdanto Visual Basic on osa Microsoft Visual Studio kokonaisuutta, joka sisältää valikoiman ohjelmistotuotantoon tarkoitettuja ohjelmia. Basic-kieleen pohjautuva Visual Basic on Rapid Application Development eli RAD sovelluskehitin, joka nopeuttaa mm. prototyyppiohjelmien laatimista ja käyttöliittymäsuunnittelua. Visual Basic ei kuitenkaan ole prototyyppityökalu, vaan sovelluskehitin, joka kykenee tuottamaan niin tavallisia ohjelmia, ActiveX-komponentteja kuin wwwsovelluksiakin. Lisäksi markkinoilla on Visual Basic johdannaisia kieliä, kuten VBscript ja Visual Basic for Application. Komponenttipohjaista ohjelmointitapaa hyödyntävä Visual Basic tukee myös oliopohjaista suunnittelu- ja toteutusmallia, mutta täydellinen oliokieli se ei kuitenkaan esimerkiksi Delphin Object Pascaliin tai Javaan verrattuna ole. Visual Basicista puuttuvia olio-ominaisuuksia on mm. luokkien periytyminen. Toisaalta komponenttien hyödyntämisessä Visual Basic antaa mahdollisuuden käyttää millä tahansa ohjelmointikielellä toteutettuja Component Object Model eli COMrajapintaa tukevia komponentteja [MS00a]. Tavallisesta Basicista (ja Javasta) poiketen Visual Basic ei ole tulkattava kieli, vaan sillä tuotetut ohjelmat käännetään natiivikoodiksi aivan, kuten esimerkiksi Delphillä tai C:llä laaditut sovelluksetkin. Toisaalta huonona puolena voidaan pitää esimerkiksi Delphiin verrattaessa sovellusten vaatimia suurikokoisia ajonaikaisia kirjastoja, jotka on asennettava ohjelman yhteydessä. 2 Kehitysympäristö Visual Basicin kehitysympäristö, Integrated Development Environment (IDE), sisältää lukuisia toimintoja, jotka nopeuttavat sekä koodin kirjoittamista että generointia. Valmiiksi sisäänrakennettujen toimintojen, kuten komponenttipaletin, projektitiedostojen hallintaan tarkoitetun hierarkiaikkunan sekä komponenttien ominaisuuksia näyttävän ikkunan lisäksi ympäristöön voidaan tuoda myös erikseen varta vasten laadittuja lisäosia (add-in). 1

2.1 Työpöytä Visual Basic työpöytä koostuu erilaisista toimintopaleteista ja -ikkunoista. Kuvassa 1 on nimetty ja eritelty eräitä tärkeimpiä toimintoja. Projektihierarkia avustaa eri projektiin liittyvien tiedostojen ryhmittelyssä ja käsittelyssä. Hierarkia mahdollistaa myös useamman projektin yhdistämisen projektiryhmäksi. Käyttöliittymä- ja muiden komponenttien, kuten tietokantayhteyksien ominaisuudet voidaan asettaa kohdalleen erillisen työkaluikkunan kautta. Ominaisuuksia on mahdollista asettaa ja tarkistaa myös ajonaikaisesti ohjelmakoodissa. Komponenttipaletti Projektihierarkia Komponentin ominaisuudet Käyttöliittymän muokkaus Editori Kuva 1. Visual Basic työpöytä Ohjelmakoodin muokkaukseen käytettävä editori sisältää tuottavuutta parantavia toimintoja, joista hyödyllisimpiä ovat koodin täydentäminen ja automaattiset opasteet. Ohjelmoijan ei tarvitse muistaa metodin tarkkaa nimeä, vaan täydennystoiminto osaa listata eri luokkien sisältämät metodit ja attribuutit rivin alkuosan perusteella. Esimerkki täydennyksestä näytetään kuvassa 2. Kuva 2. Esimerkki ohjelmakoodin täydennyksestä 2

Automaattiset opasteet nopeuttavat ohjelmointia esittämällä funktioiden tarvitsemat parametrit sitä mukaa, kun niitä tarvitaan. Kuva 3 sisältää esimerkin automaattisista opasteista. 2.2 Koodin generointi Kuva 3. Opasteet helpottavat muistamista. Class Builder Utility on Visual Basicin mukana tuleva add-in lisäosa, joka nopeuttaa oliopohjaista ohjelmointia. Ohjelmoijan tarvitsee vain nimetä tarvittavat luokat, niiden attribuutit ja metodit sekä asettaa näiden tietotyypit, minkä jälkeen Class Builder -lisäosa generoi projektiin tarvittavat luokkatiedostot ja metodien rungot. Kuvassa 4 näkyy Class Builder toiminnon luokkahierarkia ja taustalla clskurssi-luokkaan generoitua koodia. Kuva 4. Class Builder Utility. Class Builder Utilityn lisäksi koodia voidaan generoida esimerkiksi VB Data Object Wizard työkalulla, joka tuottaa tietokantaan sidottuja luokkia. Näiden lisäksi Visual Basicin projektimallit (templates) sisältävät myös wizardtoimintoihin perustuvia malleja. 3

2.3 Virheenjäljitys Visual Basicin virheenjäljitysominaisuudet tukevat perinteistä white-boxmenetelmää. Ohjelmaa voidaan suorittaa rivi riviltä, tai sinne voidaan asettaa pysähtymiskohtia (breakpoint). Pysähtymiskohtiin voidaan myös asettaa ehtolauseita, jolloin esimerkiksi silmukan sisällä ei ole pakko pysähtyä jokaisella suorituskerralla. Pysähtymiskohtien lisäksi ohjelman suoritus on mahdollista pysäyttää käsin ja jatkaa sen suoritusta myöhemmin uudelleen. Virheenjäljitystä tukee myös mahdollisuus tarkkailla ohjelman muuttujien tilaa suoritusaikana. Muuttujien arvoja on myös mahdollista muokata kesken suorituksen. Erittäin tehokas keino virheenjäljityksessä onkin yhdistää muuttujien arvojen muokkaaminen ja mahdollisuus palata ohjelman suorituksessa taaksepäin halutulle riville ja suorittaa koodi jälleen siitä eteenpäin. Kuvassa 5 on esimerkkiohjelma, jossa on asetettu pysähtymiskohta if-lauseen kohdalle. Pysähtymiskohdassa voidaan tarkistaa, mikä on i:n arvo. Ohjelman suoritus voidaan tämän jälkeen siirtää eteen- tai taaksepäin haluttuun kohtaan hiirellä osoittamalla. Tarvittaessa myös ohjelmakoodia voidaan rajoitetusti muokata kesken suorituksen. Kuva 5. Ohjelman suoritusta on mahdollista seurata merkintöjen avulla. 3 Sovellusalueet Matalan oppimiskynnyksen ja erilaisten muunnelmiensa ansiosta Visual Basic on levittäytynyt laajalle alueelle Windows-sovellusten maailmassa. Markkinointimateriaalien mukaan Visual Basic soveltuu niin ohjelmointia 4

aloittelevalle käyttäjälle kuin ammattilaisellekin, ja sovellusalueet vaihtelevat pienistä yhden käyttäjän sovelluksista laajoihin monen käyttäjän järjestelmiin [MS00b]. Seuraavissa luvuissa tarkastellaan Visual Basicin käyttöä ja soveltuvuutta käyttöliittymäsuunnitteluun, tietokantasovellusten laatimiseen ja WWW-palvelinsovelluksissa. 3.1 Käyttöliittymäsuunnittelu Käyttöliittymäsuunnittelu edellyttää usein prototyyppisovellusten laatimista ja siten erityisiä työkaluja, jotta prototyyppien toteutus ei vaatisi kohtuuttomasti aikaa. Eräs ratkaisutapa kiireen torjumiseksi on hyödyntää RADsovelluskehittimiä, joiden avulla käyttöliittymä syntyy yleensä nopeasti ja pienellä määrällä itse kirjoitettua ohjelmakoodia. Sovelluskehittimien nopeus perustuu valmiskomponenttien hyödyntämiseen ja tehokkaaseen käyttöliittymään. Standardisovellusten laatiminen nopeutuu, kun kalenteri, editoitava tekstikenttä tai napit saadaan valmiista valikoimasta. Menetelmä ei kuitenkaan palvele käyttöliittymäsuunnittelun tarpeita. Hyvä käyttöliittymä edellyttää käyttäjän tarpeiden huomioimista tilannekohtaisesti, eivätkä valmiista muotista tulevat peruskomponentit monestikaan ole riittävän laadukkaita tai räätälöitäviä, jotta niitä voitaisiin hyödyntää käyttöliittymäratkaisujen mallintamisessa. 3.2 Tietokantasovellukset Tietokantasovellusten määrä kasvaa jatkuvasti erilaisissa käyttötarkoituksissa. Tietokantojen hyödyntämisestä onkin pyritty tekemään helppoa useissa sovelluskehittimissä [Inp00, MS00c], eikä Visual Basic ole poikkeus. Lähes kaikki Visual Basicin peruskomponentit sisältävät mahdollisuuden liittää ne suoraan tietokannasta saatavaan dataan. Tietokantojen hyödyntämistä tuetaan myös erillisellä luvussa 2.2 esitellyllä VB 6 Data Object Wizard työkalulla sekä Visual Basiciin kuuluvalla Visual Data Manager laajennoksella. Laajennusten lisäksi Visual Basic tukee ja hyödyntää Microsoftin ActiveX Data Objects eli ADO-tietokantaohjelmointimallia [MS00d]. Kuvassa 6 esitetään ADOoliomallin rakenne. Tietokantasovelluksiin Visual Basic siis soveltuu hyvin. 5

Kuva 6. ADO-oliomallin rakenne [MS00e] 3.3 WWW-palvelinsovellukset WWW-palvelujen joukko laajenee huimaavaa vauhtia. Sivujen sisältöä on ylläpidettävä jatkuvasti, ja sivuston dynaamisuus on yhä useammin eräs perusvaatimuksista palvelua suunniteltaessa. Visual Basicin soveltuvuus websovellusten kehittämisessä perustuu COM-rajapintaan. Sovelluskehittimellä voidaan luoda itsenäisiä ActiveX-kirjastoja, jotka sijoitetaan WWW-palvelimelle. Kirjaston tarjoamia palveluja hyödynnetään luomalla siitä ilmentymiä, ja käyttämällä tarjolla olevia metodeja. Toinen vaihtoehto on luoda erillisiä WebClass-sovelluksia, jolloin kaikki palvelimelta käyttäjälle päin näkyvä syöte generoidaan Visual Basic sovelluksessa. COM-rajapintaan perustuvia ActiveX-kirjastoja hyödynnettäessä ohjelmointikielenä toimii Visual Basicia rajoitetumpi VBscript-kieli. VBscriptpohjaisia sivuja suoritetaan WWW-palvelimella, ja ne voivat sisältää sekä HTMLosuuksia että suoritettavaa skriptikieltä. Skriptien avulla on mahdollista luoda ilmentymiä Visual Basicilla kirjoitetuista ActiveX-kirjastoista, jolloin päästään hyödyntämään niihin rakennettuja tietokantayhteyksiä tai muita ominaisuuksia. VBscript:llä toteutettuja sivuja kutsutaan Active Server Pages eli ASP-sivuiksi. Vastaava tekniikka Java-pohjaisena on nimeltään Java Server Pages eli JSPtekniikka. 6

4 Puutteet Pitkästä ominaisuuslistasta huolimatta Visual Basic sisältää myös joukon heikkouksia ja puutteita, jotka hankaloittavat sen hyödyntämistä. Windows- ja Microsoft-sidonnaisuus ovat ehdottomasti eräs huonoista puolista. Laadittujen sovellusten siirtäminen toiseen käyttöympäristöön on käytännössä mahdotonta, mikä aiheuttaa rajoitteita, mikäli laite- tai käyttöjärjestelmäalustaa myöhemmin haluttaisiin jostakin syystä vaihtaa. Ohjelmointikielenä Visual Basic on kehittynyt alkuperäisestä Basicista, mutta kantaa edelleen vanhoja vaikutteita mukanaan. Virheiden käsittely on hankalaa ja perustuu edelleen goto-rakenteiden käytölle, mikä johtaa tietyissä tilanteissa vaikeaselkoiseen ohjelmakoodiin. Virheenkäsittelyn lisäksi puutteita löytyy olioohjelmoinnissa, josta puuttuu mm. luokkien aito periytyminen. Visual Basicilla laadittujen ohjelmien asennus tuottaa myös vaikeuksia, sillä 20 kilotavun kokoinen ohjelma vaatii mukaansa pahimmillaan usean megatavun verran erilaisia ajonaikaisia kirjastoja. Palvelinympäristössä ajonaikaiset kirjastot taas saattavat aiheuttaa ongelmia, sillä niiden versionhallintaa ei ole toteutettu riittävän tehokkaasti. Komponenttipohjainen ohjelmointitapa kärsii myös siitä, että Visual Basic ei toistaiseksi anna yhtä laajoja mahdollisuuksia omien komponenttien laatimiselle kuin esimerkiksi Visual Studio pakettiin kuuluva Visual C++. 5 Yhteenveto Visual Basic on keskitasoa helppokäyttöisempi ja käyttäjäystävällisempi sovelluskehitin, joka soveltuu yllättävän moneen käyttötarkoitukseen. Puutteista huolimatta Visual Basic on hyvä sovelluskehitin, jonka käyttö todennäköisesti tulevaisuudessa kasvaa entisestään. Paras tae Visual Basicin suosiolle todennäköisesti onkin valmiskomponenttien valtava määrä, ja yhteensopivuus myös muiden COM-rajapintaa tukevien ohjelmointivälineiden kanssa. 7

Viitteet Inp00 MS00a MS00b MS00c MS00d MS00e Inprise Borland Delphi - High Productivity for the Internet, http://www.inprise.com/delphi/productinfo/description.html, [30.10.2000] Microsoft COM Technologies, http://www.microsoft.com/com/default.asp, [29.10.2000] Microsoft Visual Basic datasheet, http://msdn.microsoft.com/vbasic/prodinfo/datasheet/default.asp, [29.10.2000] Microsoft Visual C++ datasheet, http://msdn.microsoft.com/visualc/prodinfo/datasheet/default.asp, [30.10.2000] Microsoft Universal Data Access ADO, http://www.microsoft.com/data/ado/default.htm, [30.10.2000] Microsoft ADO programming model, http://www.microsoft.com/data/ado/prodinfo/progmod.htm, [30.10.2000] 8