5

Sto creando un'applicazione in cui avrei un database che gli utenti non possono modificare. Ha solo dati e mostra all'utente. Ho scoperto che non devo usare localstorage, ma posso solo aggiungere un database al progetto ed è in sola lettura. Così l'ho fatto e tutto è ok. Ora voglio aggiungere immagini alla mia app e non sono sicuro di quale sia il modo migliore. Posso ogni immagine aggiungere alla cartella, nel percorso del database store per l'immagine ed è molto facile e può farlo ora. O ho scoperto che posso memorizzare l'immagine nel database come immagine (byte []). Cos'è meglio? Le immagini nel database sarebbero più piccole? Il caricamento delle immagini sarebbe più veloce? Se le immagini nel database sono la soluzione migliore, posso aggiungere facilmente immagini al mio database esistente? C'è qualche articolo per farlo in winforms? GrazieImmagini nel database o nella cartella del progetto come risorse

Modifica: Sono felice che la mia domanda abbia così tante risposte e opinioni. Voglio spiegare di più le mie esigenze. La mia applicazione dovrebbe avere circa 150 immagini e l'immagine dovrebbe essere di dimensioni 150px e 100px. Voglio app funzionerebbe senza connessione a Internet. Potrebbe connettersi per gli aggiornamenti, ma questo è tutto. Ancora grazie per tutte le opinioni :)

+0

Non salvare le immagini su un server se non si DEVE. Il caricamento di contenuti sul Web è lento rispetto al salvataggio diretto sul dispositivo. – MyKuLLSKI

risposta

1

Ci sono un sacco di "se", "ma" e "maybes" su dove metti le tue immagini e non penso che ci sia un modo giusto o sbagliato.

Una cosa che vale la pena ricordare è che se l'applicazione è business critical con alta disponibilità, le memorizzerei nel database semplicemente perché è possibile eseguire il backup con il resto dei dati. I database possono essere specchiati ecc, quindi avere tutte le immagini trattate come "dati" può essere utile. Inoltre, se le cose si fanno grandi e si utilizza una web farm e si caricano i bilanciatori del carico, questo aiuta quando le immagini vivono in un posto.

Per me, vorrei andare con il database. Ma tutto dipende davvero dalla scala della tua applicazione.

+0

Sono contento di tutte le risposte. Dopo aver pensato e scelto il database, scelgo la tua risposta. Grazie –

+0

Felice di aver trovato questo utile. –

0

cartella web. pensa anche al caricamento remoto da un server cloud come Amazon S3 per liberare l'accesso al tuo server

1

Personalmente, memorizzerei tutte le immagini in una memoria isolata e nel database memorizzerei il percorso dell'immagine.

avrei memorizzare tutte le immagini come un byte [] nel IsolatedStorage

3

Per la nostra applicazione, abbiamo trovato un approccio ibrido ha funzionato meglio. Abbiamo configurato il nostro ambiente SQL per supportare FILESTREAM e poi importato tutte le nostre immagini. Questo ci dà la flessibilità di avere le immagini "in sql" mentre conserviamo ancora le immagini reali su disco. È una soluzione veloce che potrebbe funzionare bene anche per te.

0

l'opzione migliore è quella di memorizzare le immagini su cartella Web, se li si salva nel DB, si perdere tempo li retreiving da DB perché ci vuole più tempo

+2

Non sono d'accordo. Andare sul Web NON è veloce – MyKuLLSKI

1

Niente di sbagliato con le risposte già qui ma in realtà dipende da cosa stai cercando di realizzare e da come è attualmente impostato.

La cosa migliore sarebbe utilizzare una rete di distribuzione di contenuto per immagini statiche per facilitare il carico del server web.

È possibile servire dal database o come file di risorse nella struttura del file a proprio piacimento. Se le immagini sono statiche, non dimenticare di aggiungere la memorizzazione nella cache appropriata, che per il contenuto statico sarebbe di gran lunga futura.

Se si esegue il rendering delle immagini, manterrei sicuramente le immagini nel database per consentire l'accesso alle immagini da qualsiasi numero di server Web.

Se lo si desidera è possibile sviluppare ulteriormente mantenendo le immagini utilizzate più recentemente in memoria o memorizzate sul filesystem locale in modo da non dover recuperare il file dal database ogni volta.

Problemi correlati