MSDN Briefing Visual Studio 2010 - News

by m.hsieh 28. Juni 2010 23:29

Um nach der Microsoft Architecture Forum Conference auch weiterhin am neuesten Stand der Technologie zu bleiben, entsandte die FRAISS - IT consulting & Mediendesign am verganenen Freitag, dem 25. Juni 2010, einige Mitarbeiter zum MSDN Briefing zum Thema "Visual Studio 2010 - News" nach Wien.

Im modernen Ambiente des Microsoft Innovation Centers präsentierte Max Knor, Developer Evangelist bei Microsoft Österreich, im Rahmen eines halbtägigen Vortrags die neuesten Features rund um Visual Studio 2010.

Aufgeteilt in drei Sessions, wurden anhand von allerhand live programmierten Beispielen die neuesten Wissenswertigkeiten zu den Themen Entwicklung, Databinding/Management und Presentation/Userinterfaces gezeigt.

In der ersten Session gab es eine kurze Einführung in die Neuerungen in Visual Studio 2010 selbst. Diese beinhalten ein verbessertes IntelliSense, welches von nun an nach einem "Contains"-Kriterium statt "BeginsWith" sucht, asynchrones Laden von sehr langen Listen (Beim Hinzufügen von Projektreferenzen), sowie IntelliTrace, welches eine genaue History aller Events innerhalb eines Prozedurablaufs aufschreibt, nur um einige zu nennen.
Zum Thema C# 4.0 wurde eine Annäherung der Äquivalenz zu Visual Basic erreicht, so dass nun wirklich beinahe alles in beiden Sprachen realisierbar ist. Außerdem kommt ein neuer Datentyp namens "dynamic" dazu, der es erlaubt, einen Typen erst zur Laufzeit erkennen zu lassen. Das vereinfacht unangenehme Reflection-Operationen ungemein, und lässt sich in etwa mit dem "var"-Datentyp in JavaScript vergleichen.
Der Vortragende konnte sich nicht verkneifen, die Stimmung zu heben, indem er berechtigt darauf hinwies, dass dieser Datentyp mit Vorsicht zu genießen ist, und nicht eingesetzt werden sollte, "nur damit das Programm kompiliert".
.NET 4.0 hat auch einige Neuerungen bekommen, besonders hervorstechend hierbei die Tatsache, dass .NET 4.0 eine neue CLR benutzt, und die Kompatibilität mit älteren .NET-Projekten damit zwar wahrscheinlich ist, aber nicht mehr garantiert werden kann. Um Entwickler und Benutzer vor derartigen Problemen zu schützen, hat sich Microsoft dazu entschieden, ältere .NET-Projekte von Haus aus nicht zu unterstützen. Erst wenn die Entwickler die Applikation unter .NET 4.0 getestet und für funktionierend befunden haben, können Sie die Sperre manuell aufheben.

Die zweite Session, die sich mit Datamanagement befasste, führte in das Managed Extensibility Framework ein. Hierbei handelt es sich um ein Framework, welches die Wartung eines Projekte nach einem Deploy erheblich vereinfachen soll. Der Fokus liegt hierbei auf dem Aspekt der Erweiterbarkeit.
Anhand eines Beispiels illustrierte Max Knor die Idee: Im MEF gibt es sogenannte Import- und Exportattribute. Klassen, die das Exportattribut tragen, stellen Daten zur Verfügung, während Klassen mit dem Importattribut diese exportierten Daten einbinden.
Hat man nun ein Projekt mit einigen Menüpunkten, so kann man etwa die Klasse, die die Menüpunkte aufbaut und anzeigen lässt, Menüpunkte importieren lassen. An einer anderen Stelle können diese Menüpunkte dann exportiert werden.
Implementiert man in der Exportkomponente etwa einen Filewatcher, so kann man in Echtzeit (natürlich durch Dateiänderungevents) Menüpunkte hinzufügen oder entfernen, nur indem man eine Konfigurationsdatei ändert, bzw. Menüpunktdateien anlegt/entfernt (von denen die Exportkomponente die Menüinformationen ausliest).
Zu Datamangement gehören zweifelslos auch Datenbanken, und für die hat Microsoft ADO.NET ein wenig Aufmerksamkeit geschenkt. Das wohl am gernsten gesehene neue Feature ist hier wohl die Möglichkeit, aus einem Entity Model tatsächlich die Datenbank generieren zu lassen.

In der dritten und letzten Session wurde auf die Visualisierung und Präsentation der Daten eingegangen.
Entwickler, die derzeit bereits WPF nutzen, werden erfreut sein zu hören, dass in Visual Studio 2010 der WPF-Editor (endlich) von Grund auf neu überarbeitet (selbst in WPF geschrieben) und damit erstmal tatsächlich produktiv einsetzbar ist.
Die Performance sollte nun in etwa der des Windows-Forms-Editors gleichen und das manuelle Herumdoktern in der xaml-Datei überflüssig machen.
Weiters wurde viel Wert auf den Support von Touchevents gelegt, tatsächlich nutzen selbst Microsoft Surface Applikationen in der Basis die WPF-Touchevents, die dann aber natürlich noch erweitert werden.
Es ist also direkt in Visual Studio 2010 sehr einfach möglich, Touch-Events in WPF-Applikationen zu integrieren. Außerdem wurde ein neues "Chart"-UserControl hinzugefügt, welches sehr komfortabel eine große Vielfalt an Diagrammen für beliebige Datenquellen anzeigen kann.
Schließlich wurde noch auf MVC 2 eingegangen, welches ebenfalls mit Visual Studio 2010 und .NET 4.0 mitgeliefert wird. Hierbei handelt es sich um eine Alternative zu den typischen Windows Forms Darstellungsmöglichkeiten, die eine elegante Trennung zwischen Modell, Controller und View ermöglicht.
Besonders sinnvoll ist diese Trennung für Unit Tests, denn man kann natürlich die meist sehr kritischen Controller automatisch testen, ohne in irgendeiner Form mit der Visualisierung in Berührung zu kommen.

Damit war der Halbtag auch leider schon wieder zu Ende, es war leicht ersichtlich, dass durch den Zeitdruck immer nur an der Oberfläche der Materie gekratzt werden konnte.
Nichtsdestotrotz war das Event ein voller Erfolg und hat eben genau das getan, was er versprochen hatte, nämlich einen Überblick über die Neuerungen zu geben, auf die man sich in Visual Studio 2010, C# 4.0 und dem .NET-Framework der Version 4.0 freuen darf.

Wir danken dem Vortragenden Max Knor für seinen Enthusiasmus und Energie, die er in den für ihn zweifelsohne anstrengenden viereinhalb Stunden für uns an den Tag legte, und freuen uns bereits auf das nächste MSDN Briefing!

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

Tags: , , , , , , , , , ,

Veranstaltung

Erste Architecture Forum Conference bei Microsoft Österreich

by m.hsieh 28. Juni 2010 00:30

Am 17. Juni 2010 fand in Wien die erste Microsoft Architect Forum Conference in der Geschichte von Microsoft Österreich statt ... und die Mitarbeiter der FRAISS - IT Consulting & Mediendesign konnten natürlich nicht davon abgehalten werden, diesem historischen Event beizuwohnen!

Informationen zum Event kann man hier nachlesen,
in Kurzform sei nur gesagt, dass das Event ein Sammelpunkt namenhafter Architekten aus aller Welt war, die bereitwillig ihre Expertise mit den Teilnehmern des Events geteilt haben. Organisiert bzw. verantwortlich für das Event war Microsoft Developer Evangelist und Software Architekt Mario Spuszta.

In typischer Manier der Microsoft Events war der Tag, der morgens um 09:10 Uhr durch eine Key Note von Ulrich Homarin eröffnet wurde, in mehrere Tracks aufgeteilt, die sich je mit einer bestimmten Facette des Software-Architektentums beschäftigten.
Diese Tracks waren im Groben "Cloud Computing", "Parallel Programming" und "Architecture Design/Strategies".

Die ersten zwei Sessions, die von unseren Mitarbeitern besucht wurden, handelten von grundlegenden Strategien und Designkonzepten erfolgreicher Softwarearchitektur. Hier ging es vor allem um grundlegende theoretische Prinzipien der Erweiterbarkeit, Skalierbarkeit und Security-spezifischen Eigenschaften, die man beim Entwerfen einer Architektur beachten sollte.

Etwas praktischer ging es dann in der nächsten Session zu, in der Christian Weyer mit viel Enthusiasmus die Windows Azure AppFabric vorstellte, mit der es möglich ist, Service-Endpoints in die Cloud auszulagern.
Eindrucksvoll wurde dies demonstriert durch Beispiele, in denen zum Beispiel die Zuhörer über eine Schnittstelle in der Cloud ad hoc Nachrichten auf den Laptop des Vortragenden senden konnten.
Der Höhepunkt der Demonstration war dann die Vorführung einer einfachen Applikation, die einen einfachen Zähler in der Cloud zur Verfügung stellt, welche auf einem iPad über die Cloud angezeigt werden konnte.
Die Möglichkeiten, die sich durch die Fähigkeit ergeben, Applications über die Cloud komfortabel bereitzustellen,  versprechen eine spannende Zukunft für neuartige, Cloud-basierende Produkte, in deren Basistechnologie die FRAISS - IT Consulting & Mediendesign nun bereits sehr früh Einblick erhalten konnte.

Die folgende Session schwenkte vom Cloud-Computing Track wieder zurück zum Architekturtrack und befasste sich mit Behaviour-Driven Development. Hierbei handelt es sich um eine Weiterentwicklung des Test-Driven Developments, zusammengeführt mit Domain Driven Design.
Einer der Schwerpunkte dieses Paradigmas sind einige gemeinsame Terminologien zwischen den verschiedenen Stakeholdern eines Projekts, um die berüchtigten Missverständnisse zwischen den "Business"-Sprechenden und dem "Technical Staff" möglichst zu minimieren.
Außerdem wird ein starker Fokus auf die nicht-funktionalen Requirements gelegt, die direkt angesprochen werden müssen, und auch preislich festgehalten sind. Jedes Verhalten der Software muss genau definiert werden, und auf genau dieses Verhalten wird auch hingearbeitet, um Überraschungen für alle Seiten zu vermeiden.

Die letzte Session des Tages wurde von Mitch Lacey gehalten, der in gewohnt lockerer, aber dennoch äußerst professioneller Art über Architektur in Agilen Projekten sprach.
Am Beispiel von Scrum teilte er seine Erfahrungen über Firmen mit, die zwar angeblich agil arbeiteten ... aber eigentlich doch nicht. Der Fokus der Session bestand darin zu erkennen, dass das bloße Bestreben "ein wenig agil" zu sein kaum zielführend ist, und nur eine volle Immersion in die Arbeitsweise von Agile Development Sinn macht, wenn man schon agil arbeiten möchte.
So brachte er Beispiele über seine eigenen frühen Projekte, in denen er etwa für Microsoft eine Client-Server-Infrastruktur aufzusetzen hatte. Um ihr Ziel, nach jedem Sprint eine lauffähige und testbare Software in Händen zu halten erreichen zu können, entschieden sie sich dafür, fürs Erste nur einen einzigen Client zu unterstützen. Was auf den ersten Blick sinnlos erschien, führte im Endeffekt aber zum Erfolg, da schon in sehr frühem Entwicklungsstadium Feedback vom Kunden einbezogen werden konnte, eine der großen Stärken von agiler Entwicklung.

Nach den Vorträgen gab es dann noch zum krönenden Abschluss eine Weinverkostung - die unsere Mitarbeiter leider aus zeitlichen Gründen verpassten.
Der Tag war aber trotzdem äußerst lehrreich und hat wie alle Microsoft Events sehr viel Spaß gemacht.

Das war die erste Architect Forum Conference von Microsoft Österreich, und hoffentlich nicht die Letzte!

Natürlich haben wir das Event auch mit einigen Fotos "dokumentiert", diese finden sich auf unserer facebook-page.

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

Tags: , , , ,

Veranstaltung

Microsoft Big>Days 2010

by m.hsieh 20. März 2010 21:33

Am 18. März fanden die Microsoft Big>Days des Jahres 2010 in Graz statt, und bei einem so wichtigen Event mussten Mitarbeiter der FRAISS - IT Consulting & Mediendesign natürlich dabei sein.

Bereits in der einführenden Keynote, die von Microsoft Österreichs CEO Petra Jenner persönlich eröffnet wurde, konnten die Veranstalter durch viel Witz und noch mehr Expertise das Interesse des zahlreich erschienenen Publikums wecken.
So erklärten sie die Bedeutung der Cloud aus der Perspektive mehrerer Stakeholder (humorvoll visualisiert durch das Aufsetzen der passenden Brillen), zeigten die Vorteile der Cloud aus der Sicht der Geschäftsführung, Projektleitung, Entwicklung etc., und machten dabei klar, dass Microsoft in nächster Zeit intensiv in die Cloud investieren würde.
Natürlich wurde in diesem Zusammenhang auch das neue Windows Mobile 7 erwähnt, das die Vorteile der Cloud direkt auf das Handy holt. Interessant fanden wir dabei den Ansatz, dass gar nicht erst versucht wird, die große Menge an Informationen auf einen kleinen Handyschirm zu pressen. Stattdessen hat man ein volles Interface zur Verfügung, von dem man halt nur einen Teil sieht. Per Touchscreen kann man dann in diesem Interface "scrollen".

Die Mitarbeiter der FRAISS - IT Consulting & Mediendesign legten dieses Mal ihren Fokus auf das immer wichtiger werdende Thema der effektiven Web-Entwicklung, und nahmen daher großteils am Track "Web-Entwicklung" teil.
In diesem Track wurde in mehreren Sessions das Entwickeln eines Web-Projekts namens "Helfen helfen" mit verschiedenen Technologien vorgeführt.
"Helfen helfen" ist eine kleine Website, auf der sich "Helfer" und "Hilfesuchende" registrieren können, um miteinander in Kontakt zu treten. "Hilfesuchende" sind hierbei zum Beispiel charitative Einrichtungen, die helfende Hände für etwaige Veranstaltungen brauchen.
Hilft man bei so einem Projekt mit, bekommt man Punkte, die man dann gegen kleine Aufmerksamkeiten eintauschen kann.

Die erste Session handelte von RIA-Web-Smart-Clients mit Silverlight 4. Es wurde eindrucksvoll gezeigt, wie man mit RIA, einem Aufsatz auf das traditionelle WCF, mit wenigen Handgriffen zum Beispiel mit einer Datenbank kommunizieren kann.
RIA kümmert sich dabei darum, für alle Entitäten entsprechende Querymethoden zur Verfügung zu stellen, ohne dass man selbst irgendetwas programmieren müsste. Selbst die Metadaten der Entitäten werden automatisch generiert und zur komfortablen Nachbearbeitung bereitgestellt.

Die zweite Session beschäftigte sich mit CSS-Layouts in ASP.NET 4. Eingehend auf Publimsfeedback der bereits zurückliegenden Big>Days, wurden hier kurz das Grundlagenwissen über CSS aufgefrischt. Die Session war deswegen aber keinesfalls uninformativ, da nach der kurzen CSS-Einführung gezeigt wurde, wie ASP.NET 4 mit dem Problem der Trennung von Layout und Funktionlität umgeht.
Besonders interessant war hierbei die Demonstration, wie häufig benutzte Controls (wie Textboxen, oder auch komplexere wie das Login-Control), deren Funktionalität man nutzen möchte, aber nicht das Layout, customisiert werden können.
Die gängige Vorgehensweise, nämlich Ableiten eines eigenen Controls und dem Überschreiben der Render()-Methode steht ja auch die Alternative gegenüber, einen Control Adapter zu schreiben.
Genau hier setzte die Session an und zeigte, wie man schnell einen eigenen Control Adapter schreiben kann, um so zum Beispiel das mächtige Login Control mit dem eigenen Design verwenden zu können.
So kann auch dafür gesorgt werden, dass unschöne Table-Tags durch passende Div-Tags ersetzt werden.

Nach der Mittagspause wurde mit MVC 2 weitergemacht. Im Model-View-Controller-Pattern geht es ganz gezielt um das Trennen der namensgebenden Elementen einer Komponente.
Besonders wichtig ist diese Trennung für das effektive Testen und Warten von Websites. So kann man zum Beispiel gezielt Unit-Tests schreiben, um den Controller zu testen, ohne dass man mit dem View-Element in Verbindung kommen muss.

Die letzte Session, wie wir im Track der Web-Entwicklung besucht haben, handelte dann von ASP.NET AJAX. Es wurden einige Möglichkeiten vorgestellt, mehr Dynamik durch AJAX in eine Website zu bringen, wie zum Beispiel das Einbinden von ASP.NET AJAX Control Toolkit Controls.
Diese sind leicht einzubinden, sehr mächtig, aber leider nicht stark personalisierbar. Als weitaus mächtigere Alternative wurde auf jQuery verwiesen.
Die jQuery Library wrapped den allseits beliebten javaScript Code in einen "leichter" zu verwendenden Code und stellt dabei elaborative Tools zur Verfügung.
Der Vortragende Max Knor beeindruckte dabei besonders mit seinem mit Erfolg gekrönten Unterfangen, mit Hilfe von jQuery innerhalb von nur wenigen Minuten einen Facebook-artigen Nachrichten-Notifier zu schreiben.

In vier Sessions wurden damit einige Kernaufgaben der Entwicklung von "Helfen helfen" abgedeckt. In der RIA Session wurde eine effektive Datenbank-Kommunikation ermöglicht, danach wurde das Layout gestaltet und das Login-Control dementsprehend angepasst.
Mit dem MVC wurde die Punkte-Eintausch-Seite realisiert und erfolgreich getestet, und schließlich konnte mit AJAX eine kleine Diashow und eine Nachrichten-Anzeige gebaut werden, die sofort, ohne Page Refresh, auf eingehende Nachrichten reagiert.

Die fünfte Session des Tracks handelte vom Deploy einiger Websitekomponenten in die Cloud, die Mitarbeiter der FRAISS - IT Consulting & Mediendesign entschlossen sich aber, sich stattdessen die Neurungen in C# 4.0 und VB 10 anzusehen.
Hier wurde gezeigt, dass die beiden Sprachen stark voneinander gelernt haben, und viele Möglichkeiten, die es bisher nur in einer Sprache gab, nun in beiden Sprachen verfügbar ist.
So wurde über die Möglichkeit des Einsatzes von Constraints gesprochen. Hier geht es darum, Preconditions und Postconditions definieren zu können, die vor, bzw. nach einer Methode eingehalten sein müssen.
Invarianten hingegen müssen immer erfüllt sein. Als besonders mächtiges Anwendungsbeispiel wurde hierbei das Definieren von Constraints bei Interfaces genannt. Man kann so einem anderen Entwickler die Möglichkeit geben, eine Implementation des Interfaces zu schreiben, gleichzeitig aber die eigenen Constraints aufrecht erhalten.
Vertreter der Defaultwerte für Methoden, wie sie etwa in C++ möglich und üblich waren, werden sich freuen zu hören, dass es in C# 4.0 ebenfalls möglich sein wird, Default-Werte für Methoden zu setzen, um diese beim Aufruf der Methode dann ignorieren zu können.
Am interessantesten war aber sicherlich die Präsentation des "Datentyps" dynamic. In C# 4.0 wird es möglich sein, Typen, die erst zur Compilezeit bekannt werden (zum Beispiel bei dynamic linking), zunächst als Dynamic zu deklarieren. Man spart sich die beliebten Reflections, sondern kann direkt normale Methodenaufrufe machen.
Der Vortragende Andreas Schabus brachte es auf den Punkt, indem er anmerkte, dass das, was er schreibt, nun auch endlich wieder das sein würde, was es bedeutet.
Amüsierend und gleichzeitig faszinierend wurde gezeigt, dass mit dynamic selbst JavaScript recht simpel in C#-Code umgewandelt werden konnte. Alle Typen, die in C# nicht bekannt waren, wurden einfach als dynamic deklariert. Zum Erstaunen des Publikums funktionierte diese Umwandlung tatsächlich.

Zusammenfassend waren die Big>Days 2010 hochinformativ und interessant gestaltet, die Vortragenden haben wie immer ihr Bestes gegeben und waren damit erfolgreich.
Das Team der FRAISS - IT Consulting & Mediendesign freut sich daher bereits auf die Big>Days 2011!

 

Fotos zur Veranstaltung finden sich hier.

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

Tags: , , , ,

Veranstaltung

Effizienter arbeiten mit Visual Studio Team System 2010

by m.hsieh 1. März 2010 23:32

Im Rahmen der Mitarbeiterweiterbildung besuchten Entwickler der FRAISS - IT Consulting & Mediendesign am 01.03.2010 einen Microsoft-Vortrag über Visual Studio Team System 2010, und über den Entwicklungszyklus in der Umgebung, die im Moment als Release Candidate auf der Microsoft Visual Studio Website verfügbar ist.

Es wurden die Punkte

  • Management Principles
  • Architektur/Design
  • Entwicklung
  • Testen
  • Builden

behandelt, die Vortragenden waren Georg Drobny und Max Knor.

Das Event öffnete mit einem Vortrag über die Design- und Architekturmöglichkeiten innerhalb von VSTS2010.
Besonders hervorgehoben wurde hierbei die direkte Integration eines (leider rudimentären) UML-Editors direkt in die IDE, sowie der "Architecture Explorer", mit dem man in der Lage ist, komfortabel über die gesamte Architektur des Projekts zu navigieren und interessante Teile (und vor allem ihre Referenzen untereinander) zu visualisieren.
Weiters bietet VSTS2010 viele Möglichkeiten, um die Codequalität zu prüfen. Sowohl typische Codemetriken, als auch Vererbungstiefen und sogar statische Codeanalysen, aufbauend auf Rule-Sets, die unter anderen von Microsoft zur Verfügung gestellt werden, sind im Repetoire.

Der Entwicklungsteil befasste sich vor allem mit den Möglichkeiten der Test-Driven Development. So wird es unter VSTS2010 möglich sein, Klassen-Stubs aus Testsuites zu generieren, sowie aus fertigen Methoden elaborative Testcases automatisiert zu extrahieren.

Ein weiterer großer Schwerpunkt dieses Kapitels war das in den Team Foundation Server integrierte Versioning System. Diesbezüglich wurde auf die gut ausgeprägten Branching-Möglichkeiten hingewiesen. So ist es nicht nur möglich, komfortabel und simpel Branches herzustellen, sondern auch das Merging zwischen eben diesen wurde stark vereinfacht. Die atomare Einheit des Versioning Protokolls ist ein ChangeSet, in dem eine oder mehrere Änderungen vorgenommen wurden. Hat man so einen ChangeSet in einen Branch eingespielt, so ist es zum Beispiel über ein Visualisierungstool ein Leichtes, zu prüfen, in welchen Branches der Branchhierarchie dieser ChangeSet bereits aufgespielt wurde.
Per simplen Drag-And-Drop kann man das ChangeSet dann auf die anderen Branches aufspielen. Hierbei war nur zu beachten, dass Reverse- und Forwardintegration zwar kein Problem sind, aber baseless Integration (Patchen außerhalb der vorhandenen Branchstruktur, z.B.: auf einen Branch in der gleichen Hierarchieebene) zwar theoretisch möglich ist, aber nur per Commandlinetool machbar.
Außerdem wurde Wert auf das sogenannte "Shelving" gelegt, dass es ermöglicht, den aktuellen Status des Projekts kurz "zwischenzuspeichern", bildlich gesprochen "Auf ein Regal zu stellen", um andere Änderungen z.B.: am Masterbranch erledigen zu können. Danach kann man seinen eigenen Status per "Unshelving" schnell wieder herstellen, und weiterarbeiten. Der große Vorteil gegenüber dem Branching besteht darin, dass der gesamte Overhead einer Branch-Hierarchie umgangen wird, und der Status auch von anderen Entwicklern "kurz mal ge-unshelved und ausprobiert" werden kann.
Man könnte Shelving also eine Art LightBranching betrachten.

Der nächste Teil handelte vom Testen. Hier wurde uns zuerst eine interessante Möglichkeit namens "Test Impact Analysis" vorgestellt.
Hierbei geht man von der Annahme aus, dass bei größeren Projekten das Durchlaufen einer ganzen Unit-Test-Suite recht lange dauern könnte.

Ändert man nur einen kleinen Teil des Codes, kann man aber davon ausgehen, dass viele Tests gar nicht neu ausgeführt werden müssen, da sie in keinster Weise mit dem geänderten Code in Verbindung stehen. VSTS2010 ist in der Lage, exakt die Tests zu nennen, die nochmal wiederholt werden sollten.
Als ob das nicht beeindruckend genug wäre, wurde uns dann der Visual Studio Test Manager vorgestellt. Dieses Programm ist ein eigenständiges, aber dennoch voll in die VSTS/TFS-Umgebung integriertes Tool, mit dem man manuelle und auch automatische Tests erstellen und verwalten kann.
Manuelle Tests werden in der kontrollierten Umgebung ausgeführt, ein vorher exakt beschriebener Test wird von der testenden Person Schritt für Schritt ausgeführt.
Nach jedem Schritt kann die Person bestätigen, dass der eben ausgeführte Schritt erfolgreich war. Sollte ein Schritt nicht erfolgreich sein, kann direkt ein Screenshot erstellt, eine Beschreibung angehängt, und die gesamte Situation, exakt so wie sie der/die TesterIn hat, an die Entwicklungsabteilung als Bugreport weitergeleitet werden.
Es ist sogar möglich, ad hoc ein Abbild der VM des Testers zu erstellen, und dieses an den Bugreport zu hängen, so dass der Entwickler sofortigen Zugriff zur exakten Situation hat, wie der Tester sie vor sich hat.

Automatische Tests werden besonders zum Testen von UIs eingesetzt. Die Testperson geht einmal alle Schritte des Testens durch und lässt sich dabei von der Test Suite aufnehmen.
Die Test Suite wiederholt dann automatisch auf Befehl alle diese Schritte.

Das letzte Kapitel handelte vom Builden.
VSTS2010 nutzt einen im Workflow 4.0 definierten Standard zum Builden von Projekten. Dabei werden dedizierte Maschinen zum Builden benutzt.
Entwickler können Buildaufträge in die Build-Queue geben. Sobald die Build-Maschine frei ist, wird sie dann mit dem Kompilieren beginnen.
VSTS2010 gibt dann per Windows-Notification Bescheid, wenn ein Build abgeschlossen ist, sofern man das möchte.
Bezüglich des Deploys wurde noch auf das "Gated Check-In" eingegangen. Hier geht es darum, dass strenge Regeln festgelegt werden können,
wann Check-Ins akzeptiert werden, und wann nicht. Dabei handelt es sich von einfachen Möglichkeiten wie dem Erzwingen eines Commit-Kommentars bis zum Automatischen Test eines neuen Builds, noch bevor ein Check-In erfolgt.

Insgesamt war es ein langer (von 09:00 bis 17:00 Uhr), aber wieder einmal sehr gut organisierter und interessanter Tag, an dem es Microsoft gelungen ist, die Vorteile eines Umstiegs auf das neue VSTS2010 eindrucksvoll aufzuzeigen, und zu demonstrieren, zu was eine mächtige, und gut abgestimmte Entwicklungsumgebung wie VSTS2010 fähig ist. Die Entwicklungsabeteilung der FRAISS - IT Consulting & Mediendesign freut sich bereits, VSTS2010 in die derzeitige Arbeitsumgebung zu integrieren und die vollen Möglichkeiten dieses Tools, wie heute vorgezeigt, auszuschöpfen.

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

Tags: , , , , ,

Veranstaltung

FRAISS IT schafft Finaleinzug - build!

by m.fraiss 15. Februar 2010 21:08


Die FRAISS IT - Consulting & Mediendesign schafft mit Ihrer Einreichung zum build!-Wettebwerb 2009/2010 den Einzug ins Finale und freut sich für das gesamte Projekt- und Einreichungsteam und gratuliert diesem recht herzlich!

Hartmut Strauß, verantwortlicher technischer Projektleiter, zeigt sich sehr zufrieden und konzentriert sich bereits auf die weiteren Vorbereitungen. Die abschließende, entscheidende Präsentation vor der Jury, wird am 14.04.2010 in Klagenfurt stattfinden.

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

Tags:

News | Unternehmensnews | Veranstaltung

3 Monate UBank.cc Galaabende

by m.fraiss 30. Januar 2010 12:29

Gemeinsam konnten wir mit unserem Partner, dem Unternehmerbund International und Interessierten am 22.01.2010 einen würdigen Abend zu Ehren der UBank.cc gestalten. Das Projekt www.ubank.cc kann auf 3 Monate erfolgreiche LIVE-Time zurückblicken und dies wurde im Courtyard Mariott in Linz entsprechend und ordnungsgemäß gefeiert.

Zusätzlich durften wir mit einer Präsentation über die Hintergründe von UBank.cc einen Blick "Hinter die Kulissen" bieten und waren damit einer der Höhepunkte des Abendprogrammes.

Die gesamte Präsentation kann über die unten stehenden Videos im Nachhinein betrachtet werden. Zusätzlich findet sich diese auch noch auf www.lupe.tv

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

Tags:

Veranstaltung

DevCamp09 Teil 4

by m.fraiss 14. Oktober 2009 13:37

In seiner Level 400 Session "Grafische Programmierung mit Workflow Foundation 4.0" zeigte Max Knor, Developer Evangelist bei Microsoft Österreich, was uns Entwickler mit der Version 4.0 der Windows Workflow Foundation erwarten wird. Eingesetzt wurden dabei Visual Studio 2010 Beta1 und entsprechende Tools um mit der WF zu arbeiten.

Hauptinhalt der Session war die Erstellung eines automatisierten, Media-Converter-Dienstes, welcher die Aufgabe hatte, Videodateien sofort nach einem "simulierten" Upload in ein bestimmtes Verzeichnis in entsprechende Formate zu konvertieren. Technologischer Background waren dabei die Implementierung eines entsprechenden Workflows sowie einer eigenen Encoding-Komponente unter Verwendung des Microsoft Expression Media Encodes sowie die Realisierung der entsprechenden Routinen mit dem .NET Framework 4.0.

Die Live-Coding-Demo und die Präsentation zeigten sehr eindrucksvoll, wie schnell und "einfach" sich auch komplexere Aufgabenstellungen mit den richtigen Werkzeugen bewerkstelligen lassen.

Insgesamt war der Vortrag sehr gut zeitlich und inhaltlich abgestimmt und es wurde nicht zu viel und auch nicht zu wenig gezeigt. Max ist hervorragend auf die spannenden Neuerungen der WF 4.0 eingegangen und hat wieder einmal bewiesen, wie einfach .NET doch sein kann. Einzig zur Perfektion hatte gefehlt, den Workflow innerhalb eines Systemservices und nicht als Standalone-Consolen Applikation zu exekutieren, was zum Zweck der Demonstration aber definitv ausreichend war.

 

Fortsetzung folgt mit Teil 5...

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

Tags: , , ,

Veranstaltung

DevCamp09 Teil 3

by m.hsieh 14. Oktober 2009 12:58

Um das volle Spektrum des umfangreichen Programms hier beim DevCamp 09 abzudecken und unseren Lesern berichten zu können, haben sich die Mitarbeiter der Fraiss - IT Consulting & Mediendesign aufgetrennt. Ich werde in diesem Eintrag über den Vortrag "Baumschule - Expression Trees in C#, CLR und DLR" berichten, während Mario Fraiß direkt im Anschluss einen Bericht über "Grafische Programmierung mit Workflow Foundation 4.0" liefern wird.

Die Frage, die sich beim Expression Tree Vortrag stellt, ist, wie man dem Benutzer die Freiheit und Mächtigkeit einer vollwertigen Skriptsprache für eine Software, ohne die Sicherheitsgefahren und Langsamkeit derselbigen in Kauf nehmen zu müssen. Die angesprochene Möglichkeit, dies zu verwirklichen, ist, wie der Name des Vortrags bereits anklingen lässt, das Benutzen von Expression Trees.

Wenn man von Bäumen spricht, denkt man üblicherweise an verschachtelte Beziehungen, wie ein Garten der Bäume hat, wobei die Bäume wieder Blätter haben. Diese Definition kann per XAML leicht in eine Struktur gebracht werden, von wo aus Suchen und Evaluierungen möglich sind.

Die von uns betrachteten Expression Trees hingegen sind Bäume aus Operationen und Relationen - im Falle von "a + b" wäre "+" ein Knoten, mit "a" und "b" als Subknoten. Im Prinzip kann man also jede Formel als binären Expression Tree auffassen, und genau das wurde in der Präsentation auch getan.

Für den Kunden wird eine eigens auf ihn zugeschnittene Skriptsprache definiert (die Grammatik wurde am Beispiel von ATNLR gezeigt), die Sicherheitsbedenken werden so beschwichtigt, da man ja selbst eine Grammatik und einen Lexer schreiben kann. Die Expressions, die dann über diese Skriptsprache eingegeben werden,  werden in Expression Trees umgewandelt, und nun kommt der Clou: Es ist möglich, Expression Trees in Funktionen zu kompilieren. In Wirklichkeit, wenn man etwa func(x,y) = ... schreibt, wird intern zunächst ein Expression Tree generiert, der dann weiter zu einer "echten" Funktion kompiliert wird. Man kann aber manuell einfach "nur" den Expression Tree verlangen, und diesen dann weiter kompilieren. Angewandt auf unsere Zwecke heißt das, man kann den vom Skript generierten Expression Tree in eine Funktion kompilieren - die Konsequenz ist ebenso einleuchtend wie weitreichend: Wir kompilieren eine Funktion zur Laufzeit (!), es findet bei der Skriptevaluierung ein Ausführen von Maschinencode statt. Und damit ist die Skriptsprache um nichts langsamer als "echte", zur Compilezeit kompilierte Funktionen. Das überraschte Raunen der Erkenntnis, dass zu diesem Zeitpunkt durch den Vortragsraum klang, bestätigte den Erfolg des Vortrags, und lässt auf weitere, hochspannende Präsentationen hoffen. Für's Erste freuen wir uns aber auf das Mittagessen!

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

Tags: , , ,

Veranstaltung

DevCamp09 Teil 2

by m.hsieh 13. Oktober 2009 11:50

