Návrh abstraktního DataSource
- DocX
- Člen | 154
Ahoj,
napadlo mě, že by možná nebylo od věci nějak „standardizovat“
rozhraní pro propojení modelu s různými objekty. Jde mi o to, že když se
teď kouknu na většinu doplňků pro nějakou obsluhu dat (DataGrid, TreeView,
…), tak všechny jsou natvrdo dělány pro použití s dibi
IDataSource
. Ale co když chci tyto komponenty naládovat daty
odjinud (soubor, moje vlastní implementace modelu, apod)? Na implementaci
IDataSource
mi přijde, že je až moc databázově/SQL
zaměřený.
Tohle právě řeší nejspíš také autor falešného datagridu, který jde ale také vlastní cestou. Ale tam se mi líbí taková střední cesta, kdy by mohlo být pravidlem, že každá taková komponenta by měla vlastní rozhraní, podle toho co potřebuje a hlavně oddělené od SQL. Potom by si každý jednoduše mohl naimplementovat vlastní.
Otázka tedy je zda
- to neřešit vůbec
- vytvořit určitý „kodex“ pro vývojáře komponent
- vymyslet a připojit nějaký interface přímo do Nette
Vidíte to taky tak jako já nebo jsem jen něco nepochopil? Díky :)
Editoval DocX (25. 6. 2010 16:54)
- Honza Marek
- Člen | 1664
Koukni na IDataSource. Prakticky nic neumí, rozhodně nepokrývá všechny možnosti třídy DibiDataSource.
Jinak o řešení, že každá komponenta bude mít nějaké rozhranní pro model, který si každý bude moct implementovat po svém, si myslím, že je dobré. Nemám to tak jen v tom datagridu, ale je to tak ještě minimálně v anketě Ondřeje Brejly. Každá komponenta totiž potřebuje něco jiného a univerzální rozhranní by asi mohlo být docela rozsáhlé.
- DocX
- Člen | 154
Honza Marek napsal(a):
Koukni na IDataSource. Prakticky nic neumí, rozhodně nepokrývá všechny možnosti třídy DibiDataSource.
Nj, to neumí vůbec nic :D
Potom nechápu k čemu je. Ale co víc, nechápu proč např.
TreeView
jakože
robustně kontroluje zda je to IDataSource
, když pak vlastně
předpokládá DibiDataSource
Jinak o řešení, že každá komponenta bude mít nějaké rozhranní pro model, který si každý bude moct implementovat po svém, si myslím, že je dobré. Nemám to tak jen v tom datagridu, ale je to tak ještě minimálně v anketě Ondřeje Brejly. Každá komponenta totiž potřebuje něco jiného a univerzální rozhranní by asi mohlo být docela rozsáhlé.
Právě by to bylo dost rozsáhlé a vlastně nakonec asi i nepoužitelné.
Asi teda nejlepší by bylo, kdyby se mohlo jakože „Nette“ zasadit o nějaké takové pravidlo. Něco ve stylu „chceš být doplňěk pro Nette, musíš to udělat tak a tak“ :) Nebo alespoň to zmínit někde v dokumentaci jako „best practice“.
Editoval DocX (25. 6. 2010 17:38)