Mittwoch, Juli 06, 2005

...SORRY...

...eigentlich habe ich noch screenshots von den einzelnen sessions...aber momentan funktioniert das bloggen von photos irgendwie nicht. Ich kämpfe auch mit dem WLAN, ständig Unterbruch, Datenverlust. Ist sehr mühsam...ich werde das "nachposten", sobald es wieder funktioniert.....


... eine nacht später gehts ja wieder...heute morgen hat es auffällig wenie geeks hier... sind wohl alle am auschlafen, gesterm waren ja die Country Partys...und heute ist die grosse TechEd Party. Ich für meinen Teil bin ins Hotel zurück nach der C++ Session. War müde, und musste ja noch ein wenig Berichte schreiben für Euch ;-) Zudem habe ich mir gestern den Fuss "verknackst", jetzt ist er einwenig geschwollen und das rumlaufen macht nicht mehr so viel spass. Also suche ich mir die Sessions, welche nahe beieinander liegen ;-)

..nochmals ein Edit am 8.7 ....

: Image-uploading was briefly down due to a bug, which has now been fixed.

erklärt nun doch alles..und ich dachte ich sei der DOEDL

DEV331 Visual C++ and .NET: Great Performance, Full Access and Easy Migration of Existing Code


Ronald Laeremans


Nun noch die Session, auf die ich heute den ganzen Tag gewartet habe,. Hoffe, das ich noch aufnahmefähig bin... die Session begann um 19.30 ...
In VS 205 C++ ist eine .net first-class language. (Juhu)
Mit dem neuen VS kommt für C++ auch eine neue Syntax, welche besser lesbar sein soll und "natürlicher" sei. Sie soll so ausgelegt sein, dass der Umstieg auf eine andere .net first class language nicht schwer sein soll. Die neue Syntax ersetzt die Managed Extensions. Es sei so nicht mehr nötig, C# oder VB.net zu lernen... Toll, das sagen Sie mir erst jetzt ;-) wenn ich das gewusst hätte....
Neu ist der volle VS Support (Designer etc.) für C++ verfügbar, genau gleich wie für die anderen Sprachen. Wichtig ist die Aussage, das der bestehende Code nicht zwingend geändert werden muss. Es ändert sich einfach nichts, will heissen, das man weiterhin mit COM etc. arbeitet. Natürlich es es dann auch nicht möglich, auf das Framwork 2.0 zuzugreifen. In C++ 2005 ist der selbe Support vorhanden wie in C#.(exakt der selbe) Auch neu ist das Verwenden der #using direktive. (und #import und #inlcude).(Analog C#)
"Managed assemblies describe themselves with metadata ,used instead of header files or type libraries"
Es gibt neue Type Categories. Dies sei zwingend gewesen für die interoperation mit den anderen Sprachen. Die Typen werden deklariert mit "spaced keywords"

class N { /*…*/ }; // native
ref class R { /*…*/ }; // CLR reference type
value class V { /*…*/ }; // CLR value type
interface class I { /*…*/ }; // CLR interface type
enum class E { /*…*/ }; // CLR enumeration type


Properties sind neu "Elegant and intuitiv"

// Visual C++ 2003

// get_Full
__property int get_Full(void)
{
return full;
}

// set_Full
__property void set_Full(int value)
{
full = value;
}



// Visual C++ 2005

property int Full
{
int get( void )
{
return full;
}
void set( int value )
{
full = value;
}
}
// Compiler generated
property int Simple;




Neu sind auch die Specifiers ..
"Can qualify override behaviour for derivation"

abstract class or function is abstract
sealed class or function cannot be a base
override function must override base version
new function is not an override of base

Neu gibt es einen Handle OPerator ^ . Dieser sei gleichzusetzten zum Pointer *.
Der C++ Destruktor "maps to the CLR Dispose". Will heissen, das man zukünftig anstelle des Destructors einfach ein xxx.Dispose() macht...

Er zeigte dann noch ein paar Code-Snippets...ehrlich gesagt wird es zukünftig relativ schwer, C# code von managed bzw. C++ 2005 Code unterscheiden kann.....

DEV364 Microsoft Visual Studio 2005 Team System: Enabling Better Software through Better Testing



Michael Leworthy

