03. august 2005 - 19:41Der er
29 kommentarer og 1 løsning
newbie spørgsmål
Hey
Jeg er sprit ny i .net og prøver mig nu frem som en "sølle start" på html.dk Første ting jeg lægger mærke til er at der autogenereres en masse kode. Der kommer både en masse hidden felter og også javascript kode Jeg gætter på at det har noget med at serveren den vej igennem kan huske nogle ting? Nå men mit første spørgsmål går på validering Hvis jeg ikke kan styre hvad serveren spytter ud af kode, hvordan kan jeg så sikre mig at det kan validere i de doctyper jeg ønsker at benytte? Hvad mere end et par hidden felter og lidt javascript kode kan jeg risikere at serveren spytter ud af sig selv? En anden ting der undrer mig er om der ved kodning i .net er forskel fra browser til browser? Hvis jeg i denne lektion http://www.html.dk/tutorials/aspnet/lektion4.asp vælger det her eksempel http://www.html.dk/tutorials/aspnet/lektion4_eks1.aspx Det er en knap man klikker på og så skulle den gerne skifte farve I IE skifter den fint farve og et kig i kildekoden viser en style på baggrundsfarven I FF skifter den ikke farve og et kig i kildekoden viser ikke nogen style Umiddelbart ville jeg have troet at FF kiksede pga manglende doctype i eksemplet, men når kildekoden slet ikke indeholder stylen så må det jo være fordi serveren ikke sender den med Men hvorfor skulle den ikke gøre det bare fordi det er FF ?
Det er muligt det er total newbie spørgsmål. Men de er rare at få svar på inden jeg begiver mig videre :o)
Virksomheder er på vej fra store sprogmodeller, der svarer på spørgsmål, til AI-agenter, der kan udføre opgaver på egen hånd. Det gør teknologien mere nyttig – og langt mere risikabel.
hovsa, som tillæg til det første med den ekstra javascript kode Vil det sige at man _kun_ skal kode .net med henblik på klienter som har javascript enabled?
Du kan konfigurere dig ud af hvilken kode der genereres til de enkelte browsere. Det er lavet så smart (uden at have dybere indsigt i hvordan det rent faktisk er implementeret), at ASP.NET kan generere kode til den platform som klienten nu engang kører på, dvs. hvis det er en IE 4+ så kan den generere kode til den og hvis det en anden browser kan den generere kode til det (som udgangspunkt tror jeg faktisk den er konfigureret til at generere HTML 3.2 hvis klienten ikke er IE 4+, men det er jeg ikke helt sikker på om er korrekt).
På samme måde vil jeg tro at serveren genererer kode som understøtter browsere uden javascript-understøttelse hvis browseren ikke understøtter det, men igen ikke helt sikker. Har du prøvet at slå javascript fra i en browser og surfe ind på den side du benytter. Dette kommer naturligvis ikke af sig selv hvis du selv begynder at lave webcontrols osv. selv, så skal du naturligvis tage hånd om dette, men jeg mener at mange af de medfølgende webcontrols kan dette...
.NET er optimeret til Internet Explorer, Mr. cronberg (forfatteren af din tutorial) er heller ikke så glad for valid kode/doctypes.
Hvis man nøjes med at bruge .NET til serverside udvikling, og istedet lade javascript gøre clientside ting, så er det ikke så slemt igen.
Mht. eksemplet: Hvis man istedet lavede så .NET ændrede en HTML eller CSS værdi, for baggrundsfarven, så ville problemet være løst. Javascript ville også kunne gøre det , kan dog ikke huske hvordan.
1) Jeg kan se det smarte i at .net gør en masse ting for en 2) Jeg kan se det dårlige i at .net gør en masse ting for en ---- Jeg har fx ikke været glad for at bruge frontpage, fordi man ikke kan styre hvad der kommer ud af det i kildekoden Jeg kan se det smarte i OOD - det er genialt Men hvis man risikerer at få "slam kode", hvad er der så vundet? Jeg prøver at opveje fordele og ulemper
softspot >> hvis jeg slår javascript fra så laver den stadig en javascript postback funktion, som så ikke virker, hvorved det simple script som skulle kopiere tekst fra en boks til en anden ikke virker
De ting som gøres for dig er for mig at se nødvendige for at du kan få den funktionalitet med postback og herunder serverevents, så det tror jeg ikke du kan komme omkring, med mindre du vil give køb på den funktionalitet. Ydermere er der viewstate-feltet som holder på dine kontrollers tilstande så formdata overlever et postback til serveren, men dem kan du slå fra hvis du selv vil gøre det beskidte arbejde hvad angår formstate eller bare ikke har brug for det.
Nej, men det ville vel heller ikke fungere, hvis det ikke havde været .NET, så det ændrer vel ikke noget... eller misforstår jeg noget af det du siger?
Normalt i asp ville jeg lave en form som havde samme side som action På den side ville jeg lave et tjek på request.form og rette felterne Piece of cake -- som jeg ser det i .net Så gemmer den ekstra input felter, viewstate.. til hvad? i asp behøvede jeg jo ikke nogen ekstra felter. Den laver en javascript funktion, til hvad? i asp kunne jeg hive det ind med request.form -- Men måske misforstår jeg ideen med .net? Måske er ideen at man kan få et fancy program som klarer kodningen for en, ligesom dreamveawer mm. Og hvis man så ønsker at lave noget specielt så må man håndkode det alligevel
softspot, jeg tror der skal forsøges at sammenlignes med f.eks. PHP5, som også er fuldt OO websprog, men ikke påvirker browseren på nogen som helst måde, da det KUN laver serverside operation, og ikke ½server/½client som .NET i visse tilfælde.
"Måske er ideen at man kan få et fancy program som klarer kodningen for en, ligesom dreamveawer mm. Og hvis man så ønsker at lave noget specielt så må man håndkode det alligevel"
Visual Studio .NET, dog producere det KUN ikke-valid kode, som tit vil retunere i fejl i Firefox og lign.
Men du kan da gøre det nøjagtige sammen i ASP.NET som alm. ASP, ihvertfald på de punker hvor jeg har prøvet at kode det. Jeg ved at det er muligt at lave .NET kode som virker i Firefox, da jeg ikke rigtig bryder mig om at kode andet.
det er jo bare et tjek, så gør den et hvis det er det ene og noget andet hvis det er noget andet Det er for så vidt fint nok --- Måske er det bare mig som er vant til at jeg gerne vil have helt tjek på html delen og gøre den pæn og valid. --- PHP5 hvad kan det så i forhold til .net? Jeg synes bare alle snakker om man skal gå fra php og asp over til .net Måske fordi man kan genbruge sin kode i andre applikationer Kan man så også det med PHP5 ? eller hvad går den ud på?
PHP5 indeholder et mere OO miljø, f.eks. har vi fået PPP(public/private/protected) , exceptions og meget andet sjov, ink. DB2 support (Tak IBM). Hvilket gør det meget bedre at lave store OOP projekter i, og mere stilrent end før, da det også er mere striks mht. kode. Og så er der jo også XSL support, men her bliver min pep-talk vist lidt for lang.
Jeg vil dog sige:
ASP -> ASP.NET ASP -> PHP4 -> PHP5 PHP -> PHP5
^^ -> JSP (ownage sprog, men utrolig svært)
.NET er fint nok, specielt fordi det er bygget til at håntere mange ting så smart, og C# f.eks. kan bruges til applications, men til websider er sprogene ens, og der er ikke meget andet en features/syntaks grund til at skifte (personligt kan jeg ikke udstå VB-syntaks)
Men hvis du er tidligere ASP programmør, vil jeg da kraftigt anbefale .NET, hvis du samtidlig gider overhovede diverse w3c-anbefalinger omkring HTML og CSS.
Men nu er jeg vist kommet ud på et sidespor, og er ikke teknisk kyndig til at fortsætte med problemet (asp.net som giver javascript, er det vel lige nu) , så jeg smutter tilbage til arbejde/cola.
Jeg tror ikke der er noget problem i at have script-blokke i body-sektionen (og dermed heller ikke i en form-sektion).
Ja, man kan da godt trække værdier ud af felter via Request.Form, men det behøver du jo ikke med .NET for det gør den for dig. Du skal bare koncentrere dig om at lave den kode der er behov for når brugeren trykker på den der knap - ikke ret meget andet. Det være sagt, så kan det også have nogle alvorlige konsekvenser for belastningen af din server hvis du ikke forstår at bruge postback rigtigt, men det er igen en balance mellem god kodeskik og en forståelse af det værktøj man mellem fingrene.
Jeg er enig i at man naturligvis kan det samme i ASP.NET som man kan med ASP. Ud over det kan man også lave bedre kode, dels hvad angår vedligeholdelsesvenlighed, overskuelighed, kompleksitet, performance, osv. (det kræver dog stadig disciplin at lave god kode - det gør .NET ikke for en), dels den objektorienterede mulighed - men det er som there-is-only-xul påpeger, så kan man jo også dette i PHP.
ok men jeg takker nu alligevel Jeg kan mest asp, og en pæn sjat php. Jeg kan masser af programmeringssprog. Så om syntaksen er den ene eller anden, ja, det generer mig ikke rigtig andet end man engang imellem skriver forkert ;o) Så derfor kan jeg da godt komme i tvivl om jeg skulle benytte PHP5 eller .net da jeg ikke rigtig kender noget til hverken det ene eller andet endnu
Men ja lige nu der undrer det mig at den spytter "tilfældig" kode ud. Men måske jeg skulle låne en bog istedet for at se på net guider
softspot >> jo men så kommer det jo an på ens definition af god kode, koden fejler intet, men jeg synes så det er "grimt" at den placerer javascriptet hvor den gør. Men sådan er det vel. Jeg prøver liget at lege lidt mere med det og ser hvad der sker
Ja, klart nok. Jeg ville da også fortrække at scriptkoden lå i toppen af det resulterende HTML, men når alt kommer til alt, så er det ikke det kode .NET spytter ud jeg skal vedligeholde, det er den der ligger i mine sourcefiler - og dem har du rimelig god mulighed for at styre udseendet af :)
Det er rigtig, jeg blev bare nervøs for om jeg så kan stole på at .net spytter valid kode ud. Jeg har en følelse af at alt der har med M$ at gøre ikke altid er lige heldigt i de henseender :o/ ... men måske jeg bare skal vænne mig til at det er sådan det foregår og så lave nogle større forsøg og se om det går godt
Har du nogen erfaring med validering af dine sider?
Jeg plejer at lave en side og teste den i de nyeste browserversioner IE, NS, Mozilla, FireFox og Opera - og hvis de fungerer der er jeg faktisk lidt ligeglad med at de ikke validerer. Det der er vigtigst for mig er at de fleste kan se det jeg laver ikke om det overholder en bunke standarder. Det er sikkert mig der er galt afmarcheret, men når kunden skal betale, vil de typisk gerne have et funktionelt produkt, frem for et produkt der overholder standarder - min opfattelse (naturligvis).
nå jeg lader det være ved det tror jeg Det eneste er det link jeg gav oprindeligt, hvor en knap enten bliver hvid eller rød afhængig af om tidens sekund er lige eller ulige Dette sættes med Button1.BackColor = System.Drawing.Color.Red; I IE kommer der en style på knappen når man ser kildekoden Denne style kommer ikke i FF Så mit endelige slut spørgsmål må vel så være Hvorfor kommer denne style ikke i FF Jeg er med på som tidligere kommenteret at jeg kan kode mig ud af det på normal vis i javascript Men lige netop der ser jeg jo fidusen i at asp.net åbner op for at man ikke skal tænke over tingene. Man skal blot sætte "BackColor" så klarer serveren resten Men BackColor kan jo sættes på mange ting --- Hvad er erfaringen så? Hvis jeg ikke kan stole på BackColor, kan jeg så heller ikke stole på Height og Width osv osv ?
Det er fordi ASP.NET betragter alt andet en IE for downlevelbrowsere pr. default og det betyder bla. at CSS ikke understøttes, derfor får du ikke background-color på din knap (hvorfor den så ikke genererer en bgcolor-attribut er jo så et godt spørgsmål).
i første link står der --- By default, the ASP.NET page framework determines browser capabilities by reading the user-agent information passed from the browser to the server during a request. --- Jvnf et spørgsmål jeg oprettede herinde for nyligt så kan man selv definere sin user-agent, der er ingen regler for hvordan user-agents ser ud, ergo kan man ikke entydigt bestemme hvad for en user-agent der benyttes, med andre ord kan man så ikke stole på at asp.net giver en brugbar kode --- nå jeg vil læse lidt om hvordan man kan omgå det og tror i øvrigt hellere jeg må læse lidt mere om .net
aller sidste ting Har du erfaring med hvad der sker hvis man ændrer doctypen ? eller bør man slet ikke indtaste en doctype?
Og så bare smid et svar ...takker for tålmodigheden :o)
Det er min opfattelse at doctypen har ligeså stor indflydelse på renderingen af HTML, CSS osv. som den altid har haft (det er vel noget som browseren forholder sig til og ikke .NET, der jo kører på serveren).
Jeg tror det er svært at lave en direkte sammenligning mellem ASP og ASP.NET fordi man gør tingene på en helt anderledes måde (hvis man vil udnytte de faciliteter som .NET stiller til rådighed). Jeg føler ikke selv jeg er nået længere med .NET end at jeg har kradset i overfladen (jeg har da været igang i næsten 2 år nu), så derfor kan jeg da kun anbefale at du læser og læser og læser - for jeg synes der er så meget man skal og kan lære inden .NET rykker for alvor. Jeg kan blot ønske god fornøjelse, for jeg er sikker på at når du får hægtet dig fast i den grundlæggende idé med .NET, så er der mange ting som er væsentlig bedre ved .NET end ASP.
Behold bare points - jeg synes ikke jeg formåede at give dig tilfredsstillende svar på nogle af dine spørgsmål - og så vil jeg ikke tage point for det. Ellers tak for budet :)
jeg tænker bare at hvis man laver en strict doctype, ja fx i xhtml hvis det var det man ville, så vidt jeg ser det så spytter asp.net html4 ud, og ja så konflikter det jo Men jeg må prøve mig frem med lidt større eksempler tror jeg
Bortset fra det så har jeg allerede set store fordele i hvordan man kan dels lave klasser men seperate filer, og nemt lave dem til dll´s osv. Det er smart og det er umiddelbart tusse nemt :o)
Jeg beholder points, så kommer jeg på banen når jeg har prøvet lidt mere igen Tak for hjælpen so far
HEP! Jeg har fundet en metode til at tvinge .NET til at sende uplevel-kode til klienten (herunder CSS- og javascript-kode). Foreløbig er der tale om en lokal parameter som sættes på den enkelte side, men det er da en start :)
Man skal i @Page-direktivet angive en attribut som hedder ClientTarget="ie5", så vil Netscape 7.2 (som jeg har testet med i dette tilfælde) også benytte CSS til at sætte baggrundsfarven med. Ulempen ved dette er naturligvis at selvom browseren ikke understøtter CSS, så kommer det altså med (på den anden side, så er det vel ikke nogen skal til).
Yes den så jeg på de links du gav :o) Jeg undrede mig over man ikke kan sætte fx ie6, for ie5 er da "gammel" Men ja det virker De sider jeg laver regner jeg ikke med at nogen uden css skal se Jeg tror i øvrigt at det er et fåtal som ikke benytter css eller javascript Måske diverse søgemaskiners webcrawlere har det slået fra, men det gør mig intet
Har du så også set at man kan sætte browserCaps (browser capabilities) i web.config (og andre configurationsfiler på et mere glabalt plan), så du kan angive mere præcist hvad den enkelte browser eller gruppe af browsere understøtter.
ja jeg har lige "skippet det" ;o) Det virker som om der er meget at læse og lære, så tager det et skridt ad gangen :o)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.