Der erste Content-Vortrag ist beendet, das Thema war "Flexibel sein! Konfigurierbare Strukturen & Logik in .NET Anwendungen". Der überaus motivierte Vortragende Rainer Stropek präsentierte mit viel Elan die vier Phasen der "Reife", die eine Software typischerweise in Bezug auf Skalierbarkeit durchläuft. In der ersten Phase wird für jeden Kunden ein einzigartiges Produkt entwickelt. In der zweiten Phase erkennt man, dass Kunden mit den gleichen Anforderungen, aber nur mit geringen Abweichungen der Bedürfnisse, nicht komplett neu entwickelte Produkte benötigen. Stattdessen kann ein Stammprodukt an die verschiedenen Bedürfnisse der Kunden angepasst werden. In der dritten Phase hat man die Transition von "Neubau/Anpassung" zu "Konfiguration" vollständig geschafft, das hier ist das Ziel der meisten Softwareprojekte. Die vierte Phase, die bereits in Richtung PAAS geht, ist eher selten nötig.

Um Konfigurierbarkeit möglich zu machen, benötigt man Datenstrukturen, die dynamisch verwaltet werden können. Das Stichwort "Late Binding" nimmt hier eine sehr große Rolle ein.

Anhand von Live-Demonstrationen gelang es Rainer Stropek in kürzester Zeit einen groben, aber immens lehrreichen Überblick über die Verwaltung dynamischer Datenstrukturen und den verwendeten Programmiersprachen, aufbauend auf die DLR zu geben.

Der Kunde erhält durch die komplett dynamischen, in keinster Weise starre Datentypen große Vorteile. So kann der Kunde das gekaufte Produkt bei Bedarf sehr leicht auf seine persönlichen Bedürfnisse anpassen, und das mit sehr geringem Aufwand. Zweifellos viel besser als das kostenspielige Anfordern neuer Software für geringe Änderungen im Geschäftsprozess.

Um es etwas technischer auszudrücken erlaubt das in dem Vortrag vermittelte Wissen die Erstellung von Software, die z.B.: anhand einer einfachen XML-Baumstruktur Datenbanken bauen kann, welche auf den Kunden individuell zugeschnitten sind. Late Binding und  die Verwendung dynamischer Konzepte erlaubt hierbei die scheinbar unglaubliche Eigenschaft, dass der tatsächliche Code der Software für verschiedene Kunden nie geändert werden muss, was unter anderem enorme Vorteile bezüglich der Softwarezuverlässigkeit bietet.

Der Kunde kann also seine persönlichen Wünsche und Ausnahmen kundtun, mit denen eine bereits vorhandene Software arbeiten soll, und  diese Konfiguration kann dann komfortabel in eine Datenbank eingespeist werden. Der Vorteil liegt auf der Hand: Der Kunde erhält binnen kürzester Zeit eine individuell auf ihn zugeschnittene Software, die mit anderer Konfiguration bereits erfolgreich eingesetzt wird und damit ausgezeichnet ausgetestet ist. Und das zu einem viel geringeren Preis und Zeitaufwand, als eine "eigene" Softwarelösung gekostet hätte!

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

Tags: , , ,

Veranstaltung

DevCamp09 Teil 1

by m.hsieh 13. Oktober 2009 10:52

Mitarbeiter der FRAISS - IT Consulting & Mediendesign nehmen gerade an der DevCamp 09 in Wien teil. Im Moment befinden wir uns im Saal des Tracks "400" und warten auf den Beginn des Vortrags "Flexibel Sein - Konfigurierbare Strukturen und Logik in .NET-Anwendungen" von Rainer Stropek.

Bisher haben wir einen Vortrag von Mitch Lancey (der gestern auch schon die Microsoft-Veranstaltung "Scrum & Agile Softwareentwicklung in VS Team Studio 2010 abgehalten hat) über Kostenersparnismöglichkeiten durch Einsetzen von Scrum gesehen, gefolgt von einer Keynote über Windows Azure.

Hauptlehren von Punkt 1 waren wohl die berühmte 80/20-Regel (80% der Funktionalität wird von 20% der Applikation geboten) und eine interessante Verkaufsstrategie, die besagt, dass ein Kunde in Scrum jederzeits noch nicht angefangene User Stories abbrechen darf (weil etwa die Software bereits gut genug ist, wie sie ist). Die Softwarefirma erhält in so einer Situation 20% der Kosten, die die abgebrochenen User Stories ausgemacht hätten. Der Kunde behält die restlichen 80%. Als eine mit konventionellen Softwareentwicklungsprozessen kaum mögliche Win-Win-Situation zeigt diese Strategie eine der großen Stärken von Scrum auf.

Zweiter Punkt, wie gesagt um Azure handelnd, beschäftigte sich mit Cloud Computing und Microsoft's Herangehensweise an diese neue Herausforderung. Uns wurde gezeigt, wie Windows Azure als PAAS sowohl Großunternehmungen (die zum Beispiel für gewisse Hauptgeschäftszeiten des Jahres viel Serverkapazität benötigen, die danach aber brach liegt und verkauft werden kann) als auch KMUs (die keine großen, eventuell dann doch ungenutzten Serverkapazitäten kaufen wollen) große Vorteile bieten kann und einen beträchtlichen Anteil zur Risikominimierung beisteuert.

Das Fraiss IT-Team bespricht demnach gerade, wie unsere Kunden von den neuen Technologien profitieren können!

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

Tags: , , ,

Veranstaltung