Donnerstag, Juli 07, 2005

DEV341 What's New in the Visual C# 2005 IDE


Juval Lowy

Neun sind die Property "Tab" viewed. Die neue IDE buildet immer Code für das 2.0 Framweork.Das Formatieren des Codes kann automatisiert werden und wird einmal pro sprache definiert. Nicht jedesmal einrücken und umformatieren, einmal einstellen sollte genügen. Auch die Naming Conventions und so weiter können global definiert werden. Es kann ein checker laufen gelassen werden, der dann anhand einer Art Tasklist die Fehlerhaften Namings etc. zeigt. Es gibt einen Settings Editor, welcher die Einstellungen um App.Config speichert. Die Einstellungen könnn Importier und exportiert werden. So kann für die ganze Firma einmal definiert werden, wie die Einstellungen sind, das Naming, wie editiert wird...etc, Natürlich lassen sich diese Einstellungen auch auf dem Foundation Server legen. Im Studio kam früher im die "Start" HTML Page. Neu kann pro project eine Start Seite definiert werden. (Zum Beispiel das Projekt Portal, Google oder was immer) .
Er zeigt, das die Bedienung verbesset wurde. Wenn ich zum Beispiel 1000 tabs offen habe, und nur noch eines möchte, musste ich mühsam alle anderen schliessen. Neu klickt man auf das Tab was man noch will und klickt, close all but this. Oder ich kann auf das Tab klicken und sagen "open the location folder". So ist gleich der explorer offen mit den Files. Wenn ich früher was finden wollte, machti ich "Find in Files". Neu kann ich auf ein Object klicke, kann ich rechte Maustaste macheun und sagen, Show all References.

Cool, es kommen wirklich nur die Referenzierten, nicht auch noch jene die gleich heissen etc. Ich muss auch nicht mehr sagen, go to reference, go to reference go to reference. Ich kann einach alles auf einmal anzeigen. Scheint wirklich nützlich zu sein.
Wie schaue ich heute ein Array an ? Meistens doch wie "Add watch" or "Quick Watch". Neu einfach das Array markiern und IntelliSense zeigt mir die Werte gleich für alle Werte. Dies funktioniere wirklich mit allem.Genau so geht es auch mit einem DataSet. Intellisense, ich kann mich durchklicken, bis ich beim Attribute oder der Variable bin, dess Wert ich wissem will. Wenn ich über dem DataSet bin mit der Maus, kommt eine kleine Lupe, die ich anklicken kann . Klicke ich auf diese, geht ein Fenster auf wo ich das gesamte DataSet sehe mit allen Rows und Tables.Natülich mit den aktuellen Werten. Ich kann dieses Fenster offen lassen während die Applikation weiterläuft.Die Wertr ind der DataSet ansicht ändern dann auch bzw. sind dynamisch. Sehr cool zum Debuggen. Sieht sehr intuitiv aus !
Eigene Visualizer sollen sehr schnell und einfach zu erstellen sein. "Peace of cake" .... Als demo zeigt er einen Image Visualizer...er klickt auf das Bitmap Object und die Lupe und schon wird beim Debuggen das wirkliche JPG oder BMP oder was auch immer zeigen. Als nächstes zeigt man einen Visualizer für Audio Datein und Video Dateien. WOW !

Neu ist auch das Change Tracking. Wenn ich wärend dem Debuggen Code änder oder hinzufüge, ist dieser Gelb. Will heissen, Never compiled @ this moment. Es gibt auch Rot und Blau und Grün ... aber ich mag nicht alle Bedeutungen aufschreiben.
Beim Debuggen kommt z.b die Form viel schneller hoch als früher. Es muss nicht mer die CLR gestartet werden, code compiliert werden etc. Neu läuft der VS Host. Dieser Host kann man als Assemblie auch sonst Benutzen.

