Newsgroup: it.comp.lang.visual-basic
Titolo: [!4][.NET] VB -> VB.NET senza compatibilità (a grande richiesta :P)

Questo è un post sperimentale e dato che non la volta scorsa non ha avuto
seguito e io non ci rinuncio :P verrà aggiornato e postato "ogni tanto".
Invito tutti i partecipanti a rispondere a questo post suggerendo o
notificando altre soluzioni di conversione mancanti e/o correggendo le
presenti.
-----
Lo scopo di questo post è quello di scrivere applicazioni 
VB.NET
 senza usare
namespaces di compatibilità con le vecchie versioni di Visual Basic.
Dato per scontato che 
VB.NET
 è un linguaggio completamente differente dai
"vecchi" VisualBasic, è inutile se non dannoso utilizzarlo come se fosse una
sorta di VB7.
Con questo post vedremo come
- sfruttare le potenzialità del .NET framework nella sua forma più standard.
- evitare di usare funzioni in compatibilità, retaggio delle precedenti
versioni di VB.
- creare codice più facilmente portabile in altri linguaggi .NET e in altre
piattaforme.
-- Premessa
Selezionare il progetto e andare sul menu Progetto -> Proprietà.
Selezionare Proprietà Comuni -> Imports.
Selezionare e rimuovere Microsoft.VisualBasic.
-- Indice Argomenti Trattati
- Funzioni stringa
- Funzioni Matematiche
- Funzioni Data-Ora
- Conversione di tipo
- Oggetti/Classi
- Gestion Errori
- Gestione Files
-----
-- Funzioni stringa
Hex$(MyNumber)
|
+-- MyNumber.ToString("x")
InStr([...,] MyString, MySubString [,...])
|
+-- MyString.IndexOf(MySubString)                 ' binary compare
+-- MyString.ToLower.IndexOf(MySubString.ToLower) ' text compare
Len(MyString)
|
+-- MyString.Length
Mid$(MyString,...)
|
+-- MyString.SubString(...)
+-- MyString.Chars(...)
StrComp(MyString1, MyString2 [,...])
|
+-- Text.Compare(MyString1, MyString2)         ' binary compare
+-- Text.Compare(MyString1, MyString2, True)   ' text compare
-- Funzioni Matematiche
Le più comuni si ritrovano sotto il namespace
Math.*
Randomize(), Rnd()
|
+-- New Random(...)
-- Funzioni Data-Ora
Date()
|
+-- DateTime.Today()
DateSerial(MyYear, MyMonth, MyDay)
|
+-- New DateTime(MyYear, MyMonth, MyDay)
DateAdd(..., MyDate, ...)
|
+-- MyDate.Add(New TimeSpan(...))
+-- MyDate.AddDays(...)
DateDiff(..., MyDate, ...)
|
+-- MyDate.Subtract(...)
+-- MyDate.AddDays(-...)
Day(MyDate)
|
+-- MyDate.Day
Month(MyDate)
|
+-- MyDate.Month
Now()
|
+-- DateTime.Now()
Time()
|
+-- DateTime.Now.TimeOfDay()
Year(MyDate)
|
+-- MyDate.Year
-- Conversione di tipo
CBool(MyVar), CInt(MyVar), CStr(MyVar), C*(MyVar), ...
|
+-- Convert.To<System Type>(MyVar)
CType(MyVar, ...)
|
+-- Convert.ChangeType(MyVar, ...)
-- Oggetti/Classi
Collection
|
+-- HashTable
-- Gestion Errori
{VB4/5/6}
| On Error Goto Exception:
|     ' ...some code...
|     Exit Sub
| Exception:
|     ' ...error handling...
|---
|
+--- {.NET}
| Try
|     ' ...some code...
| Catch ex As Exception
|     ' ...error handling...
| End Try
|---
Err.Raise ...
|
+-- Throw New Exception(...)
-- Gestione files
Imports System.IO
{VB4/5/6}
| Dim MyFile As Long
| MyFile = FreeFile()
|---
|
+-- Dim MyFile As FileStream
{VB4/5/6}
Open MyFileName ... As MyFile
|
+-- Myfile = New File.Open(MyFileName, ...)
--
' // Initialize the expression evaluator
Engines.Evaluator = CreateObject("
http://www.neodatatype.net
")
' // you can find resources for and from the NG here!
Me.SitoComune = "
http://www.it-lang-vb.net
"

 sorta di VB7.
Aggiungo (e sintetiizzo) che se si tratta di applicazioni nuove
e' opportuno scrivere 
vb.net
 (o altro dialetto .net) senza _pensare_ in vb6,
ma "direttamente" in .net (o in java, con il quale esistono molte
similitudini).
--
ciao, hal
--------------------------------
Inviato via 
http://usenet.libero.it

 +-- Myfile = New File.Open(MyFileName, ...)
+-- MyFile = New File.Open(MyFileName, ...)
      ^
Errata Corrige ;)
Qualche domanda extra.
In che modo ti stai aggiornando a .NET?
Stai gia' sviluppando?
Quali ng/forum/siti web usi di riferimento?
Io per ora ho sottoscritto:
microsoft.public.dotnet.languages.vb
microsoft.public.it.dotnet.(vb/framework/ado/csharp)
Mi sono inoltre registrato a ugidotnet e seguo i vari forum.
Consigli?
Thnx again!
Lokar.petulante
--
Sito Comune: 
http://www.it-lang-vb.net/
Manifesto: 
http://www.it-lang-vb.net/docs/Manifesto.txt

 Consigli?
Ovviamente la domanda e' rivolta a tutti gli sviluppatori .NET di questo ng
hal incluso! (non mi scappi ;p)
Lokar.sempre.piu.petulante


 seguito e io non ci rinuncio :P verrà aggiornato e postato "ogni tanto".
Approvo in pieno!
            Ciao!
                        Allanon
--
- SPAMKILLER
 L'indirizzo delle risposte é 
itlangv...@michele.sytes.net
 LASCIATE il NOSPAM fa parte dell'indirizzo :-)
  Per superare le impostazioni di protezione antispam scrivete
  nel testo del messaggio la scritta "SPAMKILLER"
Scusate il disturbo, ma non posso più di pubblicità!

 hal incluso! (non mi scappi ;p)
Beccato! :-P
A dire il vero sto ignorando 
vb.net
, mentre sto facendo esperimenti
con C# e C++ con le managed extensions per confrontarli con java.


 seguito e io non ci rinuncio :P verrà aggiornato e postato "ogni tanto".
    Adoooro queste cose. Grazie.
--
Ciao :-)
Maurizio
--------
?SPQR(C)
 X
--------


Aggiungerei :
1- la parola chiave When
es.
Catch ex As "Tipo Errore" When "Condizione"
    ' ...error handling...
End Try
2- il blocco Finally
es.
Try
     ' ...some code...
 Catch ex As Exception
     ' ...error handling...
Finally
 ....codice di cleanup....
 End Try
giuseppeD


Scusate mi correggo
ho l'impressione che la  la parola chiave When
è per VB , non l'ho trovata in C#
modifico il post precedente in :
Aggiungerei il blocco Finally


 java, con il quale esistono molte similitudini).
:-) L'ho appena finito di scrivere in un post qualche thread piu`
sotto.
Fa piacere sapere che non si e` soli ;-)
--
ale
www.sen.it