Tausende Bilder (png) in Projekt einbinden - Locale Ressource oder Projectressourcendatei - oder was?

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Tausende Bilder (png) in Projekt einbinden - Locale Ressource oder Projectressourcendatei - oder was?

    Hallo zusammen,
    mein Projekt benötigt tausende Bild- (png) und Audiodateien (mp3). Es kommen einige 'duzend' MB zusammen.
    Sehr viele dieser Ressoucen werden auf allen Forms (ca. 60 Stück) benötigt.
    Um den Programmstart kurz zu halten möchte ich diese Ressourcen in der Project-Ressourcendatei speichern.

    Meine Fragen hierzu sind:
    1. Wie unübersichtlich wird diese Datei, wenn tausende - auch thematisch - unterschiedliche Bild- und Audiodateien dort abgelegt werden? Kann man hier mit Unterordner arbeiten?
    2. Wenn einzelne dieser Dateien geändert werden, muss dann komplett neu kompiliert werden?
    Schönen Gruß
    Trebron

    - Visual Studio Community 2017 -
    Ohne jetzt Beweise zu haben: Sicher, dass dadurch das Programm beschleunigt wird? Zu 2.: Dann werden die Dateien Teil des Programms. Dadurch wird das Programm natürlich riesig. Und die Frage, ob durch Änderung der fest eingebauten Resourcen bei Änderungen neu kompiliert werden muss, würde ich mal mit ja spekulieren. Probier es mit einer handvoll Dateien aus und berichte. Ich halte diesen von Dir angepeilten Weg nicht für sinnvoll, aber ich weiß ja nicht, was Du bastelst. Ggf. wäre das nebenläufige Laden der Dateien nach Programmstart eine Option.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Hallo CCD-Novize, vielen Dank für die schnelle Antwort!

    Wie muss ich vorgehen, damit das Programm 'klein' bleibt, auch um den Nachteil, dass jede Form beim starten erstmal seine Ressourcen laden muss?
    Schönen Gruß
    Trebron

    - Visual Studio Community 2017 -

    Trebron schrieb:

    damit das Programm 'klein' bleibt
    solltest Du einfach keine Tonnen an Resourcen einbinden. Sondern sie eben bei Bedarf laden. Nebenläufig. Oh, Moment, ich wiederhole mich ja. Da ich ja immer noch keine Ahnung habe, was Du bastelst, werfe ich mal in den Raum, dass Du bei Formulargenerierung eben einen nebenläufigen Zweig startest (Stichwort Async/Await), in dem alle relevanten Daten in eine passende List(Of) (oder ggf. mehrere) geladen werden und dann am Ende des Ladevorgangs dem Form gegeben werden, damit es damit macht, was Du vorhast. Spezifischer kann ich aus Unkenntnis bzgl. Deines Projekts nicht werden.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    @Trebron Wahrscheinlich ist es sinnvoll, wenn Du Dir etwas länger Gedanken darüber machst, wie Du Deine Dateien gruppieren kannst.
    Dann mach z.B. für jede Gruppe ein eigenes Verzeichnis / Verzeichnisstruktur, so dass dann ein einfacher Algorithmus in der Lage ist, die Dateien zu laden.
    In der Summe könnte eine tiefere Struktur (mehr Unterverzeichnisse) mehr bringen als eine flache (keine Unterverzeichnisse), aber das sollte probiert werden.
    Vielleicht stellst Du mal die Gesichtspunkte vor, nach denen Du auf die Ressourcen zugreifst.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!