Na navigaci | Klávesové zkratky

Marcus versus ASP.NET


Právě jsem narazil na nádherný názorový střet dvou programátorů v ASP.NET (a ještě jeden). Marcus mi mluví přímo z duše, až mě z toho zamrazilo.

Jste na webu a tohle je výsledek vaší práce, a cílem vašeho klienta není, abyste rychle něco naklikal a vy jste byl spokojený. Můžete to prezentovat, že možná ušetří pár hodin, ale když výsledek stojí za houby, tak je mu to úplně jedno.

Marcusovi oponenti demonstrují sílu ASP.NET na tomto webu. Webu, který trpí snad všemi neduhy rodičovské technologie. Legrační.

Krok stranou

Nedávno uveřejnil Borek Bernard bakalářku srovnávající PHP s ASP.NET, Jakub Vrána k ní měl několik připomínek. Ačkoliv jde asi o nejlepší srovnání těchto technologií, jaké jsem kdy četl, pokusím se ho nyní trumfnout.

DGXovo srovnání ASP.NET a PHP

  1. vše, co lze naprogramovat v ASP.NET, lze naprogramovat i v PHP
  2. vše, co lze naprogramovat v PHP, lze naprogramovat i v ASP.NET

Konec srovnání.

Kdo je vítěz?

Kdo vyšel ze srovnání lépe? Dost ironie. Taková srovnání totiž nikam nevedou. Věc se má jinak.

Možná nejsem úplně normální vývojář, ale nad každým projektem vždy přemýšlím od konce. Tedy nejprve si představím výsledek. Hotovou aplikaci. Jak se bude chovat a to v každém detailu. Najdu její slabiny a odstraním je.

Tahle imaginace se netýká jen vzhledu! Zajímají mě takové detaily, jako přesný tvar všech URL. Vlastně ještě víc. Chci vědět, co se stane, odkáže-li někdo stránky s jinou velikostí písmenek v URL. Co způsobí znovuodeslání formuláře přes F5. Nebo tlačítko Zpět.

Teprve až jsem spokojen, začnu přemýšlet, jak to celé naprogramovat. Až přehnaný perfekcionalismus a zatvrzelost udělat práci pro klienta co nejlepší (kolikrát jsem sám svým klientem) mi nedovolí z návrhu uhnout.

Jednoznačně použiju Apache a (třeba) PHP5.

Proč? Protože k tomu ASP.NET a Web Forms není vhodné. Můj názor může být vždy odpálkován s tím, že nejsem v ASP.NET profík a kde beru právo se vůbec vyjadřovat. Proto si dovolím ještě jednou citovat Marcuse:

VŠICHNI, kdo dělají v ASP.NET profesionálně mi tady určitě potvrdí, že pokud chtěli např. splnit naprosto běžné požadavky, jako je vypnout JS, zrušit viewstate, kontrolovat rendrovaný kód, mít multi-post stránky, podporovat čitelný GET atd., tak si museli ohnout ASP.NET a to je šílenost. Proto mnoho firem má napsané svoje interní frameworky, které toto řeší a které pak vedou k docílení této funkčnosti bězné v dnešním internetu. A tam už žádné klikání není a co je hlavní, stojí HROZNĚ práce tohle ohnutí v ASP.NET udělat a udržovat.

My jsme museli udělat HODNĚ práce, abysme dorovnali vlastně úroveň PHP v ASP.NET. Zatím nám to stálo za to, díky přepsání skoro celého backendu…

Ač sám tyto zkušenosti nemám, došel jsem ke stejným závěrům.

Pro mě je vždy naprosto klíčové řešit příčinu problému, nikoliv jeho následek. Tedy navrhnu-li něco nešťastně a zároveň nabídnu možnost, jak důsledky napravit, tak to neznamená, že jsem věc navrhl správně. Stále platí, že jsem ji navrhl špatně.

Proto je mi milejší dobře navrhnout aplikaci ve (stále objektově nedokonalém) jazyku PHP nad serverem Apache, než ohýbat ASP.NET. I když tipuji, že obojí bude, alespoň v počátku, stát zhruba stejné úsilí.

Dodatek: nechci sdělit, že PHP je lepší než ASP.NET. Není. Jde mi o to, že Web Forms v rukou běžného vývojáře vedou ke strašlivým výsledkům. Málokdo na to upozorňuje a málokterý vývojář si to vůbec uvědomí.

před 18 lety v rubrice PHP | blog píše David Grudl | nahoru

Mohlo by vás zajímat

Komentáře

  1. jm #1

    avatar

    Velmi prijemny clanek. Dekuji.

    před 18 lety
  2. nhek #2

    Porad mi neni jasne proc vsichni srovnavaji PHP s ASP.net?
    ASP.net je framework a ma asi vice nevyhod nez vyhod, to souhlasim – od JS, pres silene URL az po priserny kod, ktery to (defaultne) generuje …
    Ale porad plati ASP.net je framework, PHP je programovaci jazyk.

    …pro PHP urcite taky existuje spousta frameworku, ktere jsou k nicemu – i kdyz je pravda nevyviji nejvetsi SW spolecnost na svete. ale

    Pokud ale srovnavam srovanatelne, tj. napr. C# s PHP jakozto jazyk s jazykem, tak muj osobni pocit je, ze C# ma proste pouzitelnejsi syntaxi, prehlednejsi pouzivani objektu a pise se mi v nem proste lip nez v PHP (ano, kdysi jsem programoval v C blahe pameti a psat pred kazdou promenou $ me proste stve…). Nikdo mne nenuti pouzivat preddefinovane komponenty UI v C# pokud nechci, stejne tak jako mne nikdo v PHP nenuti pouzivat napr. smarty, nebo jinej sablonovaci system…

    kdyz si v PHP napisu vlastni framework, tak nikdo nenapise, ze si PHP ohybam – kdyz si napisu vlastni sadu funkci v C# pro generovani stranek a reakci na jejich chovani, tak je to ohybani ASP.NET?

    před 18 lety | reagoval [3] David Grudl [25] kmar
  3. David Grudl #3

    avatar

    #2 nhku, zcela souhlasím, z článku by mělo být patrné, že taková srovnávání ironizuji.

    Mně jde čistě o srovnání přístupů a jsem přesvědčen, že žádný framework (PHP) je lepší, než velmi velmi špatný framework (ASP.NET Web Forms). Řada programátorů v ASP.NET však žije v přesvědčení, že jejich framework je špičkový a proto v budoucnu titul „jazyk bastličů“ převezme od PHP právě ASP.NET. Ironií je, že v tomto mají programátoři PHP výhodu – žádný standardní framework nemají a nemohou si proto o něm dělat mylné iluze.

    Mimochodem, jazyk C# mi velice vyhovuje.

    před 18 lety
  4. Rene #4

    avatar

    Že vás to chlapci pořád baví :)
    ¨
    Myslel jsem si Davide, že po svém expresivním spotu s popisem zděšení z ASP.NET, sis svůj názor udělal a tam jsme dospěli k podobnému závěru.

    ASP.NET je skvělé pro intranetové aplikace a nehodí se ve své "tovární"podobě pro veřejné prezentace, když CHCEŠ má absolutní kontrolu nad kódem.

    Když rezignuješ na vychytávky .NET, můžeš ihned mít prostředí, které se od PHP neliší.

    Proč ne – můžeš používat Response.Write, používat jen html značky místo kompozitních serverových ovládacích prvků apod. Přesto i bez všech vychytávek ASP.NET máš k dispozici -plnohodnotný objektový jazyk (a ne tu, s prominutím, parodii na syntax v PHP – v poslední době jsem byl nucen se znovu trochu PHP zabývat a hlavně z PHP4 jsem tedy dávil :D) a rozsáhlé .NET knihovny organizované do jmenných prostorů a obsahující konzistentně pojmenované třídy a jejich metody – opět PHP mě svou nesystematičností pěkně otrávilo.

    Ta práce, o které mluví Marcus, je podle mě nutná, pokud chceš využívat některé vychytávky (serverové ovládací prvky) ASP.NET a současně eliminovat některé nevýhody, které jsi sám už v jiném spotu zmiňoval a které třeba znamenají, že generovaný kód není tak kvalitní, jak ho chceš mít.
    A to je opravdu docela otravná práce.

    Jinak moje volba je jasná – nechcete ASP.NET? V pořádku – můžeme použít Javu. Ale od PHP každého firemního zákazníka zrazuji…

    DGX: Pro mě je vždy naprosto klíčové řešit příčinu problému, nikoliv jeho následek. Tedy navrhnu-li něco nešťastně a zároveň nabídnu možnost, jak důsledky napravit, tak to neznamená, že jsem věc navrhl správně. Stále platí, že jsem ji navrhl špatně.

    Navrhnu-li PHP jako jazyk pro nadšence, kteří si chtějí vytvářet své jednoduché dynamické stránky a nyní simuluji v jayzce OOP principy, které mají zastřít, že v pozadí je stále ten primitivní skriptovací jazyk, neznamená to, že PHP je vhodné větší projekty. Stále platí, že PHP stále míří do zcela jiné oblasti než Java nebo .NET ;)

    Ještš k té debatě s Marcusem = já také považuji za nešťastné, že Microsoft na svých DevDays i jiných akcích akcentuje RAD vlastnosti ASP.NET, které jsou mnohdy docela odpudivé. Nesnáším klikání aplikací.
    Například DataSources v.NET 2.0, které jsou navíc implementovány jako běžné serverové ovládací prvky, považují za omezující a nedotažené. Už jen to, že kvůli špatně napsané třídě ObjectDataSource pro práci s business objekty je při vývoji preferována třída SqlDataSource,, což je jen výzvou pro bastlíře, aby stále vkládali kód patřící do různých vrstev aplikace vždy do UI.

    před 18 lety | reagoval [8] David Grudl [43] David Grudl [72] Marcus
  5. myshpa #5

    avatar

    Navrhnu-li PHP jako jazyk pro nadšence, kteří si chtějí vytvářet své jednoduché dynamické stránky a nyní simuluji v jayzce OOP principy, které mají zastřít, že v pozadí je stále ten primitivní skriptovací jazyk, neznamená to, že PHP je vhodné větší projekty.

    Jasne, proto treba yahoo je typicky priklad, ze php+mysql se hodi jen na jednoduche aplikace, ze?

    Miluju to sebevedomi a ignoranci „MS“ programatoru. Ze by nejaky „visual-basic-komplex“?

    před 18 lety
  6. Petr Snajdr #6

    Argumentací, že v PHP napíšu vše a v ASP.NET lze šmahem porovnat téměř všechny existující jazyky. Snad až na jazyk KAREL.

    Příklad: proč rozdělovat jazyky na neobjektové a objektové? Zcela otevřeně objektově je možné psát i v assambleru a třeba systém X-Window, ač napsán v neobjektovém C, je psán objektově. Ano, i v neobjektových jazycích a dokonce assambleru je možné psát objektově, ale otázka je za jakou cenu.

    Popravdě nechápu ten sport porovnávat neporovnatelné. PHP znám ho od verze 2.1 a prvotním nadšení jsem ho od verze asi 4 přestal téměř úplně sledovat. Kde jen zanikl původní význam slov PHP? Tedy PHP = Personal Home Page, nástroj pro rychlou tvorbu osobních stránek, který nevyžaduje velké programátorské znalosti a je tak dostupný velké šíři lidi, kteří nemusí být profesionální programátoři. Proč to po nich taky chtít?

    Myslím, že sám Rasmus Lerdorf se hodně divil kam se jeho dítko začalo rozvíjet.

    Celé porovnávání, pokud to není jen takový chlapský sport, mi přijde jako porovnávat auto motorku a dopravní letadlo.

    PHP je pouhý jazyk, který je možné použít i v rámci .NET frameworku, pokud v tom bude někdo spatřovat smysl. Jediný rozdíl bude v tom, že celá aplikace pak bude běhat o něco rychlej než v nativní PHP a to i přestože bude napsaná tomtéž jazyce PHP.

    Co budeme porovnávat v tomto případě?

    před 18 lety | reagoval [8] David Grudl [11] bert
  7. Petr Šnajdr #7

    Nevím kde a jak Yahoo PHP používá. V roce 2002 anoncovali, že budou PHP používat, ale jaká je realita fakt netuším.

    Nebyl jsem u toho, ale přišlo mi, že PHP tehdy pro Yahoo nabízelo překvapivě vyšší výkonost než yScript, který nicméně Yahoo nepřestalo používat. Jejich argumentace u spousty technologií byla dána hlavně omezeními, která si stanovili. Např. nechtějí platit Microsoftu za Windows a nebo to, že implementace Javy nebyla na FreeBSD tak výkonná jak potřebovali.

    Na druhou stranu třeba s Perlem, s kterým byli velice spokojeni naráželi na to, že nebyl navržen pro web skriptování, lze v něm vše udělat několika způsoby atd.

    Každopádně existující apikace není důkaz, že je daná věc pro dané použití vhodná. Je to jen důkaz, že to v daném jazyku jde napsat.

    Klidně vám napíšu web v assambleru, ale otázka je zdali to za to bude stát. Myslím, že ne, ale mohla by to být sranda 🙂

    Ps. U toho Yahoo by mě opravdu zajímalo jak a kde PHP používají nyní.

    před 18 lety | reagoval [46] myshpa
  8. David Grudl #8

    avatar

    #4 Rene, René, pokud prohlásíš, že

    ASP.NET je skvělé pro intranetové aplikace a nehodí se ve své „tovární“podobě pro veřejné prezentace, když CHCEŠ má absolutní kontrolu nad kódem.

    nemám co dodat. Snad jen to, že vždy chci mít absolutní kontrolu (nejsem bastlič). Pokud bych potřeboval rychle vytvořit intranetovou aplikaci, zvažoval bych dát před PHP přednost C#.

    Tedy článek není adresován tobě, ale (potenciálním) internetovým vývojářům s Visual Studiem. Mohou eliminovat všechny vychytávky ASP.NET. Mohou, ale udělají to? Znáš jediného takového? #6 Petr Snajdr Má tedy smysl oddělovat jazyk od továrního frameworku?

    Víš, že nejsem z PHP dvakrát šťastný (říkám si, že třeba už šestka…). Přes všechny zápory v něm stále vidím lepší volbu pro své cíle. I když pravda, některé výhody jsou velmi nepřímé:

    • je obvykle hostován na Apache, což je klíčové, mám-li mít vše pod kontrolou
    • obvykle beží na unixovém filesystému (lze nastavit práva přes FTP, atd)
    • má nejširší hostingovou základnu, z čehož plyne:
      • vysoce konkurenční prostředí hostérů
      • obrovský trh pro související software & služby
    před 18 lety | reagoval [45] David Grudl
  9. Michal Hantl #9

    Já jsem tento článek pochopil jako odpověď nekonečným porovnávačům asp.net a php. Pochopil jsem to správně?

    před 18 lety | reagoval [11] bert
  10. Petr Stříbný #10

    Hlásím se jako daší z lidí, kteří v Asp.net dělají a rozhodně se s klikáním nespokojí. A i přesto podle mě má smysl. Vždycky přece v životě volíme kompromis :)

    před 18 lety
  11. bert #11

    avatar

    #9 Michale Hantle, no jasne a o to vic me prekvapuje ze to #6 Petr Snajdr bere tak vazne, nechape tu ironii.

    před 18 lety
  12. Pavel Růžička #12

    Já jsem kompletně překvapen popisem toho, jaké mají někteří problémy s jakýmsi vypínáním JavaScriptu, ošklivými URL a nevhodností ASP.NET pro internetové prezentace – samozřejmě chci, aby moje webové aplikace byly přístupné, funkční i bez JavaScriptu a měly hezké URL, a to všechno jsem dosáhnul s tím základním, co ASP.NET poskytuje, nic jsem nikde „nepřiohýbal“, a aplikaci mám přístupnou a s hezkými URL.
    Takže mi celé ty výkřiky o tom, že se stráví spousta času přepisováním a přiohýbáním ASP.NET přijdou spíš jen jako nářky z neznalosti – promiňte mi.

    před 18 lety
  13. Borek #13

    Nemám teď moc času se dohadovat, proto bych tě, Davide, poprosil, abys sem do komentářů nebo kamkoliv jinam napsal, jak bys v PHP implementoval RoundedBox.

    Já pro ASP.NET dávám ke stažení jedno DLLko, vývojář ho přidá do projektu, do ASP.NET stránky napíše <bb:RoundedBox>obsah</bb:RoundedBox> a má zaobleno. Prosím tě, popiš, co dáš v případě PHP ke stažení na web, jak se to bude používat ve stránce a jak bude zhruba vypadat vnitřní implementace.

    Nechci ti nic podsouvat, jen si chci ujasnit, jak vážně to myslíš s ekvivalentní funkčností PHP a ASP.NET. Jinak díky za odkaz a za milá slova v článku.

    K netu se dostanu až zítra, tak se nezlob, že do té doby nebudu moct reagovat.

    před 18 lety | reagoval [15] David Grudl [19] DeaLer
  14. Roman #14

    avatar

    To som zvedavy co David odpovie. Ja ako absolutny neznalec ASP k tomu prakticky neviem zaujat nejake fundovane stanovisko, ale ak to spravne chapem, tak tebou vytvorene DLL si niekto prida k modulom co ma v ASP a toto na zaklade nejakych metaznaciek prida nejaky Javascript a CSS do stranky (pretoze samotne round corners by bez niecoho takeho samozrejme nefungovali). V pripade ze to pouzijem nepotrebujem vidiet ako ten JS a CSS vyzera . Proste sa predpoklada ze to funguje. Predstavujem si ako vyzera taka stranka ktora intenzivne vyuziva zo 10 takychto lahko pouzitelnych jednoucelovyc rieseni. Musi to byt plne roznych „ciernych skriniek“. Viem si predsatavit ze existuje aj komplexnejsie ucelene riesnie.. tu zas ale vidim problem s velkostou suboru/suborov co treba kvoli fungovaniu takehoto sikovnejsieho balika stiahnut.

    před 18 lety | reagoval [17] DeaLer
  15. David Grudl #15

    avatar

    #13 Borku, Borku, třeba tak, že do XHTML šablony přidám zvoleným elementům <div> třídu roundbox a do frameworku plugin, který tyto bloky zamýšleným způsobem modifikuje. Nebo bych mohl do šablony zapsat přímo <bb:RoundedBox>obsah</bb:RoundedBox>, ale já preferuji čisté HTML šablony, bez speciálních tagů či jakékoliv funkční logiky, protože mi je připravují (a později i upravují) kodéři, nikoliv programátoři.

    Ale je to spíš věc frameworku, než PHP.

    před 18 lety | reagoval [29] Borek
  16. Abraxis #16

    No, doposud jsem byl zavily PHP coder (taky jsem si ale napsal vlastni framework, aby ten kod trochu vypadal slusne), nicmene ted mi kolega ukazoval Ruby-on-Rails a jsem naprosto nadsen. Kdysi v prvnich verzich jsem si s tim hral a nic moc dojem to na mne nezanechalo, ale stavajici verze mne prisla opravdu nadherny jazyk s frameworkem, ktery umoznuje velmi snadno psat „bohate“ aplikace (AJAX apod.) a zachovat strikni architekturu MVC.

    Nerikam, ze by to v PHP nebo ASP.NET neslo, nicmene v RoR mne to prislo krasne pripravene, jen zacit psat „bussiness logiku“…

    Nejvetsi problem je ale sehnad nejaky slusny webhosting.

    před 18 lety
  17. DeaLer #17

    avatar

    To DGX: s tím tvým srovnání PHP a ASP.NET se snad ani nedá nesouhlasit 😁.

    V žádným případě nepopírám, že ASP.NET má jistý nedostatky, ale osobně to dokážu přijmout jako fakt a nějak se s tím vyrovnám (neznám software bez chyb). Kvalita generovaného kódu je v ASP.NET 2.0 únosná – lze dosáhnout validity i přístupnosti, ale po vzhledové stránce a z hlediska strukturování na tom výsledný kód není nejlíp.

    I přes všechny nedostatky nedokážu najít lepší platformu pro vývoj aplikací (nemyslím ASP.NET, ale .NET Framework + OpenSource implementace LIKE Mono obecně).

    #14 Romane, RoundedBox je kvalitní control a troufám si říct, že výsledný kód je dostatečně kvalitní.

    před 18 lety | reagoval [18] Roman
  18. Roman #18

    avatar

    #17 DeaLere, Nepochybujem o tom ze kod roundedbox je kvalitny kedze pravdepodobne pouziva nejaky vyladeny JS ktory tieto round corners zabezpecuje (a sam o sebe je velmi jednoducho pouzitelny po prilinkovani .js na stranku) Skor mi islo o to ze takyto sposob je asi pre programátora pohodlný ale v končnom dôsledku do stránky pridáva veci bez toho že by to progarmátor nejako ovlyvnil. Predstavujem si co to asi moze robit ked tam takychto „controlov“ prida 10. To kvoli kazdemu prilinkuje novy javascript? A co alternativa v pripade ze JS nie je zapnute? Generuje to aj vlastne CSS v pripade ze chem tomu boxu priradit farbu? Alebo to pise priamo do html ako inline CSS. Ja neviem ako to funguje, ale táto pohodlna predstava tvorby webu (pouzivanim nejakych modulov ktore produkuju kod nad ktorym nemam priamu kontrolu mi nepripadá veľmi efektívna.

    před 18 lety | reagoval [19] DeaLer
  19. DeaLer #19

    avatar

    #18 Romane, RoudeBox má v podstatě 3 způsoby použití.

    1. nepoužijete obrázky – v takovém případě vám control do hlavičky vloží jeden script (bez ohledu na počet RoundedBoxů) a do těla stránky se vloží link na script (taky pouze jednou). A pak se v těle vygenerujou nějaký divy se stylem.
    2. použiješ generované obrázky – do stránky se nevloží žádnej script, ale jen několik nastylovaných divů + do určený složky se uložej vygenerovaný obrázky.
    3. použiješ obrázky, který si předem někde vytvoříš – v takovým případě je kód v podstatě stejnej jako v předchozí, případě, ale ty obrázky už se nikam neukládaj.

    Tohle už se netýká RoundedBoxu.
    Jen bych dodal, že ani taková tvorba webu nemusí být vždy pohodlná, ale nemůžu říct, že bych výsledný kód neměl pod kontrolou. Je to určitě věc názorů, ale mě to připadá efektivní.

    #13 Borku, Proč vlastně ten script, co připojuje externí soubor, není taky v hlavičce? Nebylo by lepší místo ukládání obrázků někam na server použít httpHandler?

    před 18 lety | reagoval [21] Roman [30] Borek
  20. bluee #20

    avatar

    „Ač sám tyto zkušenosti nemám, došel jsem ke stejným závěrům.“

    Jak nekdo muze dojit ke stejnemu nazoru, kdyz nema takove zkusenosti. To vidim prvne. Nepochopitelne.

    před 18 lety | reagoval [43] David Grudl
  21. Roman #21

    avatar

    #19 DeaLere, Ja som si samozrejme RoundedBox letmo prezrel Borkovej stranke. Nie velmi podrobne takze som nevedel podrobnosti, ale predpokladal som hned, ze zaklad bude v nejakom realnom kode (existuju minimalne 4 riesenia tejto). Tam je konkretne ako zaklad pouzity Nifty Corners coz je celkom fajn riesenie. Ostatne 2 spodoby pouzitia RoundedBox co si vymenoval, robia presne to co som predpokladal. Generuju kod aj s inline CSS coz je z hladiska snahy o oddelenie prezentacie od obsahu nie velmi pouzitelne.

    před 18 lety | reagoval [23] DeaLer
  22. error414 #22

    S Borkem uz jsem se nekolikrat hadal ze v PHP nejdou udelat nejake veci.

    DGXovo srovnání ASP.NET a PHP === stoprocentni pravda

    před 18 lety | reagoval [23] DeaLer
  23. DeaLer #23

    avatar

    #21 Romane, Inline styly se používaj u všech tří možností. Já RoundedBox nepoužívám, ale ASP.NET znám už docela dobře a myslím, že by neměl bejt problém se použití inline stylů vyhnout napojením na třídu.

    #22 error414, To srovnání je určitě pravda, ale rozdíl bude v době a způsobu tvorby.

    před 18 lety | reagoval [24] Roman
  24. Roman #24

    avatar

    #23 DeaLere, Ak spravne chapem co tym chces povedat. A ak by si RoundedBox pouzil sposobom ako hovoris, v podstate by si sa priblizil implementacii „round corners“ riesenia na takej urovni, ze by si sa nakoniec v podstate bez neho obysiel. Tym padom sa cela vyhoda tej pohodlnosti ktora spociva v pouziti jednej metaznacky a vygeneerovanie roundboxu.

    A v konecnom dosledku mi to pripomina prave to privohejbani.. ktore spominal, v DGX-ovom clanku citovaný, Marcus.

    před 18 lety | reagoval [26] DeaLer
  25. kmar #25

    mam kamarada ktery jiz leta profesionalne a spickove programuje v c#.net pro jednu z nejvetsich ceskych softwarovych spolecnosti jako senior programmer. pred nekolika tydny mi nadsene ukazoval svou novou knihovnu pro cookieless sessions. kdyz jsem mu ukazal ze toto lze zapnout ve web.config pouhym pridanim jednoho elementu, zustal stat s otevrenou pusou.

    Zajímají mě takové detaily, jako přesný tvar všech URL. Vlastně ještě víc. Chci vědět, co se stane, odkáže-li někdo stránky s jinou velikostí písmenek v URL. Co způsobí znovuodeslání formuláře přes F5. Nebo tlačítko Zpět.

    vsechny tyto veci jsou velmi jednoduse osetritelne :)

    1. hodnotte prosim .net framework az jej budete znat ne jen povrchne a b) nesrovnavejte framework a skriptovaci jazyk (diky #2 nhek)

    p.s.: jsem byvaly grafik, nyni barman, s programovanim nemam nic spolecneho ;)

    před 18 lety
  26. DeaLer #26

    avatar

    #24 Romane, můžeš mi dát nějakej kontakt – tohle už vážně není předmětem téhle diskuse

    před 18 lety | reagoval [27] Roman
  27. Roman #27

    avatar

    #26 DeaLere, E-mail používam na úplne iné veci ako na súkromnú dišputu týkajúcu sa článku na blogu. Nemyslím si že by to o čom sa bavíme namalo tematický súvis s týmto blog-spotom.

    před 18 lety | reagoval [28] DeaLer
  28. DeaLer #28

    avatar

    #27 Romane, No jak myslíš. Já jsem neměl namysli žádné přiohýbání (co to vůbec je? ekvivalent k dopisování funkčnosti v PHP?), ale jednoduché vyplnění attributu CssClass (ve výsledném kódu běžný attribut class), ale před chvíli jsem si vytvořil testovací stránku a zjistil jsem, že v tomto případě pravděpodobně nebude možný se bez nějakých úprav (změna / doplnění funkčnosti a ne přiohýbání) úplně zbavit inline stylů, ale u „menších“ prvků (např. tlačítko) to není problém.

    před 18 lety
  29. Borek #29

    #15 Davide Grudle, Pokusím se vlastními slovy shrnout důsledky tvé odpovědi. Oprav mě, kdykoliv se mnou nebudeš souhlasit.

    1. PHP neumožňuje vytvořit komponentu typu RoundedBox, kterou by bylo možné univerzálně vystavit na webu a používat v libovolném PHP projektu.
    2. Komponentu typu RoundedBox může podporovat specifický PHP framework nebo šablonovací systém, což ovšem znamená, že komponenta není určena pro PHP jako takové.
    3. Předchozí bod má mnoho nepříjemných důsledků, např.
      • pokud daný projekt nepoužívá podporovaný framework či šablonovací systém, komponenta je zcela nepoužitelná
      • rozšířenost vlastního frameworku je řádově menší než v případě PHP či ASP.NET, takže se budou hůře shánět vývojáři, platforma bude méně otestovaná apod.
      • u „malých“ frameworků či šablonovacích systémů není zaručena jejich kontinuita, autoři mohou dělat zpětně nekompatibilní změny (což můžou i autoři velkých frameworků, ale ti jsou pod daleko větším tlakem vývojářské komunity) apod.
    4. Technologie PHP a ASP.NET nejsou ekvivalentní a komponentový přístup ASP.NET má v mnoha případech pozitivní vliv na znovupoužitelnost kódu, vývojářskou efektivitu, tržní dostupnost sofistikovaných controlů apod. (Vím, že jsi slovo „ekvivalentní“ nikdy nepoužil a pravděpodobně si to ani nemyslíš, na druhou stranu „DGXovo srovnání“ k určité ekvivalenci směřuje, což nepovažuji za úplně poctivé. Je JEE ekvivalentní s assemblerem, když mohu webovou aplikaci vytvořit v obou prostředích?)

    Pokud bych to měl shrnout, podle mého názoru existují výhody, které ASP.NET má a PHP je z principu nemůže v nejbližší budoucnosti nabízet. Máš tedy pravdu, že libovolnou funkčnost lze implementovat v libovolné technologii, ale důležité přeci není jen CO lze s danou technologií vytvořit, ale i JAK (jak snadno, jak rychle, jak levně, …)

  30. Borek #30

    #19 DeaLere, Implementace RoundedBoxu není dokonalá a třeba použití web resources by se určitě hodilo.

    před 18 lety
  31. SneakerXZ #31

    avatar

    řekl bych to takhle, že pokud budeš programovat v nějakém frameworku, který má jistá pravidla tak kuli zvláštním věci hold to budeš muset ohnout a je jedno jestli to je v PHP s nějakým frameworkem či ASP.NET, Python Djanga atd…

    Teď už je jen otázka co vyhovuje každému víc? Jestli psát vše znovu(tím myslim, že člověk neni striktně daný frameworkem) nebo mít vše hotové a jen to sestavit a v připadě problému ohnout.

    před 18 lety | reagoval [32] DeaLer [33] David Grudl
  32. DeaLer #32

    avatar

    #31 SneakerXZi, Já teda neuplatňuju ani jednu s tvých možností. Já používám už hotové prvky a v případě nespokojenosti (nejen v případě nespokojenosti) si vytvořím něco vlastního (a pak už to znova nepíšu) nebo jen upravím funkčnost (s tím, že využiju základních možností frameworku) toho s čím nejsem tak úplně spokojenej – tomu taky řekneš ohýbání.

    před 18 lety | reagoval [36] SneakerXZ
  33. David Grudl #33

    avatar

    #29 Borku, První body ti mohu hned vyvrátit tvou vlastní zbrazní, protože „pokud daný projekt psaný v ASP.NET nepoužívá standardní framework“, jsi s komponentou RoundedBox víš kde. Toliko k ekvivalenci jazyků.

    O ekvivalenci technologií tu píšeš jen ty, teď dokonce hraješ překvapeného, že PHP nemá tovární framework. Jistě že nemá. Tvrdil jsem něco jiného? Tématem je skutečnost, že .NET má framework nevhodný (až nepoužitelný) pro tvorbu internetových stránek.

    Držme se tedy tématu.

    Mimochodem, plnohodnotný šablonovací framework s podporu pluginů, ve kterém by mohlo fungovat něco-jako-RoundedBox, (na podobné úrovni pohodlí) lze napsat v PHP na 50 řádků kódu.

    S posledním odstavečkem zcela zásadně nesouhlasím. Nicméně je to naprosto typický argument vývojářů pod .NET. Věř mi, že kvalita odvedené práce je důležitější, než její snadnost či rychlost. Ballmer může běhat po pódiu a křičet de-ve-lo-pers jak dlouho chce, ale všechny Microsoftí programátory strčí do kapsy tým, který si bude notovat cus-to-mers ;)

    #31 SneakerXZi, jde o to, jestli ohýbáš výjimečně, nebo kdykoliv pro dosažení standardních potřeb.

    před 18 lety | reagoval [34] DeaLer [35] DeaLer [36] SneakerXZ
  34. DeaLer #34

    avatar

    #33 Davide Grudle, Stejně se tu nedopracujeme k žádnému výsledku. PHP a .NET vývojaři (i když to může znamenat totéž) se nikdy neshodnou na výhodách a nevýhodách druhé technologie, protože má každý tu svou a ta je pro něj nejlepší (stejně jako u browserů, os a dalších).

    Já jsem přístupnej většině názorů, ale tohle je moc a začíná to vypadat jako flame.

    Předhoďte sem někdo framework postavený na ASP.NET, ve kterém nebude fungovat zmíněný RoundedBox – já toho nejsem schopnej.

    BTW: Borek má pravdu, že PHP už z principu v blízké budoucnosti nedosáhne výhod ASP.NET, ale je fakt, že ryhlosti a snadnosti programování by nemělo být dosaženo na úkor kvality, ale je ztráta kvality v ASP.NET opravdu tak velká? Rozhodně to není nejhorší.

    před 18 lety | reagoval [41] Borek
  35. DeaLer #35

    avatar

    #33 Davide Grudle, Sorry – špatně jsem tě pochopil. Pokud by např. RoundedBox stál na jiném frameworku, než je standardní APS.NET framework, tak si můžeš být téměř na 100% jistej, že ten framework získáš v nějaké podobě s RoundedBoxem a pravděodobně tak nebudeš mít problémy s jeho použitím.

    před 18 lety
  36. SneakerXZ #36

    avatar

    #32 DeaLere, Myslel jsem to tak jak píšeš, že klidně použiješ nějaké knihovny či komponenty chtěl jsem to zdůraznit v té závorce, že nepoužiješ framework…
    #33 David Grudl To máš taky pravdu, ale jak víš kolikrát musíš ohýbat? napiš mi něco co ti na ASP.NET vadí a trochu konkrétněji, abys mi nenapsal všechno. ;P

    před 18 lety | reagoval [37] DeaLer
  37. DeaLer #37

    avatar

    #36 SneakerXZi, Možná jsem tě pochopil špatně, ale ty myslíš, že tím, že si něco napíšu sám nebo použiju nějaký „cizí“ komponenty znamená, že nepoužívám framework?

    před 18 lety | reagoval [38] SneakerXZ
  38. SneakerXZ #38

    avatar

    #37 DeaLere, Ne tak docela. Blbě jsem to napsal. Tak se to pokusím napravit. Jde o to, že když programuješ v nějaký frameworku máš celkem luxusní věci k mání a vše spolu pěkně spolupracuje(databazé, kód, vzhled atd…), ale když potřebuješ něco co už nebylo ve frameworku zamýšleno tak máš problémy a musíš vymyšlet jak to „ohnout“.

    Natož když nepoužíváš framework musíš vše psát znovu i s tím, že použiješ nějaký cizí knihovny či komponenty. Pokud používáš hodně cizích komponent tak musíš vymyšlet jak to spolu bude spolupracovat, ale pokud si z toho uděláš jakýsi framework tak se zase můžou objevit problémy v odstavci jedna, ale je pravda, že když si to napíšeš sám nebo sestavíš tak dělat v tom změny je daleko jednodušší než v něčem co udělal někdo jiný.

    před 18 lety | reagoval [39] DeaLer
  39. DeaLer #39

    avatar

    #38 SneakerXZi, JJ – chápu, ale osobně jsem se nesetkal s tím, že by mi možnosti frameworku nestačily (tím nemyslím to, že součástí frameworku není nějaká komponenta, ale to, že by neobsahoval možnosti, jak tu komponentu poměrně snadno vytvořit).

    před 18 lety | reagoval [40] SneakerXZ
  40. SneakerXZ #40

    avatar

    #39 DeaLere, No, komponenty by měli jít vytvořit jednodušše v každém lepším frameworku. Což ASP.NET nabízí. Myslel jsem jak dxg zmiňuje vypínáni viewstate.

    Jinak spousty problémů co dxg zmiňuje nebo cituje byly neduhy ASP.NET 1.1 v ASP.NET 2.0 to doznalo značných vylepšení a kontrolovat renderováný kód je naprostá legrace. Stačí si napsat vlastni render pro jistou komponentu a kód je takový jaký chce vývojář. To, že MS komponenty maj tak hrůzný kód je kuli tomu, že MS si nemůže dovolit, aby to nefungovalo v IE 4.0 a kuli tomu je zpětná kompatibilita, ale nabízi samozřejmě nahrádní komponenty s CSS, které se daji stáhnout z MS webu. Problémy s GET url se dá vyřešit s technologii Cool URL, o které si myslím, že je daleko lepší než mod_rewrite. Problém s multi-stránky řeší master-pages.

    Asi takhle špatné stránky může psát člověk i v PHP i v ASP.NET to, že člověk nezná pořádně danou technologii a pak produkuje balast je více méně chyba vývojaře nikoliv vývojové platformy. Samozřejmě někdo rád trenky, boxerky nebo slipy tak stejné je to tu… Každý vždy haní to co nepoužívá a většinou je to způsobeno neznalostí a nikdy nemůže člověk napsat kvalitní srovnáni jelikož expert vždy může být jen v jednom a vždy bude trochu nadržovat tomu co má u něj větší sympatie nebo mu vyhovuje víc.

    před 18 lety | reagoval [42] DeaLer
  41. Borek #41

    Abych se přiznal, Davide, moc ti nerozumím a hlavně mi není jasné, čemu na mých komentářích nerozumíš ty :)

    Jistěže můžeš najít pár ASP.NET projektů, ve kterých RoundedBox použít nepůjde (bude se jednat o „hodně ohnuté ASP.NET“), ale takových případů bude velmi velmi málo. Přesné statistiky sice neznám, ale vzhledem k tomu, že i MVC frameworky typu MonoRail nemají při spolupráci s Web Forms žádný problém, nevidím mnoho důvodů pro používání vlastního ASP.NET šablonovacího systému.

    Ty tedy argumentuješ několika málo procenty (možná promilemi) případů, zatímco já argumentuji 100% webových aplikací postavených na PHP. Věřím, že si to uvědomuješ a jen mě zkoušíš :)

    Nyní k té implementaci šablonovacího frameworku na 50 řádcích. Netvrdím, že to není možné, ale i kdyby to byla práce na dva řádky kódu, jak to podle tebe ovlivní jednotlivé body z komentáře #29 Borek ? Mimochodem, chtěl bych se ohradit proti tomu, že „hraju překvapeného“ – jak se věci v PHP mají samozřejmě vím a nemyslím si, že bych se snažil působit jinak (aspoň ne vědomě).

    No a nyní k tomu poslednímu odstavci. Souhlasím s tebou, že kvalita a spokojený koncový zákazník jsou top priority. Mohl bych s tebou polemizovat, zda je kvalita vždy důležitější než jiné aspekty (např. korporátní zákazníci se software assurance asi nejsou moc rádi, že Microsoft při snaze o co nejlepší kvalitu už 5 let nevydal žádný operační systém), ale to je již skutečně off topic. Co bych od tebe skutečně rád slyšel, jsou konkrétní argumenty proti mému poslednímu odstavci. Já vím, že je nejjednodušší napsat pouze „nesouhlasím“, ale co přesně ti vadí? Pletu se snad v tom, že PHP některé věci nenabízí a v současnosti ani nabízet nemůže?

    Poznámka pod čarou: stejně jako #34 DeaLer mám lehký pocit, že se do toho začínají dostávat emoce. Není to mým cílem, rád bych se jim vyhnul a účelem mých komentářů není provokovat tě. Nejsem si úplně jistý, jestli mám ve všem věcech pravdu, a píšu je sem hlavně proto, abys mohl poukázat na konkrétní chyby, které jsem udělal. Silná slova o nepoužitelnosti ASP.NET asi není to, co by tuto diskuzi mohlo posunout dál. Souhlasíš?

    před 18 lety | reagoval [43] David Grudl
  42. DeaLer #42

    avatar

    #40 SneakerXZi, Pěkně napsaný. Pro neználky bych snad přihodil link na ty CSS adaptéry – už jsme na ně koukal, ale zatím jsem neměl příležitost je použít.

    Jen ještě k tomu viewstate – myslím, že je to užitečná věc, i když v některých případech může dosáhnout větší velikosti než je třeba. Nemělo by stačit ho ve web.config vypnout pro všechny stránky (vlastnost EnableViewState)? Popřípadě je možná komprimace – příklad někde na https://www.codeproject.com/.

    PS: já mám to štěstí, že jsem s ASP.NET 1.1– nikdy nepracoval.

    před 18 lety
  43. David Grudl #43

    avatar

    #41 Borku, Borku, rozlišujme prosím jasně, co je jazyk a co jsou knihovny a framework. Jazyk C# je mi milejší než jazyk PHP. Ale jako celá platforma pro běh webu je mi milejší Apache a (třeba) PHP5. Svým příkladem s RoundedBox jsi tento rozdíl smyl.

    Možná by stálo za to vymyslet konkrétní zadání jednoduché webové aplikace a pokusit se ji vyřešit na obou platformách a popsat (upřímně, bez nadržování) všechna úskalí a také výhody.

    Emoce do diskuse rozhodně dostávat nechci, poznámka o nevhodnosti technologie ASP.NET byla ve smyslu toho, co napsal #4 Rene.

    #20 bluee, až to jednou pochopíš, objevíš úžasný svět racionálního poznání.

    před 18 lety | reagoval [44] DeaLer
  44. DeaLer #44

    avatar

    #43 Davide Grudle, Nic proti – Apache je skvělej server, ale vadilo by ti používat kombinaci IIS 6.x a PHP 5?

    před 18 lety | reagoval [45] David Grudl
  45. David Grudl #45

    avatar

    #44 DeaLere, naprosto vadilo. Je to značné zjednodušování, že když tady mluvíme o PHP nebo ASP.NET, tak tím myslíme celou platformu (viz #8 David Grudl). Snadno to může vést k nedorozuměním.

    před 18 lety | reagoval [47] DeaLer
  46. myshpa #46

    avatar

    #7 Petře Šnajdře, vice info k php @ yahoo treba zde: https://web.archive.org/…zend2005.pdf

    před 18 lety | reagoval [51] David Grudl [110] Roman
  47. DeaLer #47

    avatar

    #45 Davide Grudle, Ten můj dotaz neměl mít žádnej vztah k předchozí diskusi – jen mě to zajímalo.

    PHP beru jako jazyk a ASP.NET jako část frameworku a nesnažím se je pokládat na stejnou rovinu (pokud jsem to někde udělal, tak sorry).

    před 18 lety
  48. myshpa #48

    avatar

    Nechapu tuhle diskuzi. Na PHP existuji stovky frameworku, napsat si vlastni maly MVC framework [vc. pear, smarty] je zalezitost par desitek radku.

    Co je super je to, ze mi nikdo neurcuje JAK. Jestli ma nekdo pocit, ze prace v .NET je komfortnejsi, ja mu to neberu.

    Ale radeji si stejne jako DGX udelam neco, cemu rozumim, co pak pouzivam ve vsech dalsich projektech, kde vim kam sahnout a co zmenit bez dalsiho studia.

    Rychlost vyvoje imho srovnatelna s vyvojem v .NET, kvalitu web aplikaci snad neurcuje pouzity framework, nejaky rounded box v dll neni vyhoda [dll se da nacpat stejne i jako extension do phpka], naopak je to kravovina cpat 6 vytvorenejch divu do vyslednyho html, kdyz je to zalezitost vzhledu [tj. jako ideal vidim zrovna pro tohle kombinaci skriptu v JS na 10 radku + CSS, vytvorit rounded box pak staci vlozit 1 js knihovnu + dat nejakymu divu v template classu].

    Hm … ma tahle diskuze vubec smysl, dgx ? Tohle se prece neda sdelit nekomu, kdo nikdy kod v PHP ani nevidel.

    před 18 lety | reagoval [49] DeaLer [50] SneakerXZ
  49. DeaLer #49

    avatar

    #48 myshpo, Já jsem PHP kód viděl a dobu jsem se ho snažil používat.

    Proč myslíš, že DGX napsal tenhle článek? Proto abysme si jen znovu přečetli jeho subjektivní názor?

    Jsem na tom stejně jako ty – taky rád používám něco čemu rozumím.

    před 18 lety
  50. SneakerXZ #50

    avatar

    #48 myshpo, To je právě, že ty hodnotíš rychlost tvorby na základě toho, že v PHP vyvíjiš rychle a myslíš si, že to rychleji nejde, ale jde.

    Ještě k tomu tvýmu extensionu samozřejmě, že nikde nejsou žádné limity. Můžeš do Apache přidat dll jako extension, ale rozdíl mezi těmito dll je, že ten plugin(komponenta) do ASP.NET nemusí přidávat administrátor serveru, ale může ho přidat i jako vývojář aplikace a import té knihovny je daleko komfortnější než kdybys měl přidávat nějakou knihovnu do Apache a další rozdíl je ten, že ta knihovna je napsána v C# či jiný .NET jazyk kuli Apache bys zas musel studovat API o hledně tvorbě extensionu atd.

    BTW: Ten Rounded box tam nevkláda 6× záleží jak je napsán. Může být napsán, že se mu nastavít pouze data source a z něj si bere všechny informace. Jak jsem řekl vyšše každému může vyhovovat něco jiného.

    U PHP já dobrě hodnotím to, že můžeš vyvíjet aplikace aniž bysi znal dobře PHP je to pro mnohé lidi taková nadstávba HTML a přechod z HTML na dynamické stránky dělané pomocí PHP s HTML je jednoduchý jelikož nemusí se učit spoustu nových věcí a jak v tom postupně programují tak nabývaji zkušeností až jim tam nic nechybí a dosáhnou kvalitní úrovně. Natož kdyby se rozhodli pro ASP.NET tak by museli svou stránku plně naklikat(což se mnohým nemusí líbit) jelikož kdyby chtěli psát kód na, který byli zvyklí(HTML) a s dynamičnit ho psáním programového kódu tak by se museli učit rozsáhle věci a to moc lidí nechce když začíná.

    Je to pouze volba :)

    před 18 lety
  51. David Grudl #51

    avatar

    Mám pocit, že RoundedBox tu nadělal víc zmatků, než užitku, už ho prosím neřešte. Stejně, jako lze do ASP.NET & Web Forms napsat plugin, tak lze i do PHP & Prado napsat totéž. Nebo do ObjectPascalu & VCL (Delphi). Ale zmínky o Apache nebo PHP extension už jsou dočista out of topic.

    #46 myshpo, díky za odkaz. Sice je to spíš prezentace s velmi „bodovým“ obsahem, ale obří web bych dnes navrhoval podobným způsobem

    před 18 lety
  52. Borek #52

    Ještě bych rád ujasnil jednu věc, ve které se mi zdá, že nemáme stejný výchozí názor. Osobně PHP považuji za framework nebo lépe řečeno za platformu pro vývoj webových aplikací. Je pravda, že bych v ideálním případě měl rozlišovat mezi PHP a Zend Engine, ale všude uvidíš „naše aplikace je postavená na PHP+MySQL“ místo „naše aplikace je postavená na Zend Engine + MySQL“, takže se mi to už jaksi vrylo do podvědomí. Pokud tedy mluvím o PHP, téměř vždy tím myslím aplikační platformu, ne jen jazyk.

    Jinak mi tato diskuze vůbec nepřipadá bezpředmětná a rád bych znal tvoje vyjádření na komentář #29 Borek, respektive jeho poslední odstavec (nějaké delší než „nesouhlasím“). To, že PHP chybí tovární framework, je v mých očích vysvětlením, ale nikoliv argumentem.

    No ale teď už se půjdu věnovat příjemnějším věcem, takže pokračování zítra :)

    před 18 lety | reagoval [53] David Grudl
  53. David Grudl #53

    avatar

    #52 Borku, PHP určitě za framework nepovažuj. To je

    1. programovací jazyk
    2. jeho interpret
    3. dají se tam zahrnout i výchozí knihovny funkcí.

    Za platformu považuji kombinaci PHP & Apache & Unix, ale už jde o volitelnou kombinaci tří nezávislých produktů.

    Pod PHP existuje celá řada lepších či horších frameworků, třeba CakePHP (inspirován Ruby on Rails), PRADO (obdoba Web Forms z ASP.NET), Seagull, Nette (které jsem se rozhodl syslit). Pokud by PHP bylo samo o sobě frameworkem, jak potom nazývat tyto systémy? (i když, slovo framework je poněkud mnohoznačné)

    V této souvislosti si v komentáři #29 Borek zaměň ASP.NET za (třeba) VisualBasic a ztratí hned smysl. Mohu dělat pluginy-komponenty pro PHP jakožto c) knihovnu funkcí (a že jich je), i pro PHP jakožto b) interpreter (např. APC) a dokonce pro PHP jakožto a) jazyk (např. ArrayAccess či přetěžování operátorů). Ale ty jsi měl na mysli PHP jakožto framework, což však není.

    Na ASP.NET mi vadí paradigma tvorby webových aplikací, které vede k takovýmto hrůzám. V PHP by to profík nikdy nevytvořil, protože ho k tomu nic nevede (žádný DevDays nebo Michal Valášek 😉. Leda, že by propadl PRADO. Proto tvrdím, že lepší žádný framework než špatný.

    Stejně mám pocit, že některé věci se nedají klábosením vysvětlit, proto nabízím spolupráci na nezávislé analýze při velmi vytvoření jednoduché aplikace s maximálními technickými nároky na kvalitu a především správu.

    před 18 lety | reagoval [54] DeaLer [57] jméno [62] Borek [64] Borek
  54. DeaLer #54

    avatar

    #53 Davide Grudle, Ten web, na který jsi odkázal už asi 2× je odrazující příklad a jestli si ten co to dělal řiká profík, tak ho lituju, ale pro tebe asi nejhorší příklad mluví za všechny. Já se rozohodně za profíka nepovažuju, ale takhle špatnej web si nedovolím vytvořit – jistě uznáš, že má homepage je na tom z hlediska kódu o něco líp.

    To Borek, DGX: Za jak dlouho by asi začínající programátor v PHP / ASP.NET (C#), s průměrnou znalostí (X)HTML a s povrchní znalostí připojování k DB vytvořil jednoduchý více vláknový diskusní fórum s podporou více témat, jednoduchým hledáním a přihlašovacím systémem? Diskuse by měla obsahovat tři uživatelské role – uživatel, moderátor a admin.

    Admin má samozřejmě nejvyšší práva (může přidávat, mazat a upravovat vlákna, témata a příspěvky, může přidávat, mazat uživatele a upravovat jejich údaje). Moderátor může přidávat, mazat a upravovat vlákna a příspěvky. Uživatel může přidávat vlákna a příspěvky. Nepřihlášený uživatel může v disusi pouze číst.

    Ve výpisu témat se zobrazuje počet vláken v tématu. Ve výpisu vláken se zobrazuje zakladatel vlákna, počet příspěvků a autor posledního příspěvku ve vlákně. Ve výpisu příspěvků je přimá možnost vložení odpovědi.

    To už prosím nezapočítávejte do přibližného výsledného času - jestli jsem nezapoměl na nic podstatnýho, tak už dál přijde jen doplňování detailů, na které začínající programátor zpočátku nemyslel a případné ladění podle požadavků okolí.

    Profi programátor by šel ještě dál, ale tohle by mělo stačit.

    PS: tento model diskuse jsem vzal ze svého webu a pro lepší představu se můžete podívat a nebo se na to celý můžete vykašlat – to záleží jen na vás.

    před 18 lety | reagoval [77] David Grudl
  55. llook #55

    avatar

    Klíčové slovo, které tu myslím ještě nezaznělo je tzv. deployment, neboli činnost, potřebná ke spuštění napsaného programu.

    U čistého LAMPu spočívá v uložení souborů do správného adresáře. Žádný prostor pro generování kulatých obrázků a jiné činnosti.

    To neznamená, že v PHP nejde napsat to samý co v ASP.NET, znamená to jenom to, že se na to musí jít jinak a že lze najít případy, kdy méně pohodlně.

    U těch bezobrázkových si dokážu představit implementaci, která by se používala nějak takto:

    <?php KulatyRohy::begin("velky", "cerveny") ?>
    obsah bloku
    <?php KulatyRohy::end(); ?>
    před 18 lety | reagoval [64] Borek [78] David Grudl
  56. DeaLer #56

    avatar

    Moje řeč – https://web.archive.org/…80/zapisnik/?….

    Všichni co v téhle diskusi pomlouvali výstup asp.net (a nejen oni) by si to měli přečíst, aby viděli, že se dá dělat i víc, než jen do prázdna vykřikovat, že se jim to nelíbí, že to nejde a že je nutný nějak „ohýbat“ framework.

    před 18 lety | reagoval [61] Roman
  57. jméno #57

    #53 Davide Grudle, Nějak nemůžu pochopit vaši nenávist k panu Valáškovi. Jeho videoprezentace jsou, myslím, velice příkladné. Je sice pravda, že naklikání částí (button, imput,…) není nejvhodnější, ale to je především proto, že je to prezentace, kde by složité vypisování kódu nudilo. Já si kód píšu sám a informace z přednášky využívám také. Profi programátor se totiž musí naučit filtrovat a svým logickým myšlením jít dál.

    před 18 lety
  58. Roman #58

    avatar

    „Nějak nemůžu pochopit vaši nenávist k panu Valáškovi.“ Milujem tieto emocionálne vydieračské argumentačné ňuansy, zvyčajne si predstavujem, že ich píšu manželky kritikou postihnutých jedincov, ale keďže sa takéto správanie vyskytuje čoaz častejšie, je dosť možné že sa to stáva súčasťou bežného spôsobu komunikácie. Už len teraz zistiť pôvod tohoto fenoménu. že by politické diskusné pořady?

    před 18 lety | reagoval [59] DeaLer [66] jméno
  59. DeaLer #59

    avatar

    #58 Romane, Lol. Proč myslíš, že se autor/ka toho příspěvku nepodepsal/a?

    před 18 lety | reagoval [66] jméno
  60. Ondra #60

    avatar

    .net je proste k nicemu a hotovo, staci mi kdyz se podivam jakym zpusobem si prirovnal microsoft C k jejich obrazu (C#) a uz je mi na bliti. Ondra

    před 18 lety | reagoval [63] DeaLer
  61. Roman #61

    avatar

    #56 DeaLere, Ten článok ale nijak nevyvracia DGX-ov fikaný výrok že „Pro mě je vždy naprosto klíčové řešit příčinu problému, nikoliv jeho následek. Tedy navrhnu-li něco nešťastně a zároveň nabídnu možnost, jak důsledky napravit, tak to neznamená, že jsem věc navrhl správně. Stále platí, že jsem ji navrhl špatně.“ 😉

    Najviac sa mi páči táto veta: „When the sample adapters are in use, superfluous and old-fashioned styles are still sometimes added to the page's HEAD. These styles come from deep within the framework and are difficult to prevent. Though it would be best if they didn't exist on the page since they are superfluous, they are basically harmless.

    Ale inak sa mi ten CSS Friendly ASP.NET 2.0 Control Adapters páči hlavne to že to ovlyvní markup vybraných ASP.NET controls v rámci celého projektu, takže kto má tú potrebu, naozaj si tým vie výstup vyčistiť. A určite je to lepší prístup ako púštať na výstup „sadu regulárních výrazů“

    před 18 lety | reagoval [63] DeaLer [77] David Grudl
  62. Borek #62

    #53 Davide Grudle, Slovo framework jsem zvolil špatně, taky za něj PHP nepovažuju. Úplně nejlepší mi přijde nazývat jak ASP.NET, tak PHP platformou. Ty sice do platformy počítáš ještě webový server a operační systém a já proti tomu vůbec nic nemám, nicméně u většiny dostupných PHP aplikací je často fuk, na jaké kombinaci OS+web server je budeš provozovat, takže i PHP samotné v určitém smyslu platformou je. V tomto smyslu mi připadá v pořádku srovnávat platformu PHP s platformou ASP.NET – to jen na vysvětlenou lidem, kteří říkají „prohoba, jak můžeš srovnávat skriptovací jazyk s frameworkem“.

    Jinak si taky myslím, že takovéhle „klábosení“ skutečně nikam nepovede. Já jsem víceméně všechno, co mě ve vztahu k článku napadlo, řekl. Asi jsem tě o některých výhodách ASP.NET nepřesvědčil, jako jsi ty nepřesvědčil mě, že se mýlím. Určitě by bylo nejlepší dohodnout zadání webové aplikace a pak třeba ve formě screencastu předvést, jak budeš postupovat v ASP.NET a jak v PHP. Docela rád bych se toho zúčastnil, ale upřímně řečeno se mi do toho teď nechce – máme zařizování s Anglií a nerad bych přislíbil něco, na co mi nakonec nezbude čas. Ale až se jednou budu nudit… :)

    Díky za pokec.

    před 18 lety
  63. DeaLer #63

    avatar

    #61 Romane, JJ. Já jsem netvrdil, že ten článek má někomu něco vyvrátit, ale jen, že by si ho tu někdo měl přečíst.

    #60 Ondro, Ty seš teda lama – necpi sem ty ubohý názory.

    1. C# z původního C nemá prakticky nic (stačí se podívat na syntax a způsob tvorby – určitě i ty najdeš rozdíl). Něco si převzal z C++, ale to udělalo hodně jazyků (PHP, Java a další).
    2. MS si pro .NET Framework a jazyk C# vzal inspiraci v Javě a udělal to legálně na základě mnohamilionové smlouvy, kterou MS podepsal se společností Sun Microsystems (https://web.archive.org/…23sunpr.mspx, https://web.archive.org/…msmoves.html, https://web.archive.org/…/default.htm, https://www.bloomberg.com/tosv2.html?…).

    Pokud tedy nemáš doložitelný argumenty, tak tě znovu žádám, aby sis je nechal pro sebe.

    před 18 lety | reagoval [117] Ondra
  64. Borek #64

    #55 llooku, Tvůj příklad je důvod, proč uvádím zrovna RoundedBox a ne jiný control, třeba Button. Kompletní příklad by totiž vypadal takto:

    <html>
    <head>
      <title>Příklad</title>
      <!-- další head tagy -->
    </head>
    <body>
    
      <?php KulatyRohy::begin("velky", "cerveny") ?>
      obsah bloku
      <?php KulatyRohy::end(); ?>
    
    </body>

    Ty si asi představuješ, že metoda begin() se nahradí nějakými divy, případně s přednastavenými inline styly, třídami a podobně, pak se vypíše text „obsah bloku“ a metoda end() se nakonec nahradí uzavíracími divy.

    Jak ale budeš postupovat, když se ke generování kulatých rohů bude používat JS knihovna Nifty Corners? Ta totiž vyžaduje, abys do HTML hlavičky přidal odkaz na externí JavaScriptový a CSS soubor. V ASP.NET to vyřešíš jednoduše: v nějakém brzkém stádiu životního cyklu stránky programově změníš obsah elementu <head>. V PHP máš za standardních okolností problém: ve chvíli, kdy interpret narazí na KulatyRohy::begin(), už byla HTML hlavička odeslána prohlížeči a nemůžeš ji tedy modifikovat. Možností řešení je několik: manuální instrukce vývojáři, output buffering, použití šablonovacího systému nebo frameworku a možná ještě něco dalšího, ale nevím o žádném způsobu, který by byl stejně elegantní a bezproblémový jako použití <bb:RoundedBox> v ASP.NET.

    Zde se vracíme k mému komentáři #29 Borek, který rozepisuje důsledky tohoto rozdílu mezi PHP a ASP.NET. To, co David v komentáři #53 David Grudl nazývá komponentou, má ve skutečnosti k ASP.NET controlu velmi daleko. Toto je z mého pohledu nejpodstatnější rozdíl mezi PHP a ASP.NET a abych řekl pravdu, připadá mi, že controly přinášejí do ASP.NET tolik výhod, že to stojí za překonání určitých úskalí, které jsou ASP.NET vyčítány. Ale třeba David tyto výhody za tak důležité nepovažuje, takže vidíš, že se jedná o věc názoru.

    před 18 lety | reagoval [68] error414 [78] David Grudl
  65. Marcus #65

    Dobry den!

    Diky za citaci :) Kazdopadne mam dojem, ze byla zneuzita a to se mi nelibi. Moje kritika je ostra vuci Microsoftu ale stejne tak by byla ostra vuci PHP, ve kterem mame mnoho projektu. Presto si porad myslim, ze ASP.NET je vyborne technicke prostredi, ale nelibi se mi pristup Microsoftu v tom, ze nedotahuje svoje reseni.
    Osobne bych byl spokojeny, kdyby ASP.NET bylo v open source podobe jako PHP a nemel ho MS pod kontrolou. Ale pokud jsme volili, tak PHP ma oproti ASP.NET velmi „slabe“ (sakra ja snad napisu nejake skutecne profi srovnani :))) ).
    Ale ASP.NET mam mnoho neduhu a je tam silene chyb. Totez je v PHP a mozna jeste vice. Kazdopadne na velke projekty se nam vyrazne nevyplatilo PHP pouzit a to jsme ho meli take ohnute, ale jinym smerem (hlavne unifikace frameworku, funkcnich modulu, load-balancing ja dalsi silenost v PHP atd).
    Co mohu rici je jedno, ASP.NET ma silene problemu, ale zatim je to podle mne nejlepsi volba ale vyvojari musi na Microsoft rvat a musi ho dokopat k tomu, aby si s lidma nehral a aby konecne dotahoval svoje produkty a pak to nedohanel tim, ze vydava nove verze produktu, co jako jsou super nove verze, ktere ale jen opravuji stare chyby. Za to by si MS zaslouzil nakopat, protoze jde casto hrozne do sirky a nezvlada pak udelat veci vertikalne dobre. Proto lidi ohromuje zdanlive tisici novyma featurama, ale ty jsou pak desne nedotazene. Proto jak rikam, at MS je kopan vyvojarema do zadku a zacne konecne dotahovat svoje produkty a ne to dohanet klikacima prezentacema.

    před 18 lety | reagoval [69] DeaLer [75] Roman [77] David Grudl
  66. jméno #66

    #58 Romane, #59 DeaLer Ne, opravdu nejsem manželka ani manžel. Jde mi o to, jak někdo může jen tak kritizovat nějakého člověka za jeho styl práce, který je značně ovlivněn přednáškou (čas+informační hodnoty). Přednáška není o tom se tupě naučit vše, co lektor dělá, ale filtrovat postupy a na základě nich vymyslet něco nového. Osobně mi to od člověka, který na Lupě vydal tupou zprávičku o automatické generaci obsahu přijde dost ubohé.

    před 18 lety | reagoval [69] DeaLer [74] Roman
  67. Marcus #67

    Jo a jeste pochvala pro DGX za to srovnani ;) Stotoznuji se s nim. Podle me to VUBEC neni o tom, jestli je asp.net lepsi nez PHP. Jsou ruzna reseni a ruzne volby, ale vzdy jde o ten profesionalni pristup a muj pohled je to, co jsem psal v tom prvnim prispevku – KOPA vsechny ty autorske firmy k tomu, aby nam nevnucovali nesmysly, ale pomohli nam udelat profesionalni produkty, kdy nasi klienti budou spokojeni.
    A proto je nutne PORADNE kopat do zadku Microsoft, Sun, IBM…proste vsechny, co delaji ASP.NET, JSP a dalsi nastroje, ktere casto jen nam vnucuji jejich logiku mysleni. Meli bysme proto mene bojovat mezi sebou, zdali je asp.net nebo php nebo jsp lepsi, ale radeji kopat ty autory, protoze oni sami chteji, abysme my mezi sebou valcili, z toho tezi a to podoruje jejich byznys. Ale my chceme mit pekne nastroje, dobry vystup a vubec spokojene delat nasi praci a ne se trapit tim, ze nas firmy zneuzivaji jako predvoje pro svuj byznys.
    Proto jeste jednou se pripojuji k tomu srovnani a navrhuji jedno: pojdme spolecne bojovat PROTI tem velkym firmam a rikam jim, ze maji nam naslouchat a ze my jsme jejich klienty a oni maji nas ucinit stastnyma :) A tim, ze valcime mezi sebou fakticky ztracime, protoze ty firmy neciti na ne tlak a nakonec na tom prodelam vsichni. howk :)

    před 18 lety | reagoval [69] DeaLer
  68. error414 #68

    #64 Borku, to co uvadis stim odeslanim hlavicky
    PHP máš za standardních okolností problém: ve chvíli, kdy interpret narazí na KulatyRohy::begin(), už byla HTML hlavička odeslána prohlížeči a nemůžeš ji tedy modifikovat.

    Sestavis si cely kod a pak ho teprve posles, dela to tak 90% velkzch projektu. To co uvadis by napsal clovek ktery nepotrebuje modifokovat hlavicku nebo clovek ktery se uci PHP 2 dny.

    ASP .NET a PHP dela stejny vysledek jen s jinym postupem.
    Jedina vec o ktere se da bavit je s jakym usilim se dostanu do cile.

    před 18 lety | reagoval [76] Borek
  69. DeaLer #69

    avatar

    #65 Marcusi, #67 Marcus Hmm – co dodat. Do nich.

    #66 jméno, Nevím jak jsi to udělal, ale videntně víš, co si David myslí o Altairovi a nevím jak je to možný (asi telepatie – to zatím neumím, třeba časem), protože já tady na něj nevidím žádnou přímou kritiku ani projev nenávisti.

    Jen by mě zajímalo, jestli se tady dozvím ještě něco novýho, protože už se to tu více-méně opakuje.

    před 18 lety
  70. Marcus #70

    Jeste jeden komentar k tomu, co je opet chybne zde prozentovano, sorry DGX:

    .NET má framework nevhodný (až nepoužitelný) pro tvorbu internetových stránek

    Tohle prave ze neni pravda. Zkusim to upresnit:

    1. Framework chapu jako zakladnu objektovych funkci, co je prirovnatelna k STL apod. Mimo to nabizi more dalsich zakladen jako je messaging, pooling, kryptografie atd.
    2. webovy framework – to je pro me zaklad pro vyuziti bodu 1, neboli zpusob, jak funkcnost z 1 dostat do web

    A prave u bodu 2 kritizuji VELMI ostre Microsoft, protoze to, co MS ukazuje a nabizi default je spatne (jak uz jsem psal). Ale ohnout to jde a to ohnuti znamena to, ze si navrhnete svoji architekturu, ktera zmeni chovani ASP.NET oproti tomu, co MS prosazuje. A tohle pokladam za obrovskou silu, protoze ta architektura muze byt skutecne velmi kvalitni OOP navrh s vyuzitim vsech enterprise prvku z 1 a z operacniho systemu.
    Co rikam tedy k bodu 2 je to, ze MS udelal dobry zaklad, ale ze to NEDOTAHNUL, odflaknul to a ze MS neni poradne kritizovan aby poslouchal hlasy vyvojaru a nedelal paskvil a ten pak ve svych prezentacich nenutil vyvojarum jako uzasny postup. TOHLE mi vadi, ze MS se snazi svoje chyby ukazat jako uzasne a namisto aby dotahnul svoje jinak vyborne napady, tak nas nuti je dotahnut sami a jeste nas nuti do cesty, ktera je nepouzitelna v default rezimu.
    Proto kdyby ASP.NET bylo open source, tak verim, ze by to byl dneska absolutne nejlepsi prostredi. Ted si myslim, ze v default rezimu je ASP.NET vyrazne horsi nez PHP, ale kdyz ho upravite, jako jsme udelali my, tak PHP obrovsky prekonava (vykon, kvalita kodu, OOP navrh, testing atd.). Ale stalo nas to rok prace.

    před 18 lety | reagoval [77] David Grudl
  71. Jméno #71

    Zkoušeli jste někdo Ruby on Rails? Nebo přímo Ruby?

    před 18 lety | reagoval [73] Marcus
  72. Marcus #72

    #4 Rene, Wow, rene. TOhle je vynikajici shrnuti :) Naprosto se s nim stotoznuji. A skutecne mohu rici, ze je to presne.
    ASP.NET je default rezimu, jak ukazuje MS na akcich desne. ALe klidne muze vyvojar psat pres Response jako v PHP a echo.
    Ale proc my jsme zustali u .NET a nesli do Javy (PHP skutecne pokladame za amaterske, a to v nem delame uz skoro 8 let) tak to proto, ze ASP.NET je otevrene kvalitnimu navrhy nasi architektury. Jedine co nas sere je to, ze SUPLUJEME praci Microsoftu! A pak jeste videt na akcich, jak se prezentuje, jak nekdo naklika uzasny web za chvilku bez radky kodu! To me skutecne HODNE irituje, protoze to je lez!
    Ale pokud by se ukazalo napr. tvorba nad dobre napsanym web frameworkem, tak je to super a skutecne sila .NET vynika.

    před 18 lety
  73. Marcus #73

    #71 Jméno, JOjo, my s tim nejaky cas delame. Je to pomerne hezke, hlavne jsme to zkouseli na scriptaculous a nejake ajax veci. Presto tam opet je nutne delat upravy, hlavne proto, ze scriptaculous je jeste porad velky JS framework a je nutne ho vyrezat :)
    Jinak ROR je hezka zalezitost, presto tam behem pomerne kratke doby narazite na obdobne problemy jako treba u asp.net, ze kdyz chcete nektera specifika, musite si to upravit. Ale my to primarne pouzili na vyvoj neceho podobneho jako je pageflakes.com, tedy ne prilis backend funkcnosti.

    před 18 lety
  74. Roman #74

    avatar

    #66 jméno, Na toto hadam ani nemá zmysel reagovat. Ale aspon poviem prečo. Za prvé si anonym a za druhé si práve jasne ukázal že si ignorant ktorý sa tu ukázal úplne náhodne a o DGX-ovi vie velký kulový. Zbohom.

    před 18 lety
  75. Roman #75

    avatar

    #65 Marcusi, !Ale ASP.NET mam mnoho neduhu a je tam silene chyb. Totez je v PHP a mozna jeste vice. Kazdopadne na velke projekty se nam vyrazne nevyplatilo PHP pouzit a to jsme ho meli take ohnute, ale jinym smerem (hlavne unifikace frameworku, funkcnich modulu, load-balancing ja dalsi silenost v PHP atd)."

    Toto ma zaujima. Kedze ako som uz spomínal, o ASP neviem nič. Rád by som sa dozvedel viac podrobností ako zvláda ASP.NET veľkú zaťaž (rádovo stovky dotazov za sekundu). Jednoserverová inštalácia predsa musí mať tiež svoje limity?

    ASP.NET sa predsa musí potýkať prene s tými istými problémami vyťaženosti „zásuviek“ nielen na strane servera ale aj v prípade vyťaženosti samotného sieťového hardware.

    před 18 lety
  76. Borek #76

    #68 error414, Já mám v oblibě empirické důkazy. Je mi jedno, co jak dělá 90% velkých projektů, ale ASP.NET komponentová technologie je a PHP není. Proto si z netu můžeš stáhnout sofistikované data gridy, file managery, RoundedBoxy a řadu dalších užitečných věcí, zatímco ve světě PHP podobná nabídka neexistuje. Můžeš argumentovat třeba serverem hotscripts.com, ale rozdíl mezi komponentou a volně dostupným zdrojovým kódem je propastný. Proto moje první otázka v této diskuzi byla, co by dgx dal v případě implementace RoundedBoxu v PHP veřejně ke stažení. Konkrétní odpovědi jsem se přirozeně nedočkal (David popsal, jak by se to dalo řešit, ale to byla jen část otázky; na zbylou část uspokojivá odpověď neexistuje).

    Jak jsem už řekl, já vůbec nezpochybňuji, že technologií PHP i ASP.NET lze vygenerovat úplně stejnou výslednou stránku, stejně jako nezpochybňuji, že se z Pardubic dostanu do Prahy jak mercedesem, tak na kole. Jen říkám, že konečný cíl není jediným kriteriem posuzování platformy/frameworku/technologie.

    před 18 lety | reagoval [78] David Grudl
  77. David Grudl #77

    avatar

    #54 DeaLere, víš, ona kvalita kódu bývá mylně zaměňována za validitu. Ta ale nemá pro uživatele zas takový vliv (bývá přeceňována). Kvalita je souborem mnoha faktorů, validita je jedním z mnoha.

    Při pohledu na kód tvého webu mě jako první napadá: proč je tam obrovské skryté pole __VIEWSTATE? Proč se bez JS nemohu přihlásit? Proč máš multiplicitu obsahu (jedna dva tri …)?

    To jsou významné kvalitativní nedostatky. A nemá smysl argumentovat, že __VIEWSTATE tam být nemusí. Nemusí, ale je tam. Neboť jde o výchozí přístup a jeho odstranění znamená více úsilí. A přitom jsou v něm uloženy třeba barvy nebo popisky nějakých tlačítkek. Proboha proč? Koho by napadlo (před existencí Web Forms) něco takového posílat přes skryté pole formuláře? Leda blázna.

    Proto tyto „vady“ nepřisuzuji primárně tvůrcům pod ASP.NET, ale ASP.NET a Microsoftu jako takovému. Protože své vývojáře k tomu „manipuluje“.

    Aktivity Microsoftu v „očistě kódu“ (viz #61 Roman) věc jen zamlžují, protože vývojář si myslí, že tím je vše vyřešeno, ale ono to tak není. Reší to malé procento problematiky.

    #65 Marcusi, Marcusi, určitě jsem nechtěl použít tvých citací jako argumentaci za PHP – jen otevřít oči nadšencům s VisualStudiem, že nejsou tak na koni, jak se domnívají.

    Myslím, že nám jde o totéž, rozdíl je v tom, že ty jsi investoval moře času k ukočírování ASP.NET, já moře času pro zvládnutí PHP (viz poslední věta článku).

    #70 Marcusi, jistě, diskuse se týká vyloženě bodu 2. Asi by bylo lepší psát framework Web Forms.

    před 18 lety | reagoval [78] David Grudl [79] DeaLer
  78. David Grudl #78

    avatar

    #64 Borku, Tohle je myslím zrovna velice nešťastné. Ufff. Bavme se teď „top profi“ :)

    V PHP (bez jakýchkoliv knihoven) se to dělá třeba takto:

    // načteme šablonu (to udělá framework)
    $tpl = new SimpleXMLElement('template.xhtml');
    
    // změníme title
    $tpl->head->title = "Úvodní stránka";
    
    // přidáme stylesheet (to udělá třeba plugin)
    $el = $tpl->head->addChild('link');
    $el["rel"]="stylesheet";
    $el["type"]="text/css";
    $el["href"]="css/style1.css";
    
    // zpracujeme <bb:RoundedBox>, udělá plugin
    foreach ($tpl->xpath("...") as $el) {
        $el->append....
       ....
    }
    
    // pustíme to na výstup, to udělá framework
    echo $tpl->asXML();

    tohle prosím srovnávejme s ASP.NET. Naopak tohle #55 llook srovnávejme s Response.Write bez použití Web Forms. Ok?

    #76 Borku, Borku, ty zase nemůžeš pochopit, že ta komponentová technologie v ASP.NET je špatná, špatná, velmi špatná. Takže prostě nikdy nemůžu prohlásit „ano, tady má ASP.NET značný náskok“, protože tady má ASP.NET značný průser. Viz odpoveď DeaLerovi (#77 David Grudl).

    Tady je asi kámen úrazu.

    před 18 lety | reagoval [80] DeaLer [97] Borek
  79. DeaLer #79

    avatar

    #77 Davide Grudle, JJ – často to bývá zaměňováno, ale naštěstí ne mnou (validita je pro mě jedna z posledních věcí co mě zajímaj když už dělám nějakej web).

    Používám non-case-sensitive adresy, takže multiplicitu obsahu pokud vím nemůžu vyloučit (ale jistej si tím nejsem).

    Já se tedy bez JS přihlásit můžu (zkus to tady) – jediné co bez JS nefunguje je postback a ten je na celém webu použit jen velmi zřídka.

    MS mě k ničemu nemanipuluje, já jsem na ASP.NET naprosto dobrovolně a ze své vlastní vůle a dobrovolně snáším jeho případné nmedostatky.

    Jednotlivé komponenty ukládají (mohou ukládat) své informace do viewstate. Proč se to dělá? Přečti si tenhle článek a třeba pochopíš, že je to troufám si říct nejlepší způsob jak provádět to, k čemu e viewstate určené.

    Velmi snadno je možné aspoň částečně omezit velikost viewState – stačí změnit vlastnost enableViewState v souboru web.config na hodnotu false, ale já k tomu nemám důvod, protože viewState na mém webu je velikostí v mezích únosnosti a na tom nehodlám nic měnit.

    Microsoft přinesl už více inovativních myšlenek (ty taky před tím nikoho nenapadly), než jen viewstate- bez ohledu na to jestli je to dokonalý.

    Viděl jsi výstup ASP.NET 1.x bez úprav a výstup ASP.NET 2.0 vedle sebe? Zkoušels je porovnat? Asi ne, protože jinak bys věděl, že MS společně s jednou společností (na název si teď nevzpomínám) udělal opravdu velký pokrok směrem ke kvalitě kódu v ASP.NET 2.0.

    Myslíš, že ty jsi s PHPčkem a editorem (asi PSPad), co používáš nějak extra na koni?

    PS: web forms ani ASP.NET není framework – je to jen součást frameworku

    před 18 lety | reagoval [82] David Grudl
  80. DeaLer #80

    avatar

    #78 Davide Grudle, Opět bys neměl házet všechno na jednu hromadu – komponentovej systém není špatnej, ale špatná je velká část komponent (já s tím nesouhlasím, ale v tvém případě bych to řek takhle).

    před 18 lety | reagoval [82] David Grudl
  81. DeaLer #81

    avatar

    Teď mě napda rozdíl se kterým budou jistě všichni souhlasit – v PHP je interpretovanej kód a v ASP.NET je kompilovanej kód.

    před 18 lety | reagoval [84] Roman
  82. David Grudl #82

    avatar

    #79 DeaLere, neber to prosím osobně, ale právě tvůj komentář je hezkou ukázkou manipulace Microsoftem, dá-li se to tak říci.

    Prostě bez JS se nedostanu na přihlašovací stránku, na první stránce s výchozím stavem vidím viewstate – a místo toho, aby ses pokusil pochopit, proč je to špatně, proč je to z profesionálního hlediska naprosto přípustné, tak tu obhajuješ, že to vlastně tak moc špatně není, dokonce že je to vlastně dobře. Věř mi, že není.

    Ale jsme v jádru problému! Tohle přesně na ASP.NET kritizuji a snažím se vývojářům otevřít oči a sdělit jim, že tudy ne. Nevěřte Microsoftu ani klikajícím přednášejícím. Jednou to stejně pochopíte, ale proč to nepochopit hned?

    #80 DeaLere, bohužel chyba je už v samotném komponentovém systému, jak jej programátoři Microsoftu navrhli & implementovali. Což samozřejmě nevylučuje, že i řada komponent může být špatných nebo naopak dobrých.

    před 18 lety
  83. Petr Stříbný #83

    Můžeš mi, dgx, prosím tě vysvětlit co je špatné na viewstate? Že zabírá moc místa v kódu? Já si myslím, že docela usnadní spoustu věcí a pokud je správně použit, nevidím v něm problém.

    Osobně si myslím, že těch pár KB v dnešní době ve většině případů nehraje roli.

    před 18 lety | reagoval [85] Roman [86] David Grudl
  84. Roman #84

    avatar

    #81 DeaLere, Trošku preskakuješ. Chceš asi povedať, že stránka napísaná v ASP.NET je v zásade rýchlejšie spracovaná ako stránka v PHP. V oboch prípadoch je však možné dosiahnuť rôznymi metódami ešte rýchlešie zobrazenie až do zanedbateľných časov. Problém záťaže servera však nie je ani tak v rýchlosti generovania obsahu ale skôr v počte koľko http požiadaviek dokáže za určitý čas obslúžiť a tiež aj ako rieši pretaženie požiadavkami. Bohužial o tom ako sa to správa v prípade riešenia od MS veľmi neviem. Celkom rád by som sa o tom niečo dozvedel od Marcusa ktorý s tým má zrejme väčšie skúsenosti ako ty. Predpokladám, že si si ten nový zdrcujúci argument prečítal niekde na fóre.

    před 18 lety | reagoval [87] DeaLer
  85. Roman #85

    avatar

    #83 Petře Stříbný, Minimálne v prípade indexovacích robotov zohráva každý kilobajt dôležitú rolu čím toho viac dokážu za jednu session schúrstať tým lepšie. Mňa by inak zaujímalo, prečo musí byť viewstate v kóde stránky a nemôže byť uložený na serveri? Veď keď pozerám je to nejak zakódované, takže je to zo strany browsera asi tak či tak nepoužiteľné. Pripadá mi to ako nejaká náhrada session ktorá úplne zbytočne posiela užívateľovi údaje ktoré aj tak dokáže spracovať iba server.

    před 18 lety
  86. David Grudl #86

    avatar

    #83 Petře Stříbný, Petře, otázka zní jinak: čím je dobrý pro uživatele? Ničím. Čím je špatný pro uživatele? Objemem dat, které je potřeba při načtení stránky a poté po odkliknutí postbacku přenést. Cituji:

    Tak mi je konecne jasne, ze preco jedna z tych profesionalnych web aplikacii, ktore obcas navstevujem (tipos.sk), ide tak srackovo cez modem

    O nemožnosti bookmarkovat viewstate ani nehovořím.

    Opět se tím dostávám k tomu, že ve vztahu Microsoft ↔ vývojář pod ASP.NET není pro uživatele a klienty vůbec místo. Vývojář je nadšen, jak to pěkně a hlavně rychle naklikal, klient však ostrouhá. To je pro mě naprosto nepřijatelné.

    Samozřejmě bychom tu mohli řešit, k čemu je dobrý viewstate pro vývojáře, ale k takové debatě se nesnížím, protože je velice špatný pro uživatele a tím to končí. Zkusme se bavit jako profíci.

    před 18 lety | reagoval [94] DeaLer [104] David Grudl
  87. DeaLer #87

    avatar

    Mysli si co chceš (osobně to brát nebudu), ale MS se mnou rozhodně nemanipuluje – naopak si k MS chovám velkej odstup, některý jejich kroky nechápu a připadaj mě zbytečný a nesmyslný, jsem nezávislej na platformě – tohle ti připadá jako výsledek MS manipulace. 😁

    Já se na tu stránku dostanu i bez JS a určitě nejsem sám. Já chápu, že viewState není nejelegantní řešení (může dosáhnout velkého datového objemu), ale zkus ty pochopit, že je to pravděpodobně nejlepší způsob, jak udělat to co má dělat viewState (ukládat údaje mezi jednotlivými postbacky). Nikde jsem neřekl, že je dobře, že může viewState dosáhnout tak velké velikosti.

    Prosím nehraj si tu na nějakýho super guru a nemysli si, že tvoje názory jsou všechno a ostatní je ta spodina a nesmysl a že je špatně všechno, co není podle tebe.

    Ty třeba taky jednou pochopíš proč já používám ASP.NET (není to kvůli MS a už vůbec ne kvůli klikajícím přednášejícím – za svou praxi jsem žádnou přednášku neviděl), ale bude to nějakou dobu trvat a ještě napíšeš hodně článků, který budou tomuhle podobný. Moc se těším, až se objeví .NET 3.5 – už vidím jak budeš kitizovat provázanost serverových a klientských prvků, asp.net callback, provázanost s AJAXem a další. Bude to tak – věř mi. 😁

    BTW: nechápu proč MS chce vypustit .NET 3.0, který je postavený na .NET 2.0 + přidává věci jako WPF, WCF, WWF a WCS. Následující .NET 3.5 bude obsahovat technologie 3.0 (C# 3.0, ASP.NET ‚Atlas‘, atd.).

    Že ty tak přesně víš, kde je chyba, když ten systém moc neznáš.

    #84 Romane, Myslel jsem to tak jak jsem to napsal a taky je to pravda. PHP má interpretovaný kód a ASP.NET kompilovaný kód – to je nespornej fakt. Např. já nemám na webu jedinej soubor se zdrojem (*.cs), ale všechno mám předkompilovaný v dll knihovně a podobně to funguej i když tam tu předkompilovanou knihovnu nemáš – https://web.archive.org/…compile.aspx.

    před 18 lety | reagoval [90] David Grudl [91] Roman
  88. Petr Stříbný #88

    Jde o to, že pro session potřebuješ třeba Cookies, kdežto ViewState je v zásadě nezávislý na JS, Cookies nebo na čemkoliv na klientské straně.

    Navíc ke každému Controlu nebo stránce stačí připsat EnableViewState=„false“ a máš z toho klasiku.

    před 18 lety | reagoval [89] David Grudl [91] Roman
  89. David Grudl #89

    avatar

    #88 Petře Stříbný, Zeptám se tě zcela konkrétně:

    1. Otevřu si https://web.archive.org/…e.qsh.cz:80/ – stránka je ve výchozím stavu, tedy stav jsem nijak neměnil – proč je tu cca 1kB viewstate?
    2. Kliknu na stránku „Produkty“. Viewstate jsem tedy zapomněl – ad bod č.1 – k čemu mi tedy ten viewstate byl?
    3. Bez JS kliknutí na „Přihlásit se“ nic neudělá. Je to v pořádku?

    Ruku na srdce, vážně tohle považuješ za vrchol webdesignu? Bohužel, jde o typický příklad vadného paradigma ASP.NET.

  90. David Grudl #90

    avatar

    #87 DeaLere, ajajaj, zabočil jsi do velmi osobní roviny a děláš ze sebe … Budeme pokračovat třeba za rok, jo? 🙂

    před 18 lety | reagoval [94] DeaLer
  91. Roman #91

    avatar

    #87 DeaLere, To je jedno. Išlo mi o niečo iné.

    #88 Petře Stříbný, Ale veď stačí zabezpečiť aby sa v prípade vypnutých cookies prenášal identifikátor session v URL, prípadne ako input type=„hidden“ (presne ako v prípade viewstate) a máš pokryté všetky prípady.

    Dokonca už aj defaultné PHP session to podporuje. Drobná nevýhoda je v tom, že ten input type hidden štandardne generuje v HTML syntaxi.

    Ja hlavne nechápem prečo sa to celé prenáša užívateľovi a zasa posiela nazad. Ked s tym webstranka aj tak nepracuje. Chapal by som keby si tam nieco cez JS vedel pridat a poslat nazad, to by mohlo byt zaujimave (aj ked to sa da riesit aj inak a asi aj pohodlnejsie).

    před 18 lety | reagoval [93] Petr Stříbný
  92. Petr Stříbný #92

    #89 Davide Grudle,

    1 – Ten ViewState tam je, kdyby jsi ho potřeboval. Pokud na stránce potřeba vůbec není, měl ho autor zrušit.

    3 – Za to nemůže ViewState, ale autor, který ho špatně použil. Navíc v tomto konkrétním případě (kdy se jedná o odkaz na jinou stránku) měl autor použít klasický normální hyperlink.

    před 18 lety | reagoval [94] DeaLer [102] David Grudl
  93. Petr Stříbný #93

    #91 Romane,

    Vidíš a už narážíš na SEO problém se cpaním Session do URL. Pokud bys to dal do schovaného pole, měl bys z toho ViewState, ale musel by sis s tím dát více práce než v ASP.NET.

    Na druhou otázku momentálně nemám čas, takže odpovím jindy.

    před 18 lety | reagoval [95] Roman [96] Roman
  94. DeaLer #94

    avatar

    #86 Davide Grudle, Nesnížíš a nebo na to nedokážeš odpovědět?

    BTW: nemůžeš už nechat to naklikávání. Já myslel, že se tu snažíme bavit na profi úrovni a na tu rozhodně naklikávání nepatří (ani já to nedělám a to nejsem profík).

    #90 Davide Grudle, Jasně – v tom příspěvku teď ani nechci pokračovat – to bylo mimo.

    #89 Davide Grudle, ASP.NET nemá přeci nic společného s webdesignem jako takovým.

    #92 Petře Stříbný, Díky za připomínky – můžu to změnit. ViewState tam potřebuju, takže jeho vypnutí nemám v plánu.

    před 18 lety
  95. Roman #95

    avatar

    #93 Petře Stříbný, Nie je vôbec problém vypnúť transparent session. Ja ju mám defaultne vypnutú.

    „ale musel by sis s tím dát více práce než v ASP.NET.

    Ano musíš napísať 1 príkaz naviac do stránky. 😉 To je všetko.

    Na druhou otázku momentálně nemám čas, takže odpovím jindy.

    ok

    před 18 lety
  96. Roman #96

    avatar

    #93 Petře Stříbný, Aha uz chapem co si chcel povedat. Ze by som stale cez formulár „postoval“ sessid. To mi ale nepripadá správne. Session používam z hľadiska užívateľskej interakcie. V prípade že mi stránku indexuje robot, nie je potrebné aby sa session (alebo viewstate) vôbec používali.

    před 18 lety
  97. Borek #97

    #78 Davide Grudle, Myslím, že teď už docela chápu tvůj názor, a je tedy nejlepší čas ukončit debatu :) My se totiž neshodnem už ve výchozích předpokladech:

    • Mně je jedno, že PHP nemá tovární framework, beru to jako prostý fakt. Zajímco já tedy nemám nejmenší problém srovnávat ASP.NET s holým PHP (protože to je skutečná startovací čára pro všechny PHP projekty), ty naopak s nějakým vlastním frameworkem počítáš a bez něj odmítáš věci hodnotit. To ti nevyčítám a svým způsobem se k tomu stavíš správně, jen je tvůj postoj jiný než ten můj, a proto se neshodnem.
    • Ty považuješ za zásadní problém, že ve výchozím stavu nevede ASP.NET zrovna k ideálním výsledkům (a třeba k viewstate máš poměrně vyhraněnou averzi). Já naopak považuji za zásadní problém, že tě PHP ve výchozím stavu nevede téměř k ničemu (kromě špaget). Ty máš pohled profíka, který nepotřebuje nebo dokonce nechce mít předpřipraveného něco, co mu úplně nevyhovuje, a radši si vše napíše sám, já preferuji určitou výchozí pozici, kde už jsou některé věci předpřipravené, a pokud nevyhovují, můžu si je upravit.
    • Pro tebe je evidentně kvalita větší hodnotou než pro mě. Jsi náročnější, a to nekompromisně. Pro mě je ASP.NET „dostatečně dobré“, pro tebe je „špatné, špatné, velmi špatné“. Ani jedno hodnocení není objektivní, ale je to další z věcí, které nám ve výsledku brání shodnout se.

    Je dobře, že existují lidé jako ty, protože vy vytváříte nové, hodnotné projekty (viz Texy, protože Textile není dost dobré). Já proti tomuto přístupu nic nemám a jsem za lidi tvého typu velmi vděčný, jen jsem v téhle debatě chtěl říct, že ne všichni mají podobně vyhraněné požadavky na kvalitu a že každý má hranici „dost dobré“ nastavenou jinak. A tisíce projektů po celé zeměkouli považují ASP.NET za „dost dobré“.

    No asi není nejlepší nápad končit diskuzi takhle dlouhým příspěvkem – věřím, že mi to v odpovědi nedaruješ :)

    před 18 lety | reagoval [102] David Grudl
  98. Anton Piták #98

    Je tu strašne veľa reakcii, toľko času nemám, ale:

    1. porovnáva sa tu skutočne neporovnateľne, jazyk a framework
    2. Nemám rád ASP.NET. Nie preto, že by bol zlý, naopak, je vynikajúci, ale nemám ho rád preto, lebo programátori, ktorí ho používajú si zmýlili programovanie s naklikaním aplikácie. Ale to nie je chyba NET, ale chyba ľudí. Preto toto porovnanie opäť porovnáva absolútne nesprávne veci. Nazval by som všetky takéto porovnania porovnaniami zvyklosti programátorov dodržovať „kvalitatívne parametre výstupného kodu“.
    3. Že v ASP.NET idú robiť čisté veci dokazuje projekt SharpCMS (sharpcms.net).

    V skutočnosti tieto debaty, štúdie a flamewar nie je ani o jazyku ani o frameworku. Je to o ľuďoch a o tom, ako si stanovia priority na projekte.

    před 18 lety | reagoval [99] DeaLer
  99. DeaLer #99

    avatar

    #98 Antone Pitáku,
    Ad 1: je vidět, že jsi to nečet celý – snažímě se tu porobnávat „platformy“ a ne jazyk a část framewrku

    Ad 2: Prosím neházej všechny na jednu hromadu – já mezi naklikávače nepatřím (neberu si to osobně, ale nemám rád tenhle typ globalizace). Jinak souhlasím.

    Ad 3: SharpCMS je jeden z mnoha a musím uznat, že je to příklad pěkného výstupu při použití ASP.NET 2.0 a nemyslím si, že toho docílili přiohýbáním ASP.NET, ale nevím – zítra se na něj podívám. Dosáhnout podobně kvalitního výstupu není zas takovej problém, ale např. já k tomu nemám moc velkej důvod (to není mířený na tebe).

    Jasně, že je to o lidech – bez nich by to za to nestálo a nemyslím si, ž se v tomto případě jedná o flamewar, protože se to tu drží na určité slušné úrovni a takové diskuse rozhodně nejsou na škodu – spíš se jedná o příjemný odreagování.

    PS: je lepší se účastnit od začátku – jinak pomalu nevíš o čem je řeč 🙂

    před 18 lety | reagoval [107] Anton Piták
  100. Marcus #100

    Ty jo, tady se to rozjelo :)
    No myslim, ze tohle uz je trochu jiny pristup. Ja osobne jsem naproto proti viewstate a pouziti JS ani by nebyla nahradni funkcnionality kvuli accesibility.
    Ale tim jsme u jadra pudla. Pokud napr. budu delat aplikace do public sectoru, tak je jasne, ze musim splnovat
    Na druhou stranu budu delat aplikaci ala youtube.com, ktera ja vizualni a pak moji cilovou skupinou nejsou handikepovani uzivatele a pak se da tak nejak JS tolerovat (nebo flash apod).

    To, co tady panove diskutuje uz neni ok ani od zastancu ASP.NET ani od DGX, protoze se snazite presvedcit o svoji pravde a dgx jedna uplne stejne jako ms, ktery manipuluje lidi na svoji stranu a tohle dela o borek.
    Pritom asp.net je vynikajici prostredi, JSP je vynikajici apod. Ale problem, ktery ja kritizuji je to, ze MUSITE naucit lidi psat dobre aplikace! Tyhle diskuze jsou pak uplne o nicem, pokud bude patlal programator pod PHP, napise patlalsky kod pod PHP, pokud pod ASP.NET pak je to totez.
    Co je vyhoda PHP komunity je to, ze je vice sebereflektivni a ze nema „moudreho otce“ ala Microsofti prezentatori, kteri delaji hodne spatnou praci v tom, ze ukazuji vyvoj aplikaci ala klikani a pouziti viewstate a michani ODS objektu do prezentacni vrstvy apod. A tim vznika mezi programatory asp.net vzdelavani zalozene na techto spatnych prezentacich. Je jasne, ze tohle vznika i diky vyvoji v MS, ale opet uvedu priklad.
    Napr. mi reknete, jak napisete O/R wrapper v PHP? Plne strongly-typed a automatizovany s generovanim stredni vsrtvy na zaklade ulozenych procedur a automatickym vytvarenim relaci nad sloupce DB?
    Nebo mi reknete, jak objektove odstinit jednotlive funcnosti jako je prace s uzivatelem (business objekty pro jejich tvorbu, kontrolu, hashing atd.), custom connection pooling nebo asynchronni messaging?
    Nebo FIPS certifikovana kryprografie, prace s certifikaty a jeho generovani s tim, ze musite mit snadne zapouzdreni sifrovani a checking uzivatelu v nejakem OOP frameworku. A muzu pokracovat dal a dal.

    Tohle jsou take bezne pozadavky klientu, to, co tady resite je JEN jeden z pozadavku, jako je vystup do stranky, ale to je POUZE jeden aspekt. Je dulezity, ale opet tim dgx manipuluje a ja ukazuje, ze to neni fer.
    Je to stejne, jako kdyz MS ukazuje, jak naklika aplikaci bez napsani kodu, je to lez. A je i lez, ze jde jen o vystup do stranky. Klient krome toho pozaduje napriklad integraci s messaging systemy jako MQSeries, MSMQ nebo O/R vrstvu a nebo integraci s jeho bezpecnostnim system pomoci Kerberos rozhrani apod.
    To jsou pozadavky klientu a vygenerovana stranka je jednim z nich.
    Proto pokud byste chteli vsechno toto splnit v PHP, bude to horor. V Jave to pujde docela dobre, ale pokud budete mit klienta, co bezi na Windows platforme, tak tyto pozadavky splnite VYBORNE.
    A tohle, co jsem napsal, byste v PHP psali v kvalitni architekture nekolik let abyste meli kvalitni framework!!!
    A proto podle mne je vynikajici reseni na tyto enterprise systemy volba ASP.NET s tim, ze musite ohnout generovani webu, ktere je by default spatne. Ale ostatni backend funkce za to stoji a jsou vyborne.
    Na druhou stranu, pokud budu delat web jen jako prezentacni web pro firmu, ktery je napul staticky a nebo je jen pripojen k DB, tak sahnu po Perlu (ja osobne) a nebo PHP a v nich to napisu naprosto ciste.

    Proto panove nemanipulujte jako MS, snazte se najit pro jake zadani hledate technicke reseni a uvedomit si, ze nejde jen o generovanou stranku, ale jde o komplexni architekturu systemu a podle toho volbu prostredi.
    Jinak se pridavate k tem klikacum a patlalum, kdyz budete fanaticky tvrdit, ze asp.net nebo php je nejhorsi/nejlepsi bez znalosti zadani a pozadavku klienta.

    před 18 lety | reagoval [102] David Grudl [105] jméno
  101. SneakerXZ #101

    avatar

    Jak se mi zdá tak nikdo nepochopil MS přednášky. MS přednášky máj přilákat lidi k ASP.NET a každý uživatel po nějakém čase zjistí, že mu klikání nestačí a odpustí od toho…

    před 18 lety
  102. David Grudl #102

    avatar

    #92 Petře Stříbný, Souhlasím, že ve všech bodech je na vině autor stránky. Co je ale blbý, že podobnými problémy trpí neskutečné množství stránek pod ASP.NET. Jde totiž o nemoc technologie. Málokdo si rozzipuje viewstate, koukne dovnitř a řekne: „proboha, proč tady tyto věci musím přenášet?“.

    #97 Borku, Borku, tak vyřaďme z této diskuse úplně PHP. Ano, kvalita má pro mě nejvyšší hodnotu. O tu běží od prvního odstavce článku. Dobře navržený framework by měl standardně vést k dosažení výborné kvality. ASP.NET standardně vede ke „kvalitě“ alá DeaLerova nebo GWLadderova homepage. Nic proti nim, to je prostě standardní produkt této technologie.

    Vem si třeba takové Viewstate. Velmi efektní při pohledu na demo, kde po kliknutí na tlačítko se změní jeho barva nebo popisek. Ale tohle se v praxi NIKDY nepoužívá. Naopak, barvu tlačítka určí aplikace a je šílenost ji sem a tam přenášet ve Viewstate. Jenže Viewstate se holt tak chová. Viz třeba DataGrid v ASP.NET 1.1. (schválně kdo první napíše, že verze 2 je něco jiného)

    Mimochodem, teď jsem se díval na homepage SharpCMS a to je téměř ukázková práce v ASP.NET (až na problémy s duplicitou).

    #100 Marcusi, framework minus Web Forms můžou PHPčkaři ASP.NET pouze závidět, o tom žádná. Jen mám pocit, že tím už zabíháme do velmi širokého okruhu. Zkus vysvětlit takovou drobnost, jako třeba proč je Viewstate & Postback obecně na veřejných stránkách průšvih, a deset podobných diskusí bude málo.

    před 18 lety | reagoval [104] David Grudl
  103. Zdenda #103

    Tento weblog si čtu rád, ale reakce dgx u tohoto článku mě zklamaly
    …Nevěřte Microsoftu ani klikajícím přednášejícím… – to mě přímo děsí, nazývat deklarativní/konfigurační přístup klikáním.. a ještě v tom cítím trošku opovrhování vůči MV
    …ve vztahu Microsoft ? vývojář pod ASP.NET není pro uživatele a klienty vůbec místo… – napište mi prosím, kde je místo pro uživatele a klienty ve vztahu PHP – vývojář pod PHP 🙂

    DGX, najeďte si prosím na zrůdnou MSDN spravovanou klikajícími zaprodanci Microsoftu a přečtěte si něco o tom co je to VIEWSTATE, aby jste tady v této diskuzi nešířil nepravdy.

    před 18 lety | reagoval [104] David Grudl
  104. David Grudl #104

    avatar

    #103 Zdendo, Zdendo, vím velmi detailně, jak Viewstate funguje. Pokud se chcete zapojit do diskuse, vyjádřete se ke konkrétním záležitostem, třeba #86 David Grudl #89 David Grudl nebo #102 David Grudl. Jinak holt střílíte naprázdno.

    Vážně máte pocit, že vše, co se přenáší přes viewstate, je nutné přes viewstate přenášet? A především: ačkoliv se dá do určité míry kontrolovat, co se přenáší, kolik vývojářů to skutečně kontroluje?

    před 18 lety | reagoval [109] DeaLer
  105. jméno #105

    #100 Marcusi, Prezntace Microsoftu jsou trošku problém. Nejsou totiž dělány pro profesionální uživatele. Vy vidíte, co přednášející dělá špatně, že byste to udělal lépe – budete lepší. Jenže na ně se chodí dívat začátečníci, protože jdou cestou nejmenšího odporu (v češtině nic moc jiného není, angličtina dělá i lidem tento jazyk ovládajícím problémy a raději si vše přečtou v češtině). Tak se vytvoří programátor-začátečník, objedná si knihy o .net 2 profesionálně z Zoneru (mimochodem jsem to udělal také a doufám, že jsem neprohloupil) a pracuje. Postupem času se začne vyvíjet – profilovat. Začne pracovat jinak, v tom momentu se z něj stává teprve špatný nebo dobrý programátor. Horší je, že většina těch dobrých nechce začátečníkům pomoci, což je u PHPčkařů samozřejmostí. Pak vznikají tyto diskuze, kdy tady komentují lidé, kteří mají jen povrchní znalosti (oni si to nemyslí) o dané technologii. Vše se musí umět používat, vše se dá nějak využít, ale jen programátor musí přijít na to jak…

    před 18 lety
  106. Martin Knotek #106

    avatar

    Nezlobte se na mě, ale ohýbat ASP.NET? Napsat si http modul podle své potřeby nebo napsat svůj render pro controly, nebo schovat ViewState, či jej vůbec nepoužívat, je pro vývojáře co se snaží přemáýšlet naprostou samozřejmostí. Jak řekl pan z microsoftu: cilem microsoftu neni poskytnout kompletni řešení bez nutnosti existence vývojáře, cilem je platfoma, ktera to dokaze!

    před 18 lety
  107. Anton Piták #107

    #99 DeaLere, Súhlasím, nečítal som všetky reakcie, ale ani som nereagoval na reakcie, skôr na Dávidov článok. A ten žiaľ neporovnával porovnateľné veci 🙂

    Čo sa týka SharpCMS, nemám rád .NET nijak zvlášť, ale v prípade tohto CMS ho veľmi rád používam. Je to priam dokonalý príklad oddelenej aplikačnej logiky a prezentačnej vrstvy, pre programátora pomerne jednoduchá konfigurácia cez XML a XSLT, výstupný kod plne pod kontrolou. Ako si naznačil … žiadne ohýbanie .NET-u. Tento systém ma s kolegom tak uchvátil, že do neho máme napísaný plugin pre jednoduchý e-shop. Doporučujem mnohým na preštudovanie. API

    před 18 lety | reagoval [108] DeaLer
  108. DeaLer #108

    avatar

    #107 Antone Pitáku, Já si SharpCMS určitě stáhnu, protože nevím přesně jak to maj udělaný a jak bych to případně moh udělat.

    Na svým webu to aplikovat nebudu a to z následujících důvodů:

    • nezajímám se o tvorbu webu z hlediska klientské části
    • můj web pro mě není cíl, ale je to pro mě jen jeden z nástrojů k dosažení cíle a proto nijak moc nedbám na kvalitu výstupu, atd.
    před 18 lety
  109. DeaLer #109

    avatar

    #104 Davide Grudle, Já si nevzpomínám, že by tu někdo psal, že všechno co se ve viewstate přenáší je nutné tam přenášet, ale třeba se mi líbí uchovávání hodnot formulářových polí mezi postbacky.

    před 18 lety
  110. Roman #110

    avatar

    #46 myshpo, Necital som ten link o Yahoo co si posielal, ale len tak pre zaujímavosť, dneska som sa akurát náhodou stretol na IRC s jedným starým známym z nemecka čo už dlhšiu dobu žije v UK (poznáme sa z C64 scény). Medzi rečou vyplynulo že je tam zamestnaný (že vraj ponúkali viac ako google.. no neberte to? 😉 a hovoril ze je to postavene na PHP5 a ze Rasmus Lerdorf pre nich robí.

    před 18 lety
  111. koder #111

    Teď jsem se viděl, že na té diskuzi na vývojáři je link na šílený web:

    https://web.archive.org/…oleni/Kurzy/

    Mrkneťe se na zdroják a na ten _viewstate. To snad není pravda! Co to je? Můžou mi lidi, co znají dotnet říci, co to znamená?Nechci být zaujatý a chápu, že to může být výsledek práce blbých koderů, ale pokud tohle ta technologie dělá sama o sobě, tak už je tam něco hodně špatně. Každopádně po uzření takovýho webu bych s asp.net nechtěl mít nic společného.

    před 18 lety | reagoval [112] David Grudl
  112. David Grudl #112

    avatar

    #111 kodere, wow 🙂 Tipoval bych to na ASP.NET 1.1 a DataGrid Control

    před 18 lety
  113. DeaLer #113

    avatar

    Poznáte, kdo může za výstup tohoto webu a jak se vám líbí?

    BTW: spletl jsem si blog, nebo se tu ztratily 2 komentáře?

    před 18 lety | reagoval [114] David Grudl
  114. David Grudl #114

    avatar

    #113 DeaLere, strašné, podbarvování pomocí JS a bez preloadu, menu v pomocí obrázků bez ALT, tabulkový layout a dokonce tohle:

    <div style="clear:both;" xmlns="" xmlns:inventit="urn:my-scripts">

    Proč se ptáš, respektive kam otázkou směřuješ?

    btw: ztratily

    před 18 lety | reagoval [115] DeaLer
  115. DeaLer #115

    avatar

    #114 Davide Grudle, Jen chci poukázat na to, že „amatér“ může zlikvidovat výstup i jinak skvělýho systému jako je SharpCMS.

    před 18 lety
  116. DeaLer #116

    avatar

    Ještě bych snad dodal, že je to jistej důkaz, toho, že je jedno jakou platformu (framework, jazyk, CMS, atd.) používáš a že výsledná kvalita výstupu záleží „pouze“ na tobě.

    Jak se zdá, tak se tahle diskuse pomalu blíží ke konci, tak bych na závěr dodal, že je mi úplně jedno co kdo používá (je to jeho volba) a do diskuse jsem se zapojil z jednoduchýho důvodu – rád si přečtu zajímavý, okolím ovlivněný názory.

    To DGX: jedna věc mi vrtá hlavou – proč si myslíš, že moje názory jsou výsledkem manipulací MS?

    PS: „pouze“ jsem dal do uvozovek, protože to není pravda v případě, že ti platforma neumožní to ovlivnit.

    před 18 lety
  117. Ondra #117

    avatar

    #63 DeaLere, ja to myslim tak jak pises! C# ma podobnou syntax, ale inak je to opravdu jina vec. Kolik ma spolecneho s Javou jsem nezkoumal. Nicmene za nejvetsi zpraseni povazuju garbage collector. Na tom bylo C zalozeno, ze si muzes delat coc chces.
    Shrnuti: C a C# jsou dva jne jazyky a Microsoft proste jen spoleha na „znacku“ Cčka. Ondra

    před 18 lety | reagoval [118] DeaLer
  118. DeaLer #118

    avatar

    #117 Ondro, Jak jsem psal – C# vychází z JAVY a má k ní syntaxí a použitím mnohem blíž, než k čistýmu C nebo C++.

    V čem tě garbage collector omezuje? Co ti brání použít pointry? A proč GC považuješ za zprasení jazyka C#?

    A co třeba C++ – u toho ti nevadí, že se spoléhá na značku Cčka?

    před 18 lety
  119. Tomáš Herceg #119

    avatar

    Já akorát nechápu, co se všem nelíbí na výsledném XHTML kódu. Je validní. A to, že není vždy přesně odstrukturované? K čemu? Proč nad ním mám mít absolutní kontrolu? Copak surfujete v notepadu a čtete si HTML těch stránek. Důležité je, že se v něm vyzná prohlížeč. Pokud je validní, není co řešit.
    Nehezké URL – proboha kde? Možná tak u kalendáříku, u stránkování v GridView a u LinkButtonu (což je odkaz, který odesílá formulář, ale to bez javascriptu v HTML nejde).
    Navíc ASP.NET 2.0 podporuje adaptive rendering – podle klienta se výsledný HTML kód značně liší (pro mobilní zařízení a krámy bez javascriptu se renderuje jiný kód, který funguje). Pokud se vám v ASP.NET cokoliv, ale opravdu cokoliv, nelíbí, můžete si to přepsat – stačí podědit danou třídu a overridnout tu událost, která dělá to, co nechcete.
    A to, že RouderCorners generují do výsledného HTML inline styly je snad úplně jedno. Proč se odděluje vzhled od HTML kódu? Aby se v tom programátor vyznal (prohlížeči je to opět úplně jedno). A hrabeme se my, jako programátoři, ve výsledném HTML? Ne. My přece máme pouze značku bb:RoundedCorners, která inline styl nemá. Ba právě naopak ji můžeme nastylovat pomocí tématů, což je obdoba CSS stylů pro serverové komponenty v externím souboru.
    Potíž je v tom, že diskutuje 90% lidí, kteří o tom nic neví. Vznikají tak mýty a demagogie – z neznalosti.
    Ale pište si v PHP, když vás to baví. Já jsem ho také moc dlouho používal. Ale přešel jsem na ASP.NET 2.0 a nemůžu si jej vynachválit. Nezajímá mě, co leze do prohlížeče, pokud je to validní a není layout rozsypaný v těch 3 nejrozšířenějších prohlížečích. Chce to jenom překonat lenost, nedůvěru a začít se učit. Naučit se ASP.NET je pravda výrazně složitější než PHP, ale rozhodně se to vyplatí.
    Mimochodem poznámky o špatné architektuře ASP.NET mi od zastánce PHP přijdou poněkud směšné. Proč je v PHP strlen, ale str_replace? Kdy už ten s prominutím bordel někdo odstraní?

    před 17 lety | reagoval [120] Ferda
  120. Ferda #120

    #119 Tomáši Hercegu, kdybys tušil, jak se dgx o PHP vyjadřuje, tak jako směšné by ti spíš připadalo ho označovat za zastánce 🙂

    Jak souvisí strlen a str_replace s architekturou?

    před 17 lety | reagoval [122] Juraj
  121. Juraj #121

    avatar

    No nehnevaj sa, tak dobre clanky odhora dole a potom napises toto? Dristy, „fakty“ (fakty? skor len nazory) okopirovane z inych zdrojov, sam priznavas ze nemas hlbsiu skusenost a podobne. Ja v PHP programujem roky, posledne vsak uz len asp.net spolu s c# a poviem vam, zda sa mi ze php je hracka pre deti oproti tomu, ake silne vyvojove nastroje ponuka platforma .Net. Php je fasa na mensie serepeticky, presne tam, kde vytahovat kanon typu .Net by bolo uplne nerozumne, no velky projekt s dlhodobym vyvojom, supportom a implementaciou v roznych prostrediach je v tomto jazyku uplne neudrzatelny. Platforma je nestabilna, miestami az nevyspytatelna, ako taka typicka komunitna klubovna.

    Asp.Net ponuka silny framework na pohodlny vyvoj silnych webovych aplikacii, a poznamky typu „naklikat projekt“ su vhodne tak na presviedcanie neveriacich kamaratov v krcme, aj v asp.net si musis vsetko pekne „odprogramovat“, nic si veru nenaklikas len tak.

    Kazdy nech si kodi v tom v com chce, mozno preto, ze nema na server, platformu, framework a vyvojove nastroje, siaha po volne dostupnych nahradach, a ako kontra – niekomu zase vyhovuje „lahka“, ohybna koncepcia jazyka PHP (poznam projekty ktore si brali z kazdeho nieco, je to sice samovrazda, ale da sa:P). Koniec koncov, viest flamy PHP vs. ASP.NET je nezmyselne. Akurat ma tvoj clanok fakt zarazil (opat opakujem – koli kontrastu kvality s ostatnymi tvojimi clankami – klobuk dole), privela generalizacie, vyjadreni typu „ten a ten povedal“ …

    Good luck php guys, nech vam kod slape

    před 17 lety
  122. Juraj #122

    avatar

    #120 Ferdo, No asi tak, ze ked si niekto zada koncepciu pomenovavat funkcie/metody, tak by sa jej mal aj drzat. V ASP.NET sa nestane, ze sa jedna funkcia vola OnPreRender a druha Client_side_validate … rozumies? Drzime sa jednej koncepcie a tudiiiiz vieme, co mame cakat za rohom (len ci to bude stacit:))

    před 17 lety
  123. v6ak #123

    Taky bych někdy mohl zkusit takový návrh. Nejdřív drafty controllerů, pak vymyslet a napsat modely a pak dodělat controllery a viewy.

    před 17 lety

Tento článek byl uzavřen. Už není možné k němu přidávat komentáře.


phpFashion © 2004, 2024 David Grudl | o blogu

Ukázky zdrojových kódů smíte používat s uvedením autora a URL tohoto webu bez dalších omezení.