Starší komentáře ke článku: ASP.NET 2.0 - Master Pages

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

Avatar

Autor komentáře: PeS

Datum vložení: 23.9.2005 9:17:36

Stručně by se dalo říct, že ASP.NET 2.0 se dopracovalo k šablonám. Konečně...

Avatar

Autor komentáře: CH

Datum vložení: 23.9.2005 10:57:53

Asi tak. Da sa povedat ze ako sa podarilo .NET CLR a C#, tak sa nepodarilo ASP.NET. Je to MVC postavene na hlavu - request smeruje na sablonu (.aspx) a ta moze mat "ako dekoraciu" controller (code behind). Odhliadnuc od nechutne odbmedzujucej expresivity tych sablon (data binding expressions), nemoznosti dedit uz osablonovany komponent/stranku a inych bonusov.

Avatar

Autor komentáře: McMlok

Datum vložení: 23.9.2005 11:15:19

No jak se to veme podobnou sablonu jako je ted masterpage sem si udelal hned na zacatku ASP.NET a nebylo to nic tezkeho ;-) Pravda bez podpory v design time ale to mne stejne netrapilo kdyz sem pouzival XML/XSLT transformaci pro content. Co se tyce dedeni co vam branilo si udelat kontrol a ten pak bez problemu dedit ;-) Je teda fakt ze to byla prace na vic ale na ten projket kde sem to pouzil se to hodne hodilo.

Avatar

Autor komentáře: CH

Datum vložení: 23.9.2005 11:46:52

Ano, mozem dedit control. Ale predstav si situaciu ze mam napr. vseobecny recordset editor - ma 2 mody pre ktore pouziva dalsie komponenty - recordset browser a record editor. Kazdy z nich ma nejaku logiku (controller ako potomka Control-u) a prezentaciu. Nie je problem kedykolvek dedit controller. Ale co so specializovanim prezentacie? ASP.NET kompiluje .aspx/ascx sablonu ako vlasnteho potomka sablonovaneho Controlu, ktoreho uz dalej nepodedis. Zostava ti jedine pripadnu abstraktnu sablonu zobrat, skopirovat, upravit a osablonovat nou svojho potomka. Alebo v abstraktnom predkovi vobec nepouzit sablonovanie, pripadne vypluvat markup cez HtmlTextWriter co je uplne neprijatelne. Pri custom navrhu bez obmedzenia pouzivat ASP.NET by som to riesil tak, ze ma abstraktny komponent vlastny adresar so sablonami a specializovany potomok tiez. Ak potomok vo svojom view adresari najde customizovanu sablonu, pouzije tu. Inak sa pouzije vseobecna sablona predka. (ano, aj my sme si hned na uvod vyvoja pod ASP 1.1 zimplementovali "master pages" klasickou metodou prehodenia top level controlov z aktualnej stranky do placeholdra v layout stranke)

Avatar

Autor komentáře: Tomáš Páral

Datum vložení: 23.9.2005 11:18:52

Ahoj, na začátek bych měl asi řící, že .NET je pro mě španělská vesnice. V Javě se pro dekorování používá velmi oblíbený Sitemesh framework, a když jsem ho studoval, narazil jsem na jeho portaci do .NET. Takže kdyby měl někdo zájem, tak http://wiki.truemesh.com/sitemesh.net/

Avatar

Autor komentáře: Tomáš Petříček

Datum vložení: 25.9.2005 0:07:24

Dobrý den, díky za odkaz, na projekt jsem se koukal, ale zdá se že není moc živý (na sf mají soubory staré dva roky a dokumentace k tomu moc není). Koukal jsem se na tutoriál k původní Javové verzi (http://today.java.net/pub/a/today/2004/03/11/sitemesh.html) a princip mi přijde velmi podobný jenom se mi zdají master pages jak jsou v Asp.Net snadněji použitelné. Tím, že v content page je opravdu pouze doplňovaný obsah je to velmi snadno a přehledně použitelné (a to že content page není celá HTML stránka mi jako nevýhoda nepřijde). Tomáš Petříček (C# MVP} http://blog.vyvojar.cz/tomas

Avatar

Autor komentáře: rezna

Datum vložení: 23.9.2005 12:26:41

delal jsem v 1.1 i ve 2.0 a 2.0 teda tezce sux. Master Pages mi muzou vlezt na hrb pac v 1.1 se dali napsat velice jednoduse a v design time je jako profik videt nepotrebuji (to snad potrebuji jen klikaci lamky). 2.0 je ale zmetek - s prichodem partial classes a generovanim kusu kodu az pri kompilaci mi M$ sebral volnost nad zdrojakej takze bych nejradsi vrazdil. Navic s prichodem jeho genialni DataView/GridView/FormView je to taky napytel - ty komponenty jsou sice uzasny ale kdyz je chci napojit na vlastni tak je zahul a dost casto pokud omyl dokud se to nezacne chovat jak chci ja. Jak mel jsem velka ocekavani ale radsi zustanu u 1.1 nebo i u PHP kde ma clovek proste prehled nad tim co opravdu dela a ne ze by mu tam system sazel co se mu zachce. Velka vada ve 2.0 je stale to ze vetsina komponent generuje nepristupny kod - napr. TreeView v tabulce bych zabil - navic pro ruzne prohlizece se generuje ruzny kod - to aby si pak clovek psal vsechno vlastni a tady vlastne ztraci smysl prechazet na 2.0 a muzu zustat u 1.1 ze :) No proste me MS fakt tezce zklamal. A co se treba tyce pristupnosti tak na nektere z konferenci/seminaru tady v CR padl dotaz jak to je s tou pristupnosti nacez nam 'fundovany odbornik MS' odpovedel ze vsechno je pristupne na 100% nahodil treeview a predvedl tu super tabulku a ja mel stochuti se zacit nahlas smat pac to byl fakt jako ulet.

Avatar

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

Datum vložení: 23.9.2005 15:19:47

Tohle už slyším podruhý, ale... Může mi KONEČNĚ někdo vysvětlit, jak partial classes mimo zpřehlednění mění také možnosti a berou "volnost nad zdrojáky"? Je to určitě nepochopení dané technologie, jde jen o to, na které straně :-) A vůbec, máte to celé nějak zmatené. Chcete mít kontrolu nad kódem? Tak proč si stěžujete na přístupnost prvku TreeView, který stejně nehodláte používat?

Avatar

Autor komentáře: rezna

Datum vložení: 23.9.2005 16:40:51

>Tohle už slyším podruhý, ale... Může mi >KONEČNĚ někdo vysvětlit, jak partial >classes mimo zpřehlednění mění také >možnosti a berou "volnost nad zdrojáky"? >Je to určitě nepochopení dané technologie, >jde jen o to, na které straně :-) skryva mi to konstruktora jednotlive property pro controly co mam na formularu - takze kdyz si chcu treba pridat jenom property controlu bez toho aniz by byl videt a cpat si ho na form rucne az pri loadu tak si ho nemuzu v konstruktoru pekne vytvorit. stejne tak me stve nastavovani eventu ktere jsem taky zvykly delat v konstruktoru pokud jsem na nejakej tezkem omylu tak mi to pls vyvratte >A vůbec, máte to celé nějak zmatené. >Chcete mít kontrolu nad kódem? Tak proč si >stěžujete na přístupnost prvku TreeView, >který stejně nehodláte používat? ja si stezoval tak na oboje v jednom ;) - kdybych mel napsat co vse mi na te technologii vadi tak to budu tyden sepisovat a pak to vydam jako knihu ;) jako je to super pokud potrebuju rychle naklikat app, ale vetsi projekty se mi v tom hnusi...

Avatar

Autor komentáře: Tomáš Petříček

Datum vložení: 25.9.2005 0:26:26

Dobrý den, já se vám nebudu pokoušet nic vyvracet, protože to stejně vypadá na marnou snahu ;-) a pouze bychom tady zaplňovali intervalu databázi nesmyslnou hádkou. Jenom bych se rád vyjádřil k tomu profesionálnímu používání ASP.NET u velkých projektů. Pokud tvoříte velký a profesionální projekt, tak v ASP.NET pravděpodobně nepoužijete všechny vestavěné prvky, ale napíšete si vlastní tak aby vyhovovali vám (a lze to napsat i tak, aby celý generovaný kód byl ovlivnitelný z aspx kódu), takže kód bude vypadat přesně tak jak chcete vy. Právě na velkých projektech je vidět jak je ASP.NET kvalitní nástroj, protože vám poskytuje skvělý základ pro kvalitní aplikace (mimochodem proč myslíte, že nejvíce hotovou částí MONO projektu mimo CLR knihoven je ASP.NET :-)). Co se týká standardních ovládacích prvků (to ale opravdu není téma tohoto článku), tak ty jsou myslím napsány tak, aby pokryly největší část ASP.NET projektů - tedy středně velké projekty, které je potřeba udělat za omezenou dobu a za omezené prostředky. Tomáš Petříček (C# MVP} http://blog.vyvojar.cz/tomas

Avatar

Autor komentáře: Irenicus

Datum vložení: 3.12.2005 9:09:47

Co kdyz se v master page odkazuji na content page takto : <a href="slozka1/product1.aspx">Prvni produkt</a> potom kdyz se otevre nova kontent page zmeni se url stranky na http://MyjWeb/slozka1/product1.aspx .... no a relativni odkazy jsou jiz v master page na houby. Nevite jak jednoduse na to ?

Avatar

Autor komentáře: Tomas Petricek

Datum vložení: 3.12.2005 13:53:56

Dobrý den, v tom případě je nejlepší používat serverový ovládací prvek Hyperlink, do kterého můžete zadávat adresy vůči kořenovému adresáři aplikace. Např. takto: <asp:Hyperlink runat="server" NavigateUrl="~/s1/product1.aspx" Text="Produkt 1" />

Avatar

Autor komentáře: Irenicus

Datum vložení: 4.12.2005 8:35:08

Diky za radu .... tak to budu muset trochu prekovat koncepci sveho Webu .... nebyla by jeste jedna rada jak ciste svazat odalosti typu OnClick, OnMouseOver atd. s prvkem <ASP:HyperLink /> ?

Avatar

Autor komentáře: František Jan

Datum vložení: 4.11.2008 2:38:21

Zdravím všechny, Zřejmě jsem LAMA, nicméně jsem nepochopil jak upravit master pages prostřednictvím stylů. Jde o to, že mam v CSS napsaný louts jež chci aplikovat na master i když je mam společně s tématy zaregistrované ve web.config tak mi hlásí chybu. Teď ta otázka jak používat styly mimo samotnou master. Fr.

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