Visual Basic 2005 nieuwe taalelementen André Obelink, MCSD, MVP Auteur, VBcentral.nl Auteur, VBcentral.nl Microsoft MVP Visual Basic Microsoft MVP Visual.

Slides:



Advertisements
Verwante presentaties
The stock market will go up De beurswaarden zullen stijgen YESNO JA NEEN Is Jefken a good person ? Is Jefken een goed mens ? YES NO JA NEEN Is Lonny a.
Advertisements

Help, ik moet naar Office 2007!?. Wat horen wij bij klanten Training “New UI will cause too big of a loss in productivity” Training “New UI will cause.
KINN 2010 •OOP •O Object •O Georiënteerd •P Programmeren.
Zelf objecten maken in VBA Ynte Jan Kuindersma, BIRD Automation Nationale Officedag 2009 EDE, 14 Oktober 2009.
HM-ES-th1 Les 9 Hardware/Software Codesign with SystemC.
JQuery en ASP.NET Bart De Meyer.
Visual Basic 2008 – What’s new André Obelink, MCSD – MVP MarYor | software & consultancy | |
Programmeren in Java met BlueJ
Gegevensstructuren: list boxen en lijsten
Lucene/SOLR 1: inleiding + indexering
MagentaPurpleTeal PinkOrangeBlue LimeBrown RedGreen Introductie C# /.NET
Objecten Hoofdstuk 6 Hoofdstuk 6 Hoofdstuk 6 1.
Voor VBA programmeurs Maurice de Beijer.  Maurice de Beijer.  The Problem Solver.  Visual Basic MVP.  Blog: theproblemsolver/default.aspxhttp://msmvps.com/blogs/
VBA en VBS Een introductie.
Presentatie IA Solutions 2005: Programma generatie voor: PLC en SCADA Een update van deze PPT is te downloaden op: Rob Kits - Technisch.
Voor VBA programmeurs Maurice de Beijer.  Maurice de Beijer.  The Problem Solver.  Visual Basic MVP.  Blog: theproblemsolver/default.aspxhttp://msmvps.com/blogs/
OOS Object geOrienteerd Software-ontwerp - 4 Codeerperikelen Singleton Specificeren Scheiding GUI en Domein Facade.
Faculteit Ingenieurswetenschappen & Wetenschappen Software Engineering Publicatie Management Systeem Groep se1 Software Engineering Thierry Coppens.
AAHA (voor intern gebruik)
Omgevingen zijn dan geïmplementeerd als Symbol Tables. Symbol Table mapt een symbool met een Binding Meerdere noties van binding –Meerdere manieren te.
Windows Workflow Foundation What is hot, what is not? Maurice de Beijer ABL – The Problem Solver.
Elizabeth Mattijsen Eerste Nederlandse Perl Workshop 5 maart 2004 Parsing XML / HTML.
SQL injections en meer... PERU. web application vulnerabilities Cross Site Scripting (21.5%) SQL Injection (14%) PHP includes (9.5%) Buffer overflows.
Modula vs Java MODULE Show; CONST PI = ; TYPE PointRc = RECORD x,y : INTEGER; speed : REAL; angle : REAL; END; VAR a,b : PointRc; BEGIN.
Server side scripting 1 Webtechnologie Lennart Herlaar.
1 Toegepaste Informatica Keuzevak C++ 3°jaar. 2 Studiefiche  Software  Boek (hfst 3-5)  Presentatie (website)
1/1/ / faculty of Computer Science eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 7(2): Vertalen.
SPLA Service Provider License Agreement
WinFX Overview Martin Tirion Senior Consultant Microsoft Services.
Client Management met ConfigMgr Jannes Alink – Management.
Herhaling: For, While en Do
Consoleprogramma’s Hoofdstuk 19. Visual Basic.NET voor studenten2 In dit hoofdstuk … Hoe consoletoepassingen maken In- en uitvoer bij consoleprogramma’s.
Bestanden Hoofdstuk 18 Hoofdstuk 18.
Netwerk Algorithms: Shortest paths1 Shortest paths II Network Algorithms 2004.
Array nDeclaratie nCreatie nOpvragen nWijzigen nLengte String [ ] a; a = new String[10]; ……a[5]…… a[5] = ……; …a.Length… …is eigenlijk overbodig! List a;
Hoorcollege 7 Collections, arrays. Programma ‘Snowflakes’ Sneeuwvlok object.
JAVA -- H81 Exception: ongewone of foutieve situatie->prog. mislukt kan onderschept en afgehandeld worden. = een object van de klasse Throwable, gegenereerd.
Visual Basic.
Hibernate Object relational mapping
Algoritmiek Strings & Stringmanipulaties; Controle Structuren; Floating-point notation. Hoorcollege 4 - Ma. 25 sept L.M. Bosveld-de Smet.
DB&SQL8- 1 VBA Visual Basics for Applications: eigen Office versie vanaf Office2000 gelijk voor alle applicaties Programmeren onder meer nodig voor Het.
JAVA1 H 22. COLLECTIONS FRAMEWORK. 1. INLEIDING. Collections framework Is een verzameling van data structuren, interfaces en algoritmen Meest voorkomende.
Hoofdstuk 5 – Object Based Programmeren
Hoofdstuk 2 - Inleiding tot Visual Studio .NET IDE
Visual Basic.Net - Overzicht
KPRES1 : C vervolg Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology Les 2 sheet 1 Wat gaan we doen:  Een (vaste) melodie.
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag GUI  command line redirection.
Hoofdstuk 2 Java. Soorten Java-programma’s nJava Applet programma “leeft” op een WWW-pagina nJava Application programma heeft een eigen window nJavascript.
Hoofdstuk 13.6 File-I/O. Files n40 verschillende klassen in library java.io Exceptions niet meegeteld... nMethodes voor het plegen van Input en Output.
Deltion College Engels B1 Schrijven [Edu/004]/ subvaardigheid lezen thema: reporting a theft can-do : kan formulieren waarin meer informatie gevraagd wordt,
Web Applicaties Bouwen met Visual Studio .NET
1 december KC Development Tools Hands-on Oracle HTML DB v2.0.
Visual Basic 2005/2008 OOP in praktijk André Obelink - MCSD, MVP Web: Web: -
Visual Basic 2010 – What’s new André Obelink
Afdrukken met Visual Basic 2008
KINN 2010 OOP O Object O Georiënteerd P Programmeren.
Visual Basic.NET voor studenten De VB- ontwikkelomgeving Hoofdstuk 2.
Hoofdstuk 5 Interactie. Controls Form Label Button Label TextBox.
EML en IMS Learning Design
Plan Coordination by Revision in Collective Agent Based Systems Adriaan ter Mors en Gijsbert Deelder Plan Coordination by Revision in Collective.
Dick Dijkstra Azure Technical Specialist Microsoft
C++ C++ als een verbetering van C Abstracte datatypen met classes Constructoren en destructoren Subklassen binding van functies 1.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 C programmeren voor niet-C programmeurs les 2 definitie.
Programmeerstijl Hoofdstuk 21. Visual Basic.NET voor studenten2 Inleiding Belang van een goede programmeerstijl:  Programma’s worden door meerdere mensen.
Les 7 Multiple Document Interface Programmeren met Visual Basic Karl Moens.
Arrays Hoofdstuk 14 Hoofdstuk 14.
Visual Basic.NETPag.1 Hoofdstuk 8 – Fout afhandeling Inleiding Structured Exception Handling Hoe fouten opvangen Geen foutafhandeling Alle fouten opvangen.
Hoofdstuk 10.3 Tekst-editor: MDI-interface Dialogen Files lezen Abstracte klassen.
Bewerkingen met Strings
Polymorfie Hoofdstuk 24. Visual Basic.NET voor studenten2 Inleiding Polymorfie zorgt ervoor dat een gegeven object verschillende “vormen” kan aannemen.
Transcript van de presentatie:

Visual Basic 2005 nieuwe taalelementen André Obelink, MCSD, MVP Auteur, VBcentral.nl Auteur, VBcentral.nl Microsoft MVP Visual Basic Microsoft MVP Visual Basic VP Speakers Bureau INETA Europe - VP Speakers Bureau INETA Europe

My namespace ‘speed dial’ en dynamic types — Productnaam, versie, omschrijving … — Registry, audio, bestandssysteem, … — Gebruikersnaam, groepen, rollen, … — Benader resources: afbeeldingen, teksten… — Gebruikers- en applicatie-instellingen (.config) — Collectie van de formulieren binnen het project — Collectie van de gerefereerde webservice(s) My Application Computer User Resources Settings Forms WebServices

My.Application Eigenschappen van de applicatie binnen handbereik Eigenschappen van de applicatie binnen handbereik Aantal methoden beschikbaar, zoals: Aantal methoden beschikbaar, zoals: ChangeCulture, Run etc. ChangeCulture, Run etc. Meer invloed op het ‘application framework’. Meer invloed op het ‘application framework’.My.Application Info.Title Info.Version CommandLineArgs Log WorkingDirectory (UI) Culture … Dim strBedrijfsnaam As String Dim blnClickOnce As Boolean With My.Application strBedrijfsnaam =.Info.CompanyName blnClickOnce =.IsNetworkDeployed End With

My.ComputerMy.Computer Mouse Audio Network Registry Clipboard FileSystem … Geeft toegang tot eigenschappen van de computer, de hardware en eventueel aangesloten randapparatuur Geeft toegang tot eigenschappen van de computer, de hardware en eventueel aangesloten randapparatuur Dim intVrijGeheugen As Integer Dim strComputerNaam As String With My.Computer ' Zet tekst op het klembord.Clipboard.SetText(“ intVrijGeheugen =.Info.AvailablePhysicalMemory strComputerNaam =.Name End With

My.UserMy.User Login Name Domain Authentication Roles Custom Principal … Geeft toegang tot eigenschappen van de huidig ingelogde gebruiker Geeft toegang tot eigenschappen van de huidig ingelogde gebruiker U kunt door IPrincipal en IIdentity te implementeren uw eigen authenticatiemethode maken U kunt door IPrincipal en IIdentity te implementeren uw eigen authenticatiemethode maken Dim blnIsBeheerder As Boolean Dim strGebruikersNaam As String With My.User blnIsBeheerder =.IsInRole("Administrators") strGebruikersNaam =.Name End With

My – Dynamic Types de compiler aan het werk… My.Resources My.Resources picLogo.Image = My.Resources.LogoVBcentral picLogo.Image = My.Resources.LogoVBcentral My.Settings My.Settings Me.Location = My.Settings.LocationFormMain Me.Location = My.Settings.LocationFormMain My.Forms My.Forms My.Forms.FormMain.Show My.Forms.FormMain.Show My.WebServices My.WebServices My.WebServices.VBcentral.Search(“Obelink”) My.WebServices.VBcentral.Search(“Obelink”)

My.Resources ‘Strongly typed’ toegang tot resources toegevoegd via de Resource Editor (IDE) ‘Strongly typed’ toegang tot resources toegevoegd via de Resource Editor (IDE) Via de IDE meeste bestanden ook te bewerken Via de IDE meeste bestanden ook te bewerken Beheer teksten voor verschillende talen Beheer teksten voor verschillende talen ' LogoVBcentral.png toegevoegd via Resource Editor picLogo.Image = My.Resources.LogoVBcentral ' Lokaliseer teksten in UI automatisch lblCopyright.Text = My.Resources.TextCopyright

