Heips, tein joutessani materiaalia ASP.NET:n Razorista. Kommentteja, parannusehdotuksia?
No ainakin mielestäni on asiavirheitä jokin verran.
Yleisesti ottaen mielestäni voisi olla sivun otsikkonakin ASP.Net MVC Razor tutoriaali, eikä vain ASP.Net tutoriaali.
Sivu 1. "Muistuttaa PHP:tä."
No tämä nyt on tietysti jossain määrin mielipideasia, mutta vahvasti tyypitetyt muuttujat, täysi tuki unicodelle, yms.. Toki kaikki ohjelmointikielet muistuttaa enemmän tai vähemmän toisiaan, mutta PHP nyt ei minulle tulisi lähellekään ekaksi mieleen ASP.Netistä tai edes ASP.Net MVC Razorista.
Sivu 2. "ASP.NET:ssä voit kirjoittaa puhdasta HTML-koodia suoraan @{} sisälle. PHP:ssä joutuu käyttämään echoa, jos haluaa kirjoittaa HTML:ää <?php ?> sisään!"
Jos PHP:ssä on short tagit päällä, niin voi käyttää ihan samalla tavalla <?= $muutuja ?>
Sivu 3. "double Desimaaliluvut;"
Desimaalilukutyyppi on decimal ja double sen sijaan on liukuluku.
Näitä ei todellakaan saisi sekoittaa sillä double <-> decimal ero on samaa luokkaa kuin decimal <-> int.
Sivu 4. Otsikko "Switch Else"...
Pitäisi olla ehkä jotain tyyliin switch case default
Sivu 5. "IsPost: Tarkistaa onko Submit-nappia painettu".
Ei vaan onko palvelimelle tullut pyyntö Post -tyyppinen.
Lomakkeen voi tehdä myös Get-tyyppisenä, jolloin submit painiketta painettaessa IsPost on false ja vastaavasti Post-lomakkeen voi lähettää myös muuten kuin submit-nappia painamalla, eli esim. post lomake lähetettynä jossain selaimissa enteriä painamalla antaa ispost=true vaikka submit-nappia ei ole painettu.
Mahtavaa! Kiitoksia palautteesta! Yritän parsia materiaalia parempaan kuosiin antamasi palautteen perusteella.
ps. Kun sanoin, että ASP.NET muistuttaa PHP:tä tarkoitin lähinnä sitä, että sitä käytetään samaan tarkoitukseen kuin PHP:tä. Molemmat käännetään palvelimilla puhtaaksi HTML:ksi ym. Tiedän, että niiden koodipohjat ovat kuitenkin aivan erinlaiset.
Grez kirjoitti:
esim. post lomake lähetettynä jossain selaimissa enteriä painamalla antaa ispost=true vaikka submit-nappia ei ole painettu.
Esimerkki on sikäli vähän epäonnistunut, että monissa selaimissa tuo enter tekee täsmälleen saman kuin lomakkeen ensimmäinen submit-nappi eli lähettää myös kyseisen napin nimen ja arvon. Kiistatta ilman nappia lähtevät esimerkiksi monet AJAX-pyynnöt.
ASP on paljon muutakin kuin cshtml -ohjelmointia.
Kannattaisi koko oppaasi nimetä uudelleen asp/razor -oppaaksi, eikä jättää ASP.net oppaaksi.
Metabolix kirjoitti:
...
Olennaisesti pointtini oli kuitenkin että IsPost ei kerro yhtään mitään siitä, painettiinko submitia vai ei. Mainitsemasi seikka vain kertoo, että submitin painamisen tunnistaminen serveripäässä on jopa vieläkin vaikeampaa.
groovyb kirjoitti:
ASP on paljon muutakin kuin cshtml -ohjelmointia.
Kannattaisi koko oppaasi nimetä uudelleen asp/razor -oppaaksi, eikä jättää ASP.net oppaaksi.
Mjuu totta. Etusivulla lukeekin, että oppaassa keskitytään ainoastaan Razoriin ja jätetään MVC ja Web Formit vain lyhyiksi maininnoiksi. Ne on itsessään niin laajoja aihepiirejä, että niitä varten parempi tehdä oma materiaali, jos niin haluaa.
Noh, MVC on suhteellisen uusi lisäys aspiin, ja Formitkin on vain osa asp -ohjelmointia (kuten formit ylipäätään web -kehityksessä).
Puuttuu serveripuolen käsittely kokonaan cshtml:n ulkopuolelta (eli se perinteinen tapa, missä codebehind on normaaleissa luokkatiedostoissa).
Master page:t, User Control:it, aspx -sivut (sekä Classic ASP puolelta asp -sivut) ym. kaikki sellainen puuttuu oppaastasi kokonaan.
Eiköhän tuo ole tarkoitettukin Razorin pintapuoliseksi esittelyksi eikä miksikään kaikenkattavaksi asp.net -oppaaksi.
Jos näin, pitäisi muuttaa hieman termejä, kuten jo sanoin. Muuten tuo sisältö on täysin virheellistä. On eri asia, miten ASP:lla tehdään asioita verrattuna miten tehdään ASP + Razor.
ASP opas kirjoitti:
Ohjelmointi
Ohjelmointi ASP.NET:llä tapahtuu @{}-sisällä. Koska ohjelmointi tapahtuu C#-kielellä, voidaan ASP.NET:llä käyttää kaikkia C# toimintoja. Silmukoita, tauluja, funktioita ym.
Missä tuolla ylipäätään mainitaan missään että käytetään Razoria?
Aihe on jo aika vanha, joten et voi enää vastata siihen.