.
Anmeldung | Registrieren | Hilfe

.NET-Blogs Archiv Februar 2009

Excel: Range.Value vs. Range.Value2

28.02.2009 18:18:08 | Lars Keller

Ein Teilnehmer auf der Basta hatte mich gefragt, warum das Range-Object ein Value2 Property besitzt, bzw. warum das Property Value2 heißt und nicht Value.

Range.Value2 ist für die Sprache C# gedacht, da das Property Range.Value für C# Readonly ist. Im IntelliSense wird das Range.Value auch nicht angezeigt. Wenn man sich das Ganze einmal mit dem Lutz Reflector anschaut, dann kann man auch sehen, dass die Range.Value Setter/Getter einen weiteren Parameter benötigen, welchen wir in C# mit Type.Missing extra setzen würden.

Anders sieht es aus, wenn man mit VB.NET entwickelt, da sollte man nicht das Range.Value2 Property benutzen, sondern das Range.Value.



This weblog is sponsored by netcreate OHG.

Excel: Range.Value vs. Range.Value2

28.02.2009 17:18:08 | Lars Keller

Ein Teilnehmer auf der Basta hatte mich gefragt, warum das Range-Object ein Value2 Property besitzt, bzw. warum das Property Value2 heißt und nicht Value.

Range.Value2 ist für die Sprache C# gedacht, da das Property Range.Value für C# Readonly ist. Im IntelliSense wird das Range.Value auch nicht angezeigt. Wenn man sich das Ganze einmal mit dem Lutz Reflector anschaut, dann kann man auch sehen, dass die Range.Value Setter/Getter einen weiteren Parameter benötigen, welchen wir in C# mit Type.Missing extra setzen würden.

Anders sieht es aus, wenn man mit VB.NET entwickelt, da sollte man nicht das Range.Value2 Property benutzen, sondern das Range.Value.

Meine Sessions bei der BASTA! Spring

28.02.2009 10:39:49 | Lars Keller

Zurück von der BASTA! Spring und wie versprochen hier meine Folien und der Code zu den Sessions:

Session: Office und .NET – zwei Welten wachsen zusammen mit VSTO 3.0

Download: Folien

Download: Code Beispiele

Session: Interaktionen in der "Office-Welt" mit .NET

Download: Folien

Download: Code Beispiele

Die Code Beispiele benötigen den SQL Server Express 2008 und die AdventureWorksLT Beispieldatenbank.

Workshop: VSTO in der Praxis

Download: Folien

Download: Code Beispiele

Die Excel Beispiele von Karim:

Download Folien

Download Code Beispiele



This weblog is sponsored by netcreate OHG.

Meine Sessions bei der BASTA! Spring

28.02.2009 09:39:49 | Lars Keller

Zurück von der BASTA! Spring und wie versprochen hier meine Folien und der Code zu den Sessions:

Session: Office und .NET – zwei Welten wachsen zusammen mit VSTO 3.0

Download: Folien

Download: Code Beispiele

Session: Interaktionen in der "Office-Welt" mit .NET

Download: Folien

Download: Code Beispiele

Die Code Beispiele benötigen den SQL Server Express 2008 und die AdventureWorksLT Beispieldatenbank.

Workshop: VSTO in der Praxis

Download: Folien

Download: Code Beispiele

Die Excel Beispiele von Karim:

Download Folien

Excel: Range.Value vs. Range.Value2

28.02.2009 08:18:00 | Lars Keller

Ein Teilnehmer auf der Basta hatte mich gefragt, warum das Range-Object ein Value2 Property besitzt, bzw. warum das Property Value2 heißt und nicht Value.

Range.Value2 ist für die Sprache C# gedacht, da das Property Range.Value für C# Readonly ist. Im IntelliSense wird das Range.Value auch nicht angezeigt. Wenn man sich das Ganze einmal mit dem Lutz Reflector anschaut, dann kann man auch sehen, dass die Range.Value Setter/Getter einen weiteren Parameter benötigen, welchen wir in C# mit Type.Missing extra setzen würden.

Anders sieht es aus, wenn man mit VB.NET entwickelt, da sollte man nicht das Range.Value2 Property benutzen, sondern das Range.Value.

Meine Sessions bei der BASTA! Spring

28.02.2009 00:39:04 | Lars Keller

Zurück von der BASTA! Spring und wie versprochen hier meine Folien und der Code zu den Sessions:

Session: Office und .NET – zwei Welten wachsen zusammen mit VSTO 3.0

Download: Folien

Download: Code Beispiele

Session: Interaktionen in der "Office-Welt" mit .NET

Download: Folien

Download: Code Beispiele

Die Code Beispiele benötigen den SQL Server Express 2008 und die AdventureWorksLT Beispieldatenbank.

Workshop: VSTO in der Praxis

Download: Folien

Download: Code Beispiele

Die Excel Beispiele von Karim:

Download Folien

MSDN Premium mit Visual Studio abzugeben

27.02.2009 15:00:00 | Michael Schwarz

Gestern Abend habe ich auf der .NET Usergroup Franken den restlichen Gewinnern meiner Verlosung ihr Visual Studio 2008 übergeben. Weiter gab es während des Vortrags Bücher für richtige Fragen, die trotz (älteren) Themen wie Visual Studio 2005 immer wieder gerne angenommen wurden.

Heute ist es mal wieder so weit, ich verlose eine weiter MSDN Premium mit Visual Studio Team System. Was müsst ihr dafür tun? Nun, da ich nicht besonders erfinderisch bin, verlinkt einfach auf meinen Blog http://michael-schwarz.blogspot.com/ oder http://netmicroframework.blogspot.com/ und schreibt einen Kommentar hier auf dieser Seite mit dem entsprechenden Link auf eure Seite.

Die Aktion läuft wieder 2-3 Wochen. Die Gewinne könnt ihr euch beim nächsten Treffen der .NET Usergroup Franken dann abholen. Ich wünsche jetzt schon mal viel Glück.

Nebenbei: wer sich noch eine alte Visual Studio 2005 Testversion herunterladen möchte, die gibt’s jetzt wieder, und zwar auf der Getting Started with Microsoft Windows Embedded CE 6.0, braucht man z.B. für erste Gehversuche mit dem .NET Micro Framework.


MS Support hilft Microsoft

27.02.2009 13:47:00 | Michael Schwarz

Nun, ihr ahnt es schon, aber ich muss das einfach noch loswerden. Nachdem ich den Microsoft Support Call zum Thema Eingabe von c:\Programme wieder geöffnet habe, habe ich eben einen Anruf vom Microsoft Next Level Support erhalten. Die zwei Englisch sprechenden Microsoft Support Mitarbeiter haben die Lösung zu dem Problem offiziell als Lösungsvorschlag angenommen. Leider wird es kein Hotfix oder ähnlich mehr für Windows Vista geben.

We are taken your solution in account in future OS. For current OS we will not provide a hotfix for security reasons. In Windows 7 Beta we have the same behaviour. Hopefully it get fixed for release version which is the job of the development team.

It was my pleasure to talk to you today. Following our telephone conversation I will proceed further with the temporary archive of the SRZ….

Microsoft wird diese Lösung evtl. auch als KB Artikel verfassen, das Nutzungsrecht haben sie auf jeden Fall eben schon mal bei mir eingeholt. Mal sehen, ob ich (Michael Schwarz Support) noch ein paar Bugs oder Lösungen finde.


Jetzt kann ichs ja sagen – Meine erste Session ist gehalten! (auf der basta!)

27.02.2009 10:13:16 | Jan Schenk

Wow, ich bin platt. Ich habe gestern meine erste echte eigene Session für und im Namen von Microsoft gehalten. Windows Azure.

Und?

Es war grossartig! Mir hat’s total viel Spass gemacht, auch wenn ich eine Demo sowas von verhauen habe, und mir die Zeit davon lief. Ich habe dann zum Glück das Projekt in funktionstüchtigem Zustand noch auf der Platte gehabt (Danke für den Tipp, Oliver!), und das hat mir die Zeit und die Präsentation gerettet.

Ansonsten bin ich echt mehr als zufrieden, gute Fragen kamen auch. Es waren nicht viele Zuhörer, aber die die da waren, waren auch tatsächlich beim Thema. Ich muss halt noch lernen, die Zeit besser einzuschätzen, aber hey, meine erste Session ist gehalten.weltweit_guenstig

Und für alle nochmal der echt gute Werbeslogan eines Internet-Cafes hier in Darmstadt:

 

WELTWEIT GÜNSTIG SURFEN & CHATTEN

 

Als ob ich das nicht erwartet hätte…

 

Tatsächlich freue ich mich schon aus die CeBIT! Nur dass ich da auch wieder die erste Session halten werde. So wie heute. Gut, es war der letzte Tag, aber dafür um 8:30 Uhr. Brrrr, nichts für Developer, diese Uhrzeit. Wenigstens habe ich so keine Zeit gehabt, um nervös zu werden. Think Positive!

Liebe basta!-Teilnehmer und Besucher meiner Session: Vielen Dank fürs Zuhören, ich fand euch super!

Viele Grüße,

jan

1&1 und Microsoft bieten Studenten-Server inklusive Design- und Entwicklungssoftware

27.02.2009 00:13:10 | Oliver Scheer

clip_image001Für knapp 40 Euro monatlich können Studierende jetzt einen eigenen dedizierten Server im 1&1-Rechenzentrum betreiben und erhalten darüber hinaus Zugang zur Microsoft-Initiative DreamSpark. DreamSpark ermöglicht den kostenlosen Download von Design- und Entwicklungssoftware wie Visual Studio 2008, Expression Studio 2 oder SQL Server 2008. Um das Angebot von 1&1 und Microsoft nutzen zu können, ist ein Freischaltcode notwendig, der bei 1&1 angefordert werden kann. Mehr Informationen: Microsoft Studenten-Server - Promotionsangebot bis zum 31.03.2009

Microsoft Student Experience -- das Studentenportal von Microsoft mit umfassende Ressourcen (nicht nur für Informatikstudenten)

27.02.2009 00:07:59 | Oliver Scheer

Norbert Schumann vom Berliner Bildungsteam hat uns eben darauf aufmerksam gemacht, dass die neue Microsoft Student Experience ab sofort online ist.

Die Microsoft Student Experience ist ein Portal für Studierende. Unter den drei Oberbegriffen „Studieren“, „Planen“ und „Leben gibt es ein wahres Füllhorn an Informationen, Tipps, Vorlagen zum kostenlosen Download, Lifestyle-Themen und und und… Beispielsweise Tutorials zum Thema Zeitmanagement, Hilfe und Beratung bei der Suche nach einem Auslandsstudium, aus dem Leben gegriffene Stories und mehr.

student

Sowohl vom Informationsgehalt, wie auch vom Unterhaltungswert – und auch vom Design her – ist die Website wirklich gut gelungen. Gefällt mir gut.

dreamspark

In diesem Zusammenhang auch erwähnenswert (wenn auch bereits ein Riesenerfolg und daher sicher sowieso schon bekannt): Microsoft DreamSpark: Das kostenlose Programm für Studierende mit dem sie kostenlosen Zugriff auf Microsoft Designer- und Entwicklertools haben. Natürlich Expression Studio, aber auch XNA Game Studio für Spieleentwicklung, Visual Studio und SQL Server und das Robotics Developer Studio 2008.

Links:

XTOPIA [kompakt] – die UX/Web/RIA Roadshow 09

26.02.2009 23:58:08 | Oliver Scheer

Kostenlos und im April/Mai vor Ort in Ihrer Stadt!

Microsofts Webkonferenz XTOPIA geht auf Deutschlandtour: Gemeinsam mit dem deutschen RIA Forum und mit hochrangingen Partnern wie den Publishingexperten von Quark und den CRM-Profis von CAS präsentieren Experten von Microsoft in sechs deutschen Städten im April und Mai 2009 ein Feuerwerk der Neuheiten und Innovationen rund um die Themen Web, User Experience und Silverlight/Rich Internet Applications.

clip_image001

Die Teilnehmer der kostenlosen Roadshow XTOPIA [kompakt] erwartet eine Fülle spannender Sessions zu brandaktuellen Themen, darunter Microsoft Surface/Multitouch, Windows 7, Internet Explorer 8, Windows Live Services für Webentwickler und natürlich zu Silverlight, sowie spannende Gastvorträge und hilfreiche Informationen, u.a. zur Frage wie Agenturen und Webdienstleister mit Microsoft Visio Zeit und Geld sparen können. Außerdem berichten Ergosign, Pixelpark, UID, Syzygy und weitere führende Agenturen aus der deutschen Designszene frei und unzensiert über ihre Erfahrungen mit Silverlight und WPF.

Die Teilnahme an der XTOPIA [kompakt] ist kostenlos – allerdings sind nur jeweils ca. 100 Teilnehmerplätze pro Veranstaltungsort verfügbar, eine baldige Anmeldung ist daher unbedingt notwendig.

Kostenlose Anmeldung und alle weiteren Infos sowie ausführliche Themenübersicht unter http://blogs.msdn.com/steffenr/archive/2009/02/24/xtopia-kompakt-die-ux-web-ria-roadshow-09-kostenlos-und-im-april-mai-vor-ort-in-ihrer-stadt.aspx oder http://snipurl.com/cjz9e

Sponsoren und Partner der XTOPIA [kompakt] 09:

clip_image002

Meet&Greet @ CeBIT: yourExpression-Initiator und Expression-MVP Daniel Greitens

26.02.2009 21:39:59 | Steffen Ritter

Was ihr schon immer zu Silverlight, WPF und Expression wissen wolltet, aber nie zu fragen wagtet… oder wenn Ihr einfach nur wissen wollt, wie Daniel Greitens in Wirklichkeit aussieht: besucht Ihn auf der CeBIT! Die meiste Zeit findet Ihr ihn auf dem Hauptstand von Microsoft in Halle 4, Stand A 26 und dort am Arbeitsplatz M13 beim Thema Web-Applications.

Und als Highlight: jeden Tag um 12:20 und 17:20 steht Daniel im Microsoft CeBIT-Kino und begeistert die Massen ;)

Einen Link auf den Standplan gibt’s auch: http://www.microsoft.com/germany/msdn/events/cebit/2009/standplan.mspx

Daniel Greitens ist Geschäftsführer der Agentur maximago, MVP, Gründer der Expression-Community www.yourExpression.de und Autor des Buches User-Interface-Design mit Microsoft Expression Blend 2. Neue Wege bei der Gestaltung, Entwicklung von Benutzeroberflächen für WPF- und Silverlight-Anwendungen.

Webcasts: Der Solution Architect im Fokus mit VSTS 2010

26.02.2009 15:59:00 | Christian Binder

Sehen Sie auf Basis des VSTS 2010 November CTP's, wie der Solution Architekt mit der neuen VSTS Architekt Edition unterstützt werden wird. Die Webcasts stelllen nicht nur die Funktionen der VSTS 2010 Architekt Edition vor, sondern auch andere Bereiche. 

Im Fokus des ersten Teils sind Requirements, System Design und System Development. 
Im Fokus des zweiten Teils sind System Test und die Analyse bestehender System mit dem Architect Explorer.
Alles aus Sicht des Solution Architects.

Der Solution Architect im Fokus mit VSTS 2010 (Teil 1 von 2)

Der Solution Architect im Fokus mit VSTS 2010 (Teil 2 von 2)

Erhalten Sie einen ersten Überblick.  

Viel Spass

Chris

Expression Media 2 ServicePack 2 für Mac + Windows verfügbar

26.02.2009 10:56:23 | Steffen Ritter

Ab sofort ist das deutsche ServicePack 2 für die Foto- und Medienverwaltung Expression Media 2 für Mac und Windows verfügbar.

Das Update behebt diverse Fehler und Probleme, darunter:

  • Das gleichzeitige Importieren von mehreren großen Bildern wurde sehr langsam ausgeführt.
  • Beim XML-Export und -Import wurden benutzerdefinierte Felder möglicherweise verschlüsselt.
  • Bei Katalogen, die auf einem Macintosh-Computer gespeichert wurden, gingen Dateipfade zu den Originalmedien verloren, wenn Sie über einen Server auf einem Computer unter Windows geöffnet werden.
  • Beim Kopieren von Elementen in einen neuen Katalog wurden die Originaldateipfade und keine neuen Pfade verwendet.
  • Silverlight 2.0 wurde von Mozilla Firefox-Browsern nicht ordnungsgemäß erkannt, wenn Sie Silverlight-HTML-Kataloge anzeigen.
  • Für Miniaturansichten wurde das eingebettete Farbprofil einer Datei nicht verwendet (Miniaturansichten müssen neu erstellt werden, damit diese Korrektur sichtbar wird).
  • Die Benutzereinstellung für das Renderingmodul wurde nicht immer verwendet.
  • Nachdem Sie in der Ansicht Liste eine Sortierung vorgenommen haben, wurde die falsche Datei geöffnet, wenn Sie mit der rechten Maustaste auf eine Datei klicken, um sie in einer Standardanwendung zu öffnen.
  • Beim Verschieben von hierarchischen Schlüsselwörtern wurden einfache Schlüsselwörter möglicherweise nicht ordnungsgemäß auf Bilder angewendet.
  • Beim Ausführen von Skripts für Anmerkungen wurde Text durch Einfügen von Unicode-Zeichen entstellt.
  • Die Dateipfade wurden beschädigt, wenn der importierte Ordner mehr als 1.024 Unterordner enthält.
  • Bei der Option Pfade zurücksetzen trat möglicherweise ein Fehler auf, wenn ein Pfad zum Stammverzeichnis eines Laufwerks festgelegt wird.
  • Bei Expression Media 2 trat möglicherweise ein Programmabsturz auf, wenn eine Datei aus einem Ordner importiert wird, der aus dem Panel Organisieren entfernt wurde.
  • Bei Expression Media 2 trat möglicherweise ein Programmabsturz auf, wenn Sie einen Importvorgang abbrechen und anschließend Dateien aus dem Stammverzeichnis eines Laufwerks importieren.
  • Beim Umbenennen eines Ordners in einer Netzwerkfreigabe trat möglicherweise ein Fehler auf, und der Ordner wird möglicherweise nicht mehr im Panel Organisieren angezeigt.
  • Dateien, deren Namen mehr als 64 Zeichen aufweisen, wurden immer wieder importiert, wenn Sie Ordner im Panel Organisieren aktualisieren.
  • In gespeicherten Katalogen wurden keinen zusätzlichen Ordner im Panel Organisieren hinzugefügt, wenn es sich beim Namen des Datenträgervolumes um den Systemstandardnamen handelt. Der Systemstandardname lautet normalerweise „Lokales Laufwerk“.
  • Die Größe von TIFF RAW-Dateien aus Phase One-Digital Backs erschien innerhalb eines Katalogs höher.
  • In Katalogordnern wurden möglicherweise Zufallszahlen angezeigt, wenn der Datenträger keinen Volumenamen aufweist.
  • HTML-Kataloglinks enthielten beim Anzeigen in Mozilla Firefox-Browsern Fragezeichen.

Downloads:

Wie geht’s weiter mit den Web Browsern?

25.02.2009 17:00:00 | Michael Schwarz

Der Internet Explorer 8 lässt immer noch auf sich warten, auch wenn bereits auf manchen Blogs etwas vom April steht.

Währenddessen versuchen Web Entwickler die immer noch recht hohe Anzahl der IE 6 Installationen zu verbannen. Mit Hilfe von veränderten Web Seiten machen sie die Internetnutzer darauf aufmerksam.

Gleichzeitig wurde erst vor kurzem der neue Internet Explorer 6 für Windows Mobile vorgestellt. Dieser verwendet die Render Engine vom IE 6 und die JavaScript Engine vom IE 8, und zeigt die Web Seiten verglichen mit dem alten PocketIE natürlich tausendmal besser an, aber eben wieder nur veraltet. Davor hatten wir alle auf DeepFish gehofft, ein Browser, der Screenshots zum Browser geschickt hat, anstatt selber zu rendern, doch daraus wurde nichts. (Wie hieß es da nochmal: Enhanced Browsing for your Mobile Device.)

Die letzten Monate habe ich immer wieder Bugs in der aktuellen Beta des IE 8 gefunden. Soll ich mir vielleicht den IE 8 Blocker installieren?

Die Welt ist einfach noch nicht bereit für den IE 8. Stephan schreibt darüber, was den Firefox so beliebt macht, auch wenn ich dem nicht zustimmen kann, denn Plug-Ins braucht man ich nicht wirklich, hatte mit verschiedenen Plug-Ins zu viele Probleme.

Heute lese ich dann, dass Microsoft die Gazelle frei lässt:

Der von Microsoft angekündigte Webbrowser "Gazelle", soll mit einem neuen technischen Konzept aufwarten. Wie Netbux berichtet, umfasst das Konzept einen sehr schlank und effizient gehaltenen Browser-Kern. Jede einzelne aufgerufene Web-Anwendung soll von ihm eigene, unabhängige Ressourcen und Prozesse zugewiesen bekommen.

Wow, ist das jetzt etwa die Antwort auf meinen Wunsch, einen Web Browser ohne die ganzen Tools und Features zu bekommen? Eine Render Engine, die alle Hardwarekomponenten verwendet, um HTML so schnell wie möglich zu rendern?

Je mehr man über Gazelle liest, umso häufiger kommen Begriffe auf wie Browser OS, also einem Web Browser Betriebssystem.

Und sicher(-er) soll das ganze auch noch sein:

Gazelle's security model is centered around protecting principals from one another by separating their respective resources into hardware-isolated protection domains. Any sharing between two different principals must be explicit using cross-principal communication (or IPC) mediated by Browser Kernel.

Ach ja, fast hätte ich es vergessen: Apple hat ja erst vor kurzem seinen neuen Safari 4 auf die Menschheit losgelassen, endlich auch im richtigen Windows Thema. Der ist natürlich viel schneller als Google Chrome, logisch.

Ob Gazelle wirklich etwas taugt, wird man abwarten müssen. Ich bin schon mal richtig gespannt, denn die Hoffnung stirbt als letztes. In wie weit das in den Internet Explorer einfließt, weiß natürlich niemand.


Webcast: VSTS 2008-Grundlagen der Lokalisierung mit WinForms

25.02.2009 15:46:00 | Christian Binder

Lokalisierung von Software ist immer häufiger ein Thema für Software Entwickler und meistens ist es nicht das, was man am liebsten tut oder? Daher habe ich Sven Hubert AIT gebeten, eine Einführung ins Thema zu geben. Sven Hubert hat hier schon einiges an Projekt Erfahrung gesammelt und erklärt die Basics in einem kurzweiligen 30min Webcast. Wir starten mit WinForms und legen noch einen Webcast für WPF nach :-)  

Download hier

Viel Spass

Chris

Virtual Earth – Einen Routenplaner in ASP.NET selber bauen – Erweiterungen 2

25.02.2009 15:37:24 | Jan Schenk

Bernd hat mich in einem vorherigen Post darauf hingewiesen, dass ich mir die Anweisungen auf englisch ausgeben lasse, und ob das auch auf deutsch geht.

Die gute Nachricht: Ja, es geht.

Die zweite gute Nachricht: Es ist ziemlich einfach!

Die eingebettete Karte hat in den Properties unter Features einen Auswahlpunkt “Locale”. Stellt man den auf de_de, dann gibt es in der Route deutsche Anweisungen.

Händisch würde man das in der Default.aspx so lösen:

   1: [...]
   2: <ve:Map ID="MyMap" runat="server" Height="550px" Width="550px" ZoomLevel="4" 
   3:     Center-Latitude="40" Center-Longitude="22" 
   4:     onservergetdirections="MyMap_ServerGetDirections" Locale="de_de" />
   5: [...]

 

<edit>

so müsste es eigentlich gehen, ich bekomme aber einen Fehler, dass ich diesen Wert nicht zur Laufzeit ändern kann…

 

/*Oder im CodeBehind so:

   1: [...]
   2: protected void GenerateRoute_Click(object sender, EventArgs e)
   3: {
   4:     Map1.Locale = SupportedLocales.de_de;
   5: [...]
   6: }

*/

</edit>

Mein Dank geht an Bernd für diesen Hinweis!

jan

Virtual Earth – Einen Routenplaner in ASP.NET selber bauen – Erweiterungen

25.02.2009 15:26:00 | Jan Schenk

Zusätzlich zu den im Webcast gezeigten Features gibt es natürlich noch unzählige Details, die man in einen eigenen Routenplaner einbauen kann.

Wichtig wäre zB noch die Ausgabe der Gesamtwegstrecke und der Gesamtfahrzeit.

In meiner Default.aspx-Seite schaffe ich erst mal Platz für die Ausgabe:

   1: [...]
   2: <asp:Label ID="RouteProps" runat="server"></asp:Label>
   3: <br />
   4: // hier kommt dann das GridView
   5: [...]
Danach lege ich in meiner Default.aspx.cs zwei Variablen an, die ich mit den entsprechenden Eingenschaften der Route e befülle, bzw vorher noch in eine adäquate Einheit umgerechnet werden:

Default.aspx.cs:

   1: protected void Map1_ServerGetDirections(object sender, Route e)
   2: {
   3:     JanRoute route = JanRoute.CreateRoute(e, TextBox1.Text, TextBox2.Text);
   4:  
   5:     string routeTime = "0h, 0km";
   6:     if (e.Time > 59)
   7:     {
   8:         if(e.Time > 3599)
   9:             routeTime = Convert.ToString(Math.Round(Convert.ToDouble(e.Time) / 60 / 60, 2)) + "h";
  10:         else
  11:             routeTime = Convert.ToString(Math.Round(Convert.ToDouble(e.Time) / 60, 2)) + "min";
  12:     }
  13:  
  14:     string routeDist = Math.Round(e.Distance, 2) + "km";
  15:  
  16:     RouteProps.Text = routeTime + ", " + routeDist + "<br />";
  17:  
  18:     WaypointGrid.AutoGenerateColumns = true;
  19:     WaypointGrid.DataSource = route.Waypoints;
  20:     WaypointGrid.DataBind();
  21:  
  22: }

Etwas ähnliches sollte auch für jeden einzelnen Wegpunkt und dessen Entfernungs- und Zeit-Eigenschaft vorgenommen werden.

Eine Auswahl, ob die Entfernung in Kilometern oder Meilen angegeben werden soll lässt sich über zwei Radiobuttons realisieren:

Default.aspx:

   1: [...]
   2: <asp:RadioButton ID="RadioKm" Text="Kilometer" GroupName="DistanceUnit" runat="server" />
   3: <asp:RadioButton ID="RadioMls" Text="Meilen" GroupName="DistanceUnit" runat="server" />
   4: // zB direkt über den Buttons zum Abschicken der Routenberechnung
   5: [...]
   6:  

Die Default.aspx.cs-Datei modifiziere ich dafür in zwei Funktionen:

   1: protected void Button1_Click(object sender, EventArgs e)
   2: {
   3:     RouteOptions ro = new RouteOptions();
   4:  
   5:     ro.DistanceUnit = RouteDistanceUnit.Kilometer;  // default fallback
   6:     if (RadioKm.Checked)
   7:         ro.DistanceUnit = RouteDistanceUnit.Kilometer;
   8:     if (RadioMls.Checked)
   9:         ro.DistanceUnit = RouteDistanceUnit.Mile;
  10:  
  11: [...]
  12: }
  13:  
  14: // und hier
  15:  
  16: protected void Map1_ServerGetDirections(object sender, Route e)
  17: {
  18:     JanRoute route = JanRoute.CreateRoute(e, TextBox1.Text, TextBox2.Text);
  19:     
  20:     string distUnit = "km";
  21:     if (RadioKm.Checked)
  22:         distUnit = "km";
  23:     if (RadioMls.Checked)
  24:         distUnit = "mls";
  25:  
  26: [...]
  27:  
  28:     string routeDist = Math.Round(e.Distance, 2) + distUnit;
  29: [...]
  30: }
  31:  

So viel für jetzt, seid ihr mal kreativ und zeigt mir, was ihr noch hinzugefügt habt!

Rock on,

jan

Webcast Virtual Earth – Einen Routenplaner in ASP.NET selber bauen

25.02.2009 15:12:06 | Jan Schenk

Get Microsoft Silverlight

Wenn ich schon einzelne Routen berechnen lassen und anzeigen lassen kann, dann sollte doch auch eine eigene Einbettung als Routenplaner nicht so kompliziert sein.

Eine Ausgabe der einzelnen Wegpunkte in HTML hilft, wenn man die Route ausdrucken und unterwegs im Auto verwenden möchte. Das Ganze “schön” in einem GridView aufbereitet, dass man sich während des Fahrens nicht mit Suchen ablenkenk lässt.

Ist das schwer? Jein, eigentlich nicht, aber es ist ein bisschen Code notwendig. Den Aufbau der Seite und die dahinter liegende Logik sehen wir in diesem Video.


Dazu gibts hier den gesamten Code und noch ein paar kleine Erweiterungen des Projektes aus dem Video in Codeform:

Default.aspx (als WebContentForm zu einer MasterPage, die einen ScriptManager enthält!):

   1: <div class="container">
   2: <asp:UpdatePanel ID="UpdatePanel1" runat="server">
   3:     <ContentTemplate>
   4:         <div class="leftdiv">
   5:             Routenplanung<br />
   6:             <br />
   7:             VON:
   8:             <asp:TextBox ID="TextBox1" runat="server" CssClass="inputBoxes"></asp:TextBox>
   9:             <br />
  10:             <asp:PlaceHolder ID="PlaceHolder1" runat="server" Visible="False">
  11:             Zw.Stop:
  12:             <asp:TextBox ID="TextBox3" runat="server" CssClass="inputBoxes"></asp:TextBox>
  13:             <br />
  14:             </asp:PlaceHolder>
  15:             NACH:
  16:             <asp:TextBox ID="TextBox2" runat="server" CssClass="inputBoxes"></asp:TextBox>
  17:             <br />
  18:             <br />
  19:             <asp:Button ID="Button1" runat="server" onclick="Button1_Click" 
  20:                 Text="Route berechnen" />
  21:             <asp:Button ID="Button2" runat="server" Text="Über" onclick="Button2_Click" />
  22:             <br />
  23:             <br />
  24:             <asp:GridView ID="WaypointGrid" runat="server">
  25:             </asp:GridView>
  26:         </div>
  27:     </ContentTemplate>
  28: </asp:UpdatePanel>
  29: <div class="rightdiv">
  30:     <ve:Map ID="Map1" runat="server" Center-Latitude="48.1761" 
  31:         Center-Longitude="11.5571" Height="400px" Width="400px" ZoomLevel="4" 
  32:         onservergetdirections="Map1_ServerGetDirections" />
  33: </div>
  34: </div>

Die CodeBehind-Datei sieht so aus (Default.aspx.cs):

   1: using System;
   2: using System.Collections.Generic;
   3: using System.Linq;
   4: using System.Web;
   5: using System.Web.UI;
   6: using System.Web.UI.WebControls;
   7: using Microsoft.Live.ServerControls.VE;
   8:  
   9: namespace RoutePlanner
  10: {
  11:     public partial class Default : System.Web.UI.Page
  12:     {
  13:         protected void Page_Load(object sender, EventArgs e)
  14:         {
  15:             if (!IsPostBack)
  16:                 TextBox1.Focus();
  17:         }
  18:  
  19:         protected void Button1_Click(object sender, EventArgs e)
  20:         {
  21:             RouteOptions ro = new RouteOptions();
  22:             ro.DistanceUnit = RouteDistanceUnit.Kilometer;
  23:             ro.SetBestMapView = true;
  24:             ro.DrawRoute = true;
  25:  
  26:             List<string> locations = new List<string>();
  27:  
  28:             locations.Add(TextBox1.Text);
  29:  
  30:             if (TextBox3.Text.Length > 2)
  31:                 locations.Add(TextBox3.Text);
  32:  
  33:             locations.Add(TextBox2.Text);
  34:  
  35:  
  36:             Map1.GetDirections(locations, ro);
  37:         }
  38:  
  39:         protected void Map1_ServerGetDirections(object sender, Route e)
  40:         {
  41:             JanRoute route = JanRoute.CreateRoute(e, TextBox1.Text, TextBox2.Text);
  42:  
  43:  
  44:             WaypointGrid.AutoGenerateColumns = true;
  45:             WaypointGrid.DataSource = route.Waypoints;
  46:             WaypointGrid.DataBind();
  47:  
  48:         }
  49:  
  50:         protected void Button2_Click(object sender, EventArgs e)
  51:         {
  52:             PlaceHolder1.Visible = !PlaceHolder1.Visible;
  53:         }
  54:     }
  55: }

 

Und dann haben wir noch zwei Klassen-Dateien:

WaypointMaker.cs:

   1: using System;
   2: using System.Collections.Generic;
   3: using System.Linq;
   4: using System.Web;
   5: using Microsoft.Live.ServerControls.VE;
   6:  
   7: namespace RoutePlanner
   8: {
   9:     public class WaypointMaker
  10:     {
  11:  
  12:         public WaypointMaker()
  13:         { 
  14:         }
  15:  
  16:         public string Id { get; set; }
  17:         public string Instruction { get; set; }
  18:         public string Time { get; set; }
  19:         public string Distance { get; set; }
  20:         public LatLongWithAltitude LatLon { get; set; }
  21:  
  22:     }
  23: }

und

JanRoute.cs:

   1: using System;
   2: using System.Collections.Generic;
   3: using System.Linq;
   4: using System.Web;
   5: using Microsoft.Live.ServerControls.VE;
   6:  
   7: namespace RoutePlanner
   8: {
   9:     public class JanRoute
  10:     {
  11:  
  12:         public JanRoute()
  13:         { 
  14:         }
  15:  
  16:         public string FromLocation { get; set; }
  17:         public string ToLocation { get; set; }
  18:  
  19:         private List<WaypointMaker> _waypoints = new List<WaypointMaker>();
  20:  
  21:         public WaypointMaker[] Waypoints
  22:         {
  23:             get { return _waypoints.ToArray(); }
  24:             set {
  25:                 foreach (WaypointMaker wp in value)
  26:                 {
  27:                     AddNewWaypoint(wp);
  28:                 }
  29:             }
  30:         }
  31:  
  32:         public void AddNewWaypoint(WaypointMaker wp)
  33:         {
  34:             if (!_waypoints.Contains(wp))
  35:                 _waypoints.Add(wp);
  36:         }
  37:  
  38:         internal static JanRoute CreateRoute(Microsoft.Live.ServerControls.VE.Route e, string from, string to)
  39:         {
  40:             JanRoute route = new JanRoute();
  41:             route.FromLocation = from;
  42:             route.ToLocation = to;
  43:  
  44:             List<RouteLeg> rlegs = e.RouteLegs;
  45:             int num = 0;
  46:             foreach (RouteLeg leg in rlegs)
  47:             {
  48:                 List<RouteItineraryItem> items = leg.Itinerary.Items;
  49:                 foreach (RouteItineraryItem item in items)
  50:                 {
  51:                     WaypointMaker wpm = new WaypointMaker()
  52:                     {
  53:                         Id = Convert.ToString(num),
  54:                         Instruction = item.Text,
  55:                         Distance = Convert.ToString(item.Distance),
  56:                         Time = Convert.ToString(item.Time),
  57:                         LatLon = item.LatLong
  58:                     };
  59:                     route.AddNewWaypoint(wpm);
  60:                     num++;
  61:                 }
  62:  
  63:             }
  64:             return route;
  65:         }
  66:  
  67:     }
  68: }

 

Wenn ihr hier weiter lest, findet ihr noch ein paar kleine Erweiterungen, die im Video nicht mehr unter gekommen sind.

Viel Spass damit!
jan

Teste deine Webanwendungen in allen 7 gängigen Browsern...

25.02.2009 14:35:00 | Klaus Bock

...ohne die Browser lokal installiert zu haben.
Wer's nicht glaubt soll es sich auf der Seite von xenocode hier selber ansehen.

Edit 27.02.2009: Ich bin anscheinend einer der wenigen, bei dem alles ohne Probleme ablief. Nach dem mich Jürgen Gutsch freundlicherweise auf den Artikel von Dirk Jesse aufmerksam gemacht hat, war mir schnell klar, dass meine Neugierde auch wirklich schief gehen hätte können.

Technorati-Tags: | | | | | |

Für diesen Befehl ist nicht genügend Serverspeicher verfügbar

25.02.2009 14:22:00 | Michael Schwarz

In den letzten Wochen habe ich immer wieder mal große Dateien größer als 50 GB über Rechnergrenzen kopieren müssen. Ab und an habe ich folgende Fehlermeldung bekommen:

Der Vorgang konnte aufgrund eines unerwarteten Fehlers nicht durchgeführt werden. Notieren Sie sich den Fehlercode, da dieser eventuell bei der weiteren Problembehebung hilfreich sein kann:

Fehler 0x8007046A: Für diesen Befehl ist nicht genügend Serverspeicher verfügbar.

Ordner kopierenKomischerweise ist der Fehler immer dann aufgetreten, wenn ich von einem UNC Pfad etwas auf eine USB Platte kopieren wollte, das scheint aber nur Zufall gewesen zu sein.

Weitere Nebenwirkung war, dass man danach auf den Server weder per UNC noch per Remote Desktop zugreifen konnte.

Nach einer Recherche im Internet habe ich einen Registryeintrag gefunden, der das Problem (bis jetzt) behoben hat.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\IRPStackSize

Unter LanmanWorkstation gibt es den gleichen Parameter. Beide habe ich sowohl auf dem Client als auch auf dem Server auf 80 (dezimal) gestellt, das scheint wohl der Maximalwert zu sein. Und siehe da, es funktioniert!


Noch ein letztes Wort zu C:\Programme und C:\Program Files

25.02.2009 13:51:00 | Michael Schwarz

Wer mein Blog liest, der weiß, dass ich mich über das Fehlverhalten des Windows Explorers unter Windows Vista als auch der aktuellen Beta von Windows 7 aufrege. Wie es aussieht, ist das ja alles so gewollt, und wir Deutsche müssen uns endlich abfinden, dass das eben nicht geht. (Oder doch nicht? Weiter unten ist die Lösung, für alle, die nicht weiterlesen möchten!)

Während meiner Tests habe ich die verschiedenen Sprachversionen noch einmal unter die Lupe genommen. Der übersetzte Begriff für Program Files kommt immer aus der desktop.ini:

[.ShellClassInfo]
LocalizedResourceName=
    @%SystemRoot%\system32\shell32.dll,-21781

In der shell32.dll steht an Position 21781 eben Programme, im Französischen wird der Text Programmes genommen.

Um das fehlerhafte Verhalten in den Deutschen Versionen zu erklären, muss man eine ältere Windows Version installieren, z.B. Windows XP. Bei Windows XP hat man das Programme Verzeichnis auch so benannt, also das lag so wirklich auf der Festplatte. Im Französischen wurde Program Files verwendet, der übersetzte Text kam aus der desktop.ini.

Mit Windows Vista wollte man nun den besseren Weg gehen, Verzeichnisse sollte sprachunabhängig sein. Da es aber noch einige Programme gibt, die z.B. beim Installieren hart-kodiert C:\Programme verwenden, hat man die sogenannten symbolischen Verknüpfungen eingeführt. Diese sollten andere Programme automatisch auf die richtigen Verzeichnisse oder Programme umlenken.

Folgende Fehler gibt es bei den symbolischen Verknüpfungen:

  • man kann im Windows Explorer nicht c:\Programme eingeben
  • ein .NET Programm lässt jeden Zugriff auf c:\Programme nicht zu, man erhält eine DirectoryNotFoundException: Ein Teil des Pfades “c:\Programme” konnte nicht gefunden wrden.
  • ein .NET Programm kann auch keine Dateien unter c:\Programme öffnen

Also, bei mir funktionieren die symbolischen Verknüpfungen nicht, oder ich habe den Sinn immer noch nicht verstanden.

Endlich eine Lösung

Endlich habe ich mich getraut, und c:\Programme über die Kommandozeile gelöscht. Bitte nicht über den Windows Explorer, denn sonst erwischt man das echte Verzeichnis c:\Program Files.

  • Start –> Ausführen und cmd.exe eingeben und mit Administratorrechten ausführen
  • rd c:\Programme löscht dann die Verknüpfung

Jetzt kann ich zwar keine alten Programme mehr verwenden, die direkt auf C:\Programme schreiben möchten, aber das will ich auch nicht.

Wer trotzdem den symbolischen Link braucht, kann diesen (wie auch eigene) mit folgendem Befehl wieder erstellen:

  • Start –> Ausführen und cmd.exe eingeben und mit Administratorrechten ausführen
  • ins Rootverzeichnis mit cd /D %systemdrive%\ wechseln
  • mklink.exe /J Programme “c:\Program Files” erzeugt eine dort als Verbindung deklarierte Verknüpfung
  • attrib +H c:\Programme versteckt diese Verknüpfung

Toll, nach dem manuellen Ausführen von mklink.exe gehen auch alle meine .NET Testprogramme richtig. Wo ist nur der Fehler, warum geht das auf einem sauberen Windows Vista nicht richtig? Ich werde wohl doch keine Ruhe geben, und gleich einen virtuellen PC basteln, Nr. 1098.

Wie immer gilt, dass ich keine Garantie übernehmen kann. Also, vielleicht vorher alles ordentlich sichern oder so.


Booten von einem USB Stick – Warum funktionieren nicht alle USB Sticks?

25.02.2009 12:03:00 | Michael Schwarz

Vor einiger Zeit habe ich erklärt, wie man z.B. Windows 7 von einem USB Stick anstatt einer DVD installiert. Dabei haben einige Anwender berichtet, dass ihre USB Sticks leider nicht booten möchten. Das Problem ist, dass der Bootsektor fehlt. Deswegen hier noch einmal eine kurze Anleitung zum Installieren von Windows 7 über einen USB Stick:

Um den USB als Bootimage zu verwenden, muss man ihn erst einmal formatieren, und dann eine aktive Partition anlegen. Das geht unter Windows Vista mit diskpart.exe:

  • Start –> Ausführen anklicken, dann diskpart.exe starten
  • lis dis eingeben um alle lokalen Laufwerke anzuzeigen
  • Hat man den USB Stick gefunden (z.B. anhand der Größe), diesen mit sel dis 3 auswählen, wobei N die Datenträgernummer ist, die bei 0 anfängt zu zählen, bei mir ist es also das vierte Laufwerk.
  • Mit lis par kann man sich die aktuellen Partitionen anzeigen lassen.
  • Mein USB Stick hat nur eine Partition, diese wähle ich mit sel par 1 aus (Achtung, hier fängt die Nummerierung wieder bei 1 an).
  • Mit format fs=NTFS LABEL=”Windows 7” QUICK OVERRIDE formatiere ich den USB Stick, das geschieht auch gleich ohne zusätzliche Nachfrage.
  • Ist die Formatierung beendet, setze ich mit active die aktuelle Partition auf aktiv und beende DiskPart mit exit.

Danach muss man den Bootsektor auf den USB Stick übertragen, das geht mit einem Tool auf der Windows 7 DVD. Dafür einfach die ISO Datei mit dem 7-Zip Manager entpacken, und danach folgenden Befehl ausführen:

  • Start –> Ausführen anklicken, dann cmd.exe starten
  • Nun in das entpackte ISO Verzeichnis wechseln, bei mir ist es cd \ISO\Win7
  • Jetzt in das Unterverzeichnis boot mit cd boot wechseln, und dort den Befehl bootsect /nt60 G: (wobei hier G: mein USB Stick Laufwerksbuchstaben ist)

Danach werden einfach noch alle Dateien von der ISO Datei kopiert.


XTOPIA [kompakt] – die UX/Web/RIA Roadshow 09

25.02.2009 11:22:00 | Lori Grosland

 

Microsofts Webkonferenz XTOPIA geht auf Deutschlandtour: Gemeinsam mit dem deutschen RIA Forum und mit hochrangingen Partnern wie den Publishingexperten von Quark und den CRM-Profis von CAS präsentieren Experten von Microsoft in sechs deutschen Städten im April und Mai 2009 ein Feuerwerk der Neuheiten und Innovationen rund um die Themen Web, User Experience und Silverlight/Rich Internet Applications.

Xtopia-kompakt-Logo-weiss

Die Teilnehmer der kostenlosen Roadshow XTOPIA [kompakt] erwartet eine Fülle spannender Sessions zu brandaktuellen Themen, darunter Microsoft Surface/Multitouch, Windows 7, Internet Explorer 8, Windows Live Services für Webentwickler und natürlich zu Silverlight, sowie spannende Gastvorträge und hilfreiche Informationen, u.a. zur Frage wie Agenturen und Webdienstleister mit Microsoft Visio Zeit und Geld sparen können. Außerdem berichten Ergosign, Pixelpark, UID, Syzygy und weitere führende Agenturen aus der deutschen Designszene frei und unzensiert über ihre Erfahrungen mit Silverlight und WPF.

Die Teilnahme an der XTOPIA [kompakt] ist kostenlos – allerdings sind nur jeweils ca. 100 Teilnehmerplätze pro Veranstaltungsort verfügbar, eine baldige Anmeldung ist daher unbedingt notwendig.

Kostenlose Anmeldung und alle weiteren Infos sowie ausführliche Themenübersicht unter:

http://blogs.msdn.com/steffenr/archive/2009/02/24/xtopia-kompakt-die-ux-web-ria-roadshow-09-kostenlos-und-im-april-mai-vor-ort-in-ihrer-stadt.aspx

 

Sponsoren und Partner der XTOPIA [kompakt] 09:

Alle-Logos-auf-weiss

Composite Application Guidance für WPF & Silverlight im Bereich Unternehmensanwendungen

25.02.2009 09:35:54 | Oliver Scheer

Diese umfangreiche (englischsprachige) Dokumentation erläutert ausführlich, wie sich mit relativ geringem Aufwand komplexe modulare Unternehmensanwendungen (LOB = Line of Business) für Windows mit WPF – und plattformübergreifend für Windows/Linux/Mac mit Silverlight entwickeln lassen.

Typische LOB-Anwendungen bestehen meist aus mehreren unabhängigen Modi und Ansichten und kombinieren komplexe multimediale Datenvisualisierung, rollenspezifisches Anwenderverhalten und flexible Interaktionen. Sie müssen den schwierigen Spagat meistern, gleichzeitig „für die Ewigkeit“ und ebenso für permanenten Wandel entwickelt zu werden. Die Lebensdauer einer solchen Anwendung im Unternehmen bemisst sich oft in mehr als fünf Jahren, manchmal Jahrzehnten. Über diesen Zeitraum wandeln sich diese Anwendungen meist von einfachen Grundprogrammen hin zu äußerst komplexen modularen und aus vielen individuelle funktionierenden Einzelkomponenten bestehenden Anwendungen. 

Der neue Composite Application Guide bietet exzellentes Know-How und viele fertige Implementierungen zur Entwicklung derartiger Anwendungen und ist Pflichtlektüre für alle Entwickler die Unternehmenssoftware mit WPF oder Silverlight entwickeln.

Aus dem Inhalt: 

  • Composite Application Library
  • Beispielimplementierungen in WPF & Silverlight
  • QuickStarts (9)
  • How-Tos (26)
  • Massenhaft Dokumentation zu allem das Sie jemals über UI Modelle und Software Client Architektur wissen wollten

Weitere Informationen: http://www.codeplex.com/CompositeWPF
Direkt zum Download: http://www.microsoft.com/downloads/details.aspx?FamilyID=fa07e1ce-ca3f-4b9b-a21b-e3fa10d013dd&DisplayLang=en

Eine interessante Frage: Brauchen wir sowohl Visual Basic als auch C# ?

25.02.2009 06:55:00 | Klaus Bock

Genau diese Frage stellt David Kean in diesem Artikel auf seinem Blog zur Diskussion.
Ich persönlich favorisiere klar C# und währe sehr unglücklich würde diese Sprache nicht mehr weiterentwickelt werden. Andere schwören auf Visual Basic und wollen ihre Sprache nicht missen. Mit C# 4.0 und VB 10.0 werden sich die Feature der beiden Sprachen wieder ein Stück näher kommen. Was aber trotz aller Annäherungen immer bleiben wird, ist die unterschiedliche Syntax; und genau da ist C# mein Favorit.
Um auf die eigentlich Frage zurückzukommen. Brauchen? Nein. Aber es ist schön wenn jeder die Wahl treffen kann, die seinem persönlichem Geschmack und Vorlieben entspricht. Ich als Hobbyentwickler kann es mir aussuchen womit ich gerne Arbeite und will diesen Vorzug auch gerne weiter nutzen.

Technorati-Tags: | |

White paper: Working with large lists in Office SharePoint Server 2007

25.02.2009 05:22:00 | Ozgur Aytekin

Microsoft performed performance testing against Microsoft® Office SharePoint® Server 2007 to determine the performance characteristics of large SharePoint lists under different loads and modes of operation. This white paper presents their findings.

The test results in this white paper are intended to demonstrate the difference in the performance characteristics of SharePoint lists containing large numbers of items when different data access types are used to present list contents. Test results in this white paper show how to optimize list performance through limits on the number of items that appear in a list, and by choosing the most appropriate method of retrieving list contents.

White paper: Working with large lists in Office SharePoint Server 2007

Scaling MySites; How Many MySites per Content DB?

25.02.2009 05:20:00 | Ozgur Aytekin

Scale-out
The primary scale-out strategy is to use multiple content databases in the MySite web application. To meet the guideline of 50,000 site collections per DB, you should plan a minimum of 2 content databases to handle 100,000 MySites.

Scale-up
To further ensure the overall performance of SharePoint when using multiple content databases, configure SQL Server so that the databases are hosted on different physical drives (spindles). This is usually possible with SAN storage solutions also. My instinct is that you'd want to balance this with the scale-out strategies and usage patterns. If you had 200,000 users with MySites and a large portion really began to use MySites heavily, then you might want to use 20 content databases distributed across 5 or 10 physical drives.

Scaling MySites; How Many MySites per Content DB?

SharePoint Products and Technologies Document: Developing Custom Applications with SharePoint Server 2007

24.02.2009 21:25:00 | Ozgur Aytekin

Learn how to build a business solution leveraging a broad range of Microsoft Office SharePoint Server 2007 Enterprise capabilities. This white paper focuses on the real-world example of an application to help consulting companies track client engagements and business performance. But the insightful lessons learned and best practices will apply wherever your next SharePoint development project takes you.

Topics include Office SharePoint Designer 2007, workflows, Excel Services 2007 and the Enterprise Search API. Whether you are a SharePoint development guru or a Microsoft .NET developer evaluating the platform, this white paper has something for you.

SharePoint Products and Technologies Document: Developing Custom Applications with SharePoint Server 2007

Einen einfachen Besucherzähler in ASP.NET verwenden.

24.02.2009 21:01:00 | Klaus Bock

Viewers Vieleicht ist dem ein oder anderen der Besucherzähler in der oberen rechten Ecke meines Blog aufgefallen der anzeigt, wie viele Besucher gerade den Blog ansehen. Genauer gesagt werden hier die aktiven Sitzungen, oder Sessions, gezählt. Wenn eine neue Session gestartet wird erhöht sich der Zähler, wird eine Sitzung beendet wird der Zähler um eins verringert. Das ist sehr einfach in der Global.asax der jeweiligen Anwendung zu realisieren. Allerdings müssen ein paar Voraussetzungen erfüllt sein:
Sitzungsdaten müssen verwendet werden und der Wert mode in der Konfigurationsgruppe SessionState muss auf den Wert InProc der SessionStateMode-Enumeration eingestellt werden. Sollten also die Sitzungsdaten in einem Session- oder SQL Server gespeichert werden, ist dieser Ansatz unbrauchbar. Schon daher ist ersichtlich, dass sich so eine Lösung nur für kleine ASP.NET Anwendungen eignet.

Sind die Voraussetzungen erfüllt, ist die Implementierung sehr einfach. Zunächst einmal muss in der aktuellen Anwendung ein Objekt erzeugt werden, welches die Anzahl der Betrachter hält. In der Methode Application-Start in der Datei Global.asax wird lediglich ein Schlüssel Wert Paar erzeugt. Den Schlüssel habe ich Viewers genannt.

void Application_Start(object sender, EventArgs e)
{
    // Schlüssel Viewers in der Anwendung erzeugen
    Application["Viewers"] = 0;

}

Wenn die Anwendung jetzt startet, wird der Schlüssel in der Anwendung erzeugt und enthält den Wert 0. Um den Wert auf einer Seite darzustellen, wird noch ein Element benötigt. Ich habe mich hier für ein Benutzersteuerelement entschieden, das lediglich ein Literal verwendet um die Daten darzustellen.

<%@ Control Language="C#" AutoEventWireup="true"
     CodeFile="Viewers.ascx.cs"
     Inherits="themes_klaus_b_Viewers" %>
<asp:Literal ID="Literal1" runat="server"></asp:Literal>

Im Codebehind des UserControl wird lediglich der Inhalt des Literal geschrieben. Natürlich könnten hier auch Inline Tags verwendet werden, doch ich stehe auf Codebehind.

using System;
using System.Web.UI;

public partial class themes_klaus_b_Viewers : UserControl
{
    protected void Page_Load(object sender, EventArgs e)
    {
        this.Literal1.Text = Application["Viewers"].ToString() +           " Besucher online";
    }
}

Bis jetzt wird allerdings noch nichts gezählt. Um den Besucherzähler, der ja eigentlich nur Sitzungen zählt, zu erhöhen verwenden wir die Methode Session_Start der Global.asax die bei jeder neu gestarteten Session von der Anwendung ausgelöst wird. Da aber theoretisch gleichzeitig von verschiedenen Aufrufern der Seite eine neue Sitzung angefordert werden kann, bietet ASP.NET die Methode Lock um Zugriffe auf den Anwendungsstatus zu synchronisieren. Natürlich muss die gesperrte Anwendung nach dem erhöhen des Zählers mit UnLock wieder frei gegeben werden.

void Session_Start(object sender, EventArgs e)
{
    // User-Zähler erhöhen.
    Application.Lock();
    Application["Viewers"] = (int)Application["Viewers"] + 1;
    Application.UnLock();
}

Genauso verhält es sich wenn eine Sitzung beendet wird.

void Session_End(object sender, EventArgs e)
{
    // User-Zähler verringern.
    Application.Lock();
    if ((int)Application["Viewers"] > 0)
    {
        Application["Viewers"] = (int)Application["Viewers"] - 1;
    }
    Application.UnLock();
}

Bis jetzt wurde alles Serverseitige erledigt. Das schließen oder beenden des Browsers bekommen wir aber nicht mit. Um auch das schließen eine Browserfenster mitzubekommen, ist ein wenig clientseitige Arbeit, oder JavaScript, nötig. Dazu muss lediglich in einem JavaScript das Window.BeforeUnload Ereignis verwendet werden. Wenn das Ereignis eintritt, wird auf dem Client ein XHTML Objekt erzeugt, welches via GET eine aspx-Seite anfordert die wiederum die aktuelle Sitzung mit Session.Abandon beendet. Da ich eine MasterPage verwende, lasse ich das JavaScript im Codebehind in der OnInit Methode mit einem StringBuilder erzeugen und anschließend registrieren. In Zeile 12 muss natürlich der korrekte Pfad zur AbandonSession.aspx angegeben werden.

protected override void OnInit(EventArgs e)
{
    // prüfen ob abandonScript bereits registriert ist
    if (!this.Page.ClientScript.         IsClientScriptBlockRegistered("abandonSession"))
    {
        // Script zum Aufruf von AbandonSession.aspx
        StringBuilder sb = new StringBuilder();
        sb.Append("function window.onbeforeunload(){");
        sb.Append("if(event.clientX > document.body.clientWidth && event.clientY < 0){");
        sb.Append("var xmlhttp = new ActiveXObject(\"Microsoft.XMLHTTP\");");
        sb.Append("xmlhttp.open(\"GET\", \"");
        sb.Append(VirtualPathUtility.ToAbsolute("~/") + "themes/klaus_b/AbandonSession.aspx");
        sb.Append("\", false);");
        sb.Append("xmlhttp.send();}");
        sb.Append("}");

        // Script Registrieren
        this.Page.ClientScript.RegisterClientScriptBlock(
              this.GetType(),
              "abandonSession",
              sb.ToString(),
              true);
    }

    // für Uplevel Browser markieren
    this.Page.ClientTarget = "uplevel";

    // Initialisieren
    base.OnInit(e);
}

Jetzt wird nur noch die Seite AbandonSession.aspx benötigt. Diese Seite muss keinen Inhalt haben. Lediglich im Page_Load Ereignis wird die aktuelle Session, wie schon weiter oben angesprochen, beendet.

using System;
using System.Web.UI;

public partial class themes_klaus_b_AbandonSession : Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        // aktuelle Sitzung beenden
        Session.Abandon();
    }
}

Jetzt ist der Besucherzähler soweit einsatzbereit. Dabei ist folgendes zu bedenken:
Die vorgestellte Variante ist keinesfalls ein präziser Zähler, da allein das ActiveXObject AFAIK nicht von allen Browsern unterstützt wird. Auch die Sicherheitseinstellungen mancher Benutzer können hier keine sauberer Zählung gewährleisten.
Es soll ja auch keine Webseiten-Statistik erstellen, sondern ist lediglich ein nettes Gimmick. Für exakte Zählungen gibt es schließlich professionelle Dienste.

Technorati-Tags: | |

XTOPIA [kompakt] – die UX/Web/RIA Roadshow 09. Kostenlos und im April/Mai vor Ort in Ihrer Stadt!

24.02.2009 18:14:04 | Steffen Ritter

Microsofts Webkonferenz XTOPIA geht auf Deutschlandtour: Gemeinsam mit dem deutschen RIA Forum und mit hochrangingen Partnern wie den Publishingexperten von Quark und den CRM-Profis von CAS präsentieren Experten von Microsoft in sechs deutschen Städten im April und Mai 2009 ein Feuerwerk der Neuheiten und Innovationen rund um die Themen Web, User Experience und Silverlight/Rich Internet Applications.

XTOPIA [kompakt] Die UX/Web/RIA Roadshow

Die Teilnehmer der kostenlosen Roadshow XTOPIA [kompakt] erwartet eine Fülle spannender Sessions zu brandaktuellen Themen von Microsoft, darunter Microsoft Surface/Multitouch, Windows 7, Internet Explorer 8, Windows Live Services für Webentwickler und natürlich zu Silverlight, sowie direkt aus dem Leben gegriffene Erfahrungsberichte von Agenturen und Softwareherstellern, spannende Gastvorträge und hilfreiche Informationen, u.a. zur Frage wie Agenturen und Webdienstleister mit Microsoft Visio Zeit und Geld sparen können.

Die Teilnahme an der XTOPIA [kompakt] ist kostenlos – allerdings sind nur jeweils ca. 100 Teilnehmerplätze pro Veranstaltungsort verfügbar, eine Anmeldung ist daher unbedingt notwendig.

Termine und Veranstaltungsorte
(Der Link führt jeweils direkt zur Anmeldung)

Die Veranstaltungen beginnen jeweils um 17.00 Uhr, Ende ist gegen 22.00 Uhr. Einlass ist jeweils ab 16.30 Uhr – es empfiehlt sich rechtzeitig zu erscheinen. Die Veranstaltung beginnt pünktlich um 17.00 Uhr, danach kann kein Einlass oder Sitzplatz mehr gewährleistet werden. Kostenlose Getränke und Verpflegung für Zwischendurch werden natürlich von Microsoft gestellt.

Partner und Sponsoren der XTOPIA [kompakt] 09

Sponsoren + Partner der XTOPIA [kompakt]

Themenübersicht
(Reihenfolge der Sessions und Inhalte können sich kurzfristig ändern)

  • UX@Microsoft: Was kommt denn da um die Ecke?
    User Experience Evangelist Clemens Lutsch nimmt Sie auf eine Reise in die neuen User Experience-Welten von Windows 7 mit, natürlich mit einem Abstecher in die faszinierende Welt von Surface Computing und Multitouch. Und er beantwortet die Frage ob und wie man seinen Computer anbrüllen kann (und sollte!), damit dieser zukünftig vernünftig darauf reagiert.
    Referent: Clemens Lutsch, Microsoft Deutschland GmbH, http://blogs.msdn.com/clemenslutsch
     
  • Das deutsche RIA Forum
    Im deutschen RIA Forum diskutieren über 2.500 Mitglieder das Thema Rich Internet Applications in allen Anwendungsbereichen und über alle Plattformen hinweg. Kompetent und neutral bietet das Forum einen hervorragenden Anlaufpunkt zur Diskussion der Vorteile der Technologien, der Business Values, zur Firmenvorstellung sowie auch als Jobbörse rund um Rich Internet Applications, Webdesign und Webentwicklung.
    Referent: Raju Bitter, Deutsches RIA Forum
    http://www.xing.com/net/ria
     
  • Barrierefreies Webdesign mit Expression Web 2 und kostenlosen Profivorlagen
    Expression Web 2 verfügt über umfangreiche Methoden zur Gestaltung von barrierefreien Websites – CSS-Profi Vladimir Simovic hat in Zusammenarbeit mit Microsoft Deutschland eigens für Expression Web 2 eine Sammlung kostenloser Vorlagen für Expression Web 2 entwickelt, mit denen auch Nicht-Profis Websites gestalten können, die sich durch gute Unterstützung wichtiger Funktionen für den barrierefreien Zugriff auszeichnen, damit Ihre Website wirklich für jedermann zugänglich ist.
    Referent: Vladimir Simovic, perun.net webwork GmbH
    http://www.perun.net
     
  • Internet Explorer 8 – Die neuen Features und was sie für Webentwickler bedeuten
    Referent: Oliver Scheer Microsoft Deutschland GmbH,
    http://blogs.msdn.com/olivers
     
  • Mit Microsoft Silverlight Next Generation Rich Internet Applications entwickeln
    Silverlight ist ein schlankes Browser-Plug-In für Rich Internet Applications (RIAs) für alle gängigen Betriebssysteme, alle gängigen Browser, und für Devices/mobile Geräte.
    Referent: Oliver Scheer Microsoft Deutschland GmbH
    http://www.microsoft.de/silverlight
     
  • Medienübergreifendes Design – Layouts direkt aus QuarkXPress ins Web mit Silverlight
    Referent: Matthias Günther, Quark
    http://8.quark.com/de
     
  • Silverlight als plattformübergreifendes Frontend für Unternehmensanwendungen – ein unabhängiger Praxisbericht
    Referent: Ludwig Neer CAS Software AG
    http://www.cas.de
     
  • Holen Sie mehr aus Ihrer Webseite heraus mit der Windows Live API für Webdesigner- und entwickler
    Referent: Frank Maenz Microsoft Deutschland GmbH
    http://messenger.live.de/webservices
     
  • PC-WARE der IT-Dienstleister für Agenturen
    Optimale Lizenzmodelle für jede Firmengröße: Agenturen, Freelancer, Entwicklungs- und Designfirmen
    Referentin: Sandra Liebe, PC-Ware
    http://www.pc-ware.de 
     
  • So sieht die Wirklichkeit aus: Silverlight und WPF in der Praxis
    Silverlight und WPF sind die neuen Technologien von Microsoft um faszinierende Online- und Offlineerlebnisse zu gestalten. Von der platformübergreifenden Webanwendung über HD-Videowelten bis hin zu intuitiven Benutzeroberflächen für Desktop-Anwendungen. In dieser Session berichten führende Agenturen aus der deutschen Designszene frei und unzensiert über ihre Erfahrungen mit Silverlight und WPF. Zugesagt haben bereits Ergosign (Karlsruhe), maximago (Hamburg) und Pixelpark AG (Köln), UID (München) und Syzygy (Frankfurt).
    Moderation: Clemens Lutsch, Microsoft Deutschland GmbH
    http://www.ergosign.de, http://www.pixelpark.de, http://www.syzygy.de, http://www.uid.com, http://www.maximago.de 

 

  • Sehen heißt verstehen!
    Wie Webdesigner und Webentwickler mit Microsoft Visio die Planung, Entwicklung und Pflege von Websites und Webanwendungen vereinfachen und das Reporting und die Überwachung der Server und Zugriffe nahezu in Echtzeit visualisieren können.
    Referent: Florian Müller Microsoft Deutschland GmbH
    http://www.sehen-heisst-verstehen.de 

Gerade online gegangen: Microsoft Student Experience -- das Studentenportal von Microsoft mit umfassende Ressourcen (nicht nur für Informatikstudenten)

24.02.2009 16:30:17 | Steffen Ritter

Mein hochgeschätzter Kollege Norbert Schumann vom Berliner Bildungsteam hat mich eben darauf aufmerksam gemacht dass die neue Microsoft Student Experience ab sofort online ist.

Die Microsoft Student Experience ist ein Portal für Studierende. Unter den drei Oberbegriffen „Studieren“, „Planen“ und „Leben gibt es ein wahres Füllhorn an Informationen, Tipps, Vorlagen zum kostenlosen Download, Lifestyle-Themen und und und… Beispielsweise Tutorials zum Thema Zeitmanagement, Hilfe und Beratung bei der Suche nach einem Auslandsstudium, aus dem Leben gegriffene Stories und mehr.

student

Sowohl vom Informationsgehalt, wie auch vom Unterhaltungswert – und auch vom Design her – ist die Website wirklich gut gelungen. Gefällt mir gut.

dreamspark

In diesem Zusammenhang auch erwähnenswert (wenn auch bereits ein Riesenerfolg und daher sicher sowieso schon bekannt): Microsoft DreamSpark: Das kostenlose Programm für Studierende mit dem sie kostenlosen Zugriff auf Microsoft Designer- und Entwicklertools haben. Natürlich Expression Studio, aber auch XNA Game Studio für Spieleentwicklung, Visual Studio und SQL Server und das Robotics Developer Studio 2008.

Links:

Besseres LiveWriter-PlugIn für SyntaxHighlighter

24.02.2009 12:46:49 | Albert Weinert

Nachdem ich nun auch meinen Arbeitslaptop auf Windows 7 umgestellt habe (es gab Probleme mit einer speziellen VPN-Software). Wurde natürlich einiges neu installiert, so auch der Live Writer.

Ich war also auf der Suche nach dem PlugIn für LiveWriter mit dem man Quelltexte mit für SyntaxHighlighter den ich hier zur Formatierung dieser verwenden einfach einfügen kann.

Der Name war natürlich entfallen und den Blogpost von Scott Hanselmann war auch nicht so schnell griffbereit.

Also zum Glück mal Tante Google gefragt und dabei ist folgendes zum vorschein gekommen.

http://www.codeplex.com/wlwSyntaxHighlighter

Es ist nicht das von Scott Hanselmann empfohlene, sondern ein besseres.

Die Vorteile gegenüber dem anderen, dessen Namen ich immer noch nicht weiß.

  • Vorschau in LiveWriter
  • Quelltexte wieder bearbeitbar
  • Optionen einfach änderbar ohne neu einzufügen

Großartig bekannt scheint es nicht zu sein, wie die Download zahlen zeigen, dies jedoch zu unrecht.

Also hiermit sowohl Download- und Installations-Befehl!

Eine Anmerkung noch, es kann noch nicht die neue Syntax vom Syntaxhighlighter 2.0. Somit muss für die Version 2.0 das Kompatibilitätsskript eingebunden werden.

Microsoft: Projektleitertag mit dem Focus Agile Software Entwicklung

24.02.2009 12:36:00 | Christian Binder

Am  25.03.2009 – München und 17.06.2009 – Köln findet ein Projektleitertag mit dem Focus Agile Software Entwicklung
statt. Falls Sie noch eher formal Entwickeln, aber dennoch die Vorzüge der Agilen Entwicklung kennen lernen möchten bietet sich diese
Veranstaltung hervorragend an. Mehr Infos inkl. Agenda  gibt’s hier

Chris

Windows Azure – In die Wolke deployen

24.02.2009 11:16:03 | Jan Schenk

Nachdem ich gerade auf der Suche nach einem hilfreichen Tipp war, welche URLs ich für Web-Services über WCF in meinem Code verwenden muss, wenn ich die Applikation in die Cloud publishe, und noch keine deutsche Seite gefunden habe, die sich damit befasst, hier die Lösung.

Ich habe den Endpoint meines Web-Services händisch im Code definiert, wie das im vierten Teil des BuildingWindowsAzureServices-Labs aus dem Windows Azure Trainingkits unter http://www.microsoft.com/azure/trainingkit.mspx vorgeschlagen wurde.

Ich muss statt der localhost-Domain auf Port 81 den Domainnamen der Staging- bzw. der Production-Umgebung verwenden. <crypticGuidString>.cloudapp.net bzw. <yourname>.cloudapp.net.

Da ich das aber nicht jedes mal im Code ändern möchte, bietet es sich an, das in der ServiceConfiguration.cscfg abzulegen, da ich diese im Web-Interface von Azure bearbeiten kann, ohne dafür das Projekt nochmal deployen zu müssen.

Ein Definitionseintrag in der ServiceDefinition.csdef sieht dann zB so aus:

   1: <WorkerRole name="WorkerRole">
   2:   <ConfigurationSettings>
   3:     <Setting name="DeploymentURL"/>
   4:   </ConfigurationSettings>
   5: </WorkerRole>

 

Die lokale ServiceConfiguration.cscfg so:

   9:   <Role name="WorkerRole">
  10:     <Instances count="1"/>
  11:     <ConfigurationSettings>
  12:       <Setting name="DeploymentURL" value="http://localhost:81/"/>
  13:     </ConfigurationSettings>
  14:   </Role>

 

Und auf dem Staging-System im Azure-Webinterface ändert man das wie folgt (die GUID muss natürlich eurer GUID entsprechen, wie ihr sie unter dem Staging-Cubic als URL vorfindet):

   1: <Role name="WorkerRole">
   2:   <Instances count="1"/>
   3:   <ConfigurationSettings>
   4:     <Setting name="DeploymentURL" value="http://guidguid-guid-guid-guid-guidguidguid.cloudapp.net/"/>
   5:   </ConfigurationSettings>
   6: </Role>

 

In der WorkerRole.cs könnt ihr dann dementsprechend auf diesen Konfigurationseintrag zugreifen:

   1: string url = RoleManager.GetConfigurationSetting("DeploymentURL") + "MessageLogger.svc";
   2: BasicHttpBinding bind = new BasicHttpBinding();
   3: EndpointAddress endpoint = new EndpointAddress(url);

 

Falls ihr das für die WebRole machen wollt, denkt daran, dass diese ihren eigenen Eintrag in der ServiceConfiguration.cscfg und ServiceDefinition.csdef hat.

Eine explizite Angabe des Ports ist nicht mehr notwendig, da der Web-Service nun auf Port 80 läuft.

Ich habe das ganze in der Staging-Umgebung zum Laufen bekommen, im Production-System kam aber die WebRole nicht übers Initialisieren hinaus, ich denke, dass das aber an der Fabric und nicht am Code lag.

25 Jahre Microsoft Press - 2 Bücher kostenlos bekommen

24.02.2009 00:59:30 | Robert Mühsig

image Microsoft Press wird 25 Jahre alt und verschenkt zwei Bücher bis zum 25. Februar 2009. Für den Download muss man sich für den MS Press Newsletter registrieren. 
Folgende Bücher werden angeboten:

ShareThis

Webcasts: Testing Practices mit Visual Studio Team System 2008 und PEX

23.02.2009 14:40:27 | Christian Binder

Testing Practices mit Visual Studio Team System 2008

Leider kommt Quality in den meisten Software Projekten immer noch zu kurz. In diesem Webcast spreche ich mit Thomas Schissler Artiso über Testing Practicies, der Fokus liegt darauf bestimmte Aspekte zu beleuchten, die zu einer umsetzbaren Test-Strategie führen. Thomas Schissler stellt dabei Practices vor, die sich in seinem Team bewährt haben und die wir diskutieren. Falls Sie keine Test-Strategie haben schauen Sie mal rein :-) Falls schon, lassen Sie uns wissen, was für Sie gut funktioniert und was nicht. Es ist kein Deep Dive für bestimmte VSTS2008 Testarten. Allerdings werden wir ein paar Helper Tools, wie den Testcase Generator vorstellen, die einfach Zeit sparen. Oder das man mit dem VSTS Load Test sehr gut Multiuser Test durchführen kann, die Defekte finden, welche sonst erst in der Produktion auftreten…

Download hier

 

Ergänzend haben wir noch ein kurze Einführung zu PEX geplant, die ab dem 12.3 live sein wird.

Unit-Test Generierung mit PEX - Whitebox Testing

Download ab dem 12.3 hier


Viel Spass

Chris

Internet Explorer 8: My MSDN Accelerator

22.02.2009 09:56:15 | Kay Giza

Der Internet Explorer 8 (IE8) bietet eine klasse Funktion. Wann immer Sie z.B. ein Wort oder eine Wortfolge auf einer Webseite markieren, wird automatisch eine sehr interessante Funktion aktiviert. Markieren Sie einfach Text auf einer Internetseite und klicken Sie anschließend auf das blaue Schnellinfo-Symbol IE8 Accelerators Icon über der Auswahl, um Stadtpläne und Übersetzungen oder Definitionen zu einzelnen Wörtern anzeigen zu lassen, Inhalte per E-Mail an andere Personen zu senden, eine Suchanfrage zu einer Suchmaschine zu senden oder gar einzukaufen und vieles mehr.

Mit den neuen Schnellinfos im IE8 erledigen Sie viele alltägliche Aufgaben im Internet schnell und effektiv - direkt von einer Internetseite aus per Mausklick, ohne eine andere Seite ansteuern zu müssen. In deutschen Version des Internet Explorers genannten Schnellinfos (englisch: Accelerators) können Sie z.B. ein Wort markieren und lassen es bei einem Internetdienst wie z.B. MSDN Online nachschlagen. Es öffnet sich ein kleines Fenster und Sie sehen sofort die Suchergebnisse! Einfacher geht es nicht. Probieren Sie es doch mal mit einem Wort aus diesem Text aus.

Wie viele Schritte müssen Sie in Ihrem aktuellen Browser ausführen, um eine bestimmte Adresse in einem Stadtplan zu finden, ein Wort zu übersetzen oder andere tägliche Routineaufgaben im Internet zu erledigen? Bisher waren dazu immer mehrere Vorgänge wie Kopieren und Einfügen auf den betreffenden Internetseiten notwendig. Internet Explorer 8 enthält standardmäßig bereits einige nützliche Schnellinfos, weitere können Sie über die Add-on-Galerie hinzufügen. Durch Klicken auf "Add-ons verwalten" im Menü "Extras" oben rechts im Browser können Sie Schnellinfos auch problemlos löschen, deaktivieren oder aktivieren. Passen auch Sie einfach Ihren Internet Explorer an Ihre persönlichen Bedürfnisse an.

MSDN Online war seit der allerersten PreView-Version des IE8 mit einem Schnellinfo-Service vertreten. Letzte Woche nun haben wir aufgrund von zahlreichen E-Mails und regem Austausch mit Kunden unser MyMSDN Schnellinfo aktualisiert und angepasst. Auch als einer der wenigen Anbieter mit einer Sofortvorschau im Schnellinfo haben wir diese auch angepasst und optimiert.

Probieren Sie es doch mal aus und schlagen Sie einen Begriff bei My MSDN nach!

Screenshot:
MSDN Online: Nachschlagen mit Schnellinfos bei My MSDN
[Bitte klicken Sie auf das Bild für einer vergrößerte Darstellung]


Für Interessierte und Web-Entwickler hier einige hilfreiche Links zum Erstellen von Schnellinfos:

PS: Auch haben wir sehr viele Kommentare bekommen, wieso man als Webseiten-Betreiber oder Web-Entwickler auf http://www.ieaddons.com/de/ keine Informationen zu Dokumentationen oder Anleitungen rund um Schnellinfos (Accelerators), Web Slices oder Thematische Suchen (Searchproviders) findet. Auch wir finden dies optimierungsbedürftig - auch wenn der Dienst sich wie der IE8 auch - noch im Beta-Stadium befindet. Wir haben auch dieses Feedback weitergeleitet und sind guter Hoffnungen, dass dies zeitnah optimiert wird.



This post is powered by www.Giza-Blog.de | Giza-Blog.de: RSS Feed
Visit:  MSDN Online | Follow MSDN Online on Twitter | Follow Kay Giza on Twitter
Daily News on MSDN:   MSDN Aktuell
© Copyright 2006-2009 Kay Giza. All rights reserved. Legal

Brandneu: Composite Application Guidance für WPF & Silverlight im Bereich Unternehmensanwendungen

20.02.2009 18:39:13 | Peter Kirchner

Der Composite Client Application Guide ist eine umfangreiche (englischsprachige) Dokumentation und erläutert ausführlich, wie sich mit relativ geringem Aufwand komplexe modulare Unternehmensanwendungen (LOB = Line of Business) für Windows mit WPF – und plattformübergreifend für Windows/Linux/Mac mit Silverlight entwickeln lassen.

Typische LOB-Anwendungen bestehen meist aus mehreren unabhängigen Modi und Ansichten und kombinieren komplexe, multimediale Datenvisualisierung, rollenspezifisches Anwenderverhalten und flexible Interaktionen. Sie müssen den schwierigen Spagat meistern, gleichzeitig „für die Ewigkeit“ und ebenso für permanenten Wandel entwickelt zu werden. Die Lebensdauer einer solchen Anwendung im Unternehmen bemisst sich oft in mehr als fünf Jahren, manchmal Jahrzehnten. Über diesen Zeitraum wandeln sich diese Anwendungen meist von einfachen Grundprogrammen hin zu äußerst komplexen modularen und aus vielen individuelle funktionierenden Einzelkomponenten bestehenden Anwendungen. 

Der neue Composite Application Guide bietet exzellentes Know-How und viele fertige Implementierungen zur Entwicklung derartiger Anwendungen und ist Pflichtlektüre für alle Entwickler die Unternehmenssoftware mit WPF oder Silverlight entwickeln.

Aus dem Inhalt: 

  • Composite Application Library
  • Beispielimplementierungen in WPF & Silverlight
  • QuickStarts (9)
  • How-Tos (26)
  • Massenhaft Dokumentation zu allem das Sie jemals über UI Modelle und Software Client Architektur wissen wollten

Weitere Informationen: http://www.codeplex.com/CompositeWPF
Direkt zum Download: http://www.microsoft.com/downloads/details.aspx?FamilyID=fa07e1ce-ca3f-4b9b-a21b-e3fa10d013dd&DisplayLang=en

Verschiedene ClickOnce Application Launch Issues

20.02.2009 11:33:05 | Lars Keller

Gaurav Bodar hat eine Übersicht zu verschiedenen Launch Issues bei ClickOnce gebloggt. Der Einfachheit halber habe ich diese kopiert. :-)

1)An Error occurred during writing to the disk. Please check that disk is not full

-On Vista machine C:\Document and settings\<User>\Local settings\Apps this folder dint have Administrators under Security.

Most probably User Profile issue. create New user profile to resolve the issue.

2) IE doesn’t recognize MIME (.application) for ClickOnce
Message : .application “Unknown MIME Type” , You want to save the file or Cancel

-Provide Registry permission through SubInACL tool to overcome IE issue

3) Office assemblies to integrate to Outlook fails during Deployment With ClickOnce
Strong name signature not valid for this assembly stdole.dll

-Office assemblies should not be distributed randomly. Either PIA should be installed on target machine or added as prerequisite to ClickOnce Project

4) ClickOnce Launch second time gives Error

The remote server returned an error: (401) Unauthorized on ClickOnce application

- Application was getting Launched from Shortcut - shortcut was available at
C:\Documents and Settings\USER.HM\Application Data\Microsoft\Internet Explorer\Quick Launch\ Track-It! 8 Technician Client (2).appref-ms

-Add-on for IE was not allowing Launch from shortcut. Create fresh shortcut from Application Exe (located inside ClickOnce Cache) would resolve the issue

5) ClickOnce application doesn’t launch on client machine (No Error)

- Proventia Desktop and Kingston Mouse Driver would not allow Clickonce to run on the machine. There are other known Application as well.

6)Client cannot launch the application, Error : Store metadata "AppType" is not valid

- Issue is as follows:
DFSVC.exe (ClickOnce service) makes a call into System.Deployment.Application.ComponentStore.GetPropertyAppType
which then calls System.UInt16.Parse
appTypeStr in this case is "0" which is a valid string for the number 0. However, we're getting the following exception:
System.FormatException
Input string was not in a correct format

This is Known issue and Working Fix is available at KB 942460

Gaurav bietet noch weitere Informationen zu dem Thema ClickOnce in seinem Blog an, kann ich nur empfehlen.



This weblog is sponsored by netcreate OHG.

ASP.NET MVC Framework: User Group Tour

20.02.2009 11:28:18 | Albert Weinert

So kann es gehen, aus einem kleine Tweet wurde eine kleine User Group Tour.

Ich bin somit dieses Jahr Unterwegs in Deutschland und werde ausführlich über das ASP.NET MVC Framework berichten und zeigen wie man damit Web-Anwendungen entwickelt.

Folgende Termine sind bis jetzt geplant.

3. März 2009

In meiner Heimat-User Group geht es los http://www.dnug-koeln.de und warte bis zum

10. Juni 2009

wo ich Karlsruhe gastiere, bei der http://www.dotnet-ka.de/ von dort aus geht’s am

11. Juni 2009

nach Ulm http://www.dotnet-ulm.de/ zur dortigen Usertreffen.

18. Juni 2009

Da verschlägt es mich an den Bodensee zur frisch gegründeten http://www.dotnet-kk.de/

21. Juli 2009

Nach etwas Pause begebe ich mich nach http://www.dotnet-braunschweig.de/ zum derzeitigem Abschluss der Tour.

Ich freue mich total drauf unterwegs zu sein und andere User Groups und deren Leute kennenzulernen.

Verschiedene ClickOnce Application Launch Issues

20.02.2009 10:33:05 | Lars Keller

Gaurav Bodar hat eine Übersicht zu verschiedenen Launch Issues bei ClickOnce gebloggt. Der Einfachheit halber habe ich diese kopiert. :-)

1)An Error occurred during writing to the disk. Please check that disk is not full

-On Vista machine C:\Document and settings\<User>\Local settings\Apps this folder dint have Administrators under Security.

Most probably User Profile issue. create New user profile to resolve the issue.

2) IE doesn’t recognize MIME (.application) for ClickOnce
Message : .application “Unknown MIME Type” , You want to save the file or Cancel

-Provide Registry permission through SubInACL tool to overcome IE issue

3) Office assemblies to integrate to Outlook fails during Deployment With ClickOnce
Strong name signature not valid for this assembly stdole.dll

-Office assemblies should not be distributed randomly. Either PIA should be installed on target machine or added as prerequisite to ClickOnce Project

4) ClickOnce Launch second time gives Error

The remote server returned an error: (401) Unauthorized on ClickOnce application

- Application was getting Launched from Shortcut - shortcut was available at
C:\Documents and Settings\USER.HM\Application Data\Microsoft\Internet Explorer\Quick Launch\ Track-It! 8 Technician Client (2).appref-ms

-Add-on for IE was not allowing Launch from shortcut. Create fresh shortcut from Application Exe (located inside ClickOnce Cache) would resolve the issue

5) ClickOnce application doesn’t launch on client machine (No Error)

- Proventia Desktop and Kingston Mouse Driver would not allow Clickonce to run on the machine. There are other known Application as well.

6)Client cannot launch the application, Error : Store metadata "AppType" is not valid

- Issue is as follows:
DFSVC.exe (ClickOnce service) makes a call into System.Deployment.Application.ComponentStore.GetPropertyAppType
which then calls System.UInt16.Parse
appTypeStr in this case is "0" which is a valid string for the number 0. However, we're getting the following exception:
System.FormatException
Input string was not in a correct format

This is Known issue and Working Fix is available at KB 942460

Gaurav bietet noch weitere Informationen zu dem Thema ClickOnce in seinem Blog an, kann ich nur empfehlen.

Verschiedene ClickOnce Application Launch Issues

20.02.2009 01:33:00 | Lars Keller

Gaurav Bodar hat eine Übersicht zu verschiedenen Launch Issues bei ClickOnce gebloggt. Der Einfachheit halber habe ich diese kopiert. :-)

1)An Error occurred during writing to the disk. Please check that disk is not full

-On Vista machine C:\Document and settings\<User>\Local settings\Apps this folder dint have Administrators under Security.

Most probably User Profile issue. create New user profile to resolve the issue.

2) IE doesn’t recognize MIME (.application) for ClickOnce
Message : .application “Unknown MIME Type” , You want to save the file or Cancel

-Provide Registry permission through SubInACL tool to overcome IE issue

3) Office assemblies to integrate to Outlook fails during Deployment With ClickOnce
Strong name signature not valid for this assembly stdole.dll

-Office assemblies should not be distributed randomly. Either PIA should be installed on target machine or added as prerequisite to ClickOnce Project

4) ClickOnce Launch second time gives Error

The remote server returned an error: (401) Unauthorized on ClickOnce application

- Application was getting Launched from Shortcut - shortcut was available at
C:\Documents and Settings\USER.HM\Application Data\Microsoft\Internet Explorer\Quick Launch\ Track-It! 8 Technician Client (2).appref-ms

-Add-on for IE was not allowing Launch from shortcut. Create fresh shortcut from Application Exe (located inside ClickOnce Cache) would resolve the issue

5) ClickOnce application doesn’t launch on client machine (No Error)

- Proventia Desktop and Kingston Mouse Driver would not allow Clickonce to run on the machine. There are other known Application as well.

6)Client cannot launch the application, Error : Store metadata "AppType" is not valid

- Issue is as follows:
DFSVC.exe (ClickOnce service) makes a call into System.Deployment.Application.ComponentStore.GetPropertyAppType
which then calls System.UInt16.Parse
appTypeStr in this case is "0" which is a valid string for the number 0. However, we're getting the following exception:
System.FormatException
Input string was not in a correct format

This is Known issue and Working Fix is available at KB 942460

Gaurav bietet noch weitere Informationen zu dem Thema ClickOnce in seinem Blog an, kann ich nur empfehlen.

Deutsche Windows Vista Benutzer im Nachteil

19.02.2009 17:30:00 | Michael Schwarz

Nachdem ich hier, hier, hier und hier schon über das Fehlverhalten von Windows Vista (die Beta von Windows 7 ist auch betroffen), habe ich verschiedene Sprachversionen von Windows Vista ausprobiert, und bis jetzt leider noch keine gefunden, bei der das Problem auch auftritt.

Interessant ist, dass in vielen Sprachen das Programme Verzeichnis Program Files heißt, d.h. da gibt es gar nichts anderes als den englischen Namen.

Vielleicht liegt es an einem Hotfix, Service Pack oder irgendeiner Software, die auf meinem Rechner installiert ist. Deswegen werde ich jetzt mal meinen Windows Update Server die anderen Sprachen auch herunterladen lassen. Mal sehen, vielleicht weiß ich morgen mehr.


Google mag das französische Windows Vista nicht

19.02.2009 17:20:00 | Michael Schwarz

Heute habe ich unter Hyper-V ein französisches Windows Vista Business installiert. Nach der Installation bemerkte ich, dass Windows Vista Business im Französischen gar nicht Business so heißt:

Windows Vista heißt im Französischen Vista Professional

Ich habe schnell mal auf der französischen Wikipedia Windows Vista Seite nach den Versionen geschaut, und tatsächlich heißt Windows Vista Business in Frankreich Windows Vista Professional.

Ein Versuch den Wikipedia Artikel mit Google ins Deutsche zu übersetzen machte mich dann sprachlos: behauptet Google doch, dass Windows Vista Professional (französisch) auf Deutsch übersetzt Windows XP Professional ist.

Windows Vista Professional


Comics mit Silverlight

19.02.2009 16:30:00 | Oliver Scheer

Für einen gerade stattgefundenen Webcast für PC-Ware habe ich eine kleine Silverlight basierte Comic-Engine erstellt.

image

Aber da ich leider Entwickler und kein echter kreativer “Storyteller” bin, fehlt mich noch eine richtig gute, witzige Story. Also bitte her mit lustigen Ideen.

Der Comic selber ist hier live zu sehen: http://www.the-oliver.com/project/comic . (Korrigierter Link)

Das gesamte Visual Studio Projekt liegt jetzt übrigens unter dem folgenden Link zum Download bereit:

Brandneu: Composite Application Guidance für WPF & Silverlight im Bereich Unternehmensanwendungen

18.02.2009 21:19:00 | Steffen Ritter

Ich bin immer wieder positiv überrascht wie viel Energie und Mühe Microsoft investiert, Partnern die Arbeit mit unseren Plattformen zu erleichtern und sogar große Teile der Arbeit ganz abzunehmen. Dieses Engagement ist meiner Meinung nach einzigartig – aber das ist vermutlich der Schlüsselfaktor eines erfolgreichen Werkzeug- und Plattformanbieters. Schließlich ist eine Plattform im Endeffekt nichts anderes als etwas auf das sich Menschen stellen, um größer zu sein und mehr zu erreichen.

Ein hervorragendes Beispiel dafür ist der Composite Client Application Guide, der soeben in mein Postfach geflattert ist: Diese umfangreiche (englischsprachige) Dokumentation erläutert ausführlich, wie sich mit relativ geringem Aufwand komplexe modulare Unternehmensanwendungen (LOB = Line of Business) für Windows mit WPF – und plattformübergreifend für Windows/Linux/Mac mit Silverlight entwickeln lassen.

Typische LOB-Anwendungen bestehen meist aus mehreren unabhängigen Modi und Ansichten und kombinieren komplexe multimediale Datenvisualisierung, rollenspezifisches Anwenderverhalten und flexible Interaktionen. Sie müssen den schwierigen Spagat meistern, gleichzeitig „für die Ewigkeit“ und ebenso für permanenten Wandel entwickelt zu werden. Die Lebensdauer einer solchen Anwendung im Unternehmen bemisst sich oft in mehr als fünf Jahren, manchmal Jahrzehnten. Über diesen Zeitraum wandeln sich diese Anwendungen meist von einfachen Grundprogrammen hin zu äußerst komplexen modularen und aus vielen individuelle funktionierenden Einzelkomponenten bestehenden Anwendungen. 

Der neue Composite Application Guide bietet exzellentes Know-How und viele fertige Implementierungen zur Entwicklung derartiger Anwendungen und ist Pflichtlektüre für alle Entwickler die Unternehmenssoftware mit WPF oder Silverlight entwickeln.

Aus dem Inhalt: 

  • Composite Application Library
  • Beispielimplementierungen in WPF & Silverlight
  • QuickStarts (9)
  • How-Tos (26)
  • Massenhaft Dokumentation zu allem das Sie jemals über UI Modelle und Software Client Architektur wissen wollten

Weitere Informationen: http://www.codeplex.com/CompositeWPF  
Direkt zum Download: http://www.microsoft.com/downloads/details.aspx?FamilyID=fa07e1ce-ca3f-4b9b-a21b-e3fa10d013dd&DisplayLang=en

Kostenlose Technology Roadshow zu Cloud Computing, Software as a Service, Web Services und BizSpark am 25. März in München

18.02.2009 19:33:00 | Steffen Ritter

Derzeit läuft die Technology Roadshow zu dem Thema „Microsoft und die Zukunft der Software“ die in Kooperation mit verschiedenen Gründerzentren aufgesetzt wurde. Schwerpunktthemen sind u.a. die Roadmap der Microsoft-Plattform, moderne Benutzerschnittstellen und auch Microsoft BizSpark – unser Programm um Startups mehrere Jahre lang quasi kostenlos mit der kompletten Microsoft-Plattform an Servern und Entwicklersoftware auszustatten (...jedes mal wenn ich mich mit BizSpark beschäftige kriege ich unbändige Lust ein eigenes Startup zu gründen. Die komplette Software/Web/Entwicklungsplattform mehr oder weniger "für Lau" nutzen, woohoo! Wenn nur mein aktueller Job nicht schon so klasse wäre …)

Wie auch immer, besagt Roadshow wendet sich an alle, die ihr Business und ihre Zukunft im Web suchen, darunter natürlich ganz besonders so genannte ISVs (= unabhängige Softwarehersteller), Startups und Studenten. Das Sprecherpodium ist hochkarätig besetzt, beispielsweise mit Dr. Said Zahedani – Chef der Developer Platform & Strategy Group, die Abteilung der ich als Designer Marketing Manager ebenfalls angehöre. 

Ort ist die TU München – Institut für Informatik, am 25. März ab 16 Uhr. Eintritt ist frei.
Weitere Informationen hier http://www.mbpw.de/index.php?id=244

Outlook 2007: Kontextmenü (Context Menu) einer E-Mail (MailItem) anpassen

18.02.2009 15:49:38 | Lars Keller

In Outlook 2007 ist ein “Lightweight” Word Editor eingebaut. “Lightweight” bedeutet, dass nicht alle Funktionalität zur Verfügung steht, wie man es aus dem Word-Objektmodell gewohnt ist. Gerade wieder musste ich feststellen das etwas fehlt. Damit andere nicht solange suchen müssen wie ich, hier mein Aha-Effekt:

ol_mailbody_context Ich wollte das Kontextmenü (Context Menu) eines MailItem-Object um einen eigenen Eintrag erweitern. Das Kontextmenü  erscheint, wenn man auf den E-Mail Body klickt (s. Screenshot).

Leider bietet das WordEditor-Object in Outlook keine Möglichkeit die entsprechenden CommandBar Buttons dem Kontextmenü hinzuzufügen.

Dieses Verhalten ist gewollt und wurde bei der Integration des “Lightweight” Word Editors nicht mit implementiert.

Vor Outlook 2007 ging dies, wenn man Word als Email Editor eingestellt hatte. Das lag daran, dass dann ein richtiger Winword.exe Prozess gestartet wurde und nicht wie in Outlook 2007 eine In-Proc “Lightweight” Word Version zur Verfügung steht.



This weblog is sponsored by netcreate OHG.

Outlook 2007: Kontextmenü (Context Menu) einer E-Mail (MailItem) anpassen

18.02.2009 14:49:38 | Lars Keller

In Outlook 2007 ist ein “Lightweight” Word Editor eingebaut. “Lightweight” bedeutet, dass nicht alle Funktionalität zur Verfügung steht, wie man es aus dem Word-Objektmodell gewohnt ist. Gerade wieder musste ich feststellen das etwas fehlt. Damit andere nicht solange suchen müssen wie ich, hier mein Aha-Effekt:

ol_mailbody_contextIch wollte das Kontextmenü (Context Menu) eines MailItem-Object um einen eigenen Eintrag erweitern. Das Kontextmenü  erscheint, wenn man auf den E-Mail Body klickt (s. Screenshot).

Leider bietet das WordEditor-Object in Outlook keine Möglichkeit die entsprechenden CommandBar Buttons dem Kontextmenü hinzuzufügen.

Dieses Verhalten ist gewollt und wurde bei der Integration des “Lightweight” Word Editors nicht mit implementiert.

Vor Outlook 2007 ging dies, wenn man Word als Email Editor eingestellt hatte. Das lag daran, dass dann ein richtiger Winword.exe Prozess gestartet wurde und nicht wie in Outlook 2007 eine In-Proc “Lightweight” Word Version zur Verfügung steht.

c:\Programme und c:\Program Files – langsam nervt es mich

18.02.2009 12:55:00 | Michael Schwarz

Hier mal noch ein paar Tests zum Thema c:\Programme und Zugriff verweigert:

  • c:\Programme im Windows Explorer eingeben, geht nicht
  • c:\Programme\desktop.ini geht, auch jede andere Datei in c:\Program Files, dem eigentlichen Ort
  • c:\Programme\Windows NT geht überraschender Weise auch, dann sieht die Verzeichnisstruktur nur komisch aus, es taucht zweimal c:\Programme auf

image

Vergleicht man das weiter mit c:\Benutzer, dann stellt man fest, dass dort auch die Unterverzeichnisse in den Vorschlägen auftauchen, d.h. die beiden Verzeichnisse reagieren irgendwie unterschiedlich.

image

Hm, wer hat das bitte so gewollt?

Ich habe jetzt mal auf meinem Rechner alle versteckten Dateien sowie die Systemdateien anzeigen lassen, und da muss ich überrascht feststellen, das Programme, Documents and Settings, Dokumente und Einstellungen solche Links sind, aber c:\Benutzer nicht.

image

Und noch ein Hinweis: klickt man auf die Eigenschaften des Benutzer Verzeichnisses, dann taucht auf dem Freigabe Tab der Begriff Users auf:

image

Zusammenfassung: c:\Benutzer geht wohl deswegen nicht, weil dieses nicht wie c:\Programme zweimal auftaucht, einmal mit und einmal ohne dem Linksymbolzusatz.

Jetzt ist jemand anderes dran, ich kann nicht mehr.


Muss Microsoft Englisch Kurse anbieten? – Oder was genau ist “By Design”?

18.02.2009 12:14:00 | Michael Schwarz

Ich habe in den letzten Monaten ein Dutzend Bugs oder ein in meinen Augen fehlerhaftes Verhalten von Microsoft Produkten gemeldet. Immer öfters bekomme ich nun folgende Antwort:

Bezüglich der beschriebenen Problematik des Cases habe ich eine Stellungsnahme vom Microsoft Global Technology Center eingeholt.

Das Ergebnis ist, dass das Verhalten by Design ist.

In dem letzten Support Call ging es um die Eingabe / Autovervollständigen von C:\Programme auf einem Deutschen Windows Vista (und Windows 7). Gibt man im Windows Explorer nur den Anfang, also z.B. C:\Prog ein, dann zeigt Windows eine Auswahl an Verzeichnissen mit diesem Anfang an.

image

Wählt man nun c:\Programme aus der vorgeschlagenen Liste aus, erhält man eine Fehlermeldung:

image

Für alle, die nicht wissen, warum das eigentlich so ist, nachfolgend mal die Erklärung vom Microsoft Global Technology Center:

Behavior is not a bug, its by design.

How it works: Even on a German Vista, the folder "C:\Programme" doesn't exist. The correct folder name is "C:\program files".

So you need to type "c:\program files" in explorer in order to access that directory. If on a german system or German mui, explorer will then show the "programme"  directory.

Background: Explorer is using the name from internal ressources like desktop.ini to display the localized folder name. Thus you will need to enter "c:\program files". But there is more to consider. On the German system, there exists a hardlink named "C:\Programme". This hardlink is only used for older applications which are not designed for Vista, in order to install in the correct directory. So for example you can go into  "C:\programme" by using CMD, but when you try to look whats in by using "dir *.*" you will get nothing, as it is no directory.

As Windows Explorer cannot use this hardlink itself but needs a real directory instead, you will hit the "access denied" error when trying to use Explorer and  typing "C:\Programme" into its address bar.

Ok, das wussten wir ja schon, aber warum wird dann nicht C:\Program Files anstatt C:\Programme angeboten? Oder warum kann der Windows Explorer nicht einfach diesen Link öffnen, so wie er es ja kann, wenn man mit der Maus drauf klickt?

Ich finde es schon sehr verrückt, dass man, wenn man mit der Tastatur arbeiten will, so etwas wie die Vorschläge gar nicht verwenden kann. Arbeitet man mit der Maus, dann kommen diese Vorschläge ja gar nicht, warum bitte gibt es dann diese Funktion?

Mir sieht das alles nach einer sehr einfach gestrickten Umsetzung von gleichen Pfaden in unterschiedlichen Sprachversionen aus.

Schade Microsoft, das alles immer By Design ist. Vielleicht zahlt ihr meinem Opa mal einen Englisch Kurs, denn der weiß mit Program Files nichts anzufangen.

Nebenbei ist zu erwähnen, dass C:\Benutzer aus so ein Link ist, und dort funktioniert es. Also muss der Windows Explorer Unterschiede machen. Ich vermute mal, dass es an den Rechten der Verzeichnisse liegt.


Video VSTS 2010 CTP Architecture Explorer

18.02.2009 10:28:00 | Christian Binder

Wie Gestern angekündigt hier ein Video zum Architecture Explorer. Der Architecture Explorer hilft bestehende Solutions zu analysieren und visualisieren. Wer Lust hat, zu sehen, was mit den CTP bits geht, für den gibts dieses Video. In der Demo schauen wir uns kurz ein recht umfangreiches Codeplex Projekt “Rawr”. Rawr ist ein Editor für World of Warcraft (WOW) Charakter und hat > 40k Zeilen Code.

Get Microsoft Silverlight

Download via Channel9  

Viel Spass

Chris

Outlook 2007: Kontextmenü (Context Menu) einer E-Mail (MailItem) anpassen

18.02.2009 05:49:03 | Lars Keller

In Outlook 2007 ist ein “Lightweight” Word Editor eingebaut. “Lightweight” bedeutet, dass nicht alle Funktionalität zur Verfügung steht, wie man es aus dem Word-Objektmodell gewohnt ist. Gerade wieder musste ich feststellen das etwas fehlt. Damit andere nicht solange suchen müssen wie ich, hier mein Aha-Effekt:

ol_mailbody_contextIch wollte das Kontextmenü (Context Menu) eines MailItem-Object um einen eigenen Eintrag erweitern. Das Kontextmenü  erscheint, wenn man auf den E-Mail Body klickt (s. Screenshot).

Leider bietet das WordEditor-Object in Outlook keine Möglichkeit die entsprechenden CommandBar Buttons dem Kontextmenü hinzuzufügen.

Dieses Verhalten ist gewollt und wurde bei der Integration des “Lightweight” Word Editors nicht mit implementiert.

Vor Outlook 2007 ging dies, wenn man Word als Email Editor eingestellt hatte. Das lag daran, dass dann ein richtiger Winword.exe Prozess gestartet wurde und nicht wie in Outlook 2007 eine In-Proc “Lightweight” Word Version zur Verfügung steht.

HowTo: SQL Tabellen Beziehungen erstellen per Drag´n´Drop

18.02.2009 01:16:13 | Robert Mühsig

imageDurch die Verknüpfung von Primär- und Fremdschüsseln in Datenbanken bekommt man viele Vorteile. Der Größte ist sicherlich die Datenintegrität, aber auch etwas abseits der Datenbank-Welt können z.B. O/R Mapper diese "Beziehungen" zwischen Tabellen nutzen und so bereits ein strukturierteres Datenmodell generieren. 
Solche Verknüpfungen zwischen Tabellen kann man auch im SQL Server schnell erstellen, ohne sich durch X-Dialoge zu klicken - ganz einfach per Drag´n´Drop

(more…)

ShareThis

Office SharePoint Server 2007 deployment guide and checklists

17.02.2009 19:27:00 | Ozgur Aytekin

This white paper contains information that can help you plan and manage each stage of your Microsoft Office SharePoint Server 2007 deployment, including:

- A sample deployment plan
- Checklists to guide you through planning the following aspects of your deployment:
-- Information architecture
-- Development and configuration policies
-- Ongoing operations
-- Infrastructure

White paper: Office SharePoint Server 2007 deployment guide and checklists

Weitere Vortragstermine stehen fest…

17.02.2009 17:55:50 | Lars Keller

Meine “kleine” User Group Tour geht weiter:

Vortragsthema bei allen zwei Terminen ist VSTO (Visual Studio Tools for Office), bzw. Office Business Application.

Ich freue mich! :)



This weblog is sponsored by netcreate OHG.

Weitere Vortragstermine stehen fest…

17.02.2009 16:55:50 | Lars Keller

Meine “kleine” User Group Tour geht weiter:

Vortragsthema bei allen zwei Terminen ist VSTO (Visual Studio Tools for Office), bzw. Office Business Application.

Ich freue mich! :)

Video zu VSTS2010 CTP Camano und UICoded Test

17.02.2009 09:26:00 | Christian Binder

Letzte Woche habe ich 2 Webcasts zu VSTS2010 CTP aufgenommen, die in kürze veröffentlicht werden. Im Focus der Webcasts steht der Solution Architekt, wobei ich nicht nur die Features der Architekt Edition behandelt habe, sondern auch Themen wie System Test und Neuerungen in den Bereichen Requirement Management/Reporting angesprochen habe. Zudem habe ich mich entschieden ein Teil der Demos des Webcast auch als kurzen Clip bereitzustellen, für alle die, die den Kontext nicht benötigen und nur die Demos mit dem CTP sehen wollen :-) Im ersten Video seht Ihr Camano, den Manual Testrunner und einen CodeUI Test.

Get Microsoft Silverlight

Video gibt's auf Channel9  

Morgen gibts den Architecture Explorer :-)

Viel Spass

Chris 

Weitere Vortragstermine stehen fest…

17.02.2009 07:55:05 | Lars Keller

Meine “kleine” User Group Tour geht weiter:

Vortragsthema bei allen zwei Terminen ist VSTO (Visual Studio Tools for Office), bzw. Office Business Application.

Ich freue mich! :)

4. ALT.NET DE Online Meeting: Test Driven Development

16.02.2009 12:14:16 | Albert Weinert

Am Montag den 23.02.2009 findet im Rahmen von VAN DE ein Vortrag über Test Driven Development/Behavior Driven Development statt.

Gabrial Schenker hat sich bereit erklärt in seiner unnachahmlichen Art uns TDD/BDD näher zu bringen.

Wie können wir Code schreiben, der möglichst fehlerfrei, robust, und leicht änderbar ist und es auch bleibt? Wie implementieren wir nur wirklich benötigte Funktionalität und sind von allem Anfang an auf zu erwartende Änderungswünsche des Kunden vorbereitet? Die Antwort auf diese Fragen lautet Test-getriebene Entwicklung (TDD).

Wie erreichen wir, dass Entwickler und Fachexperten oder allgemein Stakeholder dieselbe Sprache sprechen? Behavior driven development (BDD) liefert uns eine mögliche Antwort darauf.

Start ist 20 Uhr, seid pünktlich.

Anmeldung und Teilnahmeinformationen:.

http://www.altdotnet.de/OnlineMeeting_090223.ashx

Ein Headset hilft wenn man Fragen stellen möchte, jedoch besteht auch die Möglichkeit nur mitzuhören und Fragen per Tastatur einzureichen.

Wir freuen uns euch dort zu begrüßen.

4. ALT.NET DE Online Meeting: Test Driven Development

16.02.2009 12:14:16 | Albert Weinert

Am Montag den 23.02.2009 findet im Rahmen von VAN DE ein Vortrag über Test Driven Development/Behavior Driven Development statt.

Gabrial Schenker hat sich bereit erklärt in seiner unnachahmlichen Art uns TDD/BDD näher zu bringen.

Wie können wir Code schreiben, der möglichst fehlerfrei, robust, und leicht änderbar ist und es auch bleibt? Wie implementieren wir nur wirklich benötigte Funktionalität und sind von allem Anfang an auf zu erwartende Änderungswünsche des Kunden vorbereitet? Die Antwort auf diese Fragen lautet Test-getriebene Entwicklung (TDD).

Wie erreichen wir, dass Entwickler und Fachexperten oder allgemein Stakeholder dieselbe Sprache sprechen? Behavior driven development (BDD) liefert uns eine mögliche Antwort darauf.

Start ist 20 Uhr, seid pünktlich.

Anmeldung und Teilnahmeinformationen:.

http://www.altdotnet.de/OnlineMeeting_090223.ashx

Ein Headset hilft wenn man Fragen stellen möchte, jedoch besteht auch die Möglichkeit nur mitzuhören und Fragen per Tastatur einzureichen.

Wir freuen uns euch dort zu begrüßen.

Miguel de Icaza zum Launch von Moonlight (Silverlight für Linux) plus eine interessante Historie der Entwicklung von Moonlight

16.02.2009 11:31:32 | Steffen Ritter

Miguel de Icaza – seines Zeichens der Mastermind hinter der „Open Source .NET-Variante Mono“ und auch der Schöpfer der offiziellen Linux-Version von Silverlight – Moonlight – hat zum Release der ersten finalen Version von Moonlight eine interessante Historie der Entwicklung in seinem Blog geschrieben. Wie kam es dazu, was hat ihn fasziniert, was unterscheidet Moonlight 1.0 von einer reinen Silverlight 1.0-Implementierung, welche Rolle spielt Microsoft und wie hat Microsoft ihn und Novell speziell bei der Frage der Implementierung der eigentlich kostenpflichtigen Codes unterstützt…

xefqew
(IronPython 3D in Moonlight)

Lesenswert für alle, die sich für Silverlight/Moonlight interessieren und für alle die einen Einblick erhalten wollen, wie proaktiv Microsoft Moonlight unterstützt. Direkt zu Miguel de Icazas Blog: http://tirania.org/blog/archive/2009/Feb-11.html

Zu Besuch bei der DNUG Regensburg

15.02.2009 20:28:19 | Lars Keller

Letzten Montag war ich bei der .NET User Group Regensburg zu Besuch und habe einen Vortrag zu dem Thema VSTO (Visual Studio Tools for Office) gehalten.

In diesem habe ich die verschiedenen Möglichkeiten aufgezeigt Excel, Word und Outlook zu erweitern, angefangen vom Ribbon Customizing über Word Content Controls bis hin zum Einsatz von WPF & LINQ. Des Weiteren haben wir über das Deployment und über das kommende VSTO 4 & C# 4.0 gesprochen.

Wie versprochen hier meine Slides und Demo-Codebeispiele.

Download Slides

Download Code

Der Abend hat großen Spaß gemacht und das Zwickerl Bier war auch sehr lecker! ;-)



This weblog is sponsored by netcreate OHG.

Zu Besuch bei der DNUG Regensburg

15.02.2009 19:28:19 | Lars Keller

Letzten Montag war ich bei der .NET User Group Regensburg zu Besuch und habe einen Vortrag zu dem Thema VSTO (Visual Studio Tools for Office) gehalten.

In diesem habe ich die verschiedenen Möglichkeiten aufgezeigt Excel, Word und Outlook zu erweitern, angefangen vom Ribbon Customizing über Word Content Controls bis hin zum Einsatz von WPF & LINQ. Des Weiteren haben wir über das Deployment und über das kommende VSTO 4 & C# 4.0 gesprochen.

Wie versprochen hier meine Slides und Demo-Codebeispiele.

Download Slides

Download Code

Der Abend hat großen Spaß gemacht und das Zwickerl Bier war auch sehr lecker! ;-)

Zu Besuch bei der DNUG Regensburg

15.02.2009 10:28:01 | Lars Keller

Letzten Montag war ich bei der .NET User Group Regensburg zu Besuch und habe einen Vortrag zu dem Thema VSTO (Visual Studio Tools for Office) gehalten.

In diesem habe ich die verschiedenen Möglichkeiten aufgezeigt Excel, Word und Outlook zu erweitern, angefangen vom Ribbon Customizing über Word Content Controls bis hin zum Einsatz von WPF & LINQ. Des Weiteren haben wir über das Deployment und über das kommende VSTO 4 & C# 4.0 gesprochen.

Wie versprochen hier meine Slides und Demo-Codebeispiele.

Download Slides

Download Code

Der Abend hat großen Spaß gemacht und das Zwickerl Bier war auch sehr lecker! ;-)

ChkDskAll ‒ ChkDsk For All Drives

14.02.2009 16:41:57 | Alexander Groß

The Windows file systems (NTFS and FAT) are able to automatically detect if they are broken. You can even specify when that automatic check should be performed. But sometimes you would want to force a file system check, for example when Windows suddenly behaves strangely for no obvious reason. (For example last year, the day before I went on a month-long vacation, Vista suddenly refused to boot.)

In order to schedule a file system check for the next reboot you will have to

  1. Open an elevated command prompt or log in as an administrator,
  2. Run chkdsk <Drive>: /f,
  3. Rinse and repeat for all installed drives.

This task isn’t easy for inexperienced users, especially given that they might not know about the chkdsk command line tool in the first place. They could use the UI, but would have to repeat the process for each and every drive nonetheless.

Chkdsk UI

To make this task easier, I wrote a little .NET application that automates scheduling file system check for all drives at the next boot. Just double-click ChkDskAll.exe, enter administrative credentials and wait for the goodness to happen.

ChkDskAll In Action

If a drive has already been scheduled for scanning, it won’t be scheduled a second time. To exclude drives from being included in the scan, have a look at ChkdskAll.exe.config. For example, TrueCrypt drives should be excluded if you do not mount them as fixed drives.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <appSettings>
        <!-- The list of excluded drives, e. g. "CDE". -->
        <add key="ExcludeDrives" value="YZ"/>
    </appSettings>
</configuration>

ChkDskAll ‒ ChkDsk For All Drives

14.02.2009 16:41:57 | Alexander Groß

The Windows file systems (NTFS and FAT) are able to automatically detect if they are broken. You can even specify when that automatic check should be performed. But sometimes you would want to force a file system check, for example when Windows suddenly behaves strangely for no obvious reason. (For example last year, the day before I went on a month-long vacation, Vista suddenly refused to boot.)

In order to schedule a file system check for the next reboot you will have to

  1. Open an elevated command prompt or log in as an administrator,
  2. Run chkdsk <Drive>: /f,
  3. Rinse and repeat for all installed drives.

This task isn’t easy for inexperienced users, especially given that they might not know about the chkdsk command line tool in the first place. They could use the UI, but would have to repeat the process for each and every drive nonetheless.

Chkdsk UI

To make this task easier, I wrote a little .NET application that automates scheduling file system check for all drives at the next boot. Just double-click ChkDskAll.exe, enter administrative credentials and wait for the goodness to happen.

ChkDskAll In Action

If a drive has already been scheduled for scanning, it won’t be scheduled a second time. To exclude drives from being included in the scan, have a look at ChkdskAll.exe.config. For example, TrueCrypt drives should be excluded if you do not mount them as fixed drives.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <appSettings>
        <!-- The list of excluded drives, e. g. "CDE". -->
        <add key="ExcludeDrives" value="YZ"/>
    </appSettings>
</configuration>

Creating Remote Desktop Connection Files On The Fly With PowerShell

13.02.2009 18:28:51 | Alexander Groß

About a month ago I got myself an IBM Lenovo X301 laptop. It’s the third machine I regularly use: I have a desktop at work, one workstation at home and now there also is the sweet X301. Even with only the second machine at work in place I found it crucial to keep my work environments automatically in sync. Live Mesh has been of great help with that. Despite being a CPU hog at times, it’s a great tool to synchronize your files across machines.

Now with Remote Desktop Connection files (*.rdp) there is actually a bit more work involved than just syncing files. My workstations both have two monitors and I like Remote Desktop windows to be placed on the second monitor. The laptop, on the other hand just has a single display (surprise!) and less screen real estate. Because of the varying screen resolutions a RDP window on my home workstation will not fit the display area at work without obscuring other UI  elements like the taskbar. On the laptop, the situation gets worse as the display is simply not large enough to fit my default window size of 1500x1024 pixels.

Desktops

The dimensions and location of the Remote Desktop window is stored in the plain-text RDP file itself. A conceivable solution might be to create three RDP files per server, one for each of my machines. Actually this would involve touching three files every time I need to change some value for the connection. Horrible.

Fortunately there is PowerShell to the rescue. There’s even a script that you can use to create RDP files on the fly. You’ll have to patch line 178 to make it work (see below). Also make the Set-RDPSetting function global by uncommenting lines 87 and 216.

# Old
$content += @("${tempname}:$($datatypes[$tempname]):$tempvalue")

# New
$content += @("${tempname}:$($datatypes[$tempname]):$tempvalue" + [System.Environment]::NewLine)

Now that we're set to use the Set-RDPSetting function, let us create a script to create a RDP file in the system’s temporary folder. See the highlighted lines below, there are three hashtables:

  • $workstations for your workstations (mine are AXL, FIRIEL and EOWYN),
  • $servers for the RDP servers you want to connect to and
  • $defaults for default connection properties.
. c:\Path\To\Set-RDPSetting.ps1

$workstations = @{
	'AXL' = @{
		'desktopwidth' = 1500
		'desktopheight' = 1024
		}
	'FIRIEL' = @{
		'desktopwidth' = 1300
		'desktopheight' = 800
		}
	'EOWYN' = @{
		'desktopwidth' = 1300
		'desktopheight' = 800
		}
	}
	
$servers = @{
	'192.168.6.161' = @{
		'session bpp' = 24
		'domain' = 'DEVELOPMENT'
		}
	'host.with.ssl.certificate' = @{
		'session bpp' = 24
		'authentication level' = 2
		'disable wallpaper' = $true
		'desktopwidth' = 1280
		'desktopheight' = 1024
		}
	}