Und noch eine VS Session. Diesemal geht es ums Testen. Also die Extensions aus sicht des Testers.
Zuerst wird erklärt, das die im jetzigen Studio vorhandenen Test Tools sehr beschränkt seien... ich kenn glaub gar keines ;-)
Danach folgt sogleich eine Übersicht über das Studio (immer die selbe) und danach über die Test Funktionen.
Nun folgt eine Demo wo er im Designer eine logische Sicht auf sein Datacenter Diagramm hat. Diese beinhaltet einen WebService. Diesem Webservice gibt er ein Requirement, zwingend muss dieser auf Windows 2003 Server SP1 laufen. Diese Demo habe ich bereits gesehen, er zeigt einfach nochmals, das wenn er auf "validate deployment" klickt dies sogleich reported wird, weil in seinem Environment noch Server sind, welche nicht SP1 haben.
Danach folgt Unit Testing: Er kann mittels rechter Maustaste "create test" auswählen. Dies kann auf Methoden Ebene aber auch auf Klassen Ebene geschehen.Wieder das Beispiel mit grünem und rotem code welcher covered wurde. Neu ist für mich, das es auch noch blauen code gibt, dieser wurde "vermutlich" ge-covered. Interressant hier ist die Aussage, dass man, wenn man "automatic builds" verwendet, die Unit Tests wärend dem automatischen Build Process auch gleich ausführen lassen kann.
Im Team System wird von 2 verschiedenen Testers ausgegangen. Der erste Typ Tester ist selbst ein Developer, welcher Code schreibt und versteht. Der 2 ist dann wirklich eher auf das Testen ausgerichtet und macht Testkonzepte usw. ohne den Code wirklich zu kennen. Der Stand der Tests und das Reporting finden dann auf dem Foundation Server statt. So kann jederzeit ein Test mit den selben Bedingungen wiederholt werden... oder abgebrochen und von dort wo der Test war weitergefahren werden etc. Im Studio gibt es eine neue View, wo die Tests ersichtlich sind. So kann zum Beispiel auch der Architekt schauen, welche Tests wurden gemacht und auch ausgeführt. Oder er kann bereits in der DesignPhase Test mit dem Wizard definieren, so dass diese am Schluss beim Tester auch zwingend gemacht werden müssen. Im Test Wizard kann aus verschiedenen Templates ausgewählt werden.Michael nahm eine Word Vorlage (Natürlich kann man hier eigene Vorlagen machen) füllte darin die TestBedingungen aus. IHMO ist dieses Template aber nur Informativ, d.h. der Tester hat dann einfach das Word Dokument, wo er am Ende des Tests gefragt wird, ob der Test erfolgreich war. Diese Informationen kommen dann wieder auf den Foundation Server.
Er erklärt uns dann, das man aus allen Sichten des Studios Tests erstellen kann. Nun zeigt er in einer Demo einen anderen Weg um ein Test zu erstellen. Nachdem er gesagt hat "New Test" macht er einen neuen Web Test. Er ruft seine Web Applikation auf, klickt sich durch, bestellt etwas etc. All dies wird vom Studio aufgezeichnet ( Wie bei Winnrunner) . Nun kann er dies speichern, und diesen Test immer wieder laufen lassen. Coole Sache. Im Beispiel hatte er 3 Baseball Caps gekauft. Nun macht es aber keinen Sinn, diesen Test 1000 mal laufen zu lassen, und jedes Mal 3 Basebal Caps zu kaufen. Hier lassen sich jetzt die Items, welche gekauft werden können, mit einer DB verbinden, so dass random immer was anderes gekauft wird. Zudem lässt sich dieser Test in mehren Instanzen starten, so dass man auch die Menge der User , welche gleichzeitig diese WebApplikation benutzen simulieren. Nun wird darauf eingegangen, wie und was alles definiert werden kann. Es ist sehr Umfangreich, und schon fast selbstverständlich lassen sich auch Scripts oder eigene Assemblies einbinden. So kann zum Beispiel auch der selbe Test für verschiedenen Browswer gleichzeitig gestartet werden. (Firefox, MobileIE, Netscape etc. etc. )

Nun wird noch das schöne bunte Reporting gezeigt...Natürlich kann auch aufgezeigt werden, (gerade bei automatischen Builds) welche Fortschritte und Verbesserungen zwischen den Builds erreicht wurden.
...also mir gefällt dieser Testing Teil des neuen Studios... denke das Torsten bald auch mit dem VSTS arbeiten wird ;-)

ARC419 The Grey Area of Implementing Services Using Object-Oriented Technologies


Beat Schwegler

grey: ['grA]having an intermediate and often vaguely defined position, condition, or character

Nach seiner Vorstellung (Beat ist Schweizer, lebt aber in London) beginnt Beat, anhand von Praktischen Beispielen die Pronblematiken zu erklären. Als erstes Beispiel fragt er in die Runde, was wir glauben zu erhalten, wenn wir ein Buch "The compact Oxford English Dictionary" bestellen. Die Menge ist der Meinung, das es ein kleines Buch sein wird, eben "compact" .Das Buch hat aber über 2500 Seiten... Compact heisst hier, das 4 Seiten auf einer untergebracht sind... Die Key-Message ist: "you’re not always get what you expect to get" .
Das Beispiel aus der Praxis:Nur weil man vom selben Object Instanziert, heisst dies nicht, das es auch die gleichen Objekte sind. Wichtig ist nicht das Object, sondern das xml shema.
Das 2. Beispiel ist eine Geschichte über "Swiss Chalets" in Portugal. Er erklärt, dass viele Portugiesen auf Schweizern Baustellen arbeiten. Wenn diese nun das erlernte mit nach Portugal nehmen würden, und die selben Konzepte brauchen würden, würden sie am Strand "Swiss chalets" erstellen. Dies macht natürlich keinen Sinn . Key Aussage dieses Beispieles: "certain concepts are useless in another context"

Beim dritten Beispiel erzählt er von einem Aufenthalt in Kiew, wo er plötzlich erwachte und sah, das Rauch ins Zimmer strömte. Er geriet in Panik, rief die Reception an meldete Feuer. Nach einer weile merkte er, das der Rauch weniger wurde. Er ging nach unten, erkundete sich was los war. Es wurde ihm erklärt, das es sich um einen Test gehandelt habe, und man habe vergessen die Gäste zu informieren.... Key Aussage: "dont change options without inform the consumer of the code"

Danach wird ausgiebig über Contracts erzählt und wie wichtig das Mapping dieser ist. Habs ehrlichgesagt nicht ganz verstanden ...
Service Orienteted Architecture.... Indigo arbeitet mit Contracts...das werde ich dann mal nachlesen müssen...
Das 4. Beispiel handelte von einer Reise nach Moskau, der Flug verpätet sich und muss in Moskau durchstarten .Schlussendlich muss er in St.Petersburg landen und danach mit dem Zug nach Moskau Reisen. Key-Aussage: "You will hit by changes when you don't won't that."Dies dient als Einleitung zum Versioning.Denke wir sind hier auf dem richtigen weg...
Danach erzählte er die Unterschiede vom "OO Aproach" und dem "SO Aproach" . Hab verstandenm das es mit dem ableiten zu tun hat... weiss aber noch nicht, wie ich das niederschreiben kann, so dass man versteht, was ich sagen will... ;-)

DEV362 Microsoft Visual Studio 2005 Team System: Building Robust and Reliable Software


Eric Lee


Die Session beginnt wie die letzten VS Session. Eine Übersicht und Erklärung, wieso es verschiedene Studios gibt und wie VS aufgebaut ist. (Siehe Bild bei der vorangenegnen Sessions)
Hingegen ist der Fokus dieser Session nun der Developer. (und ein kleiner Teil der des Testers)
Es geht ja darum, robuste und sichere Software zu schreiben. Eric zeigt einen Geschichltichen Hintergrund der bekanntesten Software "Failures" und Viruses etc. Danach erklärt er zuerst, was eigentlich ein Buffer Overflow ist und wie diese ausgenutzt werdenkönnen. Andere "Pitfalls" sind Memory Leaks und SQL Injection.Memory Leaks sind mit .net eigentlich Vergangeheit. Was aber häufig vorkommt im .net sind Resource Leaks (z.b. File Handle nicht freigegeben).
In der Demo wird gezeigt, wie man Code Analysis macht...danach zeigt er das Beispiel einer SQL Injection. Er hat eine Webseite, wo man nach Produkten suchen kann. Als such String gibt er nun ein % ein, und eine ASP Exception kommt. Nun nimmt er die Fehelermeldung und zeigt, wie man hier bereits Informationen bekommt. Nun gibt er im Such - String eine komplette SQL Query ein wo er ein UNION macht auf den Customer Table und Custermer Details Table. Nun ist er in der Lage, nur durch die Eingabe des Querys anstelle des Suchbegriffs, die Kunden dieser Website inkl. den Credit Card Information anzuzeigen. Im nächsten Schritt macht er sogar einen Update und fügt einen Customer eine neue Credit Card hinzu. Es gäbe 1000'de von Websites, welche so "verwundbar" sind. Danach folgt natürlich die Anweisung bzw. Demo wie man den Code sicher macht...und wie immer ist dies ja sooo einfach ;-)
Als Beispiel für einen Fatalen Buffer Overflow wird der Ariane 5 Absturz von 1996 genannt. Danach zeigt Eric wieder einmal, wie man die Unit Tests generiert. Ist schon cool...Code Coverage markiert wieder alles grün im Code, was durch Unit Tests erfolgreich abgedeckt wird und getestet wurde. Alles was rot ist, muss nun genau angeschaut werden. Weshalb wurde es nicht getestet, bzw. weshalb war der Test nicht erfolgreich.
Nun kommt er nochmals auf den Performance Wizard zu sprechen. Zeigt, das Unmengen von Daten gesammelt und ausgewertet werden können. Dazu kommt er auch auf die Midlife Crysis zu sprechen. Ja, die .net Memory Midlife Crysis. Das.Net Framework hat 3 "Speicherarten", frisch alloziertes, aktuller und benutzter Speicher und einen Bereich der alten Speicher beinhaltet. Dazwischen wird das Memory dynamisch hin und her geschoben. Dabei ist der aktuelle Teil der Resourcen der Intensivste. Nun kann man mit dem Performance Wizard bestimmen, wie lange es dauert, bis etwas vom aktuelllen Speicher in den alten Speicher geschoben wird.
Hauptproblem bei vielen .net Aplikationn, welche Performance Schwierigkeiten haben sei, das zu viel und zu lang aktuller Speicher benutzt wird. Deshalb .net Memory Midlife Crysis....

Picture Break ;-)





CTS366 Implementing "Indigo" Endpoints – Secure, Reliable, Transacted Messaging


Ingo Rammer, Steve Swartz

Leider hatte ich die 2 vorangegangen Session über INDIGO nicht besuchen können, deshalb war das Verständnis relativ schwierig. Hauptpunkt des Speak war das Indigo Security Model. Es wurden die verschienden Security Konzepte vorgestellt.
INDIGO soll by default secure sein ;-)


Indigo security does three things

Secures message exchange between entities (Entity == person, company, software, …)

Secures access to resources by entities (Resource == file, service, operation, …)

Records requests to resources by entities (Indigo uses credentials to enable security )

Es werden die Connection Security, die Message Securtiy vorgestellt. Im ersten Teil geht es darum, wie und warum Messaging mit Indigo secure ist.
Im zweiten Teil ging es um Queuing und Transactions.
Nun wir eine Demo gezeigt. Die Kommunikation und Messages sind per default secure. Das heisst, die Securtiy wird per Bindings gesteurt. Ohne etwas zu machem, ist das BasicSecurity Binding aktiv. Wenn man nun via HTTP was sended(Clear Text), so ist (bis auf den Inhalt der Message) alles verschlüsselt.(Authoriziation and Authentication) Nun wird im Code noch "use Encryption" angegeben, und auch der Inhalt der Message ist verschlüsselt.
Der gesamte Vortrag war auf einem ziemlichen hohen Niveau, mir pers. fehlten die Vorkentnisse der 2 vorhergeganen Indigo Sessions.

MGT335 Best Practices: Architecting and Deploying Systems Management Server (SMS) 2003 SP1

Wally Mead

Meine erste SMS Session an dieser TechEd. Von dieser Session bin ich ein wenig entaeuscht... Wally Mead erzaehlte fuer mich nichts neues, und die slides die gezeigt wurden, kamen mir ziemlich bekannt vor. (@Kay es kam nichts, was nicht schon Andrew Read uns erzaehlte)
Lustig waren aber immer wieder die Hinweise, das man zB.das Management auf seiner Seite haben muesse, man koenne nicht einfach SMS einfuehren, wenn man nicht von oben unterstuetzt werde...oder der Hinweis, das die Verteilung der Software und auch die Pakete selbst, immer zuerst getestet werden muessten.... usw.
War alles ein wenig "Nasenwasser" ;-) bzw. habe ich mich diese Sachen doch auch schon zig mal hoeren sagen...