Intro Toegepaste informatica,

flameluxuriantΔιαχείριση Δεδομένων

16 Δεκ 2012 (πριν από 4 χρόνια και 5 μήνες)

1.359 εμφανίσεις

Voorwoord
:

De laatste jaren is de (ICT
-
) wereld grondig veranderd: met Internet en verwante technieken (XML,Email,..) werden
vele activiteiten plots anders aangepakt.

Je ondervindt het dagelijks: communicatie tussen mensen onderling, overheid en publiek,d
okter en patiënt,bedrijf en
klant,vriend en vriendin… is hierdoor ernstig veranderd,

meestal verbeterd en zeker efficiënter.

Speciale vermelding voor zoekmachines als Google die ons laten zoeken naar de speld in de hooiberg.

In deze cursus proberen we stud
enten de mogelijkheden van webapplicaties te verduidelijken. Webapplicaties bieden
meer dan gewone websites die statisch zijn.

We gebruiken allen dynamische webapplicaties: treinregeling, bankverrichtingen, registraties en inlogprocedures op
vele websites.

De overgang van statisch naar dynamisch lijkt voor velen een eenvoudige stap, maar technologisch gezien is het dat
NIET.

Dit komt omdat een webserver,in conceptie, als een snelle verdeeldoos(dispatching) kan beschouwd worden: de
surfer klikt iets aan en v
raagt aldus naar een webpage en de webserver stuurt zo vlug mogelijk het gevraagde terug
en vergeet deze aanvraag en de aanvrager!

Dit is nu eenmaal de rol van het http
-
protocol.

Het is dan ook verbazend hoe, op
enkele jaren tijd, de
webserver werd verster
kt door aanvullende functionaliteiten en
connecties met database servers. Dit zonder iets te kort te doen aan

de vroegere rol.

Wil men in de ICT wereld iets permanent bewaren en later vlot terugvinden
,

dan heb je een database(databank en
beheersysteem=DBMS
) nodig. Met RDBMS werken we nu al dertig jaar en zulke systemen schenken ons een groot
vertrouwen, als men deze beestjes goed behandelt!

Niet altijd is een complex DBMS noodzakelijk: onder sturing van W3C is er een alternatief: een XML bestand (of een
XML

stream).

Dan weet men

hoe men een goede datastuctuur kan opstellen en hoe men de informatie kan opvragen via SQL en
dan moet men opnieuw leerschool lopen voor XML en verwante technieken als XSL.

XML heeft ondertussen zijn belang bewezen
o.a.
bij:

-

kleine
dataopslag (ter vervanging van een database)

-

integratie tussen bedrijfsprocessen en tussen bedrijven onderling

m.b.v. webservices.

-

XHTML: mits geringe aanpassingen kan men dit gebruiken ipv HTML enz.

Al deze aspecten
worden besproken in d
it werk

en zo pra
ktisch mogelijk toegelicht.

We kozen hierbij bewust voor Microsoft producten(ASP.NET, SQLServer
2005
,Visual Studio
,VB.NET,C#
) omdat het
enkel met deze producten mogelijk is om een (complexe) dynamische website te maken
zonder veel programmatie
-
inspanningen
.

We gebruiken dan ook de eenvoudigste programmeertaal (VB.NET) om sommige problemen op te
lossen.

De recente versie VWD2008 Express (gedeelte van Visual Studio voor webontwikkeling) biedt ,via

AJAX, voldoende
zekerheid om de interactiviteit van een RIA
-
we
bapplicatie op te bouwen.

RIA=Rich Internet/interactive Applications


Met Linq
-
to
-
SQL kan men nu een SQLServer2005 database op een object georiënteerde manier

benaderen.

Linq

blijkt nu een
zéér
waardevolle aanwinst te zijn van het .NET Framework 3.5
.

Linq

query expressies zorgen ervoor dat XML,OOP en RDBMS perfect te integreren zijn m.b.v. uitbreidingen aan de
.NET talen.

Vele demo’s kregen aldus een herwerkte versie.



Andere aanwinsten bij
ASP.NET

3.5

en VWD
: ListView,

LinqDataSource
, Publish to Provider
,

CCS designer.


In tegenstelling met vele andere ASP.NET boeken, gaan we de problematiek rond
database servers, in het bijzonder
SQLServer2005
, NIET uit de weg : uitleg over stored procedures,ADO.NET, database design
, het overbrengen van de
database

naar
de provider
,concurrency


enz.


Al deze producten kunnen gratis gebruikt worden en thuis op de PC geïnstalleerd worden.

Toch kan men niet ontkennen dat het ontwikkelen van een webapplicatie een complexe zaak blijft en daarom wensen
we onze student(e) veel m
oed en studiegenot toe!











D
enis De Wachter










Hogeschool Gent, HABE










september

200
8

Oefenbestanden

zijn

terug

te

vinden

op

http://ddwsoft.org/mi


CALIBRI
-
font:

deze

font

installeren

via

PowerPoint
Viewer.exe


zie

site
!

U

kan

vele

demo’s

bekijken

met

http://ddwsoft.org/menuxx.htm

De web
applicaties kan men lokaal installeren en uitvoeren.De nodige zip
-
files zijn
hiervoor
beschikbaar

2

1

Overzicht


A)
Website On
twikkeling
:




W
e gebruiken de
ASP.NET 2.0

technologie van Microsoft.
(
A
ctive
S
erver
P
ages)

ASP.NET

is een onderdeel van het
.NET
framework , bestemd voor webtoepassingen.

We steunen op het .NET Framework:

aanvullingen op het operating system Windows
.

Vergel
ijking: Java in
J5EE




.
NET Framework
2.0
(2005)
,3.0
(2006)
,3.5
(2007)

(V
ele bedrijven versus Microsoft)

Zie figuur hieronder.

J5EE
=
J
ava
-
versie
5
-
E
nterprise
E
dition

is
een

specificatie
, geen product!




M
aak onderscheid:

Web
s
erver

script/programming(VB.NET

v9.0
,C#

v3.0
) en
client

JavaScript(van Browser)


B
) DATABASE Systemen (DBMS
):database servers.
(
client server architectuur)

MySQL5
.1



捯mmun楴i⁳ rv敲


SQLServer 2005 Express (
SSE
)

Open Source

/Sun

download via
http://d
ev.mysql.com



of
:

samen met

PHP
5

en

Apache webserver:
http://www.wampserver.com/en



Microsoft

Platformen:
W
indows,
L
inux, Mac
intosh

Windows met .Net Framework


SQL

+(stored procedures)

T
-
S
QL
+stored proced
ures +
triggers
+UDF

enz.

Tools:MySQL Query Browser


SQL
-
commando’s intikken

䉥灥牫B攠卑L⁳ 物r瑳

MX卑L⁗or歂敮捨k䕒
-
T楡i牡rm敮

SSMSE=
S
QL
S
erver
M
anagement
S
tudio
E
xpress

SQL kan ook grafisch opgebouwd worden.

Uitgebreide scripts
-
programmering



o

U

kan alles

thuis gratis install
eren als u Windows XP

of Windows Vista

gebruikt.

De pro
-
editie
/premium

is geschikter dan de home
-
editie. (
hier ontbreekt de webserver IIS
)

o

De studie van
ANSI
-
SQL
92

is voor ons belangrijk.Met T
-
SQL (SSE) zitten we goed.



J5EE
-
Frame
work



J慶a





P慣歡来s


JSP

(*.jsp

webpages
)





J噍V† †
b
y瑥cod攨⨮捬慳*