My.Settings Eenvoudig opslaan van configuratie instellingen Eenvoudig opslaan van configuratie instellingen Bestand Applicatienaam.exe.config Bestand Applicatienaam.exe.config Application Scope Settings Application Scope Settings instellingen voor alle gebruikers – alleen lezen instellingen voor alle gebruikers – alleen lezen bestand staat naast executable bestand staat naast executable User Scope Settings User Scope Settings instellingen per gebruiker – lezen en schrijven instellingen per gebruiker – lezen en schrijven bestand staat onder Documents and Settings bestand staat onder Documents and Settings

My.Settings Application Settings Application Settings User Settings User Settings MijnProgramma.exe.config … Willem.config Marieke.config Andre.config …

My.Settings Laden – Application/User Laden – Application/User strConnectionString = My.Settings.MijnConnectionstring My.Settings.LastUserName = “obelink” My.Settings.Save() Opslaan - User Opslaan - User Event afhandelen – Settings.Designer.vb Event afhandelen – Settings.Designer.vb Private Sub MySettings_SettingChanging(ByVal sender As Object, ByVal e As System.Configuration.SettingChangingEventArgs) Handles Me.SettingChanging If e.SettingName = "LastUserName" Then If e.NewValue IsNot "obelink" Then e.Cancel = True End If End Sub

My.Forms en My.WebServices Worden ook dynamisch gegenereerd door de compiler van Visual Basic Worden ook dynamisch gegenereerd door de compiler van Visual Basic De ‘default instance’ van een formulier is terug De ‘default instance’ van een formulier is terug My.Forms.Form1.Show of Form1.Show My.Forms.Form1.Show of Form1.Show Veel ‘proxywerk’ wordt automatisch afgehandeld: Veel ‘proxywerk’ wordt automatisch afgehandeld: Dim objKlanten As Klanten objKlanten = My.WebServices.KlantenBeheer.Load Dim objKlanten As Klanten objKlanten = My.WebServices.KlantenBeheer.Load

Demo My.Settings…

Generics specificieer type tijdens coderen… Nieuwe namespace Nieuwe namespace System.Collections.Generic System.Collections.Generic Maak een ‘strongly typed’ collectieklasse met slechts één regel code Maak een ‘strongly typed’ collectieklasse met slechts één regel code Inherits System.Collections.Generic.List(Of T) Inherits System.Collections.Generic.List(Of T) Maak uw eigen generic types Maak uw eigen generic types

Generics voorbeeld zonder generics… Public Class List Private mobjElementen() As Object Private mintCount As Integer Public Sub Add(objElement As Object) ‘Indien nodig maak array groter mintCount += 1 mobjElementen(mintCount-1) = objElement End Sub Public ReadOnly Property Count() As Integer Get Return mintCount End Get End Property End Class Dim intList As New ArrayList() intList.Add(1) ‘Argument wordt geboxed intList.Add(2) ‘Argument wordt geboxed intList.Add(“Drie”) ‘Moet exception genereren Dim intGetal As Integer = CType(intList(0), Integer) ‘Cast!

Public Class List(Of ItemType) Private mobjElementen() As ItemType Private mintCount As Integer Public Sub Add(objElement As ItemType) ‘Indien nodig maak array groter mintCount += 1 mobjElementen(mintCount-1) = objElement End Sub Public ReadOnly Property Count() As Integer Get Return mintCount End Get End Property End Class Generics voorbeeld met generics… Dim intList As New ArrayList(Of Integer) intList.Add(1) ‘Geen boxing intList.Add(2) ‘Geen boxing intList.Add(“Drie”) ‘Compile-time error Dim intGetal As Integer = intList(0) ‘Geen casting!

Generics Controle tijdens het compileren Controle tijdens het compileren Voorkom runtime errors Voorkom runtime errors Betere performance Betere performance Geen overhead door boxing en casting Geen overhead door boxing en casting Code eenvoudiger te hergebruiken Code eenvoudiger te hergebruiken Erg handig voor ‘strongly typed’ collecties – Demo! Erg handig voor ‘strongly typed’ collecties – Demo! Voor een aantal structuren al voorhanden Voor een aantal structuren al voorhanden Dictionary, HashTable, List, Stack etc. Dictionary, HashTable, List, Stack etc.

