ASP.NET Testreszabható UserControl

ASP.NET Testreszabható UserControl
2009-08-10T21:29:00+02:00
2009-08-11T18:09:41+02:00
2022-11-14T15:20:39+01:00
dzsungelharcos
Sziasztok!

Célom a következő:
Szeretnék olyan UserControlokat létrehozni, ami felhasználható más asp.net-es projektben is (ezért code library-ba kerül), de szeretném azt is, hogy ezt testretudják szabni a designerrel (pl: átpakolgatnak controlokat... [ami még bonyolítaná a dolgot, lehessen más controlt is használni (pl: DropDownList helyett ListBox, hogy a legegyszerűbbet mondjam :) ]).

(egyéb tényező még: nem feltétlen kell control, de mivel több webről van szó egyrészt ne kelljen őket egyesével átírni ha a működésben változás áll be (vagy ez hibás gondolat?), másrészt a működés során előjöhet, hogy ki/be kell kapcsolgatnom a controlt, vagy épp más datasourcból kell feltölteni, designernek akinek össze kell raknia az oldal-t nem biztos hogy át kellene látnia hogy működik, műkődés függhet a feltett controloktól (pl: nem kell bizonyos adatot betölteni))

Ti hogy oldanátok meg?
Tud-e erre adni valami megoldást az asp.net?
Ha nem értitek a kérdést, kérdezzetek, igyekeztem beletenni mindent:)

egy elképzelés:
Hordozhato.dll:
FunctionUserControl.cs
Ebbe az osztályba helper metodusokon keresztül a controlon ID-k alapján keressük elő a megfelelő controlokat, amelyiket nem adták meg az ilyenkor null-t ad vissza.
PreRender eseménynél betölti a megfelelő adatokat a megfelelő controlba, loadnál feliratkozik az eseménykezelőkre, és várja hogy vissza küldjék...

Web:
Hordozhato.dll-t felvesszuk a referenciak kozze, letrehozzunk egy UserControl-t amit a FunctionUserControl-ból örököltetünk, felszorjuk rá a megfelelő controlokat (Ez persze már egyeztetést igényel, mik a lehetőségek), beállítgatjuk az ID-kat (ez mondjuk egy hiba lehetőség), és kész a funkció használatba vehető.

Én ezt kicsit túlságosan merevnek érzem, kellene valami 2009-es megoldás :)
Mutasd a teljes hozzászólást!
A webpart-os megoldásnak az a lényege, hogy bizonyos usereknek lehet módosítani az oldal szerkezetét, másoknak nem. Azok nem is tudják, hogy mi az amit néznek. (Valószínűleg rengeteg alkalommal találkoztál már wp-al, hisz a SharePoint felülete erre épül és rengeteg site fut SP alatt. Csak nem tudsz róla, mert nincs jogod macerálni ezeket, így a fejléc sem jelenik meg.)

Nekem pont az a bajom, hogy a uc nehezen újrafelhasználható. Nem nagyon tudok olyan gyakorlati példát, ami több, egymástól teljesen független portálon is elsüthető - vagy nagyon általánosra csinálod meg, de akkor meg minek? Ugyan annyi idő alatt összerakom az alap controlokból, mint amennyi idő alatt átírom / testreszabom / designolom. Ráadásul még megkötések is vannak és olyan nyakatekert megoldások születnek, mint amiket a nyitó postodban felvázoltál.

Én továbbra is azt vallom, hogy felesleges feature a uc. Azaz a kérdésedre válaszolva:
Ti hogy oldanátok meg?

UC nélkül.
Mutasd a teljes hozzászólást!

  • Ennek az egésznek csak az értelmét nem látom. Csinálhastz egy osztályt (UserControl leszármaztatott) amit felvértezel új tulajdonságokkal és eljárásokkal, majd ebből lehet örököltetni.
    De mindez minek?

    (Megmondom őszintén én már a usercontrol létjogosultságát is vitatom - bár biztos van olyan terület, ahol lehet használni.)
    Mutasd a teljes hozzászólást!
  • Azért akadneki (usercontrol) is funkcionalítás:

    pl: cachelésre is tök jó, usercontrolokba szervezet a statikusabbnak tűnő tartalmakat (fejléc-lábléc től kezdve a beégetett szöveges elemekig), beállítasz rá output cache-t

    Az oldalakon sokszor vissza térő elemek újra felhasználására.

    Nekünk különösen fontos a usercontrol, mivel ez egyrészt designerrel szerkeszthető, lehet hozzá tenni más kontrolokat, usercontrolokat, teljesen átalakítható, egy usercontrol nálunk egy funkciót valósít meg: pl. ügyfél észrevétel kezelése (funkciók általába ugyanazokkal a controlokkal működnek, de a kinézet ügyfelenként más, de még az elrendezés is lehet más). (megtudja adni rajta a email címét, egy témát, további szöveges mezőt, usercontrolon meg paraméterben meg lehet adni milyen típussal mentse el az üzenetet, ráadásul mivel tetszöleges helyre pakolgathatja a designer, akár bepréselheti egy kis menű alá, de akár egy teljes képernyős megjelenést is tud neki varázsolni....)

    Talán így jobban érteni?
    Kitudod fejteni miért nincs jogosultsága a usercontrolnak?
    Mutasd a teljes hozzászólást!
  • Szvsz ilyen dolgokra a webpart használandó. Ha jól értem a dolgot, akkor majdnemhogy több melótok van így vele egy-egy ügyfélnél mintha előlről kezdenétek az egészet. Akkor meg minek?

    A usercontroloknak addig láttam létjogosultságát, amíg nem volt masterpage. Addig elképzelhető volt, hogy egy bizonyos részt (mondjuk egy login/userinfo dobozt) több oldalon is felhasználsz. Azt is el tudom képzelni, hogy egy teljes funkcionalitással felvértezett és jól sikerült usercontrolt több projectben is felhasználsz. De változtatás nélkül?

    De az, hogy csak azért használod, hogy a designerrel utána teljesen átalakítsd, annak nem sok értelmét látom.
    Mutasd a teljes hozzászólást!
  • Webparts-ok inkább a usernek biztosítanak testreszabhatóságot nem? Áthuzza máskonténerbe, elrejtés megjelnítás adott részeket az oldalon... (vagy ez nem ilyen egyszerű? nem használtam még)

    Mi (még) nem engedünk meg a usernek (böngésző túl oldalán lévő felhasználók) ilyen lehetőséget, minden ügyfelünk fix felépítésű oldalt kap, vagy hozott designból vagy készítünk mi a megbeszéltek alapján.

    Változtatás:
    Ha új lehetőség kell megpróbáljuk megvalósítani úgy, hogy opcionális legyen a régiek működjenek, mindaddig így csináljuk amig a meglévő logika képes kezelni az újításokat, ha nem készül belöle egy új változat, de a régi ugyanúgy elérhető, csak másból lesz örököltetve a usercontrol (funkció).
    (de pl ha az alap rendszer (adatbázisban) átírunk valamit egy elég magas szintig elérhetjük azt, hogy nem kell az egyes webeket egyesével átírni, az ősosztályban elég és együtt változnak a már meglévők)

    Több meló: nem hiszem, hogy több meló lenne vele, mert a funkció elkészítésekor már készül egy prototípús verzió a usercontrolból (rajta a megfelelő ASP.NET-es vezérlőkkel amit a funkció használ), designernek nincs más dolga mint ezt szét másolgatni azokra a web applikációkba amelyeken használni akarják. (De akár már egy megdesignolt változatot is át rakhat ha időt akar megtakarítani, vagy ha jól csinálja csak a css-eket kell meg butykölnie, hogy ileszkedjen a meglévő designhoz).

    Mutasd a teljes hozzászólást!
  • A webpart-os megoldásnak az a lényege, hogy bizonyos usereknek lehet módosítani az oldal szerkezetét, másoknak nem. Azok nem is tudják, hogy mi az amit néznek. (Valószínűleg rengeteg alkalommal találkoztál már wp-al, hisz a SharePoint felülete erre épül és rengeteg site fut SP alatt. Csak nem tudsz róla, mert nincs jogod macerálni ezeket, így a fejléc sem jelenik meg.)

    Nekem pont az a bajom, hogy a uc nehezen újrafelhasználható. Nem nagyon tudok olyan gyakorlati példát, ami több, egymástól teljesen független portálon is elsüthető - vagy nagyon általánosra csinálod meg, de akkor meg minek? Ugyan annyi idő alatt összerakom az alap controlokból, mint amennyi idő alatt átírom / testreszabom / designolom. Ráadásul még megkötések is vannak és olyan nyakatekert megoldások születnek, mint amiket a nyitó postodban felvázoltál.

    Én továbbra is azt vallom, hogy felesleges feature a uc. Azaz a kérdésedre válaszolva:
    Ti hogy oldanátok meg?

    UC nélkül.
    Mutasd a teljes hozzászólást!
  • Okés, akkor kicsit szorakozok ezekkel a webpartsos elemekkel, esetleg tudnál ajánlani pár tutorial-t amit érdemes átnyálazni?

    Köszönöm
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd