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
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):
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:
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):
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:
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:
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”:
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”
können wir uns einen Würfel erzeugen lassen:
Resultat: mit x64 ist man noch immer ein Außenseiter...
Konferenzen organisieren mit Contoo
30.05.2009 13:18:54
|
Jan Welker
[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
Windows Mobile Community Program Manager
29.05.2009 13:25:00
|
Lori Grosland
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.
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
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”.
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.
BING! - Lautmalerische Suchmaschine wird enthüllt
28.05.2009 18:11:10
|
Jan Schenk
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
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.
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.
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
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.
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:
Die entscheidenden Einstellungen für die Position des Ribbons in der Anwendung (hier Excel) sind folgende:
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:

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
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.
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:
TDD,
Rhino Mocks,
C#,
.NET
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 !!!
Windows SharePoint Services (WSS) auf Microsoft Office SharePoint Server (MOSS) migrieren
26.05.2009 15:12:00
|
Thorsten Hans

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:
MOSS 2007,
WSS,
Upgrade
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 ;)

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.
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
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
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
Danach werden die einzelnen Komponenten auf dem System installiert
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.
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!
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:
- Visual Studio 2010 Beta 1
- Silverlight 2 SDK (if you attempt to run the Silverlight 2 tools installer it will fail with an error message…just install the SDK).
- Silverlight 3 Beta SDK (again, don’t attempt the tools installer as it will fail)
- Silverlight 3 Beta Developer Runtime

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.
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.
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 :-)
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:

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:
-
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.
-
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.
-
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:
msdn |
blogparade |
net tool
Visual Studio Team System 2010 Team Suite Beta 1 – Web Installer
21.05.2009 09:59:00
|
Ozgur Aytekin
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
- Es wird nur eine 64bit Version des neuen SharePoint Servers geben, diese benötigt folgende Software
- Windows Server 2008 x64 oder Windows Server 2008 R2 x64
- SQL Server 2005 x64 oder SQL Server 2008 x64
- Der Internet Explorer wird nur noch ab Version 7 supported (sehr wichtig für öffentliche Lösungen mit SharePoint)
- 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
- Verstärkte Verwendung von Silverlight Controls
- “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..
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
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.
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…

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.
Mai-Treffen der Team System User Group Virtual Edition
20.05.2009 14:42:09
|
Thomas Schissler
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:
- ReSharper
Erleichtert die tägliche Arbeit schon ungemein. Es geht sicherlich auch ohne, aber ich möchte es nicht mehr wirklich missen.
- AnkhSVN
Wobei es eigentlich egal ist, mit welcher Versionskontrolle man arbeitet - Hauptsache man tut es und es ist halbwegs gut in die Entwicklungsumgebung integriert ;)
- 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
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. :-)
Nur noch <> Plätze frei beim .NET Open Space Süd 2009
20.05.2009 01:40:00
|
Jürgen Gutsch
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.

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.
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.
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.
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.
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:
Learning,
.Net
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

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] clip_image002[5]](http://blogs.msdn.com/blogfiles/cbinder/WindowsLiveWriter/VSTS2010Beta1TeamTestLabSetupnochnichtau_F6C1/clip_image002%5B5%5D_thumb.jpg)
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.
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.
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)
Ich packe meinen Koffer und lege hinein…
19.05.2009 12:32:07
|
Gordon Breuer
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.
- 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!
- 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.
- 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.
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.
“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:
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.
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 :-).
- 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.
- 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).
- 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.


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
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
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:

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

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
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.
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
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 |
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.
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.
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" />
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. 
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,
war
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.
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.

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.
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, war
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.
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.

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.
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.
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, war
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.
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.

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.
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
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:
Sowas sieht man natürlich total gerne, bietet aber einen gewissen Schutz davor, dass Einstellungen in expliziteren Fehlermeldungen an mögliche Angreifer exponiert werden.

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.
Nachdem 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):
-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…

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:

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
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:
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.
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
&
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.
Beim Checkin ist auch die sehr nützliche Funktion zur Verknüpfung von Workitems beim
Checkin verfügbar.
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 :)
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:
Ich hätts aber ohne Rand schicker gefunden,
Versuch 2:
Bisschen unstylish, gehts auch besser?
Versuch 3, mit nur einem bisschen Aufwand und Powerpoint:
Ist das jetzt lustig oder was?
Und damit bin ich dann zufrieden gewesen:
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:
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
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:
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!

