Marco Savini

Tech'Ed 2008: Day 3


Geposted vonn Marco Savini am 12.11.2008, 17:23

Wir gewöhnen uns an den Teched Alltag und beginnen den dritten Tag bedeutend routinierter. Die Auswahl der Veranstaltungen fällt leichter, weil man sowohl die verschiedenen Speakers, wie auch die Themenbereiche besser einordnen kann. Wie gestern werden im heutigen Blog einige besuchten Veranstaltungen hervorgeboben.

Building Asynchronous Contextual Collaboration with Exchange Web Services

David Claux, Program Manager bei Microsoft, stellt die neuen Exchange Web Services (EWS) vor, welche den Zugriff auf den Exchange Server 2007 programmatisch ermöglicht. Dies war zwar bereits vorher möglich (z.B. mit der MAPI), aber die neue Library bietet bedeutend bessere Möglichkeiten.

Möglich ist dabei der Zugriff über Web Services; dies hat allerdings die klassischen Nachteile (parameterlose Konstrukturen, vom WSDL abgeleitete Namen (z.B. MessageTypeType) oder Probleme mit Aufzählungen). Neu gibt es auch eine Managed API, welche ab Exchange Server 2007 den Zugriff auf praktisch alle Objekttypen ermöglicht (Public Folders, etc.).

Im Prinzip bedeutet das, dass man z.B. von einem .NET Programm aus einen Meeting Request absenden kann an eine bestimmte Person. Oder auch das Auslesen der Kalendereinträge (sofern freigegeben) eines Mitarbeiters oder einer Ressource.

Diese neuen Funktionalitäten ermöglichen eine Fülle von potentiellen Anwendungen; beispielsweise wäre es denkbar, vom Web aus automatisch Kalendereinträge oder Tasks zu generieren, basierend auf ener Aktion. Aufgrund der Offenlegung als Web Services bleibt diese neue Funktionalität nicht nur .NET Programmen vorenthalten; der Zugriff ist somit auch z.B. mit Ruby oder Java möglich.

Nicht möglich ist mir der neuen API Funktionalität wie z.B. das programmatische Erstellen eines Kontos. Dies ist weiterhin nur möglich mit der Administrationskonsole (oder Powershell) für die Administratoren.

Alles in allem ein sehr interessanter Beitrag, bei welchem man sich praktische Anwendungsszenarien relativ einfach vorstellen kann. Gerade Intranetlösungen können dadurch bedeutend an Wert gewinnen.



.NET Services Drilldown - Part 1

Der Microsoft Technical Evangelist Nigel Watling zeigt in diesem Beitrag einen kleinen Teil der .NET Services, welche auf der neuen Azure Cloud Plattform von Microsoft basieren. Er pickt dabei den Message Bus heraus, welcher mittels dem WCF zugreifbar ist. Dabei ist es wie bei anderen Busarchitektren möglich, Nachrichten multicast an eine Reihe von angemeldeten Benutzern zu senden, welche diese Nachrichten dann konsumieren können. Die Cloud dient dabei als Relay (Weiterleitungs-) Dienst, welcher auch versucht, wenn möglich eine direkte Verbindung zwischen Sender und Empfänger herzustellen.

Die Addressierung eines solchen neuen Dienstes sieht beispielsweise so aus: sb://servicebus.windoes.net/services/aseantic/kunde/projekt/OrderManagement/. Nötig ist für den Anbieter dabei die Registrierung auf der Azure Plattform mittels Live ID.

Die bereits in anderen Speakern ist auch Nigel Watling noch nicht klar, wie genau die Abrechnung dieser Dienste vonstatten gehen soll. Wahrscheinlich ist eine Vielzahl von möglichen Methoden möglich, z.B. ein usage-based Ansatz.

In der Präsentation wurde ein kleines Echo Programm geschrieben, welches eine beliebige Nachricht von einem Client in die Cloud geschickt wurde und Empfänger diese dann auch gleich erhalten haben.



The future of unit testing

Heute sind eine Vielzahl von Test-Frameworks auf dem Markt verfügbar. Das wohl meist genutzte und bekannteste Framework ist NUnit. NUnit wird heute von ca. 80% der Benutzer eingesetzt.

Roy Osherove beschreibt, dass es in der Zukunft neue Test Frameworks wie Pex von Microsoft geben wird. Pex bietet die Möglichkeit, dass Test-Methoden mittels Attributen auf Methoden generiert werden können. Test-Methoden werden so generiert, dass möglichst ein hoher Grad der Code-Abdeckung (Code-Coverage) gewährleistet ist. Die Logik muss nachwievor selbst überprüft werden, da Pex die Tests "nur" mit definierten Werten abfüllt und ausschliesslich prüft ob dieser Tests erfolgreich durchlaufen ist.

Das Testen von Multithreaded Applikationen ist immer eine grosse Heruasforderung. Um solche Applikationen Testen zu können gibt es spezeille Frameworks wie Chess von Microsoft oder Racer von Typemock. Für das Debuging von Multithreaded-Applikation wird Visual Studio 2010 eine Vielzahl von Tools bieten.

Bei der Entwicklung zukünftiger Applikationen wird es immer wichtiger sein, dass das Testing im Vordergrund steht. Für das werden folgende Designansätze immer mehr Gewicht erhalten:

  • S.O.L.I.D
  • Domain Drive Design
  • Design for Testablity
  • Test Driven Design
Diesen Ansätzen stehen die klassichen OO-Konzepte für die Kapselung der Daten gegenüber. Dabei wird es nicht immer möglich sein beide Bedürfnisse 100% abzudecken.

Ein weiteres Thema werden die IcO Container sein, welche Smart Factories darstellen. Mit diesen Container kann für Tests die Dependency Injection sehr einfach realisiert werden. Die folgenden Container sind heute bekannt:

  • NInject
  • Castle Windor
  • Unity von Microsoft
  • Autofac

Bis sich diese Containers durchsetzten werden, wird aber sicherlich noch einige Zeit vergehen.

Besuchte Veranstaltungen am dritten Tag

Die folgenden Veranstaltungen wurden besucht:

  • Building Asynchronous Contextual Collaboration with Microsoft Exchange Web Services von David Claux
  • The future of unit testing von Roy Osherove
  • .NET Services Drilldown - Part 1 von Nigel Watling
  • Microsoft Visual Team System - A lap around VSTS2010 von Brian Harry
  • Agile Development with Microsoft Visual Studio von Stephanie Saad
  • An in-depth look at the ADO.NET Entity Framework von Elisa Flasko
  • .NET Services Drilldown - Part 2 von Nigel Watling
  • Deep Reflection: optimization techniques and important APIs in reflection 2.0 and 3.5 von Roy Osherove
0 Kommentare | Trackback Url

Kommentare
Ihr Kommentar zum Blog-Eintrag





Feedburner
aseantic RSS Feed
Feedburner RSS Feed
Add to Favorites
Add to Delicious
aseantic @ Facebook
Add to Technorati Favorites
Bookmark and Share
Creative Commons