Nieuwe statements in VB2005 IsNot – logische tegenhanger van Is statement IsNot – logische tegenhanger van Is statement Using – declareer, instantieer, gebruik en ruim op Using – declareer, instantieer, gebruik en ruim op Continue – stap naar volgende iteratie in loop Continue – stap naar volgende iteratie in loop TryCast – retourneert Nothing bij onmogelijk cast TryCast – retourneert Nothing bij onmogelijk cast Global – verwijs naar root namespace Global – verwijs naar root namespace

IsNot Duidelijker manier om te bepalen of een object een waarde heeft of niet overeenkomt met een ander object. Duidelijker manier om te bepalen of een object een waarde heeft of niet overeenkomt met een ander object. ‘Voor VB2005 If Not objMijnObject Is Nothing Then …. End If ‘Met VB2005 If objMijnObject IsNot Nothing Then … End If

Using Fraaie manier om alle resources te sluiten en op te ruimen. Fraaie manier om alle resources te sluiten en op te ruimen. ‘Dimensioneer en instantieer een object Using objFileStream As New FileStream(strPath, FileMode.Append) For intTeller As Integer = 0 To objFileStream.Length ‘Doe iets… lees byte in objFileStream.ReadByte() Next End Using ‘Sluit stream en ruim object op

Continue Werkt met For… Next, Do en While lussen Werkt met For… Next, Do en While lussen Lus is logischer en beter leesbaar Lus is logischer en beter leesbaar For intA as Integer = 0 To 100 While strArray(intA) IsNot “André” If strArray(intA) Is “Obelink” ‘Ga verder met volgende intA Continue For End If ‘Doe iets… End While Next intA

TryCast Geen Try.. Catch logica bij CType of DirectCast wanneer conversie mislukt. Geen Try.. Catch logica bij CType of DirectCast wanneer conversie mislukt. TryCast duidelijker leesbaar TryCast duidelijker leesbaar ‘Runtime error wanneer objBoek <> Product objProduct = CType(objBoek, Product) objProduct = DirectCast(objBoek, Product) ‘TryCast retourneert Nothing wanneer objBoek <> Product objProduct = TryCast(objBoek, Product) If objProduct IsNot Nothing Then ‘ Doe iets End If

Global Mogelijk om elke namespace naamconflict te voorkomen Mogelijk om elke namespace naamconflict te voorkomen ‘Fout indien andere namespace ook een System bevat Dim objStringBuilder1 As New System.Text.StringBuiler ‘Maak onderscheid!  Nu wel goed… Dim objStringBuilder2 As New Global.System.Text.StringBuiler

Wat we niet besproken is… Operator Overloading Operator Overloading +, - etc. eigen klassen +, - etc. eigen klassen Conversie operatoren Conversie operatoren Eigen CType() Eigen CType() Unsigned Types Unsigned Types Property Accessor Property Accessor Partial Types Partial Types Events op applicatieniveau Events op applicatieniveau

Samenvatting De beste Visual Basic ooit! De beste Visual Basic ooit! Taal is compleet, volledige OO ondersteuning Taal is compleet, volledige OO ondersteuning Datatypen komen nu overeen met andere.NET talen Datatypen komen nu overeen met andere.NET talen IDE helpt mee met waarschuwingen van de compiler IDE helpt mee met waarschuwingen van de compiler …. ….

Verantwoording Een groot aantal dia’s zijn gebaseerd op presentaties van Stan Schultes (MVP VB) en Amanda Silver en Steven Lees van het Microsoft Visual Basic Team Een groot aantal dia’s zijn gebaseerd op presentaties van Stan Schultes (MVP VB) en Amanda Silver en Steven Lees van het Microsoft Visual Basic Team

Visual Basic 2005 – de basis ISBN: ISBN: Pearson Education Benelux Pearson Education Benelux september 2006 in de winkel september 2006 in de winkel 272 pagina’s / € 19, pagina’s / € 19,95