.NET

ASP.NET KEHITYKSEEN LIITTYVÄÄ KOULUTUSTA VUONNA 2008!

Kurssit saatavilla kaikkialla Suomessa. Tule, tutustu ja varaa oma koulutuksesi jo tänään. Koulutukset järjestää IT-koulutuksen asiantuntijasi, Koulutus- ja konsultointipalvelu KK Mediat

 

ASP.NET: Muutoksen kourissa pt.2

Kaikkein suurimmat erot tulet kohtaamaan mikäli olet tottunut VBScriptin käyttäjä (kuten minä). ASP.NET on hylännyt VBS:n kokonaan ja käyttää aivan puhdasta Visual Basic.NET:ia. Kyseessä ei olisi järisyttävä muutos, ellei itse VB olisi myös läpikäynyt täydellistä muodonmuutosta .NET-ajattelun yhteydessä.

Tämä artikkeli keskittyy käymään läpi muutamia keskeisiä muuttuneita ja uusia asioita, jotka tulee ottaa huomioon siirryttäessä VB.NET:in käyttämiseen.

Ensimmäisenä eroavaisuus on että "asetuskomentoja" Set ja Let ei enää käytetä, vaan niiden tilalla käytetään aivan normaalia muuttujaan sijoittamista. Esimerkiksi


' vanha ASP:n syntaksi
Dim oYhteys
Set oYhteys = Server.CreateObject("ADODB.Connection")

' sama ASP.NET:in syntaksin mukaisesti
Dim oYhteys
oYhteys = Server.CreateObject("ADODB.Connection")

Samoin on käynyt myös indeksoimattomille oletusarvoille. Indeksoimattomat oletusarvot sallivat objektin viitata oletusarvoon objektin todellisen arvon sijaan. Tästä on seurannut se, että koodista on useimmiten tullut vaikeammin seurattavaa, koska arvo on ollut riippuvainen käytetystä asiayhteydestä. VisualBasic.NET ei enää salli tätä, vaan vaatii että indeksoimattomat arvot määritellään aina.


' vanha ASP syntaksi
Dim oYhteys, rsTesti
Set oYhteys = Server.CreateObject("ADODB.Connection")
oYhteys.Open("tietolahde")
Set rsTesti = oYhteys. Execute ("SELECT * FROM taulu")
Response.Write rsTesti("kentta1")

' Uusi ASP.NET syntaksi
Dim oYhteys, rsTesti
oYhteys = Server.CreateObject("ADODB.Connection")
oYhteys.Open("tietolahde")
rsTesti = oYhteys. Execute ("SELECT * FROM taulu")
' Huomaa, että noudamme arvon 
Response.Write rsTesti("kentta1").Value

Sen sijaan indeksoidut oletusarvot ovat edelleenkin tuettuja:


' Dim rsTesti As Recordset

' aksessoidaan indeksoitua arvoa
RsTesti.Fields(1). Value = RsTesti.Fields(2).Value

' mutta tämä ei ole sallittua, koska käytetään 
' indeksoimattomia oletusarvoja
rsTesti(1) = rsTesti(2)
rsTesti(1).Value = rsTesti(2).Value

Kuten jo aiemmin mainitsin, toimintosarjojen kutsut vaativat aina sulkeiden käyttämistä. Tämä tarkoittaa sitä, että VisualBasic.NET käyttää samaa syntaksia sekä alitoimintojen että funktioiden kutsumiselle.


Sub teeJotain
' Huomaa sulkeet Response.Write komennossa
Response.Write ("2kmediat.com rules ;)")
End Sub

' ja myös täällä
TeeJotain()

Toinen toimintosarjoihin vaikuttava tekijä, on että argumentit välitetään VisualBasic.NET:ssa ns. byValue (toisin kuin VB tai VBS). Tämä piirre pätee sekä normaaleihin parametreihin sekä ParamArrayn kautta välitettyihin parametreihin. Ensimmäisessä tapauksessa välitystapa voidaan muuttaa julistamalla argumenttien välitystapa byRef-tyyppiseksi, jälkimmäisessä tämä ei ole mahdollista.

Tämä piirre on muutettu, koska on huomattavasti yleisempää käyttää parametria toimintosarjassa muuttamatta sen itsensä arvoa. Samalla on pyritty vähentämään vahingossa tapahtuvia virhetilanteita. Alla olevassa esimerkissä näytetään byRef-muunnos:


<script language="VB" runat="server">
Sub teeJotain (byRef arvo)
	arvo = 1234
End Sub
</script>

<%
Dim luku = 11
teeJotain(luku)
Response.Write ("arvo on nyt: &luku)
%>

Päätämme tähän ensimmäisen .NET-sarjan oppaamme ja jatkamme ASP.NET:in läpikäymistä uusissa artikkeleissa alkutalvesta / keväällä 2002.

Tutustu artikkelin muihin osiin:
»»» ASP.NET »»» Johdatus ASP.NET:n maailmaan
»»» ASP.NET »»» Muutoksen kourissa pt.1
»»» ASP.NET »»» Muutoksen kourissa pt.2

Tallenna tämä sivu kirjanmerkkeihin!

 

2kmediat.com, ©2000-2008 Koulutus- ja konsultointipalvelu KK Mediat.
Tekijänoikeuksia koskeva tiedonanto | Tietosuojalausunto | Sivukartta