Dobrý den, potřeboval bych poradit s aplikací. Mám (Visual Studio) solution Aplikace, v ní dva projekty - Jádro a UI, v budoucnu přidám GUI. Snažím se během psaní oddělit UI od jádra, ale nevím, jestli to dělám správně. Je postup, že UI nástavba využívá metody tříd a vnořených tříd Jádra (např. Jadro.PoleCisel.VypisSerazene()) správný? Jádro je statická třída. Nebo by bylo správnější to psát jinak? Díky za radu.
Fórum › .NET
Jádro aplikace + UI/GUI
takhle funkce je podle me nesmysl.. jednak na to máš hotový funkce na řazená pole a taky PoleCisel? to znamená, že pro každej typ (krom neznamych) bude vlastní seřazovací funkce?...
jinak ano, je to možný psát takto staticky všechno, ale v nekterých případech je lepší nestatická (pokud neslouží třeba jen jako vstup a výstup)
a to jádro,UI a GUI... no nevim... prostě bych si spíš udělal knihovnu, kam nasypu všechny pomocný funkce, třídy, co něco zkracujou (co je má normálně delší zápis) a hlavně budou užitečný a potom tu knihovnu normálně používej kdekoli (console, gui...)
klidně si tam udělej třeba namespace, kterej bude pouze pro GUI, aby sis oddělil funkce non-gui a gui
Zdravím,
můžu se zeptat, jaké důvody tě vedou k rozdělení aplikace na jádro a prezentační vrstvu? Takové rozdělení je pochopitelně nadmíru bohulibá činnost, jen mě zajímá, čeho se snažíš dosáhnout
Odkud získáváš ty data? Generuješ je v aplikaci nebo je třeba taháš z databáze nebo podobně?
Přeji hezký den.
ingiraxo: Samozřejmě, že metoda, která jsem uvedl, jako taková nemá smysl :) šlo o příklad. Namespaces mám rozdělené na jádro, ui a gui, nicméně to nesouvisí s dotazem, jestli je správný přístup že UI/GUI využívá přímo metod tříd (a to i třeba tříd ve třídách), nebo je lepší jiná forma - napadá mně např. zásada, kdy nejhlubší volání bude užití metody Jádro.Požadavek a ta už se bude starat o to, že se zavolá Jádro.PrvníTřída.DruháTřida.Metoda.
Vaizo: V mém případě není nejnutnější řešit takové věci, ale chci si na tom ujasnit několik věcí, co mi přijdou zásadní. A právě oddělit jádro od prezence mi přijde nanejvýš vhodné a přehledné u rozsáhlejších projektech. GUI se může měnit, jádro je dané a není důvod měnit, rozšiřovat. Data se kterýma jádro (říkejme logika) pracuje jsou částečně sama generována ze vstupu uživatele a taky využívá data z/do XML.
podle mě, řešíš celkem zbytečnou věc... at se budeš snažit sebevíc, tak UI bude stále úzce souviset s jádrem a to i GUI potom
v první řadě což už máš, je oddělit prostorem tyhle části.. to co máš v jádru se teda nemění.. nevim co přesně tam hodláš mít, takže ti neřeknu, jak to mít struktůrovaný
další je teda UI.. no fajn, ale nějak nerozumim jak chceš oddšlit UI od jádra jinak, než prostorem (případně knihovnou)
potom nerozumim proč by si měl ve třídě vnořenou další třídu (veřejnou), to se dělá primárně pro vnitřní použití... důležitý potom je, aby si měl dobře promyšleý rozhraní, který je základní kámen v komplexnejších app, protože právě přes něj probíhá veškerá komunikace
Velmi se všem omlouvám, opět nerozumím dotazu/problému
Zkusím ale nadhodit pár tipů:
- Vnořené třídy? Proč? Proč k tomu nevyužít namespacy?
- Statické třídy? Zdá se mi to nebo chceš použít třídy ke strukturalizaci/zaškatulkování různých funkcí? Nemyslím si, že tohle není dobrý nápad. Zmínil bych dvě poučky: Simply Responsibility Principle - jedna třída, jeden účel/funkcionalita a KISS = Keep It Simply Stupid.
- Ano, větší aplikace je vhodné rozdělit do vrstev. Co je však důležité, aby každá vrstva měla jasně dáno, za co je zodpovědná a vazby mezi vrstvami byli ideálně lineární (v jedné řadě). Můžeš např. mít:
- Jádro s nástroji a pomocnými funkcemi a třídami, nezávislé na datech nebo logice aplikace
- Data access vrstvu obsahující Repository, přistupující k datum a třídy reprezentující strukturu dat.
- Prezenční vrstva, která pracuje s datovou vrstvou a slouží k prezentaci dat uživateli.
Trochu opakuji, co tu již řekl Ingiraxo, toho ale budu ignorovat, protože je první u každého příspěvku a to není fér!
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
GUI aplikace v C# — založil marpit
Dotazování na stav aplikace, řízení stavu aplikace — založil hlucheucho
Moderátoři diskuze