# http://dev.remotenetworktechnology.com/ts/rdpfile.htm
$defaults = @{
	'allow desktop composition' = $true
	'allow font smoothing' = $true
	'alternate shell' = $null
	'audiomode' = 2
	'authentication level' = $false
	'auto connect' = $true
	'autoreconnection enabled' = $true
	'bitmapcachepersistenable' = $true
	'compression' = $true
	'connect to console' = $false
	'desktopheight' = $null
	'desktopwidth' = $null
	'disable cursor setting' = $false
	'disable full window drag' = $false
	'disable menu anims' = $true
	'disable themes' = $false
	'disable wallpaper' = $false
	'displayconnectionbar' = $true
	'domain' = $null
	'drivestoredirect' = '*'
	'full address' = $args[0]
	'keyboardhook' = 1
	'maximizeshell' = $false
	'negotiate security layer' = $true
	'prompt for credentials' = $false
	'promptcredentialonce' = $true
	'redirectclipboard' = $true
	'redirectcomports' = $false
	'redirectdrives' = $false
	'redirectposdevices' = $false
	'redirectprinters' = $false
	'redirectsmartcards' = $false
	'remoteapplicationmode' = $false
	'screen mode id' = 1
	'server port' = 3389
	'session bpp' = 32
	'shell working directory' = $null
	'smart sizing' = $true
	'username' = 'agross' # Does not really matter what's in here.
	# http://blogs.msdn.com/ts/archive/2008/09/02/specifying-the-ts-client-start-location-on-the-virtual-desktop.aspx
	'winposstr' = '0,3,2046,129,3086,933'	
	}

Next we check if the local machine has a configuration section in the $workstations hashtable and the script has been called with parameters.

if ($workstations.Keys -inotcontains $Env:ComputerName)
{
	"The local computer is not configured."
	exit
}

if ($args -eq $null -or $args.Length -eq 0)
{
	"No arguments. Supply the RDP server name as the first argument."
	exit
}

Note the Patch-Defaults function and how we use it to add and replace keys in the $defaults hashtable. The replacement values come from $workstations and $servers, with the server settings having precedence. This way, you can configure the connection profile according to the current machine and the server to which the connection will be made. Flexibility!

function Patch-Defaults
{
	param(
		[Hashtable] $defaults = $(Throw "Defaults hashtable is missing"),
		[Hashtable] $patch = $(Throw "Patch hashtable is missing")
		)

	end
	{
		if ($patch -ne $null)
		{
			$patch.GetEnumerator() | ForEach-Object { $defaults[$_.Name] = $_.Value }
		}
	}
}	

Patch-Defaults -Defaults $defaults -Patch $workstations[$Env:ComputerName.ToUpper()]
Patch-Defaults -Defaults $defaults -Patch $servers[$args[0].ToLower()]
$defaults.GetEnumerator() | Sort-Object -Property Name

Now that we have all connection properties in place, we create a temporary connection file from the hashtable key/value pairs and start mstsc.exe with that file.

$tempFile = [System.IO.Path]::GetTempFileName()
$defaults.GetEnumerator() | Sort-Object -Property Name | Set-RDPSetting -Path $tempFile -Name $_ -Value $_

# For debugging purposes.
#"Temporary file: " + $tempFile
#Get-Content $tempFile
#Read-Host

$MstscCommand = $Env:SystemRoot + "\system32\mstsc.exe"
&$MstscCommand $tempFile

How do we use the script we just created?

You can either create batch files calling the script or use a tool like SlickRun to execute PowerShell with the script.

@powershell.exe -noprofile -command .\Open-CustomRDP.ps1 your.server.example

Another tedious task has been automated!

Creating Remote Desktop Connection Files On The Fly With PowerShell

13.02.2009 18:28:51 | Alexander Groß

About a month ago I got myself an IBM Lenovo X301 laptop. It’s the third machine I regularly use: I have a desktop at work, one workstation at home and now there also is the sweet X301. Even with only the second machine at work in place I found it crucial to keep my work environments automatically in sync. Live Mesh has been of great help with that. Despite being a CPU hog at times, it’s a great tool to synchronize your files across machines.

Now with Remote Desktop Connection files (*.rdp) there is actually a bit more work involved than just syncing files. My workstations both have two monitors and I like Remote Desktop windows to be placed on the second monitor. The laptop, on the other hand just has a single display (surprise!) and less screen real estate. Because of the varying screen resolutions a RDP window on my home workstation will not fit the display area at work without obscuring other UI  elements like the taskbar. On the laptop, the situation gets worse as the display is simply not large enough to fit my default window size of 1500x1024 pixels.

Desktops

The dimensions and location of the Remote Desktop window is stored in the plain-text RDP file itself. A conceivable solution might be to create three RDP files per server, one for each of my machines. Actually this would involve touching three files every time I need to change some value for the connection. Horrible.

Fortunately there is PowerShell to the rescue. There’s even a script that you can use to create RDP files on the fly. You’ll have to patch line 178 to make it work (see below). Also make the Set-RDPSetting function global by uncommenting lines 87 and 216.

# Old
$content += @("${tempname}:$($datatypes[$tempname]):$tempvalue")

# New
$content += @("${tempname}:$($datatypes[$tempname]):$tempvalue" + [System.Environment]::NewLine)

Now that we're set to use the Set-RDPSetting function, let us create a script to create a RDP file in the system’s temporary folder. See the highlighted lines below, there are three hashtables:

  • $workstations for your workstations (mine are AXL, FIRIEL and EOWYN),
  • $servers for the RDP servers you want to connect to and
  • $defaults for default connection properties.
. c:\Path\To\Set-RDPSetting.ps1

$workstations = @{
	'AXL' = @{
		'desktopwidth' = 1500
		'desktopheight' = 1024
		}
	'FIRIEL' = @{
		'desktopwidth' = 1300
		'desktopheight' = 800
		}
	'EOWYN' = @{
		'desktopwidth' = 1300
		'desktopheight' = 800
		}
	}
	
$servers = @{
	'192.168.6.161' = @{
		'session bpp' = 24
		'domain' = 'DEVELOPMENT'
		}
	'host.with.ssl.certificate' = @{
		'session bpp' = 24
		'authentication level' = 2
		'disable wallpaper' = $true
		'desktopwidth' = 1280
		'desktopheight' = 1024
		}
	}

# http://dev.remotenetworktechnology.com/ts/rdpfile.htm
$defaults = @{
	'allow desktop composition' = $true
	'allow font smoothing' = $true
	'alternate shell' = $null
	'audiomode' = 2
	'authentication level' = $false
	'auto connect' = $true
	'autoreconnection enabled' = $true
	'bitmapcachepersistenable' = $true
	'compression' = $true
	'connect to console' = $false
	'desktopheight' = $null
	'desktopwidth' = $null
	'disable cursor setting' = $false
	'disable full window drag' = $false
	'disable menu anims' = $true
	'disable themes' = $false
	'disable wallpaper' = $false
	'displayconnectionbar' = $true
	'domain' = $null
	'drivestoredirect' = '*'
	'full address' = $args[0]
	'keyboardhook' = 1
	'maximizeshell' = $false
	'negotiate security layer' = $true
	'prompt for credentials' = $false
	'promptcredentialonce' = $true
	'redirectclipboard' = $true
	'redirectcomports' = $false
	'redirectdrives' = $false
	'redirectposdevices' = $false
	'redirectprinters' = $false
	'redirectsmartcards' = $false
	'remoteapplicationmode' = $false
	'screen mode id' = 1
	'server port' = 3389
	'session bpp' = 32
	'shell working directory' = $null
	'smart sizing' = $true
	'username' = 'agross' # Does not really matter what's in here.
	# http://blogs.msdn.com/ts/archive/2008/09/02/specifying-the-ts-client-start-location-on-the-virtual-desktop.aspx
	'winposstr' = '0,3,2046,129,3086,933'	
	}

Next we check if the local machine has a configuration section in the $workstations hashtable and the script has been called with parameters.

if ($workstations.Keys -inotcontains $Env:ComputerName)
{
	"The local computer is not configured."
	exit
}

if ($args -eq $null -or $args.Length -eq 0)
{
	"No arguments. Supply the RDP server name as the first argument."
	exit
}

Note the Patch-Defaults function and how we use it to add and replace keys in the $defaults hashtable. The replacement values come from $workstations and $servers, with the server settings having precedence. This way, you can configure the connection profile according to the current machine and the server to which the connection will be made. Flexibility!

function Patch-Defaults
{
	param(
		[Hashtable] $defaults = $(Throw "Defaults hashtable is missing"),
		[Hashtable] $patch = $(Throw "Patch hashtable is missing")
		)

	end
	{
		if ($patch -ne $null)
		{
			$patch.GetEnumerator() | ForEach-Object { $defaults[$_.Name] = $_.Value }
		}
	}
}	

Patch-Defaults -Defaults $defaults -Patch $workstations[$Env:ComputerName.ToUpper()]
Patch-Defaults -Defaults $defaults -Patch $servers[$args[0].ToLower()]
$defaults.GetEnumerator() | Sort-Object -Property Name

Now that we have all connection properties in place, we create a temporary connection file from the hashtable key/value pairs and start mstsc.exe with that file.

$tempFile = [System.IO.Path]::GetTempFileName()
$defaults.GetEnumerator() | Sort-Object -Property Name | Set-RDPSetting -Path $tempFile -Name $_ -Value $_

# For debugging purposes.
#"Temporary file: " + $tempFile
#Get-Content $tempFile
#Read-Host

$MstscCommand = $Env:SystemRoot + "\system32\mstsc.exe"
&$MstscCommand $tempFile

How do we use the script we just created?

You can either create batch files calling the script or use a tool like SlickRun to execute PowerShell with the script.

@powershell.exe -noprofile -command .\Open-CustomRDP.ps1 your.server.example

Another tedious task has been automated!

Virtual Earth – Routendetails in HTML rendern

13.02.2009 17:28:15 | Jan Schenk

Ich bin mal wieder schockiert. Mehr als das, ich bin platt. Total überrascht.

Warum? Weil es mal wieder so einfach war.

Was? Siehe Überschrift.

renderroute

 

 

Ich habe vorher eine Anfrage bekommen auf meinen Webcast “Virtual Earth Routenberechnung”, wie man auf die Details der Route zugreifen kann. Ich also einfach mal ausprobiert: Neues Projekt, eine Karte eingebettet, eine Route berechnet und dann ein bisschen im Netz gesucht. Voila. Über “onservergetdirections=[…]” als Parameter der Virtual Earth-Karte lässt sich eine Funktion aufrufen, die als Argumente die berechnete Route übergeben bekommt.

 

 

 

 

Das ganze sieht dann so aus:

Default.aspx:

   1: <asp:ScriptManager ID="ScriptManager1" runat="server">
   2: </asp:ScriptManager>
   3: <div>
   4:     <ve:Map ID="Map1" runat="server" Height="400px" Width="400px" ZoomLevel="4" 
   5:         onservergetdirections="Map1_ServerGetDirections" />
   6:     <asp:UpdatePanel ID="UpdatePanel1" runat="server">
   7:         <ContentTemplate>
   8:             From:
   9:             <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
  10:             &nbsp;To:
  11:             <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
  12:             <asp:Button ID="Button1" runat="server" Text="Route Me!" 
  13:                 onclick="Button1_Click" />
  14:                 <br />
  15:                 <asp:Label ID="RouteLegs" runat="server"></asp:Label>
  16:         </ContentTemplate>
  17:     </asp:UpdatePanel>
  18: </div>

 

Default.aspx.cs:

   1: protected void Button1_Click(object sender, EventArgs e)
   2: {
   3:     RouteOptions ro = new RouteOptions();
   4:     ro.DistanceUnit = RouteDistanceUnit.Kilometer;
   5:     ro.DrawRoute = true;
   6:     ro.SetBestMapView = true;
   7:  
   8:     List<string> locations = new List<string>();
   9:     locations.Add(TextBox1.Text);
  10:     locations.Add(TextBox2.Text);
  11:  
  12:     Map1.GetDirections(locations, ro);
  13: }
  14:  
  15:  
  16: protected void Map1_ServerGetDirections(object sender, Route e)
  17: {
  18:     int num = 0;
  19:     List<RouteLeg> rlegs = e.RouteLegs;
  20:     foreach (RouteLeg leg in rlegs)
  21:     {
  22:         List<RouteItineraryItem> items = leg.Itinerary.Items;
  23:         foreach (RouteItineraryItem item in items)
  24:         {
  25:             RouteLegs.Text += "Instruction " + num++ + ": <b>" + 
  26:                 item.Text + 
  27:                 "</b> - Distance: <b>" +  
  28:                 item.Distance + 
  29:                 "</b> - Time: <b>" + 
  30:                 item.Time + 
  31:                 "</b><br />";
  32:         }
  33:     }
  34:     string time = Convert.ToString(e.Time / 60 / 60);
  35:     Button1.Text = "Time: " + time;
  36: }

 

Gut, ein bisschen suchen musste ich, bis ich mich durch das SDK von VE gekämpft hatte (da ist noch einiges an Potential für mehr).

Vielleicht bekomme ich noch mehr Durchblick, wenn mich das nächste Mal jemand nach etwas frägt. Also los!

Die ersten 5 Anfragen bekommen eine Antwort =)!

Bis dann,
jan

MSDN Guide oder: Per Anleitung durch die Galaxis

13.02.2009 14:59:06 | Oliver Scheer

Neu bei MSDN? Neu bei Microsoft? Da ist der Durchblick bei den vielfältigen Entwickler-Ressourcen hier auf dem deutschsprachigen Microsoft Web-Portal zugegebenermaßen manchmal nicht ganz einfach. Mit dem Mitte 2007 gestarteten Programmführer erleichtern wir Ihnen bisher Tag bei Tag die Orientierung auf MSDN Online. Der „MSDN Guide“ liefert Ihnen kompakt und übersichtlich Links zu den wichtigsten Info-Angeboten und Software-Downloads aus dem deutschsprachigen Microsoft Entwickler-Universum - insgesamt einige hundert Web-Fundstellen, die Sie mit nur 3 Mausklicks erreichen.
Mit mehr als 600 Aktualisierungen, Hinweisen und Erklärungen zu neuen Produkten, Technologien und Services von Microsoft wartet der MSDN Guide nun im Februar 2009 auf. Seit dem 11.02.2009 ist es nun noch einfacher, die ersten Schritte mit der Microsoft-Plattform zu gehen. Probieren Sie es aus!

ASP.NET CodeClip – Das File-Upload Control

13.02.2009 14:24:31 | Jan Schenk

Get Microsoft Silverlight

 

Hochladen von Dateien auf den Server kann ziemlich kompliziert sein. Sicherheit, Zuverlässigkeit und Performance sind Punkte, die es in selbstentwickelten Lösungen zu beachten gilt. Wie so oft gibt es in ASP.NET ein vorgefertigtes Control, das einem den Großteil dieser Arbeit abnimmt und auf Standards innerhalb des .NET-Frameworks zurückgreift.
In diesem Einsteiger-Video seht ihr, wie man das Control integriert und was es zu beachten gibt.
Außerdem gibt es fast keine Voraussetzungen, die euch davon abhalten würden, es einfach mal nachzubauen. Alles was ihr benötigt ist Visual Studio 2008 oder Visual Web Developer.

Default.aspx:

   1: <form id="form1" runat="server">
   2: <div>
   3:     <asp:FileUpload ID="FileUpload1" runat="server" />
   4:     <asp:Button ID="Button1" runat="server"
   5:         Text="Upload File" onclick="Button1_Click" />
   6:     <br />
   7:     <asp:Label ID="UploadDetails" runat="server"></asp:Label>
   8: </div>
   9: </form>

 

und
Default.aspx.cs:

   1: using System;
   2: using System.Collections.Generic;
   3: using System.Linq;
   4: using System.Web;
   5: using System.Web.UI;
   6: using System.Web.UI.WebControls;
   7:  
   8: namespace WebApplication2
   9: {
  10:     public partial class _Default : System.Web.UI.Page
  11:     {
  12:         protected void Page_Load(object sender, EventArgs e)
  13:         {
  14:  
  15:         }
  16:  
  17:         protected void Button1_Click(object sender, EventArgs e)
  18:         {
  19:             UploadDetails.Text = "Filename: " + FileUpload1.FileName + "<br />";
  20:             UploadDetails.Text += "Content-Type: " + FileUpload1.PostedFile.ContentType + "<br />";
  21:  
  22:             string filePath = Server.MapPath("~/Uploads/" + FileUpload1.FileName);
  23:             FileUpload1.SaveAs(filePath);
  24:         }
  25:     }
  26: }

 

Und vergesst nicht – so wie ich – den Ordner anzulegen, in den ihr hochladen wollt ;-) !

Das Video ist übrigen bei channel9 gehostet, unserem großartigen Evangelisten-Spielplatz. Schaut euch da gerne mal um!

Viel Spaß beim Ausprobieren und lasst mich wissen, wenn ihr Kommentare, Probleme oder Kritik habt!

Ajax.NET M! kommt ins Networking Toolkit

13.02.2009 10:30:00 | Michael Schwarz

Ajax.NET M!, eine für das .NET Micro Framework angepasste Version von Ajax.NET Professional wird nun in meine kleinen Netzwerk Bibliothek Sammlung aufgenommen.

Auf CodePlex ist nun ein HTTP Server, ein DNS Resolver als auch eine XBee Bibliothek verfügbar. Alle DLLs werden unter den drei Frameworks (Compact, Micro und Desktop) laufen, auch wenn dafür noch ein paar Anpassungen gemacht werden müssen.

Besonders freut es mich, dass die XBee Bibliothek schon nach kurzer Zeit in vielen Projekten läuft, auch z.B. bei den verschiedenen Wettbewerben wie Dare To Dream Different Challenge oder Spark Contest.


Kostenlose Eclipse-IDE für Silverlight – es geht voran! (+ Video)

13.02.2009 09:48:56 | Steffen Ritter

Ich habe es bereits mehrfach erwähnt, Microsoft finanziert eine kostenlose Eclipse-IDE zur Entwicklung von Silverlightanwendungen für alle die wider besseres Wissen nicht die großartigen Expression-Tools, Visual Studio oder die ebenfalls kostenlosen Express-Werkzeuge für Silverlight verwenden wollen, aus welchen Gründen auch immer.

Seit der ersten Veröffentlichung der Eclipse Tools für Silverlight hat sich einiges getan, so wurde auf der Website des Projekts weiteres Material für Java Entwickler veröffentlicht, insbesondere zur Zusammenarbeit bzw. Interoperabilität zwischen Silverlightanwendungen und REST bzw. SOAP (JAX-WS/CXF) Java Web Services.

Ein kurzer Überblick per Video:

(Das Video ist auch via YouTube verfügbar.)

Weitere ausführliche Infos dazu im englischsprachigen Interoperability-Blog: http://blogs.msdn.com/interoperability/archive/2009/02/07/eclipse-and-silverlight-another-interoperability-journey-has-begun.aspx

Web Server Controls ganz einfach selber machen (Teil 1)

13.02.2009 02:08:00 | Jürgen Gutsch

Hiermit starten Peter und ich mal eine kleine Artikelserie zur Erstellung von Web Server Controls.

Vielfach sollen Funktionen in Anwendungen mehrfach verwendet oder verteilt werden. Also in mehreren Webanwendungen zum Einsatz kommen. Das geht bekanntlich am einfachsten, indem diese Funktionen in separate Klassenbibliotheken ausgelagert werden. Die Anwendungen die diese Funktionen nutzen möchten, müssen diese Klassenbibliothek nur als Referenz einbinden.

Wie sieht das nun mit Web Server Controls aus? Ganz genauso. Ein Web Server Control ist ja im Prinzip nichts anderes als eine Klasse die von Control, WebControl oder einem konkreten Control (wie z. B: LinkButton, siehe auch hier: WebControls erweitern) erbt. Microsoft nennt diese selbsterstellten Web Server Controls übrigens “Web Custom Control”.

Das Visual Studio bietet bereits ein Template für die Erstellung von Custom Controls an. So lässt sich in einer neuen Klassenbibliothek einfach über “New Item…” ein neues “ASP.NET Server Control” einfügen. Wählt man dieses aus wird automatisch eine neue klasse eingefügt, die wie folgt aufgebaut ist:

[DefaultProperty("Text")]
[ToolboxData("<{0}:WebCustomControl1 runat=server></{0}:WebCustomControl1>")]
public class WebCustomControl1 : WebControl
{
  [Bindable(true)]
  [Category("Appearance")]
  [DefaultValue("")]
  [Localizable(true)]
  public string Text
  {
    get
    {
      String s = (String)ViewState["Text"];
      return ((s == null) ? String.Empty : s);
    } 
    set
    {
      ViewState["Text"] = value;
    }
  } 
  protected override void RenderContents(HtmlTextWriter output)
  {
    output.Write(Text);
  }
}

Wenn wir die Attribute (in eckigen Klammern) erst einmal missachten sehen wir eine Klasse welche von WebControl erbt, eine eigene Eigenschaft namens “Text” enthält, sowie die überschriebene Methode RenderContents().

Das Attribut “Text” speichert den Wert im ViewState der Seite ab, bzw. ließt diesen aus. In der Methode RenderContents() wird der Wert aus der Eigenschaft “Text” über den HtmlTextWriter ausgegeben.

Das Control kann ich, so wie es ist, schon benutzen und wie Folgt an einen Placeholder auf der Seite ausgeben:

WebCustomControl1 c1 = new WebCustomControl1
{
  ID = "c1",
  Text = "Hallo Welt"
};
PlaceHolder.Controls.Add(c1);

Das Ergebnis sieht so aus:

<span id="c1">Hallo Welt</span>

Custom Controls die von WebControl erben, umgibt immer ein <span>-Tag, was nicht immer gewollt ist. Aus diesem Grund ist es Sinnvoll die Eigenschaft TagKey zu überschrieben, um z. B: ein <div>-Tag zu rendern:

protected override HtmlTextWriterTag TagKey
{
  get { return HtmlTextWriterTag.Div; }
}

Ergebnis:

<div id="c1">
    Hallo Welt
</div>

siehe auch hier: Von WebControl abgeleitetes CustomControl - Haupt Html Element festlegen

Ein Nachteil an dem Beispiel oben ist allerdings das Rendern des Controls per HtmlTextWriter. Man ist damit zwar sehr Flexibel und kann den HTML Code selber erzeugen, benötigt allerdings mehr Schreibarbeit. Das Ausgeben einer TextBox, mit Label und eines zugehörigen Buttons könnte so aussehen:

protected override void RenderContents(HtmlTextWriter output)
{
  output.WriteBeginTag("label");
  output.WriteAttribute("for", this.ClientID +"_TextBox");
  output.Write(">");
  output.WriteEncodedText(Text);
  output.WriteEndTag("label");
  output.WriteBeginTag("input");
  output.WriteAttribute("type", "text");
  output.WriteAttribute("id", this.ClientID + "_TextBox");
  output.WriteAttribute("name", this.UniqueID + "$TextBox");
  output.Write(" />");

  output.WriteBeginTag("input");
  output.WriteAttribute("type", "submit");
  output.WriteAttribute("id", this.ClientID + "_Submit");
  output.WriteAttribute("name", this.UniqueID + "$Submit");
  output.WriteAttribute("value", "Submit");
  output.Write(" />");
}

Eine andere schnellere Variante ist das erzeugen und das Hinzufügen der Controls in der OnInit. Das Rendern übernimmt dann die klasse WebControl, bzw. Control von der wir geerbt haben:

private Label label;
private TextBox textBox;
private Button button;

protected override void OnInit(EventArgs e)
{
  base.OnInit(e);

  label = new Label
  {
    ID = "Label",
    AssociatedControlID = "TextBox"
  };
  Controls.Add(label);

  textBox = new TextBox
  {
    ID = "TextBox"
  };
  Controls.Add(textBox);

  button = new Button
  {
    ID = "Button",
    Text = "Submit"
  };
  Controls.Add(button);
}

protected override void OnPreRender(EventArgs e)
{
  base.OnPreRender(e);

  label.Text = Text;
}

Hinweis 1: Damit das erzeugen der Controls in der OnInit funktioniert, muss zwingend das Interface INamingContainer implementiert werden, da das Control sonst nicht mehrfach auf der Seite eingebunden werden kann und da das Control sonst nur ein PostBack durchführen darf, wenn es die Event-Validierung ausgeschalten wird

Hinweis 2: Eigenschaften unseres Controls (wie hier die Eigenschaft “Text”), sollten erst bei OnPreRender an zu rendernde Controls zugewiesen werden. Auf die Art können Eigenschaften auch gesetzt werden, nachdem unser Control der Control-Hierarchie der Seite zugewiesen wurde. Folgendes wird z. B: nicht funktionieren, wenn wir unsere Eigenschaft “Text” in der OnInit direkt dem Label zuweisen würden:

WebCustomControl4 c4 = new WebCustomControl4
{
  ID = "c4"
};
PlaceHolder.Controls.Add(c4);
c4.Text = "Hallo: ";

Damit der Text ausgegeben wird, müssten wir die Eigenschaft “Text” immer vorher setzen:

WebCustomControl4 c4 = new WebCustomControl4
{
  ID = "c4",
  Text = “Hallo: ”
};
PlaceHolder.Controls.Add(c4);

Setzen wir - wie oben gezeigt - die Eigenschaft aber erst bei OnPreRender, sind beide Varianten möglich.

Beispiel:

Hier noch ein kleines Beispiel eines einfachen kleinen Controls, welches eine ungeordnete Liste ausgibt. Die ListItems werden über eine ListItemCollection (wie sie auch z. B: für die DropDownList benutzt wird) festgelegt. Zusätzlich könne wir einen Text festlegen, für den Fall, dass keine es keine ListItems gibt:

public class SimpleList : Control
{
  private HtmlGenericControl unorderedList = new HtmlGenericControl("ul");
  private HtmlGenericControl emptyText = new HtmlGenericControl("span");

  public ListItemCollection Items { get; private set; }
  public String EmptyDataText { get; set; }

  public SimpleList()
  {
    Items = new ListItemCollection();
  }

  protected override void OnInit(EventArgs e)
  {
    base.OnInit(e);

    if (Items.Count > 0)
    {
      Controls.Add(unorderedList);
    }
    else
    {
      Controls.Add(emptyText);
    }
  }

  protected override void OnPreRender(EventArgs e)
  {
    base.OnPreRender(e);

    if (Items.Count > 0)
    {
      Controls.Add(unorderedList);

      foreach (ListItem listItem in Items)
      {
        HtmlGenericControl unorderedListItem =
          new HtmlGenericControl("li")
        {
          InnerText = listItem.Text
        };
        unorderedList.Controls.Add(unorderedListItem);
      }
    }
    else
    {
      emptyText.InnerText = EmptyDataText;
    }
  }
}

Anwendungsbeispiele:

// Liste mit Items
SimpleList mySimpleList1 = new SimpleList
{
  ID = "mySimpleList1",
  EmptyDataText = "Keine Daten vorhanden!"
};
mySimpleList1.Items.Add(new ListItem("Eintrag 01"));
mySimpleList1.Items.Add(new ListItem("Eintrag 02"));
mySimpleList1.Items.Add(new ListItem("Eintrag 03"));
mySimpleList1.Items.Add(new ListItem("Eintrag 04"));
mySimpleList1.Items.Add(new ListItem("Eintrag 05"));
PlaceHolder.Controls.Add(mySimpleList1);

// Liste ohne Items
SimpleList mySimpleList2 = new SimpleList
{
  ID = "mySimpleList2",
  EmptyDataText = "Keine Daten vorhanden!"
};
PlaceHolder.Controls.Add(mySimpleList2);

Beispielprojekt downloaden: WebControls.zip

Erste Schritte mit der Microsoft-Plattform - macht es Microsoft den Kunden zu schwer?

12.02.2009 19:07:39 | Kay Giza

Nein - ich glaube nicht! Ist es einfach? Nein - das glaube ich auch nicht. Woran liegt's?

Microsoft hat eine extrem große Palette an Technologien, Services und Produkte am Markt, wie kein anderes Software-Unternehmen weltweit. Dies liegt natürlich begründet in der Art und Weise wie breit Microsoft aufgestellt ist. Wir bieten weltweit Standardsoftware, Services und Lösungen an, für die unterschiedlichsten Bedürfnisse, Menschen und Unternehmen aller Branchen und Größen und in den unterschiedlichsten Bereichen, sei es für den Desktop, für das Mobile-Phone oder andere typische Bereiche sowie Hardware.


Alle Service, Produkte und Technologien bedürfen eines, angepasst, entwickelt und fortgeführt zu werden. Und hier kommen vor allem Entwickler und IT-Professionals in Spiel. Hey - wir haben es da nicht leicht. Wie soll man sich denn auch mit allem auskennen, oder?

Steigt man nun in ein neues Thema ein, lernt man neu die Welt von MSDN kennen? Neu bei Microsoft? Da ist der Durchblick bei den vielfältigen Entwickler-Ressourcen auf dem deutschsprachigen MSDN Online-Portal zugegebenermaßen manchmal nicht ganz einfach, schon gar nicht bei den zig zehntausend deutschsprachigen Seiten die wir alleine auf MSDN Online anbieten.

MSDN Guide oder: Per Anleitung durch die Microsoft-GalaxisMit dem Mitte 2007 gestarteten Programmführer "MSDN Guide" erleichtern wir Ihnen bisher Tag bei Tag die Orientierung. Der „MSDN Guide“ liefert Ihnen kompakt und übersichtlich Links zu den wichtigsten Info-Angeboten und Software-Downloads aus dem deutschsprachigen Microsoft Entwickler-Universum - insgesamt einige hundert Web-Fundstellen, die Sie mit nur 3 Mausklicks erreichen.

Mit mehr als 600 neuen Aktualisierungen, Hinweisen und Erklärungen zu neuen Produkten, Technologien und Services von Microsoft wartet der MSDN Guide nun im Februar 2009 auf. Seit dem 11.02.2009 ist es nun noch einfacher, die ersten Schritte mit der Microsoft-Plattform zu gehen.

Wie ist ihr Feedback?
Probieren Sie es aus! MSDN Guide - Orientierung leicht gemacht!
Gefällt es Ihnen? Dann sagen Sie es weiter!
Missfällt Ihnen etwas, dann sagen Sie es uns - wir sind sehr bemüht die Wissenslücke zu schließen.


Als wir damals den Guide erstellt haben und auch jetzt erneut mal wieder aktualisiert haben, war es uns bewusst, dass wir nicht 100%-Vollständigkeit abbilden können, dass wir nicht jedes Portal und jeden Weblog aufführen können, vielleicht sogar und auch ganz bestimmt ;-) eine Technologie nicht explizit erwähnt haben... aber das Ziel sollte es sein, dass man sich grundlegen in eine neue Materie oder Umgebung einarbeiten kann und interessante weiterführende Quellen & Ressourcen findet. Haben wir es geschafft? Wie ist Ihre Meinung?

This post is powered by www.Giza-Blog.de | Giza-Blog.de: RSS Feed
Visit:  MSDN Online | Follow MSDN Online on Twitter | Follow Kay Giza on Twitter
Daily News on MSDN:   MSDN Aktuell
© Copyright 2006-2009 Kay Giza. All rights reserved. Legal

MSDN Guide: erste Schritte auf der Microsoft-Plattform

12.02.2009 17:15:09 | Peter Kirchner

Neu bei MSDN? Neu bei Microsoft?

Da ist der Durchblick bei den vielfältigen Entwickler-Ressourcen hier auf dem deutschsprachigen Microsoft Web-Portal zugegebenermaßen manchmal nicht ganz einfach. Mit dem Mitte 2007 gestarteten Programmführer erleichtern wir Ihnen bisher Tag bei Tag die Orientierung auf MSDN Online. Der „MSDN Guide“ liefert Ihnen kompakt und übersichtlich Links zu den wichtigsten Info-Angeboten und Software-Downloads aus dem deutschsprachigen Microsoft Entwickler-Universum - insgesamt einige hundert Web-Fundstellen, die Sie mit nur 3 Mausklicks erreichen.

Mit mehr als 600 Aktualisierungen, Hinweisen und Erklärungen zu neuen Produkten, Technologien und Services von Microsoft wartet der MSDN Guide nun im Februar 2009 auf. Seit dem 11.02.2009 ist es nun noch einfacher, die ersten Schritte mit der Microsoft-Plattform zu gehen. Probieren Sie es aus!

MSDN Guide oder: Per Anleitung durch die Galaxis

12.02.2009 16:14:32 | Steffen Ritter

Neben der Expression Studio-Homepage und der Silverlight-Homepage gibt es bei uns noch eine ganze Menge Ressourcen speziell für Entwickler unter der Dachmarke MSDN, wobei auf MSDN die schiere Vielfalt manchmal für Einsteiger verwirrend scheint. Mit dem Mitte 2007 gestarteten Programmführer erleichtern meine MSDN-Kollegen bisher Tag bei Tag die Orientierung auf MSDN Online. Der „MSDN Guide“ liefert kompakt und übersichtlich Links zu den wichtigsten Info-Angeboten und Software-Downloads aus dem deutschsprachigen Microsoft Entwickler-Universum - insgesamt einige hundert Web-Fundstellen, die mit nur 3 Mausklicks erreichbar sind.
Mit mehr als 600 Aktualisierungen, Hinweisen und Erklärungen zu neuen Produkten, Technologien und Services von Microsoft wartet der MSDN Guide nun im Februar 2009 auf. Seit dem 11.02.2009 ist es nun noch einfacher, die ersten Schritte mit der Microsoft-Plattform zu gehen. Also keine Scheu und nix wie hin: http://www.microsoft.com/germany/msdn/guide/default.mspx

VSTS Code Coverage mit nativen C++ Projekt und C# Projekt im Mix

12.02.2009 11:20:00 | Christian Binder

Die Frage bekomme ich recht häufig und habe daher mal ein Demo gebaut, um zu zeigen wie es geht. Meine Demo Solution besteht aus 3 Projekten:

CodeCoverageWithC (C# Lib, ruft die native C++ Lib via Interop)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;

namespace CodeCoverageWithC
{
    public class Class1
    {
        //Import der nativen Function Add(int n1, int n2)
[DllImport("CalcLib.dll", CharSet=CharSet.Unicode,EntryPoint="#1")] public static extern int Add(int n1,int n2); public int calcValues(int value1, int value2) {
return Add(value1,value2); } } }

CalcLib (native C++, implementiert die Add Function, welche exportiert werden muss)

// CalcLib.h :

class CalcLib
{
public:
    CalcLib(void);
    ~CalcLib(void);
    __declspec(dllexport) int Add(int n1, int n2);
};
// CalcLib.cpp : Defines the exported functions for the DLL application.
//
#include "StdAfx.h"
#include "CalcLib.h"

CalcLib::CalcLib(void){}
CalcLib::~CalcLib(void){}

int CalcLib::Add(int n1, int n2)
{
return n1 + n2;
}

CalcTest(C# Test Project, welches den Unittest implementiert, der calcValues() testet)

[TestMethod()]
        public void calcValuesTest()
        {
            Class1 target = new Class1();
int n1 = 1; int n2 = 2;
int expected = 3; // Sollte passen oder? :-)
int actual; actual = target.calcValues(n1, n2); Assert.AreEqual(expected, actual); }

Einfacher geht’s wohl nicht…

Wenn ich jetzt den UnitTest ausführe möchte ich die CodeCoverage beider Dll’s haben. Also in der Testrunconfig die beiden Dlls für CodeCoverage konfigurieren:

image 

Wichtig: Damit die native CalcLib instrumentiert werden kann, muss der Linker Switch /PROFILE gesetzt sein:

image 

So jetzt den UnitTests ausführen und CodeCoverage anschauen. Die 100% Coverage kommen von der überagenden Komplexität des Codes :-)

image

Die Solution gibt’s hier:

Viel Spass

Chris

HowToCode: Wie bildet man einen Workflow im Code am besten ab?

12.02.2009 01:40:51 | Robert Mühsig

image Jede Anwendung basiert auf ein oder mehrere Aktionen, welche zum Teil von verschiedensten Dingen abhängen: Dem User, anderen Systemen, eingegebene Werte etc.

Meist spricht man von einem "Workflow", der in Software umgesetzt werden muss, doch wie bildet man diesen am "effektivsten" ab? If-Else Konstrukte oder "Workflow Engines" wie die Windows Workflow Foundation? Wie steht es mit der Testbarkeit? In diesem Post will ich ein paar Varianten vorstellen, bitte aber wieder ausdrücklich um Feedback, wie ihr dies handhabt.

(more…)

ShareThis

HowTo: Setup Subdomains in IIS 6.0

12.02.2009 00:40:01 | Robert Mühsig

imageIch arbeite mit einem Kollegen gerade an ein (noch) geheimes Projekt, wobei wir ASP.NET MVC als Nutzerfontend einsetzen und momentan ein Admininterface mit den ASP.NET Dynamic Data Feature umgesetzt haben. Natürlich brauchen wir auch eine Testumgebung, sodass unser Projektleiter die neusten Sachen erstmal anschauen kann, bevor diese Live gehen.
Kurz: Wir haben eine Domain www.xzy.de und wollen noch zwei Subdomains (www.admin.xyz.de & www.test.xyz.de) auf einen Windows Server 2003 einrichten.

(more…)

ShareThis

Whitepaper: Distributed Agile Development

11.02.2009 19:54:00 | Christian Binder

Ade Miller aus dem Microsoft Patterns und Practices Team schreibt über Distributed Agile Development in Microsoft. Er beschreibt einige “proven” Practices, die sich im bewährt haben und das Leben in der Verteilten Welt leichter machen. Außerdem bringt er mit einigen Do’s and Don’ts die Sache auf den Punkt. Für jeden Projektleiter, der die Herausforderungen der Verteilten Entwicklung sein eigen nennen darf, sollte sich diese 20 kurzweiligen Seiten nicht entgehen lassen. Warum die gleichen Fehler selber nochmal machen :-)

Chris

SharePoint 2007 Features

11.02.2009 19:19:00 | Ozgur Aytekin

This is a project for SharePoint 2007 Features. Features add new functionality to a SharePoint 2007 farm, site collection, or site. This project will create Features to address deficiencies in SharePoint 2007 or add new capabilities. You should understand a little about Features before trying these out. The packages here use batch files or WSP files to install the Features. After installation, be sure to activate the Features to see them in SharePoint.

Available Features
Application Content Type Hierarchy Feature
Application Log Viewer Feature
Application Manage Form Users Feature
Application Presence Contact List Feature
Application Placeholder Master Feature
Application Print List Feature
Application Task Alert Feature
Application Task Mover Feature
Application Theme Changer Feature
Application Debugger Feature
Application Window Links Feature
Application Debug Config Feature
Application Manage Configuration Modifications
Application Ajax Config Feature
Application Manage Layouts Site Map Feature
Application Minimal Master
Application Minimal Publishing Site
Application Manage Hierarchical Object Store Feature
Application Reset Theme Feature
Application Toolbar Manager
Application Unique Column Policy Feature
Application Global Web.Config Feature
Application 3.5 Web.Config Feature
Application Regular Expression Validator
Application SharePoint Events Manager
Application Clean Web Part Error Feature
Application Anonymous Audience Feature
Application Variation Labels Field
Application Custom Application Configuration
Application Create Site in Content DB

25. Multimediatreff: Flash, Flex & Silverlight

11.02.2009 18:28:43 | Steffen Ritter

Oliver Scheer und ich wurden zum „Jubiläums- Multimediatreff“ nach Köln geladen (28. März 2009), um dort über Taktiken und Ästhetik im klassischen Go-Spiel zu sprechen und um Olivers neuen Gedichtband vorzustellen… erm, nein: Natürlich werden wir auch auf dort das tun, was wir immer machen und wofür wir bezahlt und geliebt werden: Vorträge rund um das Thema Rich Internet Applications und Silverlight halten, Neugierde wecken und Begeisterung auslösen, hoffentlich alle Fragen beantworten usw...

mmtreff

Ich freue mich sehr über diese Einladung, denn den letzten Multimediatreff auf dem wir aufgetreten sind habe ich noch in sehr guter und sehr angenehmer Erinnerung. Unglaublich dass das schon fast zwei Jahre her ist... Damals hieß Silverlight noch WPF/E und war noch gar nicht veröffentlicht – inzwischen sind wir in Version 2 und das Plug-In ist bereits auf mehreren hundert Millionen Rechnern installiert. Das wird auch sicherlich dieses Jahr wieder eine erstklassige Veranstaltung, also gleich anmelden denn die Plätze sind meist schnell weg: http://www.multimediatreff.de/reservieren.php

Aus der offiziellen Ankündigung des 25. Multimediatreffs:

Immer häufiger sieht man sie im Alltag… RIAs. Rich Internet Applications begegnen einem im Web, als Navigationsoberfläche für Onlinebestellungen, als Auto-Konfigurator oder auch mobil, denn viele Benutzeroberflächen von Handys und Navigationssystemen wurden als RIAs entwickelt. Die Vorteile liegen klar auf der Hand – sie sind in der Regel benutzerfreundlicher als herkömmliche Webanwendungen, reagieren schneller auf Benutzereingaben und funktionieren zudem meist offline direkt beim Client. Dieser Multimediatreff beleuchtet die populärsten Multimedia-Allrounder zur Erstellung von RIAs – Flash, Flex und Silverlight: http://www.multimediatreff.de

Die Jubiläumsveranstaltung zum 25. Multimediatreff richtet sich verstärkt an Flash/Web-Entwickler und -Designer, die sich einen Überblick der neusten Features und Technologien rund um die Erstellung von Web- und Desktop-Anwendungen mit Flash, Flex & Silverlight verschaffen möchten.

Die Teilnahme an dieser Veranstaltung kostet 35,- EUR und beinhaltet die Verpflegung über den ganzen Tag. So gibt es lecker belegte Brötchen, opulente Fruchtschalen und am späten Nachmittag darf man sich auf die berühmt berüchtigte Pizza-Schlacht freuen! Zudem fließen reichlich Soft-Getränke und zum Abschluss gibt es noch ein spritzig, kühles Kölsch oder je nach Belieben ein Becks.

Die Vergangenheit hat gezeigt, dass die Plätze beim MMT meist schnell vergeben sind – so gilt es sich rechtzeitig anzumelden: http://www.multimediatreff.de/reservieren.php

Silverlight-Workshop auf der FFK09 im April

10.02.2009 20:13:20 | Peter Kirchner

Nach dem großen Erfolg des Silverlight-Einsteigerworkshops auf der letzten Flashforum -Konferenz (FFK08) gibt es natürlich auch dieses Jahr auf der FFK09 wieder einen Silverlight-Workshop. Allerdings nicht mehr als reinen Einsteigerworkshop – dieses Jahr geht es tiefer in die Materie: Silverlight Praxis - Professionelle datengetriebene Anwendungen mit .Net für das Netz (am 30. April 09).

In Silverlight 2 gibt es eine Vielzahl Möglichkeiten zur schnellen und einfachen Integration, Visualisierung und Verarbeitung von Daten. Die Kommunikation mit unterschiedlichen Servern ist kinderleicht und erlaubt eine nahtlose Verknüpfung verschiedener Backend-Systeme mit Silverlight 2, um die Daten im Browser für Windows, Mac und Linux übersichtlich darzustellen.

Der Workshop empfiehlt sich für alle, die bereits Erfahrung mit der Entwicklung von Rich Internet Applications, Silverlight oder Flash/Flex haben und tiefer in die Themen Datenanbindung und WebServices einsteigen wollen, sowie für alle, die einen Einblick in die leistungsfähige .NET-Plattform speziell aus der Perspektive des Webentwicklers erhalten möchten.

Der Workshop kostet für Besucher der FFK09 lediglich 30,- Euro Unkostenpauschale, also besser schnell anmelden bevor er wieder ausgebucht ist.

Über die FFK09 (ehemals Flashforum-Konferenz): Schon zum neunten Mal laden Marc Thiele, Sascha Wolter und das Flashforum zur größten deutschsprachige Konferenz rund um Web-Technologien und -Anwendungen nach Köln ein. Auch dieses Jahr liegt der Fokus auf Rich Applications für das Consumer- und Enterprise-Segment auf Basis der Flash-Plattform, der Flex-Produktfamilie, AIR sowie Silverlight. Der wichtige „Blick über den Tellerrand“ wird auch in diesem Jahr durch zahlreiche kreative und inspirierende Themen sicher gestellt. Aber auch der in dieser Form einmalige persönliche Erfahrungs- und Wissensaustausch unter den Entscheidern, Entwicklern und Designern bleibt gewahrt.

Links:

Silverlight-Workshop auf der FFK09

10.02.2009 16:20:47 | Oliver Scheer

Nach dem großen Erfolg des Silverlight-Einsteigerworkshops auf der letzten Flashforum -Konferenz (FFK08) gibt es natürlich auch dieses Jahr auf der FFK09 wieder einen Silverlight-Workshop. Allerdings nicht mehr als reinen Einsteigerworkshop – dieses Jahr geht es tiefer in die Materie: Silverlight Praxis - Professionelle datengetriebene Anwendungen mit .Net für das Netz (am 30. April 09).

In Silverlight 2 gibt es eine Vielzahl Möglichkeiten zur schnellen und einfachen Integration, Visualisierung und Verarbeitung von Daten. Die Kommunikation mit unterschiedlichen Servern ist kinderleicht und erlaubt eine nahtlose Verknüpfung verschiedener Backend-Systeme mit Silverlight 2, um die Daten im Browser für Windows, Mac und Linux übersichtlich darzustellen.

Der Workshop empfiehlt sich für alle, die bereits Erfahrung mit der Entwicklung von Rich Internet Applications, Silverlight oder Flash/Flex haben und tiefer in die Themen Datenanbindung und WebServices einsteigen wollen, sowie für alle, die einen Einblick in die leistungsfähige .NET-Plattform speziell aus der Perspektive des Webentwicklers erhalten möchten.

Der Workshop kostet für Besucher der FFK09 lediglich 30,- Euro Unkostenpauschale, also besser schnell anmelden bevor er wieder ausgebucht ist.

Über die FFK09 (ehemals Flashforum-Konferenz): Schon zum neunten Mal laden Marc Thiele, Sascha Wolter und das Flashforum zur größten deutschsprachige Konferenz rund um Web-Technologien und -Anwendungen nach Köln ein. Auch dieses Jahr liegt der Fokus auf Rich Applications für das Consumer- und Enterprise-Segment auf Basis der Flash-Plattform, der Flex-Produktfamilie, AIR sowie Silverlight. Der wichtige „Blick über den Tellerrand“ wird auch in diesem Jahr durch zahlreiche kreative und inspirierende Themen sicher gestellt. Aber auch der in dieser Form einmalige persönliche Erfahrungs- und Wissensaustausch unter den Entscheidern, Entwicklern und Designern bleibt gewahrt.

Links:

Meine Schätze: ReSharper und Visual Studio 2010

10.02.2009 11:58:00 | Gregor Biswanger

Normal 0 21 false false false DE X-NONE X-NONE MicrosoftInternetExplorer4

Ralf Westphal und Stefan Lieser haben sich gegen Ende 2008 zusammengesetzt und Ihre Gedanken zum Thema professionelle sowie qualitative Softwareentwicklung und der Weg dorthin ausgetauscht. Das war die Geburtsstunde von Clean Code Developer. Am 09. Februar 2009 gab es dazu die erste öffentliche Online-Konferenz auf Altdotnet.de. Dieser Artikel beschäftigt sich weitegehend zu der entstandenen Diskussion, warum immer weniger auf die Qualität der Software beim entwickeln eingegangen wird. Eine Video-Aufzeichnung der Konferenz kann sich hier noch einmal angesehen werden:http://www.altdotnet.de/OnlineMeeting_090209.ashx

Das Leiden über die fehlende Softwarequalität gibt vielen .NET-Experten unruhige Nächte. Obwohl der tägliche Kampf um etablierte Technologien oder Prozesse einführen zu wollen, sie bedächtig ermüden sollte. Warum werden Sie nicht Akzeptiert? Warum wird immer noch Software im Chaos entwickelt? Wieso müssen Anwender darunter leiden? Vor allem, wie kann man das ändern?

Genauso wie es dazu unzählige Fragen gibt, kommen auch entsprechende Meinungen dazu. Es beginnt meist mit der Schuldzuweisung von außen. Der Chef oder der Kunde wären dagegen, weil die Qualität zu Zeitaufwendig ist und somit zu Teuer wäre. Von einer anderen Seite betrachtet, wird auch auf das fehlende Wissen hingewiesen. Ebenso wird auch hier eine Schuld an andere weitergeben: Folglich müsse das fehlende Wissen an Lehrern und Büchern liegen. Man bemerkt schnell wie weit sich das Thema herauszieht und ausdehnt. Vor allem was alles dafür Begründet wird um dieses Fehlverhalten der meisten Entwickler zu gerechtfertigten. Es soll nun außerhalb dieses Problems einmal der Mensch im Detail betrachtet werden, wie er eigentlich erst für Veränderungen offen sein kein.

Zurück zum Menschen

Bei der Geburt eines Menschen wird vom ersten Augenblick dessen Daseins ein Muster geschaffen. Die Psychologie nennt dies Konditionierung. Diese Muster werden Bildlich im Bauch der Menschen abgelegt. Alles was wir sagen oder uns vorstellen, sind nur Analogien. Das heisst: Die und Modelle sind nicht die Wirklichkeit, sie stehen für etwas, was sich im Grunde nicht benennen lässt. Ihr Ansehen ist relativ. Die sogenannte Realität ließe sich auch unter ganz anderen Vorgaben erfassen.


Abb. 1.1. – Konditionierung eines Entwicklers

Als Beispiel soll ein Muster zeigen, das sich bei einem Programmierer festgelegt hat (siehe dazu Abb.1.1): Der erste Punkt fängt mit der erlernten Erfahrung an. Die meisten Entwickler die unter Windows Ihre erste Schritte anfingen, begannen meist mit einer IDE (Visual Basic, Visual Studio) von Microsoft. Es ist in jeder dieser IDE`s  ein fertiges Windows-Fenster (WinForms) zu erkennen und mittels [F5]-Taste lässt sich Blitzartig ein Ergebnis liefern. Dieses Ereignis hat sich in diesen Augenblick fest als Muster abgelegt. Dieses Erfolgserlebnis lies viele für ein weiteres erlernen Motivieren, indem es uns zeigte das Programmieren nicht Kompliziert sein muss.

Folgend in der Abbildung ist zu erkennen, dass in unserer Vergangenheit sich ein allgemeines Muster von der Gesellschaft abgelegt hat. Die Zeit. Es wird uns verdeutlicht, dass wir immer weniger Zeit für bestimmte Ereignisse zur Verfügung haben. Sie vergeht und kann nirgends bezogen werden. Daher ist ein „Gutes einteilen“ in uns verinnerlicht.

Allerdings verursacht gerade dieses Muster ein unheimliches Problem. Es ist eines von wenigen Mustern, was durch einen äußeren Einfluss gleich zahlreiche andere Muster mit beeinflusst.

Infolgedessen sollte der Punkt bei der Programmierung noch einmal betrachtet werden. Das erste Muster für ein schnelles Ergebnis ist abgelegt. Die gefolgte Motivation hat ein weiteres Lernen der Grundlagen erbracht. Nun ist durch ein Gefühl auch eine Beziehung zu einer Technologie entstanden, demnach entwickelt man gerne Windows-, Web- oder Mobile-Anwendungen.

Nun kommt es aber häufig dazu, das man das erlerne Beruflich umsetzen möchte. Doch das Berufsumfeld lässt das abgelegte Muster mit der Zeit, wie eine Kettenreaktion auf andere Muster auslösen. Nun kommt der Notstand, wenn gegenwärtig andere unbekannte Technologien und Prozesse erlernt werden sollen, verursacht das Zeit. Die muss aber gut eingeteilt werden.

Demzufolge kommt das erste Muster in den Vordergrund. Es wird alles gemacht um an den schnellen Kick für das Erfolgserlebnis zu bekommen. Denn ein weiteres Muster besagt: Alles was Schnell ist, gibt uns genügend Zeit.

In die Falle geführt

Genau jetzt haben die abgelegten Muster die Programmierer in die Falle geführt. Die Entwicklung von Software kann nicht „schnell“ umgesetzt werden. Denn „schnelles“ Programmieren verursacht eine schnelle Unübersichtlichkeit. Es entsteht die überaus gefürchtete Komplexität! Folgende Fehler sind nur noch Schwer zu finden und eine Einarbeitung für neue Mitarbeiter dauert zudem ca. 3-4 Monate.

Zeit für neues

Obwohl sich die Softwareentwicklung und deren Architektur leider langsam voran schreiten, gibt es bereits doch für viele Probleme die ideale Lösung. Die Lösungen bieten zudem eine hohe Qualität der Software zudem noch einen korrekten Pfad für den Ausgleich von Komplexität vs. Flexibilität.

Nur eines können die neuen Lösungsansätze nicht, das erste abgelegte Muster „Schnelles Ergebnis [F5]“ übertrumpfen. Das Muster was über das „Zeit“-Muster steht, kann nicht überwogen werden. Daher wird das „neue“ sehr schnell als „Unnötig“ – eingestuft.

Das Unterbewusstsein widerspiegelt unsere Muster

Nach dieser Kettenreaktion ist folgendes aus dem Unterbewusstsein übersetzt und wird auch dementsprechend vom Menschen dem „Ich“ wiedergegeben: Es muss „schnell“ wieder das erste Muster erreicht werden. Das sagen der Chef und die Kollegen. Wie das „neue“ geht hat man eventuell mal von einem Lehrer gehört oder einer Literatur gelesen. Doch sind eigene Erfahrungen nicht gemacht worden. Es ist zu gefährlich. Fehler können nur noch „mehr“ zeit beanspruchen.

Wie ein Muster verändern?

Jetzt ist bewusst, dass alles in Mustern abgelegt wird. Wenn im Moment das Geheimnis gelüftet wird, wie ein Muster verändert werden kann, besteht eine unheimliche Macht über eine kontrollierte zielstrebige Ausbildung von besseren Entwicklern beim Arbeitsplatz und Umgebung. Leider muss diese Vision gleich wieder zerbrochen werden. Ein Muster kann Wissenschaftlich nicht verändert oder gelöscht werden. Es gibt nur einen Weg für Muster: Es müssen alternative Muster aufgebaut werden, die alte Muster überblenden können.

Bewusstsein ist Veränderung

Um das bestehende „Hallo Welt“-Muster = „Schnelles Ergebnis [F5]“-Muster zu überblenden gibt es nur eine bahnbrechende Lösung. Es kann nur „vorgemacht“ werden. Man kann auch nur das erste Muster übertrumpfen, das mittels neuen Technologien „verbildlicht“ ein schnelles und doppelt so gutes Ziel erreicht werden kann.

Fazit

Es kann doch etwas gegen die schlechte Qualität bei der Softwareentwicklung gemacht werden. Die .NET-Experten sollen weiterhin am förderlichsten den besseren und goldenen Weg hervorheben. Lehrer und Trainer müssen auch Bildlich etwas vormachen und am besten „Learning by Doing“-Praktiken durchsetzen als lediglich einzelne Folien zu zeigen.

Für Entwickler allgemein gilt, es muss als Alternative die nachkommend dazu Gewonnene Zeit in Anbetracht gezogen werden, die durch die neuen Praktiken eingeholt werden. Programmieren macht bei einem „sauberen“ Umfeld doppelt so viel Spaß!

Neben Clean-Code-Developer wird in den nächsten Wochen ein zusätzliches Projekt gestartet, das bis jetzt über ein halbes Jahr an Arbeit beansprucht hat. Dieses Projekt gilt derzeit als „TOP-Secret“ und wird für eine gute Alternative an großer Bedeutung stehen. Ihr könnt alle Gespannt sein, was euch erwartet wird. In der .NET-Welt rührt sich was. Auf ersprießlicheren Source-Code!

Silverlight-Workshop auf der FFK09

10.02.2009 11:47:49 | Steffen Ritter

Nach dem großen Erfolg des Silverlight-Einsteigerworkshops auf der letzten Flashforum -Konferenz (FFK08) gibt es natürlich auch dieses Jahr auf der FFK09 wieder einen Silverlight-Workshop. Allerdings nicht mehr als reinen Einsteigerworkshop – dieses Jahr geht es tiefer in die Materie: Silverlight Praxis - Professionelle datengetriebene Anwendungen mit .Net für das Netz (am 30. April 09).

In Silverlight 2 gibt es eine Vielzahl Möglichkeiten zur schnellen und einfachen Integration, Visualisierung und Verarbeitung von Daten. Die Kommunikation mit unterschiedlichen Servern ist kinderleicht und erlaubt eine nahtlose Verknüpfung verschiedener Backend-Systeme mit Silverlight 2, um die Daten im Browser für Windows, Mac und Linux übersichtlich darzustellen.

speaker_badge_ffk09

Der Workshop empfiehlt sich für alle, die bereits Erfahrung mit der Entwicklung von Rich Internet Applications, Silverlight oder Flash/Flex haben und tiefer in die Themen Datenanbindung und WebServices einsteigen wollen, sowie für alle, die einen Einblick in die leistungsfähige .NET-Plattform speziell aus der Perspektive des Webentwicklers erhalten möchten.

Der Workshop kostet für Besucher der FFK09 lediglich 30,- Euro Unkostenpauschale, also besser schnell anmelden bevor er wieder ausgebucht ist.

Über die FFK09 (ehemals Flashforum-Konferenz): Schon zum neunten Mal laden Marc Thiele, Sascha Wolter und das Flashforum zur größten deutschsprachige Konferenz rund um Web-Technologien und -Anwendungen nach Köln ein. Auch dieses Jahr liegt der Fokus auf Rich Applications für das Consumer- und Enterprise-Segment auf Basis der Flash-Plattform, der Flex-Produktfamilie, AIR sowie Silverlight. Der wichtige „Blick über den Tellerrand“ wird auch in diesem Jahr durch zahlreiche kreative und inspirierende Themen sicher gestellt. Aber auch der in dieser Form einmalige persönliche Erfahrungs- und Wissensaustausch unter den Entscheidern, Entwicklern und Designern bleibt gewahrt.

Links:

XAML-Export für Illustrator jetzt auch mit Mac OS X

09.02.2009 20:18:55 | Steffen Ritter

Es war ein langer Tag und deswegen mache ich es kurz, aber das ist zu gut um bis morgen zu warten: Mike Swansons XAML-Export-Plug-In für Adobe Illustrator ist jetzt auch für die Mac OS X-Version von Illustrator verfügbar.

xamlmac

Alle Infos und Download direkt in Mikes Blog unter http://blogs.msdn.com/mswanson/archive/2009/02/08/test-version-of-my-illustrator-to-xaml-plug-in-for-the-mac.aspx

Webcast-DVD 2008 ab sofort verfuegbar [Developer + IT Pros]

09.02.2009 18:40:17 | Kay Giza

In guter Tradition und nach vielfachem Kundenwunsch hat MSDN Deutschland auch für das Jahr 2008 eine große Auswahl an Webcasts gesammelt und auf DVD gebrannt. Unter dem Motto "Ready for Replay" bietet die Webcast-DVD Edition 2008 jede Menge Beiträge zu den wichtigsten Themen für Entwickler im Microsoft-Umfeld: angefangen beim .NET Framework 3.5, über die Windows Presentation Foundation und Silverlight bis hin zu Visual Studio und Visual Studio Team System.

Die brandaktuelle Webcast-DVD von Microsoft Deutschland ist eine Sammlung informativer Webcasts, die 2008 veröffentlicht wurden. Mit über 190 Beiträgen aus den Bereichen MSDN und TechNet – unter anderem auch zu „Windows Server 2008“ und „Virtualisierung“ – können Sie sich einfach und bequem weiterbilden.

Nutzen Sie das umfassende Archiv mit Offlinepräsentationen, um die neuesten Microsoft-Technologien kennen zu lernen, Ihr Knowhow zu vertiefen oder konkrete Aufgaben Ihres beruflichen Alltags zu lösen. Ein Highlight dieser DVD sind sicherlich die Beiträge zur Xtopia 08, der Konferenz für Business, Web Technology, Design und UX, sowie zum Microsoft Technical Summit 2008, der Konferenz für professionelle Entwickler, Softwarearchitekten und IT-Professionals.

Der Vorteil der DVD, dass sagen uns auch immer wieder viele Kunden, sind die ausgewählten Themen, zusammengefasst auf einer DVD. Selbstverständlich können Sie auch alle unsere Webcasts und sonstige Multimedia-Inhalte online anschauen und einzeln herunterladen - gar keine Frage. Auf der DVD finden Sie jedoch zusammengestellt bereits alle wichtigen Webcasts , zu den oben genannten Themen müssen nicht mehr einzeln die Online-Referate herunterladen.

Link: Microsoft Webcasts-DVD - Edition 2008

This post is powered by www.Giza-Blog.de | Giza-Blog.de: RSS Feed
Visit:  MSDN Online | Follow MSDN Online on Twitter | Follow Kay Giza on Twitter
Daily News on MSDN:   MSDN Aktuell
© Copyright 2006-2009 Kay Giza. All rights reserved. Legal

3. Online Meeting ALT.NET DE: Clean Code Developer

09.02.2009 13:35:00 | Peter Bucher

Heute 03.02.09 um 20:00 Uhr findet das dritte Online Meeting von ALT.NET DE mit einem besonderen Thema statt.

Stefan Lieser und Ralf Westphal haben - wie hier auch schon erwähnt - vor einiger Zeit Clean Code Developer aus der Taufe gehoben:

http://www.clean-code-developer.de/

Die beiden Initiatoren stellen heute die Idee hinter der Seite und dem Konzept vor und sagen euch, wie der Weg zum sauberen Entwickler aussehen könnte.
Zudem stehen sie Rede und Antwort.

Anmeldung und Teilnahmeinformationen:.

http://www.altdotnet.de/OnlineMeeting_090209.ashx

.NET Stammtisch Konstanz-Kreuzlingen mit eigener Website

09.02.2009 10:32:00 | Peter Bucher

Über das Wochenende waren wir fleißig und haben eine erste Version der offiziellen Website des .NET Stammtisch Konstanz-Kreuzlingen veröffentlicht.

Im Moment bietet die Website eine Übersicht über die aktuellen Termine, sowie die Möglichkeit sich für einen kommenden Termine anzumelden.

http://www.dotnetkk.de/

Was kommt noch? Es wird einen Mitgliederbereich geben und einen Bereich mit Links zu den wichtigsten Ressourcen.

Mitglieder werden später folgende Möglichkeiten haben:

  1. in einem Downloadbereich Folien, Vorträge und Beispiele herunterzuladen
  2. andere Mitglieder zu sehen und zu kontaktieren
  3. Newsletter zu abonnieren
  4. Terminerinnerungen per Email zu bekommen

PS: Die Anmeldung für den ersten Stammtisch ist immer noch offen!

Die Website wird mit dem ASP.NET MVC Framework entwickelt und bei 69° gehostet (Community-Hosting).

Hosted by 69grad

ASP.NET MVC: MasterPage zur Laufzeit ändern

09.02.2009 08:17:26 | Albert Weinert

Hier und da ist es notwendig dass man die MasterPage zur Laufzeit ändern möchte. Bei ASP.NET MVC kann man dies auf mittels eines eigenen ActionFilterAttribute machen.

public class MasterPageSwitchAttribute : ActionFilterAttribute
{
    public override void OnActionExecuted(ActionExecutedContext filterContext)
    {
        var viewResult = filterContext.Result as ViewResult;
        if (viewResult != null)
        {
            viewResult.MasterName = &quot;NeueMasterPage&quot;;
        }
    }
}

Dieses Attribute einfach an den gewünschten Controller, oder die Action hinzufügen und schon bekommt man die gewünschte MasterPage angezeigt.

Die MasterPage wird über die üblichen ASP.NET MVC Suchpfade ermittelt und der MasterName darf keinen Suffix ".master” enthalten.

Natürlich macht ein fest einprogrammierter Name der neuen MasterPage keinen großen Sinn. Man sollte diese mit einer gewissen Logik ermitteln. Ich nehme im echten Code einen kleinen Settings-Provider.

 

IE8 Kompatibilitaetsliste: FAQ, welche Domains sind enthalten und wie kann man die Liste ausser Kraft setzen

09.02.2009 08:16:34 | Kay Giza

In diesem Blogposting beantworte ich Fragen rund um die ‘Internet Explorer 8 -"Kompatibilitätsansichtsliste"‘, welche Microsoft optional mit dem Internet Explorer (IE8) bereitstellt. In dieser Liste werden alle aus Microsoft-Sicht weltweit wichtigen Domains gelistet (derzeit. 3.115) um im IE8 im Kompatibilitätsmodus angezeigt zu werden. Darunter u.a. Heise.de oder ZDF.de. In diesem Blogposting auf Giza-Blog.de finden Sie die vollständige Liste und man kann überprüfen, ob man selber mit seiner Webseite in der Liste gelandet ist. Weiterhin erkläre ich, wie die Liste von Microsoft zusammengestellt wurde, wie es sich mit dem Datenschutz verhält und wie der Update-Zyklus ist um die Liste zu aktualisieren und wie diese aktualisiert wird. Weiterhin gehe ich auf die Frage ein, wie der IE8 priorisiert im Sinne von: Microsoft Kompatibilitätsliste vs. manuell gepflegter Liste vs. Webseiten-Header. Zum Schluss ziehe ich mein eigenes kleines Fazit und erkläre noch, wie man die Kompatibilitätsansichtsliste außer Kraft setzen kann.

This post is powered by www.Giza-Blog.de | Giza-Blog.de: RSS Feed
Visit:  MSDN Online | Follow MSDN Online on Twitter | Follow Kay Giza on Twitter
Daily News on MSDN:   MSDN Aktuell
© Copyright 2006-2009 Kay Giza. All rights reserved. Legal

.NET Stammtisch Konstanz-Kreuzlingen mit eigener Website

09.02.2009 02:31:00 | Jürgen Gutsch

Über das Wochenende waren wir fleißig und haben eine erste Version der offiziellen Website des .NET Stammtisch Konstanz-Kreuzlingen veröffentlicht.

Im Moment bietet die Website eine Übersicht über die aktuellen Termine, sowie die Möglichkeit sich für einen kommenden Termine anzumelden.

http://www.dotnetkk.de/

Was kommt noch? Es wird einen Mitgliederbereich geben und einen Bereich mit Links zu den wichtigsten Ressourcen.

Mitglieder werden später folgende Möglichkeiten haben:

  1. in einem Downloadbereich Folien, Vorträge und Beispiele herunterzuladen
  2. andere Mitglieder zu sehen und zu kontaktieren
  3. Newsletter zu abonnieren
  4. Terminerinnerungen per Email zu bekommen

PS: Die Anmeldung für den ersten Stammtisch ist immer noch offen!

Die Website wird mit dem ASP.NET MVC Framework entwickelt und bei 69° gehostet (Community-Hosting).

Hosted by 69grad

3. Online Meeting ALT.NET DE: Clean Code Developer am 09.02.2009

08.02.2009 13:15:17 | Albert Weinert

Am Montag den 09.02.2009 findet der Clean Code Developer Talk im Rahmen von VAN DE statt.

Stefan Lieser und Ralf Westphal haben sich Ende 2008 zusammengesetzt und Ihre Gedanken zum Thema professionelle sowie qualitative Softwareentwicklung und der Weg dorthin ausgetauscht. Rauskommen ist der Clean Code Developer.

http://www.clean-code-developer.de

Beim Online Clean Code Developer-Tak stellen sie kurz die Beweggründe dar und stehen für Fragen zu Verfügung. Start ist 20 Uhr, seid pünktlich.

Anmeldung und Teilnahmeinformationen:.

http://www.altdotnet.de/OnlineMeeting_090209.ashx

Ein Headset hilft wenn man Fragen stellen möchte, jedoch besteht auch die Möglichkeit nur mitzuhören und Fragen per Tastatur einzureichen.

Wir freuen uns euch dort zu begrüßen.

3. Online Meeting ALT.NET DE: Clean Code Developer am 09.02.2009

08.02.2009 13:15:17 | Albert Weinert

Am Montag den 09.02.2009 findet der Clean Code Developer Talk im Rahmen von VAN DE statt.

Stefan Lieser und Ralf Westphal haben sich Ende 2008 zusammengesetzt und Ihre Gedanken zum Thema professionelle sowie qualitative Softwareentwicklung und der Weg dorthin ausgetauscht. Rauskommen ist der Clean Code Developer.

http://www.clean-code-developer.de

Beim Online Clean Code Developer-Tak stellen sie kurz die Beweggründe dar und stehen für Fragen zu Verfügung. Start ist 20 Uhr, seid pünktlich.

Anmeldung und Teilnahmeinformationen:.

http://www.altdotnet.de/OnlineMeeting_090209.ashx

Ein Headset hilft wenn man Fragen stellen möchte, jedoch besteht auch die Möglichkeit nur mitzuhören und Fragen per Tastatur einzureichen.

Wir freuen uns euch dort zu begrüßen.

Useful Links for SharePoint Administrators and Developers

08.02.2009 11:43:00 | Ozgur Aytekin

Installing & Configuring the Environment
Deploy Office SharePoint Server 2007 in a server farm environment: http://technet.microsoft.com/en-us/library/cc303428.aspx

Plan for administrative and service accounts (Office SharePoint Server): http://technet.microsoft.com/en-us/library/cc263445.aspx

Planning and Monitoring SQL Server Storage for Office SharePoint Server: Performance Recommendations and Best Practices (white paper): http://technet.microsoft.com/en-us/library/cc263261.aspx

Enable usage reporting: http://technet.microsoft.com/en-us/library/cc262537.aspx

Stsadm command-line tool (Office SharePoint Server): http://technet.microsoft.com/en-us/library/cc261956.aspx

STSADM Custom Extensions - Automating SharePoint 2007 Configurations via STSADM Custom Extensions: http://stsadm.blogspot.com/2007/08/stsadm-commands_09.html

Information about the Maintenance Plan Wizard in SQL Server 2005 and about tasks that administrators can perform against SharePoint databases : http://support.microsoft.com/kb/932744

Support for changes to the databases that are used by Office server products and by Windows SharePoint Services: http://support.microsoft.com/kb/841057

Database maintenance for Office SharePoint Server 2007 (white paper): http://technet.microsoft.com/en-us/library/cc262731.aspx

SharePoint Backup and Restore Overview: http://msdn.microsoft.com/library/bb447526.aspx

Plan for backup and recovery (Office SharePoint Server): http://technet.microsoft.com/library/cc261687.aspx


Understanding the Environment
Planning and architecture for Office SharePoint Server 2007: http://technet.microsoft.com/en-us/library/cc261834.aspx

Logical Architecture Components:: http://technet.microsoft.com/library/cc263121.aspx

Database types and descriptions (Office SharePoint Server):: http://technet.microsoft.com/library/cc678868.aspx

About SharePoint Site Collections : http://technet.microsoft.com/library/cc742548.aspx

Manage SharePoint Site Collections:: http://technet.microsoft.com/library/cc835712.aspx

Plan lists (Windows SharePoint Services): http://technet.microsoft.com/en-us/library/cc287823.aspx

White paper: Working with large lists in Office SharePoint Server 2007:: http://technet.microsoft.com/library/cc262813.aspx


Managing Environment Customizations
Customization Whitepaper: http://technet.microsoft.com/library/Cc263010.aspx

Understanding and Creating Customized and Uncustomized Files in Windows SharePoint Services 3.0: http://msdn.microsoft.com/library/cc406685.aspx

Solutions Overview: http://msdn.microsoft.com/en-us/library/aa543214.aspx

Solution package components: http://technet.microsoft.com/library/cc263289.aspx

SharePoint Features: http://msdn.microsoft.com/library/bb861828.aspx

SharePoint Solutions: http://msdn.microsoft.com/library/bb862721.aspx


A System Administrators Role in Branding
Customizing and Branding Web Content Management-Enabled SharePoint Sites: http://msdn.microsoft.com/library/aa830818.aspx

How to: Create New SharePoint Themes: http://msdn.microsoft.com/library/aa867986.aspx

How to: Apply a SharePoint Theme: http://msdn.microsoft.com/library/cc621346.aspx

Create a publishing page layout: http://office.microsoft.com/en-us/sharepointdesigner/HA101741281033.aspx

Implementing a Brand in a SharePoint Server 2007 Publishing Site: http://msdn.microsoft.com/library/dd221375.aspx

Understanding and Creating Customized and Uncustomized Files in Windows SharePoint Services 3.0: http://msdn.microsoft.com/library/cc406685.aspx

Introducing Microsoft Office SharePoint Designer 2007: http://office.microsoft.com/en-us/sharepointdesigner/HA100740831033.aspx

Help for SharePoint Designer 2007: http://office.microsoft.com/en-us/sharepointdesigner/FX100646991033.aspx

Introduction to Contributor Settings: http://office.microsoft.com/en-us/sharepointdesigner/HA101174691033.aspx


A System Administrators Role in Development
SharePoint Server Developer Portal: http://msdn.microsoft.com/en-us/office/aa905503.aspx

WSS Developer Center: http://msdn.microsoft.com/sharepoint/default.aspx

Review of Environments: http://technet.microsoft.com/library/cc263209.aspx

Team-Based Development in Microsoft Office SharePoint Server 2007: http://msdn.microsoft.com/library/bb428899.aspx

Hyper-V and Virtualization on Microsoft TechNet: http://technet.microsoft.com/en-us/virtualization/

Setting up the Dev Environment: http://technet.microsoft.com/library/cc262741.aspx

Code Access Security: http://msdn.microsoft.com/library/930b76w0.aspx


Governance
Governance Resource Center: http://technet.microsoft.com/en-us/office/sharepointserver/bb507202.aspx

Index of Governance Content: http://technet.microsoft.com/library/cc263341.aspx

Steps for building governance into SharePoint Server 2007 (white paper): http://go.microsoft.com/fwlink/?LinkId=92602&clcid=0x409

Sample governance plan: http://go.microsoft.com/fwlink/?LinkID=92333&clcid=0x409

Governance checklist guide: http://go.microsoft.com/fwlink/?LinkId=91896&clcid=0x409

.NET Bootcamp: Unit Tests

07.02.2009 16:19:54 | Alexander Groß

In ungefähr einer Woche, am 16.02.2009, findet das zweite .NET Bootcamp der .NET User Group Leipzig statt. Das Thema lautet diesmal Unit Tests und wird neben einer Einführung in das Testen auch Test-Driven Development und Behavior-Driven Development aufgreifen.

Die Organisation des Bootcamps findet wieder nach dem Konzept “Lernen durch Lehren” (LdL) statt. Das heißt, dass jeder Teilnehmer im Vorfeld zwei Fragen als “Hausaufgabe” bekommt und seine Ergebnisse während der Veranstaltung vorstellt. Ich werde die Rolle des Moderators übernehmen, Fragen klären, weitere Aspekte aufzeigen und sicher auch etwas von den Teilnehmern lernen.

Wie unser erster Testballon auf dem Gebiet LdL zum Thema .NET Framework 3.5 ist dieses Bootcamp mit 19 Teilnehmern überbucht. Offenbar kommt LdL gut bei unseren User Group-Mitgliedern an, aus Sicht der Organisation kann ich dies jedenfalls bestätigen!

.NET Bootcamp: Unit Tests

07.02.2009 16:19:54 | Alexander Groß

In ungefähr einer Woche, am 16.02.2009, findet das zweite .NET Bootcamp der .NET User Group Leipzig statt. Das Thema lautet diesmal Unit Tests und wird neben einer Einführung in das Testen auch Test-Driven Development und Behavior-Driven Development aufgreifen.

Die Organisation des Bootcamps findet wieder nach dem Konzept “Lernen durch Lehren” (LdL) statt. Das heißt, dass jeder Teilnehmer im Vorfeld zwei Fragen als “Hausaufgabe” bekommt und seine Ergebnisse während der Veranstaltung vorstellt. Ich werde die Rolle des Moderators übernehmen, Fragen klären, weitere Aspekte aufzeigen und sicher auch etwas von den Teilnehmern lernen.

Wie unser erster Testballon auf dem Gebiet LdL zum Thema .NET Framework 3.5 ist dieses Bootcamp mit 19 Teilnehmern überbucht. Offenbar kommt LdL gut bei unseren User Group-Mitgliedern an, aus Sicht der Organisation kann ich dies jedenfalls bestätigen!

Microsoft CEO Steve Ballmer im April 2009 auf Entwickler-Konferenz in Koeln

07.02.2009 14:06:10 | Kay Giza

Microsoft und Innovationen im Softwaremarkt“ ist Thema der Closing-Keynote, mit dem Steve Ballmer (Chief Executive Officer (CEO) der Microsoft Corporation) am 24. April 2009 zum „Microsoft Software Strategy Summit 2009“ nach Köln kommt. Steven A. Ballmer, Chief Executive Officer of Microsoft CorporationDie eintägige Veranstaltung richtet sich an Business- und Technologie-Entscheider softwareherstellender Unternehmen und ist aus Microsoft-Sicht das wichtigste Strategie-Event in 2009 für ISVs (Independent Software Vendor) im deutschsprachigen Raum.

Geplante Themen sind unter anderem ‘Software plus Services’, Windows Azure, Microsoft Plattform, Office Business Applications.
Weitere Informationen zu Agenda, Anmeldung und Anreise erhalten Sie auf der Website Microsoft-s3.com.

Ich werde mal schauen, ob ich eine Karte ergattern kann, hoffe es ist einer meiner Kolleginnen oder Kollegen nett zu mir :)
Die Konferenz wirkt wirklich sehr interessant auf mich, Themen wie Windows 7, OBA oder Surface interessieren mich persönlich wirklich sehr, ich denke auch den einen oder andere Softwarehersteller auch.
Natürlich kann man die Closing-Keynote von Steve Ballmer als Highlight sehen, so sehe ich es zumindest persönlich. Ich durfte Steve Ballmer schon ein paar Mal live erleben. Ehrlich gesagt ist es wirklich klasse ihn live zu erleben, sei es auf dem MVP-Summit oder bei internen Firmenveranstaltung. Objektiv betrachtet sind seine Auftritte manchmal extravertiert, aber genau das macht für mich den Reiz aus. So sehr es auch extravertiert erscheint, so bestimmt Steven A. Ballmer dennoch die Geschicke des weltweit größten Softwareherstellers und dementsprechend ist es wirklich spannend und sehr interessant, seine Meinung, sein Verständnis und seine Planungen und schlussendlich seine Ideen zu erfahren.


Mehr Informationen: Steve Ballmer auf dem Microsoft Software Strategy Summit 2009 in Köln

Weiterführende Links:




This post is powered by www.Giza-Blog.de | Giza-Blog.de: RSS Feed
Visit:  MSDN Online | Follow MSDN Online on Twitter | Follow Kay Giza on Twitter
Daily News on MSDN:   MSDN Aktuell
© Copyright 2006-2009 Kay Giza. All rights reserved. Legal

1und1 und Microsoft bieten dedizierten Studenten-Server inkl. Design- und Entwicklungssoftware

06.02.2009 18:13:38 | Kay Giza

Vor meinem Urlaub diese Woche habe ich mir eine kleine Liste gemacht, worüber es lohnenswert ist, zu berichten.
Da ich jetzt genügend Kraft in dieser Woche getankt habe :)

Also - richtig cool wie ich finde, für knapp 40,- Euro monatlich können Studierende jetzt einen eigenen dedizierten Server im 1&1-Rechenzentrum (und nicht von schlechten Eltern der Server ;-)) betreiben und erhalten darüber hinaus Zugang zur Microsoft-Initiative DreamSpark. DreamSpark ermöglicht den kostenlosen Download von Design- und Entwicklungssoftware wie Visual Studio 2008, Expression Studio 2 oder SQL Server 2008. Um das Angebot von 1&1 und Microsoft nutzen zu können, ist ein Freischaltcode notwendig, der unter www.1und1.info/studenten angefordert werden kann.

Link: www.1und1.info/studenten

Siehe auch:



This post is powered by www.Giza-Blog.de | Giza-Blog.de: RSS Feed
Visit:  MSDN Online | Follow MSDN Online on Twitter | Follow Kay Giza on Twitter
Daily News on MSDN:   MSDN Aktuell
© Copyright 2006-2009 Kay Giza. All rights reserved. Legal

25. Multimediatreff: Flash, Flex & Silverlight – reichlich Web!

06.02.2009 11:02:24 | Oliver Scheer

Steffen Ritter und meiner einer, sind wieder auf den Multimediatreff in Köln eingeladen worden. Und freuen uns endlich mal wieder ins wunderschöne Rheinland zu dürfen.

Hier ist die offizielle Veranstaltungsankündigung. Alle sind herzlich willkommen.

“Samstag, 28. März 2009 in Köln im MediaPark

Immer häufiger sieht man sie im Alltag… RIAs. Rich Internet Applications begegnen einem im Web, als Navigationsoberfläche für Onlinebestellungen, als Auto-Konfigurator oder auch mobil, denn viele Benutzeroberflächen von Handys und Navigationssystemen wurden als RIAs entwickelt. Die Vorteile liegen klar auf der Hand – sie sind in der Regel benutzerfreundlicher als herkömmliche Webanwendungen, reagieren schneller auf Benutzereingaben und funktionieren zudem meist offline direkt beim Client.

Dieser Multimediatreff beleuchtet die populärsten Multimedia-Allrounder zur Erstellung von RIAs – Flash, Flex und Silverlight. Zudem wird gezeigt, wie schnell man eine AIR-Anwendung erstellt und wie effizient FDT als Entwicklungsumgebung zur Programmierung von größeren Flash-Projekten funktioniert. Dafür wurden die Experten der Szene eingeladen, neben Adobe und Microsoft, werden auch die Flexperten und die Powerflasher mit von der Partie sein.

Ausführliche Infos zu dieser Veranstaltung gibt es hier:
http://www.multimediatreff.de/naechstestreffen.php

ZIELGRUPPE
Die Jubiläumsveranstaltung zum 25. Multimediatreff richtet sich verstärkt an Flash/Web-Entwickler und -Designer, die sich einen Überblick der neusten Features und Technologien rund um die Erstellung von Web- und Desktop-Anwendungen mit Flash, Flex & Silverlight verschaffen möchten.

Des Weiteren werden beim Thementag mehr Pausen eingeräumt, so dass die Teilnehmer die Möglichkeit haben die Veranstaltung als Kontaktbörse zu nutzen – die Teilnehmerliste auf der Homepage vom Multimediatreff bietet alle Infos, um sich vorab über die Teilnehmer zu erkundigen. Im Foyer wird es ein kleines Rahmenprogramm geben; die Teilnehmer können hier direkt Kontakt zu Adobe, Microsoft, den Flexperten und den Powerflashern aufnehmen – zudem wird es einen Stand von WACOM und Galileo Design geben.

Wer zuvor noch bei keinem Multimediatreff dabei war, der kann sich eine der letzten Veranstaltungen komplett in Bild und Ton als Tech Talk anschauen:
http://www.galileocomputing.de/techtalks

PREIS + LEISTUNG
Die Teilnahme an dieser Veranstaltung kostet 35,- EUR und beinhaltet die Verpflegung über den ganzen Tag. So gibt es lecker belegte Brötchen, opulente Fruchtschalen und am späten Nachmittag darf man sich auf die berühmt berüchtigte Pizza-Schlacht freuen! Zudem fließen reichlich Soft-Getränke und zum Abschluss gibt es noch ein spritzig, kühles Kölsch oder je nach Belieben ein Becks.
Zudem werden einige hochwertige Preise verlost, wie beispielsweise eine FDT Enterprise Edition, eine 3-tägige Flex-Schulung, jede Menge Bücher und Video-Trainings zum Thema, so wie nette Give-Aways der Sponsoren!

ANMELDUNG
Die Vergangenheit hat gezeigt, dass die Plätze beim MMT meist schnell vergeben sind – so gilt es sich rechtzeitig anzumelden:
http://www.multimediatreff.de/reservieren.php

HowToCode: ErrorCodes, Exceptions, den User informieren, wenn etwas schief läuft - wie gehts?

06.02.2009 01:46:32 | Robert Mühsig

image Usereingaben validieren, durch die Businesslogik schicken, dem Nutzer evtl. Fehler wieder anzeigen - fast jedes System macht sowas, doch wie macht man es "richtig"? Definiert man Errorcodes? Was ist mit Mehrsprachigkeit? In dem Post zeige ich meine Variante und bitte auch um Feedback :)

(more…)

ShareThis

Windows 7 Versions

05.02.2009 20:12:00 | Ozgur Aytekin

Windows 7 Starter
Netbook market, can only run 3 applications at once

Windows 7 Home Basic
Limited networking, limited UI sizzle, emerging markets only

Windows 7 Home Premium
Media Center+Tablet, Limited networking, more UI sizzle

Windows 7 Professional
Corporate Version, full networking, security enhancements

Windows 7 Enterprise
Corporate Version 2, more security and workgroup features

Windows 7 Ultimate
Upgrades from Home and Professional UI and feature enhancements

…und noch mehr Silverlight Controls

04.02.2009 19:46:00 | Steffen Ritter

Oha, scheint so als hätte ich mir meine Recherche zu Silverlight Charting Controls sparen können, denn Kollege Tim Heuer hat bereits fünf Tage vorher eine beeindruckend lange Liste mit Silverlight Controls for Developers in seinem Blog veröffentlicht: http://timheuer.com/blog/archive/2009/01/28/comprehensive-list-of-silverlight-controls.aspx

Wie installiere ich das SQL Server Management Studio Basic?

04.02.2009 17:14:13 | Lars Keller

Dieser Post ist ein Reminder an mich selbst, da ich gerade lange nach einer Möglichkeit gesucht habe, das SQL Server Management Studio Basic nach zu installieren. Was in meiner Situation nicht ging!

Ich hatte einen SQL Server 2008 Express installiert und dachte dass man das SQL Server Management Studio separat runterladen muss. Nein dem ist nicht so! Es gibt 3 verschiedene SQL Server 2008 Express Varianten:

  1. SQL Server 2008 Express
    SQL Server database engine - create, store, update and retrieve your data
  2. SQL Server 2008 Express with Tools
    SQL Server database engine - create, store, update and retrieve your data
    SQL Server Management Studio Basic - visual database management tool for creating, editing and managing databases
  3. SQL Server 2008 Express with Advanced Services
    SQL Server database engine - create, store, update and retrieve your data
    SQL Server Management Studio Basic - visual database management tool for creating, editing and managing databases
    Full-text Search - powerful, high-speed engine for searching text-intensive data
    Reporting Services - integrated report creation and design environment to create reports

Wie man dem entnehmen kann, dachte ich, lade ich fix die Variante 2 runter und füge das Management Studio hinzu. Das geht leider nicht. Ich musste erst den kompletten SQL Server 2008 Express deinstallieren, um dann die andere Variante neu zu installieren.

Ich würde sagen, da hat jemand richtig mitgedacht!



This weblog is sponsored by netcreate OHG.

Wie installiere ich das SQL Server Management Studio Basic?

04.02.2009 16:14:13 | Lars Keller

Dieser Post ist ein Reminder an mich selbst, da ich gerade lange nach einer Möglichkeit gesucht habe, das SQL Server Management Studio Basic nach zu installieren. Was in meiner Situation nicht ging!

Ich hatte einen SQL Server 2008 Express installiert und dachte dass man das SQL Server Management Studio separat runterladen muss. Nein dem ist nicht so! Es gibt 3 verschiedene SQL Server 2008 Express Varianten:

  1. SQL Server 2008 Express
    SQL Server database engine - create, store, update and retrieve your data
  2. SQL Server 2008 Express with Tools
    SQL Server database engine - create, store, update and retrieve your data
    SQL Server Management Studio Basic - visual database management tool for creating, editing and managing databases
  3. SQL Server 2008 Express with Advanced Services
    SQL Server database engine - create, store, update and retrieve your data
    SQL Server Management Studio Basic - visual database management tool for creating, editing and managing databases
    Full-text Search - powerful, high-speed engine for searching text-intensive data
    Reporting Services - integrated report creation and design environment to create reports

Wie man dem entnehmen kann, dachte ich, lade ich fix die Variante 2 runter und füge das Management Studio hinzu. Das geht leider nicht. Ich musste erst den kompletten SQL Server 2008 Express deinstallieren, um dann die andere Variante neu zu installieren.

Ich würde sagen, da hat jemand richtig mitgedacht!

Increment your Assembly Versions using Team Build

04.02.2009 13:26:23 | Christian Binder

Some time ago I have written a walkthrough how to increment your Assembly Versions using Team Build,  this blog post is quite popluar but only in German :-( Due to the lack of time, you might know this situation) But Christian Jacob enhanced and translated it on his Blog, which is great. So thx to Christian for doing so :-)

Chris

Neuer Artikel beim dot.net magazin: "AOP mit dem ASP.NET MVC-Framework"

04.02.2009 13:00:00 | Gregor Biswanger

In der neuen Ausgabe vom dot.net magazin gibt es einen neuen Artikel meinerseits:

Den Überblick behalten - Aspektorientierte Programmierung mit dem ASP.NET MVC-Framework

Die aspektorientierte Programmierung (AOP) hat in der .NET-Softwarearchitektur einen hervorragenden Platz gefunden. AOP hilft, wichtige Funktionen wie Logging oder Caching zentraler zu verwalten, der Code wird dadurch modularer und leichter wartbar. Wir stellen einige neue Filter für das ASP.NET MVCFramework vor, die als Aspekte fungieren.



Zu lesen sind die Artikel beim dot.net magazin, Ausgabe 03/2009.

Wie installiere ich das SQL Server Management Studio Basic?

04.02.2009 07:14:01 | Lars Keller

Dieser Post ist ein Reminder an mich selbst, da ich gerade lange nach einer Möglichkeit gesucht habe, das SQL Server Management Studio Basic nach zu installieren. Was in meiner Situation nicht ging!

Ich hatte einen SQL Server 2008 Express installiert und dachte dass man das SQL Server Management Studio separat runterladen muss. Nein dem ist nicht so! Es gibt 3 verschiedene SQL Server 2008 Express Varianten:

  1. SQL Server 2008 Express
    SQL Server database engine - create, store, update and retrieve your data
  2. SQL Server 2008 Express with Tools
    SQL Server database engine - create, store, update and retrieve your data
    SQL Server Management Studio Basic - visual database management tool for creating, editing and managing databases
  3. SQL Server 2008 Express with Advanced Services
    SQL Server database engine - create, store, update and retrieve your data
    SQL Server Management Studio Basic - visual database management tool for creating, editing and managing databases
    Full-text Search - powerful, high-speed engine for searching text-intensive data
    Reporting Services - integrated report creation and design environment to create reports

Wie man dem entnehmen kann, dachte ich, lade ich fix die Variante 2 runter und füge das Management Studio hinzu. Das geht leider nicht. Ich musste erst den kompletten SQL Server 2008 Express deinstallieren, um dann die andere Variante neu zu installieren.

Ich würde sagen, da hat jemand richtig mitgedacht!

Ohne Lautsprecher keine Videos unter Windows 7 Media Center

03.02.2009 21:32:00 | Michael Schwarz

Wow, da staunte ich nicht schlecht, als ich vor ein paar Tagen feststellen musste, dass ohne Lautsprecher unter Windows 7 im Windows Media Center keine Videos abgespielt werden konnten. Im Büro haben wir nur vereinzelt Lautsprecher, an dem Test PC mit Windows 7 war gerade keiner dran.

Windows 7 erkennt, ob Lautsprecher am PC angeschlossen sind oder nicht. Das funktioniert auch mit intern bereits eingebauten Lautsprechern.

Ich meine, dass man dann aber trotzdem in der Lage sein sollte, die Videos abspielen zu können. Was ist mit all den Menschen, die taub sind, und auch mit Lautsprecher nichts hören?

Wer bei Microsoft Connect registriert ist, kann mit abstimmen.

Hier noch ein paar weitere meiner Bugs bzw. anders gewünschte Verhalten in der derzeitigen Beta von Windows 7:


Bundesministerium für Bildung und Forschung setzt auf Silverlight 2

03.02.2009 19:21:11 | Oliver Scheer

Die Firma Visual Bridges hat für das Bundesministerium für Bildung und Forschung einen interaktiven Player für diverse Themen aus dem Bereich der „Zukunft der Biotechnologie“ bereitgestellt.

Darin werden für verschiedene Standort verschiedene Themen mithilfe eines interaktiven Players dargestellt.

Mehr Informationen und die Player gibt es hier:

http://www.biotechnologie.de/BIO/Navigation/DE/ausbildung,did=84162.html

Heise hat ebenfalls schon drüber berichtet:

http://www.heise.de/newsticker/Filme-interaktiv-mit-Microsoft-Silverlight-Technik--/meldung/126669

Adroid Handy in Deutschland – Das T-Mobile G1 ist da!

03.02.2009 16:03:00 | Michael Schwarz

Man kann es nicht übersehen: das G1 Handy ist nun auch in Deutschland erhältlich, aber ist es eine Alternative zum iPhone, oder zu anderen Handys (Symbian, Windows Mobile,…)?

image


Morgen: Treffen der .NET User Group Dresden

03.02.2009 15:24:58 | Robert Mühsig

Morgen trifft sich die .NET User Group Dresden in der HTW Dresden. Wer den Termin noch nicht kannte, sei hiermit herzlich eingeladen. Alle Details und die Teilnehmerliste findet man auf der Homepage.

image

(more…)

ShareThis

Adobe Illustrator zu XAML – neue Version des kostenlosen Plug-Ins

03.02.2009 09:40:00 | Steffen Ritter

Kaum bin ich entnervt nach fast zwei Stunden Stau endlich im Office angelangt, schon heitert mich mein Kollege Oliver Scheer mit einer wunderbaren Nachricht wieder auf: Eine neue Version von Mike Swansons XAML-Plug-In für Adobe Illustrator ist ab sofort verfügbar.

Die drei wichtigsten Verbesserungen schnell in aller Kürze bevor es zum nächsten Meeting geht (denn das ist einfach zu gut um es aufzuschieben):

  • Ein nerviges Fehlverhalten im Zusammenhang mit Pfadgeometrie und Silverlight 2 wurde behoben; betroffene XAML-Dokumente sollten nun problemlos und direkt zu Blend 2 exportiert werden können.
  • Die unnötig akkurate Genauigkeit der Vektordaten im exportieren XAML wurde heruntergeschraubt, was die Dateigröße der XAML-Dateien drastisch verringert (teilweise um 15% oder mehr).
  • Eine dritte kleine, aber angenehme Verbesserung ist dass die Exportformate umbenannt wurden und daher im Dialog besser zu erkennen sind und nebeneinander angezeigt werden.

Das Plug-In funktioniert mit allen halbwegs aktuellen Versionen von Adobe Illustrator für Windows inkl. CS4.

Weitere Infos und Download des Adobe Illustrator XAML Plug-Ins direkt in Mike Swansons Blog: http://blogs.msdn.com/mswanson/archive/2009/01/31/updated-adobe-illustrator-to-xaml-plug-in.aspx

TeamConf 2009

03.02.2009 09:07:39 | Oliver Scheer

es ist wieder soweit: vom 05.-07. Mai 2009 findet in München zum 2.Mal die TeamConf statt – die Konferenz rund um Visual Studio Team System (www.teamconf.de)

Für wen ist die TeamConf relevant?

  • Alle, die bereits mit VSTS arbeiten – um sich mit anderen Anwendern auszutauschen und um Einblicke in VSTS 2010 zu gewinnen
  • Alle, die VSTS evaluieren – um von den Erfahrungen & Best Practices anderer zu lernen und um eine Entscheidung für VSTS zu fällen
  • Alle, die an VSTS interessiert sind – um sich komprimiert über aller Vorteile und Einsatzszenarien von VSTS zu informieren

Format: 2-tägige kostenpflichtige Konferenz mit 1 Tag Pre-Konferenz für Workshops

  • Anwenderberichte: Unternehmen berichten über Ihre Erfahrung mit VSTS, dieses Jahr u.a. dabei:
    Arvato, AutoScout 24, HVB, Landesbank Baden-Württemberg, Siemens AG, Polizeipräsidium Oberbayern, T-Systems
  • Fachvorträge: lösungsorientierte Szenarien und Best Practices mit Visual Studio Team System vorgestellt als auch Methodiken des modernen Software Engineerings
  • Technologiebeiträge: technische Details einzelner Funktionsbereiche von Visual Studio Team System
  • Keynotes: Ken Schwaber („Erfinder“ von SCUM), Cameron Skinner (Microsoft Product Unit Manager VSTS)
  • Workshops: technisch umfassende Halbtages- und Ganztagesworkshops, u.a. zu den Themen
    • SharePoint als Entwicklungsplattform, UML, TFS in der Praxis
  • Tutorial: Microsoft Software plus Services Strategie

Mehr Informationen gibt es hier: http://www.teamconf.de/

HowTo: Einstieg in Windows Azure CTP und erstes HelloWorld

03.02.2009 00:49:34 | Robert Mühsig

imageIn einem letzten Blogpost habe ich über Cloud Computing im Allgemeinen geschrieben.

Darin hab ich bereits etwas über die Windows Azure Plattform gesprochen und möchte nun eine "Hello World" Anwendung auf Windows Azure erstellen.

(more…)

ShareThis

Professionelle Charting Controls für Silverlight

02.02.2009 15:42:11 | Steffen Ritter

Microsoft (und ganz besonders .NET) hat ja traditionell eine starke Position im Bereich Enterprise-Anwendungen und hier wird auch schon immer häufiger auf Silverlight als Visualisierung für professionelle Business-Dashboards, SAP-Frontends und Intranetlösungen gesetzt. Das ist nicht verwunderlich, schließlich ist Microsoft der einzige Anbieter, der einen durchgängigen Stack vom plattformübergreifenden Frontend in Silverlight bis hin zum dicken Serverbackend und Datenbank aus einer Hand liefern kann. Für jeden Projektmanager natürlich ein absolutes Killerargument (im positiven Sinne), denn dadurch werden die meisten “Sollbruchstellen” eliminiert, die sonst entstehen wenn Datenbank, Server, Frontend und Middleware von verschiedenen Anbietern stammen. Das macht nicht nur die Entwickler glücklich (deutlich geringerer Zeitaufwand und Probleme), sondern auch die Controller/Buchhaltung (weil die Kosten spürbar niedriger ausfallen und zudem besser planbar sind).

Allerdings scheinen viele der ganzen glücklichen Programmierer die Zeit nicht allzu gerne mit Recherche nach fertigen Controls speziell für die Visualisierung und Aufbereitung von Unternehmensdaten zu verbringen – oder wie sonst soll ich mir die häufigen Fragen nach guten professionellen Controls erklären?

Um dem ein wenig abzuhelfen habe ich eine kurze und natürlich unvollständige Liste guter Controls speziell aus dem Bereich Charting und Data Visualisierung zusammengestellt. Teilweise Kostenlos oder sogar Open Source, teilweise kommerziell.

Wie gesagt, diese Liste ist unvollständig und in keinster Weise eine Wertung dieser Controls, oder gar eine Abwertung von Controls die ich übersehen habe. Weitere gibt es übrigens auch auf der Silverlight-Homepage: www.silverlight.net/showcase 

Wie auch immer, hier meine Übersicht Silverlight-Controls für Charting und Datenvisualisierung:

clip_image001[5]

Kommerzielle 3rd Party Charting Controls, teilweise kostenlos, teilweise kostenpflichtig: http://demos.telerik.com/silverlight/#Home

clip_image001[7] Kostenlose aber recht gelungene Open-Source-Charting-Controls: http://www.codeplex.com/FreeSilverlightChart
clip_image001[9] Kommerzielle 3rd Party Charting Controls, teilweise kostenlos, teilweise kostenpflichtig: http://www.infragistics.com/hot/silverlight/xamwebchart.aspx#xamWebGauge
clip_image001[11] Kommerzielle 3rd Party Charting Controls, teilweise kostenlos, teilweise kostenpflichtig: http://www.componentone.com/SuperProducts/ChartSilverlight/
clip_image001[13] Kostenlose aber recht gelungene Open-Source-Charting-Controls: http://www.codeplex.com/Silverlight/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%202&referringTitle=Home
clip_image001[15] Recht gelungene Open-Source-Charting-Controls: http://www.visifire.com/
image

Open Source Charts im Silverlight Toolkit:

http://www.codeplex.com/Silverlight

Erfrischende Präsentation zum Thema “Wissensmanagement im Enterprise 2.0”

02.02.2009 10:48:45 | Lars Keller

Die Präsentation “Wissensmanagement im Enterprise 2.0 - Der Wikipedia Irrtum” diskutiert den Einfluss von Social Software in betrieblichen Prozessen. Auf sehr erfrischende und humorvolle Art wird das Thema aufbereitet und die Entwicklung von Wissensmanagement aufgezeigt. Die Präsentation besteht aus drei Teilen. Zwei davon sind mittlerweile veröffentlicht.

In Teil 2 geht es wie der Titel schon andeutet um den Menschen an sich und wie dieser mit der Hilfe von Social Software sein Wissen vernetzt.

Update: Teil 3 ist Online.

Links:



This weblog is sponsored by netcreate OHG.

3-2-1, Start: IE8 RC1 ist da… (Hilfreiche Infos für Webdeveloper)

02.02.2009 10:01:59 | Steffen Ritter

Ein wahres Neuigkeiten-Feuerwerk im Internet Explorer Developer Center: Nahe an der Fertigstellung ist der Internet Explorer 8 mit dem „Release Candidate 1“, der jetzt in 25 Sprachen zum Download für Windows Vista, Windows XP ab Service Pack 2 sowie für Windows Server 2003 und 2008 zur Verfügung steht (meine vielgeliebte Betaversion von Windows 7 braucht den RC1 nicht, dort ist bereits eine andere Version integriert). Im IEBlog finden Sie eine umfassende Zusammenfassung von Upgrade- und Installationshinweisen für die neue Vorabversion des Internet Explorers. Die englischsprachige IE8 Beta-Newsgroup steht für den Erfahrungsaustausch bereit. Gleichzeitig wird auch das Internet Explorer Administration Kit (IEAK) in Kürze auf Deutsch verfügbar sein.

Wichtige Infos für Webentwickler: Ist Ihre Webseite IE8-kompatibel?
Internet Explorer 8 hält sich konsequenter an Standards als seine Vorgänger. Seiten, die bisher spezifisch auf eine ältere Version des Internet Explorer angepasst waren, müssen dennoch nicht zwingend neu konzeptioniert und erstellt werden: Mithilfe von einfachen Meta-Tags auf Ihren Seiten oder durch benutzerdefinierte HTTP-Antwortheader auf dem Webserver (etwa mit IIS oder Apache) können Sie IE8 von einer rückwärtskompatiblen Darstellung Ihrer Seiten überzeugen. Lesen Sie auch den MSDN Library-Artikel „Wie bereite ich meine Website noch heute vor?“.

Kompatibilitätsansicht-Update für Internet Explorer 8
Mithilfe dieses Updates kann die Darstellung von Websites, die für ältere Browser entwickelt wurden, in Internet Explorer 8 verbessert werden. Um das Update nutzen zu können, muss die Option „Aktualisierte Websitelisten von Microsoft einbeziehen“ in den Einstellungen der Kompatibilitätsansicht von IE8 aktiviert sein.

Video: Was ist neu im Internet Explorer 8?
In diesem aufgezeichneten Vortrag auf dem Daniel Melanchthon, Security Evangelist bei Microsoft Deutschland, Ihnen einen Einblick in die Neuerungen von Internet Explorer 8. Noch in der Entwicklung befindlich, bietet die neue Version im Vergleich zu seinen Vorgängern eine deutlich verbesserte Unterstützung von Standards und erhöhte Interoperabilität. Sie enthält Entwicklertools, um in einer visuellen Umgebung schneller Fehler in HTML, CSS und Scripts zu finden. Schnellinfos, Thematische Suche, WebSlices und Vorgeschlagene Sites geben Benutzern neue Möglichkeiten beim Browsen durch das Web.

Änderungsverfolgung mit den ADO.NET Data Services

02.02.2009 09:54:07 | Oliver Scheer

Seit einigen Tagen ist ein neuer Codeclip in unserer MSDN Solve Serie verfügbar. Sehr interessant.

Auszug aus dem Abstrakt:

“Wie kann ich mit ADO.NET Data Services Änderungsverfolgung realisieren und Datenkonflikte lösen?

Änderungen an Objekten eines DataContexts müssen dem Context mitgeteilt werden. Nicht immer lässt sich feststellen, wann Änderungen an Eigenschaften eines Objekts vorgenommen wurden; beispielsweise, wenn das Objekt an ein DataGrid gebunden ist. In diesem CodeClip wird erklärt, wie eine Änderungsverfolgung mit den ADO.NET Data Services realisiert werden kann. Wenn mehrere Clients zeitgleich auf denselben Datenbestand zugreifen, kann es passieren, dass der eine Änderungen des anderen zufällig überschreibt. In diesem CodeClip wird ebenfalls gezeigt, was ADO.NET Data Services bietet um solche Konflikte zu erkennen, und eine Möglichkeit vorgestellt Konflikte mit Optimistic Concurrency zu lösen.”

Mehr Informationen gibt es hier:
http://www.microsoft.com/germany/msdn/solve/codeclips/library.aspx?id=msdn_de_31212

Erfrischende Präsentation zum Thema “Wissensmanagement im Enterprise 2.0”

02.02.2009 09:48:45 | Lars Keller

Die Präsentation “Wissensmanagement im Enterprise 2.0 - Der Wikipedia Irrtum” diskutiert den Einfluss von Social Software in betrieblichen Prozessen. Auf sehr erfrischende und humorvolle Art wird das Thema aufbereitet und die Entwicklung von Wissensmanagement aufgezeigt. Die Präsentation besteht aus drei Teilen. Zwei davon sind mittlerweile veröffentlicht.

In Teil 2 geht es wie der Titel schon andeutet um den Menschen an sich und wie dieser mit der Hilfe von Social Software sein Wissen vernetzt.

Update: Teil 3 ist Online.

Links:

Erfrischende Präsentation zum Thema “Wissensmanagement im Enterprise 2.0”

02.02.2009 00:48:04 | Lars Keller

Die Präsentation “Wissensmanagement im Enterprise 2.0 - Der Wikipedia Irrtum” diskutiert den Einfluss von Social Software in betrieblichen Prozessen. Auf sehr erfrischende und humorvolle Art wird das Thema aufbereitet und die Entwicklung von Wissensmanagement aufgezeigt. Die Präsentation besteht aus drei Teilen. Zwei davon sind mittlerweile veröffentlicht.

In Teil 2 geht es wie der Titel schon andeutet um den Menschen an sich und wie dieser mit der Hilfe von Social Software sein Wissen vernetzt.

Update: Teil 3 ist Online.

Links:

Soundless Mountain II, ein fantastisches Demake von Silent Hill 2

01.02.2009 12:17:00 | Steffen Ritter

Auch wenn es thematisch nicht unbedingt in mein Blog passt, ich bin schlichtweg zu begeistert um zu schweigen: Ein kleines Indie-Studio namens Superflat Games hat ein fantastisches Demake des möglicherweise besten Survival Horror Spiels aller Zeiten herausgebracht: Soundless Mountain II, eine pseudo-NES-Umsetzung des Klassikers Silent Hill 2 (läuft unter Windows und Mac OS X).

soundlm3a

Das bringt Erinnerungen an den Beginn des jungen Jahrtausends zurück; wer mich kennt weiß dass ich nicht nur ein großer Fan der Silent Hill-Reihe bin/war, sondern auch zwei wissenschaftliche (?) Arbeiten dazu veröffentlicht habe: 

Anyway, genug literarische Vergangenheitsbewältigung und Ego-Tripping für heute. Ich mache mich wieder auf die Suche nach Kate in Soundless Mountain II…

Zum Download von Soundless Mountain II (Win/Mac).

Die Forderung nach Softwarequalität

01.02.2009 09:37:00 | Peter Bucher

Am 13. Oktober 2008 haben Golo Roden und ich unter dem Titel Noch Fragen, Roden? Ja, Bucher! angekündigt, jeweils zum ersten eines jeden Monats einen Kommentar zu einem vorab gemeinsam gewählten Thema verfassen zu wollen. Bisher sind in dieser Reihe folgende Kommentare erschienen:

Heute, am 1. Februar 2009, ist es nun wieder so weit, und unser Thema für diesen Monat lautet:

Die Forderung nach Softwarequalität

Zum Blogpost von Golo gehts hier lang: Die Forderung nach Softwarequalität

In früheren Blogeintrag habe ich über das Thema “Perfektes Design” geschrieben und damit eine weitreichende Diskussion ausgelöst.
Auf myCSharp.de wurde letztens mit dem Titel “Alltag in unserer Branche (?)” darüber diskutiert, wie die Entwickler die Qualität der Softwareentwicklung im Alltag erleben, oder eben nicht.

Für mich ist es extrem wichtig, dass ich meinen Stil und die Qualität meiner Arbeit / Software – egal ob privat oder im Geschäft – stetig steigern kann.

Was mache ich dafür?

  • Beschäftigung mit Design Patterns
  • Beschäftigung mit Architektur
  • Mich über diverse relevanten Themen informieren und viel ausprobieren
  • Viel fremden Code lesen
  • Viel lesen und schreiben

Die Beschäftigung mit den Themen “Design Patterns” und “Architektur” führen zu sehr vielen interessanten Erkentnissen, die mir vorher nicht bewusst waren und steigern die Qualität des Codes immens.

Zu den relevanten Themen zählen für mich unter anderem die N schichtige Architektur, IoC (Inversion of Control) / Dependency Injection, Software Testing und Coding Styles.

Lesen alleine hilft leider nicht soviel wie es sollte, Abhilfe schafft hier das praktische Anwenden.
Beispielsweise habe ich die neu entdeckten Themen direkt auf meine Homepage angewendet und verwende dort eine mehrschichte Architektur mit einem IoC Container und – zumindest ein paar – Unit Tests.

Ich war ziemlich schnell begeistert von diesen neuen Themen und die Umsetzung war auch nicht extrem schwierig, es hat jedoch Zeit gekostet.

Aber: Diese Zeit hat sich gelohnt!

Was hat es schlussendlich gebracht die neuen Techniken in meine Homepage zu implementieren?
Nach aussen hin nicht viel, aber ich habe viel dazu gelernt und eine Erweiterung / Änderung ist um einiges einfacher und flexibler durchzuführen und nicht zuletzt ist der Code auch verständlicher geworden und die möglichen Fehler haben sich minimiert.

Das waren jetzt meine Interessen und mein privates Umfeld.

Wie erlebt man denn die Softwarequalität im Arbeitsumfeld?

Vielfach ist es so, dass dort noch Altlasten vorhanden sind, die Architektur nicht (mehr) optimal ist.
Dies kann zukünftig geplante Features hinauszögern, die Entwicklung (vorallem die Veränderung an bestehendem) verlangsamen und noch einiges mehr.

Kann sich ein Entwickler am Arbeitsplatz voll entfalten und seine Erfahrungen ganz einbringen?

Ich denke: In den den meisten Fällen wird das nicht möglich sein, ausser es ist eine frische Firma mit der richtigen Einstellung und Führung, sowie interessierten und erfahrenen Mitarbeitern.

Quellcodeverwaltung ist im komerziellen Umfeld sowieso Pflicht, aber was ist hiermit:

  • Code Richtlinien fürs Team
  • Die Pflicht für Kommentare (Vorher wird nicht eingecheckt)
  • Prüfung dass der Code kompiliert (dito)
  • Unit Testing
  • UI Tests
  • Code Reviews
  • Evt. sogar einen Ansatz zum Pair Programming
  • Weiterbildungen der Entwickler

Okay, das ist jetzt vielleicht zuviel verlangt aber vielerorts gibt es Firmen wo nicht einmal einen Punkt ansatzweise umgesetzt wird, das ist schade.

Code Richtlinien führen zur besseren Lesbarkeit, besserer Wartung und Konsistenz im Code.
Pflicht für Kommentare (Damit sind im .NET-Umfeld vorallem XML-Kommentare gemeint) machen es um einiges einfacher für einen neuen Entwickler, sich in ein Projekt einzuarbeiten und APIs zu benutzen.
Zudem kann so sehr einfach eine API-Referenz generiert werden.

Ist es sinnvoll Code einzuchecken der nicht kompiliert? Ich sage: Nein!
Wenn es Feierabend ist und der Code partout nicht kompiliert kann man ihn einshelven (TFS), oder an einen anderen Ort einchecken, aber nicht zur richtigen Quellcodeverwaltung.

Wie oben geschrieben, habe ich mich erst seit kurzem mit dem Thema Testing befasst, nichts desto trotz sehe ich schon jetzt extrem viel Sinn im Testing und würde nicht mehr ohne wollen.

Unit Tests sowie auch UI Tests helfen dem Entwickler und auch der Qualitätssicherung (Wenns sowas gibt) automatisiert nach Änderungen zu prüfen ob ein Code an einer anderen Stelle negativen / ungewollten Einfluss nimmt, bzw. den Workflow stört.
Ohne Tests müssten sehr viele Fälle manuell getestet werden, was nicht praktikabel / durchführbar und mühsam ist.
Da wird sehr gerne irgend ein Fall vergessen (davon gibt es ja genug), es wird nur beiläuftig getestet oder die Entwickler verlieren Tage mit debuggen und sich wiederholenden, langsamen Oberflächentests.

Zu Code Reviews habe ich bisher auch nicht so viel Erfahrungen, aber mit der Erfahrung die ich bisher sammeln konnte bin ich überzeugt davon, dass dies die Qualität und vorallem auch die eigene Arbeitsweise extrem ins positive gesteigert werden kann.

Seit mehr als einem Monat arbeite ich mit Golo Roden an einem relativ kleinen Projekt mit ASP.NET.
Relativ klein in dem Sinne, dass das Projekt schon längst fertig sein könnte, wenn es jemand anderes gemacht hätte. Das liegt jedoch nicht daran das Golo und ich schlecht und langsam arbeiten, sondern dass dieses Projekt auch als Übungswiese dient und auch das Ziel verfolgt die eigene Arbeitsweise und die Qualität der Software zu steigern.

Das heisst, die Software sollte schlussendlich sehr gut erweiterbar, wartbar sein und es sollte auch Spass machen weiterhin daran zu arbeiten.
Dabei habe ich nicht nur gemerkt das Golo und ich uns perfekt ergänzen, sondern auch dass es sehr, sehr positiv ist wenn der zweite Spieler auf dem Feld auch auf eigene Fehler oder Unsauberkeiten hinweist und meistens schon Verbesserngsvorschläge bringt. Synergie heisst hier das Zauberwort und sehr viel ist nicht dazu nötig, jedoch ist der Ertrag immens.

Aus diesem Grunde habe ich “Ansatz zu Pair Programming” geschrieben. Es muss ja nicht so sein, dass das Paar nebeneinander sitzen und sich die längste Zeit auf die Finger schauen muss.
Sondern dass es die längste Zeit Reviews mit Feedback gibt und ab und zu auch miteinander geredet (In unserem Fall telefoniert) wird, um Gedanken 1:1 auszutauschen.
Es braucht Zeit zu lernen, es braucht auch Zeit richtig zu lernen wie es auch Zeit und Geld braucht sich im Rahmen der Firma weiterzubilden – aber es lohnt sich auf jeden Fall.

Die Wahl zur Informatik bedeutet in jedem Fall den Willen zum stetigen Lernen zu haben und das auch umzusetzen.
Wenn dies nicht vorhanden ist, ist die Informatik nicht der richtige Platz, ausser die Zeit bleibt stehen (was sie ja bekanntlich nicht tut ;-)).

Ich würde aufgrund meinen Erfahrungen in diesem Gebiet dazu raten am Arbeitsplatz nicht zu resignieren, sondern seine Arbeit nach bestem Gewissen durchzuführen.
Wenn man Glück hat, können auch obere Etagen davon überzeugt werden, die Qualität – im Interesse aller in der Firma, sowie auch den Kunden – der Software zu steigern und einen guten Stil in die Arbeit einzubringen.

Zuletzt will ich noch die Initiative von Ralf Westphal und Stefan Lieser erwähnen, die sich mit oben genannten Themen beschäftigt und Prinzipien / Regeln zu einem saubereren Code immer wieder ins Gedächnis rufen soll: http://clean-code-developer.de/

Regeln | Impressum