†† ††† †
(
i
nt敲灲整敲ⱊe吩

J5EE
: één taal , meerdere platformen , meerdere bedrijven (Sun,…)

.NET
: meerdere talen, voorlopig één platform : Windows



PHP⁰慳琠义E吠楮⁤楴

s捨cma

h瑴p://n氮睩歩w敤e愮潲术睩w椯
J5䕅

h瑴p://n氮睩歩灥w楡io牧/睩歩/⹎䕔


h瑴p://n氮睩歩w敤e愮潲术睩w
椯J慶a


h瑴p://dd睳o晴⹢e/m椯䥮瑲odu捴楯n彴o弮_E吮Tpt



3

2

Architectuur





Momenteel
maakt men

onderscheid

tussen Windows
-
toepassingen en Web
-
toepassingen.

We bestuderen


web
toepassingen waar mees
tal

een databank mee betrokken is
.

M
en spreekt van dynamische pagina’s en dit b
etekent
niet

dat er veel beweegt

op je browser
-
scherm

,
wanneer je

deze sites
bezoekt
, maar wel

dat
,

afhankelijk

van de

ingevulde vakjes

in een
webformulier
,

men andere resultat
en
krijgt.Kort
om
:

i
edere surfer krijgt andere info

te zien.

Ander voorbeeld:
b
estelling op internet.A
ls je iets bes
telt

via internet moet je eerst een keuze maken

(query op
database)
,

je keuze

komt in een winkelmandje
(cart)

en dan
,

na bevestiging

v
an
d
e

b
etaling
,

zal dit
opgestuurd
worden
.
Database gegevens worden
hier
dus zeker gewijzigd.

Het is ook duidelijk dat hier een
uitgebouwd

DBMS moet meewerken.

Access van
MS
Office wordt hier als te lic
ht
ervaren
,

zeker
wanneer data worden gewijzigd of wanneer er t
eveel bezoekers zijn.

Voor
webapplicaties stelt Microsoft nu SQLServer
2005
Express

gratis ter beschikking.

Een expert
DBMS
kan je niet worden
met

enkele lessen

over SQL
, maar het
kan volstaan

om je tabellen op te
bouwen
en
eenvoudige

dynamische
web
-
toepa
ssingen
te maken.



Praktisch
:
installatie van de nodige software.

De laatste
web
technologie van M
icrosoft

heet ASP.NET
3.5

en dit vraagt de nodige basissoftware.(IIS, .NET
Framework,
..
)

De

webpages eindigen
meestal
op
aspx

(dus *.aspx)

We proberen de moeili
jk
st
e pr
oblemen wat te omzeilen door de meest

geschikte ontwikkelingsomgeving

of
IDE(
i
n
t
egrated
d
evelopment
e
nvironment)

te gebruiken:
VWD
2008
.

Men kan momenteel gratis
, via Visual Web Developer(VWD)
,

dit allemaal uitproberen
.


VWD is in feite een onderdeel

van Visual Studio
: het gedeelte
bestemd

voor webontwikkeling.

Dreamweaver
(zie
Adobe
CS3)

is ook te gebruiken, daar dit pakket met
meerdere omgevingen kan werken.H
et best
werkt Dreamweaver
met PHP
-
scripts en

MySQL
.

Als designer kan je ook kiezen voor het
nieuwe

Expression Web
.
(Microsoft)


Thuis aan de slag:

Bezit je een PC met Windows XP

of Vista Premium

dan is de goede volgorde:

Eerst de webserver IIS installeren
.
(niet

aanwezig
bij Windows Home editions)

Dan via
http://microsoft.com/express

VWD downloaden
.

B
ij de installatie hiervan zal dan automatisc
h de

.NET
F
rame
work met ADO.NET en ASP.NET

geïnstalleerd worden.


U moet

wél

VWD
binnen de maand (gratis) registreren!
!

1



Op dit moment(september 2008) moet

men bij de installatie van VWD2008 het anders aanpakken, zoniet dan kan je achteraf SSMSE(SQLServer Management
Studio Express) NIET gebruiken:

N
a IIS installeer je eerst
een nieuwe
Windows Installer
(4.5) en dan
SQLServer200
8

Express inclusief SSMSE:
SQLServer2
008 Express with Tools
.
(volg de uitleg!)


Bestaat ook
SQLServer 2008 with Advanced Services

(met Reporting S
ervices

erbij
=500MB
)

Als laatste stap installeer je VWD2008.

Bij een upgrade moet men best eerst alles verwijderen van de vroegere versie! (de mdf
-
files apart bewaren na detach)

Zie ook


http://www.microsoft.com/expr
ess/sql/download




en



http://www.asp.net/downloads/3.5
-
SP1/




Een
gratis
alternatief voor SSE is Oracle Database XE(
e
x
press
e
dition) ,MySQL en ook PostgreSQL.

Microsoft zorgd
e zelf voor een

Oracle

Data
Provider


(de classes in System.Data.OracleClient namespace)



Bij de installatie van deze software op Windows Vista moeten er a
ndere procedures gevolgd worden:

Windows Vista:
http://blogs.msdn.com/robburke/archive/2007/02/20/sql
-
server
-
2005
-
sp2
-
released
-
and
-
is
-
vista
-
ready.aspx

:
SSE+tools in één file van 250MB :
SQLEXPR_ADV.EXE.

Aldus wordt SSE te samen met SQLServer Management Studi
o Express(SSMSE) geïnstalleerd.

V
oor de Home
-
versie(zonder IIS):
geen

rapporteringtool selecteren, maar wél SSMSE.

Voor
Windows Vista Home Premium

(of +)
moet men op een bepaald moment aanstippen:Add user to the SQLServer Administrator role.


We hebben hie
r duidelijk ontwikkelingsproducten van Microsoft gekozen, die enkel onder Windows werken.

(
Alhoewel

voor Linux
:

http://www.mono
-
project.com

)

Opgelet
: uiteraard is onze gebouwde webapplicatie vanuit
elk

compute
rsysteem(platform) met een browser
benaderbaar, daar uiteindelijk html
-
tekst wordt aangemaakt.


BOEKEN
:

http://ddwsoft.org/boeken.pdf




Microsoft gebruikt altijd de term “
managed

code” om aan te duiden dat dez
e code alle
e
n door
een

onderdeel van de .NET Framework met naam CLR

( Common
Language Runtime) kan uitgevoerd worden.
Het O.S.(windows dus) samen met de CLR vormen een ‘virtuele PC’ te vergelijken met de JVM (Java Virtuele
Machine) in de JAVA
-
wereld.Zo kan

je begrijpen dat de .NET Framework standaard wordt geïnstalleerd bij Windows Vista: het is de ‘virtuele PC’ die als basis
dient voor alle nieuwe softwareontwikkelingen in Windows, games inclusief.




1

Momenteel bekomt men VWD2008 met .NET Framework 3.5 en de talen VB.NET versie 9.0 ,C# versie 3.0


4

2.1

Microsoft Architectuur bij dynamische websites
:






Figuur aanvullen
!

Vele nuttige files
, waaronder dit document,

staan op
http://ddwsoft.org/mi


of
http://ddwsoft.be/mi


Files met extensies zoals sql,asp,aspx
,php worden door de webserver meestal apart behandeld. Dit levert dan
problemen al
s

w
e deze files
,
ter bestudering
,

gewoon
na
a
r u
willen
opsturen.

Men kan dit opvangen door de extensie
tijdelijk
te vervangen door txt.
(of


.txt toevoegen)

Een alternatief is

de files in te pakken in een zip
-
file. Deze wordt zonder problemen gedownload.

We gebruiken

meestal

dit l
aatste
.



Localhost=127.0.0.1= IP
-
nummer

van je eigen pc, meestal voor testdoeleinden.

Zo kan je met de opdracht:
ping 127.0.0.1

jezelf wakker krijgen!



De benaming ASP komt nog in een totaal andere ICT

betekenis:

A
pplication
S
ervices
P
roviding

http://www.softwarepakketten.nl/swpakketten/asp/asp_uitleg.htm




Welke kennis over ht
ml (markup language) is noodzakelijk?

Zeker
:

algemene indeling, hyperlink, <ul>, <ol>, <a>, <img>, <table>, <div>,
<scan>

<input>, <select>,

<form> en
ook
een
elementaire
kennis over
CSS
-
stylesheets en JavaS
cript

komt van pas.

http://w3schools.com/


en
http://www.handleidinghtml.nl/






In vele

boeken over ASP.NET

promoot men de

code behind
/code beside


page
techniek, we verkiezen dit
niet om

het overzicht te bewaren.



Een
introductie op dynamische websites

die men e
ven kan

doornemen
:
http://ddwsoft.org/mi/webplatform.doc


en
http://ddwsoft.org/mi/studiedag.doc


Enkele d
ynamische websites

meestal

gekoppeld aan een SSE
-
database
:

http://CTL1204/belga/bestelling.aspx


CTL1204 is
een
FileServer é
n
een
IIS
-
webserver
in de hogeschool
.

http://192.168.150.11/kristien/welkomsql.aspx


webapplicatie op
dezelfde webserver.

http://CTL1204/gitte/home.aspx


http://
CTL1204B:8080
/belast
ing


CTL1204B is
een webserver met .NET Framework
3.5
.

De html
-
poort is hier 8080 ipv 80 omdat op poort 80 nu een SharePoint Service Site opstart(inlog verplicht)

Vorige webapplicaties zijn van thuis uit niet bereikbaar. De volgende wel:

http://habestage.com/ian

user baby, psw baby

(Access database)



Andere webapplicaties kan je via een menu lanceren:


Menu:
http://ddwsoft.org/menuxx.htm



Je mag gerust experimentere
n,
zonder destructief te zijn
!

Browser

Webserver:
IIS

Application server:
ASP.NET


Database server :
SSE

Vraag
: hoeveel computers zijn
hierbij betrokken?
It

depends..

http://en.wikipedia.org/wiki/
Multitier_architecture



5

Een eerste voorbeeld
:

een textbox, een button en een label.

http://ddwsoft.org/mi/intro.aspx



Dit zijn drie verschillende
webserver

controls
.

We kunnen hierbij vaststellen:

-

d
at
een ASP.NET

webpage
(meestal)
de ingebrachte gegevens “post” naar zichzelf , zonder dat we dit
expliciet moeten aangeven.

-

m
en heeft een webserver nodig om deze webpage te laten werken(werkt

dus
NIET met
een
dubbelklik

op
deze file

in windows verkenner
,

in tegenstelling

met een html
-
page.
)

-

d
at we via

de
handler

(afhandeler)
van de knop Verstuur de inhoud
(text)
van een
ASP.NET
label dynamisch
(
at runtime
)
aanpassen.

H
et programmeren

is minimaal
.
We gebruiken

voortaan

Visual Basic (
VB.NET
)

De enige lijn
die

hier

in VB.NET moet “geprogrammeerd” worden is:


Label1.Text=”Hello” + TextBox1.Text


(
+

of &)



De on
tw
ikkelaar wordt bij de

syntax geholpen door
Intellisense
. Bovendien wordt de hoofding
(signature)

van
de
handler

voor ons al klaar gezet.
Men spree
kt van
event
-
driven programming
: we schrijven code die
reageert op een gebeurtenis

zoals een klik op een knop.

B
emerk het formaat van deze web server controls: vb:


<asp:label ID=”Label1” runat=”server” Text=”hello” />


De eerste keer moet deze webpage
ge
compileerd

(
vertaald naar een tussentaal
)

worden
.

Dit duurt even

en het resultaat(een assembly
:exe of dll file
) wordt
uitgevoerd door de CLR
(met behulp van een
J
ust
I
n
T
ime Compiler
-
JIT)
en ook
bewaard
(
cache
)
voor later
her
gebruik.


Bij de uitvoering wor
dt telkens html tekst aangemaakt
.

Uiteraard zal

dit
patroon
zich herhalen

als men de webpage wijzigt
.

Opmerkingen
:



Controleer
(via Source

van Brower
)
wat er uiteindelijk naar de browser wordt gestuurd: html
-
tekst, op
elk

computerplatform
(Windows, Mac,Linux
,Sun…)

te lezen.



Bij de
ontwikkeling

van ASP.NET webapplicaties kan men best gebruik maken van de
interne webserver
van VWD
.
Bij de productie moet men het anders aanpakken:

w
il men resultaten zie
n vanaf een andere computer dan dient de sprong gemaakt te w
orden naar de
gekende webserver van Microsoft:
I
nternet
I
nformation
S
ervices

(IIS)



Onze aandacht in deze cursus gaat voornamelijk naar het gebruik van data uit een database
systeem.
Toch

ook enkele oefeningen met XML
-
data.



Met dit eenvoudig voorbeeld moet
en we de
ze

architectuur

beter

begrijpen
:

<%
@

Page

Language
="VB"

%>

<
html

xmlns
="http://www.w3.org/1999/xhtml"


<
script

runat
="server">

Protected

Sub

Button1_Click(
ByVal

sender
As

Object
,
ByVal

e
As

System.EventArgs)


Label1.Text =
"Hallo "

& TextB
ox1.Text


End

Sub

</
script
>


<
head

runat
="server">


<
title
>
Voorbeeld
</
title
>

</
head
>

<
body
>


<
form

id
="form1"

runat
="server">


<
div
>


<
asp
:
TextBox

ID
="TextBox1"

runat
="server"></
asp
:
TextBox
>


<
asp
:
Button

ID
="Button1"

runat
="ser
ver"

OnClick
="Button1_Click"

Text
="Verstuur"

/><
br

/>


<
asp
:
Label

ID
="Label1"

runat
="server"

Text
="Hallo"></
asp
:
Label
></
div
>


</
form
>

</
body
>

</
html
>

We raden elke starter aan om deze webpage opnieuw te bedenken en
in VWD
te ontwikk
elen!

Probeer
hierna
:

Opgave:

Als demo:
http://ddwsoft.org/mi/hobby.aspx

, dat (verrassend?) verwijst naar de webpage
………………………………………...(Vul in)

IIS

XML

DB

ASP.N
ET


6

2.2

Waarom
geen

PHP
-
script?

Sedert een tiental jaren bestaat er
Open Source

pro
ject: PHP=
P
ersonal
H
ome
P
age
Script dat ontzettend populair is
geworden en dat werkt zowel op Linux webservers(
Apache
) als op Windows 2003 servers(IIS)
.
Zeker in combinatie
met h
et Open Source

project

MySQL

(een DBMS)

is dit een topper.

Zo kennen we nu de

termen WAMP en
LAMP
.

W
I
MP kan ook!


met
I
IS van Windows.

Bovendien dien
t

dit als basis

voor zovele nuttige uitbreidingen(webapplicaties):OSCommerce, CMS systemen als
Joomla

1.5
,Wiki
pedia
,Dokeos
,eyeOS

enz..
G
ratis
(sleutel op deur)

en community ondersteund.
E
lke
webhosting
provider

kan LAMP

leveren

met minimale kosten
.
(
<
7 €/maand)

Deze weg gaan we

toch

NIET volgen

(op enkele demo’s na)
omwille

van
:



PHP

blijft een script
-
taal

en het wordt lijn per lijn vertaald naar HTML code(geen compilatie zoals bij .NET)
.
Heeft men een lus(iteratie) geprogrammeerd dan
moet
elk instructi
e
van de lus
opnieuw
ge
-
interprete
erd
worden
.
PHP scripts kunnen nooit zo snel werken als ASP.NET webapplicaties.



Je zal
hieronder
ook merken dat er echt een verstrengeling is tussen html en
PHP
-
code
(spag
h
etti)

Met java (client) script en nog AJAX uitbreidi
ngen moet een webpage wel een puzzel worden.



De koppeling met andere DBMS systemen
(dan MySQL)

is niet altijd even performant en kan grondig
vari
ëren tussen de verschillende DBMS.



De veiligheid wordt betwist.
De hackers vinden te vlug hun weg.



Het is geen
event driven model en niet

volledig volgens

OOP
.

(Object oriented programming)



Vele caching mogelijkheden ontbreken en de
internet
connecties worden niet geoptimaliseerd
.



Bij een nieuwe webtoepassing moet men alles zelf pr
ogrammeren in PHP, terwijl bij
VWD

en ASP.NET er vele
objecten klaar staan voor gebruik, in het bijz
onder de info uit een database.

Men zou dit

kun
nen vergelijken met de bouw van een huis:

traditio
neel,

steen voor steen
(PHP)

of prefab

met grotere componenten
(
ASP.NET)

Ter vergelijking vo
l
gt hierna in PHP

ee
n oplossing met twee webpages (Hello.htm en B
egroet.php) en een
oplossi
ng met slechts één PHP webpage: H
ello.php.

Wil je dit
(thuis)
even

proberen dan installeer je
de nodige software
o.a.
via
http://www.wampserver.com/en



MAAR let erop dat er geen conflicten met een
(
actieve
)

IIS ontstaan: deze kan je vermijden door

IIS

tijdelijk

op
non
-
actief te zetten of door

Apache te laten luisteren naar bijvoorbeeld poort
8080, ipv de klassieke poort

80,
die IIS dan

blijft gebruiken
.


<p>Begroeting</p>

<form name="form1" method="post" action="begroet.php">


Geef Je Naam in :


<input name="
txtNaam
" type="text

/>


<input type="submit" name="Submit" value="Verzend" />



</form>



Hello.htm




<?php

$achternaam=$_POST['
txtNaam
'];

echo "<h2> Welkom,
$ach
ternaam
</h2>";

?>





Begroet.php



<?php

if (isset($_POST[‘
txtNaam
’])) $naam=$_POST[‘
txtNaam
’];
?>


<form name="form1" method="post" >

<h2>Hello,
<?php

echo $naam;
?>
</h2>


Geef Je Naam
in :


<input name="
txtNaam
" value=”
<?php

echo $naam
?>

“ />


<input type="submit" name="Submit" value="Verzend" />



</form>



Hello.php



Demo :
http://ddwso
ft.com/mi/intro.php



Enkele demo’s met PHP:


http://ddwsoft.com/php

demo 16: A
rtikelen

verkopen
.

Over “artikelen verkopen via het net” zijn we nog niet uitgepraat! (zie verder

)


7


2.3

IIS
configuratie

op een PC.

Op a
l onze computers werd

IIS

,

de webserver van Microsoft,

geplaatst.

U kan dit thuis ook installeren als u Windows XP
Pro

of Windows Vista
Premium (of meer

)
bezit.

Deze installatie
gebeurt
bij Win XP
via

Control panel,add/remove windows components.

Na deze

installatie is IIS meestal onmiddellijk actief.

Controleer met
http://localhost

of
dit inderdaad zo
is.



U moet nu allen controleren of we werken met het ASP.NET
2.0

of verder


Klik Start, rechts klikken op MyComputer

en optie Manage.(Beheer)

Klik op de + van Services and Applications enz.

Rechts klikken op Default Web Site,
Klik ev. op start
, Properties,tabblad ASP.NET.



De instellingen worden opgeslagen in machine.config ,
basis
configuratie van elke webapplicatie.







Opmerkingen
:
Installeert men een nieuwer

.NET Framework dan moet IIS worden aangepast:

De installatie
-
volgorde (IIS
,

VWD) is

belangrijk:
in geval van problemen: aspnet_regiis

i




Hebt U thuis enkel de home editie van Win XP dan kan u het vorige N
IET, maar u kan nog altijd met VWD en
de interne webserver verder werken!



Maak

met IIS

van d
:
\
oef een virtuele directory, zet een index.html in deze folder en probeer dan met
http://localhost/oef/

of je dit document
ziet.

Als uw gebuur zijn personal firewall zo instelt dat poort 80 aanspreekbaar is, dan kan u zijn document
bekijken met:
http://192.168.150.xxx/oef/index.html



Er zijn hier a
llerlei security instellin
gen(o.a. NTFS) voor de account ASPNET of de account Network Service(IIS
versie 6) enz! Al deze security
-
instellingen zijn noodzakelijk omwille van de vele hackers die de zwakheden
van IIS uittesten.

Gelukkig zitten wij hier achter de hogeschool firewall
!



Leer IIS op actief en non
-
actief te zetten.

Bekijk ook eens alle

windows

“services” via
run
,
services
.
msc

(msc=microsoft console)

Het beheren van
een webserver is NIET eenvoudig en bovendien delicaat!



Wanneer men
ontwikkelt in VWD en bij het bepalen v
an een nieuwe site voor location http kiest

ipv File
System
, dan worden vele instellingen automatisch door VWD gemaakt!

Een nieuwe site komt
dan
standaard in
c:
\
inetpub
\
wwwroot
\
nieuweSite
.... te staan.



.NET framework 3.5 werkt nog altijd met de .NET 2.0 ru
ntime.
(zie rode kring in figuur)


8

2.4

Overgang naar IIS


Intranet webtoepassing

Het beheren van internet
-
websites is een stiel apart , maar als we een
intranet

applicatie
, voor een zeer beperkt
aantal gelijktijdige gebruikers,

in een bedrijf willen opstellen
dan kan dit bij Windows

XP Pro toch redelijk
eenvoudig.
Hiermede word je ooit geconfronteerd!


Binnen de VLAN (virtueel LAN
-
segment Studenten,getypeerd met nr 150) kan men
http://CTL1204/oef

intikken,
doordat deze webser
ver in dit segment staat.

In de plaats van
http://CTL1204/oef

moet

men typen:
http://192.168.150.11/oef

, als uw PC NIET in hetzelfde
VLAN geplaatst is.
(Alternatief:

aanpass
en van
de
Hosts
-
file in c:
\
windows
\
system32
\
drivers
\
etc
)

De PC moet wél in de hogeschool staan.

Het IP
-
nr van uw PC vindt u met:start,run,cmd, ipconfig (of nog meer info met: ipconfig /all)

Deel dit nummer mee aan uw gebuur: met
http://192.168.150.xxx/oef/default.aspx

kan deze uw werk
bewonderen.
(extra instellingen zijn hier wel voor nodig:zie verder)

2.5

Installatie

en activatie

van een

webapplicatie: Inschrijving

We gaan

nu een
(
reeds
ontwikkelde
)

w
ebappl
icatie installeren en activeren.

Ons vertrekpunt is de folder d:
\
economie met daarin alle files uit
economie.zip
.

Je moet deze zip
-
file eerst downloaden van
http://ddwsoft.org/mi

en dan gepast decomprimeren

Star
t

dan
VWD en Kies Open website
,File System,lanceer inschrijven.aspx en doe de inschrijving zodat er een record
wor
dt ingevuld in de Access tabel I
nschrijving.
Dit zou moeten werken.
Kijk na!

Klik
nu
file, Open website

,
neem deze keer de optie
local
IIS

,
en op dit moment zorg je voor een nieuwe
virtuele
directory (met naam

bijv.

econ
)

die in feite overeen
komt met de directory d:
\
economie:

Waarom virtueel? Omdat een externe surfer met
http://computernaam/econ

in wer
kelijkheid d:
\
economie wil bereiken.(normaal is de ‘webroot’
c:
\
inetpub
\
wwwroot
\

en we doen nu alsof econ een subfolder van wwwroot is)

Daarom,
selecteer eerst bovenaan de default website(!!!!!)
, en klik boven rechts op het ikoontje van
Create
new

virtua
l directory
.

Stel nu in naam:
econ

,

verwijzend naar d:
\
economie.
Hierna een klik op Econ en Open.

Nu kan je al een eerste test verrichten

met I
nschrijven.aspx
.D
eze
mislukt

,
daar de NTFS
-
security van
windows nog
NIET in orde is bij

d:
\
economie.
Het toevoegen

van een record bij

de tabel I
nschrijving van de Access database
economie.mdb lukt
dus

(nog)

niet
.

Verklaring

: bij Windows draa
i
t elk proces onder een “account”. Bij IIS , lopende op WinXP Pro, zijn er zelfs twee
accounts van toepassing: IUSR_computernaam

én ASPNET (die het proces ASP.NET moet sturen)

Daar de database en alle files onder d:
\
economie staan gaan we de NTFS
-
security van deze folder op punt stellen.
Een ander

bekend probleem

: b
ij het opladen van prentjes moet
iusr_computernaam

schrijfrechten

krijg
en op de
folder met de prentjes
.

Parkeer

nu even
V
WD
.

Deze
security fijnregeling

is bij Windows XP Pro zeer omslachtig e
n daarom volgen hier de stappen: we
veronderstellen hierbij dat in verkenner “simple file sharing” reeds werd afgezet.

My Compute
r, ga naar Folder d:
\
economie en klik rechts hierop voor Properties,Security,knop
Add,Advanced,Find Now, selecteer ASPNET en OK,OK,

ASPNET
-
>modify of write, Apply
.

Normaal(!) is de ingestelde NTFS
-
security van toepassing voor ALLE subfolders en hun files.

Het zou kunnen dat het nu werkt(!) en dat men de inschrijving kan toevoegen.
Terug naar VWD.

Demo
: probeer nu
http://192.168.150.194/econ/inschrijven.aspx

(welke PC zou dit zijn?
) of :

http://habeklasa22/econ/inschrijven.aspx

Nadere uitwerking
volgt later
,

bij
bezoek

M
eer dan vier

bezoekers

is hier pr
oblematisch(
beperking van
Win XP

Pro)
, je kan daarom

beter bij e
en “echte”
webserver proberen:

http://CTL1204/econ/inschrijven.aspx


Zoek naar je IPnr:

Start ,run cmd, tik in
ipconfig

of
ipconfig /all (of router
-
ipnr:
http
://www.whatismyip.com

)

Meld aan je gebuur je I
P
nr
,

als deze gebuur je werk wil zien.

Laatste hindernis
:

De personal
firewall

van windows (of een andere firewall) verhindert dat men je website kan bereiken(poort 80)

Los dit


op als volgt
(éénmalige aanpas
sing)
:

Properties van de LAN
-
verbinding,
advanced,settings,advanced,settings,selecteer dan laatste optie:webserver(http)



Het
lokaal

installeren van een webapplicatie kan eenvoudig zijn:

decomprimeer bijvoorbeeld fotoAlbum.zip in
d:
\
Album en open met VWD2
008 dan deze website. Kies hi
e
rbij File System.
Klik nu rechts op default.aspx en neem
de optie Vi
ew in Brower.


9

2.6

WEB
HOSTING

In productie
-
nemen van een webtoepassing

op het internet
:

Hier hebben we meestal de

hulp van een

i
nternet
service
provider
(ISP
) of
een webhosting bedrijf(
web
h
oster
)

voor
nodig.

Doordat ASP.NET
en IIS
een
volledige
Microsoft oplossing is
,

moeten we
afzien van d
i
e
hosting
-
diensten

die enkel

LAMP
-
configuratie of WAMP aanbieden.

Er bestaat ook de mogelijkheid om een webserver(PC) te
plaat
sen

bij de webhoster

en dus deze PC
, via remote
control,

in eigen beheer te nemen.Deze “oplossing” is zeker niet goedkoop
, bezorgt ons de nodige zorgen, maar we
zijn er
wel
baas over en kunnen de snelle communica
tielijnen v
an
d
e

provider gebruiken.
(
Dedica
ted hosting
)

We beschouwen dus maar de klassieke opstelling,
shared

hosting
,
waarbij de provider instaat voor de
verbinding,
security en recovery.We moeten ons dan wel houden aan de regels

én de beperkingen bij

die provider en
kunnen het slachtoffer worden
van de overbelasting

en de onveiligheid

door vreemde webapplicaties.

Een tussenopl
ossing bestaat ook:VPS=Virtual Private S
erver zie
http://www.server4you.nl


en dit voor een goede prijs:55

/maand (ideaal voor KMO)

Met
Brinkster:

http://brinkster.com

Een

promotie leverde me

vijf

jaar terug
,

voor 60$(jaarprijs)
,

een domeinnaam (
ddwsoft.com
) en een webserver die
overweg kan me
t ASP 3.0(*.asp) en ASP.NET

(*.aspx)
, met Access datab
anken
, maar
niet

met SQLServer
databanken.

Bij elke provider

b
ekomt men
een aantal utilitie
s waarbij een FTP
-
connectie niet mag ontbreken, zodat we de files
naar “onze” site kunnen
opladen
.

Sommigen werken ook met WEBDAV.

VWD biedt

ons hier
voor

de
men
u
-
opt
ie

Copy

Website

aan, maar
velen kiezen voor

Total Commander
.

Een andere
supersnelle
manier is het instellen

,in Windows XP,

van een FTP
-
folder die verwijst naar je website.


Het kiezen van een juiste hosting provider

is niet zo eenvoudig.
Omschakelen kan oo
k lastig zijn.


De domeinnaam
en de emailadressen kunnen

normaal

z
onder problemen behouden worden!

We tonen

een
FTP
-
demo

om dit
protocol
te verduidelijken:

Total Commander
, FTP, New .. username:
brinkster
\
ddw, paswoord:…..

De prestaties van deze
USA
-
webhos
ter z
ijn helaas minder goed geworden
!

Daarom vind je in dit document andere demo websites:
http://ddwsoft.be/mi

en
http://ddwsoft.org/mi

,
ondersteund door andere webhosting
-
bedri
jven.

De

upload
-
snelheid
van thuis

uit
,

is echt NIET hoog.
Omwille van deze slechte upload prestatie

is het niet interessant
om van thuis uit aan

webhosting


te doen.


Oefening
:
Je weet
dat je op
de hoge
school een eigen (niet dynamische) Apache
-
website
ka
n bouwen
?
ftp://studweb.hogent.be

….

Configureer
een
FTP
-
tool
(client)

voor je website.

Maak ook
,in Windows,
een FTP
-
folder die verwijst naar je website.


Publiceren

Dreamweaver, VWD en EW
(Expression Web)
leveren a
l het nodige om je realisatie te publiceren op de productie
webserver. Het voordeel is dat deze tools het

synchroniseren


van de files eenvoudig maken, zodat enkel
gewijzigde webpages worden opgestuurd.

Werk je op het werk aan een site en wil je thuis hie
raan verder werken dan volstaat het de thuisversie te
synchroniseren met de recente versie.

De gebruikte technologie ka
n FTP, WEBDAV,Frontpage Server E
xtension en zelfs, voor een intranet file
-
sharing zijn.

Meer info over FTP en WEBDAV via

http://www.windowsnetworking.com


Webhosting

v
oorbeelden:



Gebruikt men enkel PHP/MySQL en
geen

ASP.NET dan is er
bijv.
de webhoster:
http://one.com




ASP.NET 3.5+SQLServer2005(één database
-
3
00MB
) voor 120$+12
0$ /jaar:
http://discountasp.net


Voor Europa heeft men een extra datacenter in Londen.

Demo:

menu:
http://
ddwsoft.org
/menuxx.htm



Domeinnaam nog vrij
?
http://register.be



10

3

Interactie t
ussen
webpages


Verkoop
Artikelen
, met drie webpages.

Met start.asp, koop.asp en toon
.asp en de database
website.mdb

werd enkele jaren geleden het “bestellen” van een
artikel bij een pe
rsagentschap via
internet gesimuleerd.

De klant heeft hierbij een lopende rekening
(credits)

die niet negatief mag worden bij de bestelling v
an een

artikel.Er
is
ook
een identificatie nodig en daarom dient men het email
-
adres en het paswoord in te geven(w
e
rd

onderzocht in
toon
.asp)
.

Het
gevraagde
artikel zit in het

memo

veld

TEKST
(formaat html) van de tabel Artikel
en
.

Klantinfo

en zijn paswoord

staan

in tabel Klanten.

Artikel nr 4 is

ruim

uitgewerkt
.

Met S
tart.asp worden alle artikelen getoond en kan men éé
n
artikel
selecteren.

Deze keuze wordt dan doorgestuurd naar Koop.asp, waarbij email en paswoord wor
dt ingevuld.De inbreng hiervan
é
n ook het gevraagde artikel wordt dan naar Toon.asp gestuurd.

Deze webapplicatie werd hermaakt
met ASP.NET

tot
:start
vwd
.a
spx ,

koop
vwd
.aspx en

toon
vwd
.aspx.



(
Laatste versie,
met Access als DBMS:
http://CTL1204/reuters/startvwdrub.aspx

)

CTL1204: een webserver, locatie hiernaa
st, die werkt onder
Windows

server

2
003
.

Veiligheidshalve alleen
binnen de hogeschool

te gebruiken

(IP
-
nr 192.168.150.11
)


Deze
server
versie van Windows is nodig om IIS volwaardig te gebruiken op Internet.
De lice
ntiekosten hiervan blijven
hoog.
De beperkingen van Win XP
Pro
(als webserver)
verva
llen hierbij.

Deze webapplicatie kan natuurlijk ook binnen de LAMP of WAMP architectuur worden gebouwd:

z
ie
http://ddwsoft.com/php

demo
16.


Onze

opdracht
: hermaak

met VWD

deze webapplicatie
.

D
e paginas

noemen dan

startVWD.aspx en koopVWD.aspx. ToonVWD.aspx is voor later…wanneer je kennis hebt
over ADO.NET.

(
A
ctiveX
d
ata
o
bjects)

ADO.NET (Microsoft) kan men beschouwen als

een verzameling van
classes en
objecten die de ontwikkelaar

moet
en

helpen in het gebruik van
databanken, zowel in Webapplicaties als in Windows Desktop

applicaties.


Zet de
Access
-
database in een subdirectory
App_data
.

Later gaan we SQLServer 2005 Express

(
SSE
)

gebr
uiken ter vervanging van Access!




OPGELET
: de overgan
g van de interne webserver

van VWD

naar IIS is niet evident, z
eker niet als we van Windows

Server
2003/2008
moeten gebruik maken. Bij Win XP Pro is het eenvoudiger
.

Vooral de security van de files
(
volgens NTFS
)

is belangrijk,
terwijl we anders binnen VWD
met de account
-
gegevens
van
Student

(
lokale
administrator!) kan werken
.


VWD kan nu ook meewerken in het afstellen v
an
d
e

security
.

We
moeten

,voor een goede medewerking van VWD,
hiervoor de database ( Access of SSE) plaatsen in de submap
app_data

en een
virtuele

directory maken van de folder
(webroot)

waar onze webapplicatie in geplaatst is.

Start.aspx

Koop.aspx

Toon.aspx


11


3.1

Analyse

van startvwd.aspx , koopvwd.aspx en toonvwd.aspx

Algemene

beschouwingen

Bij
het
bekijken

van de

sourc
e
-
files zal je zeker bemerken
:



De co
de die we zelf diene
n in te tikken

staat
tussen

<script runat=”server”
>…
…</script>

(
declaraties

van
variabelen,
procedures en functies)

De code die VWD voor ons aanmaakt staat

meestal

in de “body”,

binnen een formulier
,

dat
meestal
een
“posting” doet naar zichzelf.




Als we de

gridview verfraaien (met auto format) wordt deze code zéér uitgebreid.

Met het bepalen van een “theme
” kan men dit voorkomen

e
n blijft men

consequent met een uniforme webstijl.



Bemerk een

klassieke

vorm
:

(een XML
-
formaat)

<asp:acces
s
datasource id=”
acces
sdatasource1
” runat=”server”

selectcommand=” ….

datafile
=”….”>

</asp:accessdatasource>


het datafile
-
attribuut

vind je enkel bij Access
DataSource

terug!

<asp:gridview id=”gridview1
” runat=”server” datasource
ID
=”accessdatasource1” …></asp:gridview>


Men n
oemt dit soms

“declaratief programmeren”



Bij

deze drie webpages h
eeft de ontwik
kelaar de

klassieke
werkwijze
toe
ge
past

zoals
vroeger
gebruikelijk

bij
*.asp en

nog altijd bij

*.php :

m
en “post” de ingave

van de

huidige pagina

naar de volgende pagina
.
Om
dat

een webserver geen status kan onthouden
(
stateless
)

moet de input van de surfer op één of andere manier
meegestuurd worden
.
(
De zogenaamde get and post methoden
)

Get method:
Je hebt zeker ooit iets van de volgende vorm gezien in de adresbalk

van de browser
:

http://eensite.com/show.aspx?
id=55&quantity=13

,waarbij jijzelf
,even daarvoor,

55 en 13 invulde in een
vorig
webform
ulier
.Wat in het kader staat noemt
querystring
.

In
show.aspx

(de opgevraagd
e

pagina
)

kan

de
ze

ingave
verder
gebruikt

worden:

re
quest.querystring(“quantity

)


Naast het
request

object
,met o.a. browser en cookies info,

bestaat er
,opnieuw per client,
ook een
response

object
in ASP.NET.

Met

de constructie: response.write(“
is gebeurd
!
”)
kan
een tekst naar de browser worden

gestuurd.


Het is opmerkelijk dat de surfer de resultaten van response.write() helemaal bovenaan terug vindt.

Met
ASP.NET 2.0 is de functionaliteit

van de

drie pagina’s te vervangen door slechts één

webpagina.

Deze

situatie is als GUI zeker te verkiezen
, daar de gebruiker niet moet rondlopen en zijn orientatie
niet
verliest:

v
oor onze artikelbestelling zouden we dan juist één pagina bouwen met een inlog
-
gebied(<asp:inlog….> een selectiegebied(gridview) en een
resul
taatgebied(gridview,detailsview,formview..)

vb:


http://ddwsoft.org/artikelen/startlinq.aspx



StartVWD.aspx


We veronderstellen dat de klant
-
info en de artikel
-
info in

een database website.mdb s
taat.


Maak dus een nieuw webformulier aan met als naam StartVWD.aspx.
(stap voor stap zie
4.1
)

We beginnen met de begroeting die we zelf moeten programmeren via de event

handler
page_load
.(
via dubbelklik
op pagina in design

of via gepaste keuze bovenaan i
n source
)

E
en aspx
-
page

zal

meestal naar zichzelf “posten” o
p het moment
dat
bijvoorbeeld

de gebruiker

op een
zendknop

heeft geklikt
.E
en andere sortering

van een gridview

aanvrag
en
, met een klik op de kolomhoofding,
veroorzaakt
ook

deze
posting
.
Het selec
teren uit een keuzelijst (zonder aanpassing) niet.

Het wordt nu dringend tijd om de volgende begrippen nader te verduidelijken:

LEVENS
-
Cyclus

van

een

ASP.NET

Webpage



Om de werking van een aspx
-
webpage te verstaan is de volgende uitleg zeer belangrijk
:

Al
s gevolg
van een posting
wordt het ganse scherm ververst

dwz de web
page wordt opnieuw ingeladen

met
behoud van de
viewstate

: al wa
t de gebruiker als input meegaf wordt
(opnieuw)
opgebouwd door de webserver
.

De viewst
ate bevat alle

wijzigingen aan de prop
erties van de controls.

ASP.NET zorgt ervoor dat alles in de staat wordt hersteld zoals de pagina de laatste keer naar die client werd verstuurd.

Wanneer een pagina wordt gepost naar de server, worden de events in
een bepaalde volgorde doorlopen
op de webs
erver
.

Met deze volgorde moet je als ontwikkelaar wel rekening houden
:


Bij

Init event

worden

de controls via

de
viewstates hersteld

,dan volgt de
afhandeling van de
load event

,
dan de
uitvoering van alle handlers

van alle andere events
,

de
databinding

en

opslaan van de nieuwe viewstate
,

de

afhandeling van de

prerender event

en
unload

event
.










Dan pas wordt het resultaat(html) opgestuurd naar de browser in de client.

Denk er dus aan
: de event page_load zal wellicht meerdere keren geactiveerd worden
!

De

page
property

ispostback

sprong
hierbij
op true!

Een postback is een aanvraag naar de webserver voor dezelfde pagina
.

Met de constructie:
if

not

ispostback

then

kunnen we voorkomen dat de

begroeting bij elke “verversing” opnieuw
wordt berekend.Hier

,
in dit voorbeeld,

is deze constructie niet zo belangrijk.M.a.w.
enkel bij de eerste

loading


wordt hier

naar de
web
server
-
klok gekeken voor een juiste begroeting.
(goede morgen, goede dag,…)


Wil je de

lok
ale

klok

tonen
?

M
et
J
avascript
:
<script>document.wri
te(Date());</script>


12

In design sleep je nu een AccessDataSource object naar de webpagina en

je

pas
t

deze aan met de configuratie
-
wizard.De SQL
-

constructie levert alle velden
,
uitgenomen Tekst
,

van

tabel
Artikelen op.

Voor de inhoud van Tekst
moet er eerst

betaald worden!

We gaan geen wijziging aan deze data toestaan, dus de kn
o
p Advanced Option gebruiken we niet.

Dan sleep je een Gridview naar de webpage en in de configuratie ervan zetten we datasource
ID
=AccessDataSource1.

Sortering en paginering verloopt
supereenvoudig en in feite is de eerste pagina in brute vorm af.

Wees nu slim en bekijk de aangemaakte code
/tags

aandachtig.

Het is
belangrijk

,
bij
alle

code
-
generatoren
,

dat men begrijpt wat deze aanmaken, zodat je bij problemen zelf kunt
ingrijpen.
Bre
ng,in source view, de Pagesi
ze op 3

(i.p.v. 10)

We moeten nog wel een hyperlink als kolom

van de

gridview definiëren die ons telk
ens naar de volgende pagina
brengt met een
(voor VWD)
aangepaste
querystring
.
(
zie
omkadering)

koopVWD.aspx?
artikel
={0}

(
waar
bij {0}

verwijst naar
de waarde

van het


sleutel
veld
,hier
Artikelid)

De tekst

van de

hyperlink mag telkens “ik koop dit” zijn.

Alternatief: de
surfer klikt op bijv. de onderlijnde artikel
titel
/onderwerp
.

Webapplicatie


cyclus

We begrijpen ondertussen de le
venscyclus van een webpage. Maar dit is maar een onderdeel van de webapplicatie
die opstart bij de allereerste aanvraag van een webpage van deze webapplicatie
.

Wijzigt
de ontwikkelaar

iets aan web.config dan start de
ze

webapplicatie opnieuw.

Een

rol in de
ze cyclus speelt
(soms)
de file
global.asax
.

Als illustratie kunnen jullie allen de demo eens opstarten:
http://ddwsoft.org/mi/telling.aspx


Er gebeurt een telling voor de klikken van jou én de simultane g
ebruikers.
(ev. andere browser)

In een andere “sessie”
(sluit even de browser)
dit eens hernemen.
De eerste teller steunt op een
sessie
-
variabele

die
,zo
lang

dat

de sessie duurt
,

haar waarde behoudt.

Bemerk dat
de tweede

teller
, gebaseerd op een ‘applicatie
variabele’, nog
standaard
20 minuten

verder loopt
.

KoopVWD.aspx

M
en moet
, in page_load,

de querystring

van de

vorige pagina ontleden, doordat we het gekozen artikelnr moeten

doorgeven aan de derde webpagina.
Hier gebeurt dit via
tussenschakel
lblArtikel:
al
dus behouden we de
doorgestuurde waarde bij een ev. postback van deze webpage.
(
zie startersfout
)

Er is nog wél een event
(gebeurtenis)

handler te programmeren: als de geb
r
uiker op de knop OKE klikt.

Hierbij wordt de surfer
onmiddellijk

naar een derde page g
estuurd, met meesturing van
drie

para
meters(argumenten):artikel,emai
l en wacht
woord.
(dubbel
-
klik in design op knop)

De html
-
tabel

,om alles wat te rangschikken,

haal je

bij “het gewone html
-
gerief.”

ToonVWD.aspx

Hi
er mag men niet vergeten de

extra
namespa
ce

System.D
ata.OleDB

aan te duiden.
(import)

Zonder dit krijgt men ook geen hulp van
intellisens
e.

In
page_load

vindt men de business
-
logic die uitgevoerd wordt vooraleer de gridview wordt opgebouwd.
Business
-
logic in de webpage geeft onderhoudsproblemen
.
(zi
e verder)

Door een nu
(!)

ge
kende oorzaak
werd

de html
-
tekst niet correct weergegeven in de gridview



Men moet htmlEncode

(
ve
i
ligheidinstelling

die hier storend werkt
)


voor dat

veld

instellen op false!

En
de rest is ADO.NET
-
code, en

dit is weer een ander
complex
verhaal!


Namespace
: Dit begrip werd ingevoerd om (in de ontwikkelingswereld) geen conflicten in de
namen

van de classes
te veroorzaken. Zo kan je namen voor je eigen klassen
verzinnen in je eigen namespace
, zonder dat je bang moet zijn
in conflict

t
e komen met de klassen van .NET of de klassen van andere
o
ntwikkelaars.

Twee klassen die behoren tot eenzelfde namespace kunnen nooit d
e
zelfde naam hebben.

Praktisch
:door gebruik van import namespace
system.net.mail
moeten we aanzienlijk minder typen:

Ve
rgelijk:
dim MailObj

as new
system.net.mail
.
smtpclient

met
dim
MailObj

as new
smtpclient
.


Een startersfout
:Beschouw
http://eensite.com/show.aspx?
quantity=13

Men weet dat een webpage meerdere keren
kan

ingeladen


worden. M
en vergeet dat de querystring e
nkel de
eerste keer

beschikbaar


is.Een
oplossing hiervoor

is de stri
ng
-
waarde te bewaren in een
la
bel lblBe
waar (waarvan
de viewstate
deze waarde behoudt
)
.Men kan als volgt werken:

If not ispostbac
k then

lblBewaar.text=request.querystring(“quantity”)

Hier
bij

werkt de
viewstate

van lblBewaar een handje mee.

Andere oplossingen hiervoor zijn: sessie
-
variabelen of het expliciet gebruik maken van viewstate.


13

4

Intro
ductie

ADO.NET

Er werden reeds vroegere j
aren meerdere modellen opgesteld door Microsoft voor het benaderen van database
gegevens.
Elke ontwikkelaar ke
nt de termen ODBC en OLE DB.

ADO.NET

is de laatste en krachtigst
e methode om XML data en databanken

te lezen en te wijzigen
.

Bekijk de f
iguur hier
onder: de
omkringde

objecten
(connect
ed classes)
zullen we geb
r
uiken in deze webapplicatie.

De studie van ADO.NET is
zeker
complex
.

Het begrip
DataProvider

is hier belangrijk.

We gaan later merken dat m.b.v.

de webcontrols AccessDataSource ,SQLDataSource

e
n LinqDataSource

kan dit
meestal

eenvoudiger

en hoeven we niet te programmeren met de objecten van ADO.NET.


In de code van de

webpage

toonvwd.aspx


vinden we een
O
l
e
DbC
ommand

terug in vele
uitvoervormen
.

Het

maken v
an zulk

object gebeurt

bijv.

door:
dim l
eescom as new oledbcommand(SQL,conn)

Hierbij verwijst de SQL parameter naar de SQL
-
query en conn naar een connectieobject of
connectie
string.

-

om een

update sql


uit te voeren
:hier

het gepast verlagen van de credits

van de

klant bij aankoop van een
artikel
:


pasaancom.
ExecuteNonQ
uery


(de methode
E
xecuteQuery
of Execute
bestaat NIET)

-

om juist één waarde(scalar) op te leveren:
vb.
de prijs

van het

gekocht artikel.

Zie:leescom.
E
xe
cuteS
calar


-

om een datareader
-
buffer in te vullen:

zie : dr=leescom.
ExecuteR
e
ade
r

(
enige manier om datareader te maken
)

Een
DataR
eader

,een geheugenbuffer,
is te vergelijken met
e
en
read

only
,

forward only recordset

, ook
soms
cursor

genoemd
,

die men rij per rij
, vanaf de eerste rij,

kan aflopen tot de laatste.

Dit wordt hier
ge
bruikt

samen

met

de VB.NET instructie

dr.read

die true oplevert zolang er nog records zijn in de
buffer.
Aldus gebeurde
hier
de paswoord controle.

MAAR alle
re
erst is er een connecti
e noodzakelijk naar de database
!

Deze connectie moet je hier
expliciet opene
n


vooraleer
executeXX

te gebruiken

en OOK sluiten

achteraf
.

Een connectie
object
v
ereist

een connectiestring of
een verwijzing naar
een
definitie in
web.config
.

We komen later terug op ADO.NET
.

Bij

SQLServer noemt

het

object
SQLcommand ipv OleDbC
ommand

Al
s we dan
inzien

dat er drie “globale” hulpvariabelen

we
rden bepaald:

Klantsaldo

,Artikel en Klantnr
,

dan moeten we

zeer

veel v
an
d
e

code begrijpen.


Denk eraan: naargelang het DBMS heeft men OleDBDataProvider , SQLDataProvider ,OracleDataProvider
,

MySQLD
ataProvider

(MyDirect .NET Core labs)

enz..


14


Kan
programmeren in
ADO.NET vermeden worden?

Meestal wel.

Zoals reeds vermeld
,

zijn er de krachtige webcontrols(DataSource), maar er zijn in ASP.NET 2.0 nog andere
ontwikkelingsversnellers: een wizard maakt “ty
ped datasets” aan.
We gebruiken dan
meestal

een ObjectDataSource.

Bij ASP.NET 3.5 heeft men nu
ook

Linq expressies en
een LinqDataSource.Met
Linq
-
to
-
SQL

en kan men een gepaste
data
context

class laten aanmaken door een grafische tool:

de
object relation desi
gner
.
Uitleg later.

4.1

Artikelenverkoop
:
stap voor stap



Dit is een
uitwerking van

het vorige
.
Demo:
http://CTL1204/demoartikelen/startvwd.aspx




Vertrek van demoArtikelen.zip te downloaden van de we
bsite:
http://
ddwsoft.org/mi
/demoartikelen.zip




Decomprimeer in d:
\
demoArtikelen



Start VWD, open de website.

File System.
Lanceer de website via startvwd.aspx.

Zweef met muis over de linken
Ik koop di
t
. Bemerk onderaan het scherm waar we naartoe zouden gaan

bij
een klik
.Houd vooral ,onderaan het scherm, de overgang t
ussen
de webpages in het oog.

Gebruikte
querystring
-
parameters

op deze site
: resp. ArtikelID, Ar
tikel,Email en Wachtwoord.



Bestudeer de d
atabase website.mdb (dubbelklik in Solution Explorer op de mdb
-
file

in de folder app_data
)
De klanten betalen via credits. Sluit dan Access. Binnen VWD ,in
het venster
database explorer, konden we
de data ook zien en bewerken!

(via tables,show table data

)




Hernoem start.aspx naar start0.aspx. Idem koop.aspx=> koop0.aspx : we gaan nu start.aspx en koop.aspx
zelf maken!

Toonvwd.aspx bevat ADO.NET codering (voor controle credits en identiteit van de klant)

New Web page: start.aspx
.
In design:


Hier zijn onz
e artikelen
:



Bepaal
,via ToolBox
-
Data,
een AccessDataSource.
ConfigureDataSource



Browse naar website.mdb. Artikelen: selecteer alle velden behalve het veld Tekst(pas na betaling wordt de
inhoud getoond) en zorg voor een rangschikking op Onderwerp.

Analyse
er de SQL formulering.Test Query. Finish.



Toolbox,Data.
Dubbelklik voor een gridview en ‘bind’ deze met de AccessDataSource.(Choose datasource)

Microsoft gebruikt de term “
databinding
” wanneer een eigenschap van een webserver control gekoppeld
wordt aan een

gegeven, zoals een veld van een record
.



Activeer de blauw.css voor deze webpage. (drag and drop naar het design scherm)



Bekijk je voorlopig resultaat.In design:selecteer de gridview
,
smarttag

boven rechts

en kies AddNew Column,
type Hyperlinkfield, onderst
e twee vakken gepast invullen (resp. artikelid en koop.a
spx?
artikel
={0}) en
,via
Specify text,
als “tekst”: ik koop dit)
. Lanceer
!



Bepaal een nieuwe webpage koop.aspx.

Begin met het invoeren van een html
-
tabel
(layout menu ..)
met drie rijen en drie kolomm
en: aldus kan men
een lblArtikel en de textboxen txtEmail en txtPaswoord gepast plaatsen bijv. in de tweede kolom.



Als standaardwaarde voor txtEmail neem je test@test.be: Text
-
property wordt
:
test@test.be.

Voor textmode van txtPaswoord neem je de keuze pa
ssword.



In de
eventhandler

P
age_load()
,dubbelklik hiervoor op ledige plaats,
zorg je voor
lblArtikel.tex
t=request.querystring(“
artikel
”)



Nu
,in design,
nog een knop
met ID btnDruk en tekst “
Verstuur


en in de btnDruk_click() moet iets komen
van de vorm:

r
esponse.redirect(“toonvwd.aspx
?
artikel=4
&
email=test@test.be
&
wachtwoord=elvis”)


Uiteindelijk
:

Response.Redirect(
"toon
vwd
.aspx?artikel="

+ lbl
Artikel.Text +
"&email="
+
_


txtEmail.Text
+
"&wachtwoord="

+ txtPaswoord.Text)


als je dit op twee lijnen wil

zetten
!

Meestal gebruikt men hulpvariabelen om de “expressie” korter te maken.

Een alternatief
kan zijn
:
het gebruik van de P
ostBackUrl property van btnDruk
.



Maak van start.aspx de ‘startpage’

en lanceer de webapplicatie met F5 (=run with debug)

Bij een f
outmelding kan men
best

eerst het debuggen stoppen met een klik op het


-
ikoon!!!


Na de correctie druk je opnieuw F5.




Bij foutief paswoord kom je

hier

terug bij eerste webpage!



Als oefening zetten we in de code van koop.aspx een “breakpoint” bij
respon
se.redirect()

Klik hiervoor in de linkermarge ter hoogte van de instructie die nog
niet

mag

uitgevoerd worden. Nogmaals
F5 of stapsgewijs met F10 of F11.
Bij een breekpunt aangekomen heeft men de kans om de waarden van alle
variabelen te bekijken, simpelweg

door de muis er bovenop te laten zweven.

Er zijn lastige momenten waarbij je een debugger NIET kunt missen
.

Dit zijn de extra voordelen van een ontwikkelingsomgeving(IDE)
.


15

Ctrl
-
F5:komt overeen met de werkwijze:View in Browser.(zonder debugging)

van de st
artpagina.

Gebruik Browse With … om het resultaat in FireFox te bekijken.

Je kan zelf bepalen wat de startpagina van je webapplicatie is.

Daarvoor klikt men rechts op die webpage (in solution explorer).



Met een
validation control

kan men afdwingen dat het

emailadres

van de

klant een goed formaat heeft
.

Werk in koop.aspx als volgt: ga naar de groep Validation bij de tool
box
.Kies Regular
Expr
essionvalidator en
sleep deze w
e
b
control

in een tabelcel rechts van

textbox txtEmail.

Bij de properties stel je dan in:

Validation Expression,klik op

knop



en kies Internet E
-
mail Address.Control To Validate:txtEmail.





De beste oefening is: herneem alles in een nieuwe directory, vertrekkend van blanco! Doen!








16


4.2

Historiek van een

webapplicatie

Deze valt samen met
de evolutie van Microsoft producten i
.
v
.
m
.

dynamische websites.

We bekijken hier de verschillende versies van de vorige webapplicatie.

6

jaar

terug:

ASP

Start.asp , koop.asp en toon.asp tesamen met website.mdb werd gebuikt om artikelen te leveren aan vaste

klanten(met zekere credits)

Men gebruikte kladblok of Dreamweaver om deze “VB Serverscript
-
code” in te tikken.

Men gebruikte een mengeling van <% …%> code binnen html
-
elementen.

(cfr PHP)

ASP 3.0 is nog altijd in gebruik bij sommige organisaties.(
A
ctive
s
erver
p
ages)


verouderd!

Met Dreamweaver

kon men in
deze omgeving aan RAD (rapid application development) doen.


4

jaar terug: ASP.NET 1.1

Start.aspx, koop.aspx en toon.aspx werden aangepast. Belangrijk hierbij we
rd de
compilatie

van de

VB.NET code.
(Bi
j
de vroegere ASP werd een interpreter gebruikt voor het VBScript)

Dreamweaver MX blijkt problemen te kennen en velen zijn bij deze IDE overgestapt naar PHP en MySQL.(zie
http://ddwsoft.com/php

demo 16
)

OpenSource

tre
kt vele ontwikkelaars aan!


3

jaar terug
:

ASP.NET 2.0


VWD

met ASP.NET 2.0 is vrij te verkrijgen.

Zo ontstaat startvwd.aspx, koopvwd.aspx en toonvwd.aspx(dit laatste met veel ADO.NET codering
)



November

2005
:

De drie pages op één page inclusief de authen
ticatie(inloggen)

Zo ontstaat
http://ctl1204/artikelen/startvwdrub.aspx



De Access databank werd een SSE
-
databank en zo ontstaat
http://
ctl1204/artikelen/startvwdrubsse.aspx

, w
aarbij
men

kan inloggen als gebruiker
ddw,test,test2
telkens


met psw
ddw807#

November 2006
:


We maa
k
t
en een “verbetering”: we ontwikkelden de pagina met een
3
-
lagen structuur
.
(zie verder)

Zulke systemen zijn bet
er schaalbaar
(scala
bility)

en verminderen het onderhoudsprobleem.

We verlaten dan meer en meer de wereld van RAD en treden binnen in de wereld van Enterprise development!

Alleszins complexer in de ontwikkeling
!

Dit bespreken we in een volgend punt.

Met
age
ntschap.zip

, meer bepaald met startvwdrubSSE2.aspx i
s de saldocontrole uitgewerkt m.b.v.

een
BLL
(Business Logic Layer
/Business Object Layer
) en een
DAL

(Data Access Layer)(hier een “
typed dataset
”)

W
erken

met een typed dataset

vermindert aanzienlijk het c
oderen in ADO.NET.

Veel uitleg

,breed

uitgewerkt,
vindt u op:

http://msdn.microsoft.com/library/default.as
p?url=/library/en
-
us/dnaspnettut/html/aspnet_tutorial01_dataaccesslayer_vb.asp?frame=true


en

http://en.wikipedia.org/wiki/Multitier_architecture


o
f
http://imar.spaanjaars.com/QuickDocId.aspx?quickdoc=416


Bovendien werd hier extra gebruik gemaakt van de vele login web controls die in ASP.NET 2.0 aanwezig zijn.

U krijgt een voorsmaakje met:
http://ctl1204/reuters/startvwdrubsse2.aspx


U zal hierbij merken dat de rubrieken

van de

artikelen dynamisch worden opgebouwd.

Een volgende

versie
,met SSE,
vind je via
http://ctl1204/belga/bestelling.aspx



Begin 2008
: met
agentschapLinq.zip

bekomt men een illustratie van Linq
-
to
-
SQLServer. Zie
Linq
.

http://ddwsoft.org/artikelen/
startlinq.aspx


Weliswaar geen n
-
tier ontwikkeling.

Een datacontext zorgt voor een DAL.


Opmerking
: IIS is ondertussen ook geëvolueerd!

Win XP Pro werkt met IIS 5.1.

Win
dows Vista werkt met IIS 7 en de GUI

van IIS

is erg veranderd.

Bovendien moet
,bij Win
dows Vista ,
VWD met de re
c
hten van administrator worden geactiveerd.


IIS 6
.0 staat op Windows S
erver 2003.

IIS 7.0 staat op Windows
S
erver 2008.



17

5

Ontwikkelingsarchitectuur


De laatste tien jaar heeft men in de ontwikkelingswereld beseft dat men best een a
pplicatie in drie
of meer
lagen(layers) opbouwt
,

zodat het
onderhoud

en de
schaalbaarheid

van het systeem verbetert.Men onderscheid
t
:

presentatie
,

business

objecten
(BLL
=Business Logic Layer
)
,

database

access
.
(DAL
=Data Access Layer
)

Een organisatie kan bijv
oorbeeld bedrijfseigen business
-
objecten en data
-
access objecten opstellen en enkel voor de
presentatie

(web applicatie of windows applicatie) aparte modules bouwen.

Elke laag moet oo
k apart aangepast kunnen worden en kan ev. op een a
nder computer uitgevoe
rd worden: de
webserver, de applicatieserver en de database server.

Het kiezen van een andere DBMS mag enkel weerslag hebben op de onderste laag.

In een

organisatie zijn er lieden die sterk staan in design van schermen
(JavaScript,CSS,Flash..)

en andere zij
n dan
weer al jaren vertrouwd met databanken en hun programmatie(
triggers

en
stored procedures
)

Laat elk groep de laag
ontwikkelen waar ze sterk in is!

In de webapplicat
ies die hier we
rden voorgesteld

is er
meestal

een vermenging van deze lagen!

D
enk

maar

aan de vele SQL
-
qu
eries in onze webforms.

Men noemt dit soms
RAD
=rapid application development.





In ASP.NET 2.0 heeft Microsoft
enkele

objecten

voorzien om de

gelaagde

manier van werken te bevorderen.
H
et
gebruik van VB.NET klassen of

C#
.NET klassen z
i
j
n

hi
ervoor nodig
.

Zo is er een ObjectDataSource class voorzien(zie verder).

Demo
: i
nstalleer lokaal
http://ddwsoft.org/mi/JobsSite.zip

:
mooie

illustratie van een gelaagde ontwikkeling
!

Je eigen

klassen
(in

VB.NET code of C# code)

zet je best

in de subdirectory
app_code. Zo wor
den ze
dynamisch

gecompileerd of geh
ercompileerd bij elke wijziging d
ie je aanbrengt aan deze
code.

Gebruik je

,in
meerdere

pages, beide talen

dan moet dit wel in aparte folders onder

de
folder

app_code.




Microsoft heeft als extra een wizard

(typed dataset

wizard)

ingevoerd die vele

taken kan verlichten , zodat we
zelf niet te veel ADO
.NET
-
code moeten schrijven.

Van dez
e wizard werd in volgende webapplicaties

meerdere keren gebruik g
emaakt.

Men moet even wennen aan

typed dataset

, maar het is

voor de professionals

duidelijk een

timesaver

,

zeker
bij
insert

operaties
!

Op deze manier hebben we snel een DAL.


Microsoft noemt classes meestal types
.




Om actueel

te zijn, moeten we hier oo
k Linq
-
to
-
SQL vermelden(
.NET Framework 3.5
)

We verwac
hten dat de wizard voor een datacontext(zie later) de vorige wizard

gaat vervangen.


OPMERKINGEN:

1.

Bouw je eigen webserver control

Men moet onderscheid maken tussen user controls en custom controls.

Beide
n dienen om reeds

vroeger ontwikkelde functionaliteiten in nieuwe webpages te hergebruiken.

Omdat user controls haast identiek zijn aan webpages, zijn ze eenvoudig te maken. Men kan deze herkennen aan de
extensie as
c
x ipv aspx.(PHP kenners
kunnen de vergel
ijking maken met

de ‘include’ instructie)

http://www.aspnl.com/aspnl/nl/artikelen/



2.

A new star is born!

Een goede samenwerking tussen webdesigners en ontwikkelaars(codeurs) is heel belangrijk. Een

nieuw product meldt zich aan:
Expression Web

(
EW
)
(
http://microsoft.com/expression

)

Dit product kan enkel overweg met de ASP.NET
server

technologie, dus niet
met
PHP of JSP.

Installeer de trial
(2 maanden)

Duidelijk
concurrentie voor Dreamweaver
(Adobe)

,

zeker beter bij gebruik van ASP.NET.

Voor codering in VB.NET is er weinig ondersteuning in deze IDE.
Dus eerder aanvulling voor VWD en geen vervanger
!

Het is wel een goede aanwinst om XML
-
data in een webpag
e te tonen(via XSL) en aldus ook voor het tonen van RSS data.

De sterke punten van dit product zijn: DWT
-
sjablonen,
de behaviors(JavaScript),
de opbouw van CSS
-
files, het volgen van algemene web
-
standaards, de
gereduceerde prijs.


DWT=dynamic web template
,

hetzelfde formaat als in Dreamweaver!


De werkwijze voor het
aanmaken van CSS
-
files werd ond
ertussen overgenomen in VWD2008!

Dit product is in feite slechts een onderdeel van de nieuwe “expression” reeks (Expression Studio) van Microsoft:

Expresion Blend,

Expression Design(tegenhanger van Adobe Photoshop), Expression Media (visuele media uitwisselen vgl PDF)

Het is hier duidelijk dat Adobe onder vuur ligt.


18

6

Dynamische we
bsites zonder database

6.1

Garage
-
afspraak:

Stuur een mail via een formulier

Inderdaad, d
at kan reeds vanaf de beginjaren van internet met html formulieren(CGI)

We maken
een afspraak met een garagist

en stippen de gevraagde reparaties aan.

Een afspraak op zondag wordt automatisch verplaatst naar maandag.

De kalender
is een voorbeeld van

een
ri
ch web control
. Rijk aan mogelijkheden.

Probeer het eens uit via
http://CTL1204/demo/afspraken3.aspx


Hier de kern:(gelieve aanpassingen te doen ivm smtp op de hogeschool: mail
-
out.hogent.be)

<%@ import N
amespace="System.Net.Mail" %>

<script runat=”server”>

Sub Button1_Click(sender As Object, e As EventArgs)


Dim MailObj As New SmtpClient

‘ook goed: … as
System.net.mail.smtpclient


MailObj.Host = "smtp.pandora
.be" ‘op school wordt dit: mail
-
out
.hogent.be


Dim hulp As String = "Datum:" & Calendar1.SelectedDate & vbCrLf & _


"Werkzaamheden:" & RadioButtonList1.SelectedItem.Text & vbCrLf & _


"NAW gegevens:" & TextBox1.Text


Try

‘gelieve mijn email
-
adres dr je ei
gen email
-
adres te vervangen:


MailObj.
Send
(TextBox2.Text, "denis.de.wachter@pandora.be", "Afspraak met garage via website", hulp)


Catch


End try

Wanneer een surfer een bestelling doet, krijgt hij graag een email bevestiging.

Er b
estaat een andere manier van werken

met emails, vertrekkend van de

“message class”

Deze werkwijze is algemener, laat ook een eventuele bijlage toe en ook
cc(carbon copy):

Zie
http://CTL1204/webwinkel/
cataloog.aspx

(DVD
-
winkel)

Demo:
http://habestage.com/krokus/afspraken.aspx


Je be
komt hierbij een bevestiging met een

mail.







Deze opgave
(garage afspraak)

wor
dt nu stap voor stap uitgewerkt
:

Het is een oefening om te leren werken met het ‘calendar rich web control’
en ook met de .NET Framework class, die het aanmaken van mails moet mogelijk maken

nl.
:
system.net.mail
.smtpclient.

De
namespace

system.net.mail

gaan we importeren in de webpage z
odat de VB.N
ET code eenvoudiger wordt en
zodat IntelliSense ons beter kan helpen.


Start VWD en bepaal een website in d:
\
garage.Vertrek van een nieuwe webpage
afspraken.aspx
.

Tik in design: Afspraak met Garage via mail.Zorg hierbij voor een header

van het

type <h1>.

Dubbelklik op calendar webcontrol.

Bepaal een textbox txtEmail en een tweede txtNAW. De laatste met meerdere lijnen.(zie textmode)

Bepaal een
radiobuttonlist
en zorg voor de items:Groot Onderhoud,Klein onderhoud,Keuring met text en value
telkens

dezelfde waarde.De eerste keuze moet standaard geselecteerd zijn!

Bepaal btnZend

knop.

Zorg ervoor dat, via een
regular expression validator
, het formaat van txtEmail juist is.

Selecteer nu calendar1 en b
ij de properties zoek je naar een juiste
event
-

h
andler
: we gebruiken hier de
SelectionChanged, met de VB.NET code:


If

Calendar1.SelectedDate.DayOfWeek = DayOfWeek.Sunday
Then

'zondag wordt maandag


Calendar1.SelectedDate = Calendar1.SelectedDate.AddDays(1)