Návrh abstraktního DataSource

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
DocX
Člen | 154
+
0
-

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
+
0
-

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
+
0
-

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)