Welcome to MSDN Blogs Sign in | Join | Help

Mein Neuer Rechner

Heute ist er gekommen, mein neuer Rechner. Diesmal habe ich keinen Laptop bestellt, sondern eine Workstation. Hier ein Screenshot des Taskmanager:

shot1

So macht arbeiten Spaß!

Posted by dparys | 1 Comments
Filed under:

Windows Vista 256x256 PNG Icons erstellen

In Visual Studio 2008 gibt es Stand heute mässigen Support zum Erstellen von Windows Vista konformen Icons und dies nur bis zu einer bestimmten Icon Größe. Was aber wenn man konforme Icons in der Größe von 256x256 haben will?

Hier kommt Abhilfe. Die Firma Axialis die den IconWorkshop herstellt, hat speziell für die Visual Studio 2008 Version den IconWorkshop Lite erstellt und stellt diesen kostenfrei zur Verfügung.

Hier einige Features des IconWorkshop Lite

  • Powerful icon editing and color management tools (including color/alpha channel adjustment and filter support)
  • Ability to edit images in toolbar filmstrips (bitmap containing several images for toolbars)
  • Support for all Windows icon formats up to Windows Vista 256x256 with PNG compression
  • Support for a wide variety of image formats – BMP, PNG, JPEG, JPEG2000, GIF, TIFF, TGA and more
  • Creation of an icon from existing images
  • Creation of new icon formats from existing ones
  • Ability to use image objects (overlapping layers) to create icons
  • Ability to manage a library of icons or images in addition to individual ICO files
  • Ability to edit images in toolbar filmstrips (bitmap containing several images for toolbars)
  • Integration into Visual Studio 2008

Die Software selbst ist nur in Englisch verfügbar.

Probleme beim Installieren von VS 2008 SP1?

Unter Umständen hat sich ja der ein oder andere Entwickler die Visual Studio 2008 Service Pack 1 Beta bereits installiert und möchte nun auf die finale SP1 Version wechseln. Hierzu gibt es ein Tool namens Visual Studio 2008 Service Pack Preparation Tool welches die Beta Version sauber entfernt (das gibt es vor zu tun, ich habe es nicht validiert) und somit einer SP1 RTM Installation nichts mehr im Wege stehen dürfte.

Training zum SP1

Das .NET Framework 3.5 Enhancements Training Kit wurde nun ebenfalls fertiggestellt. Die Themen die es umfasst sind

  • .NET 3.5 SP1
  • ADO.NET Data Services
  • ASP.NET MVC
  • ASP.NET Dynamic Data
  • ADO.NET Entity Framework
  • ASP.NET AJAX 3.5 SP1
  • ASP.NET Routing
  • WCF 3.5 SP1
  • Visual Studio 2008 SP1

Es gibt hierzu Präsentationen, Demos und Hands-on-Labs. Letztere sind eine gute Möglichkeit sich schnell einen Überblick über eine Technologie zu verschaffen. Das ganze gibt es hier zum Download.

Mehr zu VS 2008 & .NET 3.5 SP1

Nachdem meine Ankündigung gestern eher spartanisch ausgefallen ist, möchte ich heute noch ein paar Links auf weitere Blogeinträge hinzufügen.

Datenzugriff

Im Datenzugriffsbereich gibt es eine Menge an neuer Funktionalität. Neu hinzugekommen ist das ADO.NET Entity Framework.

Anmerkung: “Neu hinzugekommen” bedeutet in diesem Fall zum ursprünglichen Produkt nicht zu der letzten Beta.

Das ADO.NET Entity Framework bringt die Entity Framework Runtime und den Entity Designer mit, um ein Entity Data Modell zu bearbeiten. In der Entity Framework Runtime gibt es speziell im Event Handling einige Änderungen die ein migrieren von Beta Code notwendig machen. Dies betrifft vor allem die Benutzung des EntityDataSource Objekts.

Einen umfangreicheren Post zum Thema findet man auf dem ADO.NET Team Blog.

Des Weiteren wurden eine Reihe von 3rd Party Providern angekündigt, hier die Liste der geplanten Provider (Quelle: ADO.NET Team Blog):

Providers Planning Publicly Available Versions in 2008 (Q3 & Q4 CY2008)

  • Devart (formerly Core Lab) - Providing connectivity to Oracle, MySQL, PostgreSQL and SQLite databases
  • Firebird - Providing connectivity to Firebird databases
  • IBM - Providing connectivity to both IBM DB2 data server and Informix Dynamic Server (IDS) database
  • Npgsql - Providing connectivity to PostgreSQL database versions 7.3+ and 8.x
  • OpenLink Software - Providing connectivity to OpenLink Virtuoso, Oracle, Informix, Ingres, Sybase, MySQL, PostgreSQL, DB2, Progress and Microsoft SQL Server databases, and any data source accessible via OpenLink ODBC or JDBC bridge drivers
  • Phoenix Software Solutions - Providing connectivity to SQLite databases
  • Sun Microsystems - Providing connectivity to MySQL databases
  • Sybase - Providing connectivity to SQL Anywhere databases
  • VistaDB Software - Providing connectivity to VistaDB database

Providers Planning Publicly Available Versions in Early 2009 (Q1 CY2009)

  • Synergex - Providing connectivity to Synergy/DE databases

Providers Committed to Supporting the Entity Framework

  • DataDirect Technologies - Providing connectivity to multiple data stores including Oracle, Sybase, Microsoft SQL Server and DB2 via DataDirect Connect® for ADO.NET

Neben dem ADO.NET Entity Framework hat auch ADO.NET Data Services das Licht der Welt erblickt. Ebenfalls eng gekoppelt an die Möglichkeit ein Entity Data Modell zu integrieren, erlauben es einem die ADO.NET Data Services beliebige Datenmodelle (auch reine Objektmodelle) als REST basierte Dienste anzubieten.

Die letzten Änderungen im Vergleich zur Beta beziehen sich vor allem auf die Integration in die Entwicklungsumgebung wie auch Verbesserungen im ATOM Payload und der Client Library.

Hier geht es zum Post des ADO.NET Data Services Team.

Team Foundation Server

Der Team Foundation Server bekommt auch ein neues Service Pack spendiert und damit auch eine Reihe von Usability Features speziell im Bereich der Versionsverwaltung. Es werden nun so kleine triviale Dinge wie z.B. Drag & Drop unterstützt, das Arbeiten mit losen Dateien die keinem Projekt zugeordnet sind bis hin zu API Erweiterungen die einem das Schreiben von Erweiterungen für den Team Foundation Server erleichtern.

Eine detailierte Liste aller Änderungen im Team Foundation Server kann man sich beim Blog Post von Brian Harry.

Visual C++

Das Service Pack vereint neben dem schon bekannten Visual C++ 2008 Feature Pack auch eine Reihe von Bug Fixes zum Core-Produkt wie auch zur TR1. Eine ausführlichere Beschreibung der TR1 Fixes findet man hier.

Download Links

Zuerst die Download-Links für die englischen Produkte. Boostrapper ist der Online Install, ISO ist die komplette Installation als ISO Image.

  • Visual Studio 2008 Express Editions with Service Pack 1 (Bootstrappers)
  • Visual Studio 2008 Express Editions with Service Pack 1 (iso)
  • Visual Studio 2008 Service Pack 1 (Bootstrapper)
  • Visual Studio 2008 Service Pack 1 (iso)
  • Visual Studio  Team System 2008 Team Foundation Server Service Pack 1
  • NET Framework 3.5 Service Pack 1

    Und nun noch die Links für die deutschen Produkte

    Visual Studio 2008 Service Pack 1 Downloads

    .NET Framework 3.5 mit Service Pack 1 (SP1)

    Was ist neu? Hinweise und weiterführende Informationen

  • VS 2008 SP1 für MSDN Subscriber verfügbar

    Das Service Pack 1 für Visual Studio 2008 ist nun für MSDN Subscriber verfügbar. Es besteht aus einem 831 MB großen Download. Damit hat man nun auch die durchgängige Integration des letzte Woche zur Verfügung gestellten SQL Server 2008. Jetzt werde ich erstmal meine VPCs umstellen.

    Tools: NDepend

    Seit Monaten wollte ich mir immer mal NDepend anschauen und schliesslich habe ich es heute geschafft. NDepend ist ein Analyse Tool für .NET Assemblies oder auch Visual Studio Solutions. Es ist für vielerlei Szenarien zu gebrauchen, sei es um Code Qualität zu beurteilen, Unterschiede zwischen verschiedenen Versionen einer DLL zu analysieren und Protokollieren oder um einfach mal in ein unbekanntes Objektmodell abzutauchen und sich ein wenig umzuschauen.

    Genau letzteres habe ich mit dem ASP.NET MVC Preview 3 gemacht. Hierzu habe ich 6NDepend das Assembly System.Web.Mvc analysieren lassen.

    shot1

    Das erste was NDepend erstellt ist eine zusammenfassendes HTML Dokument zu den analysierten Assemblies. Anbei ein kleiner Auszug aus dem Dokument.

    shot4

    Des Weiteren lassen sich mit NDepend Abfragen über die analysierte Codebasis gestalten, basierend auf der CQL (Code Query Language). Interessant ist vor allem, dass man die vorgefertigten Queries anpassen und erweitern kann, um so seine eigenen Standards wiederzuspiegeln und prüfen zu lassen. Dies kann man zwar auch mit den statischen Code Analyse Möglichkeiten von Visual Studio Team System 2008 machen, jedoch muss man hierzu immer ein Assembly erstellen und den entsprechenden C# Code schreiben. Mit der CQL geht das einfacher. Eine Abfrage die zum Beispiel die Top 10 Methoden zurückliefert die mehr als 30 Codezeilen enthalten drückt man in CQL folgendermaßen aus:

       1: WARN IF Count > 0 IN 
       2:     SELECT TOP 10 METHODS 
       3:     WHERE NbLinesOfCode > 30 
       4:     ORDER BY NbLinesOfCode DESC

    Als Ergebnis bekommt man die entsprechenden Methoden angezeigt und kann sich auch gleich den Source in Visual Studio oder auch Reflector anschauen.

    Zudem gibt es noch ein paar Interessante grafische Analysen.

    MetricTreemapSnapshot

    Allein durch diese Grafik hat man einen ersten Eindruck über den Umfang des Assemby. Das ganze lässt sich durch Abhängigkeitsmatrizen,

    DependencyMatrixSnapshot

    in diesem Fall ControllerBuilder samt Abhängigkeiten in weitere Assemblies, beziehungsweise auch als Klassendiagramm samt Abhängigkeiten anzeigen:

    BoxAndArrowGraph

    Das Tool selbst verfügt auch über eine Kommandozeilen Version (die grafische Oberfläche benutzt auch das Kommandozeilen Tool) um es in automatisierte Buildprozesse einzubinden (es gibt auch eine Integration für CruiseControl.NET). Im Falle von Daily Builds lassen sich über die Vergleichsfunktionalität von NDepend auch Änderungen in den Binaries protokollieren und auswerten.

    Einfach mal ausprobieren.

    www.ndepend.com

    Posted by dparys | 1 Comments

    Wann kommt denn endlich das ADO.NET Entity Framework?

    diese Frage bekomme ich oft gestellt und nie kann ich diese mit einem konkretem Datum beantworten (sollte ich vielmehr darf sagen?). Dann möchte ich einfach mal an dieser Stelle folgendes Zusammenfassen:

    1. Seit kurzem ist der SQL Server 2008 fertiggestellt und über das MSDN Subscriber Portal zum herunterladen verfügbar
    2. Gleichzeitig ist auch das Microsoft Sync Framework fertiggestellt worden.

    Nachdem diese beiden Produkte fertig sind, kann man vermuten was wohl als nächstes definitiv erscheint, oder?

    Posted by dparys | 4 Comments

    Channel 9 Screencast: Windows Live ID Client Authentication

    In einem meiner vorherigen Posts habe ich über die Möglichkeit gesprochen, Benutzer mittels Windows Live ID zu Authentifizieren. Das ganze habe ich nun in einen kleinen Screencast gepackt und auf Channel 9 gepostet

    Windows Live ID Client Authentication

    Posted by dparys | 1 Comments

    .NET Open Space 2008

    Do you Twitter? Eigentlich stelle ich diese Frage immer aus Spaß, das heutige Web bietet einfach eine Menge fragwürdiger Anwendungen, doch manchmal huschen auch interessante Informationen diese, wie in diesem Fall über einen Twitter Feed.

    So habe ich vom .NET Open Space 2008 in Leipzig erfahren und mich gleich angemeldet. Das ganze findet am 18. und 19.10 in statt. Da nicht jeder twittert, blogge ich mal darüber, vielleicht hat ja der ein oder andere auch Interesse vorbeizuschauen.

    Posted by dparys | 1 Comments
    Filed under: ,

    Herbstcampus 2008

    In meinem Blog-Post zu Konferenzen am Horizont habe ich auf diverse kommende Konferenzen hingewiesen. Dabei habe ich ganz übersehen das es noch den Herbstcampus 2008 gibt. Das besondere hierbei ist das es sich um eine Technologieübergreifende Konferenz handelt. So gibt es diverse bekannte Größen aus der Java Welt die dort sein werden, unter anderem James Gosling. Ich selbst darf auch einen Vortrag zum Thema Entity Framework und Data Services halten.

    Das ganze findet vom 15.09 - 18.09 in Nürnberg statt. Vielleicht sieht man sich dort.

    Posted by dparys | 1 Comments
    Filed under: , ,

    Neuer Podcast: Episode #8 – WCF 3.5 – Was ist neu?

    Nach langer Pause habe ich es heute wieder geschafft einen Podcast zu schneiden und ins Web zu stellen. Ich bedanke mich jetzt schon bei meiner Fabelhaften Off-Stimme Moritz Neumann (hast Du eigentlich einen Blog?)

    Ich habe auf der OOP 2008 mit Christian Weyer zum Thema WCF 3.5 gesprochen.

    Zum Podcast geht es hier.

    Posted by dparys | 1 Comments
    Filed under: , ,

    Parallele Programmierung

    Heutzutage hat beinahe jeder neue Rechner mehr als einen Prozessorkern. In naher Zukunft dürften sich Kerne in Prozessoren um ein vielfaches multiplizieren. Was liegt näher als die gesamte Rechenleistung auch in eigenen Anwendungen zu nutzen? Multithreading Programmierung ist seit Jahren ein Thema mit dem sich viele Entwickler beschäftigen. Es gibt je nach Betriebssystem unterschiedliche Möglichkeiten und auch diverse API's. Im Laufe der Zeit hat man aber erkannt das die Abstraktion auf Betriebssystem Ebene durch deren APIs nicht abstrakt genug ist. Es gibt heute schon verschiedene Ansätze um parallelen Ausführungscode zu schreiben, ich denke hierbei an OpenMP, MPI, Threading Building Blocks usw.

    Microsoft investiert sehr viel in diesem Bereich um parallele Programmierung und damit das Ausnutzen der lokalen Rechenleistung zu vereinfachen und zu steigern. Wir bieten nun mehrere Ansätze um Code in Anwendungen zu parallelisieren. Neben PLINQ und der Task Parallel Library, welche beide für Managed Code sind, gibt es auch in naher Zukunft Neues für die nativen C++ Entwickler, was das genau ist kann man am besten untenstehenden Links entnehmen.

    Informationen rund um Parallele Verarbeitung findet man unter

    Parallel Computing Developer Center

    Blog für Managed Code

    Blog für Native Code

    ASP.NET AJAX geht in die nächste Runde

    Auf CodePlex ist jetzt die erste Preview Version von ASP.NET AJAX 4.0 verfügbar. Ziel ist es einen ersten Eindruck über die kommende Funktionalität zu geben. Die Community hat so die Möglichkeit zu einem frühen Zeitpunkt Feedback an die Produktgruppe zu liefern bevor alles in Stein gemeißelt ist.

    Was ist nun drinnen in der Preview?

    Client-side template rendering

    Es kommt nun eine eigene Template Engine in Form von JavaScript auf den Client. Damit hat man recht einfach die Möglichkeit Layout zu definieren und dynamisch mit Daten zu bestücken. Ähnrlich wie man es aus der Server-basierten ASP.NET Definition her kennt oder auch aus WPF mit den XAML Dokumenten. Natürlich ist es Ziel das ganze XHTML Compliant zu machen und auch möglichst Performant. Nichts ist störender als die Beeinträchtigung von Webseiten weil die CPU zu arg belastet wird. Ich selbst hatte das Problem einmal bei einem Email Provider.Ich konnte mich nicht mehr anmelden, weil die Eingabe der Zeichen durch das Intensive Flash-Geblubber verschluckt wurde.

    Ein Template könnte Beispielsweise so aussehen:

       1: <div id="myTemplate" class="sys-template">
       2:   <h3>{{ Title }}</h3>
       3:   Name: <input type="text" value="{{ FirstName + ' ' + LastName}}" />&nbsp;
       4:   Date: <input type="text" value="{{ HireDate.format('MM/dd/yyyy') }}"/>&nbsp;
       5:   <!--* if (BirthDate) { *-->
       6:     BirthDate: &nbsp;<input type="text" value="{{ BirthDate.format('MM/dd/yyyy') }}"/>
       7:   <!--* } *-->
       8: </div>

    Das schöne ist das man diese Templates auch zur Laufzeit erstellen und in das DOM einfügen kann.

    Declarative instantiation of behaviors and controls

    Um Behaviors und Controls möglichst einfach an HTML Elemente zu binden gibt es nun eine vereinfachte Syntax die durch den Namensbereich sys ermöglicht wird. Um zum Beispiel ein bestimmtes Control an ein Element zu binden deklariert man erst dieses Control.

       1: <body xmlns:sys="javascript:Sys" xmlns:myctrl="javascript:Namespace.MeinControl">

    Ist es deklariert kann es nun an ein Element gebunden werden und dabei können auch gleich die Eigenschaften mittels des eigens definierten Prefixes angesprochen werden:

       1: <div id=”div1class=”sys-template>
       2:   <table sys:attach="myctrl" myctrl:songs="{{ songsData }}">
       3:     <thead>
       4:       <tr><td>{{Song}}</td><td>{{Artist}}</td></tr>
       5:     </thead>
       6:   </table>
       7: </div>

    DataView Control

    Dank der Templates ist es nun einfach dynamisch generierte HTML Fragmente zu erstellen und auszugeben. Aber um sich noch mehr Arbeit zu sparen, gibt es jetzt auch ein DataView Control das einen Großteil der Arbeit übernimmt. Man kann dem DataView Control auch eigene Templates unterschieben um entsprechend die Daten zu visualisieren.

       1: <body xmlns:sys="javascript:Sys" xmlns:dataview="javascript:Sys.Preview.UI.DataView">
       2: ...
       3: <div sys:attach="dataview" dataview:data="{{ someArray }}">
       4:   <h1>{{ name }}</h1>
       5:   <p>{{ description }}</p>
       6: </div>

    Markup Extensions und Bindings

    Hand in Hand gehen die nächsten beiden Features. Bindings basiert auf Markup Extensions. Mit Markup Extensions hat man die Möglichkeit eigene Erweiterungen in das System einzufügen. Beispiele solcher Erweiterungen sind Expression und Binding.

    Hier ein Beispiel für Binding

       1: <input id="name" value="{binding name, mode=twoWay}"/>

    Die Syntax {binding name, mode=twoway} ist eine Markup Extension. Eine Markup Extension definiert sich also aus {expression defaultparameter, parameterName1=parameterValue1, parameterName2=parameterValue2 [, …] }

    Die Erweiterung Expression kann nur für One-Way Bindings benutzt werden, also lediglich zur Ausgabe von Daten, während Binding Two-Way unterstützt. Das ganze erinnert stark an die WPF Syntax und ist somit einigen Entwicklern bereits geläufig.

    Es ist wirklich nur ein früher Wurf um einen Einblick in die Entwicklungsrichtung zu geben. Das nächste Preview ist für den September angekündigt und dürfte auch entsprechend mehr Elemente der ASP.NET AJAX Roadmap enthalten

    Posted by dparys | 0 Comments

    Web / Live Evangelist gesucht

    Lust bei Microsoft anzufangen? In unserem Team suchen wir Verstärkung. Wer wissen möchte um was es genau geht, kann sich hier die Stellenbeschreibung (in Englisch) durchlesen.

    Stellenbeschreibung Web / Live Evangelist

    Posted by dparys | 1 Comments
    Filed under:
    More Posts Next page »
     
    Page view tracker