Architektura aplikace   zodpovězená otázka

VB.NET

Dobrý den.

Nepotřebuji vyřešit žádný problém, spíš bych poprosil někoho ze zkušenějších programátorů o radu.

Mám za sebou pár spíš menších WinForm aplikací. Ovšem nyní začínám tvořit jednu, která je už poměrně složitá a začíná být poměrně velká.

Obecně pokud si nainstaluju nějakou aplikaci, většinou se nejedná pouze o spustitelný soubor, který mi vytvoří Visual Studio, ale o několik souborů nejen *.dll knihoven.

Jde mi o to: Existují nějaké konvence, doporučení, zásady pro vytváření souborové struktury aplikace? Počítám, že není zrovna výhodné mít celý kód v jednom spustitelném souboru, ale zajímalo by mě, co z kódu dát mimo něj?

V žádné literatuře jsem k tomu moc nenašel.

Doufám, že někdo pochopí můj dotaz a odpoví popř. přiloží nějaký odkaz.

Předem díky za odpověď a adminům webu za super stránky

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Samozřejmě. Obecně by se dalo říct, že do knihoven se izolují třídy, které jsou používány více aplikacemi, nebo zásuvné moduly (add-in/plug-in), které nějak rozšiřují aplikaci. Nic konkrétního vám nikdo neporadí, protože nezná přesnou architekturu vaší aplikace.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Nejde mi o nic konkrétního, jen mi přišlo trochu zvláštní mít aplikaci o jednom souboru.

Takže pokud to správně chápu: používám-li aplikaci bez modulů a bez sdílení tříd, ... atd. Není nic proti ničemu mít pouze spustitelný soubor. Výkon aplikace to nesníží, ... atd.

Je to pro mě trochu překvapivé.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Knihovny využívané více aplikacemi vůbec nemusí být sdílené (GAC) ale pouze uložené ve složce aplikace. Každopádně záleží na komplexnosti a architektuře aplikace, jestli se jednotlivé části vyplatí dávat do samostatných knihoven. Ale u vašeho nějakého složitějšího hello worldu to zcela jistě nebude potřeba.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

díky za radu

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Odněkud jsem nabyl dojmu, že knihovny mají plnit funkci načítání částí kódu až ve chvíli jejich potřeby. I název tomu napovídá (dynamická knihovna). Funguje to tak automaticky, jsou-li vloženy reference na knihovnu, nebo se (ve velké aplikaci) k načítání knihovny jen pro chvíli jejich potřeby musí použít nějaký speciální postup?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Knihovna se načítá automaticky ve chvíli, kdy poprvé použijete některou z jejich tříd. Je to často vidět například při používání frameworků jako je WCF, kdy jejich první použití trvá několik vteřin, protože se načítá vše, co se uvnitř využívá.

Pokud to ale situace vyžaduje, můžete je opravdu načítat dynamicky za běhu.

Ale co se týká běžného používání, nemusíte to nijak řešit. Nareferencované knihovny jsou k dispozici automaticky.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Kód se načítá až v momentě potřeby i u běžných aplikací bez knihoven. Dokonce se i kompiluje do nativního kódu až v případě potřeby (pokud není předkompilován nástrojem ngen.exe).

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback