Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Office 2000 COM Add-Ins Werkzeuge und Optimierung Tilo Böttcher Technical Specialist Microsoft GmbH

Ähnliche Präsentationen


Präsentation zum Thema: "Office 2000 COM Add-Ins Werkzeuge und Optimierung Tilo Böttcher Technical Specialist Microsoft GmbH"—  Präsentation transkript:

1 Office 2000 COM Add-Ins Werkzeuge und Optimierung Tilo Böttcher Technical Specialist Microsoft GmbH

2 Nach gut zwölf Monaten Office 2000 wollen wir neben einem Überblick über die programmatischen Erweiterungsmöglichkeiten mit COM Add-Ins in den verschiedenen Office 2000 Anwendungen auch Möglichkeiten für das Optimieren von VB/VBA Applikationen aufzeigen. Office 2000 COM Add-Ins Werkzeuge und Optimierung

3 Was Sie heute erwartet Ein Überblick sowie die Klärung einiger Fragen Erweitern aber wie ? Sicher (gegen Angriffe und unberechtigte Veränderungen) ? Robust Schnell (beim Start, beim Beenden, im Zugriff auf Datenbanken, Informationsaustausch etc.) ? Wiederverwendbar – modular ? Office 2000 COM Add-Ins Werkzeuge und Optimierung

4 Agenda SR1a/OL 2000 Security Patch Overview COM Add-In Entwicklung – Werkzeuge und Erfahrungen Überblick: COM Add-Ins mit VB/VBA sowie C++ und ATL entwickelnCodeoptimierung Kapselung Eventhandling Tipps

5 Agenda SR1a/OL 2000 Security Patch Overview COM Add-In Entwicklung – Werkzeuge und Erfahrungen Überblick: COM Add-Ins mit VB sowie C++ und ATL entwickelnCodeoptimierung Kapselung Eventhandling Tipps

6 Allgemeine Fixes Outlook 2000 Migration von Win 9.x to W2K Excel 2000 SYLK File Security Update Excel Programmatic Text Export Update WORM. Explore.Zip Virus Update IE 5.0a auf IE 5.1 Update System Komponenten Updates auf Windows 2000 Stand (incl. MDAC 2.1 auf 2.5, OleAut, Richedit, Windows Installer 1.0 auf 1.1, Web Folders, Jet). PhotoDraw 2000 Version 2 SR1a/OL 2000 Security Patch Overview

7 Outlook 2000 Security Patch Block All Access to the following potentially unsafe attachment types: EXE, COM, URL, LNK, BAT, PIF, INF, REG, CMD, BAS, ISP, INS, CRT, PCD, MST, SCR, HLP, CHM, CPL, VBS, ASF, JS, MDB Prevent script in One-off forms from executing. (no more prompt) Always Bring up UI prompt for programmatic access to the Item.Send method in the Outlook Object Model Always Bring up UI prompt for programmatic access to Address Book Entries, Contact Address, and Recipient information in Outlook SR1a/OL 2000 Security Patch Overview

8 Was wurde für Developer im SR1a gefixt? Fixes in allen Bereichen (auch MDAC, IE, WEB Server)... einige Auszüge Allows multiple multi-threaded (MT) project types. Forms3 setfocus works with Modal UserForms as expected. Properly licenses when deploying a DLL with controls on a computer that does not have Office 2000 Developer Edition. Updates to RichEdit control (RichEd20.dll) for improved text handling and display. WebCalc retains data and format of cells as expected in scripts, applets, and other programming elements in Internet Explorer 5. SR1a/OL 2000 Security Patch Overview

9 Agenda SR1a/Security Patch Overview COM Add-In Entwicklung – Werkzeuge und Erfahrungen Überblick: COM Add-Ins mit VB/VBA sowie C++ und ATL entwickelnCodeoptimierung Kapselung Eventhandling Tipps

10 COM Add-Ins mit VBA entwickeln COM Add-In Entwicklung – Werkzeuge und Erfahrungen Neues COM Add-In Projekt Designer Menüleisten, Buttons WithEvents, Forms Kompilierung/Registrierung (nur *.dll möglich) Setup erstellen (Add-In) Verteilung Office VBA IDE *.dll

