Starší komentáře ke článku: Tvorba navigace v ASP.NET 2.0 - prvek Menu

Zpět na článek | Úvodní stránka Interval.cz

Avatar

Autor komentáře: Leo

Datum vložení: 28.1.2005 9:16:13

Vite, je to sice hezke Majere co nam tu rikate, ale pan tovarnik nam tu valem stydne a me by zajimalo v prvni rade jaky tyhle udelatka generuji (X)HTML kod. A kdyz vidim na jednom obrazku pri najeti mysi na odkaz menu ve stavovem radku cilovou adresu v niz je JavaScript a dopostback tak se mi dela nevolno. Leo

Avatar

Autor komentáře: Jméno a příjmení

Datum vložení: 28.1.2005 12:14:20

O postbacku a jeho vypusteni je v clanku tusim taky zminka.....

Avatar

Autor komentáře: Leo

Datum vložení: 28.1.2005 13:19:25

A kde? Ja jsem tam slovo javascript (bral bych i jscript) marne hledal. Leo

Avatar

Autor komentáře: NeNe

Datum vložení: 28.1.2005 16:07:35

ASP.NET znáš? Víš trochu, jak funguje? Ne? Tak tedy: ony "udělátka" generují to, co je momentálně potřeba generovat -- klidně jiný kód pro NN4 a jiný pro IE6 a jiný pro wapový prohlížeč. V ASP.NET 2.0 lze navíc zvolit, podle jakého "standardu" se bude kód generovat -- stránky lze cílovat třeba pro IE nebo pro HTML 4.0 prohlížeče nebo lze klidně nechat vygenerovat XHTML 1.1. Jak chceš.

ASP.NET do popředí zájmu staví funkčnost, ne správně odsazený lidsky čitelný kód. Přitom používá pouze široce rozšířené věci jako HTML nebo JavaScript, žádný ActiveX nebo applety, takže jsou stránky zobrazitelné v mnoha prohlížečích. Důležité je, že ty jako vývojář se o nějaké HTML nebo o klientské skriptování vůbec nestaráš -- proč taky, když onu otrockou práci umí obstarat mašina (asp.net).

Avatar

Autor komentáře: Leo

Datum vložení: 28.1.2005 16:20:58

"Důležité je, že ty jako vývojář se o nějaké HTML nebo o klientské skriptování vůbec nestaráš"

A to je prave kamen urazu. Jestli si myslite, ze stranky pozadujici JavaScript pro beznou navigaci jsou buhvijak genialni... A o kodu generovanem podle prohlizece ani nemluvim. Frontpage pro tvorbu dynamickych stranek pro sekretarky nechci. Leo

Avatar

Autor komentáře: Vilém Málek

Datum vložení: 28.1.2005 16:29:51

Ve skutečnosti je to trochu jinak. ASP.NET umožňuje programátorovi, aby se nestaral o přesný tvar (X)HTML kódu, který se generuje podle typu klienta, to je pravda. Neznamená to ale, že programátor nemůže toto generování ovlivnit. Ve skutečnosti záleží jen na něm, jak moc se mu chce věnovat. Takže pokud webdesinu rozumí, může postback vypnout, může generovat čistý kód a může přesně kontrolovat klidně i to, jak ten kód vypadá a jestli je "lidsky" čitelný. ASP.NET 1 sice má řadu mezer, takže se ledacos musí řešit uživatelskými třídami a podobně, ale když se chce, jde to relativně snadno. ASP.NET 2 už by to všechno měl dělat úplně automaticky i pro ty programátory, kteří webdesignu nehoví vůbec ;-)

Avatar

Autor komentáře: Leo

Datum vložení: 28.1.2005 20:25:08

"ASP.NET 2 už by to všechno měl dělat úplně automaticky i pro ty programátory, kteří webdesignu nehoví vůbec ;-)"

Webdesignu? Myslite detaily jako XHTML, CSS a JavaScript uz vubec ne? :-) Po odeslani HTTP hlavicky ze serveru potopa? Leo

Avatar

Autor komentáře: Vilém Málek

Datum vložení: 28.1.2005 22:42:15

Ano, přesně tak to je. Běžný programátor, který je zvyklý naklikat aplikaci ve WYSIWYG vývojovém nástroji, chce totéž i na webu ;-)

Avatar

Autor komentáře: Leo

Datum vložení: 28.1.2005 23:02:40

Toho jsem se obaval :-) Leo

Avatar

Autor komentáře: Spike411

Datum vložení: 29.1.2005 0:49:14

Každý si pod „normálním programátorem“ asi představí něco jiného. Mně se třeba nijak nepříčí představa VIMu...

Tenhle „klikací“ přístup mi sedí hlavně na líné uživatele (nemyslím to ani ve zlém) a různé spěchálky. V danou chvíli bude možná takový vývoj pro nějakou společnost rychlejší -> levnější, ale dovedu si představit, že za pár let to pro ni bude koule u nohy. Ale nějaký „neklikálek“ v tom klidně může napsat mocnou aplikaci. ^_^

Rozhodně mám v plánu C#/ASP.NET vyzkoušet, MS VS.NET kvůli tomu ale krást/kupovat nebudu. Láká mě projekt Mono.

Avatar

Autor komentáře: kouba

Datum vložení: 29.1.2005 10:01:21

VS.NET kupovat nemusíte, k dispozici jsou zdarma nástroje web express a musím říct, že už ted i když jde o betu, se mi zdají naprosto super:

<a href='http://interval.cz/__redirect/redirect.asp?what=interval_discussion&url=http://lab.msdn.microsoft.com/express/vwd/default.aspx' target='_blank'>http://lab.msdn.microsoft.com/express/vwd/default.aspx</a>

Avatar

Autor komentáře: NeNe

Datum vložení: 30.1.2005 11:43:34

Úvodem: proč kvalitu ASP.NET hodnotí někdo, kdo vůbec neví, o co se jedná?

Jinsk: ASP.NET a jeho způsob práce není vynázel Microsoftu, jedná se pouze o šikovnou implementeci známých návrhových vzorů zabývajících se řešením problémů se zobrazováním uživatelského rozhraní. Vaše námitky tedy nemíří proti ASP.NET, ale proti široce uznávaným postupům.
HTML není sémantický jazyk (kde jsou elementy pro navigaci, pro kalendář, pro přihlašovací "dialog", ...?), proto je dost neefektivní všechny tyto základní často se opakující věci simulovat pomocí elementů h, p, div, ul, ... ASP.NET přináší skutečně sémantický pohled na tvorbu stránek -- chci tam mít kalendář, tak ho tam prostě šoupnu, chci tam mít menu, tak ho tam prostě šoupnu. Generování výsledku v nějakém jazyku, kterému rozumějí dnešní prohlížeče (HTML, JavaScript, CSS atd.) je potom zcela typicky věc pro mašinu. Pokud chcete, můžete chování předefinovat, ale na to se 99% vývojářů vybodne, protože už out-of-the-box prostě všechno funguje, i když lze vznášet akademické námitky.

Závěrem: Pošlete mi link na vlastnoručně naprogramovaný kalendář, ze kterého lze vybrat určité datum, lze se v něm posouvat mezi měsíci, jsou zvýrazněné svátky atd. Třeba v PHP. Já vám na oplátku pošlu svůj -- nemusím ho však připravovat předem, protože v ASP.NET je to s Notepadem práce asi tak na 1 minutu (nejvíc času zabere nabootování windows).

Avatar

Autor komentáře: Vilém Málek

Datum vložení: 30.1.2005 12:09:58

Problém je v tom, že stávající ASP.NET má sice propracovanou tu část, se kterou se setkává programátor, ale do značné míry ignoruje tu část, se kterou se setkává uživatel. Co je mi platné, že ASP.NET pracuje sémanticky, když výsledek neumí správně převést do (X)HTML? Tím se totiž veškeré výhody sémantického přístupu ASP.NET ztrácejí, takže programátor musí opustit onu krásnou sémantiku a předělávat všechno po svém - takže se buď namaká stejně, jako skriptař v PHP, nebo stvoří bastl ;-)

Avatar

Autor komentáře: NeNe

Datum vložení: 30.1.2005 15:44:12

Souhlasím i nesouhlasím.

Pokud za "správný převod do HTML" považujete vygenerování <I>validního</I> HTML, pak skutečně současné ASP.NET (1.1) z pohledu <B>webdesignéra</B> problém má. Vy ale píšete, že ASP.NET ignoruje tu část, se kterou se setkává <B>uživatel</B>, což je i není pravda, protože uživateli se ASP.NET-stránky zobrazí dobře ve všech hlavních prohlížečích. A validní XHTML uživatele moc nezajímá.

Nicméně článek je o verzi 2.0, která uvedenými problémy netrpí. Navíc jsem chtěl reagovat především na poněkud zvrácenou kritiku Lea.

Avatar

Autor komentáře: Vilém Málek

Datum vložení: 30.1.2005 16:13:07

Že se stránky "nějak" zobrazí na všech "hlavních" prohlížečích, to není zásluha ASP.NET, ale oněch prohlížečů. Navíc je všeobecně známo, že bez podstatných zásahů ze strany programátora stránky generované ASP.NET pracují bez větších problémů jen v MSIE. O jakékoli správnosti pak nemůže být řeč, protože správný výstup ASP.NET prostě není schopno vestavěnými mechanismy vytvořit.

Ostatně je vidět, že i Microsoft si slabiny ASP.NET konečně uvědomil, protože do ASP.NET 2 se právě ty "správné" mechanismy snaží vložit. Jenže se ukazuje, že to není tak jednoduché ;-)

Avatar

Autor komentáře: RJ

Datum vložení: 29.1.2005 12:38:49