Nun geht es um Code Refactoring. Was ist Refactoring ? Refactoring means, das mann die Code-Struktur ändert ohne zu ändern, was der Code tut. Neu kann ich zum Beispiel auf Form1 klickn, wähle Refactoring, Rename und gib der Form einen neuen Namen. Überall wo die Form1 benötigt wurde, wird dies automatisch angepasst. Dies für ALLE Projekte innerhalb der geöffneten Solution .
Nun geht es um das Remaining. Ich mache es mir einfacher und kopiere die Argumente von der TechEd Website:

Intelligent renaming
Unlike search-and-replace
Namespaces, types, variables, methods, properties, parameters
Including overloaded methods
Available from the menu and the context menu
Can select occurrences to exclude




Very smart finde ich die Method Extraction. Ich kann code markieren und sagen, extract Method. Die Methoden, die sich dahinter befinde, werden extrahiert und können so "umgebaut" werden. Dies geht natürlich auch mit Methods, die "ausserhalb" liegen. Dies Funktioniert auch mit Interface. -> Kein Markieren, kopieren, einfügen mehr. Einfach extract.

Am Schluss kommt Juwal wieder einmal auf die Code Snippets zu sprechen. Ich sage wiedermal, weil ich dies schon in Barcelona öfters gehört habe. Die Funktion bzw. die Verwendung hat sich nicht verändert, ist jedoch intuitiver geworden. Ich kann das schlecht nachvollziehen, weil ich nie mit den Code Snippets gearbeitet habe...


So, das wars vom Donnerstag, jetzt gehts zum Club 7 (7.7). Die diesjährige TechEd Party steht unter dem Motto der 70's ... Ich werde sicherlich auch davon noch berichten.

Key Note 002 Future of Software



David Vaskevitch, Microsoft CTO (Chief Technical Officer) (and Senior Vice President)
... will share his ideas on how computing and software will evolve over the next decade impacting the way business is done and bringing computing to the very center of our


Er erzählte den geschichtlichen Ablauf..und wie sehr sich die IT in den Letzten Jahren gewandelt hat...Zuerst erzählt er von sich und das er 1966 das erste Programm geschrieben hätte.

Danach kommt die Überleitung mit der geschichte von M$. 1975 hatte M$ die Vision:

"A Computer for every home and desk"

(1974 hatten unter 30% der Büros einen Computer. ) Heute haben in den USA60 % einen Computer zuhause, in Europa 30%. (Indien ist unter 2%;Russland unter 5%)
Er erklärt, das dies noch extrem zulegen kann, so wie der mobile (handy) Markt in den letzten Jahren. Er erklärt, das die Bedürnisse des Menschen sich nicht ändern, sondern die Mittel mit denen er sie "befriedigt".
Computer haben einen riesen Wandel durchgemacht, heute in 2005 ist alles ein Computer, Handy, Tv, etc. Wenn man die Autoindustrie anschaue, dann sei die Computerindustrie heute da, wo die Autoindustrie in den frühen 30 Jahren war. Heute baue man Autos, bei denen ein Service Intervall von 80'000 km normal sei.
Danach die Vision 2005 von M$:

"Bringing Computers and People together" .

Danach erzählte er von seinen Dreams:
Redefining Personal Entertainment. ( Es braucht selbstinstallierende PC, Booten ohne Zeit, "unwiderstehliche Geräte" (wie ipod oder some phones)
Your Life:Beiing in control ( Wer alles braucht heute noch an einer Sitzung einen block... wer glaubt das ein tablet alles tun kann was ein block kann... )
Achievieng The Digital nervous System.
The new world of work:

Unified communication
Optimizing supply chains
Team collaboration
Finding the right information
Spotting trends and getting insight
Engaging in business process
Improving Customer interaction
Personal productivity


Das ganze nennt er dann Rewired Economy

The Rewired Economy
Will create more winners and losers than ever
Permanently change the expectations of consumers (self service)
Permanently change the economics of most businesses (integrated partners)
Truly move computers closer to the center of our lives – at home and at work


Rewiring The Implications
Nobody is there today
Everybody will (have to) get there
Requirement: deeper and broader process automation and integration
First time: integrated automation has major bottom line benefits



Grundsätzlich ginge es darum, das niemand genau sagen kann, wie die IT in den nächsten 30 Jahren aussehen wird. Er zeigte eine Slide aus dem Jahre 1998, die er damals an einer PDC zeigte. Diese Art Roadmap der Software sei auch heute noch gültig und Microsoft is "on the way" Das meiste sei schon mit dem .net Framework abgedeckt worden, zusätzliches komme jetzt mit der Version 2.0 und dann mit Indigo sei dies dann vollständig. Eins war klar, Microsoft hat noch Visionen und Ziele...
Er ging noch kurz auf WinFS ein, sagte das es nun wirklich nicht in Longhorn sein werde, aber irgendwann werde es nachgereicht. WinFS sei auf dem Weg und werde ganz sicher kommen, gute Dinge bräuchten eben ihre Zeit...
Grundaussage, was ein Pc können muss in Zukunft und so auch deren Software.

Self installing
Self healing
Keine Bootzeiten
...und die Geräte müssen den "must have" Faktor bekommen.
Eine Interressante KeyNote , sehr visionär und manchmal (für mich) nicht ganz so nachvollziebar...Aber er sprach ja auch von den nächsten 30 Jahren.

DEV461 Microsoft Visual Studio 2005 Team System: Advanced Project Management and Reporting


Eric Lee

...und noch eine Session mit Eric über Team System. Diesemal über das Project Management and Reporting, wie der Titel bereits sagt... ich hatte wirklich die qual der wahl, weil jetzt im Moment laufen diese Sessions:

CTS448 Optimizing Scalability, Performance and Availability with Systems Built on the .NET Framework
DEV340 Microsoft Visual C#: Introducing C# 2.0
SEC390 Best Practices for a Secure PKI Deployment
WCD323 Windows Forms: How to build Windows Forms Applications Today That Will Interoperate Well with "Avalon"
WEB350 Hacked! How Evildoers Attack ASP.NET Web Sites (and What You Can Do About It)


hmm, und da ich Erics Session zuvor sehr gut fand, und ich der Meinung bin, das wir um das TeamSystem bei uns nicht herumkommen werden... habe ich mich für diese Session entschieden.Eric erzählt wie immer sehr detailiert aus seinem Alltag, und was das die Bewegründe für gewisse Features waren. Er führt auf, das heute immernoch nur 30 % aller Software Projekte "succesfull" sind. Alle anderen scheitern oder sind nicht zufriedenstellend. Die Frage stellte sich M$ nun, wie kann man mit einem Tool diesen Prozentsatz erhöhen. Interressant fand ich die Vorstellung der Faktoren, welche ein Projekt erfolgreich machen:

Danach holt er ein wenig aus und erzählt, wer alles in ein Software Projekt Team gehört und weshalb. Ich bin ja parallel mich am vorbereiten auf die Prüfung "Analyzing Requierments for .net Enterprise Application", was nichts anderes ist, als das MSF etwas erweitert. Deshalb kommen mir die Folien und Argumente vermutlich sehr bekannt vor. Ist doch Team System auf die Umetzung der Prozesse aus dem MSF 4.0 ausgelegt....
Nun folgt eine Demo, wo man den PRogress des Projektes sehen kann....es handelt sich um Reports, Reports, Reports. Einen Menge von Reports werde im Final mit ausglefiert. Es lassen sich aber mit einer Query-Script Language "easy" eigene Reports erstellen. Leider habe ich den Namen der Script Sprache nicht verstanden...
Danach Öffnet er als Projektleiter MS Project und sagt im Add-In Team System das er das Software Project xxx sehen will...Wir haben nun einen "normalen" Projektplan in Project mit den Bugs welche gefunden wurden und bis wann sie behoben sein sollten etc. Der Projektleiter erfasst nun im Project einen neuen Milestone, gibt an wer diesen zu erledigen hat... Im VSTS hat der Developer nun diese Task erhalten. Er gibt in den Properties nun an, das er mehr als die 200 Stunden benötige (Hatte der Projektleiter angegeben im Project) gibt an 400 Stunden und das er bereits 90 verbraucht habe. Wenn der ProjektLeiter nun im Project "Refresh" macht, ist die PRojekt Überischt bereits angepasst. Ob es sich um eine Task handelt oder sonst was, spielt keine Rolle. M$ spricht immer von Work Items. Der Fluss, also der Workflow, lässt sich via XML File steuern....

Er spielte dann noch ziemlich lange mit den Files herum, um zu zeigen, was sich da so alles verändern und erweitern lässt. Ich finde wichtig, dass man was ändern kann, was alles kann ich mir sowieso nicht merken bis ich es dann mal müsste.

CTS467 "Indigo" Under the Hood



Clemens Vasters, Steve Swartz

Under the hood, "Indigo" has two layers: a messaging framework layer and a programming model layer. The "Indigo" messaging framework layer API supports the exchange of XML messages using an extensible set of transports, encoders, and protocols. While at minimum the architecture only requires a commitment to HTTP and XML, the implementation features support for SOAP, WSDL, UDDI, and the WS-* protocols over TCP, HTTP, Windows named pipes, and MSMQ. The "Indigo" programming model layer sits on top of the messaging layer. It pulls messages out of the lower layers, pushes them through a rich extensible pipeline, and then applies them to the application code in the form of a method call. The entire "Indigo" programming model is built on top of the extensibility points in the lower layers. This session will explain the messaging framework and programming model layers in the context of a variety of extensions.

Zuerst ist der Fokus der Messaging Layer.
Clemens erklärt, das der programmatische zugriff auf indigo nur auf .net ausgelegt sein wird. Er erklärt, das ein Indigo Message eine CLR Representation eines SOAP INfoset .sei. Der Message Transport basiert auf "Channels" . Channels sind Stacks und Channels haben Factorys. Und dann gibt es die Transport Channels...TCPIP, Named Pipes ..alles was man sich wünscht. Es wird nun ausführlich erklärt, wie das Messaging funktioniert. Sehr interresant, doch würde ich gerne ab und zu sagen...ääh, halt, wieso ist das so...oder, könnten sie dies für mich versuchen, nochmals anders zu erklären...;-) Nun folgt eine Demo, wo das ganze codiert wird. Interressant, die gesamten Indigo geschichten sind Assemblies, und die Gesamten Channels etc. lassen sich via namespace einbinden.

In der Demo wird gezeigt, wie schnell und einfach sich Channels bilden lassen und zwischen 2 Progis Messages austauschen, Interressant,bis jedoch dies in die aktuelle Programmierung einfliesst, wird es sicherlich noche eine Weile dauern. (Zumindest bei uns).
Es wird nun erklärt, das die gesamte IIS 7.0(kommt mit Langnase)Kommunikation via diese Channels verläuft. Eine sehr sehr theoretische Session. Ich glaub ich hab verstanden, was sie vermitteln wollten. Weiss nur nicht genau, wie ich dies jetzt wiedergeben kann....

New Impressions






MGT-IL04 Deploying OS images with Systems Management Server (SMS) 2003

Wally Mead, Martin Dey

Nachdem ich gestern von der SMS Präsentation enttäuscht war, habe ich mir diese 1. Session heute morgen geschenkt. Ich habe mir die Slides vorher angeschaut, und ich kann dazu genau dasselbe sagen wie gestern. Nichts neues, bzw. nichts was wir nicht schon wissen oder "gesteckt" bekommen haben. Andrew Read hat uns diese Infos eigentlich alle schon gegeben.
So hatte ich jetzt zeit, das Blog einwenig auf Vordermann zu bringen.

Es ist ein bischen verhext. Die ersten Session haben mich nicht wirklich interressiert (ausser die SMS) . Nun aber (10.00) sind gleich wieder 4 Stück die ich sehen möchte...hmmm. Indigo, Windows 2003 Server R2,Avalon ... .net 2.0 ... Denke ich werde die Indigo besuchen, schon deshalb, weil ich es gestern nicht ganz verstanden hab. Ich geb mir noch ne chance... ;-)