.
Anmeldung | Registrieren | Hilfe

.NET-Blogs Archiv Mai 2009

Stupidedia-Sinnlosportale

31.05.2009 16:11:00 | Ozgur Aytekin

Irrelevante Informationen aus den Bereichen:

Ausbildung • Chemie • Computer • Ernährung • Ferne Welten • Fernsehen • Filme • Fußball • Geografie • Geschichte • Heilkunde • Medien • Mobilität • Musik • Natur • Physik • Politik • Recht • Religion • Rumpelkiste • Schlümpfe • Sci-Fi • Theater • Verbrechen • Wirtschaft

Die Stupidedia ist die freie Satire- und Nonsens-Enzyklopädie, bei der alle mitmachen können, die kreative Ideen haben und die deutsche Sprache beherrschen.

http://www.stupidedia.org

Virtual ALT.NET (VAN) Meeting Juni

30.05.2009 18:05:00 | Alexander Zeitler

rws2-big

Am Montag, 01. Juni 2009, findet das nächste Virtual ALT.NET Online Meeting statt.

Dieses Mal beantwortet Udi Dahan Fragen zu DDD, SOA, CQS, Messaging und NServiceBus.

Beginn: Montag, 1. Juni 2009 21:00 Uhr (07:00 PM GMT)

Ende: Montag, 1. Juni 2009 22:30 Uhr (08:30 PM GMT)

LiveMeeting URL für die Teilnahme: http://snipr.com/virtualaltnet

VAN Kalender: http://www.virtualaltnet.com/van/Home/Calendar

SolidWorks AddIn-Entwicklung unter Windows Vista x64 mit Visual Studio 2008

30.05.2009 16:33:00 | Alexander Zeitler

Seit gestern beschäftige ich mich mit der AddIn-Entwicklung für SolidWorks – natürlich lief der Einstieg – x64 sei Dank – nicht reibungslos.

Um Visual Studio 2008 (SP1) für die AddIn-Entwicklung für SolidWorks zu verwenden, sollte man zunächst die Visual Studio 2005 C# Addin Template herunterladen und die Datei SWCharpAddin.zip in den Ordner

%USERPROFILE%\Documents\Visual Studio 2008\Templates\ProjectTemplates

kopieren.

Danach steht die Template über File / New Project / C# zur Verfügung (Visual Studio muss als Administrator gestartet werden):

SWCSharpAddin Template installiert

Nach dem Erstellen des Projekts möchte man nun sehen, was das AddIn bereits tut und drückt F5.

Dies führt zum Start von SolidWorks.

AddIns werden in SolidWorks in dem Fenster “Zusatzanwendungen” im Menü “Extras angezeigt” – wenn wir unser Addin hier suchen, finden wir allerdings... nichts:

Kein Addin weit und breit

Der Grund ist, dass unser AddIn standardmäßig mit der Target-CPU-Einstellung “AnyCPU” compiliert wird, es jedoch explizit mit “x64” kompiliert werden muss. Außerdem muss die AddIn-Assembly im gleichen Ordner wie die sldworks.exe liegen.

Also stellen wir in Visual Studio unter “Build” / “Configuration” auf x64 um (falls diese Konfiguration noch nicht existiert, kann diese von “AnyCPU” kopiert werden und auf x64 umgestellt werden):

x64 Konfiguration im Configuration Manager

Damit die Assembly nach dem Build im Ordner der SolidWorks-Installation landet, stellen wir in den Projekt-Eigenschaften im Reiter “Build” noch den Output-Path um:

OutputPath in den Build Settings 

Nun können wir also unser SolidWorks AddIn endlich kompilieren und verwenden, also schnell Strg+Shift+B gedrückt, um den Build anzustoßen und... wieder eine Fehlermeldung:

File "C:\Program Files\SolidWorks (2)\SolidWorks\SwCSharpAddin1.dll" is not a valid assembly

Also Google gebootet und nach “File is not a valid assembly” gesucht, Resultat: KB956933.

Das AddIn verwendet tatsächlich ComRegisterFunctionAttribute und ComUnregisterFunctionAttribute, also nochmal in die Projekt-Eigenschaften, Post-Build-Events und dort die x64-Variante von regasm.exe eingetragen wie im Artikel beschrieben.

Jetzt aber! Strg+Shift+B und...

File "C:\Program Files\SolidWorks (2)\SolidWorks\SwCSharpAddin1.dll" is not a valid assembly.

Nach einigem Suchen bin ich auf des Rätsels Lösung gestoßen:

In den Projekt-Eigenschaften im Reiter “Build” gibt es die Option “Register for COM interop”:

Register For COM Interop - Stolperfalle deluxe

Diese Option verwendet im Hintergrund regasm.exe – allerdings die 32Bit-Variante, weshalb es nicht ausreicht, wie im Artikel beschrieben, nur die x64-Variante in den Post-Build-Events einzutragen – auch der Haken bei “Register for COM interop” muss entfernt werden.

Wenn wir nun nochmals F5 drücken, startet SolidWorks, SwCSharpAddIn1 ist in den Zusatzanwendungen zu finden und beim Klick auf das nun vorhandene Menü “'C# Addin”

C# Addin im SolidWorks Menü

können wir uns einen Würfel erzeugen lassen:

Ein Würfel, erzeugt mittels SolidWorks API

Resultat: mit x64 ist man noch immer ein Außenseiter...

Konferenzen organisieren mit Contoo

30.05.2009 13:18:54 | Jan Welker

1423-CONTOO_logo [Trigami-Review] Da ich regelmäßig auf .NET Usergrouptreffen und Konferenzen anzutreffen bin, bekomme ich gelegentlich einen Teil der Organisation der Konferenzen mit. Die Organisation von Konferenzen wie der dotnet Cologne oder des netopenspace dauert mindestens ein halbes Jahr und verlangt den Organisatoren viel Freizeit und Einsatz ab. Als Organisationsplattform wurde bei der dotnet Cologne beispielsweise das Screwturn Wiki eingesetzt. Zusätzlich wurden unzählige Mails geschrieben.
Für die Registrierung wurde von Albert eine sehr umfangreiche Webanwendung entwickelt.
Als mir kürzlich angeboten wurde, ein Tool zu testen, das die Organisation von Konferenzen vereinfachen soll, habe ich die Gelegenheit genutzt und mir die das Tool Contoo einmal genauer angesehen. Contoo ist für die Organisation wissenschaftlicher Kongresse entwickelt wurden. Mich hat interessiert, in wie weit Contoo für die Organisation von .NET Community Veranstaltungen geeignet ist. Das Tool kann von jedem kostenfrei getestet werden. Jedoch ist dafür eine Registrierung mit Name und Adresse notwendig. Nach der Registrierung können sofort Konferenzen angelegt werden. Hierbei ist etwas Vorsicht geboten: das Anlegen einer Konferenz ist kostenlos. Klickt man jedoch auf den Online Button wird die Konferenz veröffentlicht und es kommt somit zu einem kostenpflichtigen Vertragsabschluss. Darauf sollte man beim evaluieren des Webangebotes unbedingt achten.

Los geht’s! Nach der Registrierung hat man die Möglichkeit, mit Hilfe eines Assistenten alle Daten für die Konferenz einzugeben. Als erstes werden Basisdaten wie Ort und Zeit der Konferenz abgefragt. Es besteht die Möglichkeit, eigene Logos hochzuladen um der zukünftigen Konferenzwebseite ein wiedererkennbares Design zu geben. Im Assistenten können eigene Registrierungsformulare zusammengeklickt werden, diese Funktion hat mir sehr gut gefallen. Es können nicht nur Registrierungsformulare für Besucher erstellt werden, sondern auch für Referenten. Referenten können dann auf der Konferenzwebseite, Vorschläge für Vorträge einreichen. Als Konferenzveranstalter hat man auf einer Administrationswebseite die Möglichkeit, die eingereichten Abstracts anzusehen und zu entscheiden, welcher Vorschlag angenommen wird. Für die eingereichten Abstracts gibt es eine eingebaute PDF-Exportfunktion. Aus den angenommen Vortragsvorschlägen kann online das Programm der Konferenz erstellt werden. Für die Konferenzwebseiten können eigene Unterseiten ähnlich wie in einem CMS eingefügt werden, auf denen zum Beispiel Informationen zum Veranstaltungsort angezeigt werden. Es können ebenfalls Preislisten generiert werden.
Bei fast jeder Konferenz gibt es eine Agenda, diese Agenda wird von Contoo automatisch in verschiedenen Formaten und mit einigen Filtern erzeugt, das ist sehr sinnvoll.
Die Formulare in Assistenten sind teilweise sehr komplex, bei Unklarheiten kann man die integrierte Onlinehilfe nutzen.

Ich denke, dass das Tool für einfache Konferenzen gut geeignet ist. Für das open space Konzept ist es leider nicht zu gebrauchen da es dort keine Aufteilung in Teilnehmer und Sprecher gibt. Die Preise für Contoo bewegen sich zwischen 299 und 499 Euro.
Leider funktionierte die Webseite im Internet Explorer 8 nicht fehlerfrei, daran sollte der Anbieter unbedingt noch arbeiten.

Windows Mobile Community Program Manager

29.05.2009 13:25:00 | Lori Grosland

Constanze Roman ist Community Program Manager für Windows Mobile bei Microsoft Corp in Redmond.  Als ich in Seattle für TechReady (interne Training-Konferenz) war, habe ich mit Constanze über ihren Job als Community PM gesprochen und sie hat mir verschiedene Online-Websites und Ressourcen für Windows Mobile Entwickler gezeigt.

Windows Mobile Developer Center
http://msdn.microsoft.com/en-us/windowsmobile/default.aspx

Windows Mobile Developer auf Facebook
http://www.facebook.com/pages/Windows-Mobile-Developer/39963827922

Blog - Constanze’s Mobile Musings
http://blogs.msdn.com/croman/

Windows Mobile Community Program Manager

29.05.2009 12:25:00 | Lori Grosland

Constanze Roman ist Community Program Manager für Windows Mobile bei Microsoft Corp in Redmond.  Als ich in Seattle für TechReady (interne Training-Konferenz) war, habe ich mit Constanze über ihren Job als Community PM gesprochen und sie hat mir verschiedene Online-Websites und Ressourcen für Windows Mobile Entwickler gezeigt.

Windows Mobile Developer Center
http://msdn.microsoft.com/en-us/windowsmobile/default.aspx

Windows Mobile Developer auf Facebook
http://www.facebook.com/pages/Windows-Mobile-Developer/39963827922

Blog - Constanze’s Mobile Musings
http://blogs.msdn.com/croman/

Zeilenweise Akttualisierung eines GridViews

29.05.2009 10:47:00 | Daniel Schädler

Ich hatte  ein Problem, dass ich ein GridView nach dem Drücken eines Buttons in einer Row, dessen Status von der Datenbank abgerufen werden sollte und immer wieder aktualisiert werden muss. Nun habe ich eine Lösung gefunden die sicherlich ausbaufähig ist aber auch sehr praktikabel.

Das wichtigste geschieht in folgenden Mehtoden im Codebehind der Webseite die für das GridView durchgeführt werden, wenn die entsprechenden Ereignisse eintreten.

   1: protected void ResultsGridView_OnRowDataBound(object sender, GridViewRowEventArgs e) {
   2:     if(e.Row.RowType == DataControlRowType.DataRow) {
   3:         Button Button_Save = (Button)e.Row.FindControl("Save_Button");
   4:         Button_Save.CommandArgument = e.Row.RowIndex.ToString();                
   5:     }
   6: }
   7:  
   8: protected void ResultsGridView_OnDataBound(object sender, EventArgs e) {
   9:     GridView gridView = (GridView)sender;
  10:  
  11:     foreach(GridViewRow row in gridView.Rows) {
  12:         if(row.RowType == DataControlRowType.DataRow) {
  13:             Button Save_Button = (Button)gridView.Rows[row.RowIndex].FindControl("Save_Button");
  14:             Image Lifecycle_Image = (Image)gridView.Rows[row.RowIndex].FindControl("Lifecycle_Content_Image");
  15:             HiddenField DeviceId_Hdf = (HiddenField)gridView.Rows[row.RowIndex].FindControl("DeviceId_Hdf");
  16:             string attributeToAdd = string.Format(@"Refresh('{0}','{1}','{2}','{3}'); return false;", Save_Button.ClientID, row.ClientID, Lifecycle_Image.ClientID, DeviceId_Hdf.Value);
  17:             Save_Button.Attributes.Add("onclick", attributeToAdd);
  18:         }
  19:     }
  20: }

Damit die Controls mittels JavaScript behandelt werden können, müssen diese mit ihrer ClientID (also der eindeutigen ID mit welcher sie in die Seite gerendert werden) identifiziert werden. Damit JavaScript serverseitigen Code aufrufen kann muss der ScriptManager auf der Seite die Eigenschaft EnablePageMethods = “true” gesetzt werden.

Folgende Methode liefert dann die Ergebnisse zurück.

   1: [WebMethod]
   2: public static string GetOrderItemStatus(string orderItemReferencedIdDevice, string imageId) {
   3:     string result = string.Empty;
   4:     OrderItem orderItem = null;
   5:  
   6:     HibernateUtil.Instance.ExecuteTransaction(delegate(ISession session) {
   7:         orderItem = session.CreateCriteria(typeof(OrderItem))
   8:                            .Add(Expression.Eq("ReferenceId", long.Parse(orderItemReferencedIdDevice))).UniqueResult<OrderItem>();
   9:     });
  10:  
  11:     result += string.Format("{0}/{1}/{2}", imageId, orderItem.State.ToString(), orderItemReferencedIdDevice);
  12:  
  13:     Thread.Sleep(new TimeSpan(0, 0, 10));
  14:  
  15:     return result;
  16: }

Damit dann das Statusbild auch ausgetauscht werden kann wir einfach die src-Eigenschaft des HTML-Images auf die richtige Source gesetzt.

   1: function Refresh(ButtonId, rowClientId, ImageId, DeviceId) {
   2:     PageMethods.GetOrderItemStatus(DeviceId, ImageId, onSucceeded);
   3: }
   4:  
   5: function onSucceeded(result, userContext, methodName) {
   6:     var image = $get(result.split("/")[0]);
   7:     var state = result.split("/")[1];
   8:     var deviceId = result.split("/")[2];
   9:  
  10:     if (state !== 'done') {
  11:         PageMethods.GetOrderItemStatus(deviceId, image.id, onSucceeded);
  12:         //setInterval(PauseRefresh(deviceId, image.id), 5000);
  13:     } else {
  14:         image.src = "../Images/Common/Trafficlight_green_icon_large.png";
  15:     }
  16: }

Somit wird der Status alle 10 Sekunden abgefragt. Für Verbesserungsvorschläge bin ich natürlich offen.

Frischer Wind für Windows Forms

29.05.2009 09:15:00 | Thorsten Hans

Hier noch ein paar nette Controls für Windows Forms. Diese Beispiele beziehen sich auf den von mir geschriebenen Artikel in der Juni Ausgabe des .Net Magazins.

 

DotNetKicks-DE Image

Mein Artikel im dotnet Magazin

29.05.2009 07:40:00 | Thorsten Hans

In der aktuellen Ausgabe 07.2009 des dotnet Magazins wurde ein Artikel von mir veröffentlicht.

Hier einige Informationen zu meinem Artikel

 

dotnetmagazin_07_2009

Frischer Wind für Windows Forms - Erweitern von .NET-Komponenten durch eigene UserControls

WPF! Jeder möchte WPF, es ist flexibel, es sieht schöner aus, und den Designern stehen fast alle Türen offen, um auch auf dem Desktop RichUI-Anwendungen zu gestalten. Doch auch die klassischen Windows-Forms- Anwendungen können mit einfachen Mitteln aufgefrischt werden.
von Thorsten Hans

Viel Spaß beim Lesen des dotnet Magazins.

Verwendung von neuen Technologien in Softwareprojekten: Teil 1

28.05.2009 19:57:00 | Thorsten Hans

Seit Release des .Net Frameworks 3 sind die Gestaltungsmöglichkeiten von Softwarearchitekturen freier definierbar. Ein einfaches Beispiel ist die Möglichkeit die Präsentation von Daten über verschiedene Techniken wie unter anderem

  • Windows Forms
  • Windows Presentation Foundation
  • ASP.Net Web Forms
  • ASP.Net MVC Seiten
  • Silverlight Webkomponenten
  • Konsole Anwendungen
  • Office Integration

Zwar gab es auch die den vorherigen .Net Framework Versionen bereits mehrere Präsentationsmittel, allerdings war die Liste doch bedeutend kürzer und die einzelnen Techniken waren weniger komplex als die mit Framework 3. eingeführten Neuerungen.

Hier ist besonders WPF hervorzuheben. Mit WPF steht dem Entwickler Designer ein mächtiges Werkzeug zur Hand. Hier gelten prinzipiell keine Richtlinien für die Gestaltung von Oberflächen mehr, so können zum Beispiel Standardkomponenten wie Buttons, Labels, Textboxen in Ihren Grundbestandteilen frei definiert werden.

Allerdings bringt diese neue Freiheit auch einen erheblichen Mehraufwand für die Realisierung mit sich. Diese Tatsache muss nun im Projektlebenszyklus früh berücksichtigt werden, um Projekte wirtschaftlich erfolgreich abzuschließen.

Die Liste der neu Verfügbaren Techniken setzt sich auch außerhalb des sichtbaren Bereichs fort. Begriffe wie Windows Communication Foundation, Windows Workflow Foundation, Linq to Sql, Linq to XML, ADO.Net Entity Framework,… sind überall gegenwärtig.

 

Die Fragen die sich jeder Projektleiter im Vorgang an ein neues Projekt nun stellen muss lauten

"Welche Techniken benötige ich? “

“Welche Techniken bieten mir einen Vorteil”

“Welche Techniken beherrscht das Entwicklungsteam?”

“Welche neuen Techniken sind leicht erlernbar?”

“Welchen Mehrwert bietet meinem Team das Erlernen einer neuen Technologie?”

“Wie bringe ich die gewählten Techniken zusammen?”

 

In dieser Blogserie möchte ich die einzelnen Fragen aufgreifen und versuchen eine gute Antwort dazu abzugeben um Projektleitern die mit solchen Technologiefragen noch nicht in Berührung kamen, einen kurzen Einblick zu geben.

 

“Welche Techniken benötige ich?”

Die erste Frage die man sich bei der Realisierung von Softwareprojekten stellen sollte, ist die Frage nach der Notwendigkeit von Softwaretechniken.

Wie so oft in der Softwareentwicklung gibt es für die korrekte Beantwortung dieser Frage keine Formel, viele Faktoren spielen eine Rolle um die individuell beste Antwort auf diese Frage zu finden. Jedoch wird in den meisten Projekten eine “Richtung” durch den Kunden vorgegeben. So kann das gewünschte DBMS, die gewünschte Laufzeitumgebung oder auch die vorhandene Infrastruktur, die Liste an möglichen Technologien um ein vieles kürzen.

An dieser Stelle ein einfaches Beispiel

Die neue Softwarelösung muss auf jedem vorhandenen, an das Netzwerk angeschlossenen, Computer ausführbar sein und die Verwendung sollte keinen administrativen Eingriff bedürfen.

Durch diese einfache und oft definierte Anforderung, fallen bereits sämtliche Präsentationsmittel weg, die eine Installation auf Clientsystemen benötigen oder Windows als Betriebssystem voraussetzen. Denn auch andere Betriebssysteme können in einem heterogenen Netzwerk vorhanden sein.

Projektanforderungen beinhaltet normalerweise viele solcher Aussagen, die den Projektleitern den Auswahlpool an Techniken verkleinert.

Sofern alle Anforderungen abgearbeitet sind und die Liste an verwendbaren Softwaretechniken aktualisiert wurde, geht es zum nächsten Schritt, hierbei muss das gewünschte System logisch validiert werden. Durch die logische Validierung von Softwareprojekten kann frühzeitig im Softwarelebenszyklus heraus gefunden werden, welche Softwaretechniken besser oder schlechter für die Lösung der gestellten Aufgabe konzipiert sind.

Auch hier noch einmal ein kleines Beispiel

Unsere Außendienstmitarbeiter sollen schnellstmöglich über neue Kundenanfragen informiert werden.

Durch diese Anforderung Rücken Techniken wie BizTalk, SharePoint, WCF klar in den Vordergrund im Vergleich zur Realisierung einer Windows Forms Anwendung die zum Beispiel auf dem HomeScreen diese Notifications anzeigen kann. Die zuerst genannten Techniken bieten hier Möglichkeiten wie Interaktion mit vorhandenen Schnittstellen (SMS-Gateway als konkretes Beispiel) oder die Bereitstellung von Webdiensten die über Mobile Clients (wie Windows Mobile Devices) konsumiert werden können.

Natürlich schließt eine solche Anforderung nicht die Verwendung eines Windows Forms Clients aus, allerdings wird deutlich das eine reine Windows Forms Client-Database Lösung an dieser Stelle nicht ausreichen könnte.

Untersucht man nun die Projektanforderung und die daraus erstellten Use-Cases nach solchen Anforderungen und validiert damit immer wieder die Liste der verfügbaren Techniken wird diese zwangsläufig kürzer.

 

In Teil zwei der Artikelserie beantworte ich die Frage “Welche Techniken bieten mir einen Vorteil”.

 

DotNetKicks-DE Image

PowerShell Invoker (PsInvoker) on CodePlex

28.05.2009 19:23:00 | Thorsten Hans

Der PowerShell Invoker (PsInvoker) ist ab sofort auf CodePlex verfügbar. Hier gehts zur Projektseite. Beispiele und Neuerungen findet Ihr sowohl auf der Projektseite als auch hier in meinem Blog.

 

Technorati-Tags: ,,
DotNetKicks-DE Image

BING! - Lautmalerische Suchmaschine wird enthüllt

28.05.2009 18:11:10 | Jan Schenk

Am dritten Juni wird es soweit sein - “bing”, die neue Suche von Microsoft - wird weltweit öffentlich verfügbar sein. Das hat heute Steve Ballmer auf der “All Things D”-Konferenz in San Diego bekannt gegeben.

Wer mehr dazu erfahren möchte kann natürlich bis nächste Woche warten. Oder sich jetzt schon durch diverse Artikel lesen und versuchen, sich vorab eine Meinung zu bilden.

Hier zum Beispiel:
http://blogs.msdn.com/livesearch/archive/2009/05/28/the-sound-of-found-bing.aspx
oder hier
http://www.wired.com/epicenter/2009/05/microsofts-bing-hides-its-best-features/
oder hier
http://www.microsoft.com/presspass/presskits/bing/default.mspx
oder hier
http://www.decisionengine.com/Default.html

Aber die beste Meinung bekommt man immer noch von sich selbst, bevor ihr also darüber schwärmen wollt oder es zerreißt, probiert es selber aus.

Viel Spaß,
jan



tweetmeme_url = 'http://blogs.msdn.com/jansche/archive/2009/05/28/bing-lautmalerische-suchmaschine-wird-enth-llt.aspx';

Die Infrastruktur der Wolke erhält ISO 27001 Zertifizierung

28.05.2009 17:08:30 | Jan Schenk

Die Azure Services Plattform erhält die ISO/IEC 27001:2005 Zertifizierung für Sicherheit. Wenn ihr euch schon gefragt hattet, wie man die Wolke absichert und wie sicher das dann ist, dann habe ich die richtige Anlaufstelle um Informationen zu erhalten: »HIER*
Microsoft ist sogar noch einen Schritt weiter gegangen und hat nicht nur die 150 ISO-Tests erfüllt, sondern 291 eigene Sicherheitskontrollen entwickelt, die gewährleisten sollen, dass den Daten und Anwendungen in der Wolke die größtmögliche Sicherheit zuteil wird.

Heißt das, man muss sich keine Sorgen machen? Vom heutigen Standpunkt aus ja, aber wer weiß schon, was morgen kommt. Aber genauso gut kann es sein, dass der lokale Server ein viel größeres Risiko darstellt. Mit den oben genannten Voraussetzungen kann man sich schon mal ganz beruhigt ans Cloud Computing heranwagen.
Ich würde sogar sagen, wir sind derzeit die Sichersten…

 

*http://blogs.technet.com/gfs/archive/2009/05/27/securing-microsoft-s-cloud-infrastructure.aspx



tweetmeme_url = 'http://blogs.msdn.com/jansche/archive/2009/05/28/die-infrastruktur-der-wolke-erh-lt-iso-27001-zertifizierung.aspx';

PowerShell Invoker in ASP.Net Webanwendungen

28.05.2009 09:38:07 | Thorsten Hans

Die eigentliche Intention des PowerShell Invoker’s war, im Service Bereich einer großen Webanwendung Systeminformationen anzuzeigen, die bei Leistungseinbrüchen schnell Aufschluss über das zugrundelegende Problem bieten können.

Hierfür ist die Windows PowerShell wie gemacht, mit einfachen Command-Lets lassen sich Prozesse, Dienste oder beliebige Systeminformationen über WMI abfragen und anzeigen. Durch die Integration in die Webseite, muss kein Remotezugriff auf den oder die Web-Server selbst stattfinden, stattdessen reich eine VPN-Verbindung auf den verwendeten HTTP oder HTTPS Port.

Im Service Bereich der Webanwendung bedarf es demnach einem einfachen Eingabefeldes einem Steuerelement zum auslösen eines Postbacks und einem Control zur Anzeige der Script-Ergebnisse.

Hier eine kleines Beispiel wie ein solche PowerShell Service Bereich in einer ASP.Net Webanwendung aussehen kann.

PowerShell in ASP.Net Anwendung

In dem gezeigten Beispiel werden alle laufenden Windows.Dienste des hostenden Servers angezeigt. Dadurch kann schnell eine schnelle Problemanalyse durchgeführt werden.

Den Downloadlink für den PowerShellInvoker (PsInvoker) findet Ihr in diesem Post. In den nächsten Tagen werde ich ein entsprechendes Projekt auf CodePlex anlegen.

 

DotNetKicks-DE Image

PowerShell Invoker (PsInvoker)

27.05.2009 17:08:11 | Thorsten Hans

Heute hab ich mal schnell eine PowerShell Invoker Lib geschrieben. Die Lib ist mit .Net 3.5 implementiert und bietet Entwicklern die Möglichkeit cmd-lets oder PowerShell Scripts aus Anwendungen auszuführen.

Wenn lediglich cmd-lets ausgeführt werden bedarf es keiner Änderungen an der PowerShell Runtime, werden allerdings Scripts ausgeführt muss vor der Verwendung die Ausführungsrichtlinie mit dem Befehl

   1:  Set-ExecutionPolicy RemoteSigned

geändert werden.

 

Die Anbindung an die PowerShell v.1.0 ist über LateBinding realisiert, so dass entsprechende Exceptions geworfen werden, wenn die benötigte PowerShell Library nicht referenziert werden kann.

 

Anwendungsbeispiel

PsInvoker Example

Hier habe ich die PsInvoker.dll in einer einfachen Windows Forms Anwendung integriert. Durch betätigen des “Run PS Script” Buttons wird das cmd-let an den PsInvoker übergeben der Aufruf sieht demnach so aus:

   1:   PsInvoker.Invoker inv = new Invoker();
   2:  this.textBoxResult.Text = inv.RunPowerShellScript(Script);

 

Die erste Version der Lib könnt ihr hier downloaden.

 

DotNetKicks-DE Image

Mit VSTO die Position eines Ribbon Tabs selbst festlegen

27.05.2009 15:52:00 | Alexander Zeitler

Einen neuen Ribbon per VSTO zu erstellen ist relativ einfach.

Auch die Festlegung der Position in der Applikation ist sehr einfach – wenn man weiß wie ;-)

Damit ich es nicht nochmal suchen muss:

Zunächst muss man ein VSTO – Projekt erstellen und einen neuen Ribbon (Visual Designer) hinzufügen:

Ribbon im Designer

Die entscheidenden Einstellungen für die Position des Ribbons in der Anwendung (hier Excel) sind folgende:

Properties für RibbonTabs

Die OfficeId findet man in den Listen von “2007 Office System Document: Lists of Control IDs” (in diesem Fall ExcelRibbonControls.xlsx in der Spalte “TabName”) – danke an Lars für den Tip.

Wenn man das AddIn startet, erscheint der Ribbon an der gewünschten Position:

TimeSyncRibbonPosition

Noch ein Hinweis: Wenn man diese Einstellung bei keinem selbstentwickelten Ribbon anpasst, erscheinen alle TabGroups auf einem Ribbon innerhalb der gleichen Anwendung.

Gemeinsam statt einsam: „Two-for-one-Aktion“ bei der RIA World

27.05.2009 14:01:20 | Jan Schenk

RIAWorld-Speaker

Zu zweit kommen, aber nur einmal zahlen – Nutzen Sie bis zum 02. Juni 2009 die „Two-for-one-Aktion“ zur RIA World.

Sie möchten zur RIA World, aber nicht alleine? Mit der Two-for-one-Aktion lösen wir dieses Problem für Sie. Laden Sie einen guten Geschäftspartner oder einen Kollegen ein, mit Ihnen die RIA World zu besuchen. Nutzen Sie die Aktion z.B. für eine Neukundengewinnung und machen Sie sich durch eine Einladung zur RIA World in Ihrem Kundenumfeld beliebt.

Verwenden Sie dazu bei der Anmeldung einfach den Code IMR9241E für Ihre Begleitung. Unsere „Two-for-One-Aktion“ gilt auch, wenn Sie den Internet World Kongress, die Mobile Vision oder das All-Area-Ticket buchen.

Dieser Code ist nur gültig bei Anmeldung von zwei Personen und kann mit dem bereits zugesendeten Partnercode zur vergünstigten Teilnahme kombiniert werden, d.h der erste Teilnehmer zahlt den reduzierten Preis und der zweite Teilnehmer ist kostenlos. Der Two-for-One-Code ist nicht mit weiteren Vergünstigungen, wie Gast- oder Gutscheinkarten, kombinierbar.

Die RIA World findet vom 23. – 24. Juni im ICM in München statt und das Thema ist „Rich Internet Applications“. Bekannte Firmen wie Microsoft, Magic Software oder die Syzygy GmbH stellen Sprecher zu Themen, die Sie schon immer bewegten. Erleben Sie den Vice President Strategy der Magic Software GmbH in seinem Vortrag über die Anwendungen im Unternehmenseinsatz oder Jan Schenk von Microsoft in dem gemischten RIA Doppel.

Halbtägige Workshops am 24. Juni und eine RIA World auf der Fachmesse runden das Programm der Web 2.0 Entwicklerkonferenz ab. Überlegen Sie nicht lange, sondern buchen Sie gleich unter www.riaworld.de Ihre Kongresstickets. Hier finden Sie auch den Podcast zur RIA World.

Wir freuen uns, Sie und Ihre Begleitperson auf der RIA World vom 23. – 24. Juni im ICM in München zu begrüßen.



tweetmeme_url = 'http://blogs.msdn.com/jansche/archive/2009/05/27/gemeinsam-statt-einsam-two-for-one-aktion-bei-der-ria-world.aspx';

Einfacheres Mocken von Eigenschaften eines Objektes

27.05.2009 07:50:39 | Albert Weinert

Gestern twitterte Thomas über ein Problem beim Mocken, nach der Lösung blogte er darüber.

Das Problem ist dass Rhino Mocks bei object.AssertWasCalled() bei der Parameter-Überprüfung auf die Gleichheit eines Objektes geprüft wird und somit wenn man nur auf eine bestimmte Property prüfen will dies nicht geht.

Somit schlug dieser Test fehl.

[TestMethod]
public void ChangeEmail_POST_sendet_eine_Aktivierungs_Email_an_den_Benutzer()
{
	// Snipp (Nicht vorhandene Logik des Tests nicht beachten :))
	notificationService.AssertWasCalled(
	n => n.Send(configurationService.GetValue("Email.Sender"), 
	new EmailRecipient { To = "abc@efg.hij" });
}

Für die Lösung musste er .Equals() überschreiben, nur für den Test. Desweiteren gibt es auch Probleme wenn man nur einzelne Properties eines Objektes überprüfen will. Gerade bei komplexeren Klassen kommt dies öfters vor.

Hier eine Lösung wo man .Equals() nicht überschreiben muss, und auch auf einzelne Properties überprüfen kann.

Das Beispiel von Thomas würde damit so aussehen.

[TestMethod]
public void ChangeEmail_POST_sendet_eine_Aktivierungs_Email_an_den_Benutzer()
{
	// Snipp (Nicht vorhandene Logik des Tests nicht beachten :))
	notificationService.AssertWasCalled(
	n => n.Send(configurationService.GetValue("Email.Sender"), 
	Args<EmailRecipient>.MatchProperties( new { To = "abc@efg.hij" });
}

Hiermit wird nur das To-Property des Objekte welches als Parameter übergeben wird überprüft und alle anderen Properties werden ignoriert (sofern man ein anonymes Objekt übergibt). Natürlich kann man auch ein Objekte eines bekannten Typs übergeben, dann müssen jedoch auch alle Properties angegeben werden.

Hier nun der Code dazu.

using System;

using Rhino.Mocks;
using Rhino.Mocks.Constraints;

namespace DerAlbert.UnitTest.Constraints
{
    public static class Anonymous
    {
        public static AbstractConstraint MatchProperties(object expected)
        {
            return new AnonymousPropertyConstraint(expected);
        }
    }

    public static class Args<T> where T : class
    {
        public static T MatchProperties(object expected)
        {
            return Arg<T>.Matches(Anonymous.MatchProperties(expected));
        }
    }
}

und

using System;
using System.Collections.Generic;
using System.Reflection;
using System.Text;

using Rhino.Mocks.Constraints;

namespace DerAlbert.UnitTest.Constraints
{
    public sealed class AnonymousPropertyConstraint : AbstractConstraint
    {
        private readonly object expected;
        private readonly IList<string> messages = new List<string>();

        public AnonymousPropertyConstraint(object expected)
        {
            if (expected == null)
            {
                throw new ArgumentNullException("expected");
            }
            this.expected = expected;
        }

        public override bool Eval(object current)
        {
            return EvalExpectations(current);
        }

        private bool EvalExpectations(object current)
        {
            var expectedPropertyInfos = expected.GetType().GetProperties();

            foreach (var expectedInfo in expectedPropertyInfos)
            {
                object currentValue;
                object expectedValue = GetExpectedValue(expectedInfo);

                if (TryGetCurrentValue(expectedInfo, current, out currentValue))
                {
                    if (!Equals(expectedValue, currentValue))
                    {
                        messages.Add(string.Format(@"'expected value on [{0}.{1}] should be [{2}] but was [{3}]'",
                                                   current.GetType().Name,
                                                   expectedInfo.Name,
                                                   expectedValue,
                                                   currentValue));
                    }
                }
            }
            return messages.Count == 0;
        }

        private object GetExpectedValue(PropertyInfo expectedInfo)
        {
            return expectedInfo.GetValue(expected, new object[0]);
        }

        private bool TryGetCurrentValue(PropertyInfo expectedInfo, object current, out object value)
        {
            value = null;
            var currentInfo = current.GetType().GetProperty(expectedInfo.Name);
            if (currentInfo == null)
            {
                messages.Add(string.Format(@"'expected property [{0}.{1}] does not exists'", current.GetType().Name, expectedInfo.Name));
                return false;
            }
            value = currentInfo.GetValue(current, new object[0]);
            return true;
        }

        public override string Message
        {
            get
            {
                var sb = new StringBuilder();
                foreach (var message in messages)
                {
                    sb.AppendLine(message);
                }
                return sb.ToString();
            }
        }
    }
}

Viel Spaß bei der Anwendung.

Technorati-Tags: ,,,

Neue SharePoint Webseite

26.05.2009 15:44:19 | Thorsten Hans

Zumindest im englischsprachigen Raum ist die neue SharePoint Webseite bereits online. Neben den allgemeinen Infos rund um SharePoint findet man dort auch

  • Case Studies
  • Community Events
  • Webcasts
  • Podcasts
  • Virtual Labs
  • Massig Informationen für
    • Entwickler
    • Administratoren
    • User

 

Daumen hoch für eine solch schöne Website !!!

DotNetKicks-DE Image

Windows SharePoint Services (WSS) auf Microsoft Office SharePoint Server (MOSS) migrieren

26.05.2009 15:12:00 | Thorsten Hans

MOSS 2007 Logo

Wenn bei der Projektplanung mal wieder sämtliche Argumente für einen MOSS ignoriert werden, sich im Nachhinein allerdings doch herausstellt dass der Kunde nun einen MOSS anstatt der WSS möchte findet man auf dieser TechNet Seite die benötigten Informationen zum Upgrade von SingleServer und von Farm Lösungen.

Ich war überrascht wie simpel das Upgrade selbst bei Farmlösungen ist.

 

Technorati-Tags: ,,
DotNetKicks-DE Image

Gezippt unter .NET

26.05.2009 13:08:00 | Norbert Eder

Zippen unter .NET ist gar nicht so einfach. Zwar gibt es unterschiedliche 3rd-Party-Libraries, die eingebunden werden können, aber dann hat es sich auch schon wieder. Das .NET Framework bietet zwar den DeflateStream an, aber auch das ist nicht so wirklich das Wahre, da man damit doch sehr eingeschränkt ist. Microsoft hat dies erkannt und die...

Silverlight 3 – Twitter + Tetris = Twitris

26.05.2009 10:33:18 | Oliver Scheer

Yessss …. endlich ein cooles, noch nie da gewesenes Spielchen in Silverlight 3 … in Kombination mit Twitter ;)

image

Mein derzeitiger Rekord liegt bei 7474 Punkte. Wer kann mich schlagen ;)

www.twipot.com [Updated Link]

Blog-Parade

26.05.2009 10:15:51 | Oliver Scheer

MSDN Deutschland veranstaltet eine Blog-Parade! Wir möchten von Ihnen wissen, welche Ihre Lieblings-Entwickler-Tools sind und warum gerade diese Ihnen so gut gefallen. Mit etwas Glück können Sie sogar eine von drei Xboxen gewinnen!

Was ist eine Blog-Parade? Wie mache ich mit?

1. Bei einer Blog-Parade gibt es immer ein Thema, das vorgegeben wird. Gestartet wird sie, wie sollte es anders sein, ebenfalls durch einen Blog-Beitrag.

2. Jeder kann an einer Blog-Parade teilnehmen. Schreiben Sie einen Artikel mit Ihren Top-3-Entwickler-Tools und erläutern Sie, warum gerade diese Tools so wichtig für Sie geworden sind.

3. Verweisen Sie in Ihrem eigenen Artikel zum Ursprungs-Beitrag der Blog-Parade. Dadurch wird beim Ursprungs-Beitrag automatisch ein Rückverweis (Trackback) erstellt.
Sollte das mal nicht funktionieren, schreiben Sie eine E-Mail an Peter Kirchner und teilen uns einfach den Link zu Ihrem Artikel mit.

4. Und schon sind Sie dabei!

Wer kann mitmachen?

Teilnehmen kann jeder, der einen Blog hat und gerne anderen mitteilen möchte, welche Entwickler-Tools für Ihn oder Sie unentbehrlich geworden sind. Dabei ist es egal, ob es sich um kommerzielle oder kostenlose Anwendungen handelt. Im Anschluss an die Blog-Parade werden wir eine Sammlung aller Empfehlungen veröffentlichen - natürlich mit Verweis auf die Beiträge. :-)