citace z textu:
"Standardně se po klepnutí na položku vyvolá postback a zavolá se obslužná metoda pro událost OnMenuItemClick. Pomocí vlastnosti NavigateUrl můžete standardní scénář změnit a umístit do této vlastnosti adresu stránky, kam se má vykonávání přesměrovat. "

Avatar

Autor komentáře: Leo

Datum vložení: 29.1.2005 12:53:00

"Pomocí vlastnosti NavigateUrl můžete standardní scénář změnit a umístit do této vlastnosti adresu stránky, kam se má vykonávání přesměrovat."

To ja jak zapis z policejniho protokolu :-) Myslite tim, ze proste muzu do href odkazu (element a) dat adresu stranky kam odkaz vede? Leo

Avatar

Autor komentáře: Vilém Málek

Datum vložení: 29.1.2005 13:33:54

Řekl bych, že cílová skupina článku, tedy programátoři ASP.NET, tomu rozumí bez problémů, protože je takové vyjádření pro ně přirozené. My ostatní buď musíme vědět, oč jde, nebo máme smůlu ;-)

Avatar

Autor komentáře: RJ

Datum vložení: 29.1.2005 16:03:58

presne tak... potom se nevyvola zadny js postback

Avatar

Autor komentáře: Olda

Datum vložení: 28.1.2005 9:18:15

Doufám, že to bude chodit i v jiných prohlížečích, než v IE

Avatar

Autor komentáře: Lukáš Lánský

Datum vložení: 30.1.2005 12:59:56

Samozřejmě že bude. Jen přesně nevím, co to udělá pod Operou, která se identifikuje jako MSIE - snad nic, stejně se podle UserAgenta nechá poznat.

Avatar

Autor komentáře: FilX

Datum vložení: 31.3.2005 9:13:28

Teď jsem Menu testoval v prohlížečích, FireFox, Opera a NetScape. Chová se to naprosto odlišně než v Exploreru :o( Ve FireFoxu a v Netscapu se menu nerozbaluje automaticky. Uživatel se musí celým menu proklikat a navíc se zobrazuje vždy jen aktualní úroveň. A rozbalovací odkazy vypadají tak že je k nim automaticky generováno slovo "Expand". V opeře to pro jistotu nefunguje vůbec. Ale možná je to tím že se Opera identifikuje jako MSIE. Těšil jsem se že bude konečně k dispozici v ASP.NET 2 inteligentní menu. Ale asi marně. Takže se jdu učit javascript :o))

Avatar

Autor komentáře: LuPo

Datum vložení: 28.1.2005 20:08:51

ASP dot NET,
zbastli to HNED.

Avatar

Autor komentáře: Daniel Steigerwald

Datum vložení: 31.1.2005 8:10:27

Je trochu off topic, ale když už se to nakouslo ... (ne) Problém ASP.NET se nazývá "adaptive rendering" a web server controls. Pro nezasvěcené, mohu si jako programátor vybrat takzvané web server controls, což jsou v podstatě třídy generující kód (html,..) - spolupracující s detekcí browseru.
Nebo mohu použít html controls což je pouze programový přístup ke standardním html tagům, a nebo se na ně můžu úplně ... a podívat se na webovou aplikaci jako na "potvoru" stvořenou z komponent (user a custom controls převážně) a napsat si generejucí tagy úplně sám a aplikaci(e) pak z těchto kousků (s)lepit. Je to o dost lehčí než se zdá.

Každý přístup má něco, pokud půjdu nejlehčí cestou web server controls, bude můj výstup plný nesémantického balastu, ale na druhou stranu, za pár měsíců, až tu bude ASP.NET 2.0 bude i XHTML 1.1 validní a až budoucnu bude zase nějaký jiný standard, předpokládám, že web server controls budou zas o něco chytřejší a přizpůsobí se mu, bez přepisování již napsaných aplikací..

Já se momentálně snažím dělat .aspx aplikace pomocí custom (composite a render) a user controls. To se mi zdá nejlepší, i když se vzdávám adaptive renderingu (vypínám) a nějaké budoucí auto-kompatibility. Mám absolutní kontrolu nad generovaným kódem i se všemi super vychytávkami ASP.NET.

Avatar

Autor komentáře: Spout

Datum vložení: 28.11.2005 11:34:17

Prvek Menu je pekna vec, ale vo VS 2003 sa v namespace WebControls nenachadza, neda sa tam nejakym sposobom importovat?Dik

Avatar

Autor komentáře: Orion

Datum vložení: 13.12.2006 14:47:47

Hezky clanek. Jen nevim proc do komentaru pisou lidi, co vubec nevedi o cem to je.

Avatar

Autor komentáře: Petr

Datum vložení: 21.1.2009 12:05:01

Zkoušel jsem toto menu s menšíma úpravama. U menu načítaného z xml mi není jasné jak mám udělat, aby první položka nebyla nadřazená těm ostatním - jedná se mi o to, že nehci nejdříve najet na položku Menu1 a teprvne potom, abych měl dostupné další položky.

Zpět na článek | Úvodní stránka Interval.cz