Visual Basic 2005 nieuwe taalelementen André Obelink, MCSD, MVP



Vergelijkbare documenten
Visual Basic.NET. Visual Basic.NET. M. den Besten 0.3 VB. NET

VB Magazine Online /08 1 / 6

Maak een pivot uit een Generic.List

vbg.vbnet.beginner Foutafhandeling binnen Visual Basic.NET

Afdrukken met Visual Basic 2008

ASRemote WebService. Via deze webservice kunt u:

1 Een beetje theorie vooraf 1. Wat is een programma? 2 Hoe maakt u een programma? 3 IL-code en JIT-compiler 5

Hoofdstuk 7: Werken met arrays

Inleiding Visual Basic en VBA. Karel Nijs 2009/01

Inhoud. VBA Excel 2010

Leren Programmeren met Visual Basic 6.0 Les 3+4. Hoofdstuk 4 : De Selectie

Som Van Twee Getallen

Dieper in Visual Basic.Net

Datatypes Een datatype is de sort van van een waarde van een variabele, veel gebruikte datatypes zijn: String, int, Bool, char en double.

Whitepaper Implementatie contextafhankelijke opdrachtbalken in MS Excel

Kleine cursus PHP5. Auteur: Raymond Moesker

Een gelinkte lijst in C#

Zelftest Programmeren in Java

Zelftest Inleiding Programmeren

GCE cad-app. GCE cad-service 4/16/2012

Een eerste applicatie

vbg.vbnet.beginner Omgaan met files en directories binnen Visual Basic.NET

Tentamen Object Georiënteerd Programmeren TI oktober 2014, Afdeling SCT, Faculteit EWI, TU Delft

SYNTRA-WEST. Initiatiecursus JAVA. Deel

Analyse KeyLock versie Door MartinJM

INLEIDING... 1 AFSPRAKEN... 2 INHOUDSOPGAVE...

Een interactie dictionary in ASP.Net

VAN HET PROGRAMMEREN. Inleiding

Variabelen en statements in ActionScript

Overerving & Polymorfisme

Java. Basissyllabus. Egon Pas

Hier volgt als hulp wat technische informatie voor de websitebouwer over de werking van de xml web service.

Hoofdstuk 1: Inleiding. Hoofdstuk 2: Klassen en objecten Datahiding: afschermen van implementatiedetails. Naar de buitenwereld toe enkel interfaces.

Modelleren en Programmeren

Vakgroep CW KAHO Sint-Lieven

Dynamiek met VO-Script

C# 6 Door Alex en Chris van Beek

Hoofdstuk 2: Werken met variabelen

Programmeren in Access met VBA

In de tweede regel plaatsen we in het gereserveerde stukje geheugen een getal.

Programmeren in Access 2016 met VBA

Programmeren in Excel VBA beginners. Karel Nijs 2010/09

Open SQL Server Management Studio en log in als Administator. Je ziet dan wat je in figuur 2.1 ziet.

6.2 VBA Syntax. Inleiding Visual Basic

Object Oriented Programming

Universiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren

Een unit test is geen integratie test. Niet het hele systeem, maar onderdelen van een systeem worden getest.

6.3 VBA Syntax Instructie. Wij gaan de Visual Basic Editor opnieuw openen, om de instructie die wij zojuist getypt hebben, nader te bekijken.

Ontwikkelen Smart Documents met Microsoft Office System

Uitwerkingen derde deeltentamen Gameprogrammeren Vrijdag 6 november 2015, uur

E-Basic. E-Studio. E-Run Real-Time Experiment Generator. E-Merge. E-DataAid Spreadsheet Application for E-Prime Data Files

Programmeren. Cursus Python

ASP.NET Test Jan Van Ryckeghem

Parallelle Poort Aansturen Met Visual Basic

Implementatie AssurePay ASP.NET. ideal

Programmeren in Excel VBA beginners. Karel Nijs 2010/09

MINICURSUS PHP. Op dit lesmateriaal is een Creative Commons licentie van toepassing Sebastiaan Franken en Rosalie de Klerk Bambara

Programmeren (1) Examen NAAM:

Mijn eerste ADO.NET applicatie

Online c++ leren programmeren:

Een identiteit wordt vastgesteld door authenticeren van de

Datum en tijd 2.1. hoofdstuk 2. Bepaal de huidige datum

Kwis (3) class X { public void a() { System.out.println("x"); public static void main(string[] args) { X x = new X();

HBO Traject ACE. Generiek testplan voor AutoCAD. Auteur Ing. M. van Walraven. Datum 11 februari Docent Ir. Ronald Boeklagen

Programmeren in Java 3

Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, , Technische Universiteit Delft, Faculteit EWI, Afdeling 2.

Hoofdstuk 2: Werken met variabelen

Programmeren in C# Samenvatting van C#

Microsoft Excel. It s all about Excel - VBA

DELPHI VOOR ELEKTRONICI. Deel 2: Een rekenmachine programmeren CURSUS

Macro's in OpenOffice.org

VAN HET PROGRAMMEREN. Inleiding. Het spiraalmodel. De programmeertaal. vervolgens de berekening van het totale bedrag, incl. BTW:

NHibernate als ORM oplossing

Knowledgeable Referenceable Personable Accountable Scalable

Programmeren in Excel VBA. Karel Nijs 2010/09

Syntax- (compile), runtime- en logische fouten Binaire operatoren

Stel dat u 15 tellers nodig heeft. Dat kunt u een array van tellers als volgt declareren:

VBA voor Doe het Zelvers deel 9

Secure Application Roles

Noties Informatica. In java fungeren objecten als een model voor de elementen waarin een probleem kan worden opgesplitst

Programmeren in Excel VBA. Karel Nijs 2010/09

Info-books. Toegepaste Informatica. Deel 20 : Algoritmen en programmeren in Access en Excel (Basis) AL20. Jos Gils Erik Goossens

Streams, Formatters en Serialization in.net (Tutorial gebaseerd op tutorials van Richard Grimes, het MSDN en anderen)

CONTAINERIZATION OF APPLICATIONS WITH MICROSOFT AZURE PAAS SERVICES

Modulewijzer Tirdat01

Om de libraries te kunnen gebruiken, moet de programmeur (een deel van) zijn programma in C/C++ schrijven.

Opdracht Informatica Tutorial Visual Basic

Tutorial 1, Delphi: Geldspraak

Gegevenskoppeling BoekenRoute

Labo 1 Programmeren II

Bestand: /home/karel/scripts/mkusb Pagina 1 van 6

Deel 1: Arduino kennismaking. Wat is een microcontroller, structuur van een programma, syntax,

Ingebouwde klassen & methodes

Tentamen Object Georiënteerd Programmeren TI januari 2013, Afdeling SCT, Faculteit EWI, TU Delft

Versie 2: B C D D A C D A C C. Versie 3: C D A A B D A B D D. Versie 4: A D C C B D C B D D. Versie 5: B A D D C A D C A A

Transcriptie:

Visual Basic 2005 nieuwe taalelementen André Obelink, MCSD, MVP Auteur, VBcentral.nl Microsoft MVP Visual Basic VP Speakers Bureau INETA Europe - www.europe.ineta.org www.vbcentral.nl - www.obelink.com - andre@obelink.com

My namespace speed dial en dynamic types My Application Computer User Resources Settings Forms WebServices 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 Eigenschappen van de applicatie binnen handbereik Aantal methoden beschikbaar, zoals: ChangeCulture, Run etc. Meer invloed op het application framework. My.Application Info.Title Info.Version CommandLineArgs Dim strbedrijfsnaam As String Dim blnclickonce As Boolean With My.Application strbedrijfsnaam =.Info.CompanyName blnclickonce =.IsNetworkDeployed End With Log WorkingDirectory (UI) Culture

My.Computer Geeft toegang tot eigenschappen van de computer, de hardware en eventueel aangesloten randapparatuur Dim intvrijgeheugen As Integer Dim strcomputernaam As String My.Computer Mouse Audio Network Registry With My.Computer ' Zet tekst op het klembord.clipboard.settext( www.vbcentral.nl") intvrijgeheugen =.Info.AvailablePhysicalMemory strcomputernaam =.Name End With Clipboard FileSystem

My.User Geeft toegang tot eigenschappen van de huidig ingelogde gebruiker 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.User Login Name Domain Authentication Roles Custom Principal

My.Resources My Dynamic Types de compiler aan het werk piclogo.image = My.Resources.LogoVBcentral My.Settings Me.Location = My.Settings.LocationFormMain My.Forms My.Forms.FormMain.Show My.WebServices My.WebServices.VBcentral.Search( Obelink )

My.Resources Strongly typed toegang tot resources toegevoegd via de Resource Editor (IDE) Via de IDE meeste bestanden ook te bewerken 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 Bestand Applicatienaam.exe.config Application Scope Settings instellingen voor alle gebruikers alleen lezen bestand staat naast executable User Scope Settings instellingen per gebruiker lezen en schrijven bestand staat onder Documents and Settings

My.Settings Application Settings User Settings MijnProgramma.exe.config Willem.config Marieke.config Andre.config <ApplicationSettings> </ApplicationSettings> <UserSettings> </UserSettings>

Laden Application/User My.Settings strconnectionstring = My.Settings.MijnConnectionstring Opslaan - User My.Settings.LastUserName = obelink My.Settings.Save() 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 De default instance van een formulier is terug My.Forms.Form1.Show of Form1.Show Veel proxywerk wordt automatisch afgehandeld: Dim objklanten As Klanten objklanten = My.WebServices.KlantenBeheer.Load

Demo My.Settings

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

Generics voorbeeld zonder generics Public Class List Private mobjelementen() As Object Private mintcount As Integer Dim Public intlist Sub As New Add(objElement ArrayList() As Object) Indien nodig maak array groter intlist.add(1) mintcount += 1 Argument wordt geboxed intlist.add(2) mobjelementen(mintcount-1) Argument wordt = objelement geboxed intlist.add( Drie ) End Sub Moet exception genereren Dim Public intgetal ReadOnly As Integer Property = CType(intList(0), Count() As Integer Integer) Cast! Get Return mintcount End Get End Property End Class

Generics voorbeeld met generics Public Class List(Of ItemType) Private mobjelementen() As ItemType Private mintcount As Integer Dim Public intlist Sub As New Add(objElement ArrayList(Of As Integer) ItemType) Indien nodig maak array groter intlist.add(1) mintcount += 1 Geen intlist.add(2) mobjelementen(mintcount-1) Geen boxing= objelement intlist.add( Drie ) End Sub Compile-time error Dim Public intgetal ReadOnly As Integer Property = intlist(0) Count() As Integer Geen casting! Get Return mintcount End Get End Property End Class

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

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

IsNot 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. 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 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. 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 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 +, - etc. eigen klassen Conversie operatoren Eigen CType() Unsigned Types Property Accessor Partial Types Events op applicatieniveau

Samenvatting De beste Visual Basic ooit! Taal is compleet, volledige OO ondersteuning Datatypen komen nu overeen met andere.net talen 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

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