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

Slides:



Advertisements
Ähnliche Präsentationen
Datenbankzugriff über ISAPI-Webservererweiterungen
Advertisements

C Sharp (C#) Martin Saternus Senior Student Partner
Was gibt´s neues im Bereich Sicherheit
Programmierung II Prof. Dr. Michael Löwe
Daten fließen lassen XML in Microsoft Office 2003 Lorenz Goebel Frank Fischer
SQL Server 2005.NET Integration Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH.
Office XP und XML Web Services Dariusz Parys.NET Strategy & Developer Group
Office 2000 COM Add-Ins Werkzeuge und Optimierung Tilo Böttcher Technical Specialist Microsoft GmbH
Was ist neu in VS 2003 ? Ein Überblick. Bernd Marquardt Software & Consulting
Web Matrix Project Kurzüberblick Dirk Primbs Technologieberater Developer Platform Strategy Group Microsoft Deutschland GmbH.
Seminar Internetdienste Web 2.0 und Rich Internet Applications (RIA) JavaFX Rainer Scholz.
Unter- und Oberklassen: Beispiel
Objektorientierung mit VBA
FH-Hof Einbindung von JavaScript Anweisungen
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Java: Grundlagen der Sprache
Benötigte Applets Startseite: in HTML-Format Applet auf der Startseite Das Applet, das auf der Startseite geladen wird, wird die vier Buttons und die eine.
Installation des Add-In SOLVERSTAT
Programmieren mit JAVA
VB .NET Proseminar .NET SS04.
DVG Klassen und Objekte
Einführung in die Programmierung Datensammlung
Hänchen & Partner GmbH 1 Web-Anwendungen mit dem Jakarta Struts Framework 3.Juli 2003 Martin Burkhardt.
Wizards & Builders GmbH Microsoft Titel Microsoft-Titel für Entwickler und Softwarehäuser.
Wizards & Builders GmbH OOP in der Praxis Die wichtigsten Befehle für OO-Programmierung mit Microsoft Visual FoxPro.
Handling und Erstellung von: DLL, EXE, COM, DCOM
Erstellen von WebServices mit Visual FoxPro 9.0
Uwe Habermann Venelina Jordanova dFPUG – Silverlight Wizard.
Uwe Habermann WPF Avalon Formulare aus VFP verwenden Venelina Jordanova
Uwe Habermann Venelina Jordanova VFP Code in Silverlight Anwendungen ausführen.
Uwe Habermann VFX 10.0 Visual Extend Produktaktivierung.
MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 10 Die erste, eigene Klassenbibliothek (Level 100) Presenter: Daniel Walzenbach Technologieberater.
Presenter: Daniel Walzenbach Technologieberater
MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 9 Zeichenketten, Delegates und Events (Level 100) Presenter: Daniel Walzenbach Technologieberater.
YouTube5 .0 Projektpräsentation
Erstellen eines Zufallsgenerators
Internet-Datenbanken und ASP Eine Einführung von J.Sommer & A.Vortisch.
Delphi II - OOP IFB Fortbildung
University of Applied Sciences Übung Objektorientierte Programmierung II Dipl.-Inf. (FH) Markus Vogler.
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
Einführung / Geschichte Einführung / Geschichte Motivation Motivation Beispiel Beispiel Architektur / Komponenten Architektur / Komponenten Konfiguration.
Michael Köster User Experience Specialist Microsoft Corporation.
Developer Day Office APPs entwicklen Simon Amrein Trivadis AG Die ersten Schritte in eine neue Office-Welt.
Cooperation unlimited © Zühlke Juni 2009 Hansjörg Scherer Folie 1 Cooperation unlimited TFS als BackEnd für Visual Studio und Eclipse.
Reiner Ganser Solution Architect 1stQuad Solutions GmbH Presentation Subtitle.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Uwe Habermann Venelina Jordanova Übernahme der Visual FoxPro Geschäftslogik.
Vortrag: Visual Basic Neuerungen Autor : Dennis Hoyer
Herbers Excel-Server - der Workshop
Variablen in Programmiersprachen
EPROG Tutorium #4 Philipp Effenberger
Torque in Turbine Team 4 Josef Bohninger Thomas Lindenhofer
MTS Microsoft Transaction Server Martin Basziszta
integration beim Drucken
iMAS Schnittstellen - Übersicht
Project Hooks und _VFP Möglichkeiten. © 1999 TMN-Systemberatung GmbH Aufbau des Objekt Modells für Applications und Projects.
Mehrfachausführungen Schleifen in VB 2010 ee. Programmidee: Der Anwender gibt eine Zahl ein, und das Programm gibt die Mehrfachen dieser Zahl aus (das.
VBA-Schulung /28Ereignisse2 Behandlung von Ereignissen (Events)
orgAnice Pi Schulung /13 Einführung in orgAnice Pi2.
Web und Mobile Apps Programmieren Marco Jakob Kurzvortrag OSS an Schulen
Java-Kurs Übung Benutzeroberflächen und Graphik Frames (Fenster)
Ralf M. Schnell Technical Evangelist Microsoft Deutschland GmbH
Ralf M. Schnell Technical Evangelist Microsoft Deutschland GmbH.
Collaborative Research Online: Knowledge management pilot project on Haskala Dr. Rachel Heuberger, Judaica Abteilung, Universitätsbibliothek Frankfurt.
1 Konica Minolta IT Solutions Prinzip Partnerschaft MANAGED MONITORING ÜBERWACHJUNG DER SERVERINFRASTRUKTUR UND ANWENDUNGEN DIREKT AUS DER CLOUD.
Objektorientierte (OO) Programmierung
Gregor Graf Oracle Portal (Part of the Oracle Application Server 9i) Gregor Graf (2001,2002)
Application Infrastructure Technologies Extending OnPremise EAI to the Cloud Wilfried Mausz BSc. dataformers GmbH Lothar Mausz dataformers.
Workshop 1 Getting Started 2016 Boris Wylutzki
 Präsentation transkript:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Codeoptimierung Dim ObjektA as BeispielklasseA Set ObjektA = New BeispielklasseA.... Use Properties etc... Set ObjektA = Nothing

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

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

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

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

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

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

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

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. Lif Konstrukte langsamer als IF..THEN.. ELSE Codeoptimierung

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

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