Gibt es auch etwas zu gewinnen?

Wäre es ist nicht schon Motivation genug, über Ihre Lieblingstools zu schreiben, machen wir die Teilnahme noch etwas schmackhafter. Unter allen Teilnehmern werden wir drei Mal je ein Xbox Elite Paket inkl. zwei Spielen verlosen! Wer an der Verlosung teilnehmen möchte, muss in seinem Blog ein Kontaktformular oder -adresse haben, damit wir Sie anschreiben können. Die Blog-Parade läuft bis zum 15.06.2009. Innerhalb der darauf folgenden zwei Wochen werden wir dann die glücklichen Gewinner anschreiben und bekannt geben. In Bezug auf die Verlosung bitte das "Kleingedruckte" im Start-Beitrag beachten.

WPF4Beginners: verrückte Wege für das Layout gleichgroßer Elemente

25.05.2009 18:52:00 | Jens Peter Kleinau

Es gibt 50 Wege die Freundin (den Freund) zu verlassen und etliche davon führen nach Rom. In einer Kaffeepause haben wir gegrübelt, wieviele Möglichkeiten es geben mag, gleichgroße Elemente in einem WPF Fenster unterzubringen. Hier sind die ersten Methoden. Für die gleichgroßen Elemente verwende ich in den Beispielen Buttons. Die Nachahmung ist nur bedingt zu empfehlen ;-) Gridlayout Über das...

[[ This is a content summary only. Visit my website for full links, other content, and more! ]]

Verzeichnis-Autorisierung für LiveID-User ohne lokale Benutzerverwaltung

25.05.2009 15:33:28 | Jan Schenk

Ein Kollege fragte mich neulich, ob ich einen Weg weiß, auf einer ASP.NET-Seite ein Verzeichnis nur für LiveID-User frei zu geben. Sprich jeder, der sich mit einer LiveID authentifizieren kann, soll auf das Verzeichnis Zugriff haben, anonyme Besucher allerdings nicht. Der Haken: er wollte keine ASP.NET-Authentifizierung einbetten, da das zusätzlichen Aufwand bedeuten würde, und nicht gefordert ist.

ES GEHT!

Im Beispielprojekt wird eine LiveID-Implementierung eingesetzt, die einen eigenen Membership-Provider mitbringt. Der setzt den gemappten User auf immer den selben Account. Der ASP.NET-Authentifizierung wird somit vorgegaukelt, es handle sich um einen validen User. Die User-ID aus dem Windows Live Account bleibt trotzdem transparent und kann geloggt werden.

Der Trick ist dann, eine web.config im zu schützenden Verzeichnis anzulegen, die folgende Zeilen enthält:

   1: <?xml version="1.0"?>
   2: <configuration>
   3:     <appSettings/>
   4:     <connectionStrings/>
   5:     <system.web>
   6:       <authorization>
   7:         <deny users="?"/>
   8:       </authorization>
   9:     </system.web>
  10: </configuration>

Durch die Zeile <deny users=”?”> wird anonymen Benutztern der Zugriff verweigert, alle authentifizierten User haben Zugriff.

Das Projekt gibt es hier:
http://cid-6d192a3f356c76dd.skydrive.live.com/self.aspx/Visual%20Studio%20Solutions/LiveID%7C_advanced.zip

WICHTIG: Ihr müsst den IIS7 installiert haben und Visual Studio als Administrator starten, damit ihr das Web-Projekt öffnen könnt. Falls ihr da Probleme habt, wird das Web-Projekt typischerweise nicht geladen und sieht leer aus. Der Virtuelle Server im IIS heisst WebAuth, das solltet ihr auch nicht ändern, da sonst die absoluten Links für den Test-LiveID-Zugang nicht mehr funktionieren.

Credit: Das Originalprojekt ist von dieser Seite http://blog.webjak.net/2008/08/13/silverlight-windows-live-id/, schöne Anleitung.



tweetmeme_url = 'http://blogs.msdn.com/jansche/archive/2009/05/25/verzeichnis-autorisierung-f-r-liveid-user-ohne-lokale-benutzerverwaltung.aspx';

Gemeinsam statt einsam: „Two-for-one-Aktion“ bei der RIA World

25.05.2009 15:17:17 | Oliver Scheer

Gastbeitrag von Florian Bender

Zu zweit kommen, aber nur einmal zahlen – Nutzen Sie bis zum 02. Juni 2009 die „Two-for-one-Aktion“ zur RIA World.

Sie möchten zur RIA World, aber nicht alleine? Mit der Two-for-one-Aktion lösen wir dieses Problem für Sie. Laden Sie einen guten Geschäftspartner oder einen Kollegen ein, mit Ihnen die RIA World zu besuchen. Nutzen Sie die Aktion z.B. für eine Neukundengewinnung und machen Sie sich durch eine Einladung zur RIA World in Ihrem Kundenumfeld beliebt.

Verwenden Sie dazu bei der Anmeldung einfach den Code IMR9241E für Ihre Begleitung. Unsere „Two-for-One-Aktion“ gilt auch, wenn Sie den Internet World Kongress, die Mobile Vision oder das All-Area-Ticket buchen.

Dieser Code ist nur gültig bei Anmeldung von zwei Personen und kann mit dem bereits zugesendeten Partnercode zur vergünstigten Teilnahme kombiniert werden, d.h der erste Teilnehmer zahlt den reduzierten Preis und der zweite Teilnehmer ist kostenlos. Der Two-for-One-Code ist nicht mit weiteren Vergünstigungen, wie Gast- oder Gutscheinkarten, kombinierbar.

Die RIA World findet vom 23. – 24. Juni im ICM in München statt und das Thema ist „Rich Internet Applications“. Bekannte Firmen wie Microsoft, Magic Software oder die Syzygy GmbH stellen Sprecher zu Themen, die Sie schon immer bewegten. Erleben Sie den Vice President Strategy der Magic Software GmbH in seinem Vortrag über die Anwendungen im Unternehmenseinsatz oder Jan Schenk von Microsoft in dem gemischten RIA Doppel.

Halbtägige Workshops am 24. Juni und eine RIA World auf der Fachmesse runden das Programm der Web 2.0 Entwicklerkonferenz ab. Überlegen Sie nicht lange, sondern buchen Sie gleich unter www.riaworld.de Ihre Kongresstickets. Hier finden Sie auch den Podcast zur RIA World.

Wir freuen uns, Sie und Ihre Begleitperson auf der RIA World vom 23. – 24. Juni im ICM in München zu begrüßen.

Herzliche Grüße

Florian Bender
Projektleitung
www.riaworld.de
Penton Media GmbH
Bayerstr. 16a
80335 München
Tel. + 49 (0) 89 74117-206
Fax + 49 (0) 89 74117-448
florian.bender@penton.de

dotnet-mct.de

25.05.2009 13:43:58 | Mathias Raacke

Bisher habe ich meine Dienstleistungen ausschließlich über verschiedene Schulungsanbieter angeboten (zumindest habe ich selbst nirgendwo aktiv für mich geworben). Das hat für mich und auch für meine Kunden verschiedene Nachteile.

Ich darf z.B. in der Regel meine Schulungsteilnehmer nicht direkt anschreiben oder den Teilnehmern irgendwelche Kontaktmöglichkeiten nennen. Das führt dazu, dass ich vor der Schulung nur sehr umständlich die Inhalte mit den Teilnehmern absprechen kann (die E-Mails laufen teilweise über 2 oder 3 weitere Personen). Außerdem haben die Teilnehmer keine Möglichkeit, mir nach dem Vortrag noch Fragen zu stellen, oder auch einfach nur mal kurz zu schreiben, ob die geplante Prüfung erfolgreich bestanden wurde oder nicht. Ich kann auch keine Antworten zu Fragen nachreichen, die ich in der Schulung nicht sofort beantworten konnte. Dabei macht so eine Regelung überhaupt keinen Sinn, jeder der eine Suchmaschine bedienen kann findet innerhalb einer Minute heraus, wie er mich erreichen kann. Durch die schlechten Kontaktmöglichkeiten vor den Trainings kommt es nicht selten vor, dass Teilnehmer mit den falschen Vorkenntnissen in eine Schulung kommen, so dass ich ganz andere Inhalte vermitteln muss, als vorher abgesprochen und von mir vorbereitet wurden. Wenn es mal keinen passenden fertigen Kurs von Microsoft gibt, wird ganz selbstverständlich erwartet, dass der Trainer mal eben Unterlagen für 5 Tage selbst erstellt, am besten kostenlos.

Ein weiterer großer Nachteil für mich ist natürlich auch, dass die Schulungsanbieter an jeder Schulung mitverdienen. Der größte Teil der Gebühren, die die Teilnehmer zahlen, geht an den Schulungsanbieter, beim Trainer kommt davon nur ein kleiner Teil an. Vor fast jeder Schulung versuchen viele Anbieter auch, unter irgendwelchen Vorwänden Preise “ausnahmsweise” nach unten zu drücken. Rechnungen werden noch dazu oft sehr spät bezahlt (Negativrekord 2008 war ca. 75 Tage, 2007 waren es über 100 Tage). Sehr oft werden Termine angefragt und reserviert, nur um dann wenige Tage vor der Schulung wieder abzusagen.

Aus diesen Gründen habe ich mich entschieden, mit meinen Angeboten in Zukunft verstärkt direkt Endkunden anzusprechen. Der erste Schritt dazu ist meine neue Seite http://www.dotnet-mct.de.

Für Kunden, die ich bereits über andere Anbieter geschult habe, werde ich auch weiterhin nur über diese Anbieter arbeiten. Das ist für mich selbstverständlich, wäre aber sowieso durch Kundenschutzklauseln in meinen Verträgen gar nicht anders möglich.

Es gibt natürlich auch einige positive Ausnahmen. Von einigen wenigen Anbietern werden Rechnungen auch sehr schnell (7-8 Tage) bezahlt und diese versuchen auch nicht ständig, die Preise zu drücken.

>

Die Montagsmeinung - Kochen alle nur mit Wasser?

25.05.2009 11:14:45 | Jan Schenk

DasBad_small

Meistens ist alles nicht so schwer wie es erstmal scheint. Unser größtes Hindernis, warum wir manche Dinge nicht tun können - ja uns nicht in der Lage sehen, etwas zu bewältigen - ist unser Respekt vor der Aufgabe.

Nehmen wir als Beispiel mal die handwerklichen Aufgaben im eigenen Heim. Warum verlegen wir die Fliesen im Bad nicht selber? Weil wir nicht wissen, wie man Fliesenkleber anrührt? Wie man den Boden vorbereitet? Weil uns das Werkzeug fehlt? Eigentlich nicht. All diese Hindernisse lassen sich mit etwas Internet-Recherche, Tipps von Bekannten oder dem Verleih des lokalen Baumarktes leicht lösen. Vielmehr sind wir viel zu oft der festen Meinung, dass wir eine Aufgabe nicht schaffen können, obwohl wir gar nicht wissen, wie viel wir können müssten.

Ich will damit keinen Berufsstand schlecht machen, nichts läge mir ferner. Denn es gibt diverse Gründe, warum wir die Fliesen nicht selbst verlegen können, abgesehen von unserer mentalen Bereitschaft. Die Zeit zum Beispiel, ist ein legitimer limitierender Faktor. Habe ich die Zeit um etwas selbst zu erledigen?

Aber ich glaube, dass wir uns viel zu oft hinter einem solchen Argument verstecken und es nicht wagen wollen, über den eigenen Schatten zu springen und es selbst auszuprobieren. Und ich spreche da aus Erfahrung.

Ganz ehrlich, Ich bin ein fauler Mensch. Ich mache nur das, was notwendig ist, und davon auch nur so viel, dass es gerade reicht um andere auch glücklich zu machen. Damit bin ich selten an meiner Leistungsgrenze. Gemerkt habe ich das auch vor 2 Jahren bei der Renovierung unserer Wohnung. Inklusive Fliesen verlegen in Bad und Küche. Davor dachte ich “Oh je, das wird ne harte Nuss, eigentlich will ich gar nicht.” und dann war es doch nicht so kompliziert. Aber das Schlimme ist, stünde ich jetzt wieder vor der Herausforderung, ich hätte wieder annähernd die gleichen Hemmungen.

Nehmen wir ein anderes Beispiel aus meiner täglichen Welt: Vorträge halten. Das schaut immer so kompliziert aus, und ich wette, dass 95% der Teilnehmer höllischen Respekt davor hätten, sich auf die Bühne zu stellen und selbst einen Vortrag zu halten. Das komische an der Sache: Ich gehöre da als Redner auch dazu. Der Trick ist, es sich nicht anmerken zu lassen. Aber das muss ja nicht gleich beim ersten Mal funktionieren. Und im Bad beim Do-It-Yourself-Verfliesen muss man auch nicht Joe Cool sein.

Wir sollten uns öfter mal zusammen zu nehmen und das versuchen, was uns schwer, vielleicht sogar unschaffbar vorkommt. Oft ist es dann einfacher und erfüllt uns anschließend mit einem solchen Stolz, dass sich der Aufwand gelohnt hat. Und wenn nicht, dann sind wir wenigstens um eine Erfahrung reicher. Und beauftragen gleich den Dienstleister unseres Vertrauens. Dann wissen wir auch, dass der sein Geld wert ist.

Einen guten Start in die Woche!
jan



tweetmeme_url = 'http://blogs.msdn.com/jansche/archive/2009/05/25/die-montagsmeinung-kochen-alle-nur-mit-wasser.aspx';

Visual Studio 2010 Beta 1: Erster Eindruck

25.05.2009 11:08:41 | Thorsten Hans

Nachdem letzte Woche die Beta 1 von Visual Studio 2010 released wurde, habe ich diese Version mal auf einem Windows 7 VmWare Image installiert.

 

Installation

Wie gewohnt steht auch die Beta 1 von Visual Studio 2010 als WebInstaller zur Verfügung. Die Installation ist in 2 Teilschritte untergliedert.

Zunächst werden die 20 benötigten Komponenten downgeloaded

 

image

 

Danach werden die einzelnen Komponenten auf dem System installiert

 

image

 

Nach erfolgreicher Installation der Komponenten ist Beta 1 von Visual Studio 2010 auf dem System installiert.

 

Der erste Start

Nach dem Klicken auf das entsprechende Icon wird Visual Studio 2010 gestartet, hierbei wird der User zunächst von der Auswahl der Umgebungseinstellungen begrüßt, nach Auswahl des gewünschten Eintrages wird der neue Splash-Screen angezeigt.

Visual Stdio 2010 Beta 1 Splash Screen

 

Leider war das beim ersten Start auch alles, danach ist Windows 7 komplett eingefroren und der Bildschirm blieb schwarz, auch STRG+ALT+ENTF half nichts mehr… :(

Also Neustart!

Nach dem Neustart, Visual Studio erneut gestartet –> Nach dem SplashScreen wird das MainWindow geladen, allerdings war auch nach 10 Minuten immer noch kein Content verfügbar!

Hier half STRG+ALT+ENTF auch nichts mehr, der TaskManager meldete sich einfach nicht :(

Die Vorfreude schleicht mit jedem Neustart dahin…

2. Neustart!

Nachdem ich erneut am System angemeldet war, machte ich mich zunächst mal auf die Suche nach einem Abgesicherten Modus von Visual Studio 2010, leider gibt es immer noch keine Verknüpfung im Startmenü, also startete ich die Beta mit folgendem Befehl

devenv.exe /SafeMode

Wie gewohnt kam der SplashScreen, danach wieder das Main Windows ohne Inhalt. :(

 

Schade, das ist ernüchternd!! Eventuell liegt es an Windows 7 was ja eigentlich nicht sein dürfte. Ich werd die VM einfach mal in die Ecke schmeißen und mir das ganze bei Gelegenheit wieder anschauen.

Aber so ist es nicht verwendbar und meiner Meinung nach kein Beta!

 

DotNetKicks-DE Image

Visual Studio 2010 unterstützt verschiedene Silverlight Versionen

25.05.2009 10:19:41 | Oliver Scheer

Da bin ich auch etwas überrascht worden, aber es klappt :)

Visual Studio 2010 unterstützt verschiedene Versionen von Silverlight, man kann beim anlegen des Projektes wählen gegen welche Version man entwickeln möchte.

Um in diesen Genuss zu kommen benötigt man folgendes Downloads:

  1. Visual Studio 2010 Beta 1
  2. Silverlight 2 SDK (if you attempt to run the Silverlight 2 tools installer it will fail with an error message…just install the SDK).
  3. Silverlight 3 Beta SDK (again, don’t attempt the tools installer as it will fail)
  4. Silverlight 3 Beta Developer Runtime

Visual Studio 2010 Silverlight multi-targeting

Ich musste die Silverlight-COntrols allerdings händisch in die Toolbox holen, das scheint noch nicht ganz zu sauber zu klappen. Aber danach hat man endlich die Möglichkeit direkt in Visual Studio Silverlight Anwendungen mittels des Designers zu gestallten.

Bug im ServicePack 2 des MOSS 2007

25.05.2009 08:12:38 | Thorsten Hans

Das vor kurzem erschienene Service Pack 2 für den Microsoft Office SharePoint Server 2007 bringt leider einen schwerwiegenden Bug mit sich.

Nach der Installation des ServicePack 2 auf einem SharePoint 2007 Server, wird automatisch ein Ablaufdatum aktiviert, dadurch wird den Nutzern 180 Tage nach der Installation des ServicePacks der Zugriff auf den SharePoint verweigert.

Microsoft arbeitet momentan bereits an einem automatischen Update um das Problem wieder zu beheben. Weitere Informationen zu dem Sicherheitsupdate werden auf dem SharePoint Team Blog veröffentlicht, sobald diese verfügbar sind.

Alternativ besteht die Möglichkeit, das Problem zu beheben, indem man in der Zentraladministration des SharePoints den Product-Key erneut eingibt.

Hier findet sich eine Anleitung wie der Product-Key des MOSS erneut eingetragen werden kann.

 

Technorati-Tags: ,,,
DotNetKicks-DE Image

Eric Berne - Spiele der Erwachsenen

24.05.2009 21:18:00 | Ozgur Aytekin

Eric Berne macht auf wissenschaftlich kompetente und dabei geistreich amüsante Weise deutlich, wie das Erkennen der eigenen Ehe-, Party-, Sex-, Räuber-, Doktor- und Lebensspiele dem Menschen zu einer neuen Bewusstheit verhilft und ihm den Weg zu einer konstruktiven Lebensführung ebnet. Das bringt neben ungetrübtem Lesevergnügen einen befreienden Erkenntniszuwachs in den ernsten persönlichen, familiären und gesellschaftlichen Krisensituationen des Alltags.

http://www.rowohlt.de/buch/Eric_Berne_Spiele_der_Erwachsenen.24052009.3884.html

Planen von Websites und Features

24.05.2009 10:36:00 | Ozgur Aytekin

Inhalt dieses Artikels
* Planen von Websites
* Planen von Websitesammlungen
* Planen der Sicherheit
* Planen von Suchanforderungen
* Planen der Business Intelligence-Integration
* Planen der Dokument- und Datensatzverwaltung
* Planen von Workflows
* Planen von Formularen
* Planen der Websiteverwaltung
* Arbeitsblatt

http://technet.microsoft.com/de-de/library/cc263267.aspx

Definiere Kundenfreundlichkeit…

23.05.2009 18:32:56 | Daniel Schädler

Gerne. Seit gut ein paar Tagen ist die Hausmesse BEA bei uns im Gange. Der eine oder der andere bietet dort seine Waren fiel und es wird um Kunden geworben was das Zeug hält. Da ich heute die Zeit gefunden habe, neben Karussel und anderen Kinder freundlichen Jahrmarktsattraktionen, ein paar meiner favorisierten Themengebiete anzuschauen, war mein Weg auch in die Halle der Unterhaltungselektronik und des Internets nicht unvermeidbar. Also man schlenderte mit schwangerer Freundin und mit einem Militär-T-Shirt (Olivegrün) und ein ein paar Elfenbeinfarbenen kurzen Hosen durch die Stände. Man kam an Kilchenmann vorbei (keiner scherte sich einen Dreck um die zwei Personen die da eventuell an einem Kauf eines Geräte interessiert waren). Weiter ging es zu Meier Sound and Vision (perse ein sau teurer Laden). Keiner wollte was von uns wissen, lieber drei Verkäufer um einen potentiellen Käufer, als dass man die Greifarme nach Neukunden ausgerichtet hätte.

Nächster Halt Sunrise: Komisch das gleiche Bild wie schon vorher. Wieso? Keine Ahnung. Desillusioniert und mit wenig Motivation besuchte ich den Swisscom-Stand. Dort wurde man freundliche von Scrat (der Star aus Ice Age) begrüsst.

DSC00075

Nachdem man an dieser netten Gestalt vorbei ging, dachte man ach, dass wird wohl der einzige sein der dich bemerkt. Nein, beim begutachten von Digital-Kameras wurde ich mehrfach von Swisscom-Mitarbeitern freundlich gegrüsst, mit dem Satz: “Kann ich Ihnen helfen”… Bafff. Man sagt immer dass der Monopolist sich einen Dreck um die Kunden schürt? Komisch Cablecom, sunrise und Konsorten mögen zwar günstiger sein als der ehemalige Monopolist, aber der Kontakt zum Kunden findet nur noch elektronisch statt und man hat fast keine Chance mit den Mitarbeitern zu reden. Für mich steht klar: Service hat seinen Preis und der ist bei der Swisscom wohl berechtigt (ich hoffe dass wirkt sich dann auch aus wenn man ein wenig länger Kunde ist). Auf jeden Fall werde ich Natel-, Internet- und Festnetzvertrag zu 99% wieder bei Swisscom abschliessen und habe dann nicht immer eine automatische Mail oder eine halb patzige Antwort eines genervten Service-Mitarbeiters.

TFS 2010 Beta 1 auf Windows 2008 Server R2 RC

23.05.2009 14:27:30 | Thomas Schissler

Wenn schon mit Pre-Releases arbeiten, dann richtig habe ich mir gedacht und versucht den Team Foundation Server 2010 Beta 1 auf dem Windows 2008 Server R2 RC zu installieren. Nach einer kurzen Recherche im Internet bin ich auf diesen Blog-Post gestoßen. Mit den Informationen dort ist es mir tatsächlich gelungen, den TFS 2010 Beta1 und VSTS 2010 Beta1 auf dem Win2008R2 RC zu installieren. Damit komme ich nun auch auf meiner Demo-Maschine in den Genuss der Desctop-Experience von Win2008R2 :-)

image

Meine Top-3 Entwicklertools

23.05.2009 08:42:38 | Roland Weigelt

Die Chance, eine XBox zu gewinnen, lasse ich mir natürlich nicht entgehen, daher hier meine persönliche Top-3 Liste der Entwicklertools:

  • JetBrains ReSharper hat es mit gewissen Anlaufschwierigkeiten (Tests von früheren Versionen hinterließen bei mir z.T. einen zwiespältigen Eindruck) nun in der Version 4.5 auf Anhieb in die Top-3 geschafft.
     
  • .NET Reflector braucht man einfach immer wieder, sollte daher auf jeder Entwickler-Maschine installiert sein.
     
  • SonicFileFinder dient zum schnellen Suchen von Dateien in Visual Studio und schlägt dabei die in ReSharper eingebaute Funktionalität.

Erwähnenswert ist natürlich Visual Studio, das aber nicht in der Top-3 Liste ist, weil man es für Entwickler eigentlich schon zum Betriebssystem zählen kann ;-)

Screenshot Captor

22.05.2009 16:01:00 | Ozgur Aytekin

Screenshot Captor is a program for taking screenshots on your computer. It's different from other screenshot utilis in several notable ways:

•Optimized for taking lots of screenshots with minimal intervention.

•Smart autonaming of files, and ability to embed textual comments in files.

•Good multi-monitor support.

•Highly configurable to make it work the way you want it to; stays out of your way in the system tray.

•Lots of capture modes: Multimon (multiple monitors), Desktop, Active Window, Region, Windows Object. Each mode has a hotkey for quick access.

•Unique Cool Effects, including automatic active window enhancement (see pictures below).

•Unsurpassed support for 3rd party user configurable tools, including file browsers and image editors; extend the program to do whatever you need by interfacing it with other programs.

•Slimline sidebar file browser provides full shell operations.

•Optional automatic image file versioning.

•Seamless integration with Unicode Image Maker tool.
• - Automatically finds boundaries of non-rectangular/themed windows.
• - Autoscroll capture for windows too big for screen.
• - Deluxe thumbnail maker.
• - Quick PostCapture PopUp Dialog.

• - Quick Screenshot Emailer Menu.

http://www.donationcoder.com/Software/Mouser/screenshotcaptor/index.html

Microsoft Tag Slaps Design Contest - Kreativ sein und mitmachen!

22.05.2009 11:33:09 | Jan Schenk

Erstellt euren eigenen Microsoft Tag mit einer guten Idee dahinter, wo und wie dieser Tag eingesetzt werden könnte. Zu gewinnen gibt es Ruhm und Ehre, davon aber nicht zu wenig! Details gibt es hier:
http://www.microsoft.com/tag/content/overview/TagSlaps.aspx

 

Woher kommt der Ausdruck Tag Slaps?
Aus der Welt der Gaffitiists. Dort werden sogenannte Slaps verwendet, das sind Aufkleber, die zB den persönlichen Tag des Sprayers darstellen und nicht erst gesprayt werden müssen, sondern schnell und einfach überall da geklebt werden können, wo viel Leute vorbei kommen. Damit steigern Sprayer die Bekanntheit ihres “Tags”, dem Erkennungsmerkmal, ähnlich einer Unterschrift.

Könnte ich teilnehmen, sähe mein Betrag vielleicht so aus:

IMAGE_083



tweetmeme_url = 'http://blogs.msdn.com/jansche/archive/2009/05/22/microsoft-tag-slaps-design-contest-kreativ-sein-und-mitmachen.aspx';

Attention: Important Information on SharePoint Server 2007, Project Server 2007, Form Server 2007, Search Server 2008 and Search Server 2008 Express

22.05.2009 11:26:00 | Ozgur Aytekin

Attention: Important Information on Service Pack 2

During the installation of SP2, a product expiration date is improperly activated. This means SharePoint will expire as though it was a trial installation 180 days after SP2 is deployed. The activation of the expiration date will not affect the normal function of SharePoint up until the expiration date passes. Furthermore, product expiration 180 days after SP2 installation will not affect customer’s data, configuration or application code but will render SharePoint inaccessible for end-users.

Which products are affected by this?
Applying Service Pack 2 to any of the following products will result in this issue: Office SharePoint Server 2007, Project Server 2007, Form Server 2007, Search Server 2008 and Search Server 2008 Express.

http://blogs.msdn.com/sharepoint/archive/2009/05/21/attention-important-information-on-service-pack-2.aspx

Effizienz durch Kreativität und Intuition steigern

22.05.2009 02:32:00 | Norbert Eder

Das Gehirn besteht bekanntlich aus zwei Hälften. Der logisch und der kreativ geprägten. Der logische Part ist zuständig für Logik, Analyse, Sprache, Regeln usw. Die rechte Gehirnhälfte ist verantwortlich für unsere Phantasie, Kreativität, Gefühl, Formen und unsere Intuition. Als Softwareentwickler ist man geneigt, hauptsächlich den logischen Part...

MSDN Blog-Parade - Was sind Ihre Lieblings-Entwickler-Tools

21.05.2009 12:18:00 | Klaus Bock

Die MSDN ruft zur Blogparade und wir treuen Vasallen folgen.
Wie Alex Zeitler bereits in seinem Beitrag erwähnte, sind Visual Studio und Co hier nicht erwähnenswert da sie eigentlich zur Grundausstattung eines jeden .NET-Entwicklers gehören. Dazu zähle ich auch die verschiedenen Editoren mit Syntax-Hervorhebung wie Notepad++, Notepad2 und wie sie alle heißen.

Selbst auf die Gefahr hin der Ketzerei beschuldigt zu werden, JetBrains ReSharper ist und war für mich nie ein Thema. Visual Studio ist mittlerweile relativ flott im Handling. Warum soll ich es nun mit einem Schwergewicht wie R# so dermaßen träge machen? Gewiss, ich lese im näheren Umfeld immer wieder wie toll R# doch ist. Sollen die, die ihn verwenden, damit glücklich werden. Ich bin’s ohne ihn.
Hier nun meine Top 3:

  1. Subversion mit TortoiseSVN
    Nicht nur zur hausinternen Codeverwaltung, sondern auch bei der Zusammenarbeit mit anderen Entwicklern über Netzgrenzen hinweg ist eine Vernünftige Coderverwaltung unverzichtbar. Gerade TortoiseSVN, und bewusst nicht das VS Plug-In VisualSVN, ist wegen seiner Unabhängigkeit von der verwendeten IDE so genial einfach zu verwenden. Seine Integration in den Explorer, oder bei mir in den Total Commander, machen seine Handhabung zur Selbstverständlichkeit. Die IDE kann sich jederzeit wieder ändern; die Codeverwaltung bleibt.

  2. Jim Campwoods Sourcemonitor
    Ein, wie ich glaube, oft übersehenes Thema ist die Komplexität von Code. Im Eifer des Gefechts oder der Begeisterung, wird manchmal einfach übersehen wie tief gerade geschachtelt wurde. Auch kommt oft später hier und da noch ein if-Statement in einen Methodenkörper. Genau da setzt der SourceMonitor an und “misst” den Code. Er zeigt in diversen Diagrammen und Tabellen die Ausgewogenheit des Codes. Dabei können die Eckpunkte der Bewertung projektabhängig festgelegt werden.

  3. Eric Woodruffs Sandcastle Help File Builder (SHFB)
    Was hilft die beste Bibliothek mir der schönsten API, wenn niemand weis wie er sie verwenden soll. Für die Konvertierung der XML-Kommentare in Hilfedateien ist der SHFB meine erste Wahl. Egal ob das alte HtmlHelp 1.x ,das neue 2.x Format oder eine reine HTML-Hilfe für Webanwendungen. Der SHFB hilft immer.

Da nur 3 Tools gefragt waren, musste ich meine anderen Lieblinge auf die Plätze verweisen. Gerne hätte ich noch meinen alten Freund FxCop erwähnt, oder den P/Invoke Interop Assistant über den ich in diesem früheren Beitrag schon einmal geschrieben habe. Auch der .NET Reflector, ursprünglich von Lutz Röder entwickelt und jetzt von Red Gate weitergepflegt, hätte hier her gehört.
Aber der Vorgabe der Blogparade folgend, waren eben nur 3 gefragt.

Technorati-Tags: | |

Visual Studio Team System 2010 Team Suite Beta 1 – Web Installer

21.05.2009 09:59:00 | Ozgur Aytekin

Microsoft Visual Studio Team System 2010 Team Suite is the next generation of Microsoft development tools. It provides the ideal set of tools for every team disciple who is working on your project: architects, designers, developers, database experts, and testers. When a team is building skills and getting guidance at every step of the project life cycle, they will collaborate better than ever.

Download: http://www.microsoft.com/downloads/details.aspx?FamilyID=85520793-68fc-4361-a8b6-dc2cff49c8d2&displaylang=en

Visual Studio 2010 Extensions

21.05.2009 09:58:34 | Robert Wachtel

Kaum ist Visual Studio 2010 in einer öffentlichen Beta verfügbar, gibt es auch schon von Microsoft einige IDE-Extensions, die eine nähere Betrachtungsweise verdient haben. RegEx Editor Ein Editor für reguläre Ausdrücke mit Test-Möglichkeit.http://visualstudiogallery.msdn.microsoft.com/en-us/55c24bf1-2636-4f94-831d-28db8505ce00 IntelliSense Presenter Ein Add-In mit einer alternativen WPF-basierten Darstellungsform von IntelliSense.http://visualstudiogallery.msdn.microsoft.com/en-us/ca201b20-8100-4f9a-a653-a20ae308e82e Image InsertionDiese Editor-Erweiterung erlaubt das Einbetten von Grafiken zum Beispiel direkt im Quellcode.http://visualstudiogallery.msdn.microsoft.com/en-us/793d16d0-235a-439a-91df-4ce7c721df12 Demo Dashboard [...]

Fehler 404 beim Aufruf von BTSHTTPReceive.dll

20.05.2009 17:58:00 | Wolfgang Kluge

Heute stieß ich auf einen mir seltsam erscheinenden Fehler. Ich hatte AS2-Daten von einem Partner bekommen und habe diese eingerichtet. Beim ersten Test kam es dann gleich zum Fehler 404 "File not found" bzw. "Datei nicht gefunden". Das wollte ich prüfen und nachdem ich die URL in den Browser eingegeben hatte, erschien auch die selbe Fehlermeldung. Beim Aufruf des Verzeichnisses wurde die Datei allerdings noch - wie im Bild zu sehen - angezeigt.

Die Datei ist also vorhanden. Verwirrend.

Die Lösung ist ganz einfach, wenn man sie denn kennt ;) Innerhalb der Web Service Extensions im IIS Manager muss diese DLL eingetragen und die Ausführung erlaubt werden.

Neues in SharePoint 2010

20.05.2009 17:03:12 | Thorsten Hans

Was gibt es neues im SharePoint Server 2010? Nun Lars Fastrup nennt in seinem Post einige nette Details der neuen Version, die er auf der TechEd US 2009 erfahren hat.

Hier nochmals kurz meine TOP 5 News im Bezug auf SharePoint Server 2010

  1. Es wird nur eine 64bit Version des neuen SharePoint Servers geben, diese benötigt folgende Software
    1. Windows Server 2008 x64 oder Windows Server 2008 R2 x64
    2. SQL Server 2005 x64 oder SQL Server 2008 x64
  2. Der Internet Explorer wird nur noch ab Version 7 supported (sehr wichtig für öffentliche Lösungen mit SharePoint)
  3. SharePoint 2010 wird ein über ein Web-Ribbon Control verfügen, dadurch will Microsoft den SharePoint an das Look and Feel der Office Anwendungen anpassen
  4. Verstärkte Verwendung von Silverlight Controls
  5. “Painless upgrade”, die Update Routine von SPS 2003 oder MOSS 2007 auf SharePoint Server 2010 soll sehr gut und einfach gehalten sein. – Na da bin ich mal gespannt :D :D

 

Stand heute hört sich dass doch schon mal sehr gut an, ich habe es zwar noch nicht mit eigenen Augen gesehen und auch noch nicht “gefühlt”, aber das Ribbon fürs Web und die Silverlight Controls verspricht schon mal eine ansprechende UI..

DotNetKicks-DE Image

Es gibt keine Silverlight-Spiele!!!

20.05.2009 16:15:10 | Oliver Scheer

Druckbetankung - Die Show :: Silverlight 3 Teil VII

20.05.2009 15:24:54 | Jan Schenk

Get Microsoft Silverlight

Im siebten und letzten Teil der Staffel Silverlight 3 aus der Serie "Druckbetankung - Die Show" werfen wir einen Blick auf eine Online-Library für Silverlight 3 Beispiele samt Quellcode. Unter http://www.the-oliver.com/sl3training/ sehen wir uns diese Beispiele des Developer Evangelisten Oliver Scheer etwas genauer an.



tweetmeme_url = 'http://blogs.msdn.com/jansche/archive/2009/05/20/druckbetankung-die-show-silverlight-3-teil-vii.aspx';

Microsoft Tags - Was noch geht

20.05.2009 15:21:42 | Jan Schenk

Als Service für meine Leser und als Gedankenstütze für mich liste ich hier noch mal ein paar Links zum Thema “Möglichkeiten mit Microsoft Tags” auf:

http://www.microsoft.com/tag/content/what/

http://www.istartedsomething.com/20090109/hacking-microsoft-tags-hccb-works-monochrome-too/

http://conceptdev.blogspot.com/2009/02/microsoft-tag-cmyk-or-bust.html

Das sind ganz gute Startpunkte um mit den Tags was richtig Spannendes zu machen. Die Anpassung der Farben finde ich super, und der Hinweis, dass die letzten vier Farbfelder dem Eichen bzw. Bestimmen der verwendeten Farben dienen.

Wo kann man nun die Tags einsetzen?
(bitte nicht 100% ernst nehmen)

-Wäscheeinnäher (wenn ihr die Jacke im Club eurer Wahl liegen lasst)

-Visitenkarten (gut gepflegte Tags sind länger valide als normale Visitenkarten)

-Auf dem Laptop-Deckel (Wenn ich am Flughafen sitze mache ich gleichzeitig Werbung für mich)

-Everywhere-Aufkleber

Der Hauptvorteil ist, dass ich den Inhalt der dem Tag hinterlegt ist, jederzeit aktualisieren kann. Eine geänderte Telefonnummer? Kein Problem. Neue URL? In Sekunden erledigt.

Wo könntet ihr euch einen Tag vorstellen, außer auf Produktverpackungen und auf T-Shirts?

Postet eure Ideen!

Viele Grüße,
jan

 

PS: das sieht jetzt nicht gerade gut aus, aber dafür dass es mit Paint gemacht ist, also ohne Ebenen zu haben, geht es schon, oder? Und es funktioniert immer noch, obwohl ich beim Ausmalen nicht gerade zimperlich war…

JansVCard_partiallycolored



tweetmeme_url = 'http://blogs.msdn.com/jansche/archive/2009/05/20/microsoft-tags-was-noch-geht.aspx';

SharePoint Support in Visual Studio 2010

20.05.2009 14:50:19 | Thorsten Hans

Da heute die public Beta von Visual Studio 2010 verfügbar sein soll, widme ich dieser einen kurzen Post. Interessant sind für mich gerade die Features im Bezug auf SharePoint.

Endlich soll die längst fällige Integration der SharePoint-Entwicklung voran getrieben werden, dazu erweiterte Microsoft die neue Version der beliebten IDE um folgende SharePoint-Features

 

  • Der Server Explorer
    • Sites, Listen und viele andere SharePoint Elemente sind direkt über den Serverexplorer verfügbar
  • Templates
    • Es sind neue Templates integriert für WSP, Webparts, Listen, usw…
  • EventHandler
    • EventHandler können bequem mit einem Wizzard definiert werden
  • Debugging
    • SharePoint Solutions können erstellt und debuggt werden “just press F5”
  • Workflows
    • Workflowseiten können mit einem Visual Designer erstellt werden

Ziel ist, die Entwicklung von SharePoint-Lösungen mit dem Visual Studio genauso einfach zu ermöglichen wie das Erstellen von Windows Anwendungen oder ASP.Net Webseiten.

Eine detaillierte Liste mit allen Neuerungen im Bezug auf SharePoint ist leider noch nicht verfügbar, leider kann aktuell auch noch nicht sichergestellt werden, ob all diese Features in der Beta 1 von Visual Studio 2010 verfügbar sind.

Als zentrale Anlaufstelle für die kommende Version hat Microsoft eigens eine neue Webseite eingerichtet, bleibt abzuwarten wann dort etwas neues zu finden ist.

Hier noch ein kleines DataSheet zu den neuen Features von Visual Studio 2010.

 

DotNetKicks-DE Image

Mai-Treffen der Team System User Group Virtual Edition

20.05.2009 14:42:09 | Thomas Schissler

Team System User Group - Virtual Edition

Im Mai haben wir bei der TSUG-VE Ian Ceicis als Sprecher zum Thema Projekt Management mit TFS 2010. Er wird in seinem Vortrag die Neuerungen rund um das Workitem-Tracking in TFS 2010 vorstellen.

Want to get the skinny on the latest enhancements coming in TFS 2010, come see demos of the updated MSF Agile template, the new Agile workbooks, the new Excel reports, and the Microsoft Project client improvements such as Hierarchical work items, rollups, and project summary tasks. This session will be packed with demos from  Beta 1 and will be a great way to start getting familiar with the new tools coming in 2010. Bring your hardest questions, join the conversation, and walk away with the ability to see how your next project will run smoothly if you start using TFS 2010.

This month's meeting is being presented by Ian Ceicys.  Ian is a member of Microsoft's Global ALM Practice and an active member of the VSTS Rangers.

 

Das Treffen findet am Donnerstag, 21.05.2009 um 19:00 statt.

Weitere Infos unter http://www.tsug-ve.com

MSDN Blog-Parade : Lieblings-Entwickler-Tools

20.05.2009 13:43:00 | Wolfgang Kluge

Die MSDN Blog-Parade zum Thema Lieblings-Tools erfreut sich doch recht großer Beliebtheit (obs an der Gewinnmöglichkeit liegt, ich weiß es nicht *g*). Ich habe lange überlegt, welches denn meine 3 Lieblings-Tools sind und kam zu folgendem Ergebnis:

  1. ReSharper
    Erleichtert die tägliche Arbeit schon ungemein. Es geht sicherlich auch ohne, aber ich möchte es nicht mehr wirklich missen.
  2. AnkhSVN
    Wobei es eigentlich egal ist, mit welcher Versionskontrolle man arbeitet - Hauptsache man tut es und es ist halbwegs gut in die Entwicklungsumgebung integriert ;)
  3. Browser/Internet/Blogs & Foren
    Ja, der Browser wird seltener genannt, aber ohne Browser (und natürlich ohne Internet und ohne die zahlreichen Blogs, Foren und sonstigen Hilfeseiten) wäre mein Leben als Entwickler durchaus hürdenreicher

Visual Studio und/oder eine andere Entwicklungsumgebung wie #develop hab ich (wie Alex Zeitler in seiner Liste) mal nicht genannt - das gehört einfach zum Basis-Set dazu *g*...

SDL Process Template für VSTS jetzt verfügbar

20.05.2009 13:28:22 | Christian Binder

Download aktuell: Microsoft SDL Process Template for Visual Studio Team System
Im Rahmen seiner Bemühungen, die Sicherheit des Softwareentwicklungsprozesses zu verbessern, stellt Microsoft ab sofort das Security Development Lifecycle (SDL) Process Template zum kostenlosen Download bereit. Das Plug-In für Visual Studio Team System integriert den SDL Prozess direkt in die vorhandene Entwicklungsumgebung. Seit 2004 nutzt Microsoft den SDL Prozess, um die Sicherheit seiner Produkte schon im Entwicklungsstadium in den Mittelpunkt zu rücken. Da mittlerweile aber über 90 Prozent der Sicherheitslücken in Browsern und Anwendungen zu finden sind, gibt Microsoft das SDL nun auch für andere Entwickler frei. Weitere Infos dazu im MSDN Security Developer Center (engl.).

Chris

Rückblick: dotnet Cologne 2009 - Die Community-Konferenz für WPF & Silverlight

20.05.2009 09:31:41 | Jan Welker

Am 15.05.09 ging in der Kölner Niederlassung von Microsoft die dotnet Cologne 2009 über die Bühne. Das Event rund um WPF und Silverlight, von Entwicklern für Entwickler wurde von den .NET User Groups Bonn-to-Code.Net (Roland Weigelt) und .net user group Köln (Albert Weinert) organisiert.
 
Die Vortragsmaterialen der 11 Sessions findet Ihr (nach und nach) auf der Webseite der Konferenz.
 

Das Feedback der rund 180 Teilnehmer war so positiv, dass über eine dotnet Cologne 2010 nachgedacht wird. :-)
 
Nachtrag: auf Channel 8 gibt's noch ein ausführliches Video zur Konferenz: http://channel8.msdn.com/Posts/DotNet-Cologne/

Nur noch <> Plätze frei beim .NET Open Space Süd 2009

20.05.2009 01:40:00 | Jürgen Gutsch

.NET Open Space vom 11.07. bis 12.07.2009 in Ulm

Wer am 11.07. und am 12.07. beim .NET Open Space Süd 2009 dabei sein möchte sollte sich beeilen, Denn von den 60 Plätzen stehen stehen im Moment nur noch 14 10 8 4 freie Plätze zu Verfügung. Jeder der zu spät kommt, landet auf der Warteliste ;-)

Die Teilnahme lohnt sich alleine schon wegen der vielen bekannten Gesichter (Liste der Teilnehmer) die man dort treffen wird.

Ich werde auf jeden Fall dabei sein. Das Hotelzimmer für die kurze Nacht nach der Party ist schon gebucht. (weitere Unterkünfte)

Für die Fahrt nach Blaustein habe ich noch drei Plätze frei, wer also ab Singen oder Radolfzell mit fahren möchte, kann sich gerne bei mir melden. Wer eine andere Mitfahrgelegenheit sucht oder selber eine anbieten kann, kann das in der Mitfahrzentrale kund tun.

DotNetKicks-DE Image

Ajax Control Toolkit Release May 2009 (Ver. 3.0.30512)

19.05.2009 21:58:01 | Thorsten Hans

Wie ich gerade auf ASP.Net entdeckt habe, gibt es eine neue Version des Microsoft Ajax Control Toolkits.

Die neue Version kann allerdings nur mit ASP.Net 3.5 in Verbindung mit dem Visual Studio 2008 verwendet werden, Version 2.0 von ASP.Net wird leider nicht supported.

Neben den mehr als 20 Bugfixes die vorgenommen wurden sind auch 3 neue Controls enthalten

HTMLEditor

Ein inline WYSIWYG Html Editor im Stil von TinyMCE und andere prominenten Vertretern dieser Sparte.

Ajax Control Toolkit HTMLEditor

 

ComboBox

Mit der neuen ComboBox sind zahlreiche neue Möglichkeiten nun auch im Web verfügbar, die bis dato lediglich in Windows Anwendungen verfügbar waren oder viel JavaScript bedurften.

Ajax Control Toolkit ComboBox

Nette Features wie die Wahl des AutoCompleteModes,CaseSensitivity, DropDownStyle,… können nun direkt im Markup definiert werden.

 

ColorPicker

Zu guter letzt wurde dem AJAX Control Toolkit noch ein ColorPicker Control spendiert, damit auch ASP.Net Entwickler ohne weitere Drittkomponenten endlich eine bequeme Farbauswahl anbieten können.

Ajax Control Toolkit ColorPicker

 

Weiterführendes

Die alt bekannte Sample Webseite wurde mit dem Release ebenfalls aktualisiert und präsentiert nun auch die neuen Controls. Weitere Details zur neuen Version und den Download findet Ihr auf der Projektseite auf Codeplex.

 

DotNetKicks-DE Image

rampUp – Kostenlose Online Trainings

19.05.2009 20:48:29 | Thorsten Hans

Unter http://msdn.microsoft.com/en-us/rampup/default.aspx findet man ab sofort kostenlose Lerneinheiten für die Entwicklung mit dem .Net Framework.

Die Lerneinheiten richten sich sowohl an Anfänger als auch an Profis, es werden Einblicke in die Unterschiedlichen Entwicklungsrichtungen gegeben, egal welche bisherigen Kenntnisse vorhanden sind.

Des Weiteren findet man auf der Seite noch diverse Discounts für Bücher, kostenpflichtige Online Learnings oder auch für diverse MCTS Prüfungen.

 

Technorati-Tags: ,
DotNetKicks-DE Image

RampUp your Career

19.05.2009 18:30:57 | Oliver Scheer

Ramp Up ist eine freie, community-basierte, online Trainingsressource mit diversen Themenbereichen in denen man sehr vielseitig seine Entwicklerfähigkeiten fortbilden kann.

RampUp hat eine sehr gut sortiertes Portfolio für Anfänger bis hin zu Gurus.

Einfach auf den gewünschten Bereich klicken und los gehts.

www.myrampup.com

image

VSTS 2010 Beta1 Team Lab Management Setup Guide verfügbar

19.05.2009 17:32:50 | Christian Binder

Kurze Update: Für Visual Studio® Lab Management 2010 Beta1 ist kein Setup im eigentlichen Sinne notwendig die notwendigen Setup/Konfigurations Schritte sind in folgendem Dokument beschrieben.
Zusätzlich wird optional nur der Lab Agent Beta1 benötigt. Der Lab Manager ist schon bei dem Team Suite Setup enthalten.

clip_image002[5]


Chris

Visual Studio 2008 Extensions for WSS 3.0 auf Windows Server 2008

19.05.2009 12:45:39 | Thorsten Hans

Beim Erstellen einer neuen Sharepoint Entwicklungsmaschine bin ich auf einige Probleme mit den Sharepoint Extensions for Visual Studio 2008 gestoßen.

Nach der Installation wollte ich zum Test schnell mit Visual Studio einen eigenen ContentType erstellen, allerdings fanden sich weder Projekt- noch Element-Templates in meiner Visual Studio Instanz. Auch ein Neustart des Visual Studios und des Servers selbst bewirkte nicht, dass die Vorlagen verfügbar wurden.

Wie sich schnell herausfinden lies, werden die neuen Item-Templates im Installationsordner von Visual Studio

(hier C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplates\CSharp) installiert.

Installationspfad der WSS Templates

Die mit ausgelieferten Project-Templates befinden sich demnach unter

C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ProjectTemplates\CSharp

 

Da die Dateien im Programmfolder liegen, könnte es sein dass die mit Vista (gleicher Core wie Windows Server 2008) eingeführten Sicherheitsänderungen für das Programmverzeichnis greifen.

Also bleibt an dieser Stelle nur die Templates an den Ort der User-Templates zu kopieren.

Dies wäre demnach

C:\Users\Administrator\Documents\Visual Studio 2008\Templates\ItemTemplates

bzw.

C:\Users\Administrator\Documents\Visual Studio 2008\Templates\ProjectTemplates

 

Nachdem die Dateien kopiert sind muss man das eventuell noch geöffnete Visual Studio einfach einmal neustarten und schon sind Projekt- und Element-Templates verfügbar.

WSS Templates sind nun wieder verfügbar

Jetzt kann man endlich wieder Sharepoint-Lösungen entwickeln. :D

Eventuell liegt dieses Problem an den verwendeten Komponenten?! Hier kurz das verwendete Software Repertoire

  • Windows 2008 Standard Server 32 Bit
  • Microsoft Visual Studio 2008 Standard Edition
  • Windows Sharepoint Services 3.0
  • Visual Studio 2008 Extensions vor Microsoft Sharepoint Services 3.0 (in der aktuellen Version)

 

DotNetKicks-DE Image

Ich packe meinen Koffer und lege hinein…

19.05.2009 12:32:07 | Gordon Breuer

Wordle Jan macht es, Jürgen macht es und auch René und Peter. Und alles nur weil die MSDN zur Blog-Parade gerufen hat. <*Fanfare*>

Nun gut, lasse ich halt auch mal in meinen Entwickler-Koffer schauen. Auch wenn die Beschränkung auf nur 3 Programme schon arg klein ist.

  1. Visual Studio 2008
    Von einigen gar nicht erst genannt, vermutlich weil es zu einer Selbstverständlichkeit geworden ist. Natürlich könnte man auch mit Notepad und MSBuild.exe arbeiten, aber wer will das schon? Ein absolutes Must-Have für jeden ernsthaften Entwickler einer .NET-Sprache – und ich freue mich schon auf die kommende Version 2010!
  2. VisualSVN / TortoiseSVN / Subversion
    Auf dem zweiten Platz steht kein einzelnes Tool, da alle drei am besten nur zusammen arbeiten können. Ohne eine ordentliche Versionsverwaltung sollte eigentlich niemand mehr auch nur eine Zeile Code schreiben müssen. Subversion hat sich nach dem Testen einiger Alternativen als die (für mich) beste Variante herausgestellt. TortoiseSVN ist dazu passend das Plugin für Windows-Rechner. Und für eine einfache und bequeme Integration in Visual Studio ist VisualSVN das Plugin schlechthin.
  3. Gurock Smartinspect
    Lange Zeit kannte ich das Programm gar nicht, bis ich es einmal ausführlich antesten dürfte. Seit dem möchte ich es bei der Fehlersuche und allgemein der Logfile-Erstellung nicht mehr missen. Es ist einfach und intuitiv zu bedienen und die Bibliotheken liefern umfangreiche Hilfestellungen beim Protokollieren aller wichtigen Daten.

(c) Pixelio.de - Christian Bär So manch einer mag bei meinen Top-3 den ReSharper vermissen. In der Tat habe ich den ebenfalls installiert in der aktuellen Version. Aber auch wenn er stellenweise eine sehr große Hilfe darstellt, so verlangsamt er Visual Studio doch merklich. Auch der Ram-Verbrauch ist um ein Vielfaches höher (>200 MB statt ~40 MB ohne R#), selbst in der aktuellen Version 4.5. Diese beiden Eigenheiten haben das Plugin leider von Platz 3 verdrängt.

DotNetKicks-DE Image

“Shape the Future of Technology”

19.05.2009 11:50:32 | Gordon Breuer

Das ist der Slogan, mit dem TechSay auf seiner Website für Umfragen rund um den IT-Bereich wirbt. Wer sich auf der Seite registriert erhält in unregelmäßigen Abständen E-Mails mit Links zu verschiedenen Umfragen zugeschickt. Man könne, so die Betreiber, so die Technologien der Zukunft mitbestimmen. Als ich aber eben eine solche Umfrage starten wollte kam lediglich folgende Meldung:

We have detected that you are using a INTERNET EXPLORER 8. We currently do not support IE8, in order to continue with this survey please use the following browser(s) NO_DETECT.

Nicht nur, dass der aktuelle Internet Explorer 8 explizit abgefangen und nicht unterstützt wird, obwohl sicher mehr als genug Zeit war eventuelle Fehler zu beseitigen, auch ist man offenbar nicht in der Lage “NO_DETECT” zu ersetzen oder eine Grafik zu verwenden, deren URI gültig ist.

Hier hat die Qualitätssicherung wohl eindeutig versagt.

DotNetKicks-DE Image

Meine 3 Empfehlungen was in den Koffer eines jedes Entwicklers gehört

19.05.2009 10:41:06 | Peter Bucher

Also wenn es der Jürgen macht und es eine XBox zu gewinnen gibt, muss ich doch auch nachziehen :-).

  1. ReSharper gehört schon seit längerem zu meinem Toolset. Codeanalyse, Refactoringtools und viele Shortcuts machen das Stück Software zum #1 Plugin für Visual Studio.
  2. Ohne Firebug wäre die Analyse einer Webseite mit viel CSS und Javascript für mich fast nicht mehr denkbar. Ein super Tool. Für den Internet Explorer gibts die Developer Toolbar (In IE8 schon integriert).
  3. Der .NET Reflector darf auf keine Entwicklermaschine fehlen. Ein unverzichtbares, schnelles Tool um das innere des Frameworks zu durchsuchen und verstehen.

Abgesehen davon sind auf jeden Fall noch IETester zu erwähnen, um Webseiten in IE 5.5 – 8.0 zu testen.
Für die Analyse von Netzwerktraffic gibt es den Debugging Proxy Fiddler, den ich hier im Blog auch schon erwähnt habe.

Alpha Video mit Silverlight 3 Pixel Shader

19.05.2009 10:00:32 | Oliver Scheer

Oft gewünscht und endlich verfügbar: Die Unterstützung von Videos mit Alpha –Kanälen in Silverlight, d.h. die Möglichkeit Videos mit transparenten Bereichen zu erstellen.

Achtung Trommelwirbel! – durch individuelle Pixel Shader in Silverlight 3 wird das nun möglich sein!

Eine der grundlegend neuen Features von Silverlight 3 ist die Unterstützung der bereits in WPF enthaltenen Pixel Shader. Sämtliche in WPF erstellten Pixel Shader können problemlos in Silverlight 3 verwendet werden.

Die WPF Pixel Shader Library on CodePlex beinhaltet nun eine Silverlight 3 Bibliothek.  Eine der Shader der Bibliothek ist ein einfacher Color Key Pixel Shader. Ausgehend von diesem Shader fügt man Farb-und Toleranzeigenschaften hinzu sowie Design-Time Unterstützung für Expression Blend 3 und einen Installer, der den Shader zum Asset Panel von Expression Blend 3 hinzufügt.

Installer und Quellcode finden Sie hier.

clip_image002clip_image004

image

Eine Live-Demo findet sich auch hier (Achtung: Es wird SL3 Beta 1 benötigt).

Meine Top 3 Dev Tools

19.05.2009 09:53:28 | Andre Loker

Mal wieder ausnahmsweise ein deutscher Beitrag. MSDN Deutschland ruft die Bloggemeinde auf, Ihre Lieblings Entwicklertools zu verkünden und lockt mit Gewinnen zur Befriedigung des Spieltriebs. Da will ich natürlich nicht hinten anstehen. Hier also zunächst meine persönliche Top 3 der Entwicklertools:

  • Visual Studio 2008. Keine Überraschung, zugegeben. Aber machen wir uns nichts vor, VS ist nun mal die IDE für .NETler und Plattform für eine Menge nützlicher Add-Ins.
  • ReSharper. Wieder keine Überraschung. Aber das Tool ist mir dermaßen in Fleisch und Blut übergegangen, dass ein arbeiten ohne R# wie eine Qual vorkommt. Mit ReSharper „strömt“ mir der Code quasi aus den Fingerspitzen. Und nein, ich arbeite nicht für JetBrains.
  • NAnt. Mein persönliches Schweizer Taschenmesser und Mädchen für alles: vom automatisierten Build bis hin zum Server-Backup, im Grunde gibt es nichts, was sich damit – mehr oder weniger elegant – steuern ließe. Auch wenn einige Entwickler mittlerweile rake verwenden, bleibe ich vorerst bei NAnt, da es sich mMn leichter deployen lässt.

Aber nur drei Tools zu nennen wäre recht eingeschränkt. Hier eine Auswahl von Tools, die für mich wichtig bis unentbehrlich sind:

  • Subversion, das Version Control System meiner Wahl. Mittlerweile bevorzugen viele git. Ich mag dessen Konzept, aber die Unterstützung von git für .NET-Entwickler ist im Moment besser.
  • TortoiseSVN kennt wohl jeder, der Subversion unter Windows einsetzt.
  • VisualSVN + VisualSVN Server. Nunja, besagte Unterstützung für .NET-Entwickler :-)
  • Testdriven.NET: Noch ein VS Add-In, dass wohl fast jeder kennt. Schneller kann man seine – in meinem Fall MbUnit - Unit Tests wohl nicht ausführen.
  • .NET Reflector, machmal ist Quellcode halt die beste Dokumentation!
  • CruiseControl.NET, mein bevorzugter Continuous Integration server.
  • CCNetConfig, Konfigurationstool für CruiseControl.NET
  • MS Sql Server Manament Studio 2008 – Code completion in Queries find ich richtig gut!
  • Notepad++, schlanker Text editor mit einer Menge Funktionen
  • dotTrace. Keine Ahnung warum die Anwendung lahmt? Dieser Profiler könnte helfen.
  • Balsamiq Mockups – Richtig cooles Tool um UI Attrappen zu basteln. Vor allem für die Kundenkommunikation hilfreich.
  • NDepend. Ich nenn es gerne “Code Qualität in Zahlen”.
  • NCover. Code coverage ist ebenfalls eine wichtige Metrik.

Da es hier um tools geht, habe ich meine Lieblingsbibliotheken an dieser Stelle außer Acht gelassen.

Hier noch einmal der Link zum MSDN Blogeintrag.

PowerShell XML Dateien in anderes Format speichern

19.05.2009 08:41:15 | Daniel Schädler

Letztens hatte ich den Task 15 XML-Dateien so schnell wie möglich vom UTF8 Zeichenformat ins Unicode Zeichenformat zu konvertieren. Bis anhin hatte man die Dateien immer aufgemacht, Speichern unter gewählt und dann das entsprechende Format selektiert und dann das File in das entsprechende Zielverzeichnis gespeichert.

Mehr oder weniger konnte ich diesen Task automatisieren. Hier noch das kleine PowerShell Script welches die Dateien aus einem Input Ordner einliest und diese dann im Output Ordner im entsprechenden Format speichert.

   1: $inputPath = Read-Host "Bitte Quellpfad angeben"
   2: $ouputPath = Read-Host "Bitte Zielpfad angeben"
   3:  
   4: foreach($item in get-childItem $inputPath){
   5:    $file = get-content -path $inputpath\$item
   6:    out-file -filePath $ouputPath\$item -encoding Unicode -inputObject $file
   7: }

Einfach und schnell.

MSDN Dokumentation zu Visual Studio 2010 Beta 1 online

19.05.2009 08:15:59 | Thomas Schissler

image

Unter http://msdn.microsoft.com/en-us/library/dd831853(VS.100).aspx steht inzwischen auch die Dokumentation für das .Net Framework 4 Beta 1 und Visual Studio 2010 Beta 1 zur Verfügung. Für die Beta 1 wird es nur eine Online-Version der Dokumentation geben, eine lokale Installation wird erst mit einer späteren Version verfügbar sein, was sicher bei einer Beta-Dokumentation auch Sinn macht.

MSDN Blog-Parade – Was sind Ihre Lieblings-Entwickler-Tools ?

19.05.2009 08:06:00 | Thorsten Hans

Es ist immer wieder schön zu sehen wie sich die Masse beugt und an der MSDN Blog-Parade teilnimmt. Demnach folgen auch hier meine Top 3 Entwickler-Tools.

 

  1. JetBrains ReSharper – hierzu muss man kein Kommentar abgeben, oder?
  2. Visual Studio 2008 Extensions for WSS 3.0 – Damit dass Sharepoint – Entwicklerleben einfacher wird
  3. VimDer Editor

Warum Visual Studio nicht dabei ist, hat Alex in seinem Eintrag schön erklärt.

 

Technorati-Tags: ,

Das war die dotnet Cologne 2009

19.05.2009 07:33:00 | Roland Weigelt

Ein erstaunlich reibungsloser Ablauf, sehr positives Feedback von Teilnehmern, Sprechern und Sponsoren – alles in allem war die dotnet Cologne 2009, eine Community-Konferenz für WPF und Silverlight, für mich als Co-Organisator zwar eine anstrengende, aber auch sehr befriedigende Angelegenheit.

Die Konferenz war eine Gemeinschaftsproduktion der von Albert Weinert geleiteten .net user group Köln und der von mir geleiteten Bonner Gruppe Bonn-to-Code.Net, die im Januar zu diesem Zweck den dotnet Köln/Bonn e.V. gegründet hatten, mit Stefan Lange als erstem Vorsitzenden. An dieser Stelle sei auch die Mithilfe von Stefan Lieser und Jan Welker sowie unserer Helfer vor Ort (Janine Gollub, Carla Hein und Alberts Vater) erwähnt. Ein großer Dank gilt natürlich unseren Sprechern und Sponsoren, nicht zuletzt Microsoft mit großartiger Unterstützung. Ein ganzer Tag mit zwei Tracks, 11 Sessions, Freigetränken und einem umfangreichen Mittagessen für nur 15,- Euro wäre ohne sie nicht möglich gewesen.

Es war nur ein wenig schade, dass wir frühzeitig Opfer unseres Erfolgs wurden und für die Anmeldung rund einen Monat vor dem Termin eine Warteliste einrichten mussten. So mussten wir leider vielen Interessenten absagen und für die 160 Teilnehmer vor Ort wurde es hier und da stellenweise etwas “kuschelig”.

Für das nächste Jahr – eine dotnet Cologne 2010 ist bereits fest ins Auge gefasst – werden wir in Bezug auf die Räumlichkeiten unsere Möglichkeiten ausloten, wobei der diesjährige Ort (die Microsoft-Niederlassung am Kölner Rheinufer) in vielerlei Hinsicht schon sehr attraktiv war.

Hier noch ein paar Impressionen:

01-Teilnehmer 02-Vortrag

03-Relaxen 04-Vortrag

05-Silverlight3 06-Gewinner

Meine Top-3 Entwicklertools

19.05.2009 03:16:03 | Jürgen Gutsch

Na dann werde ich auch mal an der Blog-Parade teilnehmen, die von MSDN Deutschland veranstaltet wird. Gefragt sind die Top-3 der Lieblings-Entwickler-Tools. Ausgenommen dem Visual Studio 2008 stelle ich hier mal folgende vor:

1. Team Foundation Server (http://msdn.microsoft.com/de-de/vsts2008/products/bb933758.aspx) sowohl als Source-Code-Verwaltung als auch als Projekt-Management-Werkzeug inzwischen unverzichtbar und zusammen mit den Team Foundation Server Power Tools und den Team Foundation Sidekicks eine absolut saubere Entwicklungs- und Managementumgebung.

2. Roland Weigelts GhostDoc (http://www.roland-weigelt.de/ghostdoc/) zwingt einem zur sauberen Benennung von Klassen und Interfaces und deren Members ;-) Also auch unverzichtbar für alle die die Clean Code Prinzipien wenigstens etwas berücksichtigen wollen. Außerdem macht das Kommentieren mit GhostDoc endlich auch mal Spaß.

3. Der Reflector (http://www.red-gate.com/products/reflector/) ist ein absolutes Muss auf jeder Entwicklungsmaschine. Der ursprünglich von Lutz Röder entwickelte .NET Reflector hilft einem in fertige Assemblies hineinzuschauen und deren Funktionsweisen und Anforderungen zu analysieren. Der .NET Reflector ist zudem durch zahlreiche Add-Ins erweiterbar

DotNetKicks-DE Image

HTTP Error 500 nach Restore eines Sharepoint Backups

18.05.2009 22:44:53 | Andre Kraemer

Kürzlich versuchte ich via stsadm -o restore das Sharepoint Backup eines Kundens auf meinem Entwicklungsrechner einzuspielen. Obwohl die Wiederherstellung problemlos lief, kam beim anschließenden Aufrufen der Seite stets nur die statische Meldung: HTTP 500, interner Serverfehler. Sowohl das Eventlog, als auch die Sharepoint-Log Dateien gaben keinen Aufschluss zur Ursache des Fehlers. Auch Google und Co waren wenig hilfreich.

Nach stundenlangem Probieren konnte ich die Ursache glücklicherweise doch finden: Sowohl der Kunde, als auch ich hatten einen englischen MOSS auf einem englischen Windows 2003 Server installiert. Im Gegensatz zu mir hatte der Kunde jedoch zusätzlich die deutschen Sprachpakete für MOSS und WSS 3.0 inkl. aktuellem Servicepack installiert.

Mein Fazit der Geschichte:

In Zukunft werde ich beim Aufsetzen einer Sharepoint Entwicklungsmaschine sofort die Language Packs installieren.



blog.codemurai.de © André Krämer |Impressum | Abonieren

Dotnet-kicks.de Link in Feedburner RSS Footer einbinden

18.05.2009 22:25:55 | Andre Kraemer

Wer den RSS Feed seines Blogs via Feedburner publiziert, kann mit Hilfe eines FeedFlares sehr einfach einen dynamischen Dotnet-kicks.de Link unter jeden Eintrag setzen.

Dazu ist wie folgt vorzugehen:

  1. Einloggen bei feedburner
  2. Feed zur Verwaltung auswählen
  3. image
  4. Registrierkarte Optimize anklicken.
  5. Links im Menü den Punkt FeedFlare wählen
    image
  6. Neuen Flare hinzufügen
    image
    Eine passende Flare Datei, die von jedem Benutzt werden darf, befindet sich auf meiner Homepage unter http://www.codemurai.de/downloads/kick_it-deflare.xml
  7. Speichern und Aktivieren
    image
  8. Das Ergebnis genießen ;-)
    image


blog.codemurai.de © André Krämer |Impressum | Abonieren

Muss es denn immer ein C# Programm sein?

18.05.2009 19:09:35 | Daniel Schädler

Ab und an sieht man immer wieder, für ganz einfache Task, die das Computermanagement betreffen, wie liest man dies und jenes aus dem PC aus. Grundsätzlich kann dies auch ohne eine kompilierte Exe gemacht werden. Bitte nicht falsch verstehen, ich stehe voll und ganz hinter C#, für manche Sachen finde ich aber ein wenig Overdosed.

Wenn man zum Beispiel die verfügbaren WMI-Klassen haben möchte, dann reicht es in der Powershell (Windows XP und VISTA, Windows 7) folgende Zeile einzugeben. Hier als Beispiel lasse ich mir alle WMI-Klassen die etwas mit dem Prozessor zu tun haben ausgeben.

   1: Get-WmiObject -query "Select * from meta_class" | Select-String -pattern "Processor"

Resultat:

   1: cimv2:CIM_Processor
   2: cimv2:Win32_Processor
   3: cimv2:Win32_ComputerSystemProcessor
   4: cimv2:CIM_AssociatedProcessorMemory
   5: cimv2:Win32_AssociatedProcessorMemory
   6: cimv2:Win32_PerfFormattedData_Counters_PerProcessorNetworkActivityCycles
   7: cimv2:Win32_PerfRawData_Counters_PerProcessorNetworkActivityCycles
   8: cimv2:Win32_PerfFormattedData_Counters_PerProcessorNetworkInterfaceCardActivity
   9: cimv2:Win32_PerfRawData_Counters_PerProcessorNetworkInterfaceCardActivity
  10: cimv2:Win32_PerfFormattedData_Counters_ProcessorInformation
  11: cimv2:Win32_PerfRawData_Counters_ProcessorInformation
  12: cimv2:Win32_PerfFormattedData_PerfOS_Processor
  13: cimv2:Win32_PerfRawData_PerfOS_Processor

Dies lässt sich auch für anderen Klassen wie Harddisk machen. Wenn wir also den Prozessor auslesen wollen, dann reicht folgende Scriptzeile, die dann auch gleich ein File erstellt.

   1: Get-WmiObject -Class Win32_Processor | out-file -FilePath C:\Temp\Processor.txt

Somit hat man in einem Zweizeiler die benötigten Informationen ausgelesen, also ein wenig kürzer als mit managed Code. Für Scripts auszuführen muss aber in der PowerShell die ExecutionPolicy auf trusted (empfohlen) oder unrestricted (nur für Testzwecke in einem abgeschotteten System) zu setzen.

ASP.Net MVC Custom ModelBinders

18.05.2009 19:04:00 | Thorsten Hans

Einer der interessanten Erweiterungspunkte des ASP.Net MVC Frameworks sind die ModelBinder. In diesem Post beschreibe ich kurz was ModelBinder sind, wie man diese implementiert und in einer ASP.Net MVC Anwendung verwendet.

 

Was macht ein ModelBinder

 

Ein ModelBinder ist für die Übersetzung von Form-Werten aus Webseiten in .Net Objekte verantwortlich. ModelBinder dienen demnach dazu die Verarbeitung von POST Anfragen typsicher und einfacher zu machen.

Alle Entwickler die bereits vor ASP.Net MVC mit ASP.Net Webseiten entworfen haben, kennen noch die typischen

Request.Form(“MyNameTextBox”)

Codezeilen die den ASP.Net Code verschönerten… :D

 

Eigene ModelBinder erstellen

 

Zwar genügen die Standard ModelBinder in den meisten Fällen, allerdings gibt es auch Szenarien, in denen eigene ModeBinder hilfreich sein können.

Durch eigene ModelBinder können folgende Vorteile genutzt werden

  • Steuerung der Konvertierung
  • Definieren von eigenen Validierungsmeldungen

Um einen ModelBinder zu implementieren, muss man lediglich das Interface IModelBinder verwenden. Das Interface stellt lediglich eine Methode bereit, die BindModel Methode. Die gesamte Signatur der BindModel Methode sieht wie folgt aus

BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)

 

Zum Übersetzen der Form-Werte in einen beliebigen .Net Typ ist der ControllerContext der wichtigste Parameter der Methode, über ihn gelangt man sowohl an die Form-Werte als auch an den ModelState. Konkret erhält man diese beiden benötigten Instanzen auf folgendem Weg

var form = controllerContext.HttpContext.Request.Form; 
var modelState = controllerContext.Controller.ViewData.ModelState;

Die Form der Http-Anfrage wird benötigt um die aktuellen Werte aus der Webseite zu lesen und zu parsen. Sollten beim Versuch die Werte zu übersetzen Fehler auftreten, kann man entsprechend auf modelState die AddModelError Methode nutzen um entsprechende Fehlermeldungen an die Oberfläche zu werfen.

 

Den eigenen ModelBinder verwenden

 

Nachdem der eigene ModelBinder implementiert ist, muss dieser der ASP.Net MVC Engine noch bekannt gemacht werden, dies wird in der Global.asax erledigt.

Hierzu muss man einfach eine neue Instanz des ModelBinders erstellen und für den gewünschten Typ registrieren.

IModelBinder customerBinder = new CustomerModelBinder(); 
ModelBinders.Binders.Add(typeof(MyProject.Models.Customer), customerBinder);

 

Ein Beispiel ModelBinder

 

public class CustomerModelBinder : IModelBinder 
{ 

    public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) 
    { 
         var form = controllerContext.HttpContext.Request.Form; 
         var state = controllerContext.Controller.ViewData.ModelState; 
         Customer newCustomer = new Customer(); 
         newCustomer.Id = -1; // will be autogenerated by database…. 
         newCustomer.Name = form["Name"]; 
         newCustomer.FirstName= form["FirstName"]; 
         DateTime dtBirthDate= DateTime.Now; 
         if (DateTime.TryParse(form["Datum"], out dtBirthDate)) 
         { 
             newCustomer.Date = dtBirthDate; 
         } 
         else 
         { 
             state.AddModelError("Datum", "Ungültiges Datum"); 
         } 
         return newEvent; 
        } 
}

Im obigen Beispiel wurde lediglich das Geburtsdatum des Kunden validiert, natürlich bieten sich hier noch weitere Validierungen an.

 

Technorati-Tags: ,,
DotNetKicks-DE Image

Visual Studio 2010 Beta 1 ab heute verfügbar – jetzt offiziell

18.05.2009 16:50:56 | Thomas Schissler

Nachdem es bisher nur Gerüchte gab, nun ist es offiziell. Visual Studio 2010 Beta 1 wird noch heute für MSDN-User verfügbar sein. Für die Öffentlichkeit gibt es den Download dann ab Mittwoch.

Diesmal aus einer verlässlichen Quelle (Soma Somasegar, Corporate Vice President Microsofts)

Visual Studio 2010 and .NET FX 4 Beta 1 ships!

Update: Ich habe die Bits inzwischen runtergeladen. Da haben die Jungs wirklich noch einiges reingepackt gegenüber den früheren CTPs.

Die großen Probleme unserer Zeit - Informationsdichte in Videos selbst gestalten?

18.05.2009 14:32:45 | Jan Schenk

Ich schaue mir gerade eine Windows 7 Videoserie an. Folgendes ist mir aufgefallen und ich empfinde es als wichtige, fast schon philosophische Problematik in passiven Unterhaltungs- und Lernmedien. Die Informationsdichte lässt sich nicht durch den Konsumenten beeinflussen.

Als Kontrastbeispiel: Wenn ich ein Buch lese, dann bleibt mir sowohl die Geschwindigkeit, als auch die Tiefe, mit der ich konsumiere, selbst überlassen. Ich kann einen Absatz zweimal lesen, Satzteile, die ich selber folgern und kombinieren kann, weglassen, Seiten überfliegen etc.
Beim Ansehen eines Videos bin ich darauf angewiesen, dass der Produzent des Videos, der Autor und/oder der Editor alles auf meine Bedürfnisse, die er aber nicht kennen kann, zugeschnitten hat. Er müsste meine Vorkenntnisse kennen, als auch meine Lernfähigkeit und meine Tagesform, um mir ein Video zur Verfügung zu stellen, das meinen Lernerfolg optimiert. Das geht freilich nicht, sonst gäbe es nicht ein Video, sondern so mehr(!) als Betrachter.

Ein Schritt in die richtige Richtung sind Kapitel und sogenannte Transcripts, die aber nur mässigen Erfolg versprechen dürften, weil sie sich sehr schlecht on-the-fly steuern lassen bzw. nicht aussagekräftig genug sind. Wie kann man das Format (Lern-)Video effektiver und anpassbarer gestalten? Eine neue Playergeneration, die eine gewisse Unschärfe (In Form von höherer Geschwindigkeit) erlaubt? Vorbereitende Maßnahmen während des Erstellens des Videos, die Sequenzen in verschiedene Wichtigkeiten einteilt? Wo könnte die Reise hingehen, was Medien betrifft? Wie lässt sich Informationsdichte ähnlich wie in einer Zeitung oder einem Buch konsumentengesteuert in Videos verändern? Ist da überhaupt möglich, wenn ja, steht der Aufwand in vertretbarem Verhältnis zum Nutzen?

Das Netz wird immer reicher an Multimediainhalten, aber ist der Konsument in der Lage, daraus einen echten Vorteil zu ziehen, oder wird er früher oder später doch irgendwie enttäuscht und unbeeindruckt vom Web aufs Buch zurückgreifen? Der hohe Lernerfolg durch Videos ist zwar belegbar, aber kommt der Nutzer auch tatsächlich damit zurecht, oder gibt es noch unentdeckte Funktionen, die jeder benutzen könnte, aber die noch keinem eingefallen sind zu integrieren?

An dieser Stelle würde ich mir viele viel Kommentare von euch Lesern wünschen, in denen ihr genau diese Fragestellung diskutiert. Auch utopisch? Vielleicht, aber einen Versuch wert!

Viele Grüße,
jan



tweetmeme_url = 'http://blogs.msdn.com/jansche/archive/2009/05/18/die-gro-en-probleme-unserer-zeit-informationsdichte-in-videos-selbst-gestalten.aspx';

MSDN Flash 10/2009 - mehrfach erhalten?

18.05.2009 13:10:00 | Kay Giza

Am Montag, 18.05.2009 ab 09.00 Uhr haben wir, wie immer alle 14 Tage, unseren MSDN Flash versendet. Der Microsoft-Newsletter für Entwickler: http://www.msdn-online.de/Flash Der Newsletter hatte den Betreff: MSDN Flash 10/2009: TechEd North Amercia 2009 +++ Visual Studio 2010 Beta 1 +++ LiftOff Online-Training. In den letzten Stunden haben uns mehrere Newsletter-Abonnenten gemeldet, dass Sie den MSDN Flash mehrfach erhalten hätten. Ich bitte die Mehrfachversendung zu entschuldigen und möchten Sie für weitere Details und Informationen bitten, meinen Blogeintrag hier auf www.giza-blog.de zu lesen… [...mehr]

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

Druckbetankung - Die Show :: Silverlight 3 Teil VI

18.05.2009 10:44:37 | Jan Schenk

In Teil fünf der Staffel Silverlight 3 aus der Serie "Druckbetankung - Die Show" dreht sich alles um die Plane Projection, die 3D-Projektion in Silverlight 3. Diese Projektion lässt sich sowohl in Expression Blend 3 verändern, als auch an Eingabefelder, beispielsweise Slider, binden und so in der Anwendung selber interaktiv verändern. Oliver Scheer und ich programmieren uns explorativ durch die Möglichkeiten der 3D-Projektion.

Get Microsoft Silverlight



tweetmeme_url = 'http://blogs.msdn.com/jansche/archive/2009/05/18/druckbetankung-die-show-silverlight-3-teil-vi.aspx';

Kicken ist jetzt noch einfacher mit dem Internet Explorer 8

18.05.2009 09:35:36 | Jan Welker

Ist man im Netz unterwegs und stolpert über einen interessanten .NET Artikel, kann man diesen bei dotnet-kicks.de eintragen um diesen Artikel anderen zu empfehlen und bewerten zu lassen.
Um Artikel bei dotnet-kicks.de einzustellen, die noch keinen Kick-It! Button haben, kann man z.B. folgendes Formular nutzen: http://dotnet-kicks.de/submit

Wer mit dem IE8 unterwegs ist, hat es jetzt deutlich einfacher Artikel zu veröffentlichen. Man markiert einfach den Text auf der Webseite der später als Beschreibung dienen soll, dann erscheint ein blaues Schnellinfo-Logo hinter dem sich ein Kontextmenü verbirgt. Dort gibt es eine so genannte Schnellinfo die alle relevanten Daten zu dotnet-kicks.de überträgt.

SchnellinfoDNK

Um die Schnellinfo zu installieren genügt ein Klick auf diesen Link:

IE8 Schnellinfo für dotnet-kicks.de installieren

Wer den Firefox nutzt, kann das dotnet-kicks.de - Bookmarklet verwenden.

Modale Fenster und Dialoge im CommunityServer

18.05.2009 08:18:52 | Jan Welker

Modales Dialoge sind eine sehr gute Möglichkeit um mit dem Benutzer zu interagieren ohne den aktuellen Kontext zu verlassen. Meiner Meinung nach, eignen sich im Webbereich am besten Lösungen die auf CSS und JavaScript basieren. Ein gutes Beispiel ist SimpleModal welches auf jQuery basiert. Im ASP.NET Ajax Control Toolkit gibt es das ModalPopup, mit dem sich ebenfalls modale Fenster oder Dialoge gestalten lassen.
Kürzlich stand ich vor der Aufgabe einen solchen modalen Dialog in den CommunityServer zu integrieren. Ich schaute mir verschiedene jQuery Lösungen an, um herauszufinden, welche am besten geeignet ist.
Schließlich entdeckte ich, das der CommunityServer eine eigene Lösung mitbringt die in einem Servercontrol gekapselt ist.
Der folgende Code stellt einen Button bereit, mit dem ein modales Fenster angezeigt werden kann, indem eine andere Webseite steckt:

<CS:ModalButton ID="ModalButton1" runat="server" Url="http://dotnet-snippets.de" Text="Modal
Demo" Width="800" Height="600" />

ModalDemo

Diese Lösung ist nur dann geeignet, wenn nur etwas anzeigt werden soll. Möchte man den Dialog nutzen um Entscheidungen vom Benutzer abzufragen, oder um zum Beispiel einen Fileupload Dialog anzubieten, benötigt man ein wenig JavaScript um an den Rückgabewert heran zukommen. Der folgende Code öffnet ein modales Fenster, in dem eine normale aspx Seite steckt und übergibt die Parameter "id" und "startdate". Die Parameter 800 und 600 geben die Größe des Fensters in Pixel an. Es wird außerdem eine Callback Methode angegeben, die aufgerufen wird, wenn das Fenster geschlossen wird:

<script type="text/javascript">
function OpenWindow(id, startdate) {
Telligent_Modal.Open("DynamicContent.aspx?ID=" + id + "&startdate=" + startdate, 800, 600, onCloseFunction);
}
</script>

In der aspx Seite DynamicContent.aspx ist ein kleines JavaScript, das dafür verantwortlich ist den Rückgabewert zurückzugeben:

<script type="text/javascript">
function CloseWindow(returnValue) {
window.parent.Telligent_Modal.Close(returnValue);
}
</script>


Die Modalen Fenster im CommunityServer können über eine zentrale CSS Datei gestylt werden und haben so alle die gleiche Optik.

Blog gelistet auf http://dotnet-forum.de/DeveloperBlogs/

18.05.2009 06:22:54 | Daniel Schädler

Was mich am Wochenende sehr erfreut hat, war dass ich eine Anfrage bekommen habe, ob ich meinen Blog nicht auch auf http://dotnet-forum.de/DeveloperBlogs/ listen lassen möchte. Gerne mache ich dass und bin damit ein wenig bestätigt, dass wohl nicht alles was ich schreibe absoluter Blödsinn ist. In dem Sinne hat sich meine Motivation, den Blog am Leben zu erhalten sehr zum Positiven gewendet und ich hoffe dass ich durch den einen oder anderen Beitrag jemandem weiterhelfen kann. smile_teeth

Danke auf jeden Fall für die Listung.

Bericht vom Office (VSTO) Community Day

17.05.2009 21:54:07 | Lars Keller

Der Office (VSTO) Community Day in Wien ist vorüber und wie Mario Meir-Huber schon berichtet hat, warIMG_3206 der Community Day ein voller Erfolg. Zusammen mit 23 anderen Teilnehmern (darunter sogar 2 Schweizer  und 1 Deutscher) haben wir uns am 8. Mai in den Räumen von Microsoft Österreich eingefunden.  Mario und ich hatten eine Agenda vorbereitet, welche neben viel Kuchen (;-)) auch viel Zeit für Networking und Gespräche über VSTO, OBA und .NET zuließ.

Auch während der Sessions wurde viel über das gezeigte diskutiert, so dass wir uns nach den Sessions hungrig in ein österreichisches Lokal zur Afterparty einfanden. Dort klang der Abend dann gemütlich aus.

DSC09747 Am nächsten Tag hat Mario uns länger angereisten noch einiges von Wien gezeigt. Wir sind auf den Fußstapfen von Sissi (Schloss Schönbrunn, Gloriette) gewandert und haben die Oper, das Rathaus, das Parlament, etc. gesehen. Einen leckeren Zwischenstopp haben wir beim Schnitzelwirt gemacht.

  prater

 

Es gab eine ordentliche Schnitzelportion zu verdrücken, die nicht jeder geschafft hat. Wohl gestärkt haben wir uns danach noch weitere Sehenswürdigkeiten angeschaut, u. a. das berühmte Prater Riesenrad, welches eine sehr schöne Aussicht über Wien bietet.

 

Uns hat der erste Office (VSTO) Community Day sehr viel Spaß gemacht und das durchweg positive Feedback macht uns Mut, spätestens nächstes Jahr den zweiten Office (VSTO) Community Day auszurichten.daumen_hoch



This weblog is sponsored by netcreate OHG.

Bericht vom Office (VSTO) Community Day

17.05.2009 20:54:07 | Lars Keller

Der Office (VSTO) Community Day in Wien ist vorüber und wie Mario Meir-Huber schon berichtet hat, warIMG_3206 der Community Day ein voller Erfolg. Zusammen mit 23 anderen Teilnehmern (darunter sogar 2 Schweizer  und 1 Deutscher) haben wir uns am 8. Mai in den Räumen von Microsoft Österreich eingefunden.  Mario und ich hatten eine Agenda vorbereitet, welche neben viel Kuchen (;-)) auch viel Zeit für Networking und Gespräche über VSTO, OBA und .NET zuließ.

Auch während der Sessions wurde viel über das gezeigte diskutiert, so dass wir uns nach den Sessions hungrig in ein österreichisches Lokal zur Afterparty einfanden. Dort klang der Abend dann gemütlich aus.

DSC09747 Am nächsten Tag hat Mario uns länger angereisten noch einiges von Wien gezeigt. Wir sind auf den Fußstapfen von Sissi (Schloss Schönbrunn, Gloriette) gewandert und haben die Oper, das Rathaus, das Parlament, etc. gesehen. Einen leckeren Zwischenstopp haben wir beim Schnitzelwirt gemacht.

  prater

 

Es gab eine ordentliche Schnitzelportion zu verdrücken, die nicht jeder geschafft hat. Wohl gestärkt haben wir uns danach noch weitere Sehenswürdigkeiten angeschaut, u. a. das berühmte Prater Riesenrad, welches eine sehr schöne Aussicht über Wien bietet.

 

Uns hat der erste Office (VSTO) Community Day sehr viel Spaß gemacht und das durchweg positive Feedback macht uns Mut, spätestens nächstes Jahr den zweiten Office (VSTO) Community Day auszurichten.daumen_hoch

Dynamischer Content für statische Inhalte

17.05.2009 18:20:02 | Klaus Bock

Da ich mein Blog nur vorkompiliert veröffentliche, ging mir folgendes Verhalten gehörig auf den Zeiger: Bei jeder kleinen Änderung am statischen Inhalt des Blog musste das gesamte Projekt neu kompiliert und via Ftp auf den Server geladen werden. Manch einer wird jetzt bestimmt sagen: “dann veröffentliche doch nicht vorkompiliert.” Über das für und wieder lässt sich bestimmt streiten, aber nicht hier und heute.
Wie bereits Eingangs erwähnt, störte mich dieses Verhalten immens. Ich wollte aber auch nicht die Datenbankstruktur von BlogEngine.NET ändern, nur um mir ein wenig Arbeit zu ersparen. Bei einem Update auf eine neue Version, könnte die Änderung an der Datenbank nach hinten losgehen und die Erleichterung währe dahin. Also habe ich mich für die einfachste Form der Speicherung strukturierter Daten entschieden; einer XML-Datei.
Da die enthaltenen Daten meistens aus Links und Verknüpfungen zu irgendwelchen Images  sowie Verknüpfungen zu JavaScript-Dateien bestehen, erschien mir das CDATA-Element nahezu perfekt für mein Vorhaben. Jetzt noch ein UserControl welches die Daten aus dem XML darstellt und das Ärgernis ist Geschichte. Einzig die Auflösung von Pfaden konnte ich nicht direkt in XML realisieren. Aber dafür gibt es ja das Codebehind des UserControl. Da die darzustellenden Images in der MasterPage dargestellt werden sollen, helfen relative Pfade nicht wirklich weiter. Also musste eine Auflösung der Pfade, die ursprünglich in der MasterPage etwa so dargestellt wurden:

<a href="<%=VirtualPathUtility.ToAbsolute("~/") %>"
	title="Zur Startseite des Blog wechseln.">Blog</a>

etwas anders gelöst werden.
Ich entschied mich für die Verwendung eines Schlüsselwort im XML, welches zur Laufzeit durch einen entsprechenden Pfad ersetzt wird. Also wird zum Beispiel aus der Zeichenfolge:

[root]themes/klaus_b/images/stopie6.png

die Pfadangabe:

/BlogEngine.Web/themes/klaus_b/images/stopie6.png

Wobei [root] das Schlüsselwort für die Angabe des Wurzelverzeichnis der Webseite darstellt. Ein kompletter Knoten im XML-File sieht dann also wie folgt aus:

<entry name="stopie6.org">
  <![CDATA[
  <a href="http://www.stopie6.org/" title="Stop IE6 Kampagne">
    <img src="[root]themes/klaus_b/images/stopie6.png"
      alt="Stop IE6 Kampagne" title="Stop IE6 Kampagne" width="88px" height="31px" />
  </a>
  ]]>
</entry>


Es braucht also nur die XML-Datei geladen, durch die Knoten iteriert und das ganze in einem Literal dargestellt zu werden.
Damit nicht bei jedem einzelnen Aufruf der Seite die XML-Datei geladen werden muss, wird das verwendete XmlDocument in das Cache geschrieben. Bei Änderungen an der XML-Datei soll natürlich darauf reagiert werden, deshalb wird beim Einfügen des XmlDocument in das Cache eine CacheDependency-Instanz mit dem Verweis auf die XML-Datei verwendet. Somit wird bei einer Änderung an der XML-Datei der Eintrag im Cache ungültig, die geänderte Datei wird verwendet und ihrerseits in das Cache eingefügt.

Abschließend für interessierte hier der Code des UserControl. Das Listing des Markup dürfte selbsterklärend sein.

<%@ Control Language="C#" AutoEventWireup="true" EnableViewState="false"
    CodeFile="MetaContent.ascx.cs" Inherits="MetaContent" %>
<h2>
    Meta</h2>
<div class="meta">
    <asp:Literal ID="literalContent" runat="server" />
</div>

Hier wird lediglich ein Literal verwendet um das erzeugte HTML darzustellen. Das umhüllende Div dient lediglich der Verwendung von CSS zur Darstellung des Inhalt.

Die Arbeitsweise des Codebehind wurde im Artikel bereits erläutert. Hier der Vollständigkeit halber das Listing.

using System;
using System.Text;
using System.Web;
using System.Web.Caching;
using System.Web.UI;
using System.Xml;

using BlogEngine.Core;

public partial class MetaContent : UserControl
{
    #region Fields

    /// <summary>
    /// Hält den Pfad zum Wurzelverzeichnis der Webseite.
    /// </summary>
    private readonly string rootPath = Utils.RelativeWebRoot;

    /// <summary>
    /// Hält den Pfad zur XML-Datei.
    /// </summary>
    private readonly string storagePath =
        HttpContext.Current.Server.MapPath(BlogSettings.Instance.StorageLocation)
        + @"ControlsContent\MetaContent.xml";

    /// <summary>
    /// Hält den Namen des Cache-Schlüssel.
    /// </summary>
    private const string CacheKey = "MetaContent";

    #endregion Fields

    #region Methods

    protected void Page_Load(object sender, EventArgs e)
    {
        XmlDocument doc = null;

        if (HttpRuntime.Cache[CacheKey] != null)
        {
            // XmlDocument aus dem Cache lesen
            doc = (XmlDocument)HttpRuntime.Cache[CacheKey];
        }
        else
        {
            doc = new XmlDocument();
            doc.Load(this.storagePath);

            // in das Cache schreiben, mit Abhängigkeit zum XML-File
            HttpRuntime.Cache.Insert(
				CacheKey,
				doc,
				new CacheDependency(storagePath));
        }

        // HTML im Control erzeugen
        this.CreateControlContent(doc);
    }

    /// <summary>
    /// Erzeugt das HTML das im Literal dargestellt wird.
    /// </summary>
    /// <param name="doc">
    /// Das XmlDocument mit dem darzustellenden Inhalt.
    /// </param>
    private void CreateControlContent(XmlDocument doc)
    {
        XmlNodeList nodes = doc.SelectNodes(
								"//"
								+ CacheKey
								+ "//entry");
        StringBuilder sb = new StringBuilder();
        string content = null;
        char[] lineBreaks = new char[] { '\r', '\n', ' ' };

        foreach (XmlNode node in nodes)
        {
            if (node.InnerText.Contains("[root]"))
            {
                // root-Schlüssel aus dem XML durch den
				// tatsächlichen Pfad ersetzen
                content = node.InnerText
					.Replace("[root]", this.rootPath)
                    .TrimStart(lineBreaks)
                    .TrimEnd(lineBreaks);
            }
            else
            {
                content = node.InnerText
                    .TrimStart(lineBreaks)
                    .TrimEnd(lineBreaks);
            }

            sb.Append(content);
        }

        this.literalContent.Text = sb.ToString();
    }

    #endregion Methods
}

Ich hoffe mir in Zukunft einiges an neukompilieren und das kopieren des ganzen Projekts zu sparen.

Technorati-Tags: | | |

2007 Office System Document: Developer Posters

17.05.2009 13:32:00 | Ozgur Aytekin

Download these posters to learn more about the new features and enhancement to the 2007 Microsoft Office System.

* Developer Roadmap for the 2007 Microsoft Office System. Download this poster to view a developer roadmap for the 2007 Microsoft Office system programs, tools, services, and servers.

* Microsoft Office InfoPath 2007 Managed Object Model Poster. Download this poster and get a deep dive into some of the new and enhanced objects in the InfoPath 2007 managed object model.

* Developer Map for SharePoint Products and Technologies Poster. Download this poster and discover the developer roadmap for Microsoft SharePoint Products and Technologies.

http://www.microsoft.com/downloads/details.aspx?familyid=771aeb45-9d27-4d1f-acd1-9b950637d64e&displaylang=en

HP Recalls Notebook Computer Batteries Due to Fire Hazard

17.05.2009 13:06:00 | Ozgur Aytekin

WASHINGTON, D.C. - The U.S. Consumer Product Safety Commission and Health Canada, in cooperation with the firm named below, today announced a voluntary recall of the following consumer product. Consumers should stop using recalled products immediately unless otherwise instructed.

Name of Product: Lithium-Ion batteries used in Hewlett-Packard and Compaq notebook computers

Units: About 70,000

Importer: Hewlett-Packard Co., of Palo Alto, Calif.

Hazard: The recalled lithium-ion batteries can overheat, posing a fire and burn hazard to consumers.

Incidents/Injuries: The firm and CPSC are aware of two reports of batteries that overheated and ruptured, resulting in flames/fire that caused minor property damage. No injuries have been reported.

Description: The recalled lithium-ion rechargeable batteries are used with various HP and Compaq notebook computers. Models that can contain a recalled battery include:

http://www.cpsc.gov/cpscpub/prerel/prhtml09/09221.html

Bericht vom Office (VSTO) Community Day

17.05.2009 11:54:00 | Lars Keller

Der Office (VSTO) Community Day in Wien ist vorüber und wie Mario Meir-Huber schon berichtet hat, warIMG_3206 der Community Day ein voller Erfolg. Zusammen mit 23 anderen Teilnehmern (darunter sogar 2 Schweizer  und 1 Deutscher) haben wir uns am 8. Mai in den Räumen von Microsoft Österreich eingefunden.  Mario und ich hatten eine Agenda vorbereitet, welche neben viel Kuchen (;-)) auch viel Zeit für Networking und Gespräche über VSTO, OBA und .NET zuließ.

Auch während der Sessions wurde viel über das gezeigte diskutiert, so dass wir uns nach den Sessions hungrig in ein österreichisches Lokal zur Afterparty einfanden. Dort klang der Abend dann gemütlich aus.

DSC09747 Am nächsten Tag hat Mario uns länger angereisten noch einiges von Wien gezeigt. Wir sind auf den Fußstapfen von Sissi (Schloss Schönbrunn, Gloriette) gewandert und haben die Oper, das Rathaus, das Parlament, etc. gesehen. Einen leckeren Zwischenstopp haben wir beim Schnitzelwirt gemacht.

  prater

 

Es gab eine ordentliche Schnitzelportion zu verdrücken, die nicht jeder geschafft hat. Wohl gestärkt haben wir uns danach noch weitere Sehenswürdigkeiten angeschaut, u. a. das berühmte Prater Riesenrad, welches eine sehr schöne Aussicht über Wien bietet.

 

Uns hat der erste Office (VSTO) Community Day sehr viel Spaß gemacht und das durchweg positive Feedback macht uns Mut, spätestens nächstes Jahr den zweiten Office (VSTO) Community Day auszurichten.daumen_hoch

Auch das Kleingedruckte sollte man immer lesen

16.05.2009 22:32:25 | Rene Drescher-Hackel

Gewinnspiele sind sicherlich nett, wenn man denn etwas gewinnt. Den Sinn eines Gewinnspieles darf man mitunter nicht näher hinterfragen. So ist es auch bei folgendem Gewinnspiel. So las ich kürzlich im Weblog von Jan Welker, dass ein jemand etwas verlost, wenn man sich denn offenbart und seine drei liebsten Entwicklertool benennt und vielleicht auch noch zwei Sätze, warum dies so ist.

Meine Top 3 Entwickler-Tools

16.05.2009 17:34:08 | Jan Welker

Derzeit veranstaltet MSDN ein Gewinnspiel, bei dem jeder mitmachen kann, der einen Blog hat und sich zu seinen drei liebsten Entwickler Tools äußern möchte.
Super Idee dachte ich, es ist aber gar nicht so einfach sich auf drei Tools zu beschränken. Ich habe meine Top 3 Tools danach ausgewählt, wie oft sich sie nutze. Hier sind sie nun.

1.    Visual Studio 2008 Professional
Ich glaube zu diesem Produkt gibt es nicht viel zu sagen. Es ist für mich fast wichtiger als das OS :-)


2.    JetBrains ReSharper
Der ReSharper ist (gleich nach GhostDoc) das genialste Add-In für das Visual Studio. Richtig eingesetzt, kann es dem Entwickler sehr viel Arbeit abnehmen. Einen ganz besonderen Lerneffekt hatte ich, als die neuen Sprachfeatures von C# 3.0 rauskamen. Man hat Code geschrieben und er ReSharper hat einem sofort auf Knopfdruck gezeigt wie man es nun besser machen kann.


3.    Notepad++
Notepad++ ist ein freier Texteditor, den ich sehr oft nutze um Codedateien zu editieren, für die es sich nicht lohnt das Visual Studio anzuwerfen. Besonders beim Einsatz auf Servern oder in Zusammenarbeit mit FileZilla ist Notepad++ sehr zu empfehlen.


Wenn ich mir mehr als drei Tools aussuchen dürfte kämen sicher noch folgende hinzu (ungeordnet):


1. SQL Server Management Studio – SQL Server Verwaltung
2. EMS SQL Manager - ähnlich wie SQL Server Management Studio
3. GhostDoc - Automatisches Erstellen von XML Kommentaren
4. Sandcastle - zum Erzeugen von Codedokumentation
5. FileZilla - freies FTP Programm
6. Paint.NET - unverzichtbar für das Erstellen oder bearbeiten von Grafiken in der Webentwicklung
7. Firebug - ein Add-In für den Firefox um Webseiten auseinander zu pflücken
8. Wireshark - mit dem "Kabelhai" kann man Netzwerkverkehr mitlesen, es gibt nichts, was tiefer runter geht
9. .NET Reflector – dekompileiren von .NET assemblys
10. NUnit - Unittestframework
11. Smartassembly - ein guter Obfuscator
12. Subversion - Versionskontrolle
13. TortoiseSVN - Ein Client für Subversion

Internationalisierung von WPF Anwendungen – Folien von der dotnet cologne

16.05.2009 16:35:02 | Mathias Raacke

Auf der dotnet cologne habe ich gestern gezeigt, wie mehrsprachige Windows Presentation Foundation Anwendungen erstellt werden können. Hier sind die Folien dazu:

Internationalisierung von WPF Anwendungen – dotnet cologne

Microsoft Axum

16.05.2009 12:48:00 | Ozgur Aytekin

A .NET language for safe, scalable and productive parallel programming through isolation, actors and message-passing.

Axum is an incubation project from Microsoft’s Parallel Computing Platform that aims to validate a safe and productive parallel programming model for the .NET framework. It’s a language that builds upon the architecture of the web and the principles of isolation, actors, and message-passing to increase application safety, responsiveness, scalability and developer productivity. Other advanced concepts we are exploring are data flow networks, asynchronous methods, and type annotations for taming side-effects. Programmer's Guide: Use this simple and easy to follow programmer's guide to learn how to create safe, scalable, and responsive applications with the Axum language. Language Specification: A detailed specification of the Axum language.

Supported Operating Systems: Windows 2000; Windows 7; Windows Server 2003; Windows Server 2008; Windows Vista; Windows XP

http://www.microsoft.com/downloads/details.aspx?FamilyID=CFE70D5D-37AA-4C4C-8EEB-D4576C41BAA2&displaylang=en

Demos: A six-part series on getting the most out of SharePoint Designer 2007

16.05.2009 12:07:00 | Ozgur Aytekin

This six-part training demo series provides information on how power users can get the most from Office SharePoint Designer 2007.

* Powerful user interface and design tools
* Customize SharePoint sites
* Create and modify layout pages
* Create and modify rules-based workflow applications
* Build composite no-code SharePoint applications
* Visual Studio integration

http://office.microsoft.com/en-us/sharepointdesigner/HA102199841033.aspx

Getting Ideas Done

16.05.2009 07:59:01 | Norbert Eder

Der Weg von einfachen Ideen zu tatsächlich Umsetzbarem ist nicht einfach. So müssen Ideen erst geboren werden. Anschließend müssen sie verfeinert und schlussendlich zur Umsetzung gebracht werden. Ein langer Weg, nutzt man nicht diverse Hilfsmittel. In Erinnerung kommt hier Getting Things Done (GTD). Hierzu die Grundregel: GTD basiert auf...

Dokumentation eines Versuches :: “Local Remote” Debugging mit Visual Studio 2008 und IIS7

15.05.2009 16:43:39 | Jan Schenk

Szenario:
Ich möchte auf meiner lokalen Entwicklermaschine einen Webserver zur Verfügung haben, der sich so authentisch wie möglich verhält. Im besten Fall genauso wie meine Live-Umgebung, um ASP.NET Applikationen sicher zu testen, ohne eine Staging-Umgebung aufbauen zu müssen.
Der in VS2008 integrierte Development Server ist zwar nett, kann aber nicht funktionierende Dependencies auf DLLs nicht voraussagen.
Der lokale IIS Modus auch nicht, da er immer ein Virtuelles Verzeichnis anlegt, und so zB automatisch eine Applikation auf dem Web Server erzeugt.

In das Schlammassel geraten bin ich, indem ich blauäugig meine ASP.NET-Webapplikation in ein Unterverzeichnis auf einem bestehenden IIS6 deployen in-the-wild wollte. Was nicht funktioniert hat. Und ich wusste nicht warum.

Zuerst bekam ich gar keine aussagekräftige Fehlermeldung:
image

Sowas sieht man natürlich total gerne, bietet aber einen gewissen Schutz davor, dass Einstellungen in expliziteren Fehlermeldungen an mögliche Angreifer exponiert werden.

 

 

 

 

image

 

Also die Seite lokal auf dem Server aufgerufen, dank Remote Desktop-Verbindung kein Problem, hat man aber auch nicht immer.

“Der Typ “WebApplication3.Demo1.Default” konnte nicht geladen werden.”

Besser, aber weiter  bringt mich das auch noch nicht. Ich weiss zwar, dass ihm irgendetwas fehlt, aber wo das genau fehlt, keine Ahnung.

 

Ich nahm an, dass es irgendetwas mit dem Hochladen des Projektes in ein Unterverzeichnis zu tun haben musste, weil es regelmäßig im Hauptverzeichnis meines virtuellen Webservers funktionierte.

imageNachdem unser IIS-Evangelist mich aufgeklärt hat, dass das Verzeichnis in das ich hochlade zur Applikation erklärt werden muss, damit dort liegende DLLs geladen werden dürfen, hat es dann auch funktioniert.
 

 

 

 

Nachdem das Grundproblem gelöst war, aber nicht auszuschließen ist, dass diese oder ähnliche Situationen wieder auftreten, brauche ich eine Lösung.

Es gibt nichts ärgerlicheres, ein Projekt lokal zu entwickeln, um dann für die Anpassungen an die Live-Umgebung nochmal so lange zu brauchen. Große Applikationen wird man regelmässig in Zwischenreleases testen, kleine Applikationen genießen diesen Luxus seltener.

So kommt es, wie es kommen muss: Der Versuch eine lokale Staging-Umgebung an Visual Studio anzudocken, inklusive aller Features des Debuggings!

Weitere Voraussetzungen (auf der lokalen Maschine):image
-Visual Studio 2008
-IIS7 mit (via “Turn Windows features on and off”)
  *allen Features aktiviert und unter dem Punkt
  *IIS 6 Management Compatibility reicht es “IIS Metabase and IIS 6 config comp.” zu aktivieren.

 

 

 

 

 

Die Installation des IIS überprüfen wir kurz mit einem Aufruf von http://localhost.
Sollte keine Verbindung zu localhost möglich sein, muss der IIS noch konfiguriert oder gestarted werden. Run -> inetmgr

Im “Internet Information Services Manager” kurz inetmgr müssen wir uns eine Webseite anlegen, die für unser Projekt zur Verfügung steht:

Rechtsklick auf “Default Web Site” -> Add Application…

image

 

In den dort angegebenen physikalischen Pfad können wir unser Projekt per Post-Build-Command automatisch nach jedem Build kopieren, oder wir nehmen die einfache Variante und deployen über den Solution Explorer in einen Verzeichnispfad, wie links abgebildet.
 

 

 

Zurück in Visual Studio müssen wir noch die Einstellungen für den abweichenden Test-Server aktivieren:

image

 

Wir verwenden für diesen Versuch die Auswahl “Use Custom Web Server” aus den Project Settings (Rechtsklick auf das Projekt im Solution Explorer -> Properties):

 

 

 

 

 

Jetzt aber mal das Ganze ausprobiert. Breakpoint setzen, F5 drücken und sich hoffentlich über ein funktionierendes Debugging trotz ausgekoppeltem IIS freuen. Das Szenario ist sicherlich auch noch für andere Einsatzzwecke sinnvoll.

Falls ihr Probleme habt, habe ich oder ihr irgendwas vergessen. Ich tippe mal auf mich, schreibt mir einen Kommentar, wenn es bei euch nicht klappen sollte!

Viele Grüße,
jan

 

PS: Kudos an einen, der mit seinem ähnlichen Ansatz vor mir dran war:
http://blogs.iis.net/brian-murphy-booth/archive/2008/06/03/visual-studio-2008-unable-to-debug-asp-net-app-on-iis-7-0.aspx



tweetmeme_url = 'http://blogs.msdn.com/jansche/archive/2009/05/15/dokumentation-eines-versuches-local-remote-debugging-mit-visual-studio-2008-und-iis7.aspx';

Druckbetankung - Die Show :: Silverlight 3 Teil V

15.05.2009 10:14:51 | Jan Schenk

Und wieder einer mehr! Heute mit dem Thema Element-to-Element Binding:

Get Microsoft Silverlight

Im fünften Teil der Staffel Silverlight 3 aus der Serie "Druckbetankung - Die Show" geht es um das Binden von Elementeigenschaften an die Werte der Eigenschaften anderer Elemente. Das Sogenannte Element-to-Element Binding ist dafür verantwortlich, dass man in Silverlight mit Hilfe eines Sliders beispielsweise die Darstellungsgröße eines Textes verändern kann. An einem praktischen Beispiel zeigen Oliver Scheer und ich wie diese Technik verwendet wird.



tweetmeme_url = 'http://blogs.msdn.com/jansche/archive/2009/05/15/druckbetankung-die-show-silverlight-3-teil-v.aspx';

Visual Studio 2010 Beta 1 erscheint in drei Tagen

15.05.2009 09:06:22 | Lars Keller

Wie ich hier gerade gelesen habe, wird Visual Studio Beta 1 am 18 Mai für TechEd und MSDN Kunden erscheinen. Ab dem 20. Mai wird die Version zum Public Download stehen.

Juhu! :)

Link:



This weblog is sponsored by netcreate OHG.

Visual Studio 2010 Beta 1 erscheint in drei Tagen

15.05.2009 08:06:22 | Lars Keller

Wie ich hier gerade gelesen habe, wird Visual Studio Beta 1 am 18 Mai für TechEd und MSDN Kunden erscheinen. Ab dem 20. Mai wird die Version zum Public Download stehen.

Juhu! :)

Link:

Change the product key on Windows XP

15.05.2009 00:00:00 | Ozgur Aytekin

For most Microsoft Windows XP installs, you’ll never need to worry about the validity of the product key assigned to your copy of the OS. However, software does tend to get installed without authorization, even in the most carefully managed shops, and so from time to time you may need to reset the Windows XP product key.

For example, perhaps a user installed a pirated copy of XP but now wants to go legal. Maybe you’ve been hired by an organization that installed 100 pirated copies of XP but now has a legitimate volume-licensing key (VLK). Perhaps an end user purchased an additional retail license for XP but needs to use his original CD to install the software. When situations like these arise, changing XP’s product key is often the most practical-or only-solution.

http://blogs.techrepublic.com.com/window-on-windows/?p=672&tag=nl.e064

Expression Blend 3 und Team Foundation Server

14.05.2009 23:49:23 | Thomas Schissler

image    &  Untitled

Mit der Version 3 des Design-Tools für WPF und SilverLight, Expression Blend bekommt nun endlich die Unterstützung für den Team Foundation Server um die Source-Dateien in der Versionsverwaltung abzulegen. Hierzu muss ein entsprechendes Hotfix installiert werden. Dann hat man im Project-View zusätzliche Icons die den Auscheck-Status der Dateien anzeigt und im Kontext-Menü befinden sich entsprechende Kommandos für die Versionsverwaltung.

Hinweis: Damit das beim ersten Start auch wirklich funktioniert, muss man im Visual Studio den Team Explorer wenigstens einmal gestartet haben und dort den Server registrieren. Sonst bekommt man die Meldung "Unable to determine workspace" im Expression Blend.

image

Beim Checkin ist auch die sehr nützliche Funktion zur Verknüpfung von Workitems beim Checkin verfügbar.

image

Damit kann Expression Blend nun endlich in den Entwicklungs-Prozess von Software-Anwendungen integriert werden und steht nicht nur als separates Design-Tool bereit.

Visual Studio 2010 Beta 1 erscheint in drei Tagen

14.05.2009 23:06:02 | Lars Keller

Wie ich hier gerade gelesen habe, wird Visual Studio Beta 1 am 18 Mai für TechEd und MSDN Kunden erscheinen. Ab dem 20. Mai wird die Version zum Public Download stehen.

Juhu! :)

Link:

Wie man einen Evangelisten glücklich machen kann ! :-)

14.05.2009 16:26:14 | Oliver Scheer

Liebe Air Berlin,

ihr wisst wie man einen Developer Evangelisten so richtig glück machen kann :-)

Beim Flug von München nach Berlin hat mich der nette Flugbegleiter mit “Schokoherzen” überschütten. Ich steh auf diese Dinger :-) Jam, Jam. Da verzeiht man gerne mal die gefühlten 3 Wochen, die ihr mir schon an “Wartezeit” verschafft habt.

Danke :)

080

Foto von Steffen Ritter via Windows Mobile

Microsoft Tag - Macht das Spaß oder was?

14.05.2009 14:55:14 | Jan Schenk

Ich kenne Microsoft Tag ja schon ein paar Tage, hab es mir aber noch nie näher angeschaut. Irgendwas mit 2D-Barcodes, ziemlich schrägen Farben und einer Idee dahinter.

Heute hab ich das mal ausprobiert, das ist ja so schick, ich lach mich kaputt:

[Alle Tags verlinken auf die Übersichtsseite dieses Blogs, nicht wundern]

Versuch 1:

Jan's_BlogTag_200951413127

Ich hätts aber ohne Rand schicker gefunden,
Versuch 2:

Jan's_BlogTag_2009514131447

Bisschen unstylish, gehts auch besser?
Versuch 3, mit nur einem bisschen Aufwand und Powerpoint:

image

Ist das jetzt lustig oder was?

Und damit bin ich dann zufrieden gewesen:

Blog_Sidebar_EvangelistMitHut

Was macht man jetzt mit so nem Ding?

Die Applikation für Windows Mobile gibts hier: http://www.microsoft.com/tag/content/download/

Und auf dem Handy sieht das Ganze dann so aus:

_MG_9227

Ob man im Tag Reader den Link hinter dem Tag in einer E-Mail oder SMS versenden will, direkt im Browser öffnen oder einfach nur abspeichern möchte wählt man mit den drei Icons am oberen Bildrand oder im Menü aus.

Die Applikation fürs Mobile Phone, die übrigens echt winzig ist (205kB), gibt es unter http://gettag.mobi

Wie man selbst Custom Tags erstellt und so seine eigene Fratze oder was auch immer im Hintergrund haben möchte, liest man am besten unter http://www.microsoft.com/tag/content/overview/customtagguidelines.aspx
nach.

Ich muss los, weiter Tags erstellen!
jan

 



tweetmeme_url = 'http://blogs.msdn.com/jansche/archive/2009/05/14/microsoft-tag-macht-das-spa-oder-was.aspx';

VSTS 2010 Test Produkt SKU’s sind jetzt fixiert

14.05.2009 11:12:08 | Christian Binder

Im Bereich Testing gibt es mit VSTS 2010 eine Menge neue Features, hier sind die Produkte, wie man Sie dann lizensieren können wird.

Zum Überblick die neuen Bereiche:

image

Visual Studio® Team Test 2010

Support for the specialist tester including Web and load testing capabilities in addition to the ability to create automated test suites.  Executes in the Visual Studio environment for test professionals.  Comes with Microsoft Test and Lab Manager.

Visual Studio® Team Test 2010 Essentials

Support for the generalist tester including the ability to manage test cases and manual/automated test execution.  Installs as a scaled down product for easy access on test machines.

Visual Studio® Lab Management 2010

Support for creating virtualized environments with snapshot capabilities.  You can now execute your tests using the lab capabilities and save the state later for both development and test usage.

 

Mehr Info’s gibt’s hier

Viel Spass
Chris

Weeehaaaa - Azure CTP läuft auf Windows 7 RC

14.05.2009 11:07:24 | Jan Schenk

Hurra! Ich habe heute das Windows Azure CTP heruntergeladen und auf meinem Windows 7 RC installiert. Eigentlich bin ich davon ausgegangen, dass es, wie auf der Beta, nicht laufen wird, aber sieh an, die Development Fabric tut, als wäre nie irgendwas gewesen. Sehr schön. Auch die alten Projekte, das Beispiel von der Basta!Spring läuft.

Heute ist ein guter Tag, Developing for Windows Azure is back!

image



tweetmeme_url = 'http://blogs.msdn.com/jansche/archive/2009/05/14/weeehaaaa-azure-ctp-l-uft-auf-windows-7-rc.aspx';

Druckbetankung - Die Show :: Silverlight 3 Teil IV

14.05.2009 10:20:18 | Jan Schenk

Expression Blend 3: Animation, Storyboarding, Bewegungsabläufe und EasingFunctions

 

Get Microsoft Silverlight

 

Im vierten Teil unserer Staffel Silverlight 3 der Serie "Druckbetankung - Die Show" erklären Oliver Scheer und ich das Thema Animation und Storyboarding in Expression Blend 3. Ausserdem kommt das Thema "Easing Functions" zur Sprache. Easing Functions erleichtern dank vorgegebener Bewegungsabläufe die natürliche Animation von Objektbewegungen.

 

Viel Spass beim Anschauen und Anwenden!
jan



tweetmeme_url = 'http://blogs.msdn.com/jansche/archive/2009/05/14/druckbetankung-die-show-silverlight-3-teil-iv.aspx';

Silverlight Roadshow von TRIA

14.05.2009 09:15:23 | Oliver Scheer

Aus der Ankündigung von Tria

Mit Silverlight das Web entdecken – inkl. Ausblick auf Silverlight 3

Immer mehr Windows-Anwendungen werden auf das Web umgestellt. Für diese Entscheidung gibt es reichlich gute Gründe wie z.B. Zentralisierung und Verfügbarkeit. Doch leider bringt der Weg einige Hürden mit sich. So müssen sich die Windows-Entwickler auf mehrere Sprachen wie HTML/CSS und JavaScript spezialisieren. Zudem muss auf gängigen Browsern das gleiche Look & Feel sichtbar sein. Das kostet meist mehr Zeit und Nerven als erwünscht.
Mit Silverlight bietet Microsoft eine Alternative. Ganz einfach lassen sich hier bestehendes Know-how und die entsprechende Businesslogik auf andere Plattformen und Browser portieren, ohne dabei die gewohnte Entwicklungsumgebung verlassen zu müssen. Außerdem bekommt man gerade im wichtigen Bereich des Grafik-Designs ebenfalls ein sehr leistungsfähiges und flexibles Toolset an die Hand, das es erlaubt, völlig unkompliziert ansprechende Anwendungen zu gestalten.
Bei der TRIA IT-Insider Veranstaltung erhalten Sie tiefgreifende Einblicke in die vielseitigen Aspekte von Silverlight 2 - viele spannende Entwickler- und Designer-Demonstrationen inklusive.

Agenda
  • Allgemeines zu Rich Interactive Applications (RIA)
  • Einführung zu Silverlight 2
  • XAML-Basics
  • Managed API – Für die klassischen Webentwickler
  • Managed API – Für .NET Entwickler
  • Neues in Silverlight 3
  • Expression Blend 2
  • Neues in Expression Blend 3
  • Business Application mit Silverlight realisieren

Wir konnten Herrn Gregor Biswanger als Referent für die Silverlight Roadshow gewinnen.

Gregor Biswanger ist Consultant bei der Firma TRIA IT-consulting in München. Seine Schwerpunkte liegen im Bereich der .NET-Softwarearchitektur und den agilen Prozessen. Als freier Autor, Speaker und Microsoft CLIPler der Ingolstädter .NET Developers Group bringt er seine Beratererfahrung ein.

Lassen Sie sich dieses Wissen nicht entgehen und
melden Sie sich jetzt an!

URL Rewrite und der SiteMap-Provider (Request.PathInfo)

13.05.2009 19:03:00 | Wolfgang Kluge

Heute wollte ich einer meiner Seiten so umstellen, dass URL-Rewrite verwendet wird. Das ging auch recht schnell (entsprechende Links gesetzt und über Request.PathInfo die Parameter ausgelesen), allerdings stellte sich beim Testen dann heraus, dass ich ein Problem mit dem Menü hatte. Dieses konnte nun nicht mehr die aktuelle Seite markieren... Das Menü wird über eine Sitemap erstellt.

Verkürzt sieht der Code für das Menü so aus:

<asp:SiteMapDataSource ID="MenuSource" runat="server" SiteMapProvider="menu" />
<asp:Menu ID="mnu" runat="server" DataSourceID="MenuSource">

In meiner Sitemap sind die entsprechenden URLs eingetragen. Z.B.

<siteMapNode title="Startseite" url="~/default.aspx" />
<siteMapNode title="Projekte" url="~/projects.aspx"/>
<siteMapNode title="Eigene Projekte" url="~/projects.aspx/own"/>

Wird die Seite "/projects.aspx" aufgerufen, so wird der Eintrag "Projekte" entsprechend gekennzeichnet (mittels CSS-Class "AspNet-Menu-Selected"). Das hat auch noch mit "/projects.aspx?test=1" wunderbar funktioniert. Wird dagegen die Seite "/projects.aspx/test" aufgerufen, wird der entsprechende Eintrag nicht mehr gefunden, da mit Request.RawURL verglichen wird. Und da steht "/projects/test" drin.

Es ist also nur verständlich, dass der Provider den Eintrag nicht findet und dementsprechend kein Menüeintrag als aktiv gekennzeichnet werden kann. Erschwerend kommt hinzu, dass durchaus auch mal ein Treffer dabei sein kann (wie in diesem Beispiel beim Aufruf von "/projects.aspx/own").

Da hilft nur selbst den richtigen Eintrag suchen. Das ist natürlich nur nötig, wenn Request.PathInfo gefüllt ist.

protected override void OnInit( EventArgs e ) {
    base.OnInit( e );
    if( MenuSource.Provider.CurrentNode == null && !string.IsNullOrEmpty( Request.PathInfo ) ) {
        MenuSource.Provider.SiteMapResolve += new SiteMapResolveEventHandler( SiteMap_SiteMapResolve );
    }
}

private SiteMapNode SiteMap_SiteMapResolve( object sender, SiteMapResolveEventArgs e ) {
    SiteMapProvider provider = sender as SiteMapProvider;
    if( provider == null ) return null;
    return provider.FindSiteMapNode( e.Context.Request.AppRelativeCurrentExecutionFilePath );
}

Sobald MenuSource.Provider.CurrentNode == null ist und in Request.PathInfo etwas steht, wird auf das Ereignis SiteMapResolve des Providers reagiert. Dort wird nach einem Eintrag im aktuellen SiteMapProvider gesucht, der nur dem Pfad (ohne PathInfo-Angaben) entspricht.

Wenn man das Menü innerhalb eines Controls hat (wo es hingehört *g*), muss der Code auch nur 1x angegeben werden.

Wie komme ich an ein VSTS 2008 Test-Image?

13.05.2009 17:50:00 | Christian Binder

Es gibt aktuell 2 Möglichkeiten an eine Virtuallisierte VSTS2008 Installation zu kommen:

1) Brian Randell hat für Microsoft Trail Images bereitgestellt, die Ende dieses Jahr auslaufen.
Christian Jacob hat auf seinem Blog ein Eintrag publiziert, der alles enthält,was man dazu wissen muss :-)

2) Auf dem VSTS Information Day, kann man das Demo Image bekommen, mit dem alle Demos gezeigt werden.
Auf diesem Image sind noch einige Partner Tools installiert.

Viel Spass

Chris

Mitmachen: Grillfete für das dotnet-forum.de zu gewinnen

13.05.2009 16:05:46 | Jan Welker

Microsoft Deutschland veranstaltet derzeit den Programmierwettbewerb "Empower your Site" in dem es um Web Slices und Schnellinfos für den Internet Explorer 8 geht.
Dabei gibt monatlich tolle Preise zu gewinnen.

Wer im Namen des dotnet-forum.de teilnimmt, kann neben tollen Preisen auch eine Grillfete für das gesamte Forum gewinnen.

Alle Informationen und Diskussionen rund um diesen Wettbewerb gibt es natürlich im Forum:

http://dotnet-forum.de/forums/p/1531/5557.aspx#5557

Viel Spaß beim Entwickeln!

Architecture.NET Open Space 2009

13.05.2009 15:55:00 | Sebastian Jancke

Architecture.NET Open Space

Am 5. und 6. Juni veranstalten SOPTIM, Die Software Architekten und itemis in Düsseldorf einen Open Space zum Thema "Erprobte Konzepte für Unternehmensanwendungen in .NET".

Der Open Space soll Architekten aus der .NET- und Javawelt zusammen bringen um gemeinsam wachsen zu können. Mehr Informationen und die Anmeldung gibt es unter http://archnet.mixxt.de

Auslöser für die Idee dieser Veranstaltung waren einige gute Gespräche auf dem .NET Open Space 2008 in Leipzig. Dort (und auch sonst) zeigte sich, das eine spezielle Diskussionsplatform für Architektur jenseits der Blaupause nötig ist.

Mehr dazu auch auf Twitter (#archnet09)

Bereits über 30 Anmeldungen zum .Net Open Space Süd 2009

13.05.2009 15:19:20 | Thomas Schissler

.NET Open Space vom 11.07. bis 12.07.2009 in Ulm

Nach rund einer Woche ist bereits die Hälfte der Plätze beim .Net Open Space Süd 2009 vergeben. Stand heute haben wir 33 Anmeldungen und es sind ein paar hochkarätige .Net Experten darunter. Wer also noch dabei sein will, sollte nicht zögern, sondern sich gleich auf die Teilnehmerliste eintragen.

Wir sehen uns am 11/12. Juli in Ulm!

Problem beim Anlegen eines Team-Projektes

13.05.2009 15:15:29 | Thomas Schissler

Auf einer neuen TFS-Instanz hatte ich eben ein seltsames Phänomen. Ich konnte das erste Team-Projekt problemlos anlegen. Dazu verwendete ich einen Team_Explorer mit einer Visual Studio Shell Installation auf dem Server. Als ich allerdings das zweite Projekt anlegen wollte, kam eine Fehlermeldung, dass mir die Berechtigungen auf den Reporting Services fehlen. Seltsam nur, dass es beim ersten Projekt geklappt hat und dazwischen nichts geändert wurde. Mit einem kleinen Trick konnte ich dann doch ein zweites Projekt anlegen, nämlich indem ich alle Projekte aus dem Team-Explorer entfernt habe. Dann konnte ich wieder genau ein neues anlegen.

Die eigentliche Lösung für das Problem brachte aber die Installation des SP1 auf dem Server. Dabei ist zu beachten, dass das SP1 für den Team-Explorer nicht Bestandteil des Team Foundation Server SP1 ist, sondern des Visual Studio SP1. Also das Visual Studio SP1 installiert und danach lief es wunderbar.

VSTO ClickOnce Installationsproblem von auf Windows 7 RC erstellten Projekten

13.05.2009 15:02:51 | Lars Keller

Projekte die auf einem Windows 7 RC System erstellt wurden, verursachen Installationsprobleme auf Vista & XP Systemen. Saurah Bhatia hat dazu einen Blogpost erstellt, welcher das Problem genauer beschreibt und eine Lösung dazu bereit hält.

Kurz: Das Problem ist, dass unter Windows 7 RC die Datei “FrameworkList.xml” im .NET Framework fehlt und darum beim Installieren auf einem Vista oder XP folgende Fehlermeldung erscheint “The required Version of the .NET Framework is not installed on this computer”.

Link:



This weblog is sponsored by netcreate OHG.

19.05.09 .NET Developer Group Braunschweig – AntMe Contest!

13.05.2009 14:36:37 | Lars Keller

dotnet-bs_banner_blog

Unser 32 User Group Treffen der .NET Developer Group Braunschweig findet am 19.05.09, ab 19:00 Uhr in Kilian's Raffinerie statt.

Der geplante Vortrag über NHibernate von Kai Gloth fällt aus. Statt dessen werden wir unseren jährlichen AntME-Contest veranstalten.  Bitte bringt einen Laptop mit. AntMe kann man hier herunter runterladen.

Weitere Informationen unter www.dotnet-braunschweig.de.

Wie immer ist jeder herzlich willkommen!



This weblog is sponsored by netcreate OHG.

MSDN erweitert Foren-Angebot

13.05.2009 14:28:31 | Oliver Scheer

Um knapp 30 Diskussionsforen hat MSDN Deutschland sein deutschsprachiges Online-Angebot erweitert. Die neuen Foren ergänzen die bereits seit 2006 verfügbaren deutschsprachigen MSDN-Foren rund um die ’Visual Studio Express’-Produkte und decken sämtliche relevanten Microsoft Entwickler-Werkzeuge und -Technologien ab. Das Spektrum reicht von A wie ASP.NET oder Azure über Themen wie „Parallele Programmierung“ und „Sicherheit“ bis hin zu den Sprachen Visual Basic, C++ und C#. Die neue Kommunikationsplattform basiert auf dem Community-Prinzip „Anwender helfen Anwendern“ und soll Entwicklern den Info-Austausch untereinander erleichtern. Mitarbeiter von MSDN Deutschland als Teil der Community sind in den Foren im Rahmen ihrer jeweiligen Themenschwerpunkte zum Teil aktiv, ein technischer Support kann dort allerdings nicht angeboten werden. Wer gerne und viel auf Twitter unterwegs ist, kann auch gerne die Foren-Aktivitäten über http://twitter.com/MSDN_Foren verfolgen. Ich lade Sie ein, stellen Sie Fragen, tragen Sie Ihre Lösungen oder vielleicht gar Probleme der Community vor. Es sind bereits eine ganze Reihe von engagierten Foren-Usern, MVPs und Kollegen aktiv dabei, Fragen zu beantworten, Tipps zu geben und ihr Know-how mit der Community zu teilen. Jetzt besuchen: MSDN Foren

VSTO ClickOnce Installationsproblem von auf Windows 7 RC erstellten Projekten

13.05.2009 14:02:51 | Lars Keller

Projekte die auf einem Windows 7 RC System erstellt wurden, verursachen Installationsprobleme auf Vista & XP Systemen. Saurah Bhatia hat dazu einen Blogpost erstellt, welcher das Problem genauer beschreibt und eine Lösung dazu bereit hält.

Kurz: Das Problem ist, dass unter Windows 7 RC die Datei “FrameworkList.xml” im .NET Framework fehlt und darum beim Installieren auf einem Vista oder XP folgende Fehlermeldung erscheint “The required Version of the .NET Framework is not installed on this computer”.

Link:

19.05.09 .NET Developer Group Braunschweig – AntMe Contest!

13.05.2009 13:36:37 | Lars Keller

dotnet-bs_banner_blog

Unser 32 User Group Treffen der .NET Developer Group Braunschweig findet am 19.05.09, ab 19:00 Uhr in Kilian's Raffinerie statt.

Der geplante Vortrag über NHibernate von Kai Gloth fällt aus. Statt dessen werden wir unseren jährlichen AntME-Contest veranstalten.  Bitte bringt einen Laptop mit. AntMe kann man hier herunter runterladen.

Weitere Informationen unter www.dotnet-braunschweig.de.

Wie immer ist jeder herzlich willkommen!

Druckbetankung - Die Show :: Silverlight 3 Teil III

13.05.2009 10:19:48 | Jan Schenk

Der dritte Teil unserer Silverlight 3 Staffel der Serie Druckbetankung befasst sich mit der Out-of-Browser-Funktionalität, die in Silverlight 3 neu hinzugekommen ist. Diese ermöglicht es dem User, eine Web-Silverlight-Applikation auf dem Desktop bzw. lokal auf dem PC abzulegen, und von dort wie gewohnt zu verwenden, ohne dass ein Browser involviert ist.
Oliver Scheer und ich zeigen, wie man seine Applikation Out-of-Browser-Ready macht, und welche zusätzlichen Möglichkeiten der Programmierung dadurch möglich werden. Wir zeigen, wie man der Applikation beibringt zu wissen, ob sie im Browser oder lokal läuft und wie man den Onlinestatus überprüft.

 

Get Microsoft Silverlight



tweetmeme_url = 'http://blogs.msdn.com/jansche/archive/2009/05/13/druckbetankung-die-show-silverlight-3-teil-iii.aspx';

Test-Driven Development & Behavior-Driven Development Roadshow

13.05.2009 09:20:00 | Gregor Biswanger

Gemeinsam mit Robert Walter ziehe ich mit Ihm seit März 2009 durch die .NET User Groups in Deutschland. Dabei geht es um die brandheißen Themen: Test-Driven Development und Behavior-Driven Development.

Test Driven Development (kurz TDD) ist eine Vorgehensweise die verspricht die Qualität von Software-Produkten zu verbessern. Im Wesentlichen geht es dabei darum, dass die Tests zur Anwendung vor der Implementierung der Anwendung erstellt werden. Dies führt unter anderem dazu, dass man aus dieser Perspektive eher das spezifizierte Verhalten beim Erstellen der Tests im Fokus hat.

Durch eine Erweiterung von TDD mittels Behavior-Driven Development (kurz BDD) werden Tests strukturierter nach den Anforderungen aufgebaut. Hier wird unverkennbar der Kern von TDD für qualitative Softwareprojekte genutzt, und durch die Erweiterung von BDD die funktionalen Anforderungen in den Mittelpunkt gestellt.

Weitere Veranstaltungen

Die kommenden Termine finden bei folgenden User Groups statt:

15.07.2009

.NET User Group Dresden

16.07.2009

.NET User Group Hamburg

Rückblicke

Die folgenden Termine haben bereits stattgefunden:

26.06.2009

Neu-Ulmer Test-Engineering-Day 2009

19.05.2009

.NET Developers Group München

14.05.2009

.NET User Group Karlsruhe

19.03.2009

.NET Developers Group Ulm und Oberschwaben

17.11.2008

Ingolstädter .NET Developers Group

Geplante User Groups

Für folgende User Groups werden noch weitere Termine folgen:

.NET-Stammtisch Konstanz-Kreuzlingen

Weitere User Groups die an diesem Vortrag Interesse haben, schreiben mir bitte eine E-Mail an: gregor.biswanger@web-enliven.de

Verlosung

Auf jeder Veranstaltung gibt es eine Lizenz zu gewinnen von: CrashTest.Net.

CrashTest.Net ist ein Testwerkzeug, das explizit auf .NET-Projekte zugeschnitten ist und eine bisher für das .NET-Umfeld ungenutzte Testmethode verwendet. Bei der Testmethode handelt es sich um Fuzzing. Es hilft Entwicklern ihre Software zu optimieren und zeigt ihnen unbedachte Fälle, die später beim Endnutzer fatale Folgen haben können. Ohne notwendige Einstellungen führt es vollautomatisch eine sehr große Anzahl von Tests an ihrer .NET-Assembly durch. Es versucht alle Methoden mit sehr vielen Parametern auszuführen. Und all das, ohne vorher komplizierte Einstellungen zu vorzunehmen oder im Quellcode irgendwelchen Test-Code zu implementieren. Fuzzing birgt ein sehr großes Potential. Dieses Potential wird der .NET-Welt mit CrashTest.Net einen entscheidenden Schritt näher gebracht.

Wer auf der Veranstaltung keine Lizenz ergattern konnte, hat hier noch einmal die Möglichkeit eine zu Gewinnen. Einfach ein formloses Kommentar schreiben, obwohl mich Feedback zum Blog allgemein immer Interessieren. Teilnahmeschluss ist Freitag der 03.07.2009. Bitte die E-Mail-Adresse nicht vergessen (wird aber nicht öffentlich angezeigt), mehr nicht - den Rest klären wir dann per E-Mail im Fall dessen. Der Rechtsweg ist ausgeschlossen. Je Gewinnspiel-Teilnehmer ist eine Einsendung zulässig. Mehrfach-Einsendungen eines Teilnehmers werden nicht berücksichtigt. Die Gewinner werden unter allen Einsendern der richtigen Lösung durch Ziehung ermittelt. Eine Ausbezahlung der Preise in bar ist nicht möglich. Ich übernehme keine Haftung für verloren gegangene, beschädigte, fehlgeleitete oder verspätete Teilnahmen sowie für irgendwelche technische Schwierigkeiten.

Und jetzt viel Spaß und freue mich auf die kommenden Veranstaltungen.

Druckbetankung – Die Show :: Silverlight Teil IV

13.05.2009 09:16:00 | Oliver Scheer

Der vierte Teil unserer Silverlight-Serie "Druckbetankung - Die Show" dreht sich um das Aussengerüst einer Silverlight Applikation, und wie dieses dazu gebracht werden mit der eingebetteten Anwendung zu kommunizieren.
Oliver Scheer und ich sprechen über die Parameterübergabe aus der HTML-Seite in Silverlight. Da gibt es einiges zu beachten und viel zu entdecken. So lässt sich am Beispiel unseres RSS-Readers die initial verwendete RSS-Url über die HTML-Seite übergeben, und abhängig davon weitere Elemente im XAML-Code ein- oder ausblenden.

Get Microsoft Silverlight

Mehr Druckbetankungen gibt es unter: http://channel9.msdn.com/posts/kitano/

MVVM (Model View, View Model) Pattern für WPF

13.05.2009 07:24:50 | Daniel Schädler

Nach einigem hin und her suchen bin ich dann doch darauf gestossen. Es gibt ein Template für Visual Studio 2008, mit dem man ein MVVM-Pattern anlegen kann und die WPF Applikation gleich so abgelegt ist, dass es nach dem Pattern erstellt werden kann.

Artikel zu WPF Pattern vom MSDN Magazine und der Download-Link von der Future Site von WPF auf Codeplex. Mein erstes Projekt mit diesem Pattern wird ein einfacher RSS-Reader sein. Ich hoffe in Zukunft, dass es auch für Silverlight ein entsprechendes Visual Studio Template geben wird.

VSTO ClickOnce Installationsproblem von auf Windows 7 RC erstellten Projekten

13.05.2009 05:02:05 | Lars Keller

Projekte die auf einem Windows 7 RC System erstellt wurden, verursachen Installationsprobleme auf Vista & XP Systemen. Saurah Bhatia hat dazu einen Blogpost erstellt, welcher das Problem genauer beschreibt und eine Lösung dazu bereit hält.

Kurz: Das Problem ist, dass unter Windows 7 RC die Datei “FrameworkList.xml” im .NET Framework fehlt und darum beim Installieren auf einem Vista oder XP folgende Fehlermeldung erscheint “The required Version of the .NET Framework is not installed on this computer”.

Link:

19.05.09 .NET Developer Group Braunschweig – AntMe Contest!

13.05.2009 04:36:03 | Lars Keller

dotnet-bs_banner_blog

Unser 32 User Group Treffen der .NET Developer Group Braunschweig findet am 19.05.09, ab 19:00 Uhr in Kilian's Raffinerie statt.

Der geplante Vortrag über NHibernate von Kai Gloth fällt aus. Statt dessen werden wir unseren jährlichen AntME-Contest veranstalten.  Bitte bringt einen Laptop mit. AntMe kann man hier herunter runterladen.

Weitere Informationen unter www.dotnet-braunschweig.de.

Wie immer ist jeder herzlich willkommen!

Vortrag bei der .Net Developer Group Ulm

12.05.2009 21:15:05 | Thomas Schissler

clip_image001

 

Letzte Woche habe ich bei der .Net Developer-Group Ulm einen Vortrag zum Thema “10 Gründe warum Software-Projekte fehlschlagen – und was hilft ALM"?” gehalten. Es gab zu diesem Vortrag eine reihe interessanter Diskussionen. Die Folien gibt’s hier zum herunterladen:

Vortrag auf der TeamConf

12.05.2009 21:04:56 | Thomas Schissler

Bei der TeamConf handelt es sich um eine Konferenz mit dem Focus auf Themen rund um VSTS und TFS. Da durfte ich natürlich nicht fehlen ;-)

Leider war mein Vortrag der letzte der Konferenz und dazu noch parallel zum VSTS 2010 Vortrag von Christian Binder. Dennoch fand sich eine interessierte Runde zum Thema “Requirements Management in leichtgewichtigen Prozessen” zusammen. Hier noch meine Folien zum Download:

Download File - TFSRequirementManagement

F# ist dasThema beim nächsten Treffen der .Net Developer-Group Ulm

12.05.2009 20:44:00 | Thomas Schissler

clip_image001

Termin: 19.05.2009 - 18:00 Uhr

Veranstaltungsort:

In den Räumen der artiso solutions GmbH Anfahrtsbeschreibung unter www.artiso.com

Referent:


Pedro Castelo Branco Lourenço

Vortrag:


Introducing F#

As Developers, when we see a given demand, we always think on how to solve on a very imperative way (first do this, then this, finally that). Why not starting thinking on a more functional level, where we do not need to break one given task into so small imperative steps? This session will introduce Microsoft's new language F#, a typed functional programming language for the .NET Framework that combines the succinctness, expressivity and compositionality of functional programming with the runtime support, libraries, interoperability, tools, and object model of .NET. We'll take a look at why Microsoft is adding the language to the suite of those available on .NET and at some of simple language constructs that make programming in F# a dream.

Pedro Castelo Branco Lourenço is a Brazilian guy that moved into Germany to work as Innovation manager at Savcor IT GmbH(http://www.savcor.de), MVP (Microsoft Most Valuable Professional) on C#, Microsoft Certified Professional Developer(Web & Windows), independent consultant to companies that build software using .Net platform, speaker in some well known technical events such as Tech Ed 2005, 2008(Brazil), Community Days, Developers On The Road, União.Net. Bachelor degree in computer science, member of moderator’s team of .Net Raptors community (www.dotnetraptors.com.br). During his free-time he is studying German to make his family life easier!

Exteropsyche, Neopsyche, Archeopsyche

12.05.2009 20:41:00 | Ozgur Aytekin

* Ob er so fühlt, denkt oder handelt, wie er es von anderen Autoritätspersonen früher (Eltern) oder gegenwärtig übernommen hat (Eltern-Ich-Zustand = EL), Eric Berne: Exteropsyche.

* Ob er so fühlt, denkt oder handelt, wie er es in der Gegenwart nach den Gesichtspunkten der Situation und der Realität selbst bewusst entschieden hat (Erwachsenen-Ich-Zustand = ER), Eric Berne: Neopsyche.

* Ob ein Mensch so fühlt, denkt oder handelt, wie er es als Kind auf Grund seiner Lebenssituation unbewusst oder bewusst selbst beschlossen hat zu tun (Kind-Ich-Zustand = K), Eric Berne nannte dies Archeopsyche.

http://de.wikipedia.org/wiki/Exteropsyche

SharePoint Search – How to create a fully functioning Search Center: Part 2

12.05.2009 19:13:00 | Ozgur Aytekin

his post builds upon Part 1 of how to create a fully functioning SharePoint Search Center. In Part 1 I aimed to explain how to plan a Search Center. This post (Part 2) aims to explain how to:

1. Create a Search Center

2. Create a Search Center tab

3. Create a search query page

4. Create a results page

5. Configure a search query page (to associate it with the tab etc)

6. Configure a search results page (to associate it with the tab etc)

7. Configure the Advanced Search page

http://blogs.msdn.com/uksharepoint/archive/2009/05/12/sharepoint-search-how-to-create-a-fully-functioning-search-center-part-2.aspx

SharePoint Search – How to create a fully functioning Search Center: Part 1

12.05.2009 19:12:00 | Ozgur Aytekin

Within Microsoft Office SharePoint Server 2007, there exists the concept of a ‘Search Center’; a type of SharePoint site that can be created to help users find content. As one might expect, this site includes a search box, search page(s) and results page(s). However, unlike other SharePoint sites, a Search Center also includes Search Tabs, much like popular internet search engines, that allow users to narrow their searches. It is from a SharePoint Search Center that users can search for content stored in SharePoint sites, integrated Line Of Business applications (such as SAP) and federated sources (federation requires the SharePoint Infrastructure Updates).

http://blogs.msdn.com/uksharepoint/archive/2009/05/08/sharepoint-search-how-to-create-a-fully-functioning-search-center-part-1.aspx

Announcing SharePoint Server 2010 Preliminary System Requirements

12.05.2009 17:56:00 | Ozgur Aytekin

1. SharePoint Server 2010 will be 64-bit only.
2. SharePoint Server 2010 will require 64-bit Windows Server 2008 or 64-bit Windows Server 2008 R2.
3. SharePoint Server 2010 will require 64-bit SQL Server 2008 or 64-bit SQL Server 2005.

http://blogs.msdn.com/sharepoint/archive/2009/05/07/announcing-sharepoint-server-2010-preliminary-system-requirements.aspx

Der größte TouchScreen Europas

12.05.2009 17:54:53 | Oliver Scheer

Gestern hat unsere XTOPIA Kompakt Tour durch Deutschland in Köln halt gemacht. Dort fand die Veranstaltung in unserem neuen Office direkt am Rhein statt. Das Microsoft Technology Center in der 5. Etage sieht eher aus wie ein cooler Lounge-Club … mit Abhängdachterasse, als ein Repräsentationsraum von Microsoft.

In einem der Präsentationsräume gibt es Europas größten Touchscreen … wow. Macht das Spaß, hab direkt meine Lieblingsanwendungen auf einer Auflösung von ca. 3200 Punkte x ca. 1200 Punkte laufen gelassen. Gefühlte 4x2 Meter. Wow.

Schön das meine Anwendungen sich dank relativer Positionierung alle automatisch an die Größe anpassen können, denn mit sooooo einer Größe habe ich wirklich nicht gerechnet.

olivers_traum

Tipp: Windows 7 Blog [powered by MVPs]

12.05.2009 16:50:00 | Kay Giza

Gerne möchte ich heute auf einen sehr interessanten Windows 7-Weblog hinweisen. Der Mitte Apriln ins Leben gerufene "Windows 7 Blog" ist eine Gemeinschaftprojekt von verschiedenen MVPs. Ziel ist es, so die Betreiber des Weblogs, kurze aber hochwertige Artikel und News rund um Windows 7 in gekürzter Form zur Verfügung zu stellen.
Abgerundet wird das Ganze mit viele Postings rund um das Thema SEO Know-How, um den Nutzen immer weiter zu maximieren.
Zurzeit nehmen
5 MVPs an dem Gemeinschaft-Weblog rund um Windows 7 teil:

Gut gemacht, gute Inhalte, gute Community: http://www.ms-windows-seven.de/

PS: Weitere interessante Windows 7-Blogs von Microsoft: http://blogs.technet.com/sieben/ | http://blogs.msdn.com/e7/



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 Service Whitepapers & Identity Developer Training Kit

12.05.2009 15:48:56 | Robert Mühsig

Druckbetankung - Die Show :: Silverlight 3 Teil 2

12.05.2009 10:51:36 | Jan Schenk

Navigation Templates bzw. DeepLinking ist das Thema unseres zweiten Teils der Silverlight 3 Druckbetankung. Oliver Scheer und ich plaudern über die Neuerungen in Silverlight 3 und das gehört definitiv dazu.

 

Get Microsoft Silverlight

 

Channel9-Post:
Im zweiten Teil unserer Staffel Silverlight 3 der Serie "Druckbetankung - Die Show" (ihr seht, wir haben uns Gedanken gemacht, wie das richtige Wording aussehen soll (= ) seht ihr die Navigation Templates, die neu in Silverlight 3 sind. Navigation Templates vereinfachen das Konzept der Seitentransparenz in Silverlight, so dass einzelne Inhalte einer Silverlight-Applikation auch per URL angesteuert werden und von Suchmaschinen so direkt indiziert werden können. Wie das Ganze funktioniert und wo noch weitere Vorteile liegen erfahrt ihr im Video!
Viel Spass!



tweetmeme_url = 'http://blogs.msdn.com/jansche/archive/2009/05/12/druckbetankung-die-show-silverlight-3-teil-2.aspx';

Xtopia [kompakt] - Roadshow im Kölner Office

12.05.2009 10:38:30 | Jan Schenk

Gestern abend war die Xtopia [kompakt] im Microsoft Office in Köln. Mein erster Besuch im neuesten Bürogebäude von Microsoft Deutschland. Ich muss sagen, mir gefällts. Der Bau von aussen ist sehr ästhetisch, innen würde ich mich als Besucher erst mal nicht zurecht finden, aber zumindest den Empfang findet man irgendwie ;-).

Im 6. Stock des Offices ist das Microsoft Technology Center, das MTC, und das Executive Business Center, das EBC. Dort fand auch die Roadshow statt, die nicht ganz so gut besucht war, wie die anderen Locations. Hat der Stimmung aber keinen Abbruch getan.

UI_uiuiui

Eindrucksvoll im Kölner MTC ist der riesige hochauflösende Screen am Ende des Raumes. dreitausendschlagmichtot-Pixel auf zweitausendirgendwas. Sehr nett, leider sehr schwer zu bedienen, wenn man seinen eigenen Rechner anschließt, aber das wird sich noch ändern…

Gewohnt gute Inhalte, interessante Teilnehmer und einiges an Spaß war mein Eindruck, den ich als “Selbst-Redner” mitgenommen habe. Ich würde jederzeit wieder mitmachen, leider war das meine letzte Etappe der Xtopia [kompakt], die verbleibenden zwei Stationen (Berlin und Frankfurt) übernimmt wieder der Kollege Frank Maenz.

Um die Präsentation meiner Session zu erhalten, mailt mich bitte an: jan.schenk _ AT _ microsoft.com oder schaut ein bisschen weiter unten in ´meinem Blog, da habe ich schonmal über den Xtopia[kompakt]-Vortrag in München gebloggt.

Have fun with Windows Live!



tweetmeme_url = 'http://blogs.msdn.com/jansche/archive/2009/05/12/xtopia-kompakt-roadshow-im-k-lner-office.aspx';

Druckbetankung – Die Show :: Silverlight Teil III

12.05.2009 09:09:00 | Oliver Scheer

In Teil 3 unserer Serie "Druckbetankung - Die Show" geht es um Beautifying, Templates, Ressourcen, Styling und Skinning. Oliver Scheer und ich haben in den vorangegegangenen Webcasts bereits eine fertige Anwendung aus Entwicklersicht gebaut, denn alle wichtigen Funktionen sind integriert. Aber so richtig benutzbar und schön ist das Ganze noch nicht. Also nochmal ran mit Expression Blend und die Anwendung mit eigens entworfenen Buttons, einem animierten User Control für die Zeit des Nachladens und ein paar Farbverläufe sollten auch noch drin sein. Danach sieht die Anwendung aus wie aus dem Ei gepellt, wenn auch stellenweise etwas arg 70er.
Zwischendurch wird auch nochmal der Entwickler in uns gefordert und Visual Studio für die Hintergrund-Logik des User Controls bemüht.

Get Microsoft Silverlight

Mehr Druckbetankungen gibt es unter: http://channel9.msdn.com/posts/kitano/

Druckbetankung - Die Show Silverlight 3 Teil I

11.05.2009 15:57:32 | Jan Schenk

Get Microsoft Silverlight

Wir gehen in eine neue Runde Druckbetankung!

Oliver Scheer und ich haben die nächste Runde Druckbetankung eingeläutet und bei dieser dreht sich alles um Silverlight 3. Im ertsen Teil, den ihr oben im eingebetteten Player seht, geht es um die Installation und was man alles beachten sollte, wenn man mit der Silverlight 3 Entwicklung durchstarten will.

Viel Spaß und gute Unterhaltung,
jan

 

PS: Wie immer freue ich mich über Feedback und der nächste Teil wird nicht lange auf sich warten lassen! Versprochen!



tweetmeme_url = 'http://blogs.msdn.com/jansche/archive/2009/05/11/druckbetankung-die-show-silverlight-3-teil-i.aspx';

Druckbetankung – Die Show :: Silverlight Teil II

11.05.2009 13:06:00 | Oliver Scheer

Im zweiten Teil der Silverlight-Serie "Druckbetankung - Die Show" bauen Oliver Scheer und ich einen RSS-Reader in Expression Blend 2 SP1 und Visual Studio. Was muss so ein Silverlight RSS-Reader können? Und wie kann man das mit wenig Code umsetzen?
Am Ende haben wir ein funktionales, wenn auch nicht unbedingt schönes Grundgerüst mit Cross-Domain-Zugriff per WebService aus der Windows Communication Foundation (WCF), interaktiver Suche per Language Integrated Query (LINQ) und Datenbindung der Ergebnisse an eine ListBox.

Get Microsoft Silverlight

Mehr Druckbetankungen unter: http://channel9.msdn.com/posts/kitano/

Mein Kampf … mit Windows 7 RC

10.05.2009 13:36:24 | Gordon Breuer

(c) Photocase.com Eigentlich hätte alles ganz einfach sein müssen. Am 05. Mai das Image für die 32-Bit und 64-Bit Version des neuen Release Candidate von Windows 7 herunterladen, zu Hause kontrollieren ob alle Daten ordnungsgemäß gesichert oder synchronisiert wurden, die neue Version aufspielen und sich über die vielen neuen Features und Bugfixes freuen. Eigentlich…

In der Nacht von Mittwoch auf Donnerstag legte ich die gebrannte DVD mit Windows 7 RC 64-Bit in das Laufwerk ein und startete die Installation. Da alle wichtigen Daten entweder per Live Mesh in-the-cloud synchronisiert waren oder auf einer anderen Festplatte gespeichert wurden löschte ich kurzerhand die bisherige Systempartition mit der Windows 7 Beta. Doch als ich die nun leergefegte Festplatte als Ziel zur Installation auswählen wollte, verweigerte sich mir das Setup mit einer nichtssagenden Fehlermeldung. Das Problem hatte ich bereits bei der Installation von Vista und der Win7-Beta und es kostete mich damals rund zwei Stunden Recherche und Testen. Dafür kannte ich die Lösung dieses mal bereits:

Problem: Windows Vista / Windows 7 lässt sich nicht auf einer SATA-Festplatte installieren, wenn noch eine IDE-Festplatte mit höherer Priorität angeschlossen ist.

Lösung: Im Bios finden sich meist auf dem Eingangsbildschirm die Einstellungen für alle IDE- bzw. SATA-Ports. Hier wird meist automatisch eingetragen, welches Gerät jeweils angeschlossen wird. Sollte der beschriebene Fehler auftreten können die Festplatten, welche sich an einem IDE-Port befinden, einfach deaktiviert werden. Nach der Installation können die Ports wieder auf automatische Konfiguration umgestellt werden, Windows Vista bzw. Windows 7 erkennen die Festplatten jedoch auch bei deaktivierten Bios-Einträgen.

Nach dieser kleinen Hürde ging der Rest der Installation dann gewohnt zügig: Nach knapp zwanzig Minuten waren alle Kopier- und Konfigurationsarbeiten abgeschlossen und ich befand mich zum ersten mal auf dem Desktop des 7100 Builds. Inzwischen habe ich im Installieren und Einrichten von den unterschiedlichsten Betriebssystemen soviel Übung, dass ich viele Konfigurationseinstellungen schon ganz automatisch mache. Meistens laufen auch mehrere Downloads von Updates und Treibern parallel im Hintergrund während bereits die ersten Programme installiert und konfiguriert werden. Doch dieses mal wurde ich jäh in meinem Arbeitsfluss unterbrochen mit etwas, dass ich zuletzt unter Windows XP zu Gesicht bekam: Der gefürchtete BSOD, der Blue Screen of Death.

Lexa Doig als Andromeda / Rommie Gut, ich hatte zum ersten mal eine 64-Bit Version eines Betriebssystems installiert und genau genommen ist es ja auch nur eine Testversion die nicht produktiv eingesetzt werden soll. Treiber- oder sonstige Probleme können da nun einmal auftreten, also in Ruhe gewartet bis der automatische Neustart beendet war. Doch wenige Minuten nach dem erneuten Login war schon wieder Schluss, und wieder war es eine recht nichtssagende Fehlermeldung. Ein wenig skeptischer wartete ich auch jetzt den Neustart ab und beobachtete meine Rommie (ja, mein Rechner ist eine “Sie” und ist benannt nach einer Figur in meiner Lieblingsserie) dieses mal sehr genau. Und tatsächlich, trotz ausbleibender Benutzerinteraktion schrie Windows 7 Zeter und Mordio und haute mir wieder den BSOD um die Ohren: Irgendwas mit einem nicht näher spezifizierten Hardwarefehler, ich solle mich doch bitte an meinen Systemadministrator wenden. Zu blöd, dass die Therapie gegen meine Schizophrenie gerade jetzt erste Erfolge feierte…

Ich kürze die darauf folgenden Stunden bis zum Morgengrauen hier ab. Insgesamt habe ich 19 mal Windows 7 mit den unterschiedlichsten Einstellung neu installiert, sowohl in 32-Bit als auch in 64-Bit. Das Ergebnis war immer das gleiche, lediglich die beim Absturz durchgeführte Aktion war jedes mal eine andere – oder gar keine. Auch die Zeit nach dem Login bis zum Absturz variierte: Manchmal konnte ich das neue System etliche Minuten bewundern, dann wieder war nach wenigen Sekunden Ende. Lediglich im abgesicherten Modus schien alles zu funktionieren. Da auch unter Vista und der Beta nie ein solcher Fehler auftrat war für mich klar: Die RC-Version verwendete irgend einen Treiber der Probleme macht. Wieso sollte nur Windows 7 RC es plötzlich merken wenn eine seit Jahren funktionierende Hardware defekt ist, zumal selbst die Beta-Version ja problemlos lief. Doch die Installation diverser Treiber für meinen Mainboard-Chipsatz, die ATI-Grafikkarte oder schlicht das Deaktivieren sämtlicher On-Board Module auf dem Mainboard und das Ausstecken aller USB-Peripherie mit Ausnahme von Tastatur und Maus brachten gar nichts.

Am Donnerstag twitterte ich natürlich von meinen Problemen und unterhielt mich dann auch eine ganze Weile mit Mathias Raacke (@oocx). Von ihm kam auch die Idee, das Crash-Logfile des BSOD einmal genauer unter die Lupe zu nehmen. Sein Linktipp war dabei sehr hilfreich. Nach dem Raussuchen der Windows 7 RC Symboldateien und der 64-Bit Version des Windows Debuggers machte ich mich also an die Arbeit. Das Ergebnis:

WHEA_UNCORRECTABLE_ERROR (124)
A fatal hardware error has occurred. Parameter 1 identifies the type of error
source that reported the error. Parameter 2 holds the address of the
WHEA_ERROR_RECORD structure that describes the error conditon.
Arguments:
Arg1: 0000000000000004, PCI Express Error
Arg2: fffffa800189d038, Address of the WHEA_ERROR_RECORD structure.
Arg3: 0000000000000000
Arg4: 0000000000000000

Debugging Details:
------------------

BUGCHECK_STR:  0x124_4

CUSTOMER_CRASH_COUNT:  1

DEFAULT_BUCKET_ID:  VISTA_DRIVER_FAULT

PROCESS_NAME:  System

CURRENT_IRQL:  6

STACK_TEXT:  […]

STACK_COMMAND:  kb

FOLLOWUP_NAME:  MachineOwner

MODULE_NAME: hardware

IMAGE_NAME:  hardware

DEBUG_FLR_IMAGE_TIMESTAMP:  0

FAILURE_BUCKET_ID:  X64_0x124_4_PCIEXPRESS

BUCKET_ID:  X64_0x124_4_PCIEXPRESS

Followup: MachineOwner

Jetzt bin ich sicherlich kein Experte was Kernel-Dump-Logs angeht, die etwas umständliche Fehleranalyse bei normalen Programmen mit windbg ist mir da schon aufwändig genug. Ein paar Recherchen mit im Bericht auftauchenden Stichworten hat allerdings auch keine wirklich brauchbaren Resultate erbracht. Bei einem Benutzer hatte es wohl geholfen den On-Board Soundchip zu deaktivieren, bei einem anderen half nur das Auswechseln der Grafikkarte. Ersteres hatte ich ja bereits vergeblich ausprobiert und meine Grafikkarte wollte ich jetzt nicht wirklich gegen ein neues Modell austauschen, nur weil ein Release Candidate meint die nicht zu unterstützen. So alt ist meine ATI Radeon X1650 nun auch wieder nicht und bisher hatte sie auch immer ohne irgend ein Problem funktioniert.

(c) Photocase.com Eine gewisse Frustration machte sich schließlich nach Ende des zweiten Tages mit nicht-funktionierendem Heim-Computer bei mir bemerkbar. Als mich ein Arbeitskollege (@yericho) abends noch mit dem Auto nach Hause fuhr fand ich mich in Gedanken schon mit dem Fehler ab und beschloss mich entweder auf Vista oder Windows 7 Beta zurück zu besinnen. Bis eine unscheinbare Bemerkung des Kollegen, dass ja nicht nur die Grafikkarte sondern fast alle Komponenten auf einem Mainboard zumindest intern über eine PCI-Express Schnittstelle angesprochen werden, mich auf einen neuen Gedanken brachte: Der PCI Express Fehler den ich bisher immer auf die Grafikkarte schob könnte auch ein Fehler des Mainboards im Ganzen sein. Doch ich hatte bereits die neuesten Chipsatz-Treiber installiert, sämtliche On-Board Komponenten abgeschaltet und ich las auch schon in Foren von anderen Benutzern, die Windows 7 RC mit einem Asus PSVD2-X Mainboard problemlos nutzen konnten. Doch es konnte doch auch kein Hardwarefehler sein, warum sollte der nur unter Windows 7 RC auftreten, dazu noch ohne besondere Auslastung oder dergleichen?!

(c) Photocase.com Was mich schlussendlich dazu bewog mir das Bios noch einmal genauer anzusehen, im speziellen die Versionsnummer, weiß ich nicht mehr. Es war allerdings die Version 0305 vom 02. Februar 2007. Nicht besonders aktuell, aber ich erinnerte mich dass die aktuelle Bios-Version für das Mainboard auch aus dem Jahr 2007 war – und ich sie deshalb nicht mit heruntergeladen hatte als ich mir die aktuellen Chipset-Treiber besorgt hatte. Hätte ich es bloß getan! Die aktuellste Bios-Version für das PSVD2-X ist die Nummer 0501 vom 29. Juni 2007. Nicht unbedingt viel aktueller und als behobene Fehler standen lediglich die Unterstützung neuer Prozessoren und ein Bug der die Benutzung von 3Dmark03 unter Windows Vista verhinderte. Egal, ich hatte auf einmal so ein seltsames Bauchgefühl (oder war es eine Refluxösophagitis?), besorgte mir eine Disketten und lud das Image des Bios-Updates auf selbige. Was könnte schon schiefgehen, im schlimmsten Fall müsste ich noch einmal eine Neuinstallation durchführen und darin hatte ich ja mittlerweile genug Übung. Da die Asus-Mainboards seit einigen Jahren eine Funktion namens “Crash-Free” haben, die verhindert dass das Mainboard durch einen Fehler während des Bios-Updates unbrauchbar wird, konnte von der Seite her auch nicht viel schief gehen.

Das Bios-Update lief in wenigen Minuten durch, ich machte ein paar Routine-Einstellungen im (sicherheitshalber manuell) zurückgesetzten Bios, legte erneut die Windows 7 RC 64-Bit DVD in das Laufwerk ein und schaute zum 1001 mal dem Kopier- und Konfigurationsvorgang zu. Ich loggte mich ein, und wartete. Eine Minute, Zwei, Drei… nichts geschah. Und das war gut - “nichts” ist nämlich in dem Fall gleichbedeutend mit “kein Absturz”! Aber das konnte auch nur ein großer Zufall sein, schon vorher lief der Rechner gelegentlich auch bis zu 12 Minuten ohne mir die schlumpfblaue Karte in Form des BSODs zu präsentieren. Ich wartete also weiter… und weiter… machte dann ein paar Einstellungen, den Performance-Test zum Bestimmen des “Score” (4.5), fing an ein paar Standardprogramme wie die Live Essentials zu installieren: Und es kam immer noch kein Absturz!

(c) Photocase.com Heute, drei Tage später, habe ich sämtliche Programme wieder installiert und eingerichtet und hatte kein einziges Problem mehr. Stattdessen konnte auch ich mir endlich einige der Neuerungen des Release Candidates live ansehen. Und was soll ich sagen: Windows 7 RC ist sensationell geworden! Die Beta war schon richtig beeindruckend und zeigte mir erst, wie unzufrieden ich eigentlich mit Windows Vista gewesen war (obwohl ich bis dahin sehr zufrieden mit Vista war). Der RC aber hat fast alle Mängel, die ich noch in der Beta entdeckt hatte, beseitigt und die gesamte Bedienung fühlt sich einfach “gut” und “richtig” an. Auf der Arbeit sitze ich noch weiterhin an einem Windows XP Rechner und fühle mich jedes mal wieder wie in die Steinzeit versetzt. Bleibt zu hoffen, dass die Umstellung hier auf Windows 7 nach dessen Veröffentlichung nicht allzulange auf sich warten lassen wird. Aber dann erst nach einem Bios-Update ……

DotNetKicks-DE Image

HowTo: Logging mit Log4Net

08.05.2009 22:29:00 | Robert Mühsig

imageSobald die Anwendung läuft und die ersten Bugs vom Kunden werden ist es enorm wichtig zu wissen, was eigentlich vorgegangen ist und wie es zu dem Fehler gekommen ist. An wichtigen Punkten ein Logging einzubauen ist deshalb sehr hilfreich beim Debuggen. Log4Net ist eine sehr schicke Logging Bibliothek, die fast jeden Wunsch erfüllt und das ganze in nur wenigen Minuten aufgesetzt.

(more…)

ShareThis

Der Browserkrieg – (M)eine andere Meinung

08.05.2009 16:25:37 | Jan Schenk

WTF! So wollte ich schon immer mal einen Blogeintrag anfangen, und diesmal lohnt es sich.

Was zum Teufel ist so wichtig an Browsern? Welchen Durchschnittsuser schert es tatsächlich, mit welchem Browser er im Netz unterwegs ist? Welches Feature bringt mich wirklich dazu, einen Browserwechsel durchzuziehen?

Kleines Beispiel: Als ich im Dezember 2008 zu Microsoft gewechselt habe, bin ich von FF auf IE umgestiegen. Warum? Weil das Thema IE mein täglich Brot sein würde, und ich bislang nicht der exzessivste IE-Nutzer war. Hat es mir was ausgemacht? Nein.

Wird man sozusagen “gezwungen”, aus welchem Grund auch immer, einen Browser zu wechseln, fällt der Umstieg – meines Erachtens nach – nicht schwer. Heutige Browser unterscheiden sich nicht mehr in Key Features, die für den Löwenanteil der Nutzer relevant sind. Browser tun das, was sie tun sollten: Webseiten darstellen und einen gewissen Komfort beim Surfen bieten.

Die Internetnutzung kann man - das am Rande - in 2 Kategorien einteilen:
Jagen - Über Suchmaschinen neue Seiten mit relevantem Content finden
und
Sammeln - Eine oder zwei Handvoll bekannte Seiten ansurfen.
Diese zwei Beschäftigungen sind das primäre Verhalten für alle Typen von Internetnutzern.
Auch ich habe inzwischen begriffen, dass das den IE8 Strategen bei der Entwicklung klar war. Wer dazu mehr wissen möchte, sollte sich auf die Themen Visual Search und Accelerators stürzen, die durchaus Sinn machen und sich diesen Themen widmen, irgendwie aber auch nur einen kleinen Meilenstein auf dem Weg zu etwas Größerem darzustellen scheinen.

Zurück zum Tema - Webseiten darstellen: Wann fällt einem auf, dass Webseiten nicht richtig dargestellt werden?
1) Wenn es gravierende Probleme mit der Anzeige oder der Navigation gibt
2) Wenn man einen Vergleich hat (2 Browser installiert und beide für diese Seite genutzt)
3) Als Entwickler, wenn Testen der Browserkompatibilität zur Arbeit gehört (schon mal SuperPreview gesehen?)

Also 1) ist wirklich nicht mehr häufig der Fall. 2) wird man auch eher selten antreffen außer man tut es nach Eintreten von 1), normalerweise gibt es einen Standard-Browser, der für 99% des Surfens genutzt wird. 3) ist da schon gewichtiger, macht aber immer noch nur einen kleinen Promille-Anteil der Netz-User aus.

Somit werden einfache Falschdarstellungen dem User nicht auffallen, oder er schiebt sie auf den Anbieter der Seite. Also liegt keine “Schuld” des Browsers vor und der User wird von sich aus keinen Wechsel in Erwägung ziehen.

Was Features angeht: Würde ich den Browser wechseln, weil es im IE8 den Vorteil gibt “Shift+Enter” zu drücken, wenn ich die URL-Vorschlagsliste angezeigt bekomme und den ersten Eintrag selektieren und ansurfen will?

image

Ich finde das Feature schön, aber es spart mir effektiv nur einen Tastaturklick, und das reicht wahrlich nicht für einen Wechsel. Ich will jetzt hier keine Features aufzählen, zumal ich das fairerweise auch für Firefox tun müsste, um zu zeigen, was mich dort nicht zu einem Wechsel bewegen würde, wie ich es eben auch beim Internet Explorer getan habe.

Der Punkt ist, dass ich, selbst wenn ich ein paar Features des kompetitiven Browsers kenne - und das allein ist schon wieder ein Einzelfall, komme ich gleich noch zu - es mich in den seltensten Fälle zu einem Wechsel bewegen würde. Weil das eben keine Key Features sind, die die Benutzung des Webs verändern, und die tatsächlich sichtbaren und nicht nur leicht spürbaren Vorteil bringen.

Die Frage ist nun, brauchen wir denn eine Veränderung der Webnutzung?
Jein. Brauchen nicht, allerdings findet sie statt, leise, im Hintergrund. So wie die letzten Jahre schon, wenn man mal von den Anfängen des WWW absieht, als es plötzlich Browser gab, die Bilder darstellen konnten. Denken wir lieber mal an Onlineshopping, Social Networking, Zunahme von Newsfeeds, Videostreaming etc. Aber hat sich hier irgendein Browser darum verdient gemacht, dass diese Veränderung für den Benutzer einen Vorteil bietet, oder waren es nur die Innovationen an sich, die das Web zu dem gemacht haben, was es zur Zeit ist?
Die Beantwortung der Frage überlasse ich euch, da sie sich nicht mit einem klaren Statement abschließen lässt. Meiner Meinung nach geht die Antwort jedoch klar in Richtung “Der Browser hatte damit selten etwas zu tun gehabt”.

Nochmal zurück zum Feature-Angebot der konkurrierenden Browser. Wie gut muss ein Feature sein, damit die Botschaft “Der andere Browser hat ein wichtiges Feature” den Durchschnittsuser erreicht? Und ich meine hier tatsächlich nur Features, die den anderen, nicht als Standard gesetzten Browser betreffen.
Bei welchem Feature war das in den letzen Jahren der Fall? Mir fällt nur eines ein. Tabs. Tabbed Browsing hat das Leben einfacher gemacht, die Webnutzung allerdings nicht massiv verändert. Es hat lediglich dafür gesorgt, dass paralleles Surfen auf mehreren Seiten benutzbar wurde, ohne in einem unüberschaubaren Meer von Fenstern zu versinken. Heute ist das Standard bei allen Browsern.
Irgendwelche anderen Features, die uns vom Hocker gerissen haben? Ich denke nicht. 

Und so wird der Browserkrieg eigentlich nur von einer Gruppe ausgetragen. Den Meinungsmachern in den Communities. Aber wie groß ist denn der Einflussbereich aller dieser Meinungsmacher zusammen?

Und jetzt wird es lustig, wenn man sich mal überlegt, wie viele Internet-Nutzer in Communities organisiert sind. Wir können den Umfang hier nicht auf Online-Communities beschränken, sondern müssen weiter greifen. Alle Gemeinschaften, in denen man auch mal über das Internet spricht. Ob Online-Forum oder Kegelklub, Schützenverein oder Usertreffen, Schule oder Arbeitsplatz, Bikertreffen oder Familie. Da behaupte ich mal kühn, dass das 100 Prozent nicht überschreiten dürfte, aber auch nicht weit darunter liegt.
Und die, die das Internet bisher nicht nutzten? Sobald diese Personengruppe für unsere Betrachtung relevant wird, ist sie bereits in irgendeiner Community aktiv geworden. Sei es sich beim Kauf des DSL-Anschlusses innerhalb der Familie informiert zu haben, oder beim Surfen bei Freunden deren Einfluss ausgesetzt gewesen zu sein.

Meinungsmacher sind die einzige relevante Position im Browserkrieg. Und das ist eigentlich auch nichts Neues, in dieser Situation nur extremer als bei anderer Software, da seit Jahren tatsächliche Veränderungen und Neuerungen fehlen und somit das Interesse des Einzelnen an Neuerungen extrem niedrig ist.

Man passt sich an, bei der Browser-Entwicklung. Man bringt keine Innovationen. Warum nicht? Weil Browser am Ende des Tages nur Darstellungsgeräte sind. So wie der Fernseher daheim. Ein Neuer macht das Programm auch nicht besser.

Die Problemstellung ist hier auch eher eine andere. Der Browser an sich wird voraussichtlich sowieso immer weniger ein benutzbares und sichtbares Werkzeug sein. Vielmehr entwickelt sich das Web selbst zum Hauptveranstaltungsort der gesamten Computernutzung. Software+Services ist hier ein Begriff, den ich, genauso wie Cloud Computing, unerklärt stehen lassen möchte. Wer dazu mehr wissen möchte, kann die Suchmaschine seiner Wahl bemühen, um zu sehen, dass die Richtung, die die Evolution des Internets und der IT eingeschlagen hat, dort hin zeigt, wo ein immer größer werdender Teil aller Applikationen, die wir heute nutzen, online stattfinden wird. Und das beeinflusst auch die Browser dahingehend, dass sie immer integrierter werden, da ihre Funktionalität Grundvoraussetzung für Applikationen von morgen sein werden. Dadurch werden Browser aber immer unsichtbarer für Benutzer werden. Wohin die Reise aber letztendlich geht, kann bisher wahrscheinlich niemand skizzieren.

Wie lässt sich also der Browserkrieg gewinnen, oder vielleicht auch nur eine Schlacht?
Mit den Meinungsmachern? Oder mit Key Features, mit denen es sich so verhält wie mit Killer-Apps. Einfach zu entwickeln, aber schwierig zu erfinden. Was braucht die Welt?
Und bei den Meinungsmachern kommen natürlich wir ins Spiel, die Evangelisten. Und nun lest bitte nochmal den zweiten Absatz ganz oben. Nicht die besten Voraussetzungen zum Evangelisieren, oder? Man möge mir folgendes ehrliches Fazit verzeihen:

Ich mag den IE. Ich mag auch den Firefox. Und es ist mir völlig egal, welchen Browser ihr einsetzt. Hauptsache ihr seid im Netz unterwegs und verändert es durch eure Nutzung. Der Rest folgt von alleine, das hat Evolution so an sich. Wenn es euch aber glücklich macht, anderen etwas über diesen oder jenen Browser vorzuschwärmen, dann gebe ich euch gerne Futter für den Internet Explorer 8. Ich nehme es euch jedoch nicht übel, wenn euch, wie mir, der Inhalt wichtiger als das Darstellungsgerät ist.



tweetmeme_url = 'http://blogs.msdn.com/jansche/archive/2009/05/08/der-browserkrieg-m-eine-andere-meinung.aspx';

Team Foundation Server Unterstützung in Expression Blend 3 Preview

08.05.2009 13:38:31 | Oliver Scheer

Die neueste Version von Expression Blend –> Version 3 Preview hat nun die Möglichkeit mit dem Team Foundation Server zusammen zu arbeiten.

Dadurch wird es jetzt möglich direkt aus Blend (ohne Umwege über den Team Explorer in Visual Studio) an einem Projekt teilzunehmen, das auf einem Team Foundation Server zur Teamarbeit gehostet wird.

Einige der Top-Features

  1. Dateien die gespeichert werden sollen, werden automatisch ausgecheckt.
  2. Neu hinzugefügte UserControls werden automatisch in die Quellcoderverwaltung übertragen.
  3. Umbenennen und Löschen von Dateien in der Quellcodeverwaltung.
  4. Einzelne Elemente (oder das ganze Projekt) können direkt eingecheckt werden.
  5. Betrachten der letzten Versionen (oder einen bestimmten Version) so wie man es von Visual Studio her gewohnt ist.

Damit man in den Genuss der Erweiterung kommt muss man sich derzeit allerdings noch die Erweiterung manuell von hier installieren.

Eine genaue Anleitung ist hier erhältlich.

Druckbetankung – Die Show :: Silverlight Teil I

08.05.2009 13:03:04 | Oliver Scheer

Mein Kollege Jan Schenk (http://blogs.msdn.com/jansche) und meiner einer haben sich in den letzten Tagen mehrmals in unserem Webcast-Studio eingeschlossen und mal eine kleine Runde Druckbetankung vorgenommen.

In kleinen, kurzen, aber auch manchmal etwas längeren Folgen, diskutieren wir Themen rund um Silverlight 2 und 3 und und und …. und noch so einiges mehr. Ich fand es witzig, okay, ich muss es gut finden, spiel ja selber mit.

Wer mehr wissen will … einfach einschalten bei “Druckbetankung – Die Show” unter: http://channel9.msdn.com/posts/kitano/ 

Abstrakt Folge 1:
”Im ersten Teil unseres neuen Formates "Druckbetankung - Die Show" erzählen Oliver Scheer und ich alles über Silverlight 2. Alles? Nicht ganz, aber wir fangen bei den Basics an, zeigen, welche Voraussetzungen man für die Silverlight-Entwicklung benötigt, wo Stolpersteine liegen könnten und wie man zu seiner ersten Silverlight Applikation kommt und diese auf seiner Seite einbindet.
In den kommenden Teilen wird dieses Wissen dann vertieft bis zur Datenbindung und zum Cross-Domain-Access.
Ausserdem seht ihr das Zusammenspiel zwischen Visual Studio 2008 und Expression Blend 2 SP1".”
Get Microsoft Silverlight

Druckbetankung – Die Show :: Silverlight 2

08.05.2009 09:56:57 | Jan Schenk

Was ist die Druckbetankung?

Eine kurze Beschreibung:
Oliver Scheer hatte die Idee, anstelle unserer normalen Webcasts auch mal Dialog-Webcasts zu realisieren. Das bedeutet: zwei Evangelisten, ein Rechner, eine Kamera und jede Menge Fragen. Und Spaß, denn den darf man nicht vergessen. Schließlich und endlich soll uns neue Technologie ja genau das machen und uns nicht quälen. Letzteres ist aber viel zu häufig der Fall. Und genau dagegen gibt es auch uns Evangelisten.

Wir haben “Druckbetankung – Die Show” als Serie angelegt, Silverlight 2 ist das Thema der ersten Serie, die 4 Episoden umfasst.

Die sind jetzt auch online, und zwar erst mal auf channel9. Wir planen, diese Serien auch für MSDN zu produzieren, da haben wir ein paar andere Anforderungen, aber das sollte nicht das Problem sein.

Teil 1
Teil 2
Teil 3
Teil 4

Schaut euch die Videos an und gebt mir mal Feedback, ob euch das besser gefällt als klassische Webcasts, sowohl vom Inhalt als auch von der Aufbereitung. Oder ob euch das nicht gefällt.

Viele Grüße,
jan

 

PS: Der nächste Teil der Druckbetankungs-Serie ist bereits in Arbeit!



ADO.NET Data Services mit NHibernate

08.05.2009 09:43:00 | Gregor Biswanger

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

Für folgende Aktion MSDN Blog-Parade gebe ich auch ein Statement zu meinen Lieblings Entwickler-Tools ab. In der Regel besteht die Softwareentwicklung bei mir Hauptsächlich aus einer Kombination vielseitiger Tools & Frameworks. Eine Flut davon hat bereits Golo Roden unter Guide to Csharp aufgelistet. Doch wenn sich meine Gedanken auf die Hauptsächlich genutzten Tools legt, fällt mir bereits ein absoluter Top-Favorit ein: JetBrains ReSharper.

Warum ReSharper?

ReSharper bietet für Entwickler unzählige Vorteile. Zum einem ist es ein mächtiges Tool für den Refactoring Prozess, wobei hier auch der Ursprung des Namens liegt. Durch schnelle und einfache Tastenkombinationen wird der Source-Code sauber in gut aufgebaute Methoden ausgelagert (Extendet Methods). Aber nicht nur beim Refactoring wird hier abgeholfen, sondern beim Entwickeln denkt ReSharper gleich mit. Durch eine kleine Glühbirne links vom Source-Code, schlägt ReSharper bessere Schreibweisen an. Zudem werden Features aus C# 3.0/4.0 komplett ausgereizt. Wobei ich hier offenbaren muss, dass ich damit sehr viel von ReSharper gelernt habe.

Meine bevorzugte und aus Architektursicht beste Entwicklung ist Test-Driven Development (Testgetriebene Entwicklung). Hier wird der Test-Code vor der eigentlichen Entwicklung geschrieben. Dabei müssen auf nicht-existierenden Klassen und Methoden zugegriffen werden. ReSharper bietet hierbei vollste Unterstützung, indem er diese Klassen und Methoden für den Entwickler schnell automatisiert erzeugen kann. So braucht man am Ende nur noch die richtige Logik Implementieren und bekommt so ein angenehmes Red – Green Feeling.

Abb.1.1. –ReSharper denkt mit!

 

Warum Visual Studio 2010?

Die Features von ReSharper beinhalten viele Standard Anforderungen die eines Entwicklers. Genau das hat auch Microsoft bemerkt und bereits in Visual Studio 2008 vieles der Features übernommen. Zum Beispiel das auslagern von Source-Code für ein Refactoring oder das Generieren nicht existierender Klassen und Methoden. Doch leider können diese Features nur durch Mausklicks mühsam eingesetzt werden. Zudem bietet ReSharper eine im Detail bessere Möglichkeit durch Intelligente Wizards.

Aus der Gerüchteküche hebt hervor, das Microsoft bereits mit JetBrains im Gespräch war. Wobei sich leider nicht geeinigt werden konnte. Auch ein Fehler beim Titelbild von Visual Studio 2010 Beta Website, ließ einige Entwickler eine Kooperation erhoffen.

 

Abb.1.2. – Visual Studio 2010 und ReSharper – Fehler oder Insider?

Auch wenn es nicht zu einer Kooperation gekommen ist, laut derzeitiger Aussage von Microsoft, wird Visual Studio 2010 wieder einiges an neuen Features von ReSharper übernehmen und gegeben falls besser darbieten. Zum einem wäre das auch eine verbesserte Unterstützung für Test-Driven Development, durch automatisiertes Generieren der Klassen und Methoden. Auch das Vorschlagen und Markieren von Source-Code für Verbesserungsvorschläge wird mit Visual Studio 2010 folgen.

Abb.1.3. – Visual Studio 2010 mit Test-Driven Development unterstützung

Abb.1.4. – Visual Studio 2010 mit Test-Driven Development unterstützung

Desweiteren wird eine komplette Unterstützung für UML folgen. Nicht das ich UML gerne verwende oder einsetze, sondern da es immer wieder von der Geschäftsleitung abverlangt wird. Aus mir nicht verständlichen Gründen. UML setzen Übrigends Heute noch die wenigsten Architekten ein die ich kenne. Viele Standards an denen es bei UML gefehlt hat waren damals auch nicht vorhanden, womit Microsoft bis Visual Studio 2008 ihre eigene DSL hatten. Als Beispiel wären hierbei Events zu nennen. Nicht das ich gegen eine Grafische Dokumentation bin, zum Gegenteil! Aber es bedarf hierbei nicht  an UML. Zu mindestens wird dieser mühsamen Dokumentation durch eine vollautomatische Generierung mit Visual Studio 2010 geholfen.

Fazit

Mit ReSharper werden meine derzeitigen Anforderungen beim Entwickeln größtenteils zufrieden gestellt. Mit den Ankündigungen der Features von Visual Studio 2010 ist es bereits jetzt ein absoluter Favorit für mich.

Software Strategy Summit: Alle Vortraege zum Download [Video und Vortrag]

08.05.2009 07:56:51 | Kay Giza

Mit dem „Software Strategy Summit“ fand am 24. April in Köln das aus Microsoft-Sicht in diesem Jahr wichtigste Strategie-Event für Softwarehersteller und System-Integratoren statt. Knapp eine Woche nach Ende der Veranstaltung sind jetzt im MSDN Event-Archiv die Video-Aufzeichnungen aller dort gehaltenen Vorträge abrufbar. Neben der bereits veröffentlichten Ansprache von Microsoft CEO Steve Ballmer sind mit dabei die Keynotes von Dr. Said Zahedani, Direktor der Developer Platform and Strategy Group der Microsoft Deutschland und Bitkom-Vizepräsident Heinz Paul Bonn sowie insgesamt sieben Fachreferate, u.a. zu den Themen „Microsoft Software + Services Strategie, Windows Azure und die Azure Services Platform“, zur Microsoft Business Intelligence, zur neuen Windows Experience und zu den Office Business Applications.

Link: Software Strategy Summit: alle Referate im Video-Rückblick

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

Moonlight 2.0 Preview 1 verfügbar

08.05.2009 01:40:05 | Norbert Eder

Das Mono Projekt liefert bereits die erste Preview der Version 2.0 der Silverlight-Implementierung für Unix Systeme. Dass es Moonlight auch für 64-Bit gibt, ist eine tolle Sache, stellt aber nicht das einzige Feature da. Nachfolgend finden Sie eine Liste der Verbesserungen und Erweiterungen für Moonlight 2: First preview release. First...

Tanz den => Lambda mit mir...

07.05.2009 16:55:00 | Wolfgang Kluge

Wer sich noch erfolgreich gegen die zugegebenermaßen ungewöhnlich anmutende Schreibweise der Lambda-Ausdrücke in .NET wehrt, dem kann nur gesagt werden: so schlimm wie es aussieht ist's bei weitem nicht! Und einmal verinnerlicht ist's wie Fahrradfahren. Warum man sich daran gewöhnen sollte? Weil man es kann ;)

Allgemein

Lambda(λ)-Ausdrücke gehören irgendwie zu den anonymen Methoden. Allerdings hat man sie nicht umsonst "Ausdruck" und nicht "Methode" genannt. Sie sind also nur ähnlich. Sie können sich aber exakt genauso verhalten wie anonyme Methoden. Dazu müssen sie lediglich einem delegate zugewiesen werden. Grob gesagt sind sie eine Weiterentwicklung der anonymen Methoden.

Alle anonyme Methoden können nicht direkt aufgerufen werden. Ihnen fehlt schlicht und recht wenig ergreifend der entsprechende Name (auch wenn intern wieder einer erzeugt wird) ;) Damit man weniger schreiben muss, erkennt der Compiler anhand des Kontextes (der Zuweisung) die Parametertypen und den Typ des Rückgabewertes (falls vorhanden). Bei "normalen" anonymen Methoden (die mit dem delegate-Keyword) wird nur der Rückgabetyp anhand des Kontextes ermittelt.

Die Lambda-Expressions selbst bestehen dabei nur aus 3 Teilen, wobei einer davon (der Lambda-Operator =>) fest ist und lediglich die beiden anderen Teile voneinander trennt.

Argumentliste => (Ausdruck | Anweisungsblock)

=> wird "goes to" gesprochen. Wie man das in Deutsch ausdrücken will/soll/muss - ich weiß ich nicht.

Argumentliste

Die Argumentliste kann 0, 1 oder (fast) beliebig vielen Elementen enthalten (bei mir kommt es ab 4694 Parametern zu OutOfMemoryException, aber wer will schon so viele Parameter angeben*g*). Die einzelnen Argumente müssen dabei in Klammern geschrieben werden, es sei denn, es gibt nur ein Argument. Dann gehts auch ohne Klammer. Also ist z.B. folgendes gültig:

(a) => ...
a => ... //1 einzelner Parameter kann auch ohne Klammern angegeben werden
() => ...
(a, b) => ...

Der Compiler ermittelt die Parametertypen aus dem Kontext. Wenn man dies "zulässt", nennt man das "implizite Typisierung".

Wenn man will (oder es nötig sein sollte), kann man auch den Typ der einzelnen Argumente angeben (nennt sich folgerichtig "explizit Typisierung"). Damit sieht es mehr nach "gewohnter" Parameterliste aus. In diesem Fall müssen auch immer Klammern gesetzt werden. Es gelten die gleichen Einschränkungen wie bei anonymen Methoden, es darf also z.B. kein params - Array verwendet werden.

(string a) => ...
(string a, int b) => ...

Wenn man explizit typisieren will, dann muss man dies mit allem Parametern tun.

Ausdruck, Anweisungsblock

Auf der rechten Seite des Lambda-Operators steht die eigentlich Methode. Und auch hier wurde viel getan, damit man nicht viel schreiben muss. Ein Anweisungsblock kann aus keiner, einer oder mehreren Anweisungen bestehen. Diese werden in geschweifte Klammern geschrieben. Wie eine ganz normale Methode eben.

Wenn der Anweisungsblock aus nur einem Ausdruck besteht (z.B. aus nur einer return-Anweisung), dann kann man die geschweiften Klammern auch weglassen. Je nach Kontext ist das was übrig bleibt dann entweder der Rückgabewert der Funktion, oder (wenn das delegate so definiert ist, dass kein Rückgabewert erwaret wird) die einzige Zeile.

Wenn man gar nichts tun will, dann muss ein leeres Klammernpaar geschrieben werden. Anhand eines kleinen Beispiels ist das aber wie immer leichter erklärt..

(int a) => { return a * 2; }; //Anweisungsblock
(int a) => a * 2; //einzelner Ausdruck

(int a) => { }; //leerer Anweisungsblock.

Die ersten beiden Codezeilen sind absolut gleichbedeutend. Ein leerer Anweisungsblock generiert eine Funktion ohne Rückgabewert(void). Wenn das delegate, dem der Lambda-Ausdruck zugeordnet wird keinen Rückgabewert erwartet und man nur eine Anweisung hat, kann man ebenfalls die geschweiften Klammern weglassen (siehe nächstes Beispiel).

Anwendung

Nun zu einer praktischen Anwendung. Denn ohne das außenrum sieht es ja nicht sonderlich komplex aus. Die Lamba-Expressions können nämlich nicht so ohne weiteres irgendwohin "gestellt" werden. Sie müssen einer Variable zugewiesen werden. Am Beispiel des Page.OnLoad-Events gibt es (mindestens) 3 Möglichkeiten.

Mittels EventHandler-delegate:

Page.Init += new EventHandler( Page_Init );
//...

void Page_Init( object sender, EventArgs e ) {
    this.Trace.Warn( "Page_Init" );
}

Mit einer anonymen Methode kann dies schon kürzer geschrieben werden

Page.Init += delegate( object sender, EventArgs e ) {
    this.Trace.Warn( "Page_Init" );
};

Und mit einem Lambda-Ausdruck gleich noch kürzer

Page.Init += ( sender, e ) => this.Trace.Warn( "Page_Init" );

Auch hier kann man der Lambda-Ausdruck ohne Klammern schreiben. Damit spart man wiederum etwas Code aber im Grunde sind die Unterschiede zwischen anonymer Methode und Lambda-Ausdruck kaum erwähnenswert.

Was macht man also damit...

...ist eine mehr als berechtigte Frage. Wenn man "nur" etwas Code damit spart, dann kann man sich das "Erlernen" auch sparen (und es auch der Sprache C# ersparen) und sich lieber auf wichtigeres konzentrieren. Lambda-Ausdrücke, die delegate-Variablen zugewiesen werden sind de fakto nichts anderes als anonyme Methoden die mittels delegate-Keyword erstellt wurden (sagt ILDisasm *g*). Wozu also der Stress? Wo bleibt die "Weiterentwicklung"...

Nun, die Lambda-Ausdrücke haben Einzug in C# (und VB.NET) durch LINQ erhalten. Anonyme Methoden alleine waren nicht mehr ausreichend. Denn man kann Lambda-Ausdrücke wunderbar einfach auch zur Laufzeit analysieren oder sogar erst aufbauen. Um das zu erreichen, weist man einen Lambda-Ausdruck nicht einem delegate, sondern einer Variable vom Typ System.Linq.Expressions.Expression<TDelegate> zu. Heraus kommt ein so genannter "Expression Tree". LINQ wird erst durch die Analyse der Ausdrücke ermöglicht, denn erst damit kann z.B. im Falle von LINQ to SQL aus einem Lambda-Ausdruck ein echter SQL-Befehl werden.

Bei den Expression Trees gibt es allerdings eine wichtige Einschränkungen was den Inhalt der Lambda-Expression betrifft - dieser darf nur aus einem einzelnen Ausdruck und nicht aus einem Anweisungsblock bestehen. Doch das sprengt jetzt hier den Rahmen des Artikels. "Expression Trees" werden wahrscheinlich in einer der nächsten Artikel behandelt...

Wozu nun Lambda-Ausdrücke, wenn man keinen LINQ to irgendwas - Provider bauen will und einem auch sonst keine Verwendungsmöglichkeit von Expression Trees einfällt. Ich kann es nicht beantworten: weils schön und kürzer ist oder vielleicht auch einfach nur - wie bereits eingangs erwähnt - weil man es kann ;)

Auf geht es nach Wien zum Office (VSTO) Community Day

07.05.2009 14:02:34 | Lars Keller

Wie hier schon berichtet, findet Morgen zum ersten Mal der Office (VSTO) Community Day in Wien statt. Gerade habe ich die letzten Vorbereitungen abgeschlossen und werde heute Abend meinen Flieger nach Wien besteigen.

Das Event ist ein kleines Multikultur-Event geworden, da wir insgesamt 26 Anmeldungen aus der Schweiz, Deutschland und natürlich Österreich haben. Ich freue mich sehr auf den Austausch mit den anderen Teilnehmern, umzusehen wo deren Probleme, Ideen und Fragen zu dem Thema VSTO sind.

Natürlich bin ich auch sehr gespannt auf Wien und auf die Stadtführung am Samstag, welche der Mario organisiert.

See you @Wien! ;-)



This weblog is sponsored by netcreate OHG.

Auf geht es nach Wien zum Office (VSTO) Community Day

07.05.2009 13:02:34 | Lars Keller

Wie hier schon berichtet, findet Morgen zum ersten Mal der Office (VSTO) Community Day in Wien statt. Gerade habe ich die letzten Vorbereitungen abgeschlossen und werde heute Abend meinen Flieger nach Wien besteigen.

Das Event ist ein kleines Multikultur-Event geworden, da wir insgesamt 26 Anmeldungen aus der Schweiz, Deutschland und natürlich Österreich haben. Ich freue mich sehr auf den Austausch mit den anderen Teilnehmern, umzusehen wo deren Probleme, Ideen und Fragen zu dem Thema VSTO sind.

Natürlich bin ich auch sehr gespannt auf Wien und auf die Stadtführung am Samstag, welche der Mario organisiert.

See you @Wien! ;-)

Auf geht es nach Wien zum Office (VSTO) Community Day

07.05.2009 04:02:03 | Lars Keller

Wie hier schon berichtet, findet Morgen zum ersten Mal der Office (VSTO) Community Day in Wien statt. Gerade habe ich die letzten Vorbereitungen abgeschlossen und werde heute Abend meinen Flieger nach Wien besteigen.

Das Event ist ein kleines Multikultur-Event geworden, da wir insgesamt 26 Anmeldungen aus der Schweiz, Deutschland und natürlich Österreich haben. Ich freue mich sehr auf den Austausch mit den anderen Teilnehmern, umzusehen wo deren Probleme, Ideen und Fragen zu dem Thema VSTO sind.

Natürlich bin ich auch sehr gespannt auf Wien und auf die Stadtführung am Samstag, welche der Mario organisiert.

See you @Wien! ;-)

Software Strategy Summit: alle Referate im Video-Rückblick

06.05.2009 20:17:09 | Oliver Scheer

Mit dem „Software Strategy Summit“ fand am 24. April in Köln das aus Microsoft-Sicht in diesem Jahr wichtigste Strategie-Event für Softwarehersteller und System-Integratoren statt. Knapp eine Woche nach Ende der Veranstaltung sind jetzt im MSDN Event-Archiv die Video-Aufzeichnungen aller dort gehaltenen Vorträge abrufbar. Neben der bereits veröffentlichten Ansprache von Microsoft CEO Steve Ballmer sind mit dabei die Keynotes von MSDN Deutschland-Chef Dr. Said Zahedani und Bitkom-Vizepräsident Heinz Paul Bonn sowie insgesamt sieben Fachreferate, u.a. zu den Themen „Microsoft Software + Services Strategie, Windows Azure und die Azure Services Platform“, zur Microsoft Business Intelligence, zur neuen Windows Experience und zu den Office Business Applications.

Virtual Earth Silverlight Map Control CTP – warum sehe ich diese Dinge eigentlich immer so spät?

06.05.2009 16:36:47 | Jan Schenk

Seit Anfang April gibt es bereits eine Community Technology Preview (kurz CTP) zu der Einbettung von Virtual Earth Karten in Silverlight.

Genau wie für das “normale” Virtual Earth gibt es hier ein Interactive SDK, das es erlaubt, den Code auf einer interaktiven Website zusammen zu “puzzlen”, um ihn dann für die eigene Seite zu übernehmen.

Unter https://sharepoint.connect.microsoft.com/silverlightmapcontrolctp/iSDK/default.htm findet man diese Seite:

image

 

Und ein schnelles Kopieren des zur Verfügung gestellten Codes bringt dann beispielsweise so eine Ansicht:image

 

Ich habe das ganze dann kurzerhand auch mal in Live Mesh geschickt, obwohl mir klar war, dass es ganz so einfach nicht sein wird.

image

Aber aussehen tut das ganze ja schon mal ganz schick im Mesh Desktop.

Das CTP ist super, um die VE Integration in Silverlight einfach mal auszuprobieren. Für Produktivanwendungen gilt wie immer: Finger weg vom CTP!

Viel Spaß damit und viele Grüße,
jan

MSDN Blog-Parade - Was sind Ihre Lieblings-Entwickler-Tools? Mitmachen und gewinnen!

06.05.2009 11:27:13 | Peter Kirchner

MSDN Deutschland veranstaltet eine Blog-Parade! Wir möchten von Ihnen wissen, welche Ihre Lieblings-Entwickler-Tools sind und warum gerade diese Ihnen so gut gefallen. Mit etwas Glück können Sie sogar eine von drei Xboxen gewinnen!

Was ist eine Blog-Parade? Wie mache ich mit?

  1. Bei einer Blog-Parade gibt es immer ein Thema, das vorgegeben wird. Gestartet wird sie, wie sollte es anders sein, ebenfalls durch einen Blog-Beitrag.
  2. Jeder kann an einer Blog-Parade teilnehmen. Schreiben Sie einen Artikel mit Ihren Top-3-Entwickler-Tools und erläutern Sie, warum gerade diese Tools so wichtig für Sie geworden sind.
  3. Verweisen Sie in Ihrem eigenen Artikel zum Ursprungs-Beitrag der Blog-Parade. Dadurch wird beim Ursprungs-Beitrag automatisch ein Rückverweis (Trackback) erstellt.
    • Sollte das mal nicht funktionieren, schreiben Sie eine E-Mail an Peter Kirchner und teilen uns einfach den Link zu Ihrem Artikel mit.
  4. Und schon sind Sie dabei!

Wer kann mitmachen?

Teilnehmen kann jeder, der einen Blog hat und gerne anderen mitteilen möchte, welche Entwickler-Tools für Ihn oder Sie unentbehrlich geworden sind. Dabei ist es egal, ob es sich um kommerzielle oder kostenlose Anwendungen handelt. Im Anschluss an die Blog-Parade werden wir eine Sammlung aller Empfehlungen veröffentlichen - natürlich mit Verweis auf die Beiträge. :-)

Gibt es auch etwas zu gewinnen?

Wäre es ist nicht schon Motivation genug, über Ihre Lieblingstools zu schreiben, machen wir die Teilnahme noch etwas schmackhafter. Unter allen Teilnehmern werden wir drei Mal je ein Xbox Elite Paket inkl. zwei Spielen verlosen! Wer an der Verlosung teilnehmen möchte, muss in seinem Blog ein Kontaktformular oder -adresse haben, damit wir Sie anschreiben können. Die Blog-Parade läuft bis zum 15.06.2009. Innerhalb der darauf folgenden zwei Wochen werden wir dann die glücklichen Gewinner anschreiben und bekannt geben. In Bezug auf die Verlosung bitte das "Kleingedruckte" unten beachten.

Das Kleingedruckte (Teilnahmebedingungen für die Verlosung)

  1. Teilnahmeberechtigt an der Verlosung ist jeder, ausgenommen Mitarbeiter von Microsoft und deren Angehörige.
  2. Jeder Teilnehmer darf mehrmals teilnehmen. Die Chancen für die Verlosung erhöhen sich dadurch nicht.
  3. Teilnahmeschluss für die Verlosung ist der 15.06.2009
  4. Aus allen Einsendungen werden drei Gewinner per Los gezogen.
  5. Gewinn ist jeweils ein Xbox 360 Elite Paket inklusive zwei Spielen.
  6. Alle Gewinner werden per E-Mail benachrichtigt.
  7. Die Zustellung des Gewinns erfolgt auf dem Postweg auf eigene Gewähr. Eine korrekte Angabe Ihrer Daten ist Voraussetzung für die korrekte Zustellung im Falle eines Gewinns.
  8. Die Gewinner erklären sich mit einer Veröffentlichung ihrer Vornamen und des Anfangsbuchstabens des Nachnamens mit Wohnortangabe im Blog blogs.msdn.com/softwarehersteller einverstanden.
  9. Die Ausbezahlung der Preise in bar ist nicht möglich.
  10. Der Rechtsweg ist ausgeschlossen.
  11. Gewährleistungsansprüche hinsichtlich der Gewinne sind gegenüber Microsoft Deutschland GmbH ausgeschlossen.

Frei verfuegbar: Windows 7 Release Candidate [Download]

06.05.2009 11:23:47 | Kay Giza

Seit gestern für alle – der Windows 7 Release Candidate steht jetzt zum freien Download zur Verfügung. Testen Sie selber die kommende Windows-Version schon heute: Diese Vorabversion, die als „Release Candidate“ bereits sämtliche für das Endprodukt vorgesehenen Funktionen aufweist, läuft erst im März 2010 ab. Entscheiden Sie sich für die 32- oder die 64-Bit-Version, und wählen Sie eine von 5 Sprachen aus, darunter selbstverständlich auch Deutsch und Englisch. Im MSDN Windows 7 Kundenvorschauprogramm erfahren Sie mehr über Umfang, Features und Möglichkeiten der womöglich letzten Testversion vor dem offiziellen Erscheinen von Windows 7. Im Windows Developer Center finden Sie außerdem eine ganze Reihe interessanter und nützlicher Ressourcen rund um die Entwicklung für Windows 7: Tools, Downloads, Artikel und Dokumentationen - alles, was das Developer-Herz begehrt. Zu empfehlen sind unter anderem der Windows 7 Developer Guide oder das Windows 7 Application Quality Cookbook. Oder laden Sie sich die neueste Version des Windows SDK herunter, für die ersten Entwicklungsversuche auf der neuen Windows-Version.

Für den Download von Windows 7 RC ist keine Eile geboten. Die RC-Version steht mindestens bis Juni 2009 zur Verfügung. Da außerdem die Anzahl der Product Keys nicht begrenzt wird, haben Sie genügend Zeit. Weitere Einzelheiten sowie häufig gestellte Fragen und deren Antworten finden Sie in der Windows 7-FAQ. Diskutieren Sie mit anderen Entwicklern und tauschen Sie sich über die aktuelle Windows 7-Version im Windows-Entwicklerforum auf MSDN aus.

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

Entwickler sind sauer auf Apple

06.05.2009 07:27:01 | Daniel Schädler

[quelle: Golem.de]
Geld für iPhone-Applikationen lässt auf sich warten

Einige Entwickler von iPhone-Applikationen sind enttäuscht von Apple: Das Unternehmen, das sich ohnehin lange Zahlungsfristen einräumt, ist säumig mit der Überweisung der Provisionen für die Anwendungen. Die Entwickler erwägen, gegen Apple zu klagen.  [Anm.: Richtig so, dass würde ich mir von einem Unternehmen, dass a überteuerte Hardware und den erfolgreichen IPod verkauft, auch nicht gefallen lassen. Ich denke da ist genügend Geld vorhanden.]

Wer selbstständig arbeitet [Anm.: Der hat bei einem solchen Auftraggeber ganz schlechte Finanzkarten…], mag Auftraggeber, die möglichst schnell ihre Rechnungen zahlen. Apple scheint keiner dieser Auftraggeber zu sein. Nicht nur, dass sich das Unternehmen vorbehält, Entwicklern erst 45 Tage nach Monatsende die Einnahmen für ihre iPhone-Applikationen zu überweisen. Apple scheint zusätzlich zu den langen Fristen noch ein säumiger Zahler zu sein.
Im iPhone-Entwickler-Forum iPhone Dev SDK beschweren sich viele darüber, dass sie lange auf ihr Geld von Apple warten müssen [Anm.: Bedauerlicherweise zählen auch diverse Bundesinstitutionen dazu, das Geld entweder nicht rechtzeitig zu bezahlen, oder aber es werden doppelte Beträge bezahtl.] Ende März 2009 standen bei einer Reihe von Entwicklern noch die Zahlungen für Januar aus.
Das Bild ist uneinheitlich: Manche Entwickler sagten, sie erhielten regelmäßig Zahlungen, andere ab und zu. Ein Teilnehmer etwa gab an, Zahlungen für bestimmte Regionen, nicht aber für den USA bekommen zu haben. Ein weiterer schrieb, anfangs sei regelmäßig Geld eingegangen, aber seit Ende 2008 seien die Zahlungen ausgeblieben. Ein Entwickler hingegen wartete seit September 2008 auf Zahlungen. Apple schuldete ihm Ende März 6000 US-Dollar. Einem anderen, der unter dem Pseudonym kilobytedump firmiert, schuldete Apple sogar 10.000 US-Dollar.
Nachfragen scheinen nicht unbedingt zu helfen. Er sei verzweifelt, schreibt kilobytedump. Er bekomme keine Antworten auf seine Mails, eine Telefonnummer sei nirgendwo zu finden. Eine Erfahrung, mit der er nicht allein ist.
Ein Forumsteilnehmer indes bekam Mail von Apple und hat die Korrespondenz dokumentiert. Danach sei die Bank Schuld an der Verzögerung gewesen. Apple versprach zwar, sich zu kümmern, Geld erhielt der Betreffende jedoch nicht. Dafür bekam er auf seine beharrlichen Nachfragen die Aufforderung, keine Mails mehr zu schicken. "Die 22 Mails, die Sie uns in den letzten Tagen geschickt haben, grenzen an Belästigung. Wir bekommen jeden Tag tausende von Mails, und wir antworten sobald wird können" [Anm.: Ich finde dass schon eine Bodenlose Frechheit. Also ab zu Microsoft und dort für Windows Mobile entwickeln], so ein Mitarbeiter, der für die Finanzen des App Stores zuständigen Abteilung.
Viele Entwickler in dem Forum sind verärgert über die säumigen Zahlungen, den schlechten Service und die Ignoranz von Apple. Einige erwägen inzwischen, gerichtlich gegen das Unternehmen vorzugehen.

jQuery und der Vorher-Nachher-Effekt

06.05.2009 04:01:00 | Jürgen Gutsch

Im folgendem Beispiel geht es darum per JavaScript die selektierten Options eines Select-Elements in ein anderes zu schreiben. ‘source’ und ‘target’ sind die jeweiligen Quell- und Ziel-IDs der Select-Elemente.

Vorher (ohne jQuery):

var s = document.getElementById(source);
var t = document.getElementById(target);
var n;
for (var i = 0; i < s.options.length; i++)
{
  if (s.options[ i ].selected) 
  { 
    n = new Option(s.options[ i ].text, s.options[ i ].value, false, true); 
    t.options[t.options.length] = n; 
  } 
}
for (var i = s.options.length - 1; i >= 0; i—)
{
  if (s.options[ i ].selected) 
  { 
    s.options[ i ] = null; 
  } 
}

Nachher (mit jQuery):

$('#' + source + ' option:selected').remove().appendTo('#' + target);

So macht Refactoring erst richtig Spass :-)

DotNetKicks-DE Image

Ich krieg den Koller…

05.05.2009 18:51:02 | Daniel Schädler

Als die Wohnung vor gut 1.3 Jahren bezogen wurde, hatten wir schon gewusst dass die Überauung Baumgarten3plus entstehen würde. Nach der Durchsicht der Werbematerialen fand man: “Ach toll ein Naherholungsgebiet, welches genügend Wohnfläche für Familien bietet”. Bis heute hatten wir folgende Front:

 

Hinter den Sträuchern war eine wunderbare Baumreihe, mit der Betonung auf war. Aber leider hat man im Raumplanungsbüro der Stadt Bern kein Hirn und pflanzt dann einfach neue Bäume (toll 10 jährige hobelt man einfach ab). Ich könnt kotzen ab diesen Arschgeigen… smile_angry So schön sieht’s dann heute nach dem Besuch der Förster aus:

Toll nicht…

Frei verfügbar: Windows 7 Release Candidate jetzt herunterladen

05.05.2009 18:44:16 | Oliver Scheer

Ab sofort für alle – der Windows 7 Release Candidate steht jetzt zum freien Download zur Verfügung. Testen Sie selber die kommende Windows-Version schon heute: Diese Vorabversion, die als „Release Candidate“ bereits sämtliche für das Endprodukt vorgesehenen Funktionen aufweist, läuft erst im März 2010 ab. Entscheiden Sie sich für die 32- oder die 64-Bit-Version, und wählen Sie eine von 5 Sprachen aus, darunter selbstverständlich auch Deutsch und Englisch. Im MSDN Windows 7 Kundenvorschauprogramm erfahren Sie mehr über Umfang, Features und Möglichkeiten der womöglich letzten Testversion vor dem offiziellen Erscheinen von Windows 7. Im Windows Developer Center finden Sie außerdem eine ganze Reihe interessanter und nützlicher Ressourcen rund um die Entwicklung für Windows 7: Tools, Downloads, Artikel und Dokumentationen - alles, was das Developer-Herz begehrt. Zu empfehlen sind unter anderem der Windows 7 Developer Guide oder das Windows 7 Application Quality Cookbook. Oder laden Sie sich die neueste Version des Windows SDK herunter, für die ersten Entwicklungsversuche auf der neuen Windows-Version.

Software Strategy Summit im Video-Rückblick

05.05.2009 14:08:20 | Peter Kirchner

Mit dem „Software Strategy Summit“ fand am 24. April in Köln das aus Microsoft-Sicht in diesem Jahr wichtigste Strategie-Event für Softwarehersteller und System-Integratoren statt. Knapp eine Woche nach Ende der Veranstaltung sind jetzt im MSDN Event-Archiv die Video-Aufzeichnungen aller dort gehaltenen Vorträge abrufbar. Neben der bereits veröffentlichten Ansprache von Microsoft CEO Steve Ballmer sind mit dabei die Keynotes von MSDN Deutschland-Chef Dr. Said Zahedani und Bitkom-Vizepräsident Heinz Paul Bonn sowie insgesamt sieben Fachreferate, u.a. zu den Themen „Microsoft Software + Services Strategie, Windows Azure und die Azure Services Platform“, zur Microsoft Business Intelligence, zur neuen Windows Experience und zu den Office Business Applications.

Webcast Serie - Silverlight in Deep - AOP in Silverlight

05.05.2009 12:07:00 | Gregor Biswanger

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

Ab Silverlight 3 hat Microsoft es geschafft auf die GPU der Grafikkarte zuzugreifen und somit um die 3D Funktionalität erweitert. Beliebige Controls können folglich auf die unterschiedlichen Axen: X, Y und Z mittels Projection, eine 3D-Perspektive anzeigen lassen. Während dieses Feature für einige nur Spielereien sind, ist es wiederum für andere eine neue Möglichkeit der Usability Gestaltung. Als Beispiel wäre hier eine Flip3D Integration, die den Benutzer weitere Informationen auf der Rückseite einer Oberfläche anbieten kann. Dabei Animiert die Oberfläche als würde Sie sich nur umdrehen.

Um das 3D-Feature an einem Control einsetzen zu können, wird ein Unterelement mit Projection Deklariert. Darin wird ein weiteres Element mit einem Namen und Rotationen festgelegt. Bei einem einfachen Button würde der XAML-Code folgend aussehen:

Abb.1.1. – Ein Button in 3D Ansicht.

 

Abb.1.2. – XAML-Code für Projection

Dabei bleibt die volle Funktionalität der Controls beibehalten.

Oberflächen aufbauen

Der erste Schritt wäre das Aufbauen der beiden Oberflächen „Vorderseite“ und „Rückseite“. Das wird in diesem Beispiel mit zwei unterschiedlichen Grid-Elementen gemacht. Dabei bekommen beide einen Namen und die gleiche Größe. Unterschiedlich ist jedoch nur der Inhalt. Bei der ersten Oberfläche wird mittels Textbox der Name des Anwenders abgefragt. Wichtig hierbei ist bereits das Definieren von Projection, damit später darauf zugegriffen werden kann.

Abb.1.3. – Die erste Oberfläche (Vorderseite).

Abb.1.4. – XAML-Code für die erste Oberfläche

Als nächstes muss die zweite Oberfläche also die Rückseite aufgebaut werden. Der Anwender wird von seiner Eingabe in der TextBox mittels Element-Data-Binding (Neu ab Silverlight 3) im TextBlock begrüßt. Auch hier wird Projection definiert, allerdings mit einer Verschiebung der Ansicht. Das muss gemacht werden, damit diese Oberfläche nicht die erste Oberfläche überdeckt. Denn beide Grid-Oberflächen müssen in einer XAML liegen. Um das Umzusetzen muss nur die RotationY auf 270° gestellt werden.

Abb.1.5. – XAML-Code für die zweite Oberfläche (Rückseite)

Animation hinzufügen

Dass nun zwischen den beiden Oberflächen gewechselt werden kann, müssen zwei Animationen hinzugefügt werden. Animationen werden unter XAML in Storyboards gehalten. Daher wäre ein Storyboard für die Animation zur Rückseite und das zweite für das Anzeigen der Vorderseite zuständig. Die beiden Storyboards müssen als Resources außerhalb der beiden Grid´s liegen. Die Oberfläche der Vorderseite „GridUser“ wird dabei um 90° gedreht. Daraufhin wird die Rückseite „GridUserWelcome“, die sich bereits auf 270° befindet, auf 360° gedreht. Damit auf die 3D Funktionalität zugegriffen werden kann, muss mittels TargetName explizit auf die Projectionnamen Deklariert werden. Das TargetProperty gibt den Zugriff auf die einzelnen Eigeschaften der Projection. In diesem Fall wäre es RoationY.

Abb.1.6. – XAML-Code für die Animation

Als letzter Schritt müssen von beiden Oberflächen die Buttons mit Logik Programmiert werden. Obwohl hierbei die Logik nichts anderes ist, als die Animationen der Storyboards zu Starten.

Abb.1.7. – Source-Code der beiden Buttons

Das Flip3D ist jetzt fertig. Bei einer Business-Software können mit dieser Funktionalität eine ganz andere Perspektive zur Datenpflege aufgebaut werden.

 



Abb.1.8. – Die fertige Flip3D Anwendung

Fazit

Inspiriert von dieser Darstellung der Daten mittels Flip3D, wurde ich von Oliver Scheers – Silverlight 3 Beispielen. Hierbei finde ich sehr schön wie man den Wechsel der Inhalte angezeigt bekommt. Sehr Interessant dabei ist die integrierte Reflection, die bereits zur Laufzeit die nächste Oberfläche zur Verfügung stellt.

Source-Code Download

SilverlightFlip3DExample.zip (559,22 kb)

Dritter .NET-Stammtisch Konstanz-Kreuzlingen

05.05.2009 08:20:00 | Jürgen Gutsch

Am 13 Mai 2009 um 19:00 Uhr ist es wieder soweit: Der .NET-Stammtisch Konstanz-Kreuzlingen trifft sich zum dritten Mal zu einer kleinen Vortragsrunde.

Treffpunkt ist wie immer der Raum F023, im Gebäude F der FH-Konstanz (Brauneggerstrasse 55, 78462 Konstanz)

Die Themen des dritten Treffen stehen bereits fest. Es sind zwei halbstündige Vorträge vorgesehen mit jeweils viel Zeit für Diskussionen im Anschluss.

  1. Eine Einführung in LINQ von Peter Bucher. Speziell LINQ allgemein und LINQ to Objects. (LINQ to SQL und LINQ to XML werden sicher angeschnitten)
  2. Timur Zanagar wird uns eine Einführung in die Möglichkeiten von Silverlight geben.

Für das vierte Treffen, am 10. Juni 2009, werden noch Vortragsthemen und Vortragende gesucht. Wer also einen Vorschlag machen möchte und/oder selber einen kleinen Vortrag halten möchte. Darf uns seinen Vorschlag gerne hier anmelden.

DotNetKicks-DE Image

Windows 7 RC für MSDN Subscriber / Beta bis 1. Juli 2009 aktualisieren

04.05.2009 18:37:53 | Peter Kirchner

Inhaber einer MSDN Subscription können seit Donnerstag den offiziellen Release Candidate (RC) von Windows 7 herunterladen. Zur Verfügung stehen auch deutschsprachige Versionen, natürlich sowohl für 32- wie auch für 64-Bit-Architekturen. Der Status "Release-Kandidat" sagt aus, dass diese Vorabversion bereits über sämtliche für das fertige Produkt vorgesehene Funktionalität verfügt, gewährt dazu aber noch keine grundsätzliche Fehlerfreiheit: Download Windows 7 RC auf MSDN Online.

Interessenten ohne MSDN-Abonnement erhalten ab dem 5. Mai 2009 Gelegenheit zum Download. Im MSDN Windows Developer Center finden Sie auch weiterführende Informationen.

Hinweis: Aktualisieren Sie Windows 7 Beta rechtzeitig auf den Release Candidate

Nutzer der Beta-Version von Windows 7 sollten bis zum 1. Juli 2009 den Umstieg auf den Release Candidate vollzogen haben. Denn nach diesem Datum ist die Beta-Version nur noch bis zum 1. August und, durch zweistündliches Herunterfahren, sehr eingeschränkt nutzbar - etwa für letzte Datensicherungen. Zwei Wochen vor dem kritischen Termin wird die Beta-Version Sie mit entsprechenden Warnhinweisen an diese Einschränkungen erinnern.

Dotnet-kicks.de Button in Google Blogger (Blogspot) integrieren

04.05.2009 16:30:42 | Jan Welker

Wer seinen Blog bei Google betreibt, kann sehr einfach einen Button von dotnet-kicks.de unter jeden Blogpost einsetzen. Die folgenden Schritte sind dafür notwendig:

1.    einloggen in den Blog
2.    auf Anpassen klicken um die Konfigurationsoberfläche aufzurufen
3.    auf den Tab Layout klicken
4.    im Menü auf HTML bearbeiten klicken
5.    den Haken in der CheckBox Vorlagen zum Erweitern von Widgets setzen
6.    in dem HTML Code nach <data:post.body/> suchen (etwa in der Mitte)
7.    direkt danach wird folgender HTML Code eingefügt:

<!--
dotnet-kicks.de Button Start -->

<p><a expr:href='&quot;http://dotnet-kicks.de/submit/?url=&quot; + data:post.url + &quot;&amp;title=&quot; + data:post.title' expr:id='data:widget.instanceId + &quot;_kickit&quot;' ><img border="0" alt='Kick It on dotnet-kicks.de' expr:src='&quot;http://dotnet-kicks.de/Services/Images/KickItImageGenerator.ashx?url=&quot; + data:post.url'/></a></p>
<!-- dotnet-kicks.de Button End -->

8.    Auf Vorlage Speichern klicken
9.    Fertig!

dnk_blogspot

Ab sofort wird unter jedem Beitrag der dotnet-kicks.de – Button angezeigt.

Wir möchten Ihre Fragen! Nächste Lift Off-Runde zu Content Management Systemen!

04.05.2009 13:52:51 | Oliver Scheer

In der nächsten Lift Off-Runde stellen Content Management Systeme (CMS) das zentrale Thema. Anhand eines Szenarios stellen wir Ihnen die Integration von Web-Anwendungen, Web-Services und den dazu notwendigen Datenbank- und Webserver-Technologien vor. Als CMS in diesem Szenario werden wir Umbraco verwenden. Umbraco ist ein kostenfreies, quelloffenes CMS-Projekt, das Sie auf CodePlex finden können.

Die nächste Ausgabe von Lift Off werden wir nicht mehr als Workshop anbieten, sondern es wird ein rein virtuelles, mehrteiliges Training sein. Wie bisher bei Lift Off werden Sie auch hier am Ende des Trainings ein fertiges Szenario mit nach Hause nehmen können, das Sie als Referenzanwendung verwenden können.

Im Vorfeld möchten wir gerne Ihre Fragen sammeln, die wir im Training versuchen werden zu beantworten. Folgende Themen werden wir abdecken. Haben Sie dazu Fragen, so lassen Sie dies uns wissen! Schreiben Sie Ihre Fragen bitte bis zum 10.05.09 an Peter Kirchner!

  • Verwendung des Web Platform Installer zur Installation aller benötigten Web-Server-Anwendungen
  • Installation des IIS, SQL Server 2008 Express und Umbraco
  • Erstellung von Design und Layout mithilfe von Expression Web 2
  • Spezifisch Umbraco: Konfiguration, Erstellung von Document Types, Programmierung gegen das Objekt-Modell, Verwendung nach Zielgruppen (Redakteure, Administratoren und Endnutzer)
  • Einbindung von Live Maps in Ihre Web-Anwendung (Standorte und Routen)
  • Programmatische Anpassung von Umbraco unter Verwendung von Visual Web Developer 2008 (Express Edition)
  • Verwendung des CMS Umbraco für Standardszenarien wie
    • Verfassen von Artikeln
    • Wiederherstellung von Dokumenten
    • Versionierung
    • Zeitgesteuertes Veröffentlichen
    • Roll Out
    • Backup- und Restore

Weitere Infos zu unseren Aktivitäten für Softwarehersteller finden Sie wie immer auch auf MyMSDN für Softwarehersteller.

Microsoft Innovation Award 2009

04.05.2009 12:51:00 | Jens Peter Kleinau

Mit unserem Projekt haben wir den Microsoft Innovation Award 2009 gewonnen. Mit uns zusammen waren es insgesamt 4 Gewinner, die sich über diese Auszeichnung freuen können. Ich freue mich an dieser Stelle stellvertretend für alle am Projekt beteiligten Menschen und Firmen wie Telekom AG, ATE Software GmbH, Powerflasher GmbH und Marmiko IT-Solutions GmbH. Und hier die offizielle Pressemeldung...

[[ This is a content summary only. Visit my website for full links, other content, and more! ]]

Wir möchten Ihre Fragen! Nächste Lift Off-Runde zu Content Management Systemen!

04.05.2009 12:24:43 | Peter Kirchner

In der nächsten Lift Off-Runde stellen Content Management Systeme (CMS) das zentrale Thema. Anhand eines Szenarios stellen wir Ihnen die Integration von Web-Anwendungen, Web-Services und den dazu notwendigen Datenbank- und Webserver-Technologien vor. Als CMS in diesem Szenario werden wir Umbraco verwenden. Umbraco ist ein kostenfreies, quelloffenes CMS-Projekt, das Sie auf CodePlex finden können.

Die nächste Ausgabe von Lift Off werden wir nicht mehr als Workshop anbieten, sondern es wird ein rein virtuelles, mehrteiliges Training sein. Wie bisher bei Lift Off werden Sie auch hier am Ende des Trainings ein fertiges Szenario mit nach Hause nehmen können, das Sie als Referenzanwendung verwenden können.

Im Vorfeld möchten wir gerne Ihre Fragen sammeln, die wir im Training versuchen werden zu beantworten. Folgende Themen werden wir abdecken. Haben Sie dazu Fragen, so lassen Sie dies uns wissen! Schreiben Sie Ihre Fragen bitte bis zum 10.05.09 an Peter Kirchner!

  • Verwendung des Web Platform Installer zur Installation aller benötigten Web-Server-Anwendungen
  • Installation des IIS, SQL Server 2008 Express und Umbraco
  • Erstellung von Design und Layout mithilfe von Expression Web 2
  • Spezifisch Umbraco: Konfiguration, Erstellung von Document Types, Programmierung gegen das Objekt-Modell, Verwendung nach Zielgruppen (Redakteure, Administratoren und Endnutzer)
  • Einbindung von Live Maps in Ihre Web-Anwendung (Standorte und Routen)
  • Programmatische Anpassung von Umbraco unter Verwendung von Visual Web Developer 2008 (Express Edition)
  • Verwendung des CMS Umbraco für Standardszenarien wie
    • Verfassen von Artikeln
    • Wiederherstellung von Dokumenten
    • Versionierung
    • Zeitgesteuertes Veröffentlichen
    • Roll Out
    • Backup- und Restore

Weitere Infos zu unseren Aktivitäten für Softwarehersteller finden Sie wie immer auch auf MyMSDN für Softwarehersteller.

.NET Open Space

04.05.2009 11:35:53 | Thomas Schissler

.NET Open Space vom 11.07. bis 12.07.2009 in Ulm

Zusammen mit Alexander Zeitler organisiere ich den .Net Opensapce Süd 2009. Seit heute ist die offizielle Homepage online und ich freue mich, die Veranstaltung hier ankündigen zu dürfen.

Die besten Gespräche hat man fernab von einer festgelegten Agenda, bei einem Kaffee und beim "du". Dort gibt es keine Rollenaufteilung in Sprecher / Zuhörer, Entwickler / Administrator usw. und die Themen finden sich vor Ort ganz von selbst. Das ist die Idee vom .NET Open Space, die sich bereits 2008 in Leipzig bewährt hat. Hier sind alle gleich. Auch die Organisatoren halten sich im Hintergrund und moderieren nur ab und an etwas.

Der .NET Open Space Süd 2009 läuft vom 11.07.2009 bis 12.07.2009. Welche Inhalte in dieser Zeit bearbeitet werden, wird vor Ort bestimmt, denn die Veranstaltung ist Open Space.

Die Teilnahme ist kostenlos. Die Teilnehmer gestalten das Programm selbst. Erfahrungsaustausch ist das A und O und steht im Vordergrund.

Mehr Informationen und Anmeldung unter: http://ulm.netopenspace.de

Ich würde mich natürlich freuen, möglichst viele bekannten Gesichter und den einen oder anderen Leser meines Blogs bei diesem Event begrüßen zu dürfen. Ausdrücklich möchte ich betonen, dass dies nicht nur ein Event für Experten ist, sondern dass natürlich auch Teilnehmer willkommen sind, die sich noch nicht für solche halten.

An dieser Stelle auch ein herzliches Dankeschön an Torsten Weber und Alexander Groß für die Unterstützung bei der Einrichtung der Website für den .NET Open Space Süd 2009.

Microsoft Windows 7 RC (Build 7100) – Installiert und akzeptiert

04.05.2009 11:25:48 | Jan Schenk

Ich habe am Freitag tatsächlich zeitgleich mit der Veröffentlichung des Release Candidate für Windows 7 Zeit gehabt, ihn gleich auf meinen Laptop zu spielen. Zugegebenermassen wollte ich aus Glaubensgründen kein Update wagen, insofern habe ich meine Systempartition platt gemacht um eine frisch-fromm-sauber-fröhliche Neuinstallation zu haben.

Ich war kurzzeitig überrascht, als mir die Partitionstabelle bei der Installation anzeigte, dass meine Datenpartition randvoll war, dann fiel mir wieder ein, dass die Ursache dafür mit Sicherheit der installierte BitLocker ist. Also ohne Bedenken weiter mit der Installationsroutine. Für die Systempartition hatte ich BitLocker deaktiviert. Da lief alles sehr einfach durch.

Nach etwa 30 Minuten war dann meine Installation fertig. Große Überraschungen gab es für mich keine, da ich ja bereits davor die Beta auf der gleichen Kiste hatte.

Was anders ist als in der Beta?
Keine Ahnung, die Build-Nummer rechts unten?
Stabilität, Geschwindigkeit und Aussehen waren schon in der Beta überzeugend. Ich freue mich auf meinen ersten Multitouch-Rechner, um dann alle Vorteile und vor allem die neue Optik von Windows 7 nutzen zu können.

Ach, und IE8. War der IE8 Beta un-updateable in der Windows 7 Beta, habe ich nun endlich auch die finale Version. Werde nachher mal noch SpicIE ausprobieren. Und die Entwickler-Version von MSDN.

Lust auf Windows 7 bekommen?

ab 5. Mai hier!

Aufrufenden Typen einer Methode identifizieren

04.05.2009 11:04:00 | Thorsten Hans

Mit der Klasse StackFrame aus dem Diagnostics Namespace kann man den aufrufenden Typ einer Methode oder einer Property herausfinden.

Lt. MSDN ist die API allerdings für die .Net Framework Infrastruktur vorgesehen und sollte nicht direkt im Code verwendet werden. Falls es doch benötigt sein sollte hier kurz ein Snippet wie man den aufrufenden Typ herausfindet.

StackFrame frame = new StackFrame(1); 
Type callingType = frame.GetMethod().DeclaringType;

Wichtig ist hierbei der Integer Wert der als Parameter an den Konstruktor gegeben wird, er bestimmt die Anzahl an Schritten die im Stack Frame zurückgegangen werden soll.

 

Technorati-Tags: ,,

.NET Open Space Süd 2009

04.05.2009 07:07:01 | Jürgen Gutsch

.NET Open Space vom 11.07. bis 12.07.2009 in Ulm

Die besten Gespräche hat man fernab von einer festgelegten Agenda, bei einem Kaffee und beim "du". Dort gibt es keine Rollenaufteilung in Sprecher / Zuhörer, Entwickler / Administrator usw. und die Themen finden sich vor Ort ganz von selbst. Das ist die Idee vom .NET Open Space, die sich bereits 2008 in Leipzig bewährt hat. Hier sind alle gleich. Auch die Organisatoren halten sich im Hintergrund und moderieren nur ab und an etwas.

Der .NET Open Space Süd 2009 läuft vom 11.07.2009 bis 12.07.2009. Welche Inhalte in dieser Zeit bearbeitet werden, wird vor Ort bestimmt, denn die Veranstaltung ist Open Space. Die Teilnahme ist kostenlos. Die Teilnehmer gestalten das Programm selbst. Erfahrungsaustausch ist das A und O und steht im Vordergrund. Mehr Informationen und Anmeldung unter: http://ulm.netopenspace.de

Der .NET-Stammtisch Konstanz-Kreuzlingen unterstützt selbstverständlich den .NET Open Space Süd 2009 mit (hoffentlich) einer Menge Teilnehmern und Interessenten.

DotNetKicks-DE Image

Suchanbieter für eine Webseite erstellen

03.05.2009 19:50:12 | Jan Welker

Von vielen Webseiten kennt man Suchanbieter, die sich in das kleine Suchfenster aller gängigen Browser integrieren lassen. Mit diesen Suchanbietern kann auf der entsprechenden Webseite gesucht werden, auch wenn man sich gerade nicht auf dieser Webseite befindet. Dabei macht der Suchanbieter nichts anderes, als die bereits vorhandene Query-URL der Webseite aufzurufen und das gesuchte Wort an diese URL zu übergeben. Bei den meisten dynamischen Webseiten ist so eine Suchseite schon vorhanden. Hier zum Beispiel die URL für dotnet-snippets.de:

http://dotnet-snippets.de/dns/Default.aspx?query=Mathe

Um die Suchseite und den Browser zusammen zu bringen hat Amazon.com bzw. A9.com die OpenSearch Technik entwickelt. Die Integration dieser Technik in eigene Seiten ist einfach.
Als erstes legt man eine XML Datei mit dem folgenden Inhalt an.

<?xml version="1.0" encoding="UTF-8" ?> 

<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
<ShortName>dotnet-snippets.de</ShortName>
<Description>Search .net Codesnippets</Description>
<Image>src="http://www.dotnet-snippets.de/dns/bilder/net.ico"</Image>
<Url type="text/html" template="http://dotnet-nippets.de/dns/default.aspx?query={searchTerms}" />
</OpenSearchDescription>

Diese Datei enthält die folgenden Parameter, die für dotnet-snippets.de gültig sind. Diese sollten für die eigene Webseite angepasst werden. Ich habe die Parameter als Beispiel drin gelassen.

ShortName: Eine kurze Beschreibung, zB. der Name der Webseite
Description: eine Beschreibung, die aussagt was auf der Webseite zu finden ist
Image: eine URL zu einem so genannten FavIcon, ein Icon welches 16x16 Pixel groß sein sollte
(Diese FavIcons kann man sehr komfortabel hier kostenlos erstellen: http://www.favicon-generator.de/)
Url type: Das ist die URL der Suchseite mit dem Platzhalter {searchTerms}. In diesen Platzhalter fügt dann der Suchanbieter den gesuchten Text ein.

Nach dem Hochladen dieser XML Datei auf den Webserver muss die Datei noch verlinkt werden. Den Link platziert man im Head der Webseite:

<link title="dotnet-snippets.de
- Suche" type="application/opensearchdescription+xml" rel="search" href="http://dotnet-snippets.de/dns/Tools/dns.xml" />

Der Title und der href muss hier wieder individuell angepasst werden. Verwendet man eine ASP.NET Masterpage, sollte der Link im Head der Masterpage positioniert werden.

Wurde die XML Datei richtig verlinkt, erkennt nun der Browser den Suchanbieter und zeigt dies an:

suchanbieter

Möchte man den Besucher der Webseite auf den Suchanbieter hinweisen, kann man einen Link anbieten, um den Suchanbieter zu installieren:

<a href="javascript:window.external.AddSearchProvider("URL
zur XML Datei");" onclick="">Suchprovider
installieren</a>

Weiterführende Informationen und optionale Parameter für die XML Datei befinden sich auf der Webseite von opensearch.org und in der MSDN.

Ich denke, das ist eine sinnvolle Ergänzung für jede dynamische Webseite, die kaum Arbeit kostet.

Colorize your Outlook messages to identify e-mail from specific senders

03.05.2009 14:29:00 | Ozgur Aytekin

A simple but highly useful way to stay on top of important e-mail is to have Outlook display messages from different people in different colors. Here’s a quick rundown of how to set this up.

Expecting important mail? Identify it as soon as it comes in by displaying it in a distinctive color. Start by select an existing message from the sender in question, if you have one. If you don’t, that’s okay; you can enter the sender’s name manually in a minute. Now follow these steps:

http://blogs.techrepublic.com.com/msoffice/?p=615&tag=nl.e056

Free eBook: Practical .NET Unit Testing

03.05.2009 13:02:40 | Robert Mühsig

image Wieder ein nettes eBook zum Thema Unit Testing:

- Practical .NET Unit Testing

ShareThis

Die 2 Fragezeichen ?? ... und die null

03.05.2009 12:26:00 | Wolfgang Kluge

Nicht unbekannt - aber dennoch nicht gerade oft verwendet - fristet der c#-Operator ?? sein dasein. Zu Unrecht? Lässt sich doch mit diesem recht einfach testen, ob in einer Objektvariable ein Objekt oder null steht und entsprechend etwas anderes zurückgeben. In dem Beispiel

string test1 = null, test2 = "irgendwas";
Trace.WriteLine( test1 ?? "(null)" );
Trace.WriteLine( test2 ?? "(null)" );

wird - wie man sich bestimmt schon denken kann - zuerst "(null)" und dann "irgendwas" ausgegeben. Oder zu Deutsch: Es wird der linke Operand zurückgegeben, falls dieser nicht null ist, ansonsten wird der rechte Operand zurückgegeben.

Damit wird einem c#-Entwickler eine sehr einfache und leserliche Möglichkeit gegeben, auf null-Werte zu reagieren. Selbstverständlich kann man mit dieser Schreibweise auch "Schindluder" betreiben und den Code so unleserlich wie nur irgend möglich gestalten. Wenn man das aber nicht vorhat, warum dann nicht verwenden?

Ich hab mir mal die verschiedenen Möglichkeiten zusammengeschrieben, die alle das Gleiche bewirken:

//Version 1
return _test ?? "";

//Version 2
if( _test == null ) {
    return "";
} else {
    return _test;
}

//Version 3
if( _test != null ) {
    return _test;
} else {
    return "";
}

//Version 4
return _test == null ? "" : _test;

//Version 5
return _test != null ? _test : "";

Danach hab ich mir den generierten MSIL-Code angeschaut. Die Version 1 mit den ??  ist wirklich der kürzeste. Es wird nur eine lokale Variable verwendet. Die Variable auf dem Stack wird mittels "dup" dupliziert. In allen anderen Versionen wird die Variable 2x auf den Stack geschrieben (1x zum Testen, 1x zum zurückgeben, falls nicht null). Die Versionen mit der if-Abfrage verwenden sogar eine weitere lokale Variablen (bool) für das Testresultat.

Der IL-Code sieht also tatsächlich besser aus. Danach hab ich einen kleinen Test zusammengeschrieben. Sollten wirklich massive Unterschiede zu finden sein?

Naja, ich kann eindeutig sage: es kommt drauf an ;) Gleich vorweg. Die Unterschiede sind eigentlich zu gering um überhaupt beachtet zu werden (weswegen ich auch auf die Darstellung und Beschreibung der y-Achse verzichte - die Unterschiede sind wirklich nicht relevant). Unterschiede gibt es aber dennoch. Insgesamt am Besten schnitt bei den Tests die Versionen 4 ab. Man sieht - auch weniger IL-Code ist nicht immer schneller ausgeführt. Es kommt immer auf die Optimierung an.

 

Damit ?? aber nicht vollkommen unnütz dasteht, will ich noch eine relativ unbekannte Möglichkeit beschreiben. Auch Nullable Types arbeiten mit diesem Operator so zusammen, wie man sich das wünscht. D.h. ohne die Eigenschaft HasValue direkt angeben zu müssen. Mit den Anweisungen

int? test_1 = null;
int? test_2 = 3;

Trace.WriteLine( test_1 ?? 0 );
Trace.WriteLine( test_2 ?? 0 );

schreibt man somit erst 0 und dann 3 in das TraceLog. Im Hintergrund wird immer noch "HasValue" befragt (nur schreiben muss man es nicht). Die Performanceunterschiede sind zwar auch hier fast unnötig zu erwähnen, aber dennoch:

So haben dann auch die 2 Fragezeichen durchaus Ihre Berechtigung. Zumindest im Durchschnitt sind diese bei Nullable-Types zu bevorzugen.

Warum ist die ICMP-Verarbeitung unter Vista so langsam?

02.05.2009 13:38:00 | Klaus Bock

Aus gegebenem Anlass habe ich ein altes Testprojekt heraus gekramt, welches ein ganzes Netzwerk-Segment parallel pingt. In dieser Artikelserie habe ich mich damals damit näher befasst. Dieses Projekt habe ich damals noch unter Windows XP entwickelt. Jetzt unter Vista in Visual Studio geladen, F5 … und das Erstaunen war groß. Während ich unter XP noch eine Verarbeitungszeit von um die 4 Sekunden hatte, benötigte die Anwendung unter Vista nahezu 10 mal so lange. Das kann nicht sein! Also habe ich die Anwendung auf mein altes XP Notebook kopiert und gestartet. Das Ergebnis war verblüffend. Die Verarbeitungszeit lag auf dem XP Rechner immer noch unter 4 Sekunden. Wie man an den folgenden Screenshots sehen kann, wird bis auf die Verarbeitungszeit und die ID der erzeugten Threads, ein identisches Ergebnis geliefert.
Zuerst das Ergebnis unter XP:

ParallelScanXP

und hier das Ergebnis unter Vista:

ParallelScanVista

Auf beiden Rechnern ist die aktuelle .NET Version installiert, sowie die gleich Version der ParallelFX. Beiden Rechner sind via WLAN am gleichen Accesspoint im selben Netzsegment. Der gravierende Unterschied ist neben der RAM-Ausstattung die CPU. Das XP Notebook benutzt noch einen Intel P4 mit Hyperthreading Technologie der mit 3.2 GHz getaktet ist, wogegen das Vista Notebook über einen Core2Duo verfügt, der mit 2 GHz taktet. Wenn also hier ein Unterschied in der Verarbeitungsgeschwindigkeit auftritt, sollte dieser sich im Bereich von wenigen Millisekunden bewegen und nicht im Bereich eines Faktor 10. Als Desktopfirewall wird bei beiden OneCare verwendet. Bei beiden ist die Testanwendung in der Firewall freigegeben. Da bei beiden die Anwendung mit identischer Codebasis zum Einsatz kommt, kann es auch kein Fehler im Algorithmus sein.

Was bewirkt also diesen gravierenden Leistungsunterschied?
Es bleibt eigentlich nur der unterschiedliche TCP/IP-Stack der beiden unterschiedlichen Betriebssysteme übrig. eigentlich sollte Vistas neuer TCP/IP-Stack doch deutliche Verbesserungen in Sachen Leistung und Geschwindigkeit bringen. Zumindest wenn man diesem und diesem Artikel glauben darf.
Das Vista im Moment noch Probleme mit dem WLAN hat, der deutlich wird wenn ein Computer aus dem Standby geholt wird, ist bekannt und soll mit dem SP2 gefixt werden. Vieleicht wird ja auch die Verarbeitungsgeschwindigkeit des ICMP-Protokoll wieder etwas flotter.

Daraus ergibt sich für mich folgendes Bild: Was helfen mir die schnellsten parallelen Algorithmen, wenn die ausführende Schicht alles wieder zu Nichte macht.

Technorati-Tags: | | |

Partitionierte Views anlegen

02.05.2009 13:23:00 | Wolfgang Kluge

Mit Partitionierung ist ein Aufteilen der Daten anhand bestimmter Kriterien gemeint - vor allem riesige Datenbestände können so einen echten Performancegewinn "erleiden" ;) Man kann dabei auch auf Remote-Tabellen zugreifen(Distributed Partitioned View) - aber dieser Artikel soll nur eine kleine Einführung geben.

Partitionierte Views sind dabei kein wirklicher Ersatz für die partitionierten Tabellen. Man kann sich aber zumindest teilweise helfen.

Eine partitionierte View und deren Tabellen unterliegen einigen Einschränkungen. So muss die Kriteriumsspalte innerhalb des Primary Keys vorkommen (oder selbst der Primary Key sein) und eine Identity-Spalte führt zum Fehler. Alle Tabellen müssen gleiche Primary Keys vorweisen. Das Kriterium muss der jeweiligen Tabelle mittels CHECK-Einschränkung bekannt gegeben werden. Dabei darf die CHECK-Einschränkung nur aus folgenden Operatoren bestehen: AND, OR, BETWEEN, <, <=, =, >= und >. Da gibt es noch ein paar Einschränkungen, aber für den Anfang muss das ausreichen...

Ein einfacher Aufbau sieht z.B. so aus:

CREATE TABLE Test_PartitionedView_1(
    ID int,
    ReportYear int,
    Value int,
    CHECK ( ReportYear<2000 ),
    PRIMARY KEY(
        ID,
        ReportYear
    )
)
CREATE TABLE Test_PartitionedView_2(
    ID int,
    ReportYear int,
    Value int,
    CHECK ( ReportYear>=2000 AND ReportYear<2005 ),
    PRIMARY KEY(
        ID,
        ReportYear
    )
)
CREATE TABLE Test_PartitionedView_3(
    ID int,
    ReportYear int,
    Value int,
    CHECK ( ReportYear>=2005 ),
    PRIMARY KEY(
        ID,
        ReportYear
    )
)
GO
CREATE VIEW Test_PartitionedView
AS
    SELECT  ID,
            ReportYear,
            Value
    FROM    Test_PartitionedView_1
    UNION ALL
    SELECT  ID,
            ReportYear,
            Value
    FROM    Test_PartitionedView_2
    UNION ALL
    SELECT  ID,
            ReportYear,
            Value
    FROM    Test_PartitionedView_3
GO

Nachdem die 3 Tabellen und die dazugehörige View erstellt wurde, ist eigentlich auch schon alles fertig. Die View kann direkt angesprochen werden. INSERT INTO funktioniert genauso wie UPDATE und DELETE(das klappt aber nur, weil die View keine Joins oder ähnliches beinhaltet!).

Man kann z.B. ein paar Daten einspielen

INSERT INTO Test_PartitionedView (ID, ReportYear, Value)
SELECT  ROW_NUMBER() OVER(ORDER BY ReportYear, Value),
        ReportYear,
        Value
FROM    (
                   SELECT 1998 AS ReportYear, 1 AS Value
             UNION SELECT 1999, 1
             UNION SELECT 1998, 2
             UNION SELECT 1998, 3
             UNION SELECT 1998, 4
             UNION SELECT 1998, 5
             UNION SELECT 1998, 7
             UNION SELECT 2000, 1
             UNION SELECT 2000, 2
             UNION SELECT 2004, 1
             UNION SELECT 2004, 2
             UNION SELECT 2004, 3
             UNION SELECT 2004, 4
             UNION SELECT 2004, 5
             UNION SELECT 2004, 6
             UNION SELECT 2007, 1
             UNION SELECT 2007, 4
             UNION SELECT 2007, 5
             UNION SELECT 2009, 1
             UNION SELECT 2009, 2
        ) AS ins

und dabei zuschauen, wie der SQL Server die "Magie" übernimmt. Denn der Verteilt nun die Daten auf die 3 Tabellen, was einfach zu überprüfen ist.

SELECT * FROM Test_PartitionedView_1
SELECT * FROM Test_PartitionedView_2
SELECT * FROM Test_PartitionedView_3

Bei der Aktualisierung müsste aufgepasst werden, wenn's der SQL Server nicht automatisch übernehmen würde. Die Aktualisierung

UPDATE Test_PartitionedView
SET    ReportYear = 2009
WHERE  ID = 2

verschiebt den entsprechenden Eintrag aus der ersten Tabelle in die dritte.

Jetzt fragt man sich vollkommen zu recht: "Was soll das?". Nun ja, auf den ersten Blick bringt es - außer eventuell zusätzlichen Aufwand - nicht wirklich viel. Vorstellbar ist, die 3 Tabellen nun auf (physikalisch) unterschiedlichen Festplatten zu speichern und damit einen nicht unerheblichen Performancevorteil zu ergattern. Noch weitaus besser ist aber der Abfrageoptimierer - denn der Arbeitet immer *g*.

Der schafft es nämlich bei Abfragen mit Literalwerten für die Kriteriums-Spalte, nur die entsprechenden Tabellen überhaupt zu bemühen. Dazu folgende Beispiele:

SELECT *
FROM   Test_PartitionedView

Hier werden alle Daten abgefragt und dementsprechend natürlich auch alle Tabellen involviert. Der Abfrageplan sieht so aus

SELECT *
FROM   Test_PartitionedView
WHERE  ReportYear BETWEEN 1990 AND 2004

Hier werden nur noch die Daten aus den ersten beiden Tabellen abgefragt. Der Abfrageplan ist entsprechend gekürzt.

Bei riesigen Tabellen bringt das schon einiges - vor allem, wenn man die Aufteilung geschickt wählt.

Leider gilt das, wie bereits erwähnt, nur für Literale in der Abfrage. Wird das Jahr als Variable übergeben, so greift die Optimierung leider nicht mehr (ist ja auch klar, die Abfragen sollten ja möglichst mit allen möglichen Daten funktionieren). Es gibt aber dennoch unzählige Fälle, in denen man partitionierte Views verwenden kann (seid kreativ *g*).

Filtern von Collections unter WPF

02.05.2009 03:36:02 | Norbert Eder

Daten können auf unterschiedlichste Weisen gefiltert werden. Eine Variante besteht darin, die Daten bereits gefiltert aus der Quelle (Datenbank, XML, etc.) zu lesen und in einem ItemsControl (ListBox, ComboBox, ListView etc.) anzuzeigen. Soll nun dieselbe Collection in unterschiedlichen Elementen auf Basis einer bestimmten Filterung...

Views mit INSTEAD OF UPDATE-Trigger

01.05.2009 19:01:00 | Wolfgang Kluge

Ich stand vor der Problemstellung, eine Tabelle zu optimieren, da die Tabelle an vielen Stellen verwendet wird aber gleichzeitig dafür zu sorgen, dass die Umstellung "abwärtskompatibel" bleibt.

Die Tabelle ist schon etwas älter, mittlerweile gut gefüllt und es werden einige Daten ständig wiederholt - ich wollte also als erstes mal umstrukturieren. Mein erster Gedanke war, eine View zu verwenden, damit andere Abfragen noch genauso funktionieren wie zuvor. Am Anfang reicht es aus, die "wichtigsten" Abfragen zu optimieren und mit der Zeit könnte man dann langsam alle anderen Abfragen ändern sprich optimieren.

Gesagt, getan. Ich habe also die Tabellen angelegt und eine View nach dem Vorbild der Ursprungstabelle angelegt (und aus Performancegründen eine Indexed View verwendet). Damit auch INSERT-, UPDATE- und DELETE-Anweisungen weiterhin funktionieren, wurden entsprechende INSTEAD OF-Trigger geschrieben...

Doch dann durchkreuzte eine simple aber folgenreiche Fehlermeldung mein ganzes Vorhaben.

Msg 414, Level 16, State 1, Line <line>
UPDATE ist nicht zulässig, weil die Anweisung die "<view name>"-Sicht aktualisiert, die an einer Verknüpfung beteiligt ist und einen INSTEAD OF UPDATE-Trigger aufweist.

bzw.

Msg 414, Level 16, State 1, Line <line>
UPDATE is not allowed because the statement updates view <view name> which participates in a join and has an INSTEAD OF UPDATE trigger

Und nun? Es war schnell herausgefunden, dass mit "an Verknüpfung beteiligt" das UPDATE-Statement selbst gemeint ist. Nach einigen Tests und noch mehr Recherche fand ich dann heraus, dass es an dem UPDATE...FROM Statement liegt. Ein einfaches UPDATE-Statement(nach ANSI-Standard) funktioniert dagegen hervorragend.

Wozu diese Einschränkung gut sein soll weiß ich nicht. Bei Tabellen funktioniert das Spiel wie gewohnt. Nur Views unterliegen dieser Einschränkung.

Wer's selbst mal probieren will:

CREATE VIEW Test_InseteadOfUpdate
AS
    SELECT 1 AS test
GO

CREATE TRIGGER dbo.OnUpdate
            ON dbo.Test_InseteadOfUpdate
    INSTEAD OF UPDATE
AS BEGIN
    SET NOCOUNT ON
END
GO

--Funktioniert
UPDATE Test_InseteadOfUpdate
SET    test = 2
WHERE  test = 1

GO

--Fehler
UPDATE Test_InseteadOfUpdate
SET    test = upd.b
FROM   (
           SELECT 1 AS a,
                  2 AS b
       ) AS upd
WHERE test = upd.a


GO
DROP VIEW Test_InseteadOfUpdate

Der ANSI-Standard erlaubt auch Unterabfragen. Aber das bringt (zumindest mir) nicht viel, da die bisherigen Abfragen auch ohne jegliche Anpassung noch funktionieren sollen.

Das Gleiche gilt im Übrigen auch für DELETE-Anweisungen und INSTEAD OF DELETE-Trigger auf Views...

Woran erkennt man einen guten Entwickler?

01.05.2009 09:37:00 | Peter Bucher

Am 13. Oktober 2008 haben Golo Roden und ich unter dem Titel Noch Fragen, Golo? 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. Mai 2009, ist es nun wieder so weit, und unser Thema für diesen Monat lautet:

Woran erkennt man einen guten Entwickler?

So wohl Golo wie auch ich haben uns unabhängig voneinander im Vorfeld unsere Gedanken gemacht, wie wir diesem Thema gegenüberstehen. Golos Kommentar findet sich zeitgleich in seinem Blog, folgend nun mein Kommentar zu diesem Thema:

Woran erkennt man einen guten Entwickler? 

Es gibt meiner Meinung nach drei Haupttypen von “Softwareakrobaten”:

  1. Programmierer (Implementierer)
  2. Entwickler
  3. Architekt

Der Programmierer bekommt meistens eine Vorlage, wie das Design einer Software aussehen soll und programmiert diese aus.
Er hat im optimalen Fall gute Erfahrung was die Implementierung angeht, wäre aber überfordert wenn es um alternative Vorgehensweisen oder Architektur geht.

Der Entwickler ist die Evolution des Implementierers. Er hat über den Tellerrand zum Architekten geschaut und interessiert sich allgemein für danebenliegende Bereiche wie Architektur, alternative Vorgehensweisen, etc.

Der Architekt ist zwangsweise die Evolution eines Implementieres oder Allrounders. Er “malt” sozusagen die Rahmenbedingungen und gestaltet das Design einer Software.

Dabei ist kein Typ zwangsweise besser oder schlechter, sondern sie werden alle gebraucht und unterschiedlich eingesetzt.
Okay, das war nicht ganz korrekt. Ich möchte zwar nicht den Begriff “Programmierer” schlecht machen, jedoch benutzte ich ihn ganz direkt und mache eine Unterscheidung zum Entwickler.

In jeder Berufsgruppe gibt es solche die den Job machen, dann nach Hause gehen und das wars. Auch wenn sie schon 5 Jahre auf dem Gebiet arbeiten, ist das Wissen und die Erfahrung sowie die Weitsicht nicht so angestiegen wie sie könnte. Das wäre in diesem Fall der Programmierer.

(Oder einfach ein angehender Entwickler)

Ein Entwickler zeichnet sich durch einen immensen Wissensdurst aus. Er blickt über den Tellerrand und interessiert sich meistens auch neben dem Job für Dinge die mit der Arbeit verwandt sind und ihn auch weiterbringen.
Es ergibt sich also eine Synergie zwischen der privaten und beruflichen Erfahrung, beide Parteien profitieren voneinaner.

Das Thema ist hier aber, wie man einen guten Entwickler erkennt.
Zu Entwicklern zähle ich jetzt die Typen “Programmierer” und “Entwickler”.
Aus dem vorangegangenn Text geht hervor, dass ein – laut meiner Definition – Entwickler die besseren Karten hat.

Gross wie der Informatikbereich ist, gibt es nur schon in der Softwareentwicklung verschiedene Anwendungsbereichen in denen man als Entwickler tätig sein kann und hierbei ergeben sich auch andere Anforderungen die dann einen guten Entwickler auszeichnen.

Da das jetzt aber zu weit führen wird, bleibe ich ab jetzt ganz allgemein.
Folgend ein paar Punkte, die einen guten Entwickler ausmachen.

Standard und sicherlich aus den meisten Stellenausschreibungen bekannt:

  • Ausgeprägtes analytisches und logisches Denken.
  • Gutes Vorstellungsvermögen und abstraktes Denken.
  • Gutes Auffassungsvermögen (Problemverständnis).
  • Teamplayer und gute Kommunikationsfähigkeit.
  • Bringt gute fachliche Grundlagen mit.

Zusätzlich weitere Punkte die ich persönlich sehr wichtig finde:

  • Ist in der Lage einfache Lösungen zu erkennen / finden und umzusetzen.
  • Fähigkeit etwas gut zu erklären (Kommunikation).
  • Weiss nicht alles, weiss aber wie und wo er die Information beschaffen kann.
  • Kann sich selber helfen (Informationsbeschaffung) und selbständig arbeiten.
  • Kann Theorie und Praxis verbinden, also auch das eine ins andere umsetzen.
  • Wissensdurst, ausgeprägtes Interesse an der Materie.
  • Interesse an alternativen Vorgehensweisen und Blick über den Tellerrand.

Von den zusätzlichen Punkten finde ich vorallem die Fähigkeit zur selbständigen Informationsbeschaffung sehr, sehr wichtig.

Klar, Wissen ist Macht. Jedoch gibt es in der heutigen Zeit so viel Wissen, dass man sich niemals alles aufnehmen, geschweige denn merken kann.
Darum finde ich es sehr wichtig, dass man _weiss_ wie und wo man das nötige Wissen beschaffen kann.

Grosses Interesse an der Materie und viel Wissensdurst ist ebenso wichtig. Nur so bleibt ein Entwickler am Ball und lernt leicht, schnell und mit viel Freude immer mehr dazu.

Der letzte Punkt, das Interesse an alternativen Vorgehensweisen und ein geschulter Blick über den Tellerrand sind sehr wichtig für die Weiterentwicklung und von essentieller Bedeutung wenn man in dieser Branche weiter kommen will als nur ein 0815 Arbeiter.

WPF Forum | ASP.NET Forum | ASP.NET MVC Forum | Silverlight Forum | Windows Phone 7 Forum | SharePoint Forum | Dotnet Jobs | Dotnet Termine | Developer Blogs | Dotnet News

Das Team | Regeln | Impressum