PDA

Visualizza la versione completa : [VB.NET] La Soluzione è diventata lenta in avvio


Rickycast
07-09-2018, 17:40
Dopo molte versioni della mia "Solution.sln" posso dire che adesso riesco ad ottenere quasi tutto quello che volevo, però è diventata molto lenta in avvio (utilizzo Visual Studio 2017 - linguaggio VB.Net). È vero che pesa quasi 100MB ma non c'è niente di superfluo in quello che ottengo quando la eseguo: la Solution contiene un solo Progetto con molte Form e tanto codice. Sicuramente ci saranno mille cose da correggere e migliorare però i miei limiti sono molti, ....
Ho provato ad eseguire una vecchia versione (quasi la prima) ma anche questa è lenta in avvio più di quanto non fosse quando l'ho scritta e questo non me lo spiego. I tentativi li ho fatti anche su PC diversi e ovviamente ci sono differenze causate dall'hardware ma la lentezza rimane evidente. Ho anche provato a cancellare le Form lasciando solo quella di avvio ridotta al minimo ma non cambia molto: ci vogliono almeno 4/5 secondi dal Click. Dovrei (vorrei) poter ricominciare tutto da zero su una nuova Solution vergine ma qui entra in ballo il fatto che non sono più riuscito a ripercorrere la strada che mi ha portato a crearla (Visual Studio 2015). O meglio, è proprio necessaria una Solution o basta un Progetto Windows Forms? Che confusione in testa! e non ho trovato niente di semplice che possa guidarmi nel marasma di Visual Studio come, ad esmpio, che differenza c'è fra un Progetto e una Solution. Ogni suggerimento è ben accetto.

alka
10-09-2018, 14:21
Non è chiaro se parlando di "Soluzione lenta in avvio" ti stai riferimento al fatto che è lento il caricamento in Visual Studio oppure se l'applicazione (eseguibile) che si avvia lentamente. :stordita:

Rickycast
10-09-2018, 14:37
È lento l'avvio dell'eseguibile, molto lento. Anche quando lancio "Avvia" (Debug) da Visual Studio, il sistema prima esegue il Debug (ed è normale che si prenda del tempo), poi la riga delle "Visualizzazioni in background" passa da Azzurra ad Arancio e solo 4/5 secondi dopo compare la Form di avvio. Quando ho cominciato a lavorare su questo Progetto, l'apertura della Form di avvio era quasi istantanea.
Comunque non mi ricordo se fin dall'inizio Visual Studio mi aprive una .sln o un Progetto. Adesso apre comunque una .sln e qui nasce anche la mia confusione perché, come ho detto, io non ho ancora trovato un testo che mi spieghi le differenza fra Solution e Proggetto e come si gestiscono.
Questo perchè ipotizzando di avere "sporcato" il lavoro, vorrei poterlo riscrivere da zero su una base nuova e adatta allo scopo. Per intenderci, utilizzo molte tabelle di Access 2007 che istanzio all'occorrenza e di conseguenza molte Form con i dati elaborati.

djciko
10-09-2018, 14:58
la solution è un contenitore di progetti di vario tipo, tutto qui.

in una solution puoi avere un progetto Classi Library, un WebSite ed un WebService.

ci sara' un solo file .SLN e tre .VBPROJ (oppure .CSPROJ se il codice è C#)

djciko
10-09-2018, 15:11
Se fai tasto destro sulla solution, puoi aggiungere un nuovo progetto oppure un progetto esistente.

cioe' o lo crei da zero oppure, se hai una libreria che usi sempre ad esempio, puoi includerla nella solution.

:)

Rickycast
10-09-2018, 15:19
Grazie, era banale ma non scontato.
Quindi io opero comunque e solo su un Progetto (uno alla volta se ce ne sono più di uno)?
E ancora quindi, eseguire "Ricompila soluzione" ricompila TUTTI i Progetti in essa compresi, mentre "Ricompila Progetto" ricompila solo quel progetto?

djciko
10-09-2018, 15:39
Puoi operare anche su un solo progetto.

Ti faccio un esempio, nel nostro team c'e' una Solution su cui lavoriamo (con SVN naturalmente) in 8 persone.

La solution contiene:

- 4 progetti class library
- 1 progetto class library usato per i test
- 3 progetti per tre WebServices
- 4 progetti per tre WebServices Mock (cioe' simulatori, con risposte finte per ora)
- 1 progetto per una console application
- 1 progetto per un website
- 1 progetto per un windows service

Attualmente io sto lavorando sulla console application.


Si, quando ricompili la soluzione ricompila tutti i progetti in essa contenuti.
"Ricompila progetto" invece ricompila solo quel progetto su cui hai fatto click.

djciko
10-09-2018, 15:55
Inoltre, puoi mettere fra i riferimenti di un progetto un altro progetto della solution.

Cio' implica che l'ultima versione della DLL sara' usata dall'altro progetto che lo referenzia.

Da questo, non puoi creare un riferimento a quello che lo referenzia perche' Visual Studio ti dice che si sta creando un "riferimento circolare". Ovvio.

Tutto questo discorso dei riferimenti, riguardo i dettagli, include anche i modificatori ovviamente (public / private etc).

Rickycast
10-09-2018, 16:10
Grazie, era banale ma non scontato.
Quindi io opero comunque e solo su un Progetto (uno alla volta se ce ne sono più di uno)?
E ancora quindi, eseguire "Ricompila soluzione" ricompila TUTTI i Progetti in essa compresi, mentre "Ricompila Progetto" ricompila solo quel progetto?

Rickycast
10-09-2018, 16:12
Ancora grazie. Saranno ovvietà ma senza chiarezza di idee rischierei di fare cose inutili e/o superflue che per finire complicano inutilmente il lavoro.

Loading