Lauritz Jensen har flere gange hintet efter, om ikke vi skulle have en
FAQ/OSS for gruppen. Det synes jeg er en rigtig god idé, men da han
skrev det, tænkte jeg, at det ville være for billigt bare at svare
Hørt! Hørt!, da det jo ikke er mig som nybegynder, der skal lave
arbejdet.
Men da jeg efter et par måneder med ASP måske er en af dem, der har
begynder-problemerne tæt inde på livet, tænkte jeg, at jeg måske kunne
bidrage med lidt "begynder-erfaringer".
Det skal ikke foregive at være den eviggyldige sandhed - og det skulle
heller ikke undre mig, om der både er fejl og uhensigtsmæssigheder,
men her er i hvert lidt at starte på.
Rettelser og tilføjelser er *meget* velkomne.
Hvis det kan hjælpe nogen er jeg glad. Og hvis det kan skubbe lidt på
FAQ-projektet er jeg næsten lykkelig ;)
Jeg har delt det op således:
1) Start med en god Tutorial
2) ASP-problemer er ofte ikke ASP-problemer
3) Kig de erfarne over skulderen
4) Et par praktiske hints
5) Der er masser af web-sider om ASP
1) Start med en god Tutorial
****************************
Jeg har selv fået meget ud af den på
<URL: http://html.dk/tutorials/asp/default.asp>
- prøv selv eksemplerne af. Lav nogle variationer, så du får lidt
føling med, hvad du kan, og hvad du ikke kan.
Microsofts kortfattede tutorial findes her:
<URL: http://msdn.microsoft.com/workshop/server/asp/asptutorial.asp>
2) ASP-problemer er ofte ikke ASP-problemer
*******************************************
De fleste begynder-problemer med ASP hænger oftest ikke sammen med
ASP, men med de "værktøjer", som ASP bruger - fx:
* script-sproget (oftest VBScript, måske JavaScript)
* databasen (for begyndere oftest MS Access)
* SQL
* HTML/CSS
- så brug hjælp/dokumentation til disse ting.
HTML/CSS vil jeg ikke kommentere. Der findes mængder af indføringer
rundt omkring - fx på html.dk.
Dog lige én kommentar: Den HTML man laver på ASP-sider bør ikke være
ringere, end hvis når laver "rene" HTML_sider. Der er nok en tendens
til at ASP-sider bliver erklæret færdige, når den datamæssige del er i
orden. Brug lige lidt ekstra tid på at få HTML'en helt på plads. Og er
du i tvivl, så brug en validator. Den bedste findes på W3C:
<URL: http://validator.w3.org/>
JavaScript har jeg ingen erfaringer med, så det vil jeg overlade til
andre at kommentere.
VB Script
---------
Hent VBScript 5.5 Documentation:
<URL:
http://msdn.microsoft.com/scripting/default.htm?/scripting/vbScript/download/vbsdown.htm>
- den er i Windows' kompileret HTML-format (.chm)
Jeg har den stort set altid åben, når jeg laver ASP - både til at
sikre korrekt syntaks, men også til at lede efter den "rigtige"
funktion i den alfabetiske liste.
Eller brug den online:
<URL:
http://msdn.microsoft.com/scripting/default.htm?/scripting/vbscript/techinfo/vbsdocs.htm>
- eller:
<URL: http://html.dk/dokumentation/vbscript/html-vss/vbstoc.htm>
(som jeg dog ikke kan få til at virke i Opera 5??)
MS Access
---------
Det absolut vigtigste hjælpeværktøj er F1-hjælpen. Den kan virke
voldsom (jeg ved ikke hvor mange tusinde bogsider, den ville svare
til) og uoverskuelig, men det kan sagtens betale sig at bruge et par
timer på at gøre sig lidt mere dus med den. Den er et uundværligt
opslagsværk.
Access har sin egen nyhedsgruppe:
<URL: news://dk.edb.database.ms-access>
SQL
---
En udmærket tutorial på én HTML-side (ca 90 kB):
<URL: http://w3.one.net/~jhoffman/sqltut.htm>
- har masser af links til andre nyttige sider
Findes også i PDF-format:
<URL: http://www.highcroft.com/highcroft/sql_intro.pdf>
Derudover indeholder MS Access' Online Hjælp også en grundig intro til
SQL.
NB: Vær opmærksom på, at SQL finde i flere "dialekter". Selv om
strukturen er den samme, er der mindre variationer fra program til
program. Og ikke alt kan lade sig gøre i alle programmer!
3) Kig de erfarne over skulderen
********************************
- eller: Stjæl med arme og ben!
Det er en stor fordel at kigge nogle scripts igennem. Både for at lære
nogle "tricks", men også for at lære lidt om, hvordan man gør scripts
læsbare (for andre - eller for sig selv om 2 måneder, når man lige
skal have rettet et eller andet).
Se nogle af linksene nederst.
Disclaimer til "Stjæl med arme og ben": Nogle scripts, man støder på,
har copyright, og det skal man naturligvis respektere. Det betyder dog
ikke, at man ikke kan lade sig inspirere af, hvordan andre har gjort.
4) Et par praktiske hints
*************************
Alle (næsten) går på et tidspunkt i stå med et problem, som man ikke
kan løse. Og så har vi jo Usenet/News/nyhedsgrupperne. Brug dem.
Men inden du spørger, er der nogle ting du kan gøre for at checke om
det bare er en detalje, du har overset:
a) Brug fejlmeddelelserne
-------------------------
ASP leverer oftest nogle meget nyttige fejlmeddelelser, hvis ens
script ikke fungerer.
Er der tale om syntaks-fejl, får man oftest serveret på et sølvfad på
nøjagtig hvilken linie, det går galt!
Brug dem.
Nogle (ret få) fejlmeddelelser kan være lidt mere kryptiske, men dem
lærer du hurtigt ved at følge med i nyhedsgruppen - eller ved egen
erfaring.
b) Indgræns dit problem
-----------------------
ASP-scripts afvikles ovenfra og ned. Og formentlig er dit script delt
op i afgrænsede "små-scripts", som udfører hver sin del af arbejdet.
Når du skal fejlsøge i dit script, så tag hver del for sig og
undersøg, om den faktisk leverer det resultat, du forventer.
Bruger du en funktion eller en script-stump, som du ikke er helt dus
med, så test den af for sig selv, inden du kæder den sammen med
resten.
På den måde undgår du at skulle gætte på, hvilken af dine 37 variable,
der nu ikke opfører dig, som du ønsker.
Et andet godt værktøj til at indgrænse fejl er Reponse.Write
c) Brug Response.Write
----------------------
Reponse.Write er uundværlig, hvis man skal teste, hvor i scriptet det
går galt. Den kan nemlig bruges til at udskrive værdien af en variabel
på et vilkårligt sted i scriptet.
Det gøres nemmest ved at indsætte et par linier efter den del, du vil
undersøge:
Response.Write var1
Response.Write var2
Response.End
Disse linier udskriver værdien af de to variable, var1 og var2, på det
sted, hvor du indsætter linierne, og stopper udførelsen af resten af
scriptet.
Hvis det ser rigtigt ud, så hop videre til næste del - men lad være
med at slette de første linier. Lad dem blive stående som kommentarer:
' Response.Write var1
' Response.Write var2
' Response.End
- så er de nemme at aktivere igen, hvis du skulle få brug for det. Du
kan så rydde op, når alt fungerer.
(Hvis man skal have mange variable udskrevet kan det godt betale sig
at pynte lidt:
Response.Write "var1: " & var1 & "<br>" & vbcrlf
Response.Write "var2: " & var2 & "<br>" & vbcrlf
Response.End
- så bliver udskriften mere læselig.)
** Specielt er det ofte nyttigt at udskrive sin
** SQL-streng - den er årsag til *mange* fejl ;-)
** Skriv:
** Response.Write strSQL
** Response.End
** umiddelbart efter du har dannet SQL-strengen.
** Så vil fejlen ofte stå bøjet i neon :)
d) Brug Option Explicit
-----------------------
Det er god programmeringsskik at "erklære sine variable" - meget gerne
med en kort forklaring på, hvad de bruges til.
Det gøres med:
Dim var1, var2 '-- bruges til whatever
Hvis man så samtidig placerer
<% Option Explicit %>
øverst i sit script, vil man få en fejl meddelelse, hvis der er brugt
en variabel, som ikke er erklæret (eller hvis den er erklæret flere
gange).
Option Explicit fanger fejl, hvis man fx er kommet til at stave en
variabel forkert. Men det hjælper også med til at bevare overblikket
over hvilke variable, man "har i spil", når man fx skal fejlfinde.
e) Brug rigeligt med kommentarer
--------------------------------
Kommentér dit script undervejs. Det hjælper dig til at bevare
overblikket. Og det hjælper, når du (eller en anden) senere skal ændre
i scriptet - og hvor det der forekom logisk og ligetil, da du skrev
det, i mellemtiden er blevet det rene volapyk.
Kommentér når:
- du erklærer variable
- starter (og slutter) en ny funktion (hvad enten det så er en
egentlig funktion eller blot en selvstændig script-stump)
- når du trækker resultater ud
- og når det ellers virker naturligt (hvis du fx har lavet din egen
smarte løsning på et problem).
f) Check din HTML-source
------------------------
Ofte kan man finde sin fejl ved blot at kigge i HTML-sourcen i
browseren.
Der er måske smuttet et anførselstegn eller et &, som cutter en
variabel af, og som afslører sig i HTML-kildekoden.
5) Der er masser af web-sider om ASP
************************************
Når du er kommet igennem en tutorial eller to, kan du finde svar på
(stort set) alt det andet på www.
Jeg vil kun nævne et par links, som jeg har brugt en del. Andre må
tilføje deres favoritter.
Alle de nævnte har dog tilsammen links til alt hvad der er værd at
vide om ASP.
* Learn ASP
<URL: http://www.learnasp.com/learn/>
Har svar på mange af de problemer, man som begynder støder på.
Fornuftigt struktureret - dog er der et par huller, som mangler at
blive fyldt ud.
* ASPFAQs.com
<URL: http://www.aspfaqs.com/ASPFAQS/>
En lang række af "Ofte stillede spørgsmål", hvor man ofte kan få svar
på sit begynder-problem.
Siderne er lavet af:
* 4 Guys From Rolla
<URL: http://www.4guysfromrolla.com/>
- som bl.a. har nogle "ASP Coding Tips":
<URL: http://www.4guysfromrolla.com/webtech/top10/>
* ASP 101
<URL: http://www.asp101.com/samples/index.asp>
Nydeligt og overksueligt design. Masser af eksempler. Emne-opdelte
diskussions-fora med 10.000-vis af indlæg.
Et par af de danske har også nogle udmærkede artikler, men der er
oftest ikke meget, man ikke kan få bedre på de udenlandske. Dog er
diskussionsforummet (spørgsmål-svar) ind imellem til gavn for
begyndere.
Har man det lidt svært med for meget engelsk, er de dog uundværlige.
Et par af dem:
* ActiveServerPages.dk
<URL: http://www.activeserverpages.dk/>
Nok det bedste danske ASP-site. Overskueligt design og mange gode
artikler. Diskussionsforum med *mange* indlæg.
* www.asp.dk
<URL: http://www.asp.dk/technology.asp?tech_id=1>
- er egentlig en afdeling af Netcoders:
<URL: http://netcoders.dk/>
Lider noget under alt for meget clientside JavaScript, som de ikke har
helt styr på.
* Experten.dk
<URL: http://www.eksperten.dk/kategori/3>
- et spørgsmål-svar forum, hvor man tjener points ved at svare.
Pointene kan man så sætte på højkant, hvis man skal have løst et
problem.
* Teknologisk Instituts Access/SQL Server-brugergruppe
<URL:
http://www.cit.teknologisk.dk/brugergrupper/accesserfa/videnbase/default.asp>
Har ikke så meget, men er lidt anderledes end "de sædvanlige".
Som sagt:
Rettelser og tilføjelser er *meget* velkomne.
Mvh. Jørn
--
Jørn Andersen
Brønshøj
Der findes faktisk en udmærket ASP faq til microsofts asp grupper,
<http://www.aspfaq.com>
> De fleste begynder-problemer med ASP hænger oftest ikke sammen med
> ASP, men med de "værktøjer", som ASP bruger - fx:
> * script-sproget (oftest VBScript, måske JavaScript)
> * databasen (for begyndere oftest MS Access)
> * SQL
> * HTML/CSS
> - så brug hjælp/dokumentation til disse ting.
Og ikke mindst ADO(X)
> JavaScript har jeg ingen erfaringer med, så det vil jeg overlade til
> andre at kommentere.
Den i forvejen implementerede Javascript engine i IIS er faktisk ikke
Javascript men microsofts "kopi" Jscript som dokumentationen findes til her:
<http://msdn.microsoft.com/scripting/jscript/>, forskellen på at skrive i
VBScript og JScript kan ikke lige ridses kort op. Men en af de væsentligste
detaljer er at JScript måske for nogle af os vil virke som et mere
"autentisk" sprog da det f.eks. er Casesensitive (forskel på store og små
tegn.). Dvs at "VARIABEL" og "variabel" kan være to forkellige
variebelnavne.
Derudover har JScript en opbygning der mere minder om det nogen måske kender
fra C(++),Java og Perl. Det skal dog nævnes her at ASP også kan skrives i
Perlscript, se <http://www.activestate.com> for mere info.
Det kan godt lade sig gøre at "mixe" flere forskellige scripting sprog i ASP
vha. script blokke som denne:
<script runat="server" language="Jscript">
'Pi udskrives vha. Math objektets PI property.
Respone.write Math.PI
</script>
<script runat="server" language="vbscript">
Respone.write 4*Atn(1)
</script>
Der er ofte en stor ulempe ved at skrive i JScript. Nemlig at hovedparten af
de eksempler der er tilgængelige på nettet er skrevet i VBScript og det
samme gælder om de bøger der er på markedet.
> ASP leverer oftest nogle meget nyttige fejlmeddelelser, hvis ens
> script ikke fungerer.
Her skal lige indkydes at man hvis man bruger IE skal have slået friendly
http errors fra i
Tools -> Internet Options -> Advanced
Eller vil man få en intetsigende fejlmneddelelse uden linienummer.
> d) Brug Option Explicit
Burde stå under VBScript
> 5) Der er masser af web-sider om ASP
25 tips om hvad man skal undgå/huske i ASP:
<http://msdn.microsoft.com/workshop/server/asp/ASPtips.asp>
SQL server brugere kan have god nytte af SQL server Books online
<http://msdn.microsoft.com/library/psdk/sql/getstart_4fht.htm>
Genial SQLside med gode eksemplet på stored procedures osv:
<http://www.sqlteam.com/>
Oversigt over ADO objekterne:
<http://msdn.microsoft.com/library/psdk/dasdk/mdao2of9.htm>
Generel ADO introduktion:
<http://msdn.microsoft.com/library/psdk/dasdk/pg_i3gf9.htm>
Oversigt over ASPs built in objects:
<http://msdn.microsoft.com/library/psdk/iisref/vbob74bw.htm>
Og husk før man spørger i her i gruppen kan det være en fordel at søge i de
gamle indlæg evt. vha. <http://groups.google.com> eller
<http://www.html.dk/nyhedsgrupper/dk_edb_internet_webdesign_serverside_asp/>
PS: Jeg lægger med glæde Webplads til rådighed til FAQ.
--
Jakob Andersen
FAQ for webdesign gruppen på
<http://www.usenet.dk/oss/dk.edb.internet.webdesign>
"Det er rart at være vigtig, men det er vigtigere at være rar :-)"
Dette er mere en "sådan kommer du igang med asp" end en faq og så findes
der en del af dem.
Jeg tror, jeg mere tænkte på en "Ting du *skal* vide inden du starter på
dit første asp script" (altså noget om (sql-/url-/html-indkodning, ...),
sikkerhed, performance, ...), men det er jo egentlig heller ikke en faq.
Den type tekst har jeg ikke fundet på nettet. I "sådan kommer du
igang"-teksterne springes der jo ofte hen over nogle vigtige detaljer
(såsom sikkerhed), da de ikke er så "hippe", og hvis folk lære alt fra
"sådan kommer du igang"-teksterne, lære de aldrig de vigtige, men ikke
så flashy, ting.
--
Lauritz
>Dette er mere en "sådan kommer du igang med asp" end en faq og så findes
>der en del af dem.
Det har du såmænd ret i.
Men alligevel tager den udgangspunkt i hvad folk kan gøre, inden de
stiller disse f.a.q. - så at mange spørgsmål kunne være blevet løst af
folk selv.
>Jeg tror, jeg mere tænkte på en "Ting du *skal* vide inden du starter på
>dit første asp script" (altså noget om (sql-/url-/html-indkodning, ...),
>sikkerhed, performance, ...), men det er jo egentlig heller ikke en faq.
>Den type tekst har jeg ikke fundet på nettet.
Er det ikke nærmere en "Ting jeg ville ønske jeg havde vidst, men som
selv om jeg havde vidst det, havde jeg nok alligevel ikke forstået
det", du tænker på ;-)
Jeg mener: Fra mit eget fag kender jeg godt følelsen af at man
efterhånden som man får noget erfaring også opnår en erkendelse, som
man gerne ville give videre til de mere uerfarne.
Imidlertid er problemet ofte, at det er meget svært, fordi det netop
kræver en vis erfaring med "hvad der kan gå galt" osv., før man
egentlig er dybt nok motiveret til at tage imod 'erfaringens visdom'.
Dette skal absolut ikke forstås som en afvisning - tværtimod: Det
ville være guld værd for folk, der har prøvet at falde i nogle huller.
Men det er nok lidt mere ambitiøst, end det ser ud til på overfladen.
I første omgang tror jeg en forholdsvis traditionel FAQ er mere
overkommelig.
Men hvis du - eller andre - har mod på at være drivkraft i et mere
ambitiøst projekt, skal jeg nok love at lytte ;-)
>I "sådan kommer du
>igang"-teksterne springes der jo ofte hen over nogle vigtige detaljer
>(såsom sikkerhed), da de ikke er så "hippe", og hvis folk lære alt fra
>"sådan kommer du igang"-teksterne, lære de aldrig de vigtige, men ikke
>så flashy, ting.
Helt enig.
Jeg tror nok, at det jeg havde i tankerne, da jeg skrev mit indlæg,
var noget i retning af et mindre tillæg til den tutorial, der findes
på html.dk - altså de huller, jeg med min begrænsede erfaring havde
fundet.
Måske er en traditionel faq slet ikke så dårligt et udgangspunkt for
at komme videre, hvis man tager lidt argumentation med. Fx når der
findes flere løsninger på et eller andet problem, hvorfor er den ene
så bedre end den anden (fx mht. sikkerhed, hastighed,
serverbelastning, whatever). Så kan man evt. efterhånden udbygge dette
FAQ-baggrundsmateriale. Jeg er lidt nervøs for at slå meget ambitiøse
brød op, hvis de ender med at ligge i en skrivebordsskuffe.
Men lad os få gang i diskussionen.