This project has moved. For the latest updates, please go here.

NetOffice 1.3 - Neue Features im Überblick

- Mehr Überladungen für Methoden mit optionalen Parametern
- Einfache Prüfung zur Laufzeit ob ein spezfisches Feature zur Verfügung steht
- Enumeratoren für Listen ohne nativen Enumerator Support
- Integrierte Debug Console
- Verbesserter Beispielcode
- Developer Toolbox 0.9


Mehr Überladungen für Methoden mit optionalen Parametern

 
NetOffice kann leider keine optionalen Parameter anbieten da viele Methoden Überladungen haben die in unterschiedlichen Office-Versionen definiert sind. Würde NetOffice diese zu einer einzigen Methode mit optionalen Parametern zusammenfassen würde die Information verloren gehen welche Version die jeweilige Methode anbietet. Ich hatte deswegen in der Vergangenheit viel Mail-Verkehr quer über die ganze Welt, Leute die mir Beispielprojekte mit optionalen Parametern geschickt und Vorschläge gemacht haben, vielen Dank dafür. Die Information welche Office Version die jeweilige Methode anbietet wird in NetOffice via XML Dokumentation als IntelliSense angezeigt. Ich möchte diese IntelliSense Unterstützung nicht zugunsten der optionalen Parameter opfern. Ich bin stolz darauf das versionsunabhängige Office-Entwicklung mit NetOffice nicht einfach nur möglich ist sondern das man hierbei auch aktiv unterstützt wird. Dafür gibt es nun 3 zentrale Features:

1.) Während der Entwicklung durch die XML Dokumentation die anzeigt welche Office Version die jeweilige Funktionalität anbietet
2.) Nach der Entwicklung durch die Developer Toolbox die eine Code Analyse durchführt und dem Entwickler aufzeigt mit welchen Office Versionen sein Code funktioniert
3.) Das neue EntityIsAvailable Feature (siehe unten) das ermöglicht zur Laufzeit zu ermitteln ob eine Funktionalität zur Verfügung steht

Es wäre schade diese besondere Trademark von NetOffice aufzuweichen daher bietet NetOffice keine optionalen Parameter. Als Ersatz für Methoden mit optionalen Parametern bot NetOffice bisher jeweils eine minimale und eine maximale Funktionsüberladung an. In solchenn Fällen wo Methoden sehr viele optionale Parameter enthalten und der Entwickler nur einen oder wenige davon nutzen wollte ist dies jedoch nicht optimal, daher gibt es nun für Methoden mit optionalen Parametern die entsprechende Anzahl an Überladungen wie optionale Parameter existieren. Ich hoffe damit einen adäquaten Ersatz für optionale Parameter hergestellt zu haben.


Einfache Prüfung zur Laufzeit ob ein spezfisches Feature zur Verfügung steht


Oftmals ist es hilfreich und sinnvoll zur Laufzeit zu prüfen ob ein bestimmtes Property oder Methode von der aktuellen Office Version angeboten wird.
Daher bietet jedes Objekt in NetOffice nun die Methode 'bool EntityIsAvailable(string name);' an. Dazu ein Beispiel:

Outlook.MailItem mailItem = outlookApplication.CreateItem(OlItemType.olMailItem) as Outlook.MailItem;

// BodyFormat is not available in Outlook 2000, we check at runtime the property is available 
if(mailItem.EntityIsAvailable("BodyFormat")) 
    mailItem.BodyFormat = OlBodyFormat.olFormatPlain; 
mailItem.Body = "dont type google into google."; 
mailItem.Subject = "Hello there"; 
mailItem.Display(); 
mailItem.Close(OlInspectorClose.olDiscard);

Enumeratoren für Listen ohne nativen Enumerator Support

Einige Auflistungstypen in Office, insbesondere in Outlook verfügen über ein Default Item(in .NET bekannt als this indexer) sowie einen Count,
jedoch nicht über einen Enumerator der ein einfaches foreach ermöglicht. In den von Microsoft seperat breit gestellten Primary Interop Assemblies wurden diese Enumeratoren daher manuell ergänzt. NetOffice tut das jetzt auch. Eine Liste welche Objekte dies betrifft findet sich hier: Issue #16739


Integrierte Debug Console

Die Debug Console enthält eine bewusst simpel gehaltene Log-Funktion, sie zeichnet automatisch alle COMExceptions auf die bei der Interaktion mit Office auftreten. Ich erhoffe mir dadurch einen schnelleren und besseren Support im NetOffice Discussion Board. Wer von Office eine Exception bekommt und dazu eine Frage stellen möchte, fügt den Inhalt der Debug Console seinem Posting an, so kann Ihm oder Ihr schneller geholfen werden.


Verbesserter Beispielcode


Der Beispielcode wurde hinsichtlich der neuen Features überarbeitet, dazu gibt es 2 neue Beispiele und ein 1 neues Tutorial für die Nutzung von EntityIsAvailable und der Debug Console.


Developer Toolbox 0.9


Die Developer Toolbox hat nun technisch und optisch ihren finalen Stand erreicht.
Da NetOffice 1.3 neue Funktionsüberladungen und zusätzliche Enumeratoren mitbringt, ist ein Update der Developer Toolbox auf Version 0.9 erforderlich wenn man die Office Compatibility Komponente für die Code-Analyse nutzt.

 

Last edited Nov 13, 2011 at 5:34 PM by SebastianDotNet, version 4

Comments

No comments yet.