Newsgroup: it.comp.lang.visual-basic
Titolo: Windows95, Win98, WinNT e le porte di I/O...

Ho notato di recente un gran numero di messaggi che avevano come oggetto la
lettura (in qualche modo) di informazioni dalle porte di I/O e la ritengo
una cosa molto importante in relazione a quanto avverrà nell'evoluzione dei
sistemi operativi. In particolare, credevo che le applicazioni basate sulla
lettura di informazioni direttamente dalle porte fossero in declino e che
sempre più raramente (e solo in casi eccezionali) gli sviluppatori usaserro
tale tecnica, in particolare sotto Windows. Mi accorgo che invece sembra che
non sia così e non è un bene. Perdonatemi la lunghezza del messaggio e
smettete subito di pensare (se avevate cominciato a farlo) che questo sia un
messaggio polemico od in favore di qualcuno: non è così...
Cominciamo dalla fine: creare un programma che utilizzi le porte di I/O lo
mette subito in condizione di non potere mai essere un programma "progettato
per Windows" o compatibile con esso. Non so se lo sapete, ma per ottenere
tale riconoscimento è necessario che il programma funzioni sia sotto
Windows95 che sotto WindowsNT: se lanciate il vostro programma sotto
quest'ultimo, non ha nessuna speranza di essere eseguito, perchè WindowsNT
non consente assolutamente al software un accesso diretto alle porte. Al di
là del riconoscimento (che può o no avere valore simbolico) nessun
sistemista o utente professionale sia di Windows95 che di WindowsNT utilizza
(o pensa di farlo) software che non abbia tale certificazione e credo che
ciò sia di per sè penalizzante per il vostro software.
Win98 sarà più restrittivo in quanto a protezione rispetto a Win95 e questo
anche perchè è cominciata la convergenza verso un set di prodotti basati sul
cuore di NT. Se NT5 rispettasse i tempi (1999) è probabile che il 2000
modifichi la situazione in questo senso:
Windows NT Server
Windows NT Workstation
Windows NT versione utente desktop
Questo l'obiettivo di MS. A questo punto che cosa succede? Se il vostro
software riuscisse a non risultare incompatibile con Win98 e ammettendo che
lo terminiate a fine 98 (se state chiedendo informazioni sulle porte, tutte
le routine di gestione vanno ancora scritte...), la vostra applicazione
durerà al massimo un anno, trascorso il quale, perderete il mercato desktop
dopo aver mancato quello client/server. Potete permettervelo? Certo, si può
sempre convertire il tutto in maniera che sia compatibile ma a che prezzo?
Il prezzo della conversione è quello di dover scrivere un Device Driver,
unico modo per poter avere un controllo diretto dell'hardware. Ma, a questo
punto, perchè non farlo adesso? Tenuto presente che il formato dei device
driver sarà unificato con Windows98, il vostro programma balza dal livello
"molto probabilmente incompatibile" a quello "totalmente compatibile
Win98/NT" e se il professionista che ha una workstation NT vuole
interfacciarla con My Magic Diary, probabilmente potrà farlo. Tenete inoltre
presente che un device driver ha un valore commerciale superiore alle
routine di gestione se usate all'interno del programma.
Credo quindi che sarebbe giusto considerare anche questa opzione prima di
addentrarsi in un settore rischioso come la programmazione diretta
dell'hardware. Se l'accesso a tali risorse è così complicato è proprio
perchè è altamente sconsigliato.
Enjoy...
The Bitland Prince - ioProgrammo
-----------------------------------------------
E-mail address: 
tbpr...@skynet.diemme.it
Alternate: 
tbpr...@diemme.it

 punto, perchè non farlo adesso? 
Appunto...  perche' non esiste un device driver nativo che permetta di
farlo ?
Sto parlando di un DD ad uso di programmatori che permetta di
interfacciarsi proprio con le porte di I/O che piu' preferiscono, quindi un
programmatore deve sapere quali porte leggere/scrivere e con che policy
farlo.... il prezzo da pagare sarebbe il boot continuo per chi sbaglia ( ma
chi sbaglia a scrivere un DD pianta di continuo un PC).
Questo DD permetterebbe di utilizzare schede di IO di un qualsiasi vendor
anche sotto WinNt.
Valentino

Ho notato......
(megasnip)
ti faccio una domanda da inesperto (quale sono):
io che programmo da poco VB5 a scopo personale,
se volessi interfacciare il mio programma ad esempio
con il lettore di codice a barre per l' apertura della
sbarra di ingresso come posso fare tenendo conto
che non programmo di professione e la scrittura
di un device vxd mi porterebbe via troppo tempo
per imparare il necessario?
grazie
Manfredo

Beh, non credo che ci siano molte possibilità. Dipende se stai cercando di
realizzare una soluzione particolare (ad un problema particolare) o un
programma da distribuire.
    Nel primo caso: che problema c'è? Avendo tu la possibilità di definire
tutto, prendi il sistema che ti fa più comodo (Win95?), installa VB e usa le
routine dirette, tanto è solo per te.
    Nel secondo caso: penso che ti convenga pensare alla scrittura di un DD
per le ragioni di cui parlavo nel mio messaggio precedente.
    Volevo comunque precisare che i VxD non sono i driver di cui parlavo. I
Virtual Device Driver (VxD) sono il pasticcio che consente a Windows9x di
essere così veloce e così poco protetto. Lo sviluppo e l'uso di VxD è
fortemente sconsigliato in quanto il loro supporto può essere abbandonato
(speriam) in qualsiasi momento.
    Enjoy...
--
The Bitland Prince - ioProgrammo
-----------------------------------------------------
E-Mail address: 
tbpr...@skynet.diemme.it
Alternate: 
tbpr...@diemme.it


Valentino