Oppure

Loading
30/08/09 5:20
muteblaster
ho finito di implementare le modifiche che mi erano state consigliate....e credo che ormai i tempi siano maturi per aprire un progetto nella projectzone come mi era stato suggerito in passato anche se il programma diper se' non e' ancora uscito dalla fase alpha......
pierotofy.it/pages/projects/…
aaa
30/08/09 8:55
HeDo
si ma lo vuoi capire che non ha senso realizzare un programma p2p in vb6?
oltretutto con il controllo winsock, che ha prestazioni inferiori all'overlapped I/O api che usano i veri programmi p2p. Ogni winsock che allochi consuma memoria e ha un memory leak non indifferente: webtropy.com/articles/…

il progetto è molto ambizioso, ma è realizzato con gli strumenti sbagliati, purtroppo il vb6 per tutta una serie di ragioni deve essere abbandonato in favore della tecnologia .net .

E' impensabile che un'applicazione p2p possa anche lontanamente definirsi efficiente se lavora in STA (Single Thread Apartment) come il vb6. Il componente di rete che utilizza non è in grado di gestire in maniera veramente asincrona le richieste, facendo stallare il thread di gestione dell'activex ogni volta che si scatena un evento.

Inoltre la microsoft ha ormai messo una pietra sopra al vb6, non fornirà più aggiornamenti di alcun tipo. Ma quindi che senso ha programmare con un linguaggio ormai morto? Solo perchè è più semplice farlo? Mah, scelta discutibile.

non capisco questo punto:

' 1) scelta dell'algoritmo di hashing......
'    analizzando i vari programmi p2p ci si puo' accorgere che moltissimi peccano nella'
'    creazione dello hashing, infatti questo processo impegn amolto il sistema e se non gestito'
'    bene puo' portare al mal funzionamento del programma , in quanto tutti gli altri processi'
'    downloads,uploads,ricerca sono condizionati dal processo di hashing.....
'    per risolvere questo problema non ci sono molte scelte'
'    1) si decide di dare bassa prirorita' al processo di hashing, con conseguenza che '
'       il processo diventa lunghissimo '
'    2) oppure l'inserimento di vari timer che ritardano di vari millesecondi dando cosi'
'       respiro alla cpu'
'    io ho optato per la seconda'


cioè in pratica te credi che l'esecuzione di un timer avvenga in un altro thread?
Ma per favore, data la natura STA del vb6 il thread del timer non è altro che il thread principale. Quindi per quanto fatta bene sia la funzione di hashing NON, e ripeto NON potrà essere eseguita in parallelo e porterà a uno stallo dell'applicazione per qualche secondo (nel caso di files grossi).

Oltretutto perchè metti un apostrofo sia all'inizio che alla fine dei commenti? basta solo all'inizio... tanto non è come il C :)

Un vero obbiettivo sarebbe farlo in VB.NET, inizia a studiarlo subito e porta tutto il codice.

Se continuerai a sviluppare questo software perderai del tempo prezioso, studia un linguaggio che merita di essere studiato e fai qualcosa di abizioso, non prendi un rudere e prova a farlo andare in formula uno, non ha senso.


Ultima modifica effettuata da HeDo 30/08/09 8:57
aaa
30/08/09 10:09
muteblaster
tutti punti piu' che condivisibili....e sono daccordo ( come ho detto fin dall'inizio, e scritto anche allinterno del woklog del codice ) che vb6 non e' il linguaggio giusto per fare queste applicazioni.......sicuramente per un buon programmatore ( di solito )la scelta del codice ricade sul tipo di programma che deve sviluppare per il bene del programma.......
avrei potuto benissimo studiare il vb.net senza problemi....ma anche se lo conoscessi gia' non avrei sviluppato in .net ........per il futuro NON HO MAI ESCLUSO IL PORTING AL .NET.....
la scelta del mio linguaggio e' dovuta al mantenimento di una promessa che feci...tutto il resto viene dopo.....
Ultima modifica effettuata da muteblaster 30/08/09 10:10
aaa
30/08/09 13:37
HeDo
Postato originariamente da muteblaster:

tutti punti piu' che condivisibili....e sono daccordo ( come ho detto fin dall'inizio, e scritto anche allinterno del woklog del codice ) che vb6 non e' il linguaggio giusto per fare queste applicazioni.......sicuramente per un buon programmatore ( di solito )la scelta del codice ricade sul tipo di programma che deve sviluppare per il bene del programma.......
avrei potuto benissimo studiare il vb.net senza problemi....ma anche se lo conoscessi gia' non avrei sviluppato in .net ........per il futuro NON HO MAI ESCLUSO IL PORTING AL .NET.....
la scelta del mio linguaggio e' dovuta al mantenimento di una promessa che feci...tutto il resto viene dopo.....


sinceramente non faccio promesse che portano a sprecare il mio tempo :)

col vb6 fare una roba del genere è un suicidio, perchè arriverai a un punto in cui non riuscirai a far funzionare il programma in maniera costante ed efficiente a causa delle limitazioni imposte dal runtime del vb6!

ti assicuro che fare il porting da vb6 a .net di applicazioni di rete col winsock comporta un sacco di problemi a causa del differente approcio dei componenti di rete.

buona fortuna, anche se questo progetto nasce morto, imo

aaa
30/08/09 15:37
pierotofy
muteblaster, io non credo il tuo progetto nasca morto. VB6 sicuramente non sarà il linguaggio top per costruire quest'applicazione, ma credo che un buon programmatore può costruire praticamente qualsiasi applicazione, indipendentemente dal linguaggio che sceglie. Certo scegliere un certo linguaggio può agevolare il compito, ma mi rifiuto di pensare che sia impossibile costruire l'applicazione anche con VB6. Mal che vada le funzioni critiche possono essere spostate su librerie esterne fatte con un altro linguaggio.
Il mio blog: piero.dev
30/08/09 17:24
HeDo

ognuno può fare tutto con quello che gli pare, però poi questa scelta si paga sul prodotto finale.

Un programma p2p realizzato con vb6 non avrà MAI e dico MAI le funzionalità e l'efficienza di un qualsiasi altro software p2p in circolazione.

E' come realizzare una piramide di cristallo con mattoni di fieno e fango.
Viene una piramide, ma non brillerà mai.

aaa
31/08/09 4:03
muteblaster
Postato originariamente da pierotofy:
ma mi rifiuto di pensare che sia impossibile costruire l'applicazione anche con VB6. Mal che vada le funzioni critiche possono essere spostate su librerie esterne fatte con un altro linguaggio.


questo si e' un ottimo discorso.....grazie del supporto..
aaa
31/08/09 8:25
HeDo
Postato originariamente da pierotofy:
ma mi rifiuto di pensare che sia impossibile costruire l'applicazione anche con VB6. Mal che vada le funzioni critiche possono essere spostate su librerie esterne fatte con un altro linguaggio.


questa è una soluzione tampone, perchè imporrebbe di aumentare la complessità del software modificando il rapporto costi/benefici di impiegare il vb6 per realizzarlo...

Nessuno ti vieta di modularizzare il programma, ma a questo punto c'è da decidere con che altri linguaggi fare cosa. Ma soprattutto con che tecnologia far interoperare i componenti... OLE? obsoleto. DLL con export fatti in C/C++? molto complesso da programmare se non sai il C/C++, altrimenti unica soluzione plausibile.

Insisto, buon progetto, strumenti sbagliati. E te lo dice uno che col VB6 ha programmato per anni:

visual-basic.it/articoli/…
visual-basic.it/articoli/…
visual-basic.it/articoli/…

fidati di me, fai subito il porting... prima che sia troppo tardi :-| :-|
aaa