Vytvořeny nové sdílené knihovny pro mé aplikace

⚠️ Pozor: obrázky z tohoto příspěvku se ztratily při výpadku v roce 2016. Chybějící obrázky nahradí automaticky vtipným placeholderem plugin Broken Image Placeholder.
Už v počátcích mého programování jsem řešil způsob jak omezit duplikaci kódu. Nejen že to zbytečně zabíralo prostor na disku, o to nešlo ale hlavně když jsem někde přidal 1 metodu, musel jsem ji pak složitě přidávat i jinde a případně i hledat její nejlepší variantu, pokud bych neměl zcela jasno.

Nevím už přesně proč, zkoušel jsem to jak se sdílenými projekty tak se sdílenými assembly(.dll) tenkrát. Nefungovalo to a tak jsem měl všude v projektu mnoho tříd které existovali i jinde. Do dneška s tím bojuji – s těmito projekty. Do dneška jsem měl tedy defakto 3 sdílené řešení/projekty:

  • sunamo.cz – můj web, další moje weby(jako webelieve.cz) měli přilinkované odkazy na souboru sunamo.cz a všechno fungovalo
  • swf – “Sunamo WIndows Foundation” – pro deskopové aplikace, táhla se od doby Windows Forms, a byla nejvíce nabobtnalá
  • wsf – “Windows Sunamo Foundation” – tam jsem si na začátku nakopíroval soubory z swf, některé musel upravit kvůli změnám v rozhraní a pak už si projekt žil svým vlastním životem
  • Nyní, na sklonku roku 2015 bych se chtěl začít více věnovat Windows Store Apps. Měl jsem před sebou několik cest jak tyto aplikace vyvíjet :

    1. Všechno jako dosud
    2. Sdílené zdrojové kódy – náročné na správu, protože někde může některá metoda chybět a hned bych musel mít více zdrojových souborů. Ale když pominu toto, bylo by to nejlepší řešení a mrzí mě teď trochu, že jsem se nevydal touto cestou
    3. Sdílené projekty – to co mám teď.

    To přináší tyto radosti :

    1. Už téměř žádný duplikovaný zdrojový kód. Nejvíce ho je v třídách co se týče malování(které ve store apps chybí – tam se to řeší pouze nastylováním) a pak samozřejmě ve Controls, protože web, desktop i windows store apps jsou odlišné nejen vzhledem, ale i chováním.
    2. Mohu spravovat to nejlepší na jednom místě.
    3. Všechno co přidám do jednoho projektu mohu okamžitě využívat všude.

    A tyto starosti :

    1. Delší doba při otevírání ale nemožné dlouho trvá kompilace. Hlavně sunamo.cz. Už jsem si zažádal o napojení domény sunamo.net na můj vps, kde začnu tvořit nový svůj web, dělaný v .NET Core a psaný ve Visual Studio Code stylem kódu MVC.
    2. Z nějakého důvodu si sunamo.cz co je napojen na sdílené projekty nepamatuje jeho nastavení.
    3. Nutnost přidávat více(min

      2) projektů do řešení. Ale to je to nejmenší. Předchozí 2 problémy mě tíží více.

    A které sestavení nové mám?

    • sunamo – bázová knihovna všech, nedědí od nikoho

    • apps – pro Windows Store Apps, dědí od sunamo

    • shared – pro web + desktop programy, dědí od sunamo

    • forms – pro Windows Forms desktop programy, dědí od sunamo, shared

    • desktop – pro Windows Presentation Foundation desktop programy, dědí od sunamo, shared, forms

    • web – pro webové aplikace, dědí od sunamo, shared

    A nakonec jak musí být nastaveny všechny projekty co se týká targetu platformy dle procesoru:
    GeoCachingTool nastaveni buildu
    Zde to je pro x64 a Release. Pro x86 a ARM to je naprosto analogické, pro Debug samozřejmě také.l

Leave a Reply

Your email address will not be published. Required fields are marked *