Newsgroup: it.comp.lang.visual-basic
Titolo: Differenze di velocità tra applicazioni VB6 e .NET

Buongiorno a tutti,
non ho ancora esperienza con 
VB.NET
, però a quanto mi è stato riferito da
alcuni programmatori che già hanno iniziato ad utilizzare .NET le
applicazioni sviluppate con quest'ultimo sarebbero molto più lente rispetto
ad un equivalente in VB6 (nello specifico un programmino per la
catalogazione di libri con db access ed accesso di tipo ado sarebbe circa 4
volte più lento se sviluppato con .NET).
Voi avete esperienze in merito?
Sapete se ci sono differenze tra .NET 2003 e la nuova versione 2005?
Grazie a tutti,
Watson.

 Voi avete esperienze in merito?
ti posso dire relativamente ad alcuni software che ci hanno consegnato.
non ho capito se chi usa .net lo fa perche` ha iniziato a programmare
ieri (e .net e` il primo strumento che ha trovato), ma mi ha fatto
brutta impressione per lentezza e richiesta d RAM.
-- 
ciao, hal

 brutta impressione per lentezza e richiesta d RAM.
Credo dipenda dal fatto che i programmatori che si trovano in giro oggi
siano delle capre.
A parte la partenza, dove la prima volta l'app tira su la parte di framework
interessata e viene compilata, le prestazioni (parlo della ver 2003) mi
sembrano assimilabili alla VB6 compilata nativa (anche se per del codice
compilato in modo x86 nativo e ottimizzato per la situazione della
macchina - parlo di .Net - mi sarei aspettato ben altre prestazioni).
Certo che se uno usa InStr anzichč String.IndexOf, Mid anzichč
String.Substring, MsgBox anzichč MessageBox, Option Explicit Off, Option
Strict Off ecc in puro stile "so poco di VB6 ma uso VB.Net come VB6" altro
che 4 volte piů lento...
Ciao
--
Reporting tool: 
http://www.neodatatype.net


Io ti posso parlare delle animazioni con frame e sprite... :
i metodi grafici nativi (quelli della famiglia GDI+ per intenderci)
sono più lenti di quelli che si ottengono con le vecchie API
GetDevice, BitBlt ecc
(che con opportune modifiche puoi però continuare ad usare)
Una tristezza...
Ma è meglio non farlo sapere alla MS
sennò alla prossima versione inventano tutto un altro nuovo modo
di disegnare che ci dobbiamo mettere ad imparare, 
senza invece andare a migliorare loro quello che c'è.
Io uso le API.

 che 4 volte piů lento...
ora che mi ci fai pensare, un nostro programmatore in un programma
da scrivere .net si era incasinato nel trattare le date.
(apro una parente: ora, dico io, nel 2005 e` inconcepibile non essere 
ancora capaci di maneggiare una data! chiudo la parente)
e mi pare che usasse proprio le funzioni di compatibilita` col
vecchio vb6.
-- 
ciao, hal

 vecchio vb6.
Se uno si incasina con le date, propabilmente si troverà in difficoltà con 
string.Format, string.Compare,
Option Explicit On,  ecc.
in .NET posso:
Dim s As String = "ff.gg.ll.oo"
Dim a() As String = s.Trim.Split(".")
utilizzare funzioni in sequenza.
In .NET, nelle Windows form ho una doppia eredità, grafica e classi.
Al vs 2003 per 
ASP.NET
 solo per le classi.
In .NET posso costruire una classe Master e farla ereditare da tutte le 
altre.
Es. in 
ASP.NET
 per i messaggi, i controlli nel Load, ecc.
Non ho utilizzato un Web service con vb6, ma con .NET è semplice.
Da un anno sviluppo in 
ASP.NET
 e vi assicuro che le differenze rispetto ad 
ASP sono sostanziali.
Al rispondere, si è possibile anche in 
ASP.NET
, ti guardano con sospetto.
Alcuni svantaggi rispetto a VB6:
- lentezza iniziale nel caricare in memoria gli assembly iniziali.
- Lo stop & go
- Il dover per forza salvare, prima di iniziare a sviluppare; quindi 
costruzione di cartelle e file che a te non servono.
- Dover acquistare un nuovo pc
- il controllo immediato da fermo
- l'aver studiato come aprire una form,  verificare: non esiste l'istaza > 
istanziare > aprirla. Da quello che ho letto con il 2005 si ritorna al 
form1.show
- Gettare tutti gli ocx e le dll costruite in precedenza.
- Abbandonare il vb6, altrimenti quando diventi autonomo in .NET ?
- L'indifferenza del cliente. Ma è .NET, ho studiato le notti per impararlo, 
ecc.;
cliente: "E chi se ne frega !"
- Acquistare un pacco di libri
- L'indecisione, in 2002 ; 2003 ; o 2005 ?
Ma se a tre clienti ho installato una versione, ad altri il 2003, al 
prossimi ?
Programma per la gestione delle installazioni.
- la connessione connessa. Come ti blocco il record ?
- ecc.
Certo, se pagherebbero a ore di studio,
tutte le sere donnine allegre e champagne !
Ave
giuseppeD
---
CCR 

 ancora capaci di maneggiare una data! chiudo la parente)
se non sa maneggiare le date, come puo' sapere che e' il 2005 ? :)
ciao, a.comma22


glielo avra` detto il suo capoprogetto quando gli ha fatto
notare che era in ritardo con la consegna :-P
-- 
ciao, hal

 notare che era in ritardo con la consegna :-P
non saprei se fidarmi granche' del concetto di data dei capiprogetto :)

 non saprei se fidarmi granche' del concetto di data dei capiprogetto :)
forse non hai tutti i torti: da noi molti fanno i capiprogetto perche`
altrimenti non potrebbero fare altro <g>
-- 
ciao, hal

 altrimenti non potrebbero fare altro <g>
magari come commerciali...

 vecchio vb6.
[cut]
Per esperienza personale sono solidale con il tuo programmatore...(vedi post 
prec.).
Comunque sviste a parte, sono convinto che MS abbia fatto un errore 
madornale con il .NET framework ed ora per voler recuperare ha incasinato 
ancora di più il tutto. Mi spiego: prima c'era un solo VB e a chi 
interessava l'integrazione col mondo office (es. chi scrive) c'era il VBA. 
Ora c'è il VB6,  il .NET (fram. v. 1.0), il .NET (fram. v. 2.0) ed un 
supporto ai prodotti Office denominato "Visual Studio Tool For Office" il 
quale per ora si affianca al VBA, ma che secondo me lo sostituirà a breve, e 
che è IMHO un ibrido incomprensibile che incasina ancora di più il tutto (ps 
ho scaricato un esempio, 48 file in pochi kb, ma non gira con VB2005 Expr). 
Morale della favola: chi ha il tempo e la possibilità di studiare il .NET lo 
deve fare per forza ed a cadenza biennale, chi invece non può farlo (io nn 
faccio il prog di mestiere, e si vede del resto), deve continuare ad usare 
il VB6 e VBA  fino a che sarà possibile. Mah vedremo cosa ci riserva il 
futuro! 

io aggiungo anche la NON disponibilità
degli array di controlli,
adesso devi costruirteli dalla classe
di compatibilità con VB6 con Addhandler
o 
andare ad associare ad un evento 
più controlli contemporaneamente 
aggiungendoli all Handles
(ma non hai a disposizione un indice
e per far fare una cosa ad un controllo 
devi prima effettuare il riconoscimento 
confrontando il sender).
Quindi due cose laboriose.
Tenendo conto che gli array
sono una realtà usatissima,
è menefreghismo tirannico


 è menefreghismo tirannico
Non sono d'accordo.
Gli array di controlli di VB6 erano una cosa obrobriosa.
Ora puoi gestire i controlli in modo molto più lineare e flessibile.
Già ritengo una grande porcata l'aver reintrodotto l'istanza di default dei
form, proprio per far piacere a programmatori pigri di mediocri capacità.


 futuro!
Su questo sono d'accordo.
C'è da dire che Microsoft con .Net si trova ancora in una fase di
transizione e quindi sta sfornando release a manetta, che secondo me sono
più dei SP dopati che delle vere nuove versioni.
D'altra parte credo che joel ci abbia azzeccato anche questa volta con
http://italian.joelonsoftware.com/Articles/FireAndMotion.html
Per quanto riguarda il futuro pare che ci sia Windows Vista, completamente
(o quasi) nativamente managed, con XAML e le nuove potenzialità di GDI+ che
tenta di portare su desktop la teoria di ASP.Net: interfaccie in XML e
codice in .Net.
Staremo proprio a vedere.


 Una tristezza...
Sì, è vero.
Tant'è che anche quelli di Paint.Net a quanto pare per motivi prestazionali
hanno rinunciato almeno in parte a GDI+ per tornare a GDI.
Ma vuoi mettere le potenzialità di GDI+?
Prova anche solo a ruotare un'immagine con GDI... qui non si quanto sia
prestazionalmente (e qualitativamente) migliore la vecchia soluzione e in
GDI+ si fa con 4 righe di codice.
Lo stesso se devi farti dei FloodFill a gradienti e via così.
Ciao

 Expr).
http://www.microsoft.com/office/preview/default.mspx
-- 
----------------------------
Mauro Gamberini 

 - la connessione connessa. Come ti blocco il record ?
grazie, ciao
N! Xau
la sede del MSTC
http://ilovemiliofede.altervista.org


Santissime parole Giuseppe..!!
Anche io ho pianto... tanto.. e dormito.. poco... per imparare ad usare
.NET.
Comunque, avevo fatto un Test sull'uso delle stringhe. Anche ottimizzando al
massimo .NET (ad esempio usando StringBuilder() ) .NET risulta al meglio da
1,5 a 2.0 voltre più lento di VB6.
Per l'elaborazione senza creare/distruggere oggetti (calcoli su vettori e
similari) è uguale.
Il problema velocità in esecuzione io lo riassumerei come "create e
distruggete meno oggetti possibili".
CIAO
Ettore Maronese, il Mes
http://www.it-lang-vb.net
   << Il Migliore
Evitate di applicare il rasoio di Occam: "Pluralitas non est ponenda sine
necessitate", perchè significa rifugiarsi nella pigrizia.

>Alcuni svantaggi rispetto a VB6:
un altro è il fatto che 
i file del NET ottenuti 
sono meno sicuri e più facilmente apribili
(con le cose che ne conseguono )
di quelli del VB6
(anche se non ho mai provato a proteggerli con 
metodi un po pù sicuri , comunque a pagamento,
e non posso pronunciarmi molto su questa cosa;
ma secondo me la cosa sarà seria, non adesso 
che il Net non lo usa nessuno)


In pratica si passa all'xml e al supporto zip integrato. Mah ... vedremo.
Ciao e grazie per il link 

> - la connessione connessa. Come ti blocco il record ?
Con ADO si può lavorare in sconnesso e connesso, puoi bloccare un record.
ADO.NET
  opera in disconnesso. Sembra che in futuro ripristineranno il 
connesso.
Quindi se devo bloccare uno o più record come eseguo ?
In SQL Server, per esempio, ho risolto utilizzando Hint per il blocco
Ave
giuseppeD
---
CCR 

 In pratica si passa all'xml e al supporto zip integrato. Mah ... vedremo.
come dire, sembra tanto un .odt ...

 istanziare. Anzi, prima verificare se è presente una istanza.
Beh, insomma, dipende :-)
Puoi anche decidere di creare una nuova istanza "a prescindere"
-- 
Salutoni
Sergio
Per rispondere... togli il group dall'indirizzo
Se i tempi non chiedono la tua parte migliore, inventa altri tempi. 
(Baolian, libro II, vv. 16-17)
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 connesso.
Ossanta pace....adesso che stò imparando a maneggiare il .Net già devo 
tornare indietro?
Al connesso?? ma se secondo loro (Balena compreso) 
ado.net
 in modalità 
disconnessa è la soluzione per il futuro, la piu' scalabile, la piu' 
performante bla..bla..bla..... ma io non ho tutto stò tempo!
Umbe