11 COM Add-Ins mit VB entwickeln COM Add-In Entwicklung – Werkzeuge und Erfahrungen Designer konfigurieren (Impl. IDTExtensibility2) Menüleisten, Buttons WithEvents, Forms Kompilierung/Registrierung Setup erstellen (Add-In) Verpackungs- und Weitergabeass. Add-In Verteilung Visual Basic 6.0 *.dll *.ocx *.Exe

12 COM Add-Ins mit C++ und ATL entwickeln COM Add-In Entwicklung – Werkzeuge und Erfahrungen ATL COM Wizard ATL COM Komponente Verteilung Visual C RegistryIDTExtensibility2 Objektmodell von Office 2000 und verwendeter App importieren Interaktion mit UI MenüeinträgeButtons Base Event Klassen Sink Events Map App Events handlen Test Kompilierung

13 Demo COM Add-Ins

14 Agenda SR1a/Security Patch Overview COM Add-In Entwicklung – Werkzeuge und Erfahrungen Überblick: COM Add-Ins mit VB/VBA sowie C++ und ATL entwickelnCodeoptimierung Kapselung Eventhandling Tipps

15 Verwendung von Klassen – Kapselung Einfach weiterzuverwenden Einfach zu Projekten hinzuzufügen Einfach zu Projekten hinzuzufügen Weniger Abhängigkeiten zwischen den Modulen Weniger Abhängigkeiten zwischen den Modulen Macht Task Partitionierung und Spezialisierung möglich Übersichtlicher: Verbirgt Teile komplexer Prozesse Vereinfacht Entwicklung und Debugging Codeverwaltung: Updates an zentraler Stelle nur einmal vonnöten Mehrfache Instanzeierung möglich Codeoptimierung

16 Verwendung von Klassen – Kapselung Erzeugen einer Klasse Einfügen eines Klassenmoduls Einfügen eines Klassenmoduls Sinnvollen Namen verwenden Sinnvollen Namen verwenden Initialize und Terminate Events handlen Initialize und Terminate Events handlen Eigenschaften und Methoden festlegen Eigenschaften und Methoden festlegen Objekte instanzeieren Objektvariablen festlegen Objektvariablen festlegen New Schlüsselwort verwenden New Schlüsselwort verwenden Zugriff auf Eigenschaften und Methoden Zugriff auf Eigenschaften und Methoden Codeoptimierung Einfachste Eigenschaft Public Variable im Klassenmodul Methoden Public procedure Sub oder Function Rückgabe von Werten möglich Übergabe von Args möglich Wird I. A. so verwendet

17 Codeoptimierung Dim ObjektA as BeispielklasseA Set ObjektA = New BeispielklasseA.... TuEtwas mit Funktion xy Methoden und Eigenschaften... Set ObjektA = Nothing `Klassenname: BeispielklasseA Public Sub TuEtwas() Public Function xy() As Long End Sub 1 2

18 Verwendung von Collections Manchmal wird eine unbekannte Anzahl an Objekten benötigt... Eine Collection kann andere Objekte aufnehmen Mit NEW kann eine neue Collection angelegt werden Methoden Methoden Add – Hinzufügen eines Objektes Add – Hinzufügen eines Objektes Item (default) – Referenziert ein Objekt Item (default) – Referenziert ein Objekt Remove – Löscht ein Objekt Remove – Löscht ein Objekt Count – Eigenschaft Count – Eigenschaft Eigenschaften und Einschränkungen: Collection löschen durch Neudefinition der Elemente oder Nothing setzen Collection löschen durch Neudefinition der Elemente oder Nothing setzen Public/Global Collections können gefährlich sein Public/Global Collections können gefährlich sein Keine Kontrolle über den Inhalt möglich Keine Kontrolle über den Inhalt möglich Kapselung in Klassen (Collection Class) Kapselung in Klassen (Collection Class) Collections bestehen aus impliziten Objektpointern Collections bestehen aus impliziten Objektpointern Codeoptimierung

19 Codeoptimierung `Ansprechen von Items colItems.Item(1).MethodName colItems.Item(Bär").MethodName `Durchwandern der Collection For Each objItem in colItems objItem.MethodName Next

20 Eventhandling WithEvents -- Eventsenken VBA Schlüsselwort – erlaubt Reaktion auf ObjektEvents (COM) VB/VBA Objektbrowser stellt dies am besten dar Deklaration einer Variablen spiegelt das aktuelle Objekt Private WithEvents obj As SomeObject Muß in einem Klassenmodul oder Form vorgenommen werden, erkennbar auch im Editor mit Autoausfüllen-Menüs Codeoptimierung

21 Eventhandling -- WithEvents Codeoptimierung Private Sub Class_Initialize() Set mobjExcelApp = New Excel.Application mobjExcelApp.Visible = True End Sub Dim mobjExcelEvents As clsExcelEvents Sub InitExcelEvents() Set mobjExcelEvents = New clsExcelEvents End Sub 1 2 Klassenmodul Standardmodul

22 Codeoptimierung Reguläres Modul KlassenModulKlassenModul COM Server Objektvariable Exponiertes Objekt Ereignis Prozedur Pointer auf das KlassenModul Pointer auf das Objekt ObjectEvents triggern Prozeduren im Klassen- modul Private WithEvents objSomething _ As SomeObject Private WithEvents objSomething _ As SomeObject Sub objSomething_SomeEvent() End Sub Sub objSomething_SomeEvent() End Sub

23 Eventhandling -- RaiseEvents Raising Events falls eingebaute Events nicht ausreichen (seit VB 5) Events im Deklarationsbereich festlegen Events im Deklarationsbereich festlegen RaiseEvent Schlüsselwort im Code nutzen RaiseEvent Schlüsselwort im Code nutzen Event Senken Applikationen werden benachrichtigt, wenn Events eintreten Applikationen werden benachrichtigt, wenn Events eintreten WithEvents in Klassenmodulen nutzen WithEvents in Klassenmodulen nutzen Formular-Modul ist am einfachsten (immer da) Formular-Modul ist am einfachsten (immer da) Codeoptimierung

24 Codeoptimierung Private Sub dbCtl1_validateRecord(ByVal operation As String, _ cancel As Boolean) Dim msgString As String Dim iIndx As Integer If (operation = "Save") Then If (Len(Text1.Text)<1) Then msgString = "Bitte einen Titel eingeben!" & vbCrLf msgString = msgString & "Speichern wurde abgebrochen" iIndex = MsgBox(msfString, vbCritical, _ "VB DataControl") Cancel = true Else Cancel = false End If End Sub Public Event validateRecord(ByVal operation As String, ByRef cancel As Boolean) RaiseEvent validateRecord("Add", bCancel) Deklarationsteil im Klassenmodul etwas später im Code

25 10 Tipps für die Optimierung von VB/VBA COM Add-Ins 1. timeGetTime wesentlich schneller als die Timer Funktion 2. vbNullString anstelle von zur Initialisierung nutzen 3. String concatenation: Sehr teuer!! 4. Like Operator für Zeichenvergleich nutzen 5. Objekte außerhalb von Schleifen referenzieren Codeoptimierung

26 10 Tipps für die Optimierung von VB/VBA COM Add-Ins (Cont.) 6. DoEvents kosten Zeit! 7. Case Statements unter VBA vorsortieren 8. For Each…Next wesentlich schneller als For … Next in einer Collection 9. Löschen einer Collection am schnellsten durch Pointer auf eine neue Collection setzen 10. Early Binding vs. Late Binding! Codeoptimierung

27 Demo 10 Tips zur VB/VBA Codeoptimierung

28 Links und Literatur (Professional ATL COM Programming by R. Grimes)

29 Q & A... where do you want to go today?


Herunterladen ppt "Office 2000 COM Add-Ins Werkzeuge und Optimierung Tilo Böttcher Technical Specialist Microsoft GmbH"

Ähnliche Präsentationen


Google-Anzeigen