Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Lbreria DLL in WPF
giovedì 29 marzo 2012 - 21.03
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Elenco Tags
C#
|
.NET 4.0
|
Visual Studio 2010
b4p3p
Profilo
| Newbie
10
messaggi | Data Invio:
gio 29 mar 2012 - 21:03
Salve a tutti,
è da un pò che seguo questo forum e il più delle volte ho trovato delle ottime soluzioni, ma adesso è arrivato il momento di scrivere il mio primo messaggio in questa comunità.
Spero mi possiate aiutare in qualche modo.
Ho la necessità di creare un'applicazione WPF costituita da più DLL.
l'esigenza nasce dal fatto che l'applicazione verrà aggiornata di continuo, e invece di scaricare l'intero eseguibile voglio far scaricare solo la dll necessaria.
ho provato a costruire una libreria di controlli wpf, ma il risultato è una sola grande libreria con più oggetti al suo interno.
C'è un modo per dire al visual studio di compilare ciascun user control in una dll diversa?
Ogni dll deve contenere lo xaml e il cs per farla funzionare, infatti l'idea sarà quella di inserire questo user control all'interno di una grid all'interno della finestra principale dell'applicazione.
Grazie a tutti anticipatamente.
Come mi muovo?
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
gio 29 mar 2012 - 22:23
Ciao b4p3p,
innanzitutto benvenuto!
La tua idea mi fa un attimo pensare, anche se potresti banalmente fare un progetto da aggiungere alla tua solution, con dentro un solo controllo ed avere una dll per controllo, mi sembra meglio fare 2 parole prima di trovare una soluzione "diretta" al tuo problema.
Come mai ti nasce questa necessità un po' strana? WPF come tutti i pacchetti "client" sviluppati con .net possono essere distribuiti con ClickOnce, che sostanzialmente è l'equivalente di JavaWebStart.
In quel modo, tu puoi lavorare al tuo applicativo normalmente, dividerti magari un progetto di Controlli, ma che li contenga tutti magari, oltre ai vari altri progetti che comporrano i layer applicativi, e poi appunto distrubuire con ClickOnce ogni volta che vuoi che venga aggiornato.
Senza fare niente sui client arriveranno giù tutte le librerie che fanno parte di quella pubblicazione.
Maggiori info qui:
http://msdn.microsoft.com/it-it/library/t71a733d
(v=vs.80).aspx
http://channel9.msdn.com/Blogs/mtaulty/WPF-ClickOnce-and-the-NET-Client-Profile
Ciao.
Matteo Raumer
[MCAD .net, MVP Visual C#]
http://blogs.dotnethell.it/freeteo
b4p3p
Profilo
| Newbie
10
messaggi | Data Invio:
ven 30 mar 2012 - 16:20
Ciao e grazie per la risposta.
Interessante questa soluzione, ammetto che non ci avevo pensato, anche se dopo un pò di analisi mi lascia alcuni dubbi.
La mia esigenza è quella di aggiornare solo determinati client.
L'aggiornamento non lo fa direttamente il client sul mio server di update, ma lo fa attraverso un server intermedio , sul quale nella mia idea volevo pre caricare le dll aggiornate per far girare il client all'ultima versione.
Non mi posso permettere di caricare 4 MB di eseguibile sul server intermedio, per Non caricare eccessivamente la banda.
Per questo volevo creare tante piccole dll da lasciare qua e la su tutti i server intermedi.
Se creo un progetto di tipo libreria, dovrei creare una ventina di progetti, o posso dire a vs di creare tante dll quante sono le cartelle?
Grazie mille ancora.
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
ven 30 mar 2012 - 17:46
>Ciao e grazie per la risposta.
di nulla figurati
>Interessante questa soluzione, ammetto che non ci avevo pensato,
>anche se dopo un pò di analisi mi lascia alcuni dubbi.
>La mia esigenza è quella di aggiornare solo determinati client.
ok, ti basta dare un url di pubblicazione e quindi aggiornamento diverso per chi vuoi, oppure gestire l'update con ClickOnce direttamente da codice, io mi sono trovato bene proprio per gestire con logiche mie l'update, ma senza preoccuparmi di tutta una serie di effetti collaterale (quali files, riferimenti, overwrite etc...)
>L'aggiornamento non lo fa direttamente il client sul mio server
>di update, ma lo fa attraverso un server intermedio , sul quale
>nella mia idea volevo pre caricare le dll aggiornate per far
>girare il client all'ultima versione.
questo "server intermedio" non mi è chiaro che funzionalità abbia, cmq sia, puoi fare una distribuzione clickonce sul server intermedio e poi il server reale dove vai ad insistere come database può essere tranquillamente un altro...anzi spessissimo è proprio così.
>Non mi posso permettere di caricare 4 MB di eseguibile sul server
>intermedio, per Non caricare eccessivamente la banda.
non ho capito cosa intendi per "server intermedio"...
>Per questo volevo creare tante piccole dll da lasciare qua e
>la su tutti i server intermedi.
e poi come le mantieni?
>Se creo un progetto di tipo libreria, dovrei creare una ventina
>di progetti, o posso dire a vs di creare tante dll quante sono
>le cartelle?
no, uno per progetto.
Cmq in 12 anni di programmazione non mi è mai capitato di vedere questa situazione di tante librerie quante sono i controlli, sicuramente si può fare, ma è un po' al limite.
Ciao.
Matteo Raumer
[MCAD .net, MVP Visual C#]
http://blogs.dotnethell.it/freeteo
b4p3p
Profilo
| Newbie
10
messaggi | Data Invio:
sab 31 mar 2012 - 14:11
Buongiorno,
Allora... cerchiamo di chiarire un pò il problema:
Per server intermedi intendo una specie di web service, ai quali i vari client richiedono dei servizi, oltre a quello che andrò ad installare io.
Questi web service sono molto eterogenei tra loro, quindi mi posso trovare a dialogare con apache anziché iis.
Quindi qui mi pongo 2 problemi:
1) il client deve essere aggiornato per dialogare con questo web service in base alla sua versione
2)lo stesso client per un motivo x può interrogare un'altro web service intermedio, e deve aggiornarsi automaticamente alla versione del web service contattato.
Per questi due motivi cercavo una soluzione altamente scalabile.
La soluzione che testerò nel weekend sarà proprio questa:
il client contatta un web service, si fa dire la versione, e se è differente, scarico soltanto le dll mancanti.
Poi magari faccio un analisi dei risultati e La metto a disposizione.
Buon weekend a tutti
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !