Vb.Net

2,972 views

Published on

Corso Visual Basic.NET

1 Comment
2 Likes
Statistics
Notes
  • hello i am shree, anybody having ebook for vb.net 2005 & sql server 2005
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
2,972
On SlideShare
0
From Embeds
0
Number of Embeds
62
Actions
Shares
0
Downloads
0
Comments
1
Likes
2
Embeds 0
No embeds

No notes for slide
  • Vb.Net

    1. 1. Microsoft Visual Basic .NET Maurizio Farina Web: http://www.mfarina.it Mail: admin@mfarina.it
    2. 2. Il framework .NET - Panoramica <ul><li>Piattaforma di sviluppo per applicazioni </li></ul><ul><li>Desktop </li></ul><ul><li>Server </li></ul><ul><li>Architetture client/server , </li></ul><ul><li>internet ed intranet . </li></ul><ul><li>.Net (e il suo linguaggio principe, cioè C#) sono standard ISO </li></ul><ul><li>riconosciuti e quindi non è possibile, da parte della casa madre, </li></ul><ul><li>modificarne la sintassi. </li></ul>
    3. 3. Il framework .NET – Programmazione Windows <ul><li>Applicazioni indipendenti dalla versione di Windows </li></ul><ul><li>Windows XP + .NET Runtime </li></ul><ul><li>Windows Server 2000/20003 + .NET Runtime </li></ul><ul><li>Windows Vista, Windows Server 2008: .NET Nativi </li></ul><ul><li>Progetto MONO </li></ul><ul><li>Linux + MONO Runtime </li></ul><ul><li>Piena portabilità di .Net su sistemi operativi non windows. (per </li></ul><ul><li>esempio Linux). </li></ul><ul><li>Tools di conversione </li></ul><ul><li>Bytecode .NET in Bytecode Java </li></ul><ul><li>Linguaggi .NET in Java e viceversa </li></ul>
    4. 4. Il framework .NET - CLR <ul><li>CLR, Common Language Runtime </li></ul><ul><li>CIL, Common Intermediate Language </li></ul><ul><li>Linguaggi .NET </li></ul><ul><li>Scrivo il software utilizzando uno dei linguaggi del .NET </li></ul><ul><li>Il compilatore traduce il software nel CIL </li></ul><ul><li>Il CLR esegue il CIL. L’esecuzione è JTIng. Ossia compilato al momento dell'esecuzione </li></ul>
    5. 5. Il framework .NET - Versioni <ul><li>.NET Framework 3.5 </li></ul><ul><li>Il .NET Framework 3.5 è stato rilasciato con l'ambiente di </li></ul><ul><li>sviluppo Visual Studio 2008 il 19 novembre 2007 . È ancora </li></ul><ul><li>basato sul CLR della versione 2.0, ma ne integra il Service Pack </li></ul><ul><li>1. </li></ul>Fine 2007 3.5.21022.8 3.5 Fine 2006 3.0.4506.30 3.0 Fine 2005 2.0.50727.42 2.0 Inizio 2003 1.1.4322.573 1.1 Inizio 2002 1.0.3705.0 1.0 Data di rilascio Numero Versione Versione
    6. 6. Il framework .NET - Versioni
    7. 7. Il framework .NET – Visual Basic - Novità <ul><li>Linguaggio orientato ad oggetti (Ereditarietà, Polimorfismo, Overloading) </li></ul><ul><li>Tipi di dati (sono quelli del framework .NET) </li></ul><ul><li>Gestione degli errori (costrutti try..catch…finally) </li></ul><ul><li>Gestione dei thread </li></ul><ul><li>Nuovi controlli </li></ul>
    8. 8. Il framework .NET – OOP <ul><li>Programmazione procedurale, Programmazione Modulare </li></ul><ul><li>Non sono garantite le caratteristiche di riusabilità, modificabilità </li></ul><ul><li>e manutenibilità in quanto i dati sono scollegati dalle operazioni </li></ul><ul><li>Che si compiono su di essi </li></ul><ul><li>Programmazione ad Oggetti(OOP) </li></ul><ul><li>Ogni oggetto è individuato dalle proprietà,dai metodi e dai </li></ul><ul><li>messaggi </li></ul><ul><li>Ex. </li></ul><ul><li>Oggetto: Quadrato </li></ul><ul><li>Proprietà: Misuara dei lati </li></ul><ul><li>Azioni: Calcolo dell’area, del perimetro, etc.. </li></ul><ul><li>Messaggi:E’ la richiesta di un altro oggetto di Calcolare l’area </li></ul>
    9. 9. Il framework .NET – OOP <ul><li>Messaggi </li></ul><ul><ul><li>Costruttori </li></ul></ul><ul><ul><li>La richiesta di creazione di un oggetto </li></ul></ul><ul><ul><li>Distruttore </li></ul></ul><ul><ul><li>La richiesta di distruggere l’oggetto e quindi di deallocare le </li></ul></ul><ul><ul><li>risorse utilizzate </li></ul></ul><ul><li>Relazioni fra oggetti </li></ul><ul><ul><li>Associazioni </li></ul></ul><ul><ul><li>Due oggetti sono in grado di inviarsi messaggi </li></ul></ul><ul><ul><li>Aggregazioni </li></ul></ul><ul><ul><li>Un oggetto contiene oggetti </li></ul></ul><ul><ul><li>Specializzazioni </li></ul></ul><ul><ul><li>Un oggetto eredità tutti i metodi di un altro oggetto </li></ul></ul>
    10. 10. Il framework .NET – OOP – Incapsulamento <ul><li>Public Class Quadrato </li></ul><ul><li>private lato as Integer </li></ul><ul><li>Public Property Lato as Integer </li></ul><ul><li>Get </li></ul><ul><li>Return lato </li></ul><ul><li>End Get </li></ul><ul><li>Set(ByVal Value as Integer) </li></ul><ul><li>lato = Value </li></ul><ul><li>End Set </li></ul><ul><li>End Property </li></ul><ul><li>Public Sub CalcolaArea() </li></ul><ul><li>System.Console.WriteLine(&quot;Area: &quot; + Lato * Lato) </li></ul><ul><li>End Sub </li></ul><ul><li>End Class </li></ul>
    11. 11. Il framework .NET – OOP – Ereditarietà <ul><li>Public Class Cubo Inherits Quadrato </li></ul><ul><li>Public Sub CalcolaValume() </li></ul><ul><li>System.Console.WriteLine(“Volume: &quot; + Lato * Lato * Lato) </li></ul><ul><li>End Sub </li></ul><ul><li>End Class </li></ul>
    12. 12. Il framework .NET – OOP – Polimorfismo <ul><li>Public class Quadrato </li></ul><ul><li>Public Overridable Sub disegna() </li></ul><ul><li>Console.WriteLine(&quot;Metodo disegna della classe Quadreato&quot;) </li></ul><ul><li>End Sub </li></ul><ul><li>End Class </li></ul><ul><li>Public class Cubo : Inherits Quadrato </li></ul><ul><li>Public Overrides Sub disegna() </li></ul><ul><li>Console.WriteLine(&quot;Metodo disegna della classe Cubo &quot;) </li></ul><ul><li>End Sub </li></ul><ul><li>End Class </li></ul><ul><li>Module Module1 </li></ul><ul><li>Sub Main() </li></ul><ul><li>Dim quad As Quadrato </li></ul><ul><li>Dim cub As Cubo </li></ul><ul><li> quad = New Quadrato() </li></ul><ul><li> cub = New Cubo() </li></ul><ul><li>quad.disegna() ' output --> &quot;Metodo disegna della classe Quadrato &quot; </li></ul><ul><li>cub.disegna() ' output --> &quot;Metodo disegna della classe Cubo &quot; </li></ul><ul><li>quad = New Cubo() </li></ul><ul><li>quad. disegna() 'output --> &quot;Metodo disegna della classe Cubo &quot; </li></ul><ul><li>End Sub </li></ul><ul><li>End Module </li></ul>
    13. 13. Il framework .NET – OOP – Astrazione <ul><li>Public MustInherit Class A </li></ul><ul><li>Public MustOverride Sub Sub1() </li></ul><ul><li>End Class </li></ul><ul><li>Public MustInherit Class B : Inherits A </li></ul><ul><li>Public Sub Sub2() </li></ul><ul><li>.......... </li></ul><ul><li>End Sub </li></ul><ul><li>End Class </li></ul><ul><li>Public Class C : Inherits B </li></ul><ul><li>public Overrides Sub Sub1() </li></ul><ul><li>' Implementazione del metodo </li></ul><ul><li>.......... </li></ul><ul><li>End Sub </li></ul><ul><li>End Class </li></ul>
    14. 14. Il framework .NET – OOP – Overloading <ul><li>La possibilità di definire più versioni della stessa procedura </li></ul><ul><li>(Sub) ma con un numero di parametri o tipi di parametri diversi. </li></ul><ul><li>Public Class Test </li></ul><ul><li>Public Overloads Sub Prova(ByVal Nome As String) </li></ul><ul><li>MsgBox(&quot;Il nome specificato è: &quot; & Nome & &quot;.&quot;) End Sub Public Overloads Sub Prova(ByVal Numero As Integer)    MsgBox(&quot;Il numero specificato è: &quot; & Numero & &quot;.&quot;) End Sub </li></ul><ul><li>End Class </li></ul><ul><li>La parola chiave Overloads è di default quindi può essere </li></ul><ul><li>omessa. </li></ul>
    15. 15. Il framework .NET – OOP – Costruttore <ul><li>E’ possibile eseguire l’overloading anche del costruttore </li></ul><ul><li>della classe </li></ul><ul><li>Public Class Test </li></ul><ul><li>Sub New(ByVal Nome As String) </li></ul><ul><li>MsgBox(&quot;Il nome specificato è: &quot; & Nome & &quot;.&quot;) End Sub Sub New(ByVal Numero As Integer)    MsgBox(&quot;Il numero specificato è: &quot; & Numero & &quot;.&quot;) End Sub </li></ul><ul><li>End Class </li></ul><ul><li>Dim t as New Test(“prova”); </li></ul><ul><li>Dim t as New Test(100); </li></ul><ul><li>La parola chiave Overloads per il costruttore della classe non </li></ul><ul><li>Và mai specificato altrimenti si ottiene un errore. </li></ul>
    16. 16. Il framework .NET – OOP – Distruttore <ul><li>Public Class Form1 </li></ul><ul><li>Protected Overrides Sub Finalize() </li></ul><ul><li>MyBase.Finalize() </li></ul><ul><li>End Sub </li></ul><ul><li>End Class </li></ul><ul><li>Il metodo Finalize sarà invocato dalla Garbage Collection </li></ul>
    17. 17. Il framework .NET – OOP – Visibilità <ul><li>public </li></ul><ul><li>Visibile all’esterno </li></ul><ul><li>protected </li></ul><ul><li>Visibile solo alle classi che ereditano </li></ul><ul><li>Private </li></ul><ul><li>Visibile solo all’interno della classe </li></ul><ul><li>Package (Namespace). Per default la classi di un namespace </li></ul><ul><li>sono di tipo friend. </li></ul><ul><li>Namespace N1   Namespace N2     Class Test1       '...     End Class       End Namespace </li></ul><ul><li>End Namespace </li></ul><ul><li>Dim Prova1 As New N1.N2.Test1() </li></ul>
    18. 18. Il framework .NET – OOP – RAD <ul><li>Identificazione delle classi e oggetti </li></ul><ul><li>Relazioni tra le classi </li></ul><ul><li>Implementazione del Codice </li></ul>
    19. 19. L'ambiente di sviluppo di Visual Studio NET <ul><li>I sorgenti hanno tutti l’estensione .vb </li></ul><ul><li>I sorgenti sono raggruppati in progetti </li></ul><ul><li>I progetti possono essere raggruppati in una soluzione </li></ul>
    20. 20. Visual Studio NET – Nuovo Progetto <ul><li>Windows Form Application </li></ul><ul><li>Windows Form Control Library </li></ul><ul><li>ASP.NET WEB Application </li></ul><ul><li>ASP.NET Server Control </li></ul><ul><li>ASP.NET Web Service Application </li></ul><ul><li>SQL Server Project </li></ul><ul><li>Reports Application </li></ul><ul><li>Setup Application </li></ul>
    21. 21. Visual Studio NET – Nuovo Progetto <ul><li>E’ possibile scegliere il tipo di progetto e la versione del </li></ul><ul><li>Framework da utilizzare. </li></ul>
    22. 22. Visual Studio .NET – Nuovo Progetto
    23. 23. Visual Studio .NET – Editor di Codice <ul><li>Completamento istruzioni (if..EndIf) </li></ul><ul><li>Suggerimento metodi </li></ul><ul><li>Raggrupamento per Sub </li></ul><ul><li>Clausola Region </li></ul><ul><li>#Region &quot; Matematica “ </li></ul><ul><li>Private Function Somma(ByVal A As Double, ByVal B As Double) As Double </li></ul><ul><li>Return A + B </li></ul><ul><li>End Function </li></ul><ul><li>Private Function Sottr(ByVal A As Double, ByVal B As Double) As Double </li></ul><ul><li>Return A – B </li></ul><ul><li>End Function </li></ul><ul><li>#End Region </li></ul>
    24. 24. Visual Studio NET – Nuovo Item <ul><li>Selezionanto il nome del progetto con il tasto destro è possibile </li></ul><ul><li>aggiungere un nuovo item. </li></ul>
    25. 25. Visual Studio NET – Lista dei Task <ul><li>Visualizzare gli errori presenti nel programma </li></ul><ul><li>Consente di definire delle annotazioni all'interno del codice </li></ul><ul><li>Consente di aggiungere Task senza riferimento al codice. </li></ul>
    26. 26. Il linguaggio VB.NET <ul><li>I moduli : Contenitori per procedure, funzioni o variabili </li></ul><ul><li>Module Esempio </li></ul><ul><li>Console.WriteLine(&quot;Hello World!&quot;) </li></ul><ul><li>Console.ReadKey() </li></ul><ul><li>End Module </li></ul><ul><li>Namespace: Raggruppamenti di classi </li></ul><ul><li>Namespace Esempio </li></ul><ul><li>Class Class1 </li></ul><ul><li>… </li></ul><ul><li>End Class </li></ul><ul><li>Class 2 </li></ul><ul><li>… </li></ul><ul><li>End class </li></ul><ul><li>End Namespace </li></ul>
    27. 27. Il linguaggio VB.NET <ul><li>Dichiarazione Variabili </li></ul><ul><li>Dim [Nome] as [tipo] </li></ul>Tipo generico Object valore di minimo 10 bytes, composto da una sequenza si caratteri. String valore a 4 bytes che può assumere due valori, True (vero) e False (falso). Boolean decimale da circa -1,79e+308 a +1,79e+308, con un intervallo minimo di circa 4,9e-324 Double decimale da circa -3,4e+38 a +3,4e+38, con un intervallo minimo di circa 1,4e-45 Single intero a 32 bit da -2147483648 a +2147483647 Int64 o Long: intero a 64 bit da circa -922000000000000000 a +9220000000000000000 Int32 o Integer intero a 16 bit che può assumere valori da -32768 a +32767 Int16 o Short valore a 8 bit che può assumere i valori di ogni carattere della tastiera (compresi quelli speciali) Char intero a 8 bit che può assumere valori da 0 a 255 Byte
    28. 28. Il linguaggio VB.NET – Conversione Dati <ul><li>[Variabile] = CType([Valore da convertire], [Tipo in cui convertire]) </li></ul><ul><li>Dim I As Int32 = 50 </li></ul><ul><li>Dim B As Byte = CType(I, Byte) </li></ul><ul><li>TypeOf </li></ul><ul><li>Dim I As Int32 </li></ul><ul><li>If TypeOf I Is Int32 Then </li></ul><ul><li>‘… </li></ul><ul><li>End If </li></ul>
    29. 29. Il linguaggio VB.NET <ul><li>Variabili static </li></ul><ul><li>Static B As Byte </li></ul><ul><li>Static I As Int32 = 60 </li></ul><ul><li>Procedure </li></ul><ul><li>Sub [nome]([modo] [parametro1] As [tipo], [eccetera]) </li></ul><ul><li>'corpo della procedura </li></ul><ul><li>End Sub </li></ul><ul><li>Function </li></ul><ul><li>Function [nome]([modo] [parametro1] As [tipo],[eccetera]) As [tipo] </li></ul><ul><li>'corpo delle funzione </li></ul><ul><li>Return [valore restituito] </li></ul><ul><li>End Function </li></ul><ul><li>Passaggio di parametri </li></ul><ul><ul><li>ByVal </li></ul></ul><ul><ul><li>Viene passato il valore del parametro </li></ul></ul><ul><ul><li>ByRef </li></ul></ul><ul><ul><li>Viene passato il riferimento alla variabile </li></ul></ul><ul><ul><li>Optional </li></ul></ul><ul><ul><li>Indica che il parametro non è obbligatorio </li></ul></ul>
    30. 30. Il linguaggio VB.NET <ul><li>Delegate </li></ul><ul><li>I delegate sono puntatori a funzioni </li></ul><ul><li>Delegate [Sub/Function]([Elenco parametri]) </li></ul><ul><li>Esempio: </li></ul><ul><li>Delegate Sub Display(ByVal Message As String) </li></ul><ul><li>Sub Write1(ByVal S As String) </li></ul><ul><li>Console.WriteLine(&quot;1: &quot; & S) </li></ul><ul><li>End Sub </li></ul><ul><li>Dim D As Display </li></ul><ul><li>D = New Display(AddressOf Write1) </li></ul><ul><li>D(&quot;Ciao&quot;) </li></ul>
    31. 31. Il linguaggio VB.NET <ul><li>Costanti </li></ul><ul><li>Const Pi As Single = 3.1415926535897932 </li></ul><ul><li>Strutture </li></ul><ul><li>Structure [nome] </li></ul><ul><li>Dim [campo1] As [tipo] </li></ul><ul><li>Dim [campo2] As [tipo] </li></ul><ul><li>'... </li></ul><ul><li>End Structure </li></ul><ul><li>Costrutto With </li></ul><ul><li>With [Nome struttura] </li></ul><ul><li>.[campo1] </li></ul><ul><li>.[campo2] </li></ul><ul><li>End With </li></ul><ul><li>Enumeratori </li></ul><ul><li>Enum [Nome dell'Enumeratore] [as] [Tipo] </li></ul><ul><li>[nome valore1] </li></ul><ul><li>[nome valore2] </li></ul><ul><li>'... </li></ul><ul><li>End Enum </li></ul>
    32. 32. Il linguaggio VB.NET <ul><li>Costrutto If </li></ul><ul><li>If [Condizione] Then </li></ul><ul><li>[istruzioni] </li></ul><ul><li>Else </li></ul><ul><li>[istruzioni alternative] </li></ul><ul><li>End If </li></ul><ul><li>Costrutto Select Case </li></ul><ul><li>Select Case [Nome variabile] </li></ul><ul><li>Case [valore1] </li></ul><ul><li>'istruzioni </li></ul><ul><li>Case [valore2] </li></ul><ul><li>'istruzioni </li></ul><ul><li>Case [valore3] </li></ul><ul><li>'istruzioni </li></ul><ul><li>End Select </li></ul>
    33. 33. Il linguaggio VB.NET <ul><li>Costrutto Select Case – Esempi </li></ul><ul><li>Select Case Campo1 </li></ul><ul><li>Case 1 </li></ul><ul><li>Case 2 </li></ul><ul><li>Case 3 </li></ul><ul><li>Case 4 </li></ul><ul><li>End Select </li></ul><ul><li>Select Case Campo1 </li></ul><ul><li>Case 1 Or 2 Or 3 </li></ul><ul><li>'istruzioni </li></ul><ul><li>Case 4, 6, 7 </li></ul><ul><li>'istruzioni </li></ul><ul><li>End Select </li></ul><ul><li>Select Case Campo1 </li></ul><ul><li>Case Is <= 5 </li></ul><ul><li>Case Is > 5 </li></ul><ul><li>End Select </li></ul>
    34. 34. Il linguaggio VB.NET – Do…Loop <ul><li>Do </li></ul><ul><li>'istruzioni </li></ul><ul><li>Loop While [condizione] </li></ul><ul><li>Do While [condizione] </li></ul><ul><li>'istruzioni </li></ul><ul><li>Loop </li></ul><ul><li>Do </li></ul><ul><li>'istruzioni </li></ul><ul><li>Loop Until [condizione] </li></ul><ul><li>Do Until [condizione] </li></ul><ul><li>'istruzioni </li></ul><ul><li>Loop </li></ul>Esegue le istruzioni specificate fintanto che una condizione rimane valida, ma tutte le istruzioni vengono eseguite almeno una volta, poichè While si trova dopo Do Esegue le istruzioni specificate fintanto che una condizione rimane valida, ma se la condizione non è valida all'inizio, non viene eseguita nessuna istruzione nel blocco Esegue le istruzioni specificate fino a che non viene verificata la condizione, ma tutte le istruzioni vengono eseguite almeno una volta, poichè Until si trova dopo Do Esegue le istruzioni specificate fino a che non viene soddisfatta la condizione, ma se la condizione è valida all'inizio, non viene eseguita nessuna istruzione del blocco
    35. 35. Il linguaggio VB.NET <ul><li>Costrutto While…End While </li></ul><ul><li>While [condizione] </li></ul><ul><li>'istruzioni </li></ul><ul><li>End While </li></ul><ul><li>Esempio: </li></ul><ul><li>While campo1 < 10 </li></ul><ul><li>Console.WriteLine(“Campo1“ + campo1) </li></ul><ul><li>a += 1 'Incrementa di 1 </li></ul><ul><li>End While </li></ul><ul><li>Per terminare immediatamente un ciclo while è </li></ul><ul><li>necessario utilizzare Exit While </li></ul>
    36. 36. Il linguaggio VB.NET <ul><li>Costrutto For..To </li></ul><ul><li>For [variabile] As [tipo] = [valore] To [numero] </li></ul><ul><li>'istruzioni </li></ul><ul><li>Next </li></ul><ul><li>Esempio: </li></ul><ul><li>For campo1 as Int16=1 to 10 </li></ul><ul><li>‘ Istruzioni </li></ul><ul><li>Next </li></ul>
    37. 37. Il linguaggio VB.NET - Array <ul><li>Monodimensionali </li></ul><ul><li>Dim [nome]([numero elementi - 1]) As [tipo] </li></ul><ul><li>Esempio: </li></ul><ul><li>Dim Campo(5) as Int16 </li></ul><ul><li>Campo(0) </li></ul><ul><li>Campo(1) </li></ul><ul><li>Campo(2) </li></ul><ul><li>Campo(3) </li></ul><ul><li>Campo(4) </li></ul><ul><li>Campo(5) </li></ul><ul><li>Monodimensioanle con valori </li></ul><ul><li>Dim Saluti() As String = {“Ciao&quot;, “Buongiorno&quot;, </li></ul><ul><li>“ Arrivederci”) </li></ul>
    38. 38. Il linguaggio VB.NET - Array <ul><li>A più dimensioni </li></ul><ul><li>Dim [nome]([numero elementi - 1],,) As [tipo] </li></ul><ul><li>Oppure </li></ul><ul><li>Dim [nome]([numero elementi - 1])()() As [tipo] </li></ul><ul><li>Esempio: </li></ul><ul><li>Dim Campo(9)() As Byte </li></ul><ul><li>For I As Byte = 0 To 9 </li></ul><ul><li>ReDim Piano(9)(9) </li></ul><ul><li>Next </li></ul>
    39. 39. Il linguaggio VB.NET - Array <ul><li>Operazioni </li></ul><ul><li>Clear() : cancella elementi </li></ul><ul><li>Clone() : crea una coppia esatta dell'array </li></ul><ul><li>Copy() / CopyTo() : Copia gli elementi di un array in un altro array </li></ul><ul><li>Find / FindLast () : Cerca elementi in un array </li></ul><ul><li>GetLength() : restituisce la dimensione dell'array </li></ul><ul><li>Reverse() : inverte l'ordine di tutti gli elementi </li></ul><ul><li>Sort() : ordina alfabeticamente l'array A. </li></ul>
    40. 40. Il linguaggio VB.NET - Arraylist, Hashtable e SortedList <ul><li>Arraylist </li></ul><ul><li>Dim [nome] As New Arraylist </li></ul><ul><li>Add(x) : aggiunge </li></ul><ul><li>Remove(x) : rimuove </li></ul><ul><li>RemoveAt(x) : rimuove l'elemento che si trova nella posizione x </li></ul><ul><li>IndexOf(x) : restituisce l'indice (ossia la posizione) dell'elemento x </li></ul><ul><li>Contains(x) : restituisce vero se x è contenuto nell'arraylist, altrimenti falso </li></ul><ul><li>Clear : pulisce l'arraylist eliminando ogni elemento </li></ul><ul><li>Clone : restituisce una copia esatta dell'arraylist </li></ul><ul><li>Hashtable </li></ul><ul><li>ContainsKey(x) / ContainsValue(x) : restituisce vero se la chiave o il valori specificati sono presenti nell'hashtable </li></ul><ul><li>Keys / Values : restituisce un collezione di tutte le chiavi o di tutti i valore presenti nell'hashtable. </li></ul><ul><li>SortedList </li></ul>
    41. 41. Il linguaggio VB.NET <ul><li>For…Each </li></ul><ul><li>Dim I As [tipo] </li></ul><ul><li>For Each I In [array/collection] </li></ul><ul><li>'... </li></ul><ul><li>Next </li></ul><ul><li>Esempio: </li></ul><ul><li>Dim Interi() As Int16 = {0, 4, -2, 60, 190, -3090} </li></ul><ul><li>For Each Numero As Int16 In Interi Console.WriteLine(Numero) </li></ul><ul><li>Next </li></ul>
    42. 42. Il linguaggio VB.NET - Threading <ul><li>Definizione di un Thread </li></ul><ul><li>Dim th as Threading.Thread </li></ul><ul><li>Sub da eseguire nel Thread </li></ul><ul><li>Private Sub TheThread() </li></ul><ul><li>While True </li></ul><ul><li>Threading.Thread.Sleep(1000) </li></ul><ul><li>End While </li></ul><ul><li>End Sub </li></ul><ul><li>Start ed Abort del Thread </li></ul><ul><li>t = New Threading.Thread(AddressOf Me.TheThread) </li></ul><ul><li>t.Start() </li></ul><ul><li>t.Abort() </li></ul>
    43. 43. Il linguaggio VB.NET – Threading - Sincronizzazione <ul><li>SynckLock </li></ul><ul><li>Private Shared LockObject As New Object() </li></ul><ul><li>SyncLock LockObject </li></ul><ul><li>If Str = &quot;Ciao&quot; Then </li></ul><ul><li>I += 1 </li></ul><ul><li>End If </li></ul><ul><li>End SyncLock </li></ul><ul><li>Monitor </li></ul><ul><li>Private Shared LockObject As New Object() </li></ul><ul><li>Try </li></ul><ul><li>Monitor.Enter(LockObject) </li></ul><ul><li>Catch Ex As Exception </li></ul><ul><li>… </li></ul><ul><li>Finally </li></ul><ul><li>Monitor.Exit() </li></ul><ul><li>End Try </li></ul>
    44. 44. Il linguaggio VB.NET – Threading - Sincronizzazione <ul><li>Mutex </li></ul><ul><li>Private Shared mtx As New Threading.Mutex() </li></ul><ul><li>For i As Integer = 0 To 10 </li></ul><ul><li>Dim myThread As New Threading.Thread(AddressOf Me.TheThread) </li></ul><ul><li>myThread.Start(100) </li></ul><ul><li>Next </li></ul><ul><li>Private Sub TheThread(ByVal ix As Integer) </li></ul><ul><li>Try </li></ul><ul><li>mtx.WaitOne() </li></ul><ul><li>'... </li></ul><ul><li>Catch ex As Exception </li></ul><ul><li>Finally </li></ul><ul><li>mtx.ReleaseMutex() </li></ul><ul><li>End Try </li></ul><ul><li>End Sub </li></ul>
    45. 45. Form <ul><li>E’ necessario creare una Windows Application </li></ul><ul><li>Eredita la classe System.Windows.Forms.Form </li></ul><ul><li>Contiene sempre un costruttore e distruttore di default </li></ul><ul><li>E’ possibile accedere alla sub InitializeComponent </li></ul>
    46. 46. Form – Hello World <ul><li>Visualizzare una messagebox sul load della form </li></ul><ul><li>Private Sub Form1_Load(ByVal sender As System.Object, ByVal e </li></ul><ul><li>As System.EventArgs) Handles MyBase.Load </li></ul><ul><li>MsgBox(&quot;HelloWorld&quot;) </li></ul><ul><li>End Sub </li></ul>
    47. 47. Form <ul><li>Utilizzo dei Form come oggetti </li></ul><ul><li>Private Sub Button1_Click(ByVal sender As System.Object, </li></ul><ul><li>ByVal e As System.EventArgs) Handles Button1.Click </li></ul><ul><li>Dim frm As New Form2() frm.ShowDialog() </li></ul><ul><li>End Sub </li></ul><ul><li>Utilizzo dei controllo .NET ActiveX </li></ul><ul><li>Validare gli input dell'utente </li></ul><ul><li>Private Sub Form1_KeyPress(ByVal sender As Object, </li></ul><ul><li>ByVal e As System.Windows.Forms.KeyPressEventArgs) </li></ul><ul><li>Handles MyBase.KeyPress Select Case e.KeyChar      </li></ul><ul><li>Case &quot;A&quot;, &quot;E&quot;, &quot;I&quot;, &quot;O&quot;, </li></ul><ul><li> &quot;U&quot;, &quot;a&quot;, &quot;e&quot;, &quot;i&quot;, &quot;o&quot;, &quot;u&quot; MsgBox(&quot;E' stata digitata una vocale.&quot;) </li></ul><ul><li>Case Else MsgBox(&quot;E' stata digitata una consonante.&quot;)   End Select </li></ul><ul><li>End Sub </li></ul><ul><li>Creare menu, barre di stato e barre di strumenti </li></ul>
    48. 48. Form – il Namespace System.Window.Forms <ul><li>Classi </li></ul><ul><li>Strutture </li></ul><ul><li>Interfacce </li></ul><ul><li>Delegati </li></ul><ul><li>Enumerazioni </li></ul>
    49. 49. Form – Gestione degli eventi <ul><li>Handles </li></ul><ul><li>Consente di indicare al compilatore che la funcion è in grado </li></ul><ul><li>di gestire eventi </li></ul><ul><li>  Private Sub Clic(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click, Button2.Click </li></ul><ul><li>If sender.Equals(Button1) Then </li></ul><ul><li>MsgBox(&quot;E' stato fatto clic sul pulsante Button1.&quot;) </li></ul><ul><li>ElseIf sender.Equals(Button2) Then    MsgBox(&quot;E' stato fatto clic sul pulsante Button2.&quot;) End If </li></ul><ul><li>End Sub </li></ul><ul><li>Questa operazione è possibile solo se gli eventi prevedono lo </li></ul><ul><li>stesso numero di parametri e dello stesso tipo. </li></ul>
    50. 50. Gestione degli errori – Utilizzare il Debugger <ul><li>E’ possibile inserire nel codice i Breakpoint </li></ul><ul><li>L’esecuzione del programma si ferma sul breakpoint e ci </li></ul><ul><li>Consente di valutare le variabili </li></ul>
    51. 51. Gestione degli errori – Debugger – Attach the process <ul><li>E’ possibile eseguire il debugging anche di un’applicazione </li></ul>
    52. 52. Gestione degli errori – try…catch…finally <ul><li>try </li></ul><ul><li>'Codice che potrebbe generare un errore. </li></ul><ul><li>Catch 'Codice da eseguire in caso di errore. </li></ul><ul><li>Finally 'Codice da eseguire sia che si sia verificato un errore nel blocco try sia che non ci siano stati problemi. </li></ul><ul><li>End try </li></ul><ul><li>Regole di utilizzo </li></ul><ul><li>In un costrutto try è necessario specificare almeno una Catch oppure una Finally; </li></ul><ul><li>è possibile specificare più clausole Catch </li></ul><ul><li>è consentito inserire solo una clausola Finally </li></ul><ul><li>Per uscire da un blocco try si deve usare l'istruzione Exit try </li></ul>
    53. 53. Gestione degli errori – esempio: <ul><li>Try </li></ul><ul><li>Dim A As Byte = 100 Dim B As Byte = A * A </li></ul><ul><li>Catch ex As OverflowException </li></ul><ul><li>MsgBox(&quot;Si è verificato un errore: &quot; & ex.Message) </li></ul><ul><li>End try </li></ul><ul><li>La viaribile A è di tipo Byte quindi non è ingrado di </li></ul><ul><li>memorizzare il valore 10000 e genera l’eccezione </li></ul><ul><li>OverflowException. </li></ul><ul><li>Try </li></ul><ul><li>Dim A As Byte = 100 Dim B As Byte = A * A </li></ul><ul><li>Catch es as Exception </li></ul><ul><li>MsgBox(&quot;Si è verificato un errore: &quot; & ex.Message) </li></ul><ul><li>End try </li></ul>
    54. 54. Web Form – Oggetto Page – Ciclo di Vita <ul><li>Page_Init Il primo evento. </li></ul><ul><li>Page_Load I controlli Server sono caricati nell’oggetto Pagina. La View State è visibile </li></ul><ul><li>Page_PreRender L’applicazione visualizza la pagina </li></ul><ul><li>Page_Unload L’oggetto Page è pronto per la deallocazione dalla memoria </li></ul><ul><li>Page_Disposed L’oggetto pagine è rilasciato dalla memoria. Questo è l’ultimo evento. </li></ul><ul><li>Page_Error Si è verificato un errore. </li></ul><ul><li>Page_AbortTransaction La transazione è stata abortita. </li></ul><ul><li>Page_CommitTransaction La transazione è stata accettata </li></ul><ul><li>Page_DataBinding Gli oggetti della pagina hanno eseguito il binding dei dati </li></ul>
    55. 55. Web Form <ul><li>Controlli Server built-in </li></ul><ul><li>Supporto per i WebServices e XML </li></ul><ul><li>Il namespace System.Web.UI </li></ul><ul><li>Gestione degli eventi </li></ul><ul><li>Utilizzare e creare gli User Control </li></ul><ul><li>I Server Control </li></ul>

    ×