Druckbetankung - Die Show :: Silverlight 3 Teil IV
14.05.2009 10:20:18
|
Jan Schenk
Expression Blend 3: Animation, Storyboarding, Bewegungsabläufe und EasingFunctions
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
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
Architecture.NET Open Space 2009
13.05.2009 16:55:00
|
Sebastian Jancke
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.deAuslö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)
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!
Bereits über 30 Anmeldungen zum .Net Open Space Süd 2009
13.05.2009 15:19:20
|
Thomas Schissler
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
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
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.
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:
Rückblicke
Die folgenden Termine haben bereits stattgefunden:
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.
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
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
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:
F# ist dasThema beim nächsten Treffen der .Net Developer-Group Ulm
12.05.2009 20:44:00
|
Thomas Schissler
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
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
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.

Tipp: Windows 7 Blog [powered by MVPs]
12.05.2009 16:50:00
|
Kay Giza
.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.
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!
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.
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!
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.
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
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!
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.
Mehr Druckbetankungen unter: http://channel9.msdn.com/posts/kitano/
Mein Kampf … mit Windows 7 RC
10.05.2009 13:36:24
|
Gordon Breuer
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.
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.
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?!
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!
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 ……
HowTo: Logging mit Log4Net
08.05.2009 22:29:00
|
Robert Mühsig
Sobald 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?
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.
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
- Dateien die gespeichert werden sollen, werden automatisch ausgecheckt.
- Neu hinzugefügte UserControls werden automatisch in die Quellcoderverwaltung übertragen.
- Umbenennen und Löschen von Dateien in der Quellcodeverwaltung.
- Einzelne Elemente (oder das ganze Projekt) können direkt eingecheckt werden.
- 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".”
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 |
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:
Und ein schnelles Kopieren des zur Verfügung gestellten Codes bringt dann beispielsweise so eine Ansicht:
Ich habe das ganze dann kurzerhand auch mal in Live Mesh geschickt, obwohl mir klar war, dass es ganz so einfach nicht sein wird.
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?
- 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.
- 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.
- 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.
- 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)
- Teilnahmeberechtigt an der Verlosung ist jeder, ausgenommen Mitarbeiter von Microsoft und deren Angehörige.
- Jeder Teilnehmer darf mehrmals teilnehmen. Die Chancen für die Verlosung erhöhen sich dadurch nicht.
- Teilnahmeschluss für die Verlosung ist der 15.06.2009
- Aus allen Einsendungen werden drei Gewinner per Los gezogen.
- Gewinn ist jeweils ein Xbox 360 Elite Paket inklusive zwei Spielen.
- Alle Gewinner werden per E-Mail benachrichtigt.
- 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.
- 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.
- Die Ausbezahlung der Preise in bar ist nicht möglich.
- Der Rechtsweg ist ausgeschlossen.
- 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 |
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
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 :-)

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…
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.
- 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)
- 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.

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='"http://dotnet-kicks.de/submit/?url="
+ data:post.url + "&title=" + data:post.title' expr:id='data:widget.instanceId
+ "_kickit"' ><img border="0" alt='Kick
It on dotnet-kicks.de' expr:src='"http://dotnet-kicks.de/Services/Images/KickItImageGenerator.ashx?url="
+ data:post.url'/></a></p>
<!-- dotnet-kicks.de Button End -->
8. Auf Vorlage Speichern klicken
9. Fertig!
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
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.
.NET Open Space Süd 2009
04.05.2009 07:07:01
|
Jürgen Gutsch
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.

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:
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
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:

und hier das Ergebnis unter Vista:

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.
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”:
- Programmierer (Implementierer)
- Entwickler
- 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.