Freitag, November 10, 2006

OFF308 Development Model for Customizing the new Office Ribbon User Interface (UI)

Jaser Elmorsy , Max Hauser
Abstract:
The new UI introduced with 2007 Microsoft Office system codenamed 'Ribbon' is fully customizable through a new, declarative programming model using XML. This session dives into details of this mark-up language and describes how the Ribbon interacts with DLL-based code of Add-Ins developed in C# or VB.NET (or even VB6). It even shows you a couple of real live applications for Office 2007 clients. Also you will learn about the use cases and guidelines for customizing the Ribbon bar and when to use Custom Task Panes for customizing the Office UI instead.



Die Converence neigt sich langsam dem Ende zu, Irgendwie hat es auch keine Sessions mehr, welche neu oder interessant sind für mich. Ich habe mich für diese Session entschieden, weil wir hier, wenn wir dann mal Office System 2007 einsetzen (Client Side) , dann könnten wir doch auch im Ribbon gewisse RTC Spezifische Sachen machen (Vorlagen ? ;-) )

Zuerst erfolgt eine Erklärung, was das Ribbon ist und welche Controls es auf dem Ribbon gibt. Ich möchte jetzt nicht alle aufzählen, ich verzichte auch auf Screenshots, weil wer sich für das Ribbon interessiert, kennt es entweder schon, oder geht auf mein Office Blog.

Das erste was gezeigt wird, ist ein Custzom Tab im Ribbon auf Dokumenten Basis. Das heisst, dass im Ribbon ein zusätzlicher Tab erscheint, immer wenn ich genau das eine Dokument öffne. Macht sinn für Templates.

Nun wird im Studio (Visual Studio 2005 R2 (RTM vor 3 Tagen ) !!) ein Custom Ribbon gebaut. Dies ist als Project Type im neuen Studio enthalten.

Es folgt nun ein from scratch geführte demo, wo Methode um Methode erstellt wird. Es geht ein wenig schnell, wenn ich alle jetzt beschreiben und Dokumentieren möchte. Die Samples sind aber auf MSDN verfügbat. Was jetzt gebaut wurde, ist ein Control, welches eine Image suche darstellt. Ich habe eine kleine Search box, gebe den Namen der Company ein, von der ich ein Logo will. Ich gebe Microsoft ein, sehe eine Auswahl (Also PopUp) der Images, welche auf der Yahoo Bilder Suche(via WebService) gefunden wurde. Wenn ich nun das Logo anklicke, wird es an der aktuellen Stelle im Dokument eingefügt. Es werden nun noch cool looking ToolTips etc. hinzugefügt.

Das ganze Ribbon kann komplett selbst geschrieben werden. Wenn ich ein Control definitiv nicht im Ribbon haben will, dann muss ich from scratch starten, ein Eigenen Ribbon bauen, und alle Controls, welche ich haben will, wieder hinzufügen (Execpt dem, welches ich nicht haben will) .

Nun geht es um die Customization der QAT. Dies wird definitiv nicht empfohlen, da es das einzige Control ist, welches der User Steuern kann.

Nun ist das Thema Contextual Tabs. Dies kann nicht programmatisch geschehen, sondern man kann die bestehenden verwenden für die Eigenen Controls.

Nun geht es um Shared Add-Ins. Dies geschieht Wizard geseuert, zumindest der erste Schritt. Danach kann ich meine Methoden implementieren. Als Beispiel nehmen sie die OnPrint Methode. Sie überschreiben die Methode, so dass immer wenn ein "OnPrint" Event gefeuert wird, erscheint nun eine MsgBox, wo darauf hingewiesen wird. Dass es sich um "Confidential" Content handelt, willst du den wirklich drucken ? Wenn ich nein klicke geschieht nichts, wenn ja, wird die normale OnPrint WinForm aufgerufen. Witzig ist, das dies nun für alle MS Applikationen funktioniert. Witzig ist, dass es für Acces nicht funkioniert. Dazu muss ich ein eigenen UI machen, da es für Access andere ID's gibt. Ist nicht ein Problem und mit einem Switch Statement schnell gemacht… aber lustig, dass Access immer noch nicht "Office" ist. Outlook ist auch noch eine Ausnahme. Weil in Outlook gibt es nur in den sog. Inpsectors das Ribbon. In Outlookk existieren 19 Ribbons ! .
Es folgt nun ein Beispiel, wie sie einControl machen, mit welchem ich in den Kontakten für die Business Cards verschiedene Templates verwenden kann.

Es geht jetzt noch um die bestehenden Add-Ins, und wie man diese übernehmen kann. Die meisten sollten funktionieren, man müsse es ausprobieren...

Keine Kommentare: