.
Anmeldung | Registrieren | Hilfe

.NET-Blogs Archiv Juli 2009

VSTS 2010 Beta1 Quickhits : Historical Debugging

30.07.2009 20:59:00 | Christian Binder

Historical Debugging erlaub es dem Entwickler schneller und effizienter Probleme zu identifizieren. Vereinfacht kann man in der Lebenzeit des Prozesses zurückspringen, um wichtige Hinweise zur Analyse erhalten.
Zudem steht Historical Debugging nicht nur in der IDE zur Verfügung, sondern kann auch als “DataCollector” bei der Ausführung von Tests genutzt werden, was wiederum die Zusammenarbeit zwischen Test und Entwicklung deutlich effizienter gestaltet. Dies kurzes Video fokussiert die Verwendung in der IDE.

Download hier

Viel Spass
Chris

ISV Windows 7 Trainings

30.07.2009 18:29:40 | Oliver Scheer

Bauen Sie wertvolles Wissen mit unserem Windows 7-Trainingsangebot auf und besuchen Sie unsere kostenfreien Workshops, die wir exklusiv für ISVs (Softwarehersteller) anbieten. Informieren Sie sich auf der Veranstaltung über die neuen Funktionen von Windows 7 und erfahren Sie, auf was Sie bei der Prüfung Ihrer Software besonders achten sollten.

Agenda Workshop Windows 7-Anwendungskompatibilität

Vormittags

  • Windows 7-Neuerungen
  • Anwendungskompatibilität von Windows Vista und Windows 7 im Vergleich
  • Sicherheit (unter anderem mit den Themen Integritätsmodell, Internet Explorer-Protected  Mode und User Account Control)
  • Veränderungen des Dienstemodells
  • Taskbar und hochauflösende Anzeige (High DPI) für Text und Grafik
  • Windows 7-Logo-Programm
  • Frage- und Diskussionsrunde

Nachmittags

Praktische Einführung: Werkzeuge für die Überprüfung der Anwendungskompatibilität (darunter Application Compatibility Toolkit (ACT), Standard User Analyzer und Process Explorer).

Bitte beachten Sie, dass Sie dafür Ihren eigenen Laptop mit vorinstalliertem Windows 7 mitbringen müssen. (Auf Wunsch stellen wir Ihnen für Testzwecke Windows 7-DVDs (RC Version) zur Verfügung.)

Wenn Sie zu den erfahrenen Softwareentwicklern und -architekten gehören, sollten Sie sich einen der folgenden Termine vormerken.

Der Windows 7-Anwendungskompatibilitäts-Workshop beginnt jeweils um 10:00 Uhr und dauert bis 17:00 Uhr.

Termine und Veranstaltungsorte

August

  • 7. August 2009, Köln
  • 11. August 2009, Hamburg
  • 12. August 2009, Berlin
  • 18. August 2009, Bad Homburg
  • 19. August 2009, Böblingen
  • 28. August 2009, Unterschleißheim

September

  • 3. September 2009, Köln
  • 10. September 2009, Hamburg
  • 11. September 2009, Berlin
  • 16. September 2009, Bad Homburg
  • 17. September 2009, Böblingen
  • 25. September 2009, Unterschleißheim

Die Anmeldung ist nur per E-Mail möglich. Haben Sie Interesse und möchten Sie teilnehmen, schreiben Sie uns eine E-Mail an fitmit7@microsoft.com und nennen Sie uns darin Ihren gewünschten Veranstaltungsort oder Wunschtermin.

LINQ to XML mit XML-Namespaces

30.07.2009 14:54:00 | Martin Hey

Der Zugriff auf XML-Strukturen ist mit Linq-to-Xml recht einfach. Interessant wird es dann, wenn Namespaces mit im Spiel sind.

Nehmen wir mal diese XML-Datei an:
<library xmlns="http://schemas.mylibrary.com">
    <books>
        <book title="book 1" isbn="1234567890" />
        <book title="book 2" isbn="1234567891" />
        <book title="book 3" isbn="1234567892" />
    </books>
</library>


Ein Zugriffsversuch ohne Namespaceangabe bringt erwartungsgemäß keine Ergebnisse:
XDocument library = XDocument.Load("C:\\library.xml", LoadOptions.None);

var booktitles = from book in library.Descendants("book")
                 select book.Attribute("title").Value;



Lösung bietet die Angabe des Namespaces:
XDocument library = XDocument.Load("C:\\library.xml", LoadOptions.None);

var booktitles = from book in library.Descendants(XNamespace.Get("http://schemas.mylibrary.com") + "book")
                 select book.Attribute("title").Value;

Eine Orientierung : Visual Studio Team System 2010 Team Architect Beta 1

29.07.2009 19:17:00 | Christian Binder

Der Artikel soll auf Basis der Beta1 eine erste kompakte Orientierung zur System Modellierung mit VSTS 2010 Team Architect leisten. Der Fokus liegt auf der UML Integration als auch der .NET Architektur Validierung mittels einer DSL. Desweiteren werden einige Möglichkeiten, die sich durch die Erweiterbarkeit der Plattform ergeben aufgezeigt. Der Inhalt richtet sich vor allem an Leser, die sich für System Modellierung interessieren und sich mit den Themen UML und DSL schon beschäftigt haben.    

Download hier

Viel Spass
Chris

Urls zu ASP.NET MVC Controller-Actions außerhalb eines Views erstellen

29.07.2009 17:49:32 | Albert Weinert

Innerhalb eines ASPX-Views ist das erstellen eines Links bzw. einer Url einfach. Es gibt ja HtmlHelper.ActionLink() und MvcViewPage.Url um diese zu erzeugen.

Nun gibt es Situation wo man keinen direkten Zugriff darauf hat an jedoch die Url zu bestimmten Action inklusive der richtigen Parameter braucht.

So ist es in einer meiner Anwendungen notwendig E-Mails mit Links auf die Anwendung zu haben (Neues Kennwort zuteilen, Benutzer aktiveren etc.)

Dies wird weder beim Controller noch im View veranlasst (und wenn man es doch macht sollte man dringend darüber nachdenken warum man dies macht und es seinlassen). Natürlich möchte man auch das beim Erstellen der Urls auch die verwendeten Routen berücksichtigt werden.

Wenn ich also eine Url brauche, deklariere ich mir erst ein entsprechendes Interfaces.

public interface IPasswordMailUrlBuilder
{
    string GetResetPasswordUrl(string userHash, Guid guid);
}

Die  Anwendung ist sehr einfach. Die Abhängigkeiten werden mittels eines IoC-Containers aufgelöst und bei der Instanziierung über den Construcor übergeben.

private readonly ITemplateEMailSending sending;
private readonly IPasswordMailUrlBuilder urlBuilder;

public void SendWebUserThePasswordResetLink(WebUser webUser)
{
    webUser.EnsureConfirmationKey();
    string url = urlBuilder.GetResetPasswordUrl(webUser.GetWebUserHash(hashing), webUser.ConfirmationKey.Value);
    TemplateItems items = CreateTemplateItems();
    items.Add("url.resetpassword", url);
    sending.Send(MailTemplates.SendWebUserPasswordReset, webUser, items);
}

ITemplateEMailSending ist ein Service der aus einer Template eine E-Mail erstellt. In den TemplateItems stehen die Elemente drin die auf der Template ausgetauscht werden. Aber dies ist nicht das Thema hier.

Die Implementierung von  IPasswordMailUrlBuilder sieht nun folgendermaßen aus.

public class PasswordMailUrlBuilder : IPasswordMailUrlBuilder
{
    private readonly IActionUrlBuilder urlBuilder;

    public PasswordMailUrlBuilder(IActionUrlBuilder urlBuilder)
    {
        this.urlBuilder = urlBuilder;
    }

    public string GetResetPasswordUrl(string userHash, Guid guid)
    {
        return urlBuilder.BuildActionUrl<PasswordController>(c => c.CreateNew(userHash, guid.CleanGuid()));
    }
}

Der PasswordMailUrlBuilder nutzt nun IActionUrlBuilder, in dessen Implementierung findet dann die eigentliche Arbeit statt.

Damit das ganze funktioniert ist es erforderlich auch die ASP.NET MVC v1.0  Futures zu verwenden. In den Futures ist eine einfache Möglichkeit enthalten um Typisiert auf Controller-Actions zu verweisen. ASP.NET MVC v2 wird diese Möglichkeit direkt enthalten haben.

public interface IActionUrlBuilder
{
    string BuildActionUrl<TController>(Expression<Action<TController>> expression)
        where TController : Controller;
}

Wie man sieht ist IActionUrlBuilder wieder sehr kompakt, bietet jedoch alles was man dazu so braucht. Die Implementierung ist ein wenig mehr Aufwand, jedoch alles keine Magie.

Der Trick besteht darin erstmal die Action-Expression in die RouteDataValues zerlegen zu lassen, dazu bieten die MVC Futures die ExpressionHelper-Klasse.

Nun verwendet man die MVC eigene UrlHelper-Klasse um sich daraus eine Url erstellen zu lassen. Da die Angabe http://servername.tld in diese Url fehlt setzt man diese einfach noch davor.

Die UrlHelper-Klasse braucht einen RequestContext, diesen erstellt man einfach. Man solltet nur darauf achten das man die schon vorhandenen RouteDataValues ermittelt und übergibt. Sonst kann es passieren das Teile der Url die weder Controller oder Action sind einfach unter der Tisch fallen gelassen werden (z.B. Angabe einer Culture in der Url). Möchte man die vorhandenen Werte nicht berücksichtige. So ist beim erstellen des RequestContext einfach eine leere Instanz von der RouteData-Klasse zu übergeben.

Und hier der Code.

public class ActionUrlBuilder : IActionUrlBuilder
{
    public string BuildActionUrl<TController>(Expression<Action<TController>> expression)
        where TController : Controller
    {
        var routeValues = GetRouteValues(expression);
        return CreateUrl(routeValues);
    }

    private static RouteValueDictionary GetRouteValues<TController>(Expression<Action<TController>> expression)
        where TController : Controller
    {
        return ExpressionHelper.GetRouteValuesFromExpression(expression);
    }

    private static string CreateUrl(RouteValueDictionary routeValues)
    {
        var urlHelper = new UrlHelper(CreateRequestContext());
        return GetBaseUrl(urlHelper.RequestContext) + urlHelper.RouteUrl(routeValues);
    }

    private static string GetBaseUrl(RequestContext context)
    {
        return string.Format("{0}://{1}", context.HttpContext.Request.Url.Scheme, context.HttpContext.Request.Url.Authority);
    }

    private static RequestContext CreateRequestContext()
    {
        HttpContextBase httpContext = new HttpContextWrapper(HttpContext.Current);
        return new RequestContext(httpContext, RouteTable.Routes.GetRouteData(httpContext));
    }
}

 

Außerplanmäßige Sicherheitsupdates für Visual Studio und Internet Explorer

29.07.2009 17:05:50 | Peter Kirchner

Microsoft hat am Dienstag, 28. Juli 2009, gegen 19.00 Uhr deutscher Zeit zwei außerplanmäßige Sicherheitsupdates veröffentlicht. Die Updates betreffen alle unterstützten Versionen des Windows Internet Explorer (Internet Explorer 5, 6, 7 und 8 für Windows 2000, Windows XP und Windows Vista sowie Windows Server 2003 und Windows Server 2008) sowie die Visual Studio-Produktfamilie (Microsoft Visual Studio .NET 2003, 2005, 2008 sowie Visual C++ 2005 und 2008).

Wir empfehlen dringend, die verfügbaren Sicherheitsupdates umgehend und direkt über Microsoft Update zu installieren.

Für IT-Professionals haben wir unter ‘Microsoft Security Bulletin MS09-034 - Critical: Cumulative Security Update for Internet Explorer (972260)‘ und ‘Microsoft Security Bulletin MS09-035 - Moderate: Vulnerabilities in Visual Studio Active Template Library Could Allow Remote Code Execution (969706)‘ bereits englischsprachige technische Beschreibungen der Updates in Form von Security Bulletins hinterlegt, die innerhalb der nächsten 24 Stunden im TechNet-Sicherheitscenter auch in deutscher Sprache verfügbar sein werden.

Weitere sicherheitsrelevante Informationen für Softwareentwickler, wichtigsten News sowie Informationen rund um das Thema "How to write secure Code“ finden Sie - immer tagesaktuell - im MSDN Security Developer Center.

Das ist also die sagenumwobene MGX

29.07.2009 15:58:13 | Jan Schenk

IMAGE_118

So, nun ist sie rum, meine erste MGX (Microsoft Global Exchange). Eigentlich eine Marketing und Sales Veranstaltung für Microsoft-Mitarbeiter von überall rund um den Globus. Als [immernoch] New Hire wurde mir die Ehre zuteil, an einer eigentlich fachfremden (da Sales und Marketing) Konferenz teil zu nehmen. Ihr kennt die MGX, wenn ihr nicht gerade auch bei Microsoft arbeitet, wahrscheinlich nur von Dingen wie dem “Developers, Developers, Developers”-Video von Youtube. Aber ja, so in etwa laufen die General Sessions ab, natürlich nicht alle und jedes Jahr mit einer solchen Nummer von Steve Ballmer, aber die Stimmung ist trotzdem extrem mitreissend. Kein Wunder, bei etwa 12000 Teilnehmern, die alle ihren Job lieben.

Und so wie oben sieht dann auch eine Keynote aus. Ein Stadion voller Menschen, bunte Lichter, laute Musik, riesige Bildschirme. Und was auch immer eure Meinung zu Microsoft sein mag, Brainwashing ist das, was auf der MGX passiert, nicht. Beeinflussung ja, Motivation ja, Hyping ja, aber für Brainwashing war das zu harmlos.

Glücklicherweise wurde ich während einer Pause am zweiten Tag von einem Feedbackvideo-Dreher noch interviewt, sodass ich und mein Hut dann glorreiche 8 Sekunden auf diesen Riesenleinwänden und von 12000 Leuten gesehen wurden. Wer mich bei Microsoft intern also bisher noch nicht kannte, dem wird spätestens jetzt der komische Typ mit dem Hut was sagen. Mir reichts ja schon, wenn ich den deutschen Microsofties ein Begriff bin.

Ein Bild hab ich noch, das ich euch nicht vorenthalten möchte, und zwar wenn die gesamte MGX-Mannschaft sich auf den Fußweg zur abendlichen Party macht:

IMAGE_120

Und noch eins, ziemlich dunkel aber man kann was erkennen, nämlich die Menschenmassen und die Bühne der Coverband:

IMAGE_128

Mein persönliches Resumee der Woche MGX: Cool mal dabei gewesen zu sein, die nächsten Male gehe ich lieber wieder zur TechReady, aber ich schliesse nicht aus, dass es mich auch mal wieder zur MGX ziehen könnte. Dass ich dafür was großes leisten müsste, wie mein Kollege Chris Binder, der als “Outstanding Achiever” auf die MGX kam, ist mir allerdings klar. Und das ist definitiv kein Kinderspiel, oder wie es bei den Amerikanern so schön heisst: That might be a rocky road.

Lasst es euch gut gehen, ich bin dann mal im Urlaub!
jan

Sechstes Treffen des .NET-Stammtisch Konstanz-Kreuzlingen

29.07.2009 02:34:05 | Jürgen Gutsch

Das sechste .NET-Stammtisch Treffen findet mit Thomas Schissler und folgendem Thema statt:

Überblick über VSTS 2010.

Mit Visual Studio Team System 2010 bring Microsoft eine neue Generation seiner Entwicklungsplattform auf den Markt.

Neben einer großen Anzahl von Verbesserungen bring VSTS 2010 und das Backendsystem TFS 2010 auch völlig neue Funktionen und Möglichkeiten mit. Der Vortrag beleuchtet die verschiedenen Bereiche und stellt jeweils die wichtigsten Neuerungen vor. Diese werden mit verschiedenen Praxisbeispielen plastisch erläutert.

Thomas ist Leiter die Software-Entwicklung bei der Artiso AG in Ulm, Gründungsmitglied und Team-Leader der .NET Developer-Group Ulm und MVP für den Bereich Team System. Desweiteren ist Thomas viel als Sprecher auf großen Konferenzen und in User Group unterwegs. Das Weblog von Thomas, mit vielen Beiträgen zum Thema VSTS, ist unter folgender URL zu finden: http://www.artiso.com/problog/

Änderung im Ablauf der Veranstaltungen
Wir halten es in Zukunft so, dass es bei jedem Treffen nur einen Vortrag gibt, anschließend jedoch genügend Zeit bleibt um bei einem Bierchen darüber zu diskutieren, damit die Teilnehmer auch aktiv werden und die Sprechern Feedback empfangen und zusätzliche Fragen beantworten können.

DotNetKicks-DE Image

Der geography-Datentyp und warum die Länge einer Linie nicht unbedingt auch die Distanz zwischen deren Endpunkten ist

28.07.2009 23:52:00 | Wolfgang Kluge

Seltsamer Titel? Stimmt. Das war aber heute eine Frage in einem Microsoft-Forum. Warum ist die Länge nicht gleich der Distanz zwischen 2 Punkten?

Nun, das stimmt natürlich nicht - zum Glück. Bei der Fehlersuche ist allerdings eine Besonderheit des SQL Servers aufgefallen. Zuerst aber mal ein Beispiel

DECLARE @line geography, @pointStart geography, @pointEnd geography
SELECT @line = geography::STGeomFromText('LINESTRING(1 2, 3 4)', 4326),
       @pointStart = geography::Point(1, 2, 4326),
       @pointEnd = geography::Point(3, 4, 4326)

SELECT @line.STLength() AS Length,
       @pointEnd.STDistance(@pointStart) AS Distance

Heraus kommen die Werte

Length Distance
313588,386985478 313705,435222058

Doch warum sollte hier ein Unterschied bestehen... STLength() gibt die Länge des LINESTRINGs zurück und STDistance() berechnet die Distanz zwischen 2 Punkten. Wie bereits vorweggenommen ist das Ergebnis so an sich also falsch - trotzdem ist es so, dass der SQL Server korrekt rechnet. Bleibt als einzige Fehlerquelle also nur noch der Code selbst übrig...

Laut MSDN-Referenz zu geography::Point werden 3 Parameter erwartet: Latitude, Longitude und die SRID. Die Funktion geography::STGeomFromText interpretiert die Angaben aber anders herum. Um genauer zu sein in der Reihenfolge Longitude (geographischer Länge) und danach Latitude (geographischer Breite).

Und das war auch schon das ganze Geheimnis ;) Warum geography::Point hier die Werte anders herum erwartet ist mir ein Rätsel und wird es wohl auch bleiben - die Reihenfolge wie sie geography::STGeomFromText interpretiert entspricht den Vorgaben der OGC und erscheinen damit in allen möglichen Bereichen eben in dieser Reihenfolge (und damit u.a. auch in GML).

Wie dem auch sei. Es ist alles noch korrekt - man muss nur dran denken ;)

Wichtig: Ausserplanmaessige Sicherheitsupdates fuer Visual Studio und Internet Explorer [28.07.2009]

28.07.2009 19:44:26 | Kay Giza

Microsoft hat am Dienstag, 28. Juli 2009, gegen 19.00 Uhr deutscher Zeit zwei außerplanmäßige Sicherheitsupdates veröffentlicht. Die Updates betreffen alle unterstützten Versionen des Windows Internet Explorer (Internet Explorer 5, 6, 7 und 8 für Windows 2000, Windows XP und Windows Vista sowie Windows Server 2003 und Windows Server 2008) sowie die Visual Studio-Produktfamilie (Microsoft Visual Studio .NET 2003, 2005, 2008 sowie Visual C++ 2005 und 2008).

Wir empfehlen dringend, die verfügbaren Sicherheitsupdates umgehend und direkt über
Microsoft Update zu installieren.

Für IT-Professionals haben wir unter ‘Microsoft Security Bulletin MS09-034 - Critical: Cumulative Security Update for Internet Explorer (972260)‘ und ‘Microsoft Security Bulletin MS09-035 - Moderate: Vulnerabilities in Visual Studio Active Template Library Could Allow Remote Code Execution (969706)‘ bereits englischsprachige technische Beschreibungen der Updates in Form von Security Bulletins hinterlegt, die innerhalb der nächsten 24 Stunden im TechNet-Sicherheitscenter auch in deutscher Sprache verfügbar sein werden.

Weitere sicherheitsrelevante Informationen für Entwickler finden Sie auch - immer tagesaktuell - im MSDN Security Developer Center.



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

.NET Stammtisch Konstanz-Kreuzlingen – Die nächsten fünf Treffen im Überblick

28.07.2009 19:42:00 | Peter Bucher

6 Treffen liegen schon hinter uns und wegen dem .NET Open Space Süd 2009 (Berichte und Fotos dazu) Treffen wurde das letzte Treffen in einem kleinen Rahmen gehalten.

Die Entwicklung der grenzübergreifenden Usergroup geht schneller voran als Jürgen und ich gedacht hatten. Das ist natürlich erfreulich!

Dank INETA (International .NET Association) Deutschland haben wir die Möglichkeit bekommen, bekannte Sprecher zu sehr interessanten Themen zu gewinnen.

Die nächsten fünf Treffen stehen fest, unten findet ihr eine Zusammenfassung aller kommenden Treffen.

Wir halten es so, dass es bei jedem Treffen einen Vortrag gibt, anschliessend jedoch genügend Zeit bleibt um bei einem Bierchen darüber zu diskutieren, damit die Teilnehmer auch aktiv werden und die Sprechern Feedback empfangen und zusätzliche Fragen beantworten können.

Wenn ihr Vorschläge für Themen oder eine andere Art für ein Treffen habt, könnt ihr uns jederzeit mit den Kontaktangaben auf der Homepage erreichen.

Die nächsten Treffen finden alle bei der Fachhochschule in Konstanz statt und unter jedem Link für ein Treffen, findet ihr den Anfahrtsplan und ggf. eine andere Ortsangabe, wenn wir uns zur Abwechslung mal zu einem Bierchen treffen wollen.

Das sechste .NET-Stammtisch Treffen findet mit Thomas Schissler und folgendem Thema statt:

Überblick über VSTS 2010.
Mit Visual Studio Team System 2010 bring Microsoft eine neue Genereation siner Entwicklungsplattform auf den Markt.
Neben einer großen Anzahl von Verbesserungen bring VSTS 2010 und das Backendsystem TFS 2010 auch völlig neue Funktionen und Möglichkeiten mit. Der Vortrag beleuchtet die verschiedenen Bereiche und stellt jeweils die wichtigsten Neuerungen vor.

Diese werden mit verschiedenen Praxisbeispielen plastisch erläutert.
Vorgetragen wird das Thema von Thomas Schissler.
Thomas ist Leiter die Software-Entwicklung bei der Artiso AG in Ulm, Gründungsmitglied und Team-Leader der .NET Developer-Group Ulm und MVP für den Bereich Team System. Desweiteren ist Thomas viel als Sprecher auf großen Konferenzen und in User Group unterwegs. Das Weblog von Thomas, mit vielen Beiträgen zum Thema VSTS, ist unter folgender URL zu finden: http://www.artiso.com/problog/

 

Das siebte .NET-Stammtisch Treffen findet mit Golo Roden zu folgendem Thema statt:

Dependency Hell? Nein, danke!.
Code verfügt nicht erst seit Objekten und Komponenten, die aufeinander aufbauen, über innere Abhängigkeiten.
Doch welche Abhängigkeiten sind gut, welche schlecht? Golo Roden zeigt in dieser Session, welche gängigen Arten von Abhängigkeiten es in der Dependency Hell gibt und erläutert grundlegene theoretische Begriffe und Konzepte wie beispielsweise Kohäsion und Kopplung, implizite und explizite Abhängigkeit und Separation of Concerns.
Die Vorstellung passender Gegenmaßnahmen und ihrer Anwendung – vom einfachen Refactoring auf Quellcode- bis hin zum Einsatz eines Microkernels auf Architekturebene – runden die Session mit kleinen Praxisbeispielen schließlich ab.

Golo Roden lebt seit dem Jahr 2005 in Freiburg im Breisgau und ist Autor, Sprecher und Trainer für .NET und verwandte Technologien. Er beschäftigt sich mit Software Engineering, Applikationsarchitektur, Infrastruktur und Webtechnologien im Allgemeinen. Golo ist verheiratet und Vater einer Tochter, hat einen Collie wie auch eine Schwäche für Eisbären und beschäftigt sich in seiner Freizeit mit elektronischer Musik, digitaler Fotografie und Kochen.

 

Das achte .NET-Stammtisch Treffen findet mit Jürgen Gutsch und folgendem Thema statt:

ASP.NET Best Practices.
Jürgen Gutsch beschreibt in einem Vortrag, wie man optimal mit ASP.NET Anwendungen schreibt, ohne im Durcheinander von PostBacks und ViewStates nicht mehr weiter zu kommen.
Sowie PostBacks sparsam und gezielt einsetzt werden und wie man den ViewState klein hält und somit auch die Performance optimiert hält.

 

Das neunte .NET-Stammtisch Treffen findet mit Gregor Biswanger und folgendem Thema statt:

TDD / BDD
Ein neues Software Projekt beginnt. Das Design der Architektur steht auch schon. Nun können die hoch motivierten Entwickler starten, ihre Fachbereiche mit Code zu füllen. Doch kommt es schon nach kurzer Zeit zu großen Problemen! Die Anwendung macht an unterschiedlichen Stellen alles andere als das, was gefordert wurde. Keiner kann am Ende sagen woran das liegt, jeder versucht seine Position zu verteidigen. Ist das Projekt nun zum Scheitern verurteilt? Wird nun der Fertigstellungstermin noch weiter nach hinten geschoben, der sowieso schon an der Schmerzgrenze lag?! Nein, durch Test Driven Development kann dieses Problem verringert werden. Damit ist nicht die Fehleranfälligkeit gemeint, sondern das rechtzeitige Erkennen, an welcher Stelle es gerade nicht funktioniert wie es soll.

Einführung in Test Driven Development
Was ist überhaupt TDD? Wie kann ich TDD für neue oder bestehende Projekte richtig nutzen? Welche Arten von Testmöglichkeiten für heutige Softwareprojekte geboten wird, soll auch verdeutlicht werden. Dabei wird einmal die Theorie und anschließend die Praxis genauestens durchleuchtet. Dementsprechend werden dabei folgende Punkte besprochen: Unit-Tests, Integrations-Tests, Akzeptanz-Tests und Mocking.

Theorie & Praxis: Code-Coverage
Sehr oft wird beim Schreiben von Codes genau an denn Tests geschrieben, die niemals zu Problemen eintreffen werden. Somit passieren Fehler, die bis heute im Unbekannten weiter leben. Damit diese Horrorvisionen nicht Wirklichkeit wird, spielt die Testabdeckung eine wichtige Rolle!

Einführung in Behavior Driven Development
Durch eine Erweiterung von TDD durch 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.

Über den Sprecher
Gregor Biswanger ist Consultant bei der Firma TRIA IT-solutions in München. Seine Schwerpunkte liegen im Bereich der .NET-Architektur und agilen Prozessen.
Biswanger ist auch freier Autor, Speaker und Microsoft CLIPler der INdotNET (Ingolstädter .NET Developers Group).

Verlosung: Fuzzing-Tests für .NET mit 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.

CrashTest.Net unterstützt uns freundlicherweise mit 1 Lizenz zur Verlosung 

 

Das zehnte .NET-Stammtisch Treffen findet mit Jürgen Gutsch und folgendem Thema statt:

Barrierefreie Anwendungen mit ASP.NET.
Jürgen Gutsch beschreibt in einem Vortrag, ob es möglich ist Barrierefreie Webentwicklung mit ASP.NET zu betreiben und zeigt anhand von Beispielen was nötig ist um Barrierearme Anwendungen zu Entwickeln

Anschließend wird wie immer beim gemütlichen Bierchen weiter diskutiert, bzw. im Advent ist natürlich Glühwein auf dem Konstanzer Waihnachtsmarkt angesagt :-)

Workshops für Windows 7 Anwendungskompatibilität

28.07.2009 17:14:58 | Peter Kirchner

Bauen Sie wertvolles Wissen mit unserem Windows 7-Trainingsangebot auf und besuchen Sie unsere kostenfreien Workshops, die wir exklusiv für ISVs (Softwarehersteller) anbieten. Informieren Sie sich auf der Veranstaltung über die neuen Funktionen von Windows 7 und erfahren Sie, auf was Sie bei der Prüfung Ihrer Software besonders achten sollten. Sie erwarten folgende Themen:

Workshop Windows 7-Anwendungskompatibilität: Agenda

vormittags

  • Windows 7-Neuerungen

  • Anwendungskompatibilität von Windows Vista und Windows 7 im Vergleich

  • Sicherheit (unter anderem mit den Themen Integritätsmodell, Internet Explorer-Protected Mode und User Account Control)

  • Anwendungsinstrumentation und -diagnose

  • Veränderungen des Dienstemodells

  • Taskbar und hochauflösende Anzeige (High DPI) für Text und Grafik

  • Windows 7-Logo-Programm

  • Frage- und Diskussionsrunde

nachmittags

  • Praktische Einführung: Werkzeuge für die Überprüfung der Anwendungskompatibilität (darunter Application Compatibility Toolkit (ACT), Standard User Analyzer und Process Explorer).
    Bitte beachten Sie, dass Sie dafür Ihren eigenen Laptop mit vorinstalliertem Windows 7 mitbringen müssen.

  • Auf Wunsch stellen wir Ihnen für Testzwecke Windows 7-DVDs (RC Version) zur Verfügung.

Wenn Sie zu den erfahrenen Softwareentwicklern und -architekten gehören, sollten Sie sich einen der folgenden Termine vormerken.

Der Windows 7-Anwendungskompatibilitäts-Workshop beginnt jeweils um 10:00 Uhr und dauert bis 17:00 Uhr.

Termine und Veranstaltungsorte

August

  • 7. August 2009, Köln

  • 11. August 2009, Hamburg

  • 12. August 2009, Berlin

  • 18. August 2009, Bad Homburg

  • 19. August 2009, Böblingen

  • 28. August 2009, Unterschleißheim

September

  • 3. September 2009, Köln

  • 10. September 2009, Hamburg

  • 11. September 2009, Berlin

  • 16. September 2009, Bad Homburg

  • 17. September 2009, Böblingen

  • 25. September 2009, Unterschleißheim

Die Anmeldung ist nur per E-Mail möglich. Haben Sie Interesse und möchten Sie teilnehmen, schreiben Sie uns eine E-Mail an fitmit7@microsoft.com und nennen Sie uns darin Ihren gewünschten Veranstaltungsort oder Wunschtermin.

Workshops für Softwarehersteller zum Thema Windows 7 Anwendungskompatibilität

28.07.2009 11:56:00 | Lori Grosland

Bauen Sie wertvolles Wissen mit unserem Windows 7-Trainingsangebot auf und besuchen Sie unsere kostenfreien Workshops, die wir exklusiv für ISVs (Softwarehersteller) anbieten. Informieren Sie sich auf der Veranstaltung über die neuen Funktionen von Windows 7 und erfahren Sie, auf was Sie bei der Prüfung Ihrer Software besonders achten sollten.

Agenda Workshop Windows 7-Anwendungskompatibilität
Vormittags

  • Windows 7-Neuerungen
  • Anwendungskompatibilität von Windows Vista und Windows 7 im Vergleich
  • Sicherheit (unter anderem mit den Themen Integritätsmodell, Internet Explorer-Protected Mode und User Account Control)
  • Veränderungen des Dienstemodells
  • Taskbar und hochauflösende Anzeige (High DPI) für Text und Grafik
  • Windows 7-Logo-Programm
  • Frage- und Diskussionsrunde

Nachmittags

  • Praktische Einführung: Werkzeuge für die Überprüfung der Anwendungskompatibilität (darunter Application Compatibility Toolkit (ACT), Standard User Analyzer und Process Explorer).
  • Bitte beachten Sie, dass Sie dafür Ihren eigenen Laptop mit vorinstalliertem Windows 7 mitbringen müssen. (Auf Wunsch stellen wir Ihnen für Testzwecke Windows 7-DVDs (RC Version) zur Verfügung.)

Wenn Sie zu den erfahrenen Softwareentwicklern und -architekten gehören, sollten Sie sich einen der folgenden Termine vormerken.

Der Windows 7-Anwendungskompatibilitäts-Workshop beginnt jeweils um 10:00 Uhr und dauert bis 17:00 Uhr.

Termine und Veranstaltungsorte
August

  • 7. August 2009, Köln
  • 11. August 2009, Hamburg
  • 12. August 2009, Berlin
  • 18. August 2009, Bad Homburg
  • 19. August 2009, Böblingen
  • 28. August 2009, Unterschleißheim

September

  • 3. September 2009, Köln
  • 10. September 2009, Hamburg
  • 11. September 2009, Berlin
  • 16. September 2009, Bad Homburg
  • 17. September 2009, Böblingen
  • 25. September 2009, Unterschleißheim

Die Anmeldung ist nur per E-Mail möglich. Haben Sie Interesse und möchten Sie teilnehmen, schreiben Sie uns eine E-Mail an fitmit7@microsoft.com und nennen Sie uns darin Ihren gewünschten Veranstaltungsort oder Wunschtermin.

Workshops für Softwarehersteller zum Thema Windows 7 Anwendungskompatibilität

28.07.2009 11:56:00 | Lori Grosland

Bauen Sie wertvolles Wissen mit unserem Windows 7-Trainingsangebot auf und besuchen Sie unsere kostenfreien Workshops, die wir exklusiv für ISVs (Softwarehersteller) anbieten. Informieren Sie sich auf der Veranstaltung über die neuen Funktionen von Windows 7 und erfahren Sie, auf was Sie bei der Prüfung Ihrer Software besonders achten sollten.

Agenda Workshop Windows 7-Anwendungskompatibilität
Vormittags

  • Windows 7-Neuerungen
  • Anwendungskompatibilität von Windows Vista und Windows 7 im Vergleich
  • Sicherheit (unter anderem mit den Themen Integritätsmodell, Internet Explorer-Protected Mode und User Account Control)
  • Veränderungen des Dienstemodells
  • Taskbar und hochauflösende Anzeige (High DPI) für Text und Grafik
  • Windows 7-Logo-Programm
  • Frage- und Diskussionsrunde

Nachmittags

  • Praktische Einführung: Werkzeuge für die Überprüfung der Anwendungskompatibilität (darunter Application Compatibility Toolkit (ACT), Standard User Analyzer und Process Explorer).
  • Bitte beachten Sie, dass Sie dafür Ihren eigenen Laptop mit vorinstalliertem Windows 7 mitbringen müssen. (Auf Wunsch stellen wir Ihnen für Testzwecke Windows 7-DVDs (RC Version) zur Verfügung.)

Wenn Sie zu den erfahrenen Softwareentwicklern und -architekten gehören, sollten Sie sich einen der folgenden Termine vormerken.

Der Windows 7-Anwendungskompatibilitäts-Workshop beginnt jeweils um 10:00 Uhr und dauert bis 17:00 Uhr.

Termine und Veranstaltungsorte
August

  • 7. August 2009, Köln
  • 11. August 2009, Hamburg
  • 12. August 2009, Berlin
  • 18. August 2009, Bad Homburg
  • 19. August 2009, Böblingen
  • 28. August 2009, Unterschleißheim

September

  • 3. September 2009, Köln
  • 10. September 2009, Hamburg
  • 11. September 2009, Berlin
  • 16. September 2009, Bad Homburg
  • 17. September 2009, Böblingen
  • 25. September 2009, Unterschleißheim

Die Anmeldung ist nur per E-Mail möglich. Haben Sie Interesse und möchten Sie teilnehmen, schreiben Sie uns eine E-Mail an fitmit7@microsoft.com und nennen Sie uns darin Ihren gewünschten Veranstaltungsort oder Wunschtermin.

Workshops für Softwarehersteller zum Thema Windows 7 Anwendungskompatibilität

28.07.2009 11:56:00 | Lori Grosland

Bauen Sie wertvolles Wissen mit unserem Windows 7-Trainingsangebot auf und besuchen Sie unsere kostenfreien Workshops, die wir exklusiv für ISVs (Softwarehersteller) anbieten. Informieren Sie sich auf der Veranstaltung über die neuen Funktionen von Windows 7 und erfahren Sie, auf was Sie bei der Prüfung Ihrer Software besonders achten sollten.

Agenda Workshop Windows 7-Anwendungskompatibilität
Vormittags

  • Windows 7-Neuerungen
  • Anwendungskompatibilität von Windows Vista und Windows 7 im Vergleich
  • Sicherheit (unter anderem mit den Themen Integritätsmodell, Internet Explorer-Protected Mode und User Account Control)
  • Veränderungen des Dienstemodells
  • Taskbar und hochauflösende Anzeige (High DPI) für Text und Grafik
  • Windows 7-Logo-Programm
  • Frage- und Diskussionsrunde

Nachmittags

  • Praktische Einführung: Werkzeuge für die Überprüfung der Anwendungskompatibilität (darunter Application Compatibility Toolkit (ACT), Standard User Analyzer und Process Explorer).
  • Bitte beachten Sie, dass Sie dafür Ihren eigenen Laptop mit vorinstalliertem Windows 7 mitbringen müssen. (Auf Wunsch stellen wir Ihnen für Testzwecke Windows 7-DVDs (RC Version) zur Verfügung.)

Wenn Sie zu den erfahrenen Softwareentwicklern und -architekten gehören, sollten Sie sich einen der folgenden Termine vormerken.

Der Windows 7-Anwendungskompatibilitäts-Workshop beginnt jeweils um 10:00 Uhr und dauert bis 17:00 Uhr.

Termine und Veranstaltungsorte
August

  • 7. August 2009, Köln
  • 11. August 2009, Hamburg
  • 12. August 2009, Berlin
  • 18. August 2009, Bad Homburg
  • 19. August 2009, Böblingen
  • 28. August 2009, Unterschleißheim

September

  • 3. September 2009, Köln
  • 10. September 2009, Hamburg
  • 11. September 2009, Berlin
  • 16. September 2009, Bad Homburg
  • 17. September 2009, Böblingen
  • 25. September 2009, Unterschleißheim

Die Anmeldung ist nur per E-Mail möglich. Haben Sie Interesse und möchten Sie teilnehmen, schreiben Sie uns eine E-Mail an fitmit7@microsoft.com und nennen Sie uns darin Ihren gewünschten Veranstaltungsort oder Wunschtermin.

Jan Welker über dotnet-kicks.de

28.07.2009 07:53:05 | Jürgen Gutsch

dotnet-kicks.de 

So, so… Da hat Dariusz Paris also auch den Jan Welker beim .NET Open Space Süd erwischt und interviewt ihn hier zu dotnet-kicks.de. (Übrigens war der Raum in dem das Interview gemacht wurde, während dem .NET Open Space Süd, der beliebtesten Raum der artiso AG. Wegen der roten Sessel natürlich.)

Das Ergebnis ist nun hier auf dem Blog von Dariusz zu sehen:
Community: Jan Welker über donet-kicks.de

.NET Open Space vom 11.07. bis 12.07.2009 in Ulm
DotNetKicks-DE Image

Stefan Lieser über Clean Code Developer

28.07.2009 02:42:00 | Jürgen Gutsch

 

Beim .NET Open Space Süd waren unter anderem auch Stefan Lieser und von Microsoft Dariusz Paris anwesend. Interessant war zu sehen wie sich Dariusz sowohl eine Kamera als auch den Stefan krallte, um vor der Türe der artiso AG ein interview zu führen.

Das Ergebnis ist nun hier auf dem Blog von Dariusz zu sehen:
Community: Stefan Lieser über Clean Code Developer

.NET Open Space vom 11.07. bis 12.07.2009 in Ulm
DotNetKicks-DE Image

Internationalisierung von Silverlight-Anwendungen

27.07.2009 23:14:00 | Gregor Biswanger

Ein ansehnlicher Aspekt des Internets ist das große Publikum das Weltweit erreicht werden kann. Auch Intranet oder Extranet Lösungen werden oft aus verschiedenen Ländern international Konsumiert. Worauf es auch recht oft zu der Anforderung kommt, dass die jeweilige Website ebenfalls auf deren Ländersprache zur Verfügung gestellt wird.

Während die Lokalisierung bei WPF Anwendungen nicht wirklich sauber durchdacht worden ist, verhält sich das bei Silverlight Anwendungen doch noch um einiges einfacher. Es verhält sich gewissermaßen ähnlich zu ehemaligen WinForms Anwendungen. Es unterscheidet sich nur mit etwas aufwändigeren Konfigurationen und das jeder Text mittels Data-Binding auf eine Ressource gebunden wird.

Dabei müssen grob folgende Schritte fabriziert werden: 

- Visual Studio Projektdatei durch gewünschte Spracherweiterungen konfigurieren.
- Ressource-Dateien anlegen für die jeweils gewünschte Sprache.
- Zentralle Ressource-Datei in der Application als allgemeine Ressource Initialisieren.
- beliebiger Text mit der Ressource Binden.

Um die jeweiligen Schritte im Detail folgen zu können, soll nun ein Beispielprojekt für einen besseren Überblick verhelfen.

Beispielanwendung

Erst muss mit Visual Studio ein neues Silverlight Projekt angelegt werden, hier im Beispiel wird der Name „SilverlightLocalizationExample“ verwendet. Um eine bessere Übersicht zu bekommen wurden Projektverzeichnisse mit Client und Server angelegt. Als erster Schritt muss das Silverlight Projekt ungeladen werden, damit die Projektdatei in Visual Studio editiert werden kann. Dazu ein rechtsklick auf die Silverlight Anwendung und auf „Unload Project“ klicken. Nach dem entladen kann mit wiederholten rechtsklick die Projektdatei mittels „Edit SilverlightLocalizationExample.csproj“ bearbeitet werden.


Abb.1.1. – Bearbeiten der Silverlight Projektdatei.

Jetzt wird die Projektdatei durch das SupportedCultures-Element erweitert. Dabei werden hier als Wert alle gewünschten Sprachen mit einem Komma getrennt angegeben. Hier im Beispiel wird Deutsch und Englisch definiert.


Abb.1.2. – SupportedCultures-Element definieren.

Danach wird das Projekt wieder in Visual Studio geladen. Das geht durch wiederholten rechtsklick auf das Projekt und anschließend auf „Reload Project“. Das Projekt wurde nun auf die beiden Sprachen Deutsch und Englisch erfolgreich eingestellt. Für jede Sprache muss jetzt eine Ressource-Datei angelegt werden, sowohl aber auch eine Zentralle Ressource-Datei oft Satellitenassembly genannt. Die Satellitenassembly koordiniert später vollautomatisch die erkannte Sprache des Browsers mit der vorhandenen Resource-Datei. Sollte es für die gewünschte Sprache keine Ressource-Datei geben, wird der Standard-Wert der Satellitenassembly verwendet.

Im Projekt wird ein neues Verzeichnis mit den Namen „LanguageResources“ angelegt, obwohl hierbei der Name frei gewählt werden kann. Dem neuen Verzeichnis werden Ressource-Dateien mittels neuen Items hinzugefügt. Die Namen der Ressource-Dateien kann auch frei gewählt werden. Wichtig! Es muss jeweils am Ende des Namens die Kultur getrennt durch punkte angegeben werden. Ansonsten erkennt später die Satellitenassembly die erwünschte Datei nicht. Die Satellitenassembly selbst bekommt einfach den Standardnamen ohne Kulturangabe.


Abb.1.3. – Ressource-Datei für die Sprache Deutsch anlegen.

Wenn die Ressource-Dateien angelegt wurden, muss die gewünschte Zugriff Bestimmung definiert werden. Dazu muss nur gesagt sein, dass die Satellitenassembly auch als Assembly verarbeitet werden soll und die anderen Ressource-Dateien keine Code-Generation benötigen. Mit einem doppelklick auf die Satellitenassembly wird oben bei „Access Modifier“ der Wert „Public“ gewählt. Alle anderen Dateien müssen auf „No code generation“ gesetzt sein.


Abb.1.4. – Satellitenassembly definieren.

Wenn alles richtig angelegt und definiert wurde, sollte das Projekt wie in Abb.1.5 aussehen.


Abb.1.5. – Die angelegten Ressource-Dateien.

Das Projekt verfügt jetzt um eine Lokalisierungserweiterung. Damit die Anwendung selbst auch auf die Satellitenassembly zugriff bekommt, muss man dessen Code-Behind-Datei anpassen. Den ein bis Visual Studio 2008 mitgelaufener Bug verhindert den Zugriff von außen. Den Visual Studio ändert automatisch nach jedem anpassen der Satellitenassembly den Zugriffsmodifizierer des Constructors auf Internal. Dieser muss leider jedesmal manuell auf Public gesetzt werden.


Abb.1.6. – Den Constructor der Satellitenassembly auf Public setzen.

Um das besser zu Demonstrieren wird in jeder Ressource-Datei ein Label mit „Hallo Welt!“ geschrieben. Angefangen mit der Datei „StringLibrary.de-DE.resx“. Das Label bekommt den Namen „Page_label01“, das für alle anderen Dateien gleichermaßen verwendet werden muss. Als Wert tagen wir „Hallo Welt!“ ein. Dasselbe machen wir auch in der Datei „StringLibrary.en-GB.resx“ nur eben mit dem Text „Hello World!“. In der Sattelitenassembly kommt als Standard der Text „hallo welt“. Der Text wird verwendet, wenn es keine Ressource-Datei für eine andere Sprache gibt.  


Abb.1.7. – Erstes Label mit Text vergeben.

Wenn das Projekt jetzt neu gebuildet wird, zum Beispiel mit der Tastenkombination [Strg] + [Shift] + [ B ], wird automatisch der Constructor auf Internal gesetzt. Dann müssen die Schritte, die weiter oben beschrieben wurden, wiederholt werden.

Das wären jetzt alle Grundlegenden Schritte die gemacht werden mussten. Damit der Text über Data-Binding gebunden werden kann, muss für die komplette Anwendung unter App.xaml die Sattelitenassembly als Statische Ressource bekannt geben (siehe Abb.1.8.).


Abb.1.8. – Sattelitenassembly als Statische Ressource initialisieren.

In der MainPage.xaml wird noch ein TextBlock mit dem Data-Binding angelegt. Dabei wird definiert welcher Label angezeigt werden soll und das die Daten in der statischen Ressource zu finden sind. 


Abb.1.9. – TextBlock mit der Sattelitenassembly binden.

Beim Starten der Anwendung wird zufriedengebend das Ergebnis mit „Hallo Welt!“ präsentiert. Das bedeutet, dass durch meinen Browser mein Deutsches Betriebssystem erkannt wurde.


Abb.1.10. – Der Test im Browser.

Sprache zur Laufzeit wechseln

Das sieht schon sehr gut aus! Was aber wenn die Anwendung gewollt während der Laufzeit in einer anderen Sprache geladen werden soll? Das ist ganz einfach, dafür wurde die MainPage.xaml mit einem StackPanel und einem Button erweitert. Der Button hat zudem ein Klick-Event.


Abb.2.1. – MainPage.xaml mit dem Button „Englisch“ erweitern.

Die Sattelitenassembly verfügt nun über ein öffentliches Property das die erkannte Kultur enthält. Dieses muss einfach manuell manipuliert werden. Anschließend muss der TextBlock den Text aktualisieren. Dazu wird im LayoutRoot, das Grid auf höchster Ebene in der MainPage.xaml, komplett geleert. Eine neue Initialisierung der MainPage wird dann mittels „Add“ hinzugefügt.


Abb.2.2. – Source-Code des Buttons in der Code-Behind.

Ein weiterer Test beeindruckt mit der stabilen Funktionalität. Mit einem Klick auf den Button wird sofort der Text auf Englisch angezeigt.


Abb.2.3. – Der Test im Browser.

Fazit

Es ist zufriedenstellend das hier die Lokalisierung etwas einfacher verläuft wie unter WPF Anwendungen. Doch leider ist das stätige abändern des Contructors der Sattelitenassembly auf Public etwas Fehleranfällig. Sobald es einmal vergessen wurde, kann eine Stundenlage Fehleranalyse folgen, ohne dass dabei an die Ressourcen-Datei gedacht wird.

Nichtsdestotrotz wird gleichmäßig eine Lösung geboten und läuft zudem anständig und stabil.

Silverlight 3 Medieninhalte Webcast

27.07.2009 23:06:46 | Oliver Scheer

In diesem Webcast sehen Sie, wie man mit Silverlight 3 Medieninhalte abspielen kann, wie man mit Expression Encoder 3 Medieninhalte aufbereitet und wie man IIS Smooth Streaming benutzt. Zum Schluß wird noch gezeigt, welche Hosting-Möglichkeiten es gibt. Insbesondere beim Kodieren wird auf die Erstellung von Screencasts eingegangen.

Link: http://www.microsoft.com/germany/msdn/webcasts/library.aspx?id=1032422467

Weitere Webcasts gibt es unter: http://the-oliver.com/silverlight/webcasts

Silverlight 3 Navigation und Deep Linking Webcast

27.07.2009 23:04:22 | Oliver Scheer

Bisher war es nicht ganz einfach, auf die Browsernavigation zu agieren und über einen Link direkt auf bestimmte Inhalte einer Silverlight-Anwendung zuzugreifen. Durch die neuen Navigations-Features hat man jetzt die Möglichkeit, Silverlight-Anwendungen von der Navigation her genauso wirken zu lassen wie normale Webseiten.

Link: http://www.microsoft.com/germany/msdn/webcasts/library.aspx?id=1032422320

Weitere Webcasts zu Silverlight: http://the-oliver.com/silverlight/webcasts

Silverlight 3 Out-of-Browser Webcast

27.07.2009 23:00:08 | Oliver Scheer

Silverlight 3 Anwendungen können ohne viel Aufwand zu Desktop-Anwendungen erweitert werden. Dieser Webcast zeigt, auf welche Dinge man achten muss, wenn man Out-Of-Browser-Anwendungen erstellen möchte. Wie z.B. installiert man eine Web-Anwendung auf dem Desktop? Wie erkennt man, wo die Anwendung ausgeführt wird, ob eine Internetverbindung besteht oder die Anwendung offline arbeitet? Und wie kann ich meine Anwendung so erstellen, dass sie sich automatisch aktualisiert, wenn eine neuere Version verfügbar ist?

Link: http://www.microsoft.com/germany/msdn/webcasts/library.aspx?id=1032421609

Eine Liste mit weiteren Webcasts gibt es hier: http://the-oliver.com/silverlight/webcasts

Code 7 Contest: $17.777 zu gewinnen!

27.07.2009 18:37:58 | Peter Kirchner

Zur Zeit läuft ein Entwicklerwettbewerb zu Anwendungen für Windows 7. Als Hauptpreis gibt es $17.777 zu gewinnen inkl. einer Einladung zum Microsoft Campus in Redmond.

Ihre Anwendung muss mindestens zu einer dieser Kategorien passen…

  • Simplify My Life
  • More Media, More Places
  • Gaming
  • Work From Anywhere
  • Safeguard Your Work
  • Applications for a Better Tomorrow

    … und mindestens eine dieser Windows 7-Technologien nutzen:

  • Libraries
  • Windows Touch
  • Shell Integration
  • DX11 (DirectX 11)
  • Sensor and Location Platform

    Teilnahmeschluss ist der 10.10.2009 (Pacific Time). Es gibt auch einen “Early Bird”-Preis. Der Teilnahmeschluss hierfür ist der 15.08.2009 (Pacific Time).

    Weitere Infos, sowie alle Teilnahmebedinungen finden Sie auf dieser Seite: www.code7contest.com

  • Eine eigene Suche für kleine Webs – Teil 4

    27.07.2009 18:15:29 | Klaus Bock

    Mittlerweile bin ich beim vierten Teil der Serie angelangt und wie im vorherigen Artikel erwähnt, möchte ich diesmal auf die Erstellung des Volltextkatalog eingehen. Vorab muss ich jedoch ein wenig ausholen.

    Das gesamte Konzept der lokalen Suche soll sich wie ein permanent verfügbarer Datenspeicher, ähnlich einem DBMS, verhalten. Es soll also der Katalog in einer einzigen Instanz für alle Benutzer zur Verfügung stehen und zwar ab dem Start der Anwendung. Wenn der Katalog einmal erstellt wurde kann er in serialiserter Form auf dem Datenträger gespeichert werden. Deshalb auch die Verwendung des Serializable-Attribut sowohl in der Struktur SiteEntry als auch in der Klasse FulltextCatalog.
    Bei einem erneuten Start der Anwendung steht sofort ein Katalog zur Verfügung und parallel dazu wird ein neuer, eventuell aktualisierter, Katalog erstellt und auf dem Datenträger gespeichert. Der eben erstellte Katalog verbleibt als aktuelle Instanz zur Verwendung im Speicher.

     SiteSearch Flowchart

    Die zentrale Klasse, welche die gesamte Suche verwaltet, habe ich SiteSearch genannt und nach dem Singleton-Entwurfsmuster implementiert.
    Die Klasse wird bereits in der Global.asax der Anwendung in der Methode Application_Start instanziiert. Mit dem Aufruf von BuildCatalog wird der Prozess zur Instanziierung des Katalog wie oben beschrieben in Gang gesetzt und anschließend die Anwendung gestartet.

    protected void Application_Start(object sender, EventArgs e)
    {
        // Schlüssel Viewers in der Anwendung erzeugen
        Application["Viewers"] = 0;
    
        // Volltextkatalog für die Suche erstellen
        SiteSearch.Instance.BuildCatalog();
    }

    Wie im oben dargestellten Diagramm ersichtlich wird der Katalog mit der Methode CreateCatalog, die in einem separaten Thread läuft, erstellt.

    public void BuildCatalog()
    {
        if (this.fulltextCatalog == null)
        {
            this.fulltextCatalog = new FulltextCatalog();
        }
    
        // prüfen ob bereits eine Katalogdatei vorhanden ist
        if (File.Exists(SiteSearch.catalogFile))
        {
            // Katalog einlesen
            SiteSearch.LoadCatalog();
        }
    
        // Katalog neu erzeugen
        ThreadPool.QueueUserWorkItem(
    		new WaitCallback(SiteSearch.CreateCatalog));
    }

    Die private statische Methode CreateCatalog prüft als erstes ob bereits ein Index der Seiten, den ich kurz im zweiten Artikel der Serie behandelt habe, erstellt wurde. Falls kein Index vorhanden ist wird dieser erstellt. Als nächstes wird geprüft ob der aktuelle Katalog bereits Daten enthält. Sollten Daten vorhanden sein, wird der Katalog geleert. Anschließend wird durch den Index iteriert und für jeden Eintrag im Index die entsprechende Seite analysiert und dem Katalog hinzugefügt. Abschließend wird der neu erstellte Katalog auf dem Datenträger gespeichert.

    private static void CreateCatalog(object stateInfo)
    {
        // prüfen ob der Index Daten enthält
        if (SiteSearch.siteIndex == null)
        {
            // Index neu erzeugen
            SiteSearch.siteIndex = new List<string>();
            SiteSearch.CreateSiteIndex(
    			new DirectoryInfo(SiteSearch.webRoot));
        }
    
        // Wenn der Katalog noch Daten enthält
        if (SiteSearch.Instance.fulltextCatalog.Count > 0)
        {
            // Katalog leeren
            SiteSearch.Instance.fulltextCatalog.Clear();
        }
    
        // für jeden Eintrag im Index einen Eintrag im Katalog erstellen
        foreach (var site in SiteSearch.siteIndex)
        {
    
            SiteAnalyzer analyzer = new SiteAnalyzer(
                Utils.GetAbsolutUri(site, SiteSearch.context));
            analyzer.TitleDelimeter = "|";
            analyzer.AnalyzeSite();
    
            // eine neue Instanz der SiteEntry-Struktur erzeugen
            SiteEntry entry = new SiteEntry();
    
            // die Felder der Struktur belegen
            entry.PubDate = Utils.LastModified(site);
            entry.Title = analyzer.SiteTitle;
            entry.Content = analyzer.SiteContent;
            entry.Url = analyzer.SiteUrl;
    
            // die Struktur dem Katalog hinzufügen.
            SiteSearch.Instance.fulltextCatalog.Add(entry);
        }
    
        // Katalog in Datei sichern
        SiteSearch.SafeCatalog();
    }

    Wie man in der foreach-Schleife sehen kann, wird die Analyse der jeweiligen Seite von einer Klasse SiteAnalyzer durchgeführt. Dem Konstruktor der Seite wird die URL der zu analysierenden Seite übergeben. Die somit erstellte SiteAnalyzer-Instanz führt nach dem Aufruf von AnalyzeSite die Analyse der Seite durch und belegt die Eigenschaften der Instanz mit den jeweiligen Werten. Diese Werte, z.B.: Titel, Inhalt und das Datum der Erstellung oder letzten Änderung, werden anschließend in einer Instanz der SiteEntry-Struktur gespeichert und der FulltextCatalog-Instanz hinzugefügt.
    Wie die Analyse der jeweiligen Seite innerhalb der Klasse SiteAnalyzer von statten geht, werde ich im nächsten Artikel der Serie zeigen.

    Historie gelöschter Objekte im TFS ermitteln

    27.07.2009 14:28:00 | Martin Hey

    Löscht man Objekte, die unter Source Control stehen, so hat man auf den ersten Blick keine Möglichkeit, diese wiederherzustellen oder sich die Historie anzuschauen, um so herauszufinden wer das Objekt mit welchem Changeset gelöscht hat.

    Möchte man die gelöschten Objekte sehen, so muss man dies zunächst aktivieren. Die Option dazu findet man unter Tools -> Options -> Source Control -> Visual Studio Team Foundation Server. Dort aktiviert man den Haken "Show deleted items in Source Control Explorer".



    Nun sieht man im Source Control Explorer auch gelöschte Dateien.

    Jetzt noch sauberer!

    27.07.2009 08:38:00 | Martin Hey

    Die Kombination aus professionellem Softwareentwickler und sauberem Code solle eigentlich eine Selbstverständlichkeit sein. Doch nicht immer trifft man im Alltag diese Kombination auch an. Das kann vielerlei Ursachen haben - sei es weil "saubereres Programmieren" (wie auch immer definiert) während der Ausbildung nicht beigebracht wurde, aus Unachtsamkeit oder weil es im Alltagsstress einfach untergegangen ist. Möchte man langfristig erfolgreich sein, ist es jedoch wichtig, wartbaren und lesbaren Code zu produzieren und sich einen gewissen Qualitätsstandard in der Arbeit anzueignen.

    Mit Clean Code Developer haben Ralf Westphal und Stefan Lieser eine Initiative ins Leben gerufen, die sich genau mit diesem Thema auseinandersetzt. Durch ein Wertesystem mit gewissen Regeln, Praktiken und Prinzipien soll Softwareentwicklung professioneller und vertrauenswürdiger werden. In aufeinanderfolgenden farblich gekennzeichneten Graden wird versucht, eben diese Prinzipien zu beherzigen und zu vertiefen.

    Und ja, auch ich mach mit bei CCD, denn es ist meiner Meinung nach ein sehr guter Ansatz.

    Damit die CCD-Regeln und Prizipien des aktuellen Grades in der täglichen Arbeit nicht untergehen, gibt es von Alexander Zeitler ein Add-In für Visual Studio.

    Ähnliche Beiträge:

    Eine eigene Suche für kleine Webs – Teil 3

    25.07.2009 14:56:32 | Klaus Bock

    Nach dem ich in den beiden vorherigen Artikeln sowohl das grundlegende Konzept als auch einen Ansatz zur Erzeugung eines Index vorgestellt habe, möchte ich mich in diesem Beitrag dem Kernstück der Suche widmen; dem Katalog.
    So ein Katalog will mit Daten gefüllt werden; also wird erst einmal ein Objekt benötigt, welches alle relevanten Daten einer Seite aufnimmt. Für den Anfang habe ich folgende Eigenschaften angedacht um eine Seite darzustellen:

    • Title. Hält den Titel der jeweiligen Seite, oder die URI falls kein Titel vorhanden ist.
    • Url. Die URI der Seite.
    • Content. Der Textinhalt der Seite, von sämtlichem HTML bereinigt.
    • PubDate. Das Datum der Erstellung oder letzten Änderung der Seite.
    • Rank. Ein Wert der die Relevanz der Seite in Relation zum Suchbegriff darstellt.

    Natürlich können hier noch diverse andere Felder verwendet werden, wie etwa der Inhalt enthaltener Überschriften in H1 bis H4 Tags. Für den Anfang sollten die vorgeschlagenen Felder jedoch genügen um eine Seite darzustellen.
    Nur falls sich jemand wundert; Das Feld Rank kommt für den Katalog erst einmal nicht zum tragen. Allerdings wird die gleiche Struktur auch für die Ausgabe der Suchergebnisse verwendet und dort wird dieses Feld benötigt um die Ergebnisse zu werten.

    Umgesetzt habe ich dieses Objekt als eine Struktur, welche die Schnittstellen IComparable<T> und IEquatable<T> implementiert. Hier ein Auszug aus der Implementierung. Ich habe lediglich die relevanten Felder dargestellt. Auf die Darstellung der Methoden von IComparable<T> und IEquatable<T> habe ich verzichtet.

    [Serializable, StructLayout(LayoutKind.Sequential)]
    public struct SiteEntry : IComparable<SiteEntry>, IEquatable<SiteEntry>
    {
        #region Fields
    
        /// <summary>
        /// Stellt einen leeren Eintrag dar.
        /// </summary>
        /// <remarks>n/a</remarks>
        public static readonly SiteEntry Empty;
    
        /// <summary>
        /// Der Textinhalt der Seite.
        /// </summary>
        /// <remarks>n/a</remarks>
        public string Content;
    
        /// <summary>
        /// Das Datum der Veröffentlichung oder letzten Änderung.
        /// </summary>
        /// <remarks>n/a</remarks>
        public DateTime PubDate;
    
        /// <summary>
        /// Die Relevanz der Seite in Relation zum Suchbegriff.
        /// </summary>
        /// <remarks>n/a</remarks>
        public int Rank;
    
        /// <summary>
        /// Der Titel der Seite.
        /// </summary>
        /// <remarks>n/a</remarks>
        public string Title;
    
    
        /// <summary>
        /// Die URL zur Seite.
        /// </summary>
        /// <remarks>n/a</remarks>
        public Uri Url;
    
        #endregion Fields
    
        // hier IComparable<T> und IEquatable<T> implementieren
    
    }

    Um die vollständige Implementierung zu zeigen, hier das Klassendiagramm der Struktur SiteEntry:

    SiteEntry Diagram

    Der eigentliche Katalog braucht nichts anderes zu sein als ein Container, welcher die einzelnen SiteEntry-Instanzen vorhält und ein Iteration durch die Instanzen unterstützt. Meine Wahl viel auf ein versiegelte Klasse, welche die Schnittestelle IEnumerator<T> implementiert.

    /// <summary>
    /// Stell den Volltextkatalog zur Suche in einer Webanwendung dar
    /// </summary>
    /// <remarks>n/a</remarks>
    [Serializable]
    public sealed class FulltextCatalog : IEnumerator<SiteEntry>
    {
    	// hier die Member der Klasse
    }


    Fulltext Catalog Diagram

    Intern, zum Verwalten der Einträge, wird eine List<T> , im Diagramm als list<SiteEntry> zu sehen, verwendet. Um auf die List<T> von außen zugreifen zu können, oder besser um sie mit Daten zu füllen, werden die Methoden Add, Clear, Contains, Remove und RemoveAt als öffentliche Methoden zur Verfügung gestellt. Da die intern verwendete List<T> auch Einträge mehrmals zulässt ist die Methode Add so implementiert, dass erst in der internen Liste geprüft wird ob bereits eine Instanz des hinzuzufügenden Objekts vorhanden ist. So wird sichergestellt, dass jeder Seiteneintrag nur einmal in der Liste vorkommt.
    Um verschiedene Schleifenmethoden zum durchlaufen der Auflistung abzudecken, werden verschiedene Möglichkeit geboten.
    Für den Durchlauf mit einer for-Schleife kann mit der Eigenschaft Count die Anzahl der Elemente im Volltextkatalog bestimmt und via einem Indexer das aktuelle Objekt abgefragt werden.
    Für die Verwendung einer foreach-Schleife tragen die Member der implementierten IEnumerator<T>-Schnittstelle Sorge.
    Dispose ist lediglich enthalten, weil die Schnittstelle IEnumerator<T> bereits IDisposable mitbringt und die Implementierung der Methode verlangt wird.

    Im nächsten Artikel wir dann erläutert, wie der Katalog mit den Daten der Seiten eines Webs gefüllt wird. Auch warum sowohl die Struktur SiteEntry als auch die Klasse FulltextCatalog mit dem Serializable-Attribut maskiert sind wird erklärt werden.

    Kontextmenü von Smart Tags im Visual Studio anzeigen

    24.07.2009 11:26:00 | Martin Hey

    Meiner Meinung nach sind die Smart Tags in Visual Studio ein sehr schönes Feature, die ich besonders häufig für das Umbenennen von Variablen oder für das Erzeugen von Methodenrümpfen beim Implementieren von Interfaces verwende.

    In der täglichen Arbeit finde ich es allerdings etwas nervig, den doch etwas klein geratenen Smart Tag mit der Maus zu treffen.

    Wie für so vieles gibt es auch hier eine Tastenkombination: Laut Tooltip kann das Smart Tag Menü mit Alt+Shift+F10 geöffnet werden. Was der Tooltip nicht sagt: Mit der viel einfacheren Tastenkombination Strg+. öffnet sich das Menü ebenfalls.

    Ähnliche Beiträge:

    53 kostenfreie Pixelshader-Effekte und -Transitionen für Silverlight 3

    24.07.2009 10:09:26 | Oliver Scheer

    Auf Codeplex gibt es ein Pixelshader-Projekt für Silverlight und WPF.

    Sehr genial. Macht total Spaß damit zu arbeiten.

    Effekte:
    BandedSwirl, Bloom, BrightExtract, ColorKeyAlpha, ColorTone, ContrastAdjust, DirectionalBlur, Embossed, Gloom, GrowablePoissonDiskEffect, InvertColor, LightStreak, Magnify, Monochrome, Pinch, Pixelate, Ripple, Sharpen, SmoothMagnify, Swirl, Tone, Toon und ZoomBlur

    Transition Effects:
    BandedSwirl, Blings, Blood, CircleReveal, CircleStretch, CircularBlur, CloudReveral, Cloudy, Crumble, Dissolve, DropFade, Fade, LeastBright, LineReveal, MostBright, PixelateIn, PixelateOut, Pixelate, RadialBlur, RadialWiggle, RandomCircleReveal, Ripple, Rotate, Saturate, Shrink, SlideIn, SmoothSwirl, Swirl, Water und Wave.

    image

    Alles inklusive Sourcecode und Beispielen.

    Download hier.

    Silverlight Slide.Show Control von Vertigo kostenfrei auf Codeplex

    23.07.2009 13:48:51 | Oliver Scheer

    Unter http://www.codeplex.com/SlideShow hat Vertigo ein Silverlight-Control frei verfügbar veröffentlicht mit dem man eben mal schnell seine eigene Bilder Galerie (von FlickR, oder sonst wo) veröffentlichen kann.

    Ein Beispiel mit meinen Bildern bei FlickR findet man hier.

    image

    Windows 7 und Windows Server 2008 R2 sind fertig und werden ausgeliefert [RTM-Status]

    23.07.2009 12:44:26 | Kay Giza

    Mit der Fertigstellung von Windows 7 wird das Betriebssystem ab sofort an OEM- und Produktionspartner freigegeben („Release to Manufacturing“ – „RTM“), um schon in Kürze im Handel und auf Computern zur Verfügung zu stehen. Im Handel steht Windows 7 für Endkunden ab dem 22. Oktober zur Verfügung. Inhaber einer MSDN Subscription können die finale Version von Windows 7 bereits ab dem 6. August in englischer Version sowie ab dem 1. Oktober auch in internationalen Versionen über die MSDN Subscriber Downloads beziehen, um mit Vorabversionen entwickelte Lösungen bis zum weltweiten Marktstart von Windows 7 perfekt abzurunden. Grund zur übereilten Hast besteht für bisherige Tester dennoch nicht: Noch bis zum... [... mehr in diesem Blog-Eintrag auf Giza-Blog.de]

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

    Verwaiste SQL-Logins auf einem SQL-Server ermitteln

    23.07.2009 08:28:00 | Martin Hey

    Auf einem SQL-Server kann es vorkommen, dass es Logins gibt, zu denen es gar keine User-Zuordnung mehr in Datenbanken gibt. Das kann mehrere Ursachen haben. Erste Ursache kann sein, dass dem Login einfach der Zugriff auf eine Datenbank entzogen wurde. Zweite Ursache kann sein, dass die Datenbanken auf die der Nutzer mal Zugriff hatte, nun vom Server gelöscht wurden - entweder weil sie obsolet waren oder weil sie nun auf einem anderen Server liegen. Diese verwaisten Logins dümpeln nun noch auf dem Server herum (Security -> Logins).

    Nun kann es ganz interessant und auch wichtig sein, herauszufinden, wie es um den Server in Bezug auf dieses Thema bestellt ist, um ggf. Aufräumaktionen zu starten. Besonders bei vielen Logins oder bei vielen Datenbanken kann es dann aber schon zeitaufwändig werden, bei jedem Login in die User-Mappings zu schauen und dort zu prüfen, ob eine Datenbank angehakt ist.

    Für SQL-Logins kann das folgende Skript schnell eine Übersicht generieren:
    CREATE TABLE #OrphanedLogins (sid varbinary(85) NOT NULL)

    -- get all sql logins except of sa
    INSERT INTO #OrphanedLogins (sid)
    SELECT sid FROM sys.server_principals WHERE type = 'S' AND sid <> 0x01

    -- iterate trough all databases and determine if one of the logins exists there
    -- delete found sids from temp table
    exec sp_msforeachdb 'DELETE #OrphanedLogins
    FROM sys.database_principals dp INNER JOIN #OrphanedLogins ol
    ON dp.sid = ol.sid'

    -- get the result
    SELECT * FROM sys.server_principals sp
    INNER JOIN #OrphanedLogins ol ON
    sp.sid = ol.sid

    Die Lösung für NT-Nutzer sieht so ähnlich aus. Aber Achtung: Logins können auch sysadmin-Funktionen haben und dann kann es gerechtfertigt sein, dass diese keine Datenbankzuordnung haben. Aus diesem Grund sollte anhand des Ergebnisses nicht blind gelöscht werden.

    Nachholtermin des UG-Meeting bei der .NET UG Stuttgart steht fest

    22.07.2009 18:34:08 | Kay Giza

    Das User Group Meeting bei der .NET UG Stuttgart welches am 24.06.2009 ausgefallen ist, wird nun nachgeholt.
    Zusammen mit der UserGroup-Leiterin haben wir einen neuen Termin gefunden:

    Termin: 25.11.2009
    Uhrzeit: 18.00 - 20.30 Uhr
    Ort: Tieto Deutschland GmbH, Mittlerer Pfad 2, 70499 Stuttgart
    Thema (wie beim geplanten letzten Termin): Das neue MSDN Online & Microsoft unplugged

    Mehr Informationen & Anlmeldung: .Net Developers Group Stuttgart
    Ich freue mich auf einen spannenden und interessanten UserGroup-Abend! :-)



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

    Exam 70-562: Microsoft .NET Framework 3.5 - ASP.NET Application Development

    22.07.2009 10:03:00 | Martin Hey

    Als zweite Zertifizierungsprüfung in diesem Jahr war heute ASP.NET Application Development mit dem .NET Framework 3.5 dran. Mein Ergebnis ist: "Passed".

    Die Prüfung bestand aus 50 Multiple-Choice-Fragen aus den Bereichen:
    • Configuring and Deploying Web Applications
    • Consuming and Creating Server Controls
    • Working with Data and Services
    • Troubleshooting and Debugging Web Applications
    • Working with ASP.NET AJAX and Client-Side Scripting
    • Targeting Mobile Devices
    • Programming Web Applications

    Windows 7 Developer Contest

    22.07.2009 07:40:00 | Martin Hey

    Unter dem Namen Code7 Contest - Code to the Power of Windows 7 veranstaltet Microsoft in der Zeit vom 13.07.2009 bis 10.10.2009 (Pacific Time) einen Programmierwettbewerb. Wie der Name schon sagt, steht Windows 7 im Vordergrund.

    Die Anwendung sollte in eines der Windows 7 Szenarien passen:
    • Simplify My Life
    • More Media, More Places
    • Gaming
    • Work From Anywhere
    • Safeguard Your Work
    • Applications for a Better Tomorrow
    Es sollte eine oder mehrere der Windows 7 Technologien verwendet werden:
    • Libraries
    • Windows Touch
    • Shell Integration
    • DirectX 11
    • Sensor and Location Platform
    Zu gewinnen gibt es unter anderem eine Freikarte für die PDC 2009 in Los Angeles, Notebooks und mehrere Bargeldpreise.

    Component Code Challenge

    22.07.2009 07:02:00 | Martin Hey

    Die INETA (International .NET Association) veranstaltet noch bis 25.08.2009 die Component Code Challenge. Dem Gewinner winkt eine Reise (Flug und Freikarte) zur PDC 2009 in Los Angeles.

    Regeln:
    • Erstellung einer .NET-Applikation
    • Verwendung von mindestens 2 Komponenten von mindestens 2 der zugelassenen Hersteller
    • Erstellung eines Videos, in dem erklärt wird, was cool an der Applikation ist
    • Einsendeschluss: 25.08.2009
    Den Juroren geht es darum, wie diese 3rd-Party-Komponenten eingesetzt werden. Daher sind die Bewertungskriterien:
    • effektiver Einsatz der Komponenten
    • innovativer Einsatz der Komponenten
    • Einfluss der Komponenten auf Quellcode, Produktivität usw.
    • kreativer Einsatz der Komponenten
    Weitere Informationen auf der Website der INETA.

    Viel Spaß beim entwickeln und viel Erfolg beim gewinnen....

    Summer Silverlight Coding Competition 2009

    22.07.2009 06:35:00 | Martin Hey

    ComponentArt veranstaltet in der Zeit vom 22. Juni bis zum 22. September einen Silverlight-Programmierwettbewerb. Der Hauptpreis sind 10.000 US-Dollar, daneben gibt es noch 2 ComponentArt-Lizenzen - und natürlich Ruhm und Ehre.

    Regeln:
    • entwickelt in Silverlight 1, 2 oder 3
    • Einsendeschluss ist 22.09.2009 21:00 MESZ (bzw. 2:00 pm EST)
    • über eine öffentliche URL zugänglich
    • Zugangsbeschränkung mit Benutzername und Passwort sind erlaubt
    Weitere Informationen zum Event gibt es unter http://www.componentart.com/community/competition2009/rules.aspx

    Allen Silverlight-Entwicklern viel Spaß und viel Erfolg beim Mitmachen...

    Eine Woche Konferenz und 3 Wochen Urlaub stehen an

    20.07.2009 16:24:11 | Jan Schenk

    Es ist mal wieder soweit. Ab morgen bin ich außer Lande, um mich für meinen Arbeitgeber ein bisschen fort zu bilden. Na gut, ich weiss noch nicht, ob ich für ein Marketing und Sales Event der Richtige bin, aber das ist die letzte Veranstaltung im Rahmen meines New Hire-Programms bei MSFT, und ich werde auch diesen Schritt gehen und ein braver Angestellter sein. Tatsächlich freue ich mich auch schon auf die USA, besser gesagt auf die riesige Mall, die gegenüber unseres Hotels ist.

    Danach geht es in den Sommerurlaub, weil Töchterchens KiTa zu hat. Sonst wäre ich vermutlich diesen verregneten Sommer gar nicht zum urlauben gekommen. Noch lebt die Hoffnung, dass das Wetter hier im Süden von Deutschland ein bisschen besser wird. Und ein bisschen länger ein bisschen besser. Nicht immer nur ein Tag schön und dann wieder drei Tage Dauerregen.

    Ich werde dazwischen bestimmt die Finger nicht von der Tastatur lassen können und das ein oder andere Mal bloggen, aber erwartet nicht zu viel von mir ;-) !

    Wir sehen uns im August,
    gehabt euch bis dahin wohl,
    jan

    Erstellen von Out-of-Browser-Anwendungen

    20.07.2009 12:21:26 | Oliver Scheer

    Wie erkennt man das eine Anwendung Out-Of-Browser (OOB) verwendet werden kann?

    image_thumb

    Diese Anwendung ist nicht für OOB konfiguriert. Im Kontextmenü ist kein Menü zum Installieren vorhanden.

    image_thumb2

    Diese hingegen schon. Damit man dieses Menü zum Installieren auf dem Desktop erhält, muss man das Manifest der Anwendung anpassen.

    image_thumb6

    Das geht sehr einfach über die Eigenschaften des Projektes. Dort gibt es die Option “Enable running application out of browser”. Hat man diese aktiviert, kann man über den Button “Out-of-Browser Settings …” seine OOB-Anwendung detailliert konfigurieren.

    image_thumb10

    Neben Titel, Beschreibung und Namen für Verknüpfung auf dem Desktop, kann man dort auch Icons konfigurieren die je nach Symbol-Größe auf dem Desktop angezeigt werden.

    Anschließend kann man seine Anwendung starten und mittels des Kontext-Menüs installieren und auch darüber wieder deinstallieren.

    Installation im Code starten

    Den Vorgang des Installierens kann man im Programmcode anstoßen. Dieses muss allerdings auch Sicherheitsgründen in einem Ereignis geschehen, das vom Benutzer ausgelöst wurde, z.B. Button-Click.

       1: void _installOutOfBrowserButton_Click(object sender, RoutedEventArgs e)

       2: {

       3:     if (App.Current.InstallState != InstallState.Installing

       4:         && App.Current.InstallState != InstallState.Installed)

       5:     {

       6:         App.Current.Install();

       7:     }

       8: }

    In diesem kleinen Code-Snippet wird auch noch geprüft, ob die Installation bereits angestossen wurde oder ob die Anwendung bereits installiert ist. Treffen diese beiden Eigenschaften nicht zu, wird die Installation gestartet.

    Erkennen wo die Anwendung ausgeführt wird

    Wie kann man nun erkennen ob die Anwendung im OOB-Modus oder im Browser ausgeführt wird?

       1: private void CheckExecutionState()

       2: {

       3:     if (App.Current.IsRunningOutOfBrowser)

       4:     {

       5:         _oobStatusText.Text = "Out of Browser";

       6:     }

       7:     else

       8:     {

       9:         _oobStatusText.Text = "Running in Browser";

      10:     }

      11: }

    Die Eigenschaft App.Current.IsRunningOutOfBrowser gibt an ob die Anwendung außerhalb des Browsers ausgeführt wird oder nicht. Leichter geht es wohl nicht.

    Automatische Updates

    Ich habe meine Anwendung Out of Browser auf dem Desktop installiert. Wie kann ich erkennen ob es eine neue Version auf der Webseite gibt, von der die Anwendung ursprünglich gekommen ist?

       1: void _checkForUpdateButton_Click(object sender, RoutedEventArgs e)

       2: {

       3:     _versionStatusText.Text = "Checking for update ...";

       4:     App.Current.CheckAndDownloadUpdateCompleted += 

       5:         Current_CheckAndDownloadUpdateCompleted;

       6:     App.Current.CheckAndDownloadUpdateAsync();

       7: }

       8:  

       9: void Current_CheckAndDownloadUpdateCompleted(object sender, 

      10:     CheckAndDownloadUpdateCompletedEventArgs e)

      11: {

      12:     App.Current.CheckAndDownloadUpdateCompleted -= 

      13:         Current_CheckAndDownloadUpdateCompleted;

      14:  

      15:     if (e.UpdateAvailable)

      16:     {

      17:         _versionStatusText.Text

      18:             = "New version is available and installed. " +

      19:             "Please restart your application.";

      20:     }

      21:     else

      22:     {

      23:         _versionStatusText.Text

      24:             = "No Update available.";

      25:     }

      26: }

    Die statische Methode App.Current.CheckAndDownloadUpdateAsync() prüft ob es eine neuere Version der installierten Anwendung an ihrem Ursprungsort gibt. Ist dies der Fall wird diese heruntergeladen und installiert. Allerdings wird aus Sicherheitsgründen die Anwendung nicht automatisch beendet und neu gestartet. Es könnte ja sein, das der Anwender noch Daten speichern muss.

    Diese Update-Methode wird asynchron ausgeführt und bringt daher auch direkt einen Callback-Handler CheckAndDownloadUpdateCompleted mit, diese enthält Informationen darüber ob ein Update verfügbar ist.

    Link: Sourcecode

    Surface in a Day

    20.07.2009 12:19:35 | Oliver Scheer

    Mein Chef fragte mich letzte Woche … mal wieder … ob ich berühmt werden will. Bescheiden wie ich bin, sagte ich … mal wieder … “ja”. Drei Tage später war ich Surface-Experte.

    Für eine interne Veranstaltung, brauchten Kollegen eine nette Anwendung in Form einer bekannten Fernsehquizsendung. Die Anwendung soll auf einem Surface laufen und in einer Art Talkshow mit einem amerikanischen Kollegen präsentiert werden.

    Erst dachte ich, cool, ich bekomme einen Surface gestellt. Aber dem war leider nicht so. Es reicht das SDK für Surface :( Schade.

    Das Ergebnis sieht man in den Screenshots oder im Microsoft Technology Center in München.

    screen2

    RIMG0001

    Für diejenigen die gerne mehr über Surface erfahren wollen, die Community zu Surface ist unter http://community.surface.com zu finden. Und wer gerne die Anwendung von mir haben möchte … einfach anmailen. Voraussetzung dafür ist aber definitiv das Surface SDK.

    Darf ich oder darf ich nicht?

    20.07.2009 09:16:00 | Michael Schwarz

    Anfang dieses Jahres hatte ich mal über unklare Verkehrsschilder geschrieben, leider bis heute kein Feedback der örtlichen Polizei-Dienststelle.

    Heute morgen fahre ich an einer Baustelle vorbei, bei der ich wieder einmal nicht schnell genug erkennen kann, was nun erlaubt und was verboten ist. Welches Verkehrsschild hat Vorrang bzw. setzt andere außer Kraft? Darf ich nun in die Straße fahren oder nicht?

    Unklare Verkehrsschilder in 90547 Stein

    Was ist eure Meinung? Bin sehr gespannt!


    Knapsack Problems - Download Complete Book

    19.07.2009 21:09:00 | Ozgur Aytekin

    The knapsack problem or rucksack problem is a problem in combinatorial optimization: Given a set of items, each with a weight and a value, determine the number of each item to include in a collection so that the total weight is less than a given limit and the total value is as large as possible. It derives its name from the problem faced by someone who is constrained by a fixed-size knapsack and must fill it with the most useful items.

    http://en.wikipedia.org/wiki/Knapsack_problem

    Download Complete Book
    http://www.or.deis.unibo.it/knapsack.html

    Eine eigene Suche für kleine Webs – Teil 2

    19.07.2009 18:38:34 | Klaus Bock

    Im ersten Artikel der Serie habe ich das grundlegende Konzept für eine eigene Suche vorgestellt. In diesem Artikel will ich mich dem ersten Punkt auf der Liste widmen:

    • Einen Index samt Mechanismus, der alle Seiten erfasst und zur Analyse vorhält.

    Um das Konzept so einfach und übersichtlich als Möglich zu halten, habe ich für die Beispiele eine Website mit rein statischen Inhalten gewählt. Da dies jedoch lediglich die Art der Erstellung des Index betrifft, sehe ich hier kein Problem das Vorgehen auch auf Webs mit dynamische generierten Seiten anzuwenden. Es muss lediglich jede Seite über eine eindeutige URL verfügen. Wo die Übersicht der URLs gespeichert wird, in einer XML Sitemap-Datei oder über eine Sitemap-URL spielt dabei keine Rolle.

    Da im vorliegendem Beispiel nur statische Seiten verwendet werden, bietet sich hier die Erstellung des Index auf Basis der Dateinamen der aspx-Seiten an. Dies lässt sich sehr einfach mit einer Rekursion durch die Verzeichnisse der Webanwendung realisieren. Da jedoch mit Sicherheit nicht alle enthaltenen Seiten, wie etwa Login, Fehlerseiten und die Suchseite, im Index erscheinen sollen, sollte eine Möglichkeit in Betracht gezogen werden diese Seiten von der Indizierung auszuschließen.
    Ich habe mich hier für den Weg über einen Eintrag in der web.config entschieden, in dem alle auszuschließenden Seiten enthalten sind. Der Zugriff auf die Einträge der web.config geschieht transparent über eine Fassaden-Klasse die nach dem Singleton Entwurfsmuster implementiert ist.

    Listing web.config:

    <appSettings>
      <clear/>
      <!-- hier verschiedene andere Einträge -->
    
      <!-- Seiten die nicht von der Suche indiziert werden sollen -->
      <add key="ExcludedSites" value="Login.aspx|Error404.aspx|Search.aspx"/>
    </appSettings>

    Die auszuschließenden Seiten werden in der Fassaden-Klasse in einer StringCollection vorgehalten. In der Klasse SiteSearch, welche die Logik der Suche enthält, wird lediglich ein Verweis auf diese Aufzählung in einer statischen Instanz gespeichert.

    /// <summary>
    /// Hält eine Auflistung der Seiten, die nicht verarbeitet werden sollen.
    /// </summary>
    /// <remarks>n/a</remarks>
    private static StringCollection excludedSites = SiteSettings.Instance.ExcludedSites;

    Jetzt muss lediglich geprüft werden, ob die jeweilige Seite in der Aufzählung enthalten ist. Wenn ja, wird diese nicht im Index erfasst. Der Index ist nicht anderes als eine List<T> vom Typ string in welcher der vollständige Pfad der jeweiligen aspx-Datei gespeichert wird.

    /// <summary>
    /// Erzeugt die Liste der Seiten zur Verarbeitung.
    /// </summary>
    /// <param name="directory">
    /// Eine Instanz der DirectoryInfo-Klasse, ab der die
    /// Indexerstellung begonnen werden soll.
    /// </param>
    /// <remarks>
    /// Verarbeitet rekursiv die volle Verzeichnistiefe.
    /// </remarks>
    private static void CreateSiteList(DirectoryInfo directory)
    {
        foreach (FileInfo file in directory.GetFiles("*.aspx"))
        {
            if (!SiteSearch.excludedSites.Contains(file.Name))
            {
                SiteSearch.siteList.Add(file.FullName);
            }
        }
    
        foreach (DirectoryInfo dir in directory.GetDirectories())
        {
            SiteSearch.CreateSiteList(dir);
        }
    }

    Gestartet wird die Indexerstellung ab dem Wurzelverzeichnis der Website.

    // prüfen ob die Liste Daten enthält
    if (SiteSearch.siteList == null)
    {
        // Liste neu erzeugen
        SiteSearch.siteList = new List<string>();
        SiteSearch.CreateSiteList(new DirectoryInfo(SiteSearch.webRoot));
    }

    Das Feld webRoot enthält dabei den Pfad zum Wurzelverzeichnis der Anwendung.

    /// <summary>
    /// Hält den absoluten Pfad zum Web.
    /// </summary>
    /// <remarks>n/a</remarks>
    private static readonly string webRoot = HttpContext.Current.Server.MapPath("~/");

    Da jetzt nur relevante Seiten erfasst wurden, muss ich später in der Analyse der Seiten keinen Gedanken mehr daran verschwenden, ob sicherheitsrelevante Seiten über die interne Suche gefunden werden oder nicht. Es empfiehlt sich auch administrative Seiten, sofern vorhanden, von der Indizierung auszuschließen.

    Natürlich könnte die Konfiguration der auszuschließenden Seite über eine eigene ConfigurationSection in der web.config erfolgen. Auch die Erweiterung um den Ausschluss ganzer Verzeichnisse könnte eingebaut werden. Doch wie schon am Anfang gesagt; ich will die Beispiele einfach halten und keine fertige Lösung liefern. Wo bleibt denn da der Spaß, wenn schon alles fertig vorliegt.

    Technorati-Tags: | | |

    Eine eigene Suche für kleine Webs – Teil 1

    18.07.2009 18:04:34 | Klaus Bock

    search engine indexingViele Betreiber privater oder auch kleiner Webseiten verzichten, oft gezwungener Masen, auf eine eigene Suche in ihrer Seite. Der Hauptgrund dafür dürfte die vermeintliche Komplexität einer Suche in der eigenen Seite sein.

    search enginesZwar bietet heute schon einige Suchmaschinenbetreiber die Möglichkeit, eine Suche in die eigene Seite zu implementieren, doch ist das nichts anderes als eine Suche im Index des anbietenden Betreibers. Dabei ist nicht sichergestellt, dass sich auch wirklich alle Seiten der eigenen Website im Index der jeweiligen Suchmaschine befinden. Vor allem statische Seiten, deren Inhalt sich so gut wie nie ändert, fallen leicht aus dem Index. Auch Seiten die weniger frequentiert sind als andere, oder Seiten mit geringem Besucheraufkommen dürften sich nur schwer über längere Zeit im Index der großen Suchmaschinen halten. Um dem Besucher dennoch den Komfort einer Suche zu bieten, muss man wohl oder übel selbst Hand anlegen.

    sql fulltext catalogeDie meisten Konzepte setzen wahrscheinlich in der direkten Suche im jeweiligen Datenspeicher an. Gerade der SQL-Server bietet hier schon einiges. Seine Volltextsuche ist wahrscheinlich eine seiner größten Stärken. Auch andere Datenbank-Systeme bieten ähnliches. Doch wo ist der Ansatz wenn keine DBMS genutzt wird? Wenn die Daten in XML-Dateien oder eine andere Dateisystembasierende Lösung verwendet wird? Oder wenn ich mich noch nicht festlegen will, welches System ich zur Persistierung meiner Daten verwende? Es kann auch der Fall auftreten, dass nur statische Seiten verwendet werden. Wo also hier ansetzen?

    search engine robotIch würde sagen: Genau da, wo auch die Großen wie Bing, Google, Yahoo und wie sie nicht alle heißen, ansetzen; Im fertig gerenderten HTML. Das hat den entscheidenden Vorteil, dass mich der Backend-Bereich nicht zu interessieren hat. Selbst wenn ich auf einmal von XML-Dateien auf SQL-Server umstelle, betrifft das die Suche an sich eigentlich kaum. Die enthaltenen Daten in der gerenderten Seiten sollten nach wie vor die selben sein.

    Wie muss so eine eigene kleine “Suchmaschine” nun aussehen?
    In etwa genau so wie eine Große mit dem Unterschied, dass in der eigenen Website kein Spider, oder auch Crawler genannt, verwendet werden muss da die Struktur sowie die zu indizierenden Seiten ja bekannt sind. Lediglich der Inhalt der Seiten muss erfasst, analysiert, katalogisiert und zur Abfrage vorgehalten werden.
    In der Zusammenfassung ergeben sich daraus folgende benötigten Komponenten:

    • Einen Index samt Mechanismus, der alle Seiten erfasst und zur Analyse vorhält.
    • Ein Mechanismus zur Analyse der einzelnen Seiten, sowie deren Aufbereitung zur Speicherung in einem Katalog.
    • Einen Katalog, der die analysierten Seiten zur Verwendung durch einen Abfragemechanismus vorhält.
    • Einen Mechanismus zur Abfrage des Katalogs sowie die Bewertung der erzielten Ergebnisse nach Relevanz.
    • Einen Mechanismus zur Ausgabe der bewerteten Ergebnisse in einer darstellbaren Form.

    So auf den Punkt gebracht, sieht die Implementierung einer Suche schon nicht mehr so kompliziert aus. Für den Moment ist das Konzept zwar noch sehr abstrakt gehalten, doch im im Verlauf der Artikelserie wird jeder Punkt auf der Liste konkretisiert werden.

    In den Folgeartikeln werde ich nach und nach auf die einzelnen Komponenten eingehen. Im Großen und Ganzen steht das Konzept und ist zu großen Teilen bereits lauffähig umgesetzt. Doch wie so oft bei Projekten die in der Hand einer einzelnen Person liegen, kann eine neue Erkenntnis tiefgreifende Änderungen der Details nach sich ziehen.
    Dies ist auch einer der Gründe, warum ich dieses Thema als Artikelserie angelegt habe. Zum einem erhoffe ich mir verschiedenen Meinungen zum grundlegendem Konzept und zum anderen unterschiedliche Blickwinkel auf die jeweiligen Lösungsansätze.

    Technorati-Tags: | | |

    Microsoft@Basta09

    17.07.2009 16:51:13 | Christian Binder

    Die Basta steht vor der Tür und auch wir werden wieder am Start sein :-) Hier schon mal die vorläufige Agenda unsere Talks.
    Schon mal Vorweg, die Keynote sollte sich keiner entgehen lassen:-)

     

    Mittwoch, 23. September

    8.30 - 9.00

    Keynote: Microsoft Quo Vadis?

    Alle

    9.00 - 9.45

    Visual Studio 2010 und das .NET Framework 4.0 (Teil 1)

    Dariusz Parys, Tom Wendel

    10.15 - 11.30

    Visual Studio 2010 und das .NET Framework 4.0 (Teil 2)

    Dariusz Parys, Tom Wendel

    14.00 - 15.15

    Testing und Development mit VSTS 2010

    Christian Binder

    15.45 - 17.00

    Silverlight 3 Enterprise Development

    Oliver Scheer

    15.45 - 17.00

    Requirements und System Modeling mit VSTS 2010

    Christian Binder

    17.15 - 18.30

    Live Framework, Mesh und Windows Azure

    Jan Schenk

    Donnerstag, 24 September

    08.30 - 09.45

    Software für Windows Phones:  Neues in Windows Mobile 6.5

    Frank Prengel

    08.30 - 09.45

    Design the next RIA Generation

    Oliver Scheer

     

    Also bis dann

    Chris

    Microsoft auf der BASTA! 2009 in Mainz

    17.07.2009 16:16:04 | Jan Schenk

    Dieses Jahr sind wir (Oliver Scheer, Frank Prengel, Tom Wendel, Jan Schenk, Christian Binder und Dariusz Parys) wieder auf der Basta 2009. Wir bringen eine Menge an technologischen Neuerungen und Informationen mit zur Basta 2009 und haben fast alle Sessions in einen Tag packen können.

    Beginnen werden wir den Tag mit einer “Keynote”. Es ist keine offizielle Keynote im eigentlichen Sinne, es ist vielmehr die Einleitung für den Microsoft Tag auf der Basta 2009. Die momentane Zeitplanung sieht folgendermaßen aus:

    Mittwoch, 23. September
    08.30 – 09.00 Keynote: Microsoft Quo Vadis? Alle
    09.00 – 09.45 Visual Studio 2010 und das .NET Framework 4.0 (Teil 1) Dariusz Parys, Tom Wendel
    10.15 – 11.30 Visual Studio 2010 und das .NET Framework 4.0 (Teil 2) Dariusz Parys, Tom Wendel
    14.00 – 15.15 Testing und Development mit VSTS 2010 Christian Binder
    15.45 – 17.00 Silverlight 3 Enterprise Development Oliver Scheer
    15.45 – 17.00 Requirements und System Modeling mit VSTS 2010 Christian Binder
    17.15 – 18.30 Live Framework, Mesh und Windows Azure und vieles mehr… Jan Schenk
     
    Donnerstag, 24. September
    08.30 – 09.45 Design the next RIA Generation Oliver Scheer
    08.30 – 09.45 Software for Windows Phones: Neues in Windows Mobile 6.5 Frank Prengel

     

    Ich ärgere mich immer noch über den “verhunackelten” Sessiontitel meines Vortrags, aber darauf kommts ja letztendlich nicht an. Hauptsache die BASTA! wird gut, und davon bin ich überzeugt!

    Wir sehen uns auf der BASTA!,
    jan

    Ansicht für Elemente des aktuellen Nutzer programmatisch erstellen

    17.07.2009 07:59:00 | Martin Hey

    Wie der erfahrene SharePoint-Anwender weiß, kann man mittels Platzhalter [Ich] in deutschen Systemen bzw. [Me] in allen Systemen auf den aktuellen Nutzer zugreifen, um so in Ansichten Filter für die eigenen Elemente zu erstellen.


    Möchte man als Entwickler den gleichen Ansatz auch für die programmatische Erzeugung von Views verwenden wird man mit dem Ansatz
    <Where><Eq><FieldRef Name='Author' /><Value Type='User'>[Me]</Value></Eq></Where>
    zunächst scheitern, denn auf der Ebene von SPQuery-Objekten stehen diese Platzhalter in der von der Oberfläche bekannten Form nicht zur Verfügung.

    Von Dave Hunter findet sich im MSDN-Forum ein guter Tipp, wie man die Entsprechungen in CAML ermitteln kann: Man erstellt eine neue Ansicht für eine Liste in der Benutzeroberfläche, in der man die gewünschten Filter definiert. Im Anschluss daran speichert man die Liste als Template und lädt sich die stp-Datei herunter. Nachdem man diese in eine cab-Datei umbenannt hat, findet man darin eine manifest-Datei, die die Liste und damit auch die Ansichten beschreibt. Mit einer Suche nach dem XML-Tag "Query" findet man das CAML für die Ansicht.


    Und hier sieht man sehr schön die programmatische Entsprechung des definierten Filters. Um nach dem aktuellen Nutzer als Autor zu filtern, muss diese CAML-Query verwendet werden:
    <Where><Eq><FieldRef Name='Author' /><Value Type="Integer"><UserID Type="Integer"/></Value></Eq></Where>

    Mit diesem Wissen kann man nun ganz einfach selbst programmatisch SPView-Objekte erstellen, die auf den aktuellen Nutzer filtern können.

    Ähnliche Beiträge:

    Funktionieren WebBrowser-Anwendungen im Windows 7 für Europa?

    17.07.2009 07:02:00 | Oliver Scheer

    Es ist ausgemachte Sache: Ein „E“ wie „Europa“ werden alle Versionen von Windows 7 tragen, die aufgrund von Vorbehalten der Europäischen Kommission in Europa für Endkunden ohne Internet Explorer angeboten werden. Für Entwickler stellt sich die Frage: Was passiert demnächst mit meiner IE-Technologie nutzenden Anwendung oder Lösung auf einem Windows 7 für den europäischen Markt? In diesem umfassenden Blog-Beitrag beantwortet Yochay Kiriaty die häufigsten Fragen und bietet den Feedback-Bereich für die Beantwortung individueller Fragen direkt von der Quelle aus an.

    Link hier

    MSDN TV – Ausgabe 13.07.09

    17.07.2009 06:52:04 | Oliver Scheer

    Vor einigen Tagen hat mich meine Kollegen Lori Grosland und Oliver Scheffert vor die MSDN TV Kamera geholt und zu Silverlight 3 befragt.

    Die Detailinfo zu MSDN TV und die Links:
    “Pünktlich zum Start von Silverlight 3 informiert MSDN-Experte Oliver Scheer in der aktuellen Ausgabe von msdn tv über Neuerungen und Highlights des RichMedia-Plugins. Davor in den Kurznachrichten Neues über ein Jubiläum der SQL-Anwendervereinigung PASS Deutschland, über den Oktober-TechTalk zum Thema „Windows 7“, zwei sehenswerte Webcasts von Klaus Löffelmann zu Visual Studio 2010, über das Codeanalyse-Tool CAT.NET und das Finale des diesjährigen „Imagine Cup 2009“-Wettbewerbs [7:21] “

    TechTalk im Oktober: Windows 7 - ein Überblick für Entwickler

    16.07.2009 21:57:12 | Oliver Scheer

    Peter Kirchner und ich werden im Oktober Windows 7 herzlich Willkommen heißen mit einem TechTalk im Doppelpack.

    Der Hauptfokus bei Windows 7 wurde auf die weitere Verbesserung der Sicherheit, Zuverlässigkeit und Performance des Betriebssystems gelegt - und auf die größtmögliche Kompatibilität zu Windows Vista , damit bereits bestehende Anwendungen auch in Zukunft laufen. Für Entwickler bietet Windows 7 viele neue Schnittstellen, um Anwendungen mit umfassenderen Funktionen zu versehen, die dem Endbenutzer eine neue Erfahrung im Umgang mit Software ermöglichen.

    In diesem MSDN TechTalk erfahren Sie, wie etwa die neue Taskbar genutzt werden kann, indem die Preview-Ansicht gesteuert, Status-Informationen ausgegeben oder die Sprunglisten nach Ihren Wünschen angepasst werden können. Wir zeigen neue Möglichkeiten für die Anpassung von Windows-Diensten, um die Performance des Betriebssystems optimal zu nutzen und demonstrieren die Verwendung der in Windows 7 eingeführten Bibliotheken, um den Zugriff auf Dokumente Ihrer Anwendung zu vereinfachen.

    Zusätzlich erfahren Sie, welche Punkte zu beachten sind, um die Kompatibilität Ihrer Anwendung mit Windows 7 sicher zu stellen, wenn diese bereits auf Windows XP oder Windows Vista laufen. Abschließend geben wir einen Überblick, welche Änderungen sich im Windows Logo Programm ergeben haben und wie Sie Ihre Anwendung für Windows 7 zertifizieren lassen können.

    Daten/Locations:

    • 12.10. München
    • 14.10. Karlsruhen
    • 19.10. Berlin
    • 20.10. Hamburg
    • 21.10. Köln

    Details und Anmeldung unter: http://www.microsoft.com/germany/msdn/techtalk/aktuell1/default.mspx

    TechTalk im Oktober: Windows 7 - ein Überblick für Entwickler

    16.07.2009 20:10:38 | Peter Kirchner

    Der Hauptfokus bei Windows 7 wurde auf die weitere Verbesserung der Sicherheit, Zuverlässigkeit und Performance des Betriebssystems gelegt - und auf die größtmögliche Kompatibilität zu Windows Vista , damit bereits bestehende Anwendungen auch in Zukunft laufen. Für Entwickler bietet Windows 7 viele neue Schnittstellen, um Anwendungen mit umfassenderen Funktionen zu versehen, die dem Endbenutzer eine neue Erfahrung im Umgang mit Software ermöglichen.

    In diesem MSDN TechTalk erfahren Sie, wie etwa die neue Taskbar genutzt werden kann, indem die Preview-Ansicht gesteuert, Status-Informationen ausgegeben oder die Sprunglisten nach Ihren Wünschen angepasst werden können. Wir zeigen neue Möglichkeiten für die Anpassung von Windows-Diensten, um die Performance des Betriebssystems optimal zu nutzen und demonstrieren die Verwendung der in Windows 7 eingeführten Bibliotheken, um den Zugriff auf Dokumente Ihrer Anwendung zu vereinfachen.

    Zusätzlich erfahren Sie, welche Punkte zu beachten sind, um die Kompatibilität Ihrer Anwendung mit Windows 7 sicher zu stellen, wenn diese bereits auf Windows XP oder Windows Vista laufen. Abschließend geben wir einen Überblick, welche Änderungen sich im Windows Logo Programm ergeben haben und wie Sie Ihre Anwendung für Windows 7 zertifizieren lassen können.

    Daten/Locations:

    · 12.10. München

    · 14.10. Karlsruhen

    · 19.10. Berlin

    · 20.10. Hamburg

    · 21.10. Köln

    Details und Anmeldung unter: http://www.microsoft.com/germany/msdn/techtalk/aktuell1/default.mspx

    Prüfen ob alle Post-Controller-Actions dass ValidateAntiForgeryTokenAttribute haben

    16.07.2009 15:31:26 | Albert Weinert

    Ein möglicher Angriff auf Web-Anwendungen ist Cross-Site Request Forgery (CSRF). Mit dem ASP.NET MVC Framework gibt es eine Möglichkeit solche Angriffe zu verhindern.

    Siehe dazu auch diesen Blog-Eintrag: Prevent Cross-Site Request Forgery (CSRF) using ASP.NET MVC’s AntiForgeryToken() helper.

    Jedoch passiert es mir des Öfteren dass ich vergesse daran zu denken die Actions entsprechend zu attributieren.

    Deshalb habe ich mir einen Unit-Test geschrieben der alle Controller-Action die auf POST reagieren überprüft ob sie dass ValidateAntiForgeryTokenAttribute haben.

    Damit er nicht bei mir versauert, hier der Test zur allgemeinen Verwendung.

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Reflection;
    using System.Web.Mvc;
    
    using DerAlbert.Community.Web.Controllers;
    
    using MbUnit.Framework;
    
    namespace DerAlbert.Community.Web.Tests.Controllers
    {
        [TestFixture]
        public class ControllerTests
        {
            [Test]
            public void Controller_AllePostActions_NutzenValidateAntiForgeryTokenAttribute()
            {
                foreach (var controllerType in AllControllerTypes())
                {
                    foreach (var methodInfo in GetActionMethods(controllerType))
                    {
                        if (MethodAcceptsPost(methodInfo))
                        {
                            Assert.IsTrue(HasValidateAntiForgeryTokenAttribute(methodInfo),
                                          string.Format("{0}.{1} nutzt nicht das ValidateAntiForgeryTokenAttribute",
                                                        controllerType.FullName, methodInfo.Name));
                        }
                    }
                }
            }
    
            private bool HasValidateAntiForgeryTokenAttribute(MethodInfo methodInfo)
            {
                return null != (from a in methodInfo.GetCustomAttributes(false)
                                where a is ValidateAntiForgeryTokenAttribute
                                select a).SingleOrDefault();
            }
    
            private bool MethodAcceptsPost(MethodInfo methodInfo)
            {
                var attribute = (AcceptVerbsAttribute) (from a in methodInfo.GetCustomAttributes(false)
                                                        where a is AcceptVerbsAttribute
                                                        select a).SingleOrDefault();
    
                return attribute != null && attribute.Verbs.Contains("POST");
            }
    
            private IEnumerable<Type> AllControllerTypes()
            {
                return from t in typeof (HomeController).Assembly.GetExportedTypes()
                       where typeof (Controller).IsAssignableFrom(t)
                       select t;
            }
    
            private IEnumerable<MethodInfo> GetActionMethods(Type controllerType)
            {
                return from mi in controllerType.GetMethods()
                       where typeof (ActionResult).IsAssignableFrom(mi.ReturnType)
                       select mi;
            }
        }
    }
    Technorati-Tags: ,,,

    Die Clean Code Developer Initiative

    16.07.2009 02:09:00 | Jürgen Gutsch

    Stefan Lieser und Ralf Westphal haben vor einiger Zeit die Clean Code Developer Initiative gestartet, die “Prinzipien, Regeln und Praktiken für bessere Software” aufstellt und vermittelt. Das ziel der Beiden ist es die Softwarequalität zu steigern und die Professionalität von Softwareentwicklern zu fördern. Die Regeln und Praktiken basieren auf dem Buch Clean Code von Robert C. Martin.

    Clean Code nach Robert C. Martin kann jeder machen. Es erfordert allerdings ein radikales Umdenken, was aber aufgrund der provokanten Art von “Uncle Bob” relativ einfach fällt. Uncle Bob stößt einen praktisch mit der Nase in den eigenen Mist. Beim Lesen des Buches (liest sich übrigens fast wie ein Roman und sorgt - auf englisch gelesen – für einige Lacher) gibt es einen Aha-Effekt nach dem anderen.

    Mir ist allerdings erst beim .NET Open Space Süd klar geworden, dass das Buch alleine nur dann was bringt, wenn man ganz alleine im stillen Kämmerlein vor sich hin entwickelt. Es ist unwahrscheinlich das es in einem größeren Team von jedem gelesen wird. Es ist genauso unwahrscheinlich, dass es von jedem im Team gleichermaßen interpretiert und eingehalten wird.

    Um Clean Code nun einem größeren Team zu vermitteln, muss zuerst Interesse dafür geweckt werden. Es muss darüber geredet werden, es muss diskutiert werden. Clean Code im Team durchzusetzen ist ein längerer Prozess. Nicht jeder ist auf Anhieb bereit so stark umzudenken und so anders zu arbeiten. Wenn man Jahre lang schlechten Code entwickelt hat ist es schwierig die Regeln und Praktiken sofort anzuwenden oder sich überhaupt mit den Regeln und Praktiken anzufreunden.

    Dabei hilft nun die Clean Code Developer Initiative. Mit Hilfe der Armbänder wird auch der das Interesse und somit ein Dialog angeregt. Entwickler kommen so mit der Initiative in Berührung, lesen die Prinzipien, Regeln und Praktiken, freunden sich damit an und fangen ans selber die Regeln zu berücksichtigen.

    Was einen Clean Code Developer ausmacht kann hier nachgelesen werden: Wer ist ein Clean Code Developer (CCD)?

    Das Wiki der Clean Code Developer Initiative: http://clean-code-developer.de/

    Und hier nochmal das Buch Clean Code von Robert C. Martin

    DotNetKicks-DE Image

    Internet Explorer 8 für Windows 7 E ohne Web Browser installieren

    15.07.2009 12:49:00 | Michael Schwarz

    Windows 7 RTM steht kurz vor der Tür und noch ist nicht sicher, ob der Internet Explorer 8 wirklich über die Windows Funktionen in der Systemsteuerung nachträglich installiert werden kann. Auch habe ich noch keine Aussage bekommen, ob sich die Setupdateien auf der DVD befinden.

    Deswegen habe ich mir mal ein kleines Skript geschrieben, mit dem ich den IE8 unter Windows 7 installieren kann:

    @echo off

    if exist download-IE8.cs del download-IE8.cs

    echo using System; > download-IE8.cs
    echo using System.Net; >> download-IE8.cs
    echo using System.IO; >> download-IE8.cs
    echo. >> download-IE8.cs
    echo namespace Download_IE8 >> download-IE8.cs
    echo { >> download-IE8.cs
    echo     class Program >> download-IE8.cs
    echo     { >> download-IE8.cs
    echo         static void Main(string[] args) >> download-IE8.cs
    echo         { >> download-IE8.cs
    echo             if (File.Exists("IE8-WindowsVista-x86-DEU.exe")) >> download-IE8.cs
    echo                 File.Delete("IE8-WindowsVista-x86-DEU.exe"); >> download-IE8.cs
    echo. >> download-IE8.cs
    echo             try >> download-IE8.cs
    echo             { >> download-IE8.cs
    echo                 HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://download.microsoft.com/download/3/D/C/3DC5DC1B-2B60-487A-BAE2-732662BC0886/IE8-WindowsVista-x86-DEU.exe"); >> download-IE8.cs
    echo                 request.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1;)"; >> download-IE8.cs
    echo                 request.AllowWriteStreamBuffering = false; >> download-IE8.cs
    echo                 request.Timeout = 10000; >> download-IE8.cs
    echo. >> download-IE8.cs
    echo                 using (Stream s = request.GetResponse().GetResponseStream()) >> download-IE8.cs
    echo                 { >> download-IE8.cs
    echo                     FileStream fs = new FileStream("IE8-WindowsVista-x86-DEU.exe", FileMode.Create); >> download-IE8.cs
    echo. >> download-IE8.cs
    echo                     byte[] read = new byte[1024]; >> download-IE8.cs
    echo                     int count = s.Read(read, 0, read.Length); >> download-IE8.cs
    echo. >> download-IE8.cs
    echo                     while (count != 0) >> download-IE8.cs
    echo                     { >> download-IE8.cs
    echo                         fs.Write(read, 0, count); >> download-IE8.cs
    echo                         count = s.Read(read, 0, read.Length); >> download-IE8.cs
    echo. >> download-IE8.cs
    echo                         Console.Write("."); >> download-IE8.cs
    echo                     } >> download-IE8.cs
    echo                 } >> download-IE8.cs
    echo. >> download-IE8.cs
    echo                 Console.WriteLine(); >> download-IE8.cs
    echo                 Console.WriteLine("Done."); >> download-IE8.cs
    echo. >> download-IE8.cs
    echo                 System.Threading.Thread.Sleep(5000); >> download-IE8.cs
    echo                 System.Diagnostics.Process.Start("IE8-WindowsVista-x86-DEU.exe"); >> download-IE8.cs
    echo             } >> download-IE8.cs
    echo             catch (Exception ex) >> download-IE8.cs
    echo             { >> download-IE8.cs
    echo                 Console.WriteLine("Error: " + ex.Message); >> download-IE8.cs
    echo             } >> download-IE8.cs
    echo         } >> download-IE8.cs
    echo     } >> download-IE8.cs
    echo } >> download-IE8.cs
    echo. >> download-IE8.cs

    if not exist download-IE8.cs goto ERROR1

    "%WINDIR%\Microsoft.NET\Framework\v3.5\csc.exe" download-IE8.cs

    download-IE8.exe

    if not exists download-IE8.exe goto ERROR2

    :ERROR1

    echo Could not create C# source file.

    goto END

    :ERROR2

    echo Could not create executable to download IE8.

    goto END

    :END

    Ok, der Pfad ist noch fest verdrahtet, auch ist der Download-Link noch der IE8 für Windows Vista. Vom Prinzip aber funktioniert es, das ist die Hauptsache.

    Sorry übrigens für die komische Formatierung, aber das geht hier jetzt nicht wirklich besser. Ihr müsst nur den ganzen Inhalt in eine download-IE8.cmd Datei kopieren, und diese dann per Doppelklick ausführen. Im Hintergrund wird dann eine C# Datei erstellt, diese wird mit dem .NET Framework 3.5 kompiliert. Die erzeugte Anwendung lädt dann die Setup-Datei herunter und führt sie aus, fertig.


    TU Dortmund Web Development - Meine erste Uni-Vorlesung

    15.07.2009 11:07:00 | Jan Schenk

    Tom Wendel und ich waren gestern eingeladen, einen Gastvortrag an der Technischen Universität Dortmund zu halten. Wow, ich habe mich geehrt gefühlt, weil das Ganze auch noch auf Initiative des Professors selbst geschehen ist. Meine Erfahrungen im akademischen Umfeld halten sich in Grenzen, ich habe mich beim Studieren ja auf drei Semester Biologie beschränkt, um im Anschluss den Quereinstieg in mein jetziges Fachgebiet zu suchen.

    An dieser Stelle darf ich auch gleich noch Dennis Zielke, Microsoft Senior Student Partner, dankend erwähnen, der sich um die Koordination mit uns Evangelisten gekümmert hat.

    TUDortmund_Hoersaal 

    Zum Vortrag an sich:
    Der Hörsaal war schon mal groß, sehr groß, größer als je ein Saal, in dem ich vorgetragen habe. Zum Glück war Tom dabei.

    Der Vortrag an sich war gut, der Entertainmentwert hat uns über die ein oder andere Panne bei den Demos hinweggerettet, dafür war alles live. Im Großen und Ganzen waren Tom und ich zufrieden, und die Show ist auf alle Fälle eine Wiederholung wert.

    Die Studenten, großteils Java-Vorlesungen gewohnte Informatiker, waren offen und sehr sympathisch, und der Überblick, den sie sich aus unserem Web-Development Vortrag machen konnten, kam dem Feedback nach zu urteilen, auch gut an.

    Vielen Dank auch noch an alle für ihre Teilnahme! Ich freue mich jedes Mal, wenn ich die Möglichkeit bekomme, vor einem unvoreingenommenen Publikum über Technologien und Interoperabilität zu sprechen.

    Die paar Slides, die wir vorbereitet haben, gibt es hier zum Herunterladen:
    http://cid-6d192a3f356c76dd.skydrive.live.com/self.aspx/Talks/Gastvortrag%20TU%20Dortmund/Windows%20Web%20@%20Uni%20Dortmund.pptx

    TU Dortmund, bis zum nächsten Mal!
    jan



    tweetmeme_url = 'http://blogs.msdn.com/jansche/archive/2009/07/15/tu-dortmund-web-development-meine-erste-uni-vorlesung.aspx';

    Microsoft Sicherheitsupdates Juli 2009

    14.07.2009 20:50:03 | Kay Giza

    Zu Ihrer Sicherheit bitte umgehend installieren!
    Microsoft hat am 14. Juli 2009 sechs (6) Sicherheitsupdates veröffentlicht, die Sie möglichst umgehend installieren sollten:

    Im Einzelnen sind dies:
    Informieren Sie sich über die verfügbaren Updates. Laden Sie jetzt die Updates für Ihren Computer oder Laptop von der Microsoft Update-Website herunter.
    Wir möchten an dieser Stelle noch einmal ausdrücklich darauf hinweisen, dass Microsoft niemals Softwareupdates als Anhang von Sicherheitsbenachrichtigungen verschickt, sondern Sie auf diesem Weg lediglich auf ihre Verfügbarkeit hinweist. Sollten Sie also E-Mails erhalten, die vermeintlich von Microsoft stammen und als Anhang angebliche Sicherheitsupdates beinhalten, löschen Sie diese bitte ungelesen!

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

    Microsoft hat das Geschaefts- und Partnermodell fuer Windows Azure vorgestellt

    14.07.2009 19:17:12 | Kay Giza

    Auf unserer weltweiten Partnerkonferenz in New Orleans hat Microsoft das Geschäfts- und Partnermodell für die Windows Azure-Plattform vorgestellt. Durch ein Preismodell auf Basis der tatsächlichen Nutzung zahlen Partner und Kunden nur für die Services, die sie wirklich nutzen. Microsoft-Partner profitieren auch von speziellen Vertriebsangeboten und Discounts, wodurch sie Lösungen schneller auf den Markt bringen, die IT-Komplexität reduzieren und ihre Umsatzmöglichkeiten erhöhen können. Die Windows Azure-Plattform bietet damit umfassende Entwicklungsmöglichkeiten und automatisiertes Service-Management zu einfachen, nachvollziehbaren Preisen. Weiterführende Informationen, Links und Videos in diesem Blogposting auf Giza-Blog.de ...[mehr]

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

    TechTalk im Oktober 2009: Windows 7 - ein Ueberblick fuer Entwickler

    14.07.2009 19:02:44 | Kay Giza

    Der Hauptfokus bei Windows 7 wurde auf die weitere Verbesserung der Sicherheit, Zuverlässigkeit und Performance des Betriebssystems gelegt - und auf die größtmögliche Kompatibilität zu Windows Vista , damit bereits bestehende Anwendungen auch in Zukunft laufen. Für Entwickler bietet Windows 7 viele neue Schnittstellen, um Anwendungen mit umfassenderen Funktionen zu versehen, die dem Endbenutzer eine neue Erfahrung im Umgang mit Software ermöglichen. In diesem MSDN TechTalk erfahren Sie, wie etwa die neue Taskbar genutzt werden kann, indem die Preview-Ansicht gesteuert, Status-Informationen ausgegeben oder die Sprunglisten nach Ihren Wünschen angepasst werden können. Wir zeigen neue Möglichkeiten für die Anpassung von Windows-Diensten, um die Performance des Betriebssystems optimal zu nutzen und demonstrieren die Verwendung der in Windows 7 eingeführten Bibliotheken, um den Zugriff auf Dokumente Ihrer Anwendung zu vereinfachen. Zusätzlich erfahren Sie, welche Punkte zu beachten sind, um die Kompatibilität Ihrer Anwendung mit Windows 7 sicher zu stellen, wenn diese bereits auf Windows XP oder Windows Vista laufen. Abschließend geben wir einen Überblick, welche Änderungen sich im Windows Logo Programm ergeben haben und wie Sie Ihre Anwendung für Windows 7 zertifizieren lassen können. Referenten der kostenfreien... [... mehr in diesem Blogeintrag auf Giza-Blog.de]

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

    Neue MSDN Foren und neue Kategorisierung

    14.07.2009 18:24:01 | Kay Giza

    Wie schon ein paar Mal beispielsweise hier im Weblog angekündigt oder an diversen Stellen im Netz erwähnt, optimieren und erweitern wir stetig unsere MSDN Foren und führen die Integration auf Microsoft- und MSDN-Online stetig fort. U.a. haben wir beispielsweise eine neue Kategorisierung und vier neue Foren (Off-Topic, SQL Server Express, Training und Zertifizierung oder Kompatibilität von Anwendungen) in der letzten Zeit online gestellt. Ich persönlich empfinde die neue Kategorisierung als übersichtlicher und so hoffe ich, dass Sie über die neue aufgeräumte Startseite entsprechend noch schneller zu Ihren Foren / Themen finden werden.

    Die MSDN Foren sind entweder über MSDN Online erreichbar oder direkt hier per http://www.msdn-foren.de/

    Es ist wirklich einiges los in den Foren, ein schöner Beweis für einen tollen Dialog wie ich finde.

    Hier die neue Übersicht mit Links:

     



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

    TechTalk im Oktober: Windows 7

    14.07.2009 09:23:00 | Lori Grosland

    Der Hauptfokus bei Windows 7 wurde auf die weitere Verbesserung der Sicherheit, Zuverlässigkeit und Performance des Betriebssystems gelegt - und auf die größtmögliche Kompatibilität zu Windows Vista , damit bereits bestehende Anwendungen auch in Zukunft laufen. Für Entwickler bietet Windows 7 viele neue Schnittstellen, um Anwendungen mit umfassenderen Funktionen zu versehen, die dem Endbenutzer eine neue Erfahrung im Umgang mit Software ermöglichen.

    In diesem MSDN TechTalk erfahren Sie, wie etwa die neue Taskbar genutzt werden kann, indem die Preview-Ansicht gesteuert, Status-Informationen ausgegeben oder die Sprunglisten nach Ihren Wünschen angepasst werden können. Wir zeigen neue Möglichkeiten für die Anpassung von Windows-Diensten, um die Performance des Betriebssystems optimal zu nutzen und demonstrieren die Verwendung der in Windows 7 eingeführten Bibliotheken, um den Zugriff auf Dokumente Ihrer Anwendung zu vereinfachen.

    Zusätzlich erfahren Sie, welche Punkte zu beachten sind, um die Kompatibilität Ihrer Anwendung mit Windows 7 sicher zu stellen, wenn diese bereits auf Windows XP oder Windows Vista laufen. Abschließend geben wir einen Überblick, welche Änderungen sich im Windows Logo Programm ergeben haben und wie Sie Ihre Anwendung für Windows 7 zertifizieren lassen können.

    Daten/Locations:

    ·         12.10. München

    ·         14.10. Karlsruhen

    ·         19.10. Berlin

    ·         20.10. Hamburg

    ·         21.10. Köln

    Details und Anmeldung unter: http://www.microsoft.com/germany/msdn/techtalk/aktuell1/default.mspx

    TechTalk im Oktober: Windows 7

    14.07.2009 09:23:00 | Lori Grosland

    Der Hauptfokus bei Windows 7 wurde auf die weitere Verbesserung der Sicherheit, Zuverlässigkeit und Performance des Betriebssystems gelegt - und auf die größtmögliche Kompatibilität zu Windows Vista , damit bereits bestehende Anwendungen auch in Zukunft laufen. Für Entwickler bietet Windows 7 viele neue Schnittstellen, um Anwendungen mit umfassenderen Funktionen zu versehen, die dem Endbenutzer eine neue Erfahrung im Umgang mit Software ermöglichen.

    In diesem MSDN TechTalk erfahren Sie, wie etwa die neue Taskbar genutzt werden kann, indem die Preview-Ansicht gesteuert, Status-Informationen ausgegeben oder die Sprunglisten nach Ihren Wünschen angepasst werden können. Wir zeigen neue Möglichkeiten für die Anpassung von Windows-Diensten, um die Performance des Betriebssystems optimal zu nutzen und demonstrieren die Verwendung der in Windows 7 eingeführten Bibliotheken, um den Zugriff auf Dokumente Ihrer Anwendung zu vereinfachen.

    Zusätzlich erfahren Sie, welche Punkte zu beachten sind, um die Kompatibilität Ihrer Anwendung mit Windows 7 sicher zu stellen, wenn diese bereits auf Windows XP oder Windows Vista laufen. Abschließend geben wir einen Überblick, welche Änderungen sich im Windows Logo Programm ergeben haben und wie Sie Ihre Anwendung für Windows 7 zertifizieren lassen können.

    Daten/Locations:

    ·         12.10. München

    ·         14.10. Karlsruhen

    ·         19.10. Berlin

    ·         20.10. Hamburg

    ·         21.10. Köln

    Details und Anmeldung unter: http://www.microsoft.com/germany/msdn/techtalk/aktuell1/default.mspx

    TechTalk im Oktober: Windows 7

    14.07.2009 09:23:00 | Lori Grosland

    Der Hauptfokus bei Windows 7 wurde auf die weitere Verbesserung der Sicherheit, Zuverlässigkeit und Performance des Betriebssystems gelegt - und auf die größtmögliche Kompatibilität zu Windows Vista , damit bereits bestehende Anwendungen auch in Zukunft laufen. Für Entwickler bietet Windows 7 viele neue Schnittstellen, um Anwendungen mit umfassenderen Funktionen zu versehen, die dem Endbenutzer eine neue Erfahrung im Umgang mit Software ermöglichen.

    In diesem MSDN TechTalk erfahren Sie, wie etwa die neue Taskbar genutzt werden kann, indem die Preview-Ansicht gesteuert, Status-Informationen ausgegeben oder die Sprunglisten nach Ihren Wünschen angepasst werden können. Wir zeigen neue Möglichkeiten für die Anpassung von Windows-Diensten, um die Performance des Betriebssystems optimal zu nutzen und demonstrieren die Verwendung der in Windows 7 eingeführten Bibliotheken, um den Zugriff auf Dokumente Ihrer Anwendung zu vereinfachen.

    Zusätzlich erfahren Sie, welche Punkte zu beachten sind, um die Kompatibilität Ihrer Anwendung mit Windows 7 sicher zu stellen, wenn diese bereits auf Windows XP oder Windows Vista laufen. Abschließend geben wir einen Überblick, welche Änderungen sich im Windows Logo Programm ergeben haben und wie Sie Ihre Anwendung für Windows 7 zertifizieren lassen können.

    Daten/Locations:

    ·         12.10. München

    ·         14.10. Karlsruhen

    ·         19.10. Berlin

    ·         20.10. Hamburg

    ·         21.10. Köln

    Details und Anmeldung unter: http://www.microsoft.com/germany/msdn/techtalk/aktuell1/default.mspx

    Das .NET Open Space Süd 2009 ist vorbei :-(

    14.07.2009 03:03:00 | Jürgen Gutsch

    .NET Open Space vom 11.07. bis 12.07.2009 in Ulm

    Am Wochenende (11.07. und 12.07.) fand in der Nähe von Blaustein, bei Ulm, das erste .NET Open Space Süd statt. Die beiden Organisatoren Alexander Zeitler und Thomas Schissler hatten sich mächtig ins Zeug gelegt um uns die perfekte Umgebung für das Open Space zu liefern.

    Ein besonderer Dank geht auch an den SV Arnegg, der für die komplette Bewirtung und die abendliche Unterhaltung bei der Party gesorgt hat und uns das Clubheim für das Mittagessen und die Party zur Verfügung gestellt hat. Es ist einfach auch eine geniale Idee den lokalen Sportverein in so eine Veranstaltung einzubinden.

    Anders als auf herkömmlichen Konferenzen, waren in den zwei Tagen alle Anwesenden selber für das Programm und die Themen verantwortlich. Auf diese Art kann ein .NET Open Space nur ein voller Erfolg sein. Jeder bringt Themen ein, die ihn interessieren oder zu denen er was beitragen kann. So kam ein bunt gemischtes Programm zu fast allen wichtigen .NET-Themen und .NET-Technologien, aber auch zur allgemeinen Architektur zusammen.

    Zusätzlich zu dem Programm war es sehr spannend, die Prominenz der .NET Community mal selber persönlich kennen zu lernen. Aber auch mit allen anderen ergaben sich anregende Diskussionen. Wer da war kann man in der Teilnehmerliste sehen.

    Insgesamt hat es sehr viel Spaß gemacht und sollte 2010 auf jeden Fall wiederholt werden. Ich selber habe viele neue Ideen, Ansichten und Anregungen mit nach Hause genommen und bin sicher, dass es beim nächsten Mal wieder so wird :-)

    Ach so: Die Bilder oben sind übrigens von Peter geklaut der natürlich auch mit von der Partie war. Mehr Bilder gibt es hier:

    View NetOS_Süd

    Auch dabei waren übrigens: Alex, Albert, Jan, Thomas, Bernd und viele mehr

    PS: Habe mich dann doch zu einem “Clean Code Developer (CCD)”, á la Stefan Lieser und Ralf Westphal, “bekehren” lassen ;-) Einfach weil es auf diese Art einfacher ist, “Clean Code” auch an Anderen weiter zu vermitteln. Reden alleine Hilft nicht immer, man muss es auch “vorleben”. Werd mir dann mal so schnell wie möglich die Armbänder und das T-Shirt besorgen müssen :-)

    DotNetKicks-DE Image

    Duplikate in SQL-Server-Tabellen löschen

    13.07.2009 23:59:00 | Martin Hey

    Ich bin grad über einen sehr interessanten Blog-Eintrag gestolpert, der sich mit dem Thema Löschen von Datensatzduplikaten aus SQL-Server-Tabellen beschäftigt.
    Weil ich den Ansatz wirklich cool finde, besonders weil er überraschend einfach ist, möchte ich ihn euch nicht vorenthalten.

    Zunächst wird mal eben schnell eine Demo-Tabelle mit doppelten Datensätzen angelegt.

    Und nun kommt der Trick: Mittels PARTITION und ROW_NUMBER() werden die jeweils identischen Datensätze durchnummeriert.
    SELECT Column1,Column2,
    ROW_NUMBER() OVER(PARTITION BY Column1,Column2 ORDER BY Column1) AS DuplicateCount
    FROM DuplicateRecordTable


    Mit diesem Wissen können nun alle die Datensätze gelöscht werden, deren laufende Nummer größer als 1 ist:
    WITH CTE (Column1,Column2, DuplicateCount)
    AS
    (
    SELECT Column1,Column2,
    ROW_NUMBER() OVER(PARTITION BY Column1,Column2 ORDER BY Column1) AS DuplicateCount
    FROM DuplicateRecordTable
    )
    DELETE
    FROM CTE
    WHERE DuplicateCount > 1

    Empfehlung: FAQ- und Artikelbereich auf myCSharp.de

    13.07.2009 16:04:38 | Peter Bucher

    Bei vielen Fragen verlinkte ich häufig auf den FAQ- und Artikelbereich auf myCSharp.de.
    Ich möchte euch hiermit noch einmal explizit darauf hinweisen, da doch mal reinzuschauen, es lohnt sich auf jeden Fall.

    Kürzlich kam der FAQ-Beitrag Besonderheiten der String-Klasse (immutabler Referenztyp mit Wertesemantik) neu hinzu, den ich sehr empfehlen kann.

    Von mir gibt es hiermit auch ein grosses Dankeschön an alle Autoren der Beiträge, echt Klasse gemacht!

    Xtopia [kompakt] 09: Videos und Vortraege jetzt als Download verfuegbar…

    13.07.2009 06:35:10 | Kay Giza

    Ich wurde per E-Mail gefragt, wo man die letzten Infos zur Xtopia [kompakt] findet, ob es Aufzeichnungen gibt. Ja - gibt es und ich bin die Informationen noch schuldig :-) Die erste Xtopia [kompakt]-Roadshow rund um die Themen Web/UX und Rich Internet Applications war ein voller Erfolg. Von April bis Mai 2009 war Microsoft mit hochkarätigen Partnern auf der Xtopia im Kleinformat unterwegs: In München, Karlsruhe, Hamburg, Köln, Berlin und Frankfurt erlebten jeweils bis zu 100 Teilnehmer Vorträge und Demos zu den Themen Web, User Experience und Silverlight/Rich Internet Applications. Wenn Sie in diesem Jahr keine Zeit hatten, bei Xtopia [kompakt] dabei zu sein, finden Sie nun fast alle Vorträge als PDF, viele Videos und umfangreiche Informationen... [..mehr]

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

    .NET Open Space Süd 2009 in Ulm: Ich war da und es war gut!

    12.07.2009 22:22:00 | Peter Bucher

    Schon vor einiger Zeit habe ich vom Open Space Prinzip erfahren, allerdings konnte ich mir keine richtige Vorstellung machen, wie das in der Praxis wirklich abläuft.

    Jürgen hat mich darauf aufmerksam gemacht, dass in Ulm ein Open Space Treffen stattfindet und die Anreise gar nicht so lange dauern würde. Dank seinem super Einsatz in seiner multi-threaded Rolle als Fahrer und Hotelreservierer war es für mich ein leichtes daran teilzunehmen.

    Ich musste nur um 05:30 aufstehen, das hab ich dann noch hingekriegt ;-). Die Vorfreude war natürlich gross, endlich mal die bekannten Gesichter – der harte Kern der .NET Community – mal in live zu sehen und erleben.

    Dort angekommen gab es zunächst mal einen Koffein um wachzuwerden und anschliessend eine Einleitung von Thomas Schissler und Alexander Zeitler, den Organisatoren der Veranstaltung.
    Anschliessend wurden Themenvorschläge gesammelt und mit Post-it Zetteln an die Wand geklebt.

    Als die Themen zusammen waren wurden die Themen nach dem Prinzip “Wer will was wissen / Wer kann was dazu sagen” genommen oder nicht und anschliessend an Räumen zugeteilt.

    Das sieht dann so aus:

    Ich habe die Themen “IoC / DI” (Inversion of Control / Dependency Injection), “Expression Trieees” und “XNA / Spieleentwicklung” vorgeschlagen.

    Zu meiner Verwunderung war ich der einzige der schon mal mit Expression Trees herumgespielt hat, darum habe ich mal den Einsatz in einer Anwendung gezeigt. Es war kein Vortrag, sondern eine Demonstration. Daraus ergab sich dann eine sehr interessante und interaktive Diskussion.

    Mit XNA genau dasselbe und bei IoC / DI konnte ich viele Bestätigungen einholen, wo ich mir nicht sicher war, bspw. der Unterschied von der Nutzung eines Containers vs. Service Locator und wann man was einsetzt und wieso.

    Es war die ganzen zwei Tage durch für Trinken und Brezel gesorgt und irgendwie schafften es die “unsichtbaren” Heinzelmänner immer wieder die leeren Flaschen wegzuräumen und neue hinzustellen, ohne das man sie je sah :).

    Am Abend war dann grillieren angesagt – achja, Mittagessen gabs auch und war gut – mit Bier und allem was dazugehört.
    Als Überraschung gab es noch eine Aufführung einer Bauchtänzerin die “mit dem Feuer spielte”.
    Ich spielte ein wenig mit langer Belichtungszeit der Kamera rum, was dann ganz interessante Bilder ergab:

    Am nächsten Tag ging es dann ebenso interessant und erfolgreich weiter.

    Ich möchte hier ein sehr grosses Lob am Organisationsteam, sowie auch den Teilnehmern aussprechen.
    Es war wirklich sehr schön und interessant. Mir kam es zwar – wie auch Thomas Bandt erwähnte – vor, als ob diese zwei Tage eine Woche wären und der Input war wirklich gewaltig, aber es hat sich auf jeden Fall gelohnt.

    Sehr wertvoll war auch die Möglichkeit Networking zu betreiben und dadurch neue Kontakte zu knüpfen.
    Diese Art der Veranstaltung ist echt genial und sehr wertvoll, weil es eben sehr interaktiv ist und man auch selber viel zum reden kommt.

    Ich habe einige Fotos geschossen und möchte die euch natürlich nicht vorenthalten:

    Mehr Berichte und Fotos finden sich auf der .NET Open Space Süd Webseite auf dem schwarzen Brett.

    Microsoft veroeffentlicht Silverlight 3

    12.07.2009 20:44:26 | Kay Giza

    Microsoft hat die finale Version von Silverlight 3 veröffentlicht: http://msdn.microsoft.com/de-de/Silverlight 

    Mit der neuesten Generation des Cross-Browser- und Cross-Plattform-Plugins können Rich-Media-Webauftritte mit Full-HD Smooth Video Streaming sowie Businessanwendungen erstellt werden, die sowohl im Browser als auch direkt auf dem Desktop laufen. Zu den Neuerungen gehören unter anderem neue Controls und IIS Smooth Streaming für IIS 7.0. Zudem gibt es neuartige Funktionen für die Suchmaschinenoptimierung sowie Unterstützung von Screen Readern und anderen Geräten zur Förderung der Barrierefreiheit. Silverlight 3 und die dazugehörigen Entwicklungswerkzeuge findet man auf www.microsoft.de/silverlight. Einen Blick sollte man auch auf www.seethelight.com werfen.

    Also los, Silverlight 3 ist für Windows ist nur 4,69 MB groß und ermöglicht auf normalen PCs eine vollständige Installation in weniger als zehn Sekunden. :-)


    Weiterführende Informationen:

    Video:
    Tim Heuer introduces the concepts and tools needed to get started with Silverlight development from a developers perspective:

    Getting Started with Silverlight Development



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

    Silverlight 3 erblickt das Licht der Welt

    10.07.2009 19:30:00 | Oliver Scheer

    Silverlight 3 ist nun hoch offiziell weltweit verfügbar.

    Um dies gebührend zu feiern gibt es unter www.seethelight.com ein entsprechendes Launch-Event mit einer sehr spannenden “Kochsendung”.

    Alle Werkzeuge zum Entwickeln gibt es ab sofort hier: http://silverlight.net/GetStarted/ 

    Die neuen Features von Silverlight:

    • Live- und On-Demand True HD Smooth Streaming (720p+) für stets flüssige Darstellung, die Smooth Streaming-Dienste der IIS Media Services erkennen dynamisch die beste Bandbreite und schalten automatisch und nahtlos zwischen verschiedenen Qualitätsstufen um, um jederzeit die beste Qualität entsprechend der aktuellen Verbindungsqualität und CPU-Leistung zu bieten. Zusätzlich wird das Springen an eine beliebige Stelle im Video ohne Wartezeiten für Prebuffering realisiert.
    • Echte HD-Widergabe – ruckelfrei in Fullscreen Die neue Hardwarebeschleunigung in Silverlight 3 ermöglicht ruckelfreie Widergabe von HD-Videos.
    • Vielfalt und Sicherheit bei der Video- und Audiowidergabe. Mit integrierter Unterstützung für H.264/Advanced Audio Coding (AAC), Live- und OnDemand Smooth Streaming, Full HD-Widergabe (720p, H.264) bzw. (1080p, VC-1) und erweiterbaren Encoderfunktionen bietet Silverlight konkurrenzlose Vielfalt und Qualität bei der ruckelfreien Widergabe von hochauflösenden Videos.
    • Einzigartige Formatvielfalt für größtmögliche Reichweite. Zusätzlich zur bestehende Unterstützung für VC-1/WMA verfügt Silverlight 3 auch über integrierte Unterstützung für MPEG-4-basiertes H.264/AAC-Material.
    • Zukunftssichere Erweiterbarkeit: Offen für zukünftige Codecs! Dank der neuen erweiterbaren RAW AV Pipeline kann Silverlight eine große Vielfalt an zusätzlichen Videocodecs nutzen. Audio und Video können außerhalb der Silverlight-Runtime decodiert und direkt in Silverlight abgespielt werden.

    • Sichere Widergabe dank echtem Digital Rights Management. Silverlight DRM, Powered by PlayReady Content Protection ermöglicht sichere Widergabe direkt im Browser ohne zusätzliche Abspielprogramme mittels AES Verschlüsselung oder Windows Media DRM.

    • Perspektivisches 3-D. In Silverlight 3 können Designer und Entwickler Objekte auf 3-D-Objekte legen. Anwender können diese Live-Inhalte dann in Echtzeit rotieren ohne dass dafür zusätzlicher Code programmiert werden muss. Weitere Effekte wie 3-D-Queues und Transitions sind ebenfalls in Silverlight 3 enthalten.

    Perspektivisches 3D in Silverlight 3

    • Individuelle Pixelshader-Effekte. Bereits integriert sind Softwareeffekte wie beispielsweise Blur (Weichzeichner) oder Schlagschatten; Designer und Entwickler können zusätzlich eigene Effekte schreiben. Effekte können auf beliebige grafische Objekte angewandt werden, beispielsweise um dynamisch verschiedene Zustände von Buttons zu visualisieren. 
    • Hohe Performancegewinne durch Bitmap-Caching. Silverlight 3 ermöglicht deutliche Performancegewinne bei der Grafikdarstellung von Vektorobjekten, Text und Controls.
    • Direkter Zugriff auf einzelne Pixel dank neuer Bitmap API. Mit den neuen Pixel-Funktionen in Silverlight 3 können Entwickler Bitmaps direkt bearbeiten, das ermöglicht beispielsweise Fotobearbeitungsfunktionen wie „Rote Augen entfernen“ und ermöglicht Bildbearbeitung von gescannten Bildern und individuelle Spezialeffekte für Bitmaps.
    • Neue Animationseffekte. Neben neuen integrierten Effekten wie Spring und Bounce, mit deren Hilfe Animationen natürlicher gestaltet werden können, können Entwickler jetzt auch ihre eigenen mathematischen Funktionen zur Beschreibung von Animationen entwerfen.
    • Erweitertes Deep Zoom erlaubt Anwendern eine flüssige Navigation durch große Bildkollektionen mittels Zoom.
    • Verbessertes Textrendering und Schriftintegration. Silverlight 3 ermöglicht deutlich effizienteres Textrendering und flüssige Textanimationen. Silverlightanwendungen können außerdem auf lokale Schriften zugreifen, das beschleunigt u.a. die Ladezeiten.
    • Datenaustausch zwischen zwei Silverlightanwendungen in der selben Webseite : beispielsweise wenn eine Werbeanzeige in einer Website mit einem Skyscraper-Banner kommuniziert.
    • Erweiterte Funktionen im Bereich Barrierefreiheit. Silverlight 3 ist das erste Browser-Plug-In welches Personen mit eingeschränktem Sehvermögen durch vollen Zugriff auf alle Systemfarben erlaubt, besser lesbare Farbpaletten und Kontrasteinstellungen zu verwenden und dadurch die Lesbarkeit zu verbessern.
    • Deep Linking ermöglicht es, Browser-Lesezeichen  (Bookmarks) direkt auf Unterseiten innerhalb von Silverlight-Anwendungen zu setzen.
    • Suchmaschinenoptimierung (SEO). Mit Silverlight 3 sind die typischen SEO-Herausforderungen klassischer Rich Internet Applications gelöst. Durch serverbasierte Business Objects in Kombination mit ASP.NET Controls und Site Maps lassen sich datenbankbasierte Inhalte automatisch in HTML widerspiegeln, welches problemlos von Suchmaschinen indiziert wird.SEO/Deep Linking mit Silverlight 3
    • Multi-Touch Unterstützung - Silverlight Anwendungen können unter Windows 7 nun auch Multi-Touch Eingaben verarbeiten.

    Neue Funktionen für ausgewachsene Rich-Internet Anwendungen auf Basis von .NET

    • Über 60 Controls (inkl. Sourcecode). Silverlight 3 kommt „Out-of-the-Box“ mit über 60 professionellen Controls – alle komplett „Skinning“-fähig und individuell modifizierbar, darunter Charting-Controls, neue Layout-Container (z.B. Dock und Viewbox), Listboxen mit Mehrfachauswahl, Dateisystemdialoge, sowie Datagrid, TreeView, AutoComplete und erweiterte Unterstützung für mehrseitige Anwendungen mit Navigationsfunktionen. Mitgeliefert werden außerdem neun professionelle Themes und der Sourcecode, so dass Entwickler und Designer diese nach Belieben anpassen können.
    • Themes und Skinning. In Silverlight 3 können Entwickler ihre Anwendungen einfach mit Themes versehen indem sie Stile verwenden, die zur Laufzeit ausgetauscht werden können. Themes/Stile können wie CSS voneinander abgeleitet werden.
    • Enhanced Control Skinning. Hinter dem Begriff Enhanced Control Skinning verbirgt sich die Möglichkeit Controls (Steuerelemente) außerhalb von Anwendungen zu halten; dadurch wird es einfacher, individuelle Stile und Controlsets über verschiedene Anwendungen hinweg einzusetzen.

    Erweiterte Funktionen zur Verarbeitung von Daten. Anbindung an komplexe Datenund die Verarbeitung derselben wird mit Silverlight 3 deutlich einfacher.

    • Element-to-Element-Binding: Interfacedesigner verwenden häufig Binding zweiter Interfaceeigenschaften um intuitive Benutzeroberflächen zu schaffen. Silverlight 3 erlaubt jetzt das Anbinden von Eigenschaften an CLR-Objekte und andere Interfaceelemente via XAML. Dadurch lassen sich sehr einfach Funktionen realisieren wie beispielsweise ein dynamischer Schieberegler zur Lautstärkenkontrolle eines Media Players.
    • Data Forms: Das Data-Forms-Control bietet umfangreiche Unterstützung für Funktionen wie Feldlayout, Validierung, Aktualisierung und Paging von Daten.
    • Neue Funktionen zur Validierung von Daten erkennen automatisch falsche Eingaben und warnen den Anwender mittels integrierter Überprüfungs-Controls.
    • Unterstützung für Business Objects sowohl auf dem Client wie auf dem Server mit n-Tier Datenunterstützung ermöglichen komfortables Laden, Sortieren, Filtern und Paging von Daten, sowie deren Bearbeitung. Inklusive einem neuen integrierten CollectionView zur Ausführung komplexer Operationen mit Serverdaten. Die neunen .NET RIA Services (Preview/CTP) unterstützen dieses Feature serverseitig.

    Schnell, schneller, Silverlight 3: Drastische Performanceverbesserungen. Diverse neue Funktionen und Optimierungen vorhandener Funktionen machen Silverlight zur schnellsten RIA-Runtime auf dem Markt.

    • Application Library Caching reduziert die Größe einer Anwendung indem das Framework auf dem Clientrechner zwischengespeichert wird, was die Darstellungsperformance deutlich steigert.
    • Binäres XML. Durch Komprimierung der Kommunikation mit dem Server  wird die Geschwindigkeit mit der Daten übertragen werden drastisch gesteigert. Schneller, schneller, Silverlight 3!

    Raus aus dem Webbrowser und auf den Desktop: Die neuen „Out of Browser-Funktionen“ in Silverlight 3 ermöglichen es, Silverlight 3-Anwendungen direkt auf den Windows-PC oder Mac herunter zu laden, inkl. Integration ins Startmenü oder den Programme-Ordner – ohne dass der Anwender dafür eine zusätzliche Runtime herunter laden muss. Silverlightanwendungen können außerdem erkennen ob eine aktive Webanbindung besteht und sich entsprechend verhalten.

    • Raus aus dem Browser…  Mit Silverlight 3 können Anwender ihre Lieblings-Webanwendungen jederzeit nutzen, unabhängig davon ob der Rechner mit dem Internet verbunden ist. 
    • …und auf den Desktop: Integration ins Startmenü, den Desktop, die Schnellstartleiste oder das Dock erlauben 1-Klick-Zugriff auf Silverlightanwendungen. ..und auf den Desktop
    • Sicherheit durch Sandboxing Basierend auf den bewährten Sicherheitsfunktionen des .NET-Frameworks laufen Silverlightanwendungen innerhalb einer sicheren Umgebung (Sandbox). Die Sicherheitseinschränkungen sind vergleichbar mit denen klassischer Online-Webanwendungen, d.h. Sicherheitswarnungen und Installationsaufforderungen entfallen größtenteils. 
    • Simple und einfache Installation. Da Silverlightanwendungen in einem eigenen lokalen Cache abgelegt werden und keine speziellen Administrationsrechte benötigen ist die Installation schnell und einfach. Üblicherweise reicht ein einzelner Mausklick.
    • Auto-Update. Silverlightanwendungen können beim Start selbständig überprüfen ob eine neue Version verfügbar ist und sich gegebenenfalls aktualisieren.
    • Automatisches Erkennen einer Internetverbindung. Silverlightanwendungen können erkennen ob eine Internetverbindung besteht und sich entsprechend verhalten, also beispielsweise Daten zwischenspeichern und bei der nächsten Verbindung übertragen.

    Gib Laut!

    09.07.2009 08:03:00 | Martin Hey

    Besonders wenn man einen sehr zeitintensiven Build hat, bekommt man manchmal nicht mit, wenn das Build durchgelaufen ist. In diesen Fällen wäre es doch schön, wenn Visual Studio noch einen akustischen Hinweis liefern würde.

    Eine Einstellung in Options hab ich dafür nicht gefunden... aber es gibt ja noch Makros :)

    Wenn man mag, legt man sich im Makro-Explorer(Alt+F8) ein neues Makro-Projekt an. Alternativ kann man die Einstellungen auch im MyMacros-Projekt hinzufügen.
    Im Anschluss daran öffnet man die Macro-IDE(Alt+F11). Im eben erstellen Makro existiert bereits das Modul EnvironmentEvents. Falls nicht, kann man es sich aus dem Projekt Samples kopieren. Es sollte ungefähr so aussehen:
    Option Strict Off
    Option Explicit Off
    Imports System
    Imports EnvDTE
    Imports EnvDTE80
    Imports EnvDTE90
    Imports System.Diagnostics

    Public Module EnvironmentEvents

    #Region "Automatically generated code, do not modify"
        'Automatically generated code, do not modify
        'Event Sources Begin
        <System.ContextStaticAttribute()> 
        Public WithEvents DTEEvents As EnvDTE.DTEEvents
        <System.ContextStaticAttribute()> 
        Public WithEvents DocumentEvents As EnvDTE.DocumentEvents
        <System.ContextStaticAttribute()> 
        Public WithEvents WindowEvents As EnvDTE.WindowEvents
        <System.ContextStaticAttribute()> 
        Public WithEvents TaskListEvents As EnvDTE.TaskListEvents
        <System.ContextStaticAttribute()>
        Public WithEvents FindEvents As EnvDTE.FindEvents
        <System.ContextStaticAttribute()>
        Public WithEvents OutputWindowEvents As EnvDTE.OutputWindowEvents
        <System.ContextStaticAttribute()>
        Public WithEvents SelectionEvents As EnvDTE.SelectionEvents
        <System.ContextStaticAttribute()>
        Public WithEvents BuildEvents As EnvDTE.BuildEvents
        <System.ContextStaticAttribute()>
        Public WithEvents SolutionEvents As EnvDTE.SolutionEvents
        <System.ContextStaticAttribute()>
        Public WithEvents SolutionItemsEvents As EnvDTE.ProjectItemsEvents
        <System.ContextStaticAttribute()>
        Public WithEvents MiscFilesEvents As EnvDTE.ProjectItemsEvents
        <System.ContextStaticAttribute()>
        Public WithEvents DebuggerEvents As EnvDTE.DebuggerEvents
        <System.ContextStaticAttribute()>
        Public WithEvents ProjectsEvents As EnvDTE.ProjectsEvents
        <System.ContextStaticAttribute()>
        Public WithEvents TextDocumentKeyPressEvents As EnvDTE80.TextDocumentKeyPressEvents
        <System.ContextStaticAttribute()>
        Public WithEvents CodeModelEvents As EnvDTE80.CodeModelEvents
        <System.ContextStaticAttribute()>
        Public WithEvents DebuggerProcessEvents As EnvDTE80.DebuggerProcessEvents
        <System.ContextStaticAttribute()>
        Public WithEvents DebuggerExpressionEvaluationEvents As EnvDTE80.DebuggerExpressionEvaluationEvents
        'Event Sources End
        'End of automatically generated code
    #End Region

    End Module
    Nun wählt man noch im Dropdown "Class name" den Eintrag "BuildEvents" und im Dropdown "Method name" den Entrag "OnBuildDone" und schon ist der Eventhandler für den Build-Done-Event vorhanden. In diesen können nun die gewünschten Aktionen programmiert werden - im Beispiel wird die Methode Beep aufgerufen:
    Private Sub BuildEvents_OnBuildDone(ByVal Scope As EnvDTE.vsBuildScope, ByVal Action As EnvDTE.vsBuildAction) Handles BuildEvents.OnBuildDone
        Beep()
    End Sub

    Das war's auch schon! So lange das Makro geladen ist, wird sich Visual Studio nun am Ende jeden Builds akustisch melden.

    Ähnliche Beiträge:

    Was tun bei Fehler 4046 bei der Anmeldung am SQL-Server?

    09.07.2009 07:35:00 | Martin Hey

    Eben war man noch am SQL-Server angemeldet und konnte mit seinen Datenbanken arbeiten und im nächsten Moment bekommt man bei der Anmeldung diese Meldung präsentiert:
    Cannot connect to {servername}. Additional information: Cannot open user default database. Login failed. Login failed for user '{username}'. (Microsoft SQL Server, Error: 4064)

    Die Meldung ist recht eindeutig: Jemand - vielleicht sogar man selbst - hat die Default-Datenbank des Benutzers gelöscht. Wird keine andere Datenbank angegeben, so versucht SQL-Server den Benutzer an dieser Datenbank anzumelden. Diese Einstellungen kann man in den Eigenschaften des jeweiligen Logins vornehmen:
    Login Properties

    Welche Möglichkeiten bestehen nun, wieder auf den Server zu kommen, um zumindest mit den anderen Datenbanken zu arbeiten oder die fehlende Datenbank wiederherzustellen?

    Möglichkeit 1
    Die wohl einfachste Möglichkeit ist, den Datenbankadministrator (DBA) zu bitten, die fälschlicherweise gelöschte Datenbank aus einem Backup wiederherzustellen. Wichtig dabei ist, dass die wiederhergestellte Datenbank den gleichen Namen hat wie die zuvor gelöschte Datenbank, denn in den Eigenschaften des Logins wird der Datenbankname als Text gespeichert.

    Möglichkeit 2
    Sollte es kein Backup geben, so kann man auch eine neue Datenbank mit dem gleichen Namen erstellen und allen relevanten Logins wieder Zugriffsrechte auf dieser Datenbank einräumen. Das ist allerdings nur in Ausnahmefällen sinnvoll - man kann sich dann zwar wieder anmelden, hat aber eine leere Datenbank.

    Möglichkeit 3
    Hat der Benutzer noch auf andere Datenbanken Zugriffsberechtigungen, so kann auch im Login-Dialog selbst der Name der Datenbank angegeben werden zu der sich Managementstudio verbinden soll. Die Einstellung dazu findet man im Tab Connection Properties (dazu ggf. vorher auf Options klicken):
    Connection Properties
    Ist man dann auch noch mit administrativen Rechten ausgestatten, kann man nach erfolgreichem Login die Einstellung unter Login Properties selbst auf einen korrekten Wert ändern.

    Möglichkeit 4
    Man kann auch einen netten Kollegen mit administrativen Rechten oder eben den DBA bitten, die Default-Datenbank unter Login Properties auf einen gültigen Wert zu ändern.

    Möglichkeit 5
    Hat man sich als Administrator slebst ausgesperrt, kann man die Login-Properties auch per sqlcmd setzen. Dazu verbindet man sich zunächst mit sqlcmd zu einer existierenden Datenbank (z.B. master) und ändert dann per ALTER-LOGIN-Statement die Eigenschaften seines Logins:
    sqlcmd -d master -U sa -P sapassword
    und dann
    alter login sa with default_database = master

    Wenn Applikationen versuchen, eine Datenbankverbindung aufzubauen, sollte der Hersteller by design schon darauf achten, im ConnectionString eine Datenbank anzugeben und sich nicht blind darauf zu verlassen, dass die Login-Properties korrekt gesetzt sind. Daher sollte diese Meldung auch nur beim Login über solche Tools wie Management Studio o.ä. vorkommen.

    Ähnliche Beiträge

    VSTS 2010 Beta1 Microsoft Test und Lab Manager AV auf Windows Server 2008

    08.07.2009 22:40:53 | Christian Binder

    Wenn ein manueller Test im Testrunner mit Videorecording durchgeführt wird, muss man bei der VSTS 2010 Beta1 noch den Media Encoder installieren http://go.microsoft.com/fwlink/?LinkId=135985.
    Falls das Betriebssystem Windows Server 2008 ist, gibt es dennoch eine AV beim starten des Recordings. Die Lösung ist das Support update http://go.microsoft.com/fwlink/?LinkId=154736 auch für den Windows Server 2008 zu installieren, was die VSTS2010 Beta1 Readme verschweigt. Und zum Schluss noch die Desktop Experience installieren http://go.microsoft.com/fwlink/?LinkId=154635.

    Dann Funktioniert’s perfekt :-)

    Chris

    Vorankündigung zum Jubiläumstreffen der PASS Regionalgruppe Sachsen

    08.07.2009 20:00:00 | Martin Hey

    Die PASS wird fünf Jahre alt und auch bei der Regionalgruppe Sachsen wird es eine Jubiläumsveranstaltung geben zu der auch ein Technologieberater von Microsoft kommen wird. Diese Veranstaltung findet am 07.09.2009 statt. Weitere Informationen zu Ort und Zeit des Treffens gibt es rechtzeitig auf der Website der PASS.

    Automatische Properties in Visual Studio 2008

    08.07.2009 13:27:00 | Martin Hey

    Besonders bei der Definition einer sehr umfangreichen Klassenstruktur, kann die Erstellung von öffentlichen Eigenschaften sehr schnell zu einer lästigen Beschäftigung werden.
    Möchte man in den Eigenschaften selbst keine tiefergehende Business-Logik implementieren oder auf die privaten Variablen auf eine andere Weise als über die öffentliche Eigenschaft zugreifen, kann man auch das Feature der automatisch implementierten Properties nutzen und jetzt folgendes schreiben:
    public string Title { get; set; }

    Diese Zeile würde sich letztendlich so verhalten als wenn man folgendes geschrieben hätte:
    private string title;
    public string Title
    {
    get { return this.title; }
    set { this.title = value; }
    }

    Sicher, das Ganze ist ein Feature, das man getrost unter "Syntactic Sugar" einordnen kann. Man definiert die Eigenschaften also genau so wie man es von Interfaces gewohnt ist und der Compiler kümmert sich um die privaten Variablen - mit den oben genannten Einschränkungen.

    Meiner Meinung nach ist es ein Schritt in die richtige Richtung, auch wenn Tools wie CodeRush oder ReSharper einen wesentlich besseren Funktionsumfang haben. Vielleicht holt sich Microsoft hier für künftige Versionen ein paar Ideen.

    Ähnliche Beiträge:

    Über RDP angemeldete Benutzer ermitteln

    08.07.2009 09:22:00 | Martin Hey

    Was sich auf den ersten Blick als keine so einfach zu lösende Aufgabe anhört, verliert mit der Hilfe von WMI schon seinen Schrecken. In meinem Post Windows Management Instrumentation mit C# verwenden hab ich schon kurz erklärt, welche .NET-Objekte den Zugriff auf WMI erlauben und wie man dazu vorgeht. Daher hier nur kurz eine mögliche Lösung:
    //create a local management scope
    ManagementScope managementScope = new ManagementScope();
    //create a query for all available sessions (LogonType 2 = Interactive; LogonType 10 = RemoteInteractive)
    ObjectQuery sessionQuery = new ObjectQuery("Select * from Win32_LogonSession Where LogonType = 2 OR LogonType = 10");
    // execute the query
    ManagementObjectSearcher sessionObjectSearcher = new ManagementObjectSearcher(managementScope, sessionQuery);
    ManagementObjectCollection sessionObjectCollection = sessionObjectSearcher.Get();

    //iterate through all sessions
    foreach (ManagementObject sessionObjectItem in sessionObjectCollection)
    {
    //determine properties
    uint logonType = (uint)sessionObjectItem["LogonType"];
    string logonId = sessionObjectItem["LogonId"] as string ;

    if (logonType == 2)
    {
    Debug.WriteLine("Logon Type: Console");
    }
    else
    {
    Debug.WriteLine("Logon Type: RDP/Terminal Server");
    }

    //create a new query to get the user information for the selected session
    ObjectQuery associatorQuery = new ObjectQuery(string.Concat("Associators of {Win32_LogonSession.LogonId=", logonId, "} Where AssocClass=Win32_LoggedOnUser Role=Dependent"));
    // execute the query
    ManagementObjectSearcher associatorObjectSearcher = new ManagementObjectSearcher(managementScope, associatorQuery);
    ManagementObjectCollection associatorObjectCollection = associatorObjectSearcher.Get();

    //iterate through all users (should only be one result per session)
    foreach (ManagementObject associatorObjectItem in associatorObjectCollection)
    {
    //determine properties and output the result
    string user = associatorObjectItem["Name"] as string;
    string name = associatorObjectItem["FullName"] as string;
    string domain = associatorObjectItem["Domain"] as string;
    Debug.WriteLine(string.Concat("User: ", user));
    Debug.WriteLine(string.Concat("FullName: " , name));
    Debug.WriteLine(string.Concat("Domain: ", domain));
    }

    Debug.WriteLine(string.Concat("Session start time: ", sessionObjectItem["StartTime"]));
    }

    Zunächst werden mit Hilfe der Klasse Win32_LogonSession alle Sessions ermittelt, die die Kriterien erfüllen und im Anschluss daran mit Hilfe der ermittelten LogonId noch Informationen zum Benutzer ermittelt.

    Windows Management Instrumentation mit C# verwenden

    08.07.2009 08:58:00 | Martin Hey

    Ich hab den Eindruck, für viele Entwickler ist Windows Management Instrumentation (WMI) etwas sehr Undurchschaubares. Und doch muss man gelegentlich auf Systeminformationen zugreifen. Dabei erweist es sich als sehr mächtiges Tool. Hat man einmal verstanden wie es funktioniert kommt man sehr schnell und einfach an die benötigten Informationen. Und genau da liegt eine große Hürde. Um WMI zu verwenden muss man die Objekte mittels WQL (WMI query language) abfragen. Und dafür muss man wissen wie die Syntax ist und welche Objekte man überhaupt verwenden kann.
    Erster Anlaufpunkt dafür ist die MSDN. Hier findet man eine WMI-Referenz, in der die möglichen Klassen mit den jeweiligen Eigenschaften und auch die Syntax der WQL erklärt werden. Möchte man beispielsweise den freien Plattenplatz, Größe und Namen aller Festplatten ermitteln, würde man folgende Query verwenden:
    Select FreeSpace,Size,Name from Win32_LogicalDisk where DriveType=3

    Das geht nun nicht nur auf dem lokalen System, sondern - entsprechende Berechtigungen vorausgesetzt - auch remote.

    Um per .NET auf WMI zuzugreifen, steht der System.Management-Namespace zur Verfügung. Damit ist der Zugriff ähnlich simpel wie die Abfrage einer Datenbank. Die wichtigsten Klassen sind:
    • ConnectionOptions
    • ManagementScope
    • ObjectQuery
    • ManagementObjectSearcher
    • ManagementObjectCollection
    • ManagementObject
    Das folgende Beispiel zeigt, wie man die oben erzeugte Query in .NET implementieren würde:
    //create a local management scope
    ManagementScope managementScope = new ManagementScope();
    //get stats of fixed disk
    ObjectQuery disksQuery = new ObjectQuery("select FreeSpace,Size,Name from Win32_LogicalDisk where DriveType=3");
    //execute the query
    ManagementObjectSearcher objectSearcher = new ManagementObjectSearcher(managementScope, disksQuery);
    //get the results
    ManagementObjectCollection disksCollection = objectSearcher.Get();
    //iterate through found drives and output the info
    foreach (ManagementObject disksItem in disksCollection)
    {
    // disk name
      Debug.WriteLine("Name : " + disksItem["Name"] as string);
    // free Space in bytes
    Debug.WriteLine("FreeSpace: " + disksItem["FreeSpace"] as string);
    // size in bytes
    Debug.WriteLine("Size: " + disksItem["Size"] as string);
    }

    Wie man gut erkennen kann, bekommt man keine typisierten Ergebnisse zurück, sondern muss über die Namen der Eigenschaften zugreifen, aber mit Hilfe der WMI-Klassenreferenz ist das recht unproblematisch.

    Ähnliche Beiträge:

    Warning LNK4075: /EDITANDCONTINUE wird aufgrund der Angabe von /INCREMENTAL:NO ignoriert

    07.07.2009 13:00:00 | Wolfgang Kluge

    Wenn der C++ Linker die Warnung LNK4075 ausgibt, so kann man entweder die Einstellung /INCREMENTAL von NO auf YES stellen, oder - so kann man meinen - /EDITANDCONTINUE deaktivieren.

     Die Einstellung Enable Incremental Linking

    Während man die erstgenannte Einstellung in den Projekteigenschaften unter "Linker" -> "General" -> "Enable Incremental Linking" findet, ist die Einstellung für "Edit And Continue" allerding nicht auffindbar.

    Diese ist über den Visual Studio Dialog nicht direkt einstellbar. Stattdessen gibt es eine Einstellung unter "C/C++" -> "General" -> "Debug Information Format". Ist hier "/ZI" (also Program Database for Edit & Continue) eingestellt, so impliziert das die (interne) Linkeroption /EDITANDCONTINUE.

    Die Einstellung Debug Information Format

    Beer driven: Fünfter .NET-Stammtisch Konstanz-Kreuzlingen

    07.07.2009 12:44:00 | Peter Bucher

    Morgen am 08.07.2009 um 19:00 trifft sich der .NET Stammtisch Konstanz-Kreuzlingen zum fünften Mal.

    Da am 11.07. und am 12.07. in Ulm das .NET Open Space Süd stattfindet treffen wir uns im Biergarten "Die Bleiche" in Konstanz und machen eine gemütliche
    Gesprächsrunde über .NET bei einem Bier :)

    Bei schönem Wetter kann man gemütlich am See sitzen, ansonsten gehts rein in die warme Stube.

    Mehr Infos gibts auf der der Stammtisch-Seite.

    Treffen der .NET Usergroup Dresden

    07.07.2009 09:07:00 | Martin Hey

    Am 15.07.2009 findet das nächste Treffen der .NET Usergroup Dresden im Gebäude der T-Systems MMS statt. Beginn ist wie immer 18:00 Uhr. Thema an diesem Abend ist Test Driven Development und Behavior Driven Development, vorgestellt von Gregor Biswanger und Robert Walter.
    Weitere Informationen zum Termin und einen Link zur Anmeldeliste findet man auf der Seite der .NET Usergroup.

    Shortcut für das kompilieren des aktuell selektierten Projekts erstellen

    06.07.2009 20:02:35 | Peter Bucher

    Es gibt den Short-Cut CTRL-SHIFT-B um das die aktuelle Solution zu kompilieren.
    Ein Shortcut um das aktuell selektierte Projekt zu kompilieren gibt es standardmässig leider nicht, das lässt sich aber leicht ändern und ist super praktisch.

    Tools –> Options –> Keyboard –> Build.BuildSelection auswählen und einen Shortcut vergeben.

    Nicht vergessen den Shortcut per “Assign” oder “Zuweisen” auch wirklich zuzuweisen.
    Wenn der Shortcut im Menü angezeigt wird, funktioniert er auch. Ein Neustart von Visual Studio ist nicht nötig.

    Mehr zu Shortcuts gibts ausserdem in einem älteren Blogpost: Mausfrei für eine Woche, oder: Home, End und Konsorten

    How Does the Internet Work?

    06.07.2009 12:27:00 | Lori Grosland

    Here is a video that explains how the internet works in very easy terms and also the Microsoft BesserWeb initiative.  http://www.msdn-online.de/besserweb

    More about the video...

    We explain how the internet works, what a browser is and what you should be aware of when using it, why the display of websites can differ in different browsers and we share tips and tricks regarding the use of a web browser...and we also answer the most important of all questions: why Lukas' aunt takes her nephew's laptop away, even though he was being good.

    How Does the Internet Work?

    06.07.2009 12:27:00 | Lori Grosland

    Here is a video that explains how the internet works in very easy terms and also the Microsoft BesserWeb initiative.  http://www.msdn-online.de/besserweb

    More about the video...

    We explain how the internet works, what a browser is and what you should be aware of when using it, why the display of websites can differ in different browsers and we share tips and tricks regarding the use of a web browser...and we also answer the most important of all questions: why Lukas' aunt takes her nephew's laptop away, even though he was being good.

    How Does the Internet Work?

    06.07.2009 12:27:00 | Lori Grosland

    Here is a video that explains how the internet works in very easy terms and also the Microsoft BesserWeb initiative.  http://www.msdn-online.de/besserweb

    More about the video...

    We explain how the internet works, what a browser is and what you should be aware of when using it, why the display of websites can differ in different browsers and we share tips and tricks regarding the use of a web browser...and we also answer the most important of all questions: why Lukas' aunt takes her nephew's laptop away, even though he was being good.

    Wie funktioniert das Internet?

    06.07.2009 12:26:00 | Lori Grosland

    Hier ist ein Video über wie das Internet funktioniert und die BesserWeb-Initiative von Microsoft.  http://www.msdn-online.de/besserweb

    Mehr dazu...

    Wir erklären, wie das Internet funktioniert, was ein Browser ist, was man bei der Benutzung beachten muss, was es mit Webseiten und deren Darstellung auf sich hat und geben Tipps und Tricks im Umgang mit einem Webbrowser… und beantworten auch die wichtigste aller Fragen: Warum die Oma von Lukas ihm den Laptop wegnimmt, obwohl er richtig brav und artig war.

    Wie funktioniert das Internet?

    06.07.2009 12:26:00 | Lori Grosland

    Hier ist ein Video über wie das Internet funktioniert und die BesserWeb-Initiative von Microsoft.  http://www.msdn-online.de/besserweb

    Mehr dazu...

    Wir erklären, wie das Internet funktioniert, was ein Browser ist, was man bei der Benutzung beachten muss, was es mit Webseiten und deren Darstellung auf sich hat und geben Tipps und Tricks im Umgang mit einem Webbrowser… und beantworten auch die wichtigste aller Fragen: Warum die Oma von Lukas ihm den Laptop wegnimmt, obwohl er richtig brav und artig war.

    Wie funktioniert das Internet?

    06.07.2009 12:26:00 | Lori Grosland

    Hier ist ein Video über wie das Internet funktioniert und die BesserWeb-Initiative von Microsoft.  http://www.msdn-online.de/besserweb

    Mehr dazu...

    Wir erklären, wie das Internet funktioniert, was ein Browser ist, was man bei der Benutzung beachten muss, was es mit Webseiten und deren Darstellung auf sich hat und geben Tipps und Tricks im Umgang mit einem Webbrowser… und beantworten auch die wichtigste aller Fragen: Warum die Oma von Lukas ihm den Laptop wegnimmt, obwohl er richtig brav und artig war.

    Solve Browser Display Problems

    06.07.2009 11:33:00 | Lori Grosland

    Here is a video about how you can solve browser display problems and the Microsoft BesserWeb initiative.  http://www.msdn-online.de/besserweb

    More about the video...

    We explain how you can solve browser display problems and we provide tips, tricks and valuable resources for webmasters, web developers and web designers. We are answering questions like „My site isn’t working right, how can I fix it today?“ or „Standards by default, what does that mean?“

    Solve Browser Display Problems

    06.07.2009 11:33:00 | Lori Grosland

    Here is a video about how you can solve browser display problems and the Microsoft BesserWeb initiative.  http://www.msdn-online.de/besserweb

    More about the video...

    We explain how you can solve browser display problems and we provide tips, tricks and valuable resources for webmasters, web developers and web designers. We are answering questions like „My site isn’t working right, how can I fix it today?“ or „Standards by default, what does that mean?“

    Solve Browser Display Problems

    06.07.2009 11:33:00 | Lori Grosland

    Here is a video about how you can solve browser display problems and the Microsoft BesserWeb initiative.  http://www.msdn-online.de/besserweb

    More about the video...

    We explain how you can solve browser display problems and we provide tips, tricks and valuable resources for webmasters, web developers and web designers. We are answering questions like „My site isn’t working right, how can I fix it today?“ or „Standards by default, what does that mean?“

    Darstellungsprobleme von Webseiten verhindern

    06.07.2009 11:25:00 | Lori Grosland

    Hier ist ein Video über wie man die Darstellungsprobleme von Webseiten verhindern kann und die BesserWeb-Initiative von Microsoft.  http://www.msdn-online.de/besserweb

    Mehr dazu...

    Wir erklären, wie man Darstellungsprobleme von Webseiten verhindern kann und liefern interessante Tipps, Tricks und Links für Webmaster, Web-Designer und Web-Entwickler. Weiterhin beantworten wir Fragen wie: „Meine Website funktioniert nicht richtig. Wie kann ich das Problem heute beheben?“ oder „Standards - was bedeutet das?“

    Darstellungsprobleme von Webseiten verhindern

    06.07.2009 11:25:00 | Lori Grosland

    Hier ist ein Video über wie man die Darstellungsprobleme von Webseiten verhindern kann und die BesserWeb-Initiative von Microsoft.  http://www.msdn-online.de/besserweb

    Mehr dazu...

    Wir erklären, wie man Darstellungsprobleme von Webseiten verhindern kann und liefern interessante Tipps, Tricks und Links für Webmaster, Web-Designer und Web-Entwickler. Weiterhin beantworten wir Fragen wie: „Meine Website funktioniert nicht richtig. Wie kann ich das Problem heute beheben?“ oder „Standards - was bedeutet das?“

    Darstellungsprobleme von Webseiten verhindern

    06.07.2009 11:25:00 | Lori Grosland

    Hier ist ein Video über wie man die Darstellungsprobleme von Webseiten verhindern kann und die BesserWeb-Initiative von Microsoft.  http://www.msdn-online.de/besserweb

    Mehr dazu...

    Wir erklären, wie man Darstellungsprobleme von Webseiten verhindern kann und liefern interessante Tipps, Tricks und Links für Webmaster, Web-Designer und Web-Entwickler. Weiterhin beantworten wir Fragen wie: „Meine Website funktioniert nicht richtig. Wie kann ich das Problem heute beheben?“ oder „Standards - was bedeutet das?“

    Wir erklären wie man Darstellungsprobleme von Webseiten verhindern kann

    06.07.2009 07:00:00 | Oliver Scheer

    Wir erklären, wie man Darstellungsprobleme von Webseiten verhindern kann und liefern interessante Tipps, Tricks und Links für Webmaster, Web-Designer und Web-Entwickler. Weiterhin beantworten wir Fragen wie: „Meine Website funktioniert nicht richtig. Wie kann ich das Problem heute beheben?“ oder „Standards - was bedeutet das?“.

    image

    Angucken geht hier.

    Microsoft Code Analysis Tool .NET (CAT.NET) v1 CTP

    06.07.2009 01:06:00 | Ozgur Aytekin

    CAT.NET is a snap-in to the Visual Studio IDE that helps you identify security flaws within a managed code (C#, Visual Basic .NET, J#) application you are developing. It does so by scanning the binary and/or assembly of the application, and tracing the data flow among its statements, methods, and assemblies. This includes indirect data types such as property assignments and instance tainting operations. The engine works by reading the target assembly and all reference assemblies used in the application -- module-by-module -- and then analyzing all of the methods contained within each. It finally displays the issues its finds in a list that you can use to jump directly to the places in your application's source code where those issues were found. The following rules are currently support by this version of the tool. - Cross Site Scripting - SQL Injection - Process Command Injection - File Canonicalization - Exception Information - LDAP Injection - XPATH Injection - Redirection to User Controlled Site

    32-Bit: http://www.microsoft.com/downloads/details.aspx?FamilyID=0178E2EF-9DA8-445E-9348-C93F24CC9F9D&displaylang=en

    64-Bit: http://www.microsoft.com/downloads/details.aspx?familyid=E0052BBA-2D50-4214-B65B-37E5EF44F146&displaylang=en

    Apple warns of overheating iPhones

    05.07.2009 10:49:00 | Ozgur Aytekin

    Amidst rumors of overheating iPhones since shortly after the iPhone 3GS was launched, Apple has finally released the first acknowledgment that there might really be an issue with the iPhone regarding excessive temperatures. Various sites on the internet have posted reports of problems with the iPhone due to excessive heat such as shortened battery life, shut downs and even discoloration of the device itself. Now Apple has officially issued a warning about operating and storing the iPhone 3G and iPhone 3GS in places with too much heat.

    http://www.slipperybrick.com/2009/07/apple-warns-of-overheating-iphones/

    Neuer Sponsor für das INETA Deutschland Speakers Bureau

    04.07.2009 11:17:36 | Lars Keller

    Nun ist es offiziell. Wir haben einen neuen Sponsor für das INETA Deutschland Speakers Bureau!!! Die Firma Telerik hat sich nicht nur bereit erklärt, das Budget aufzustocken, sondern wird auch jedem genehmigten Event eine Lizenz der Telerik Premium Collection inkl. 1 Jahr Support im Wert von $1.299 zur Verlosung beilegen! Klasse! :)
    Ab heute können wieder Reisekostenzuschüsse für Sprecher bei .NET User Group Events beantragt werden.

    Ich will auch gleich die Gelegenheit nutzen, ein paar aktuelle Zahlen des Speakers Bureaus zu veröffentlichen.

    Bis jetzt wurden dieses Jahr 26 Event bezuschusst. Insgesamt wurden seit dem knapp einjährigen Bestehen 53 Events gesponsert. Die Sprecherliste wächst stetig. Wir haben mittlerweile 14 Sprecher im Speakers Bureau gelistet:

    Das INETA Deutschland Speakers Bureau sucht noch weitere Sponsoren! Interesse? Dann schicken Sie mir gern eine E-Mail und wir sprechen über die Möglichkeiten: keller [at] ineta-germany [dot] org

    P.s.:

    Ich bin gerade überwältigt, wie hoch der Andrang auf das neue Budget ist. Wie immer gilt: first come – first serve!



    This weblog is sponsored by netcreate OHG.

    Neuer Sponsor für das INETA Deutschland Speakers Bureau

    04.07.2009 10:17:36 | Lars Keller

    Nun ist es offiziell. Wir haben einen neuen Sponsor für das INETA Deutschland Speakers Bureau!!! Die Firma Telerik hat sich nicht nur bereit erklärt, das Budget aufzustocken, sondern wird auch jedem genehmigten Event eine Lizenz der Telerik Premium Collection inkl. 1 Jahr Support im Wert von $1.299 zur Verlosung beilegen! Klasse! :)
    Ab heute können wieder Reisekostenzuschüsse für Sprecher bei .NET User Group Events beantragt werden.

    Ich will auch gleich die Gelegenheit nutzen, ein paar aktuelle Zahlen des Speakers Bureaus zu veröffentlichen.

    Bis jetzt wurden dieses Jahr 26 Event bezuschusst. Insgesamt wurden seit dem knapp einjährigen Bestehen 53 Events gesponsert. Die Sprecherliste wächst stetig. Wir haben mittlerweile 14 Sprecher im Speakers Bureau gelistet:

    Das INETA Deutschland Speakers Bureau sucht noch weitere Sponsoren! Interesse? Dann schicken Sie mir gern eine E-Mail und wir sprechen über die Möglichkeiten: keller [at] ineta-germany [dot] org

    P.s.:

    Ich bin gerade überwältigt, wie hoch der Andrang auf das neue Budget ist. Wie immer gilt: first come – first serve!

    Video: Wir erklaeren das Internet und geben Tipps und Tricks im Umgang mit dem Browser

    04.07.2009 09:03:42 | Kay Giza

    Wir erklären, wie das Internet funktioniert, was ein Browser ist, was man bei der Benutzung beachten muss, was es mit Webseiten und deren Darstellung auf sich hat und geben Tipps und Tricks im Umgang mit einem Webbrowser… und beantworten auch die wichtigste aller Fragen: Warum die Oma von Florian ihm den Laptop wegnimmt, obwohl er richtig brav und artig war!

    Video: Wir erklären das Internet und geben Tipps und Tricks im Umgang mit dem Browser






    Weiterführende Links:

     



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

    Video: Wir erklaeren wie man Darstellungsprobleme von Webseiten verhindern kann

    04.07.2009 09:01:02 | Kay Giza

    Wir erklären, wie man Darstellungsprobleme von Webseiten verhindern kann und liefern interessante Tipps, Tricks und Links für Webmaster, Web-Designer und Web-Entwickler. Weiterhin beantworten wir Fragen wie: „Meine Website funktioniert nicht richtig. Wie kann ich das Problem heute beheben?“ oder „Standards - was bedeutet das?“.

    Video: Wir erklären wie man Darstellungsprobleme von Webseiten verhindern kann






    Weiterführende Links:

     



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

    Video: We explain how the internet works and provide tips and tricks for using browsers

    04.07.2009 08:58:49 | Kay Giza

    We explain how the  internet works, what a browser is and what you should be aware of when using it, why the display of websites can differ in different browser and we share tips and tricks regarding the use of a webbrowser ...and we also answer the most important of all questions: why Florians‘ aunt takes her nephew’s laptop away, even though he was being good!

    Video: We explain how the internet works and provide tips and tricks for using browsers






    Related Links:

     



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

    Video: We explain how you can solve browser display problems

    04.07.2009 08:57:11 | Kay Giza

    We explain how you can solve browser display problems and we provide tips, tricks and valuable resources for webmasters, web developers and web designers. We are answering questions like „My site isn’t working right, how can I fix it today?“ or „Standards by default, what does that mean?“.

    Video: We explain how you can solve browser display problems






    Related Links:

     



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

    Der .NET Open Space 2009 in Blaustein/Ulm

    04.07.2009 07:34:00 | Albert Weinert

    Nur noch sieben Tage und der er geht los, der erste .NET Open Space für 2009 in Blaustein bei Ulm.

    Bis jetzt haben sich 65 Personen angemeldet. Somit ist viel Know-How in den unterschiedlichsten Bereichen vor Ort. Wenn ich mir die Teilnehmerliste ansehe verspricht es ein sehr interessantes Wochenende werden bei der Menge an Wissen und Interessen.

    Ich selbst werde wohl mindestens eine Session zu ASP.NET MVC vorschlagen, auf der User Group Tour wurde reges Interesse daran bekundet.

    Wer sich also nur Ansatzweise für Software-Entwicklung mit .NET Interessiert der sollte es nicht versäumen auch vom 11. bis zum 12. Juli in Blaustein zu sein! Es sind noch wenige freie Plätze vorhanden.

    Da so ein Open Space am besten funktioniert wenn man vorher wenigstens schon mal das eine oder andere Wort gewechselt hat, gibt es nun auch ein spontanes Treffen zum kennenlernen am Freitag den 10. Juli 2009. Dies sollte man sich auch nicht entgehen lassen.

    Also, wir sehen uns in einer Woche in Blaustein!

    Neuer Sponsor für das INETA Deutschland Speakers Bureau

    04.07.2009 01:17:03 | Lars Keller

    Nun ist es offiziell. Wir haben einen neuen Sponsor für das INETA Deutschland Speakers Bureau!!! Die Firma Telerik hat sich nicht nur bereit erklärt, das Budget aufzustocken, sondern wird auch jedem genehmigten Event eine Lizenz der Telerik Premium Collection inkl. 1 Jahr Support im Wert von $1.299 zur Verlosung beilegen! Klasse! :)
    Ab heute können wieder Reisekostenzuschüsse für Sprecher bei .NET User Group Events beantragt werden.

    Ich will auch gleich die Gelegenheit nutzen, ein paar aktuelle Zahlen des Speakers Bureaus zu veröffentlichen.

    Bis jetzt wurden dieses Jahr 26 Event bezuschusst. Insgesamt wurden seit dem knapp einjährigen Bestehen 53 Events gesponsert. Die Sprecherliste wächst stetig. Wir haben mittlerweile 14 Sprecher im Speakers Bureau gelistet:

    Das INETA Deutschland Speakers Bureau sucht noch weitere Sponsoren! Interesse? Dann schicken Sie mir gern eine E-Mail und wir sprechen über die Möglichkeiten: keller [at] ineta-germany [dot] org

    P.s.:

    Ich bin gerade überwältigt, wie hoch der Andrang auf das neue Budget ist. Wie immer gilt: first come – first serve!

    Zu Besuch bei der DNUG Ulm

    03.07.2009 20:22:10 | Lars Keller

    Es war mein zweiter Besuch bei der DNUG Ulm zum Thema VSTO/OBA. Dieses Mal habe ich verschiedene Einsatzszenarios mit VSTO aufgezeigt. Mein Vortrag ging über die Interaktion zwischen den MS Office Applikationen und wie man mit Hilfe von VSTO einfache WorkFlows Händeln kann. Der zweite Teil meines Vortrags drehte sich um das Deployment von VSTO Lösungen. Abschließend habe ich noch einen kleinen Ausblick auf die nützlichen Änderungen für VSTO/OBA Entwickler bei VSTO 4 und C# 4.0 gegeben.

    Der Abend hat mir großen Spaß gemacht, besonders die lebhafte Diskussion über VSTO! Danke für die Einladung! Ich komme gern wieder. :)

    Hier sind meine Beispiele & Folien:



    This weblog is sponsored by netcreate OHG.

    SqlServer: User or role already exists in the current database

    03.07.2009 19:50:00 | Peter Bucher

    Wenn ein Backup von einer SqlServer-Datenbank zurückgespielt wird kann es sein, das anschliessend für die vorher berechtigten Benutzer das Login fehlschlägt.
    Im Sql Management Studio kann unter der Funktion "UserMapping"  die Berechtigung im Normalfall wieder zugewiesen werden, jedoch kann es eben in diesem Fall zum Fehler 15023 kommen.

    Für mehr Details zu diesem Fehler siehe hier und hier, wie man den Fehler beheben kann findet sich in diesem und diesem Blogpost.

    Zu Besuch bei der DNUG Ulm

    03.07.2009 19:22:10 | Lars Keller

    Es war mein zweiter Besuch bei der DNUG Ulm zum Thema VSTO/OBA. Dieses Mal habe ich verschiedene Einsatzszenarios mit VSTO aufgezeigt. Mein Vortrag ging über die Interaktion zwischen den MS Office Applikationen und wie man mit Hilfe von VSTO einfache WorkFlows Händeln kann. Der zweite Teil meines Vortrags drehte sich um das Deployment von VSTO Lösungen. Abschließend habe ich noch einen kleinen Ausblick auf die nützlichen Änderungen für VSTO/OBA Entwickler bei VSTO 4 und C# 4.0 gegeben.

    Der Abend hat mir großen Spaß gemacht, besonders die lebhafte Diskussion über VSTO! Danke für die Einladung! Ich komme gern wieder. :)

    Hier sind meine Beispiele & Folien:

    TortoiseSVN meldet Can't open file: [subversion dir]\tempfile.tmp Access is Denied

    03.07.2009 12:32:42 | Andre Kraemer

    Vorgestern verpasste ich abends den Zug. Der Grund war relativ einfach: ich bin zu spät los gegangen. Die Ursache hierfür lag darin, dass ich mehrfach versuchen musste meine geänderten Quellcode in unser Subversion Repository zu commiten. Leider erhielt ich während des Commits jedes Mal die Fehlermeldung:

    "Can't open file: [subversion dir]\tempfile.tmp Access is Denied"

    Zum Glück kannte Google die Antwort. Kurz zusammengefasst:

    Die Fehlermeldung wurde durch den Virenscanner (in meinem Fall McAfee) verursacht. Dieser meinte nämlich Zugriffe auf die temporäre Subversion Datei blockieren zu müssen.

    Nach der Deaktivierung konnte ich meine Quellcodes sofort einchecken. Schade nur, dass der Zug schon weg war ...



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

    “Wie geil ist das denn?” Teil 1 - Wie man sich auch über kleine Dinge freuen kann

    03.07.2009 11:30:33 | Jan Schenk

    Habe gerade mit dem Expression Encoder gespielt um ein paar Settings für unsere berüchtigten Webcasts zu optimieren. Dabei ist mir aufgefallen dass der Fortschritt einer Operation, der in Windows 7 direkt im Taskbar angezeit werden kann, bei einer 2-pass Enkodiervorgang doch tatsächlich beim ersten Durchgang gelb und beim zweiten finalen Durchgang grün ist:

    imageimage 

     

     

     

     

     

     

     

     

     

    Also ich find es klasse. Ergonomisch gesehen, ein weiterer Vorteil, da man mit einem Blick sehen kann, wie weit ein Durchgang fortgeschritten ist, ohne das Fenster aktivieren zu müssen.



    tweetmeme_url = 'http://blogs.msdn.com/jansche/archive/2009/07/03/wie-geil-ist-das-denn-teil-1-wie-man-sich-auch-ber-kleine-dinge-freuen-kann.aspx';

    Zu Besuch bei der DNUG Ulm

    03.07.2009 10:22:01 | Lars Keller

    Es war mein zweiter Besuch bei der DNUG Ulm zum Thema VSTO/OBA. Dieses Mal habe ich verschiedene Einsatzszenarios mit VSTO aufgezeigt. Mein Vortrag ging über die Interaktion zwischen den MS Office Applikationen und wie man mit Hilfe von VSTO einfache WorkFlows Händeln kann. Der zweite Teil meines Vortrags drehte sich um das Deployment von VSTO Lösungen. Abschließend habe ich noch einen kleinen Ausblick auf die nützlichen Änderungen für VSTO/OBA Entwickler bei VSTO 4 und C# 4.0 gegeben.

    Der Abend hat mir großen Spaß gemacht, besonders die lebhafte Diskussion über VSTO! Danke für die Einladung! Ich komme gern wieder. :)

    Hier sind meine Beispiele & Folien:

    Silverlight-Webcasts

    03.07.2009 09:13:43 | Oliver Scheer

    Obwohl an diesen Webcasts explizit Silverlight 1 oder 2 dran steht, gilt dies auch für alle folgenden Versionen von Silverlight.

    Einsteiger Webcast-Serie

    Einführung in Silverlight (Teil 1 von 10) - Die Werkzeuge für Silverlight

    Silverlight 2 bringt neben dem Plugin noch eine Vielzahl von Tools, SDKs und Websites mit, die in ihrer Fülle dem Entwickler sehr viele Informationen und Hilfen anbieten. Dieser Webcast gibt einen Überblick das Hilfeangebot und die Tools, die man für die Entwicklung von "Silverlight 2"-Anwendungen benötigt.

    Einführung in Silverlight (Teil 2 von 10) - Silverlight-Grundlagen

    Für die Integration von "Silverlight 2"-Anwendungen in seine eigene Website sind nicht viele Schritte notwendig. Dieser Webcast erklärt die Grundlagen und das Funktionsprinzip von "Silverlight 2".

    Einführung in Silverlight (Teil 3 von 10) - Einführung in XAML

    Eine der Grundlagen von Silverlight ist XAML. Mit XAML hat man die Möglichkeit, die gesamte Oberfläche und die Interaktion durch eine beschreibende Sprache zu definieren. Verschiedene Tools wie Visual Studio und Expression Studio können mittels dieser Sprache miteinander kooperieren. Dadurch ergeben sich eine Vielzahl von Möglichkeiten für den Designer und Entwickler.

    Einführung in Silverlight (Teil 4 von 10) - Silverlight mit JavaScript

    Silverlight 2 erlaubt für die Entwicklung sowohl die Verwendung von JavaScript also auch von Managed Code (C#, Visual Basic, etc.). Dieser Webcast zeigt, wie man mit JavaScript und Silverlight dynamische Webanwendungen erstellt.

    Einführung in Silverlight (Teil 5 von 10) - Silverlight mit Managed Code

    Dieser Webcast zeigt die Vorzüge von Managed Code und stellt die Grundlagen des .NET Frameworks vor.

    Einführung in Silverlight (Teil 6 von 10) - Expression Blend Einführung

    Expression Blend bietet einen anderen Ansatz für die Gestaltung von Anwendungen als man es bisher von Tools wie Visual Studio gewohnt ist. Expression Blend fokussiert sich ganz klar auf die Gestaltung und Interaktion mit Oberflächen.

    Einführung in Silverlight (Teil 7 von 10) - Silverlight mit Visual Studio

    Für die Entwicklung von Silverlight-Anwendungen gibt es eine hervorragende Integration von Silverlight-Tools, die in diesem Webcast erklärt und demonstriert werden.

    Einführung in Silverlight (Teil 8 von 10) - Arbeiten mit dem Deep Zoom Composer und dem MultiScaleImage

    Die "Deep Zoom"-Technologie in Silverlight ermöglicht es, sehr große Bilder und Bildersammlungen sehr schnell und effizient über das Internet zu übertragen und gleichzeitig ein völlig neues "Browsing"-Erlebnis zu liefern. Dieser Webcast zeigt, wie man mit Hilfe des Deep Zoom Composer entsprechende Bilder generiert und diese in Silverlight weiterverwendet.

    Einführung in Silverlight (Teil 9 von 10) - Eigene Controls mit Silverlight

    Einer der großen Vorteile von Silverlight ist die Möglichkeit, sehr einfach und schnell eigene Benutzersteuerelemente zu erstellen. Damit hat man einen hervorragenden Mechanismus zur Wiederverwendung von Benutzersteuerelementen. In diesem Webcast wird auf die Grundlagen der Steuerelement-Entwicklung eingegangen.

    Einführung in Silverlight (Teil 10 von 10) - Einführung in Expression Encoder

    Der Expression Encoder ist ein sehr hilfreiches Werkzeug für die Encodierung von Videos und Audios in das von Silverlight unterstützte WMV-Format bzw. WMA-Format. Er bietet eine Vielzahl von Optimierungsmöglichkeiten an und erlaubt es auch direkt einen Medienplayer für das erstellte Format zu generieren, den man beliebig weiterverwenden kann.

    Silverlight – LiftOff – Webcast-Serie

    LiftOff Web- & Silverlight-Szenario (Teil 1 von 5) - Das Szenario stellt sich vor – die ersten Controls

    Das Szenario stellt einen Web-"Shop" vor, der Gebrauchtwagen anbietet. Mit den Möglichkeiten von Silverlight 2 wird eine benutzerfreundliche Oberfläche erstellt. Teil 1 dieser Webcast-Serie stellt das Szenario vor und gibt einen Überblick über die Projektstrukturen in Visual Studio und Expression Blend. Mit Silverlight Standard-Controls werden die ersten Bestandteile der Anwendung aufgebaut.

    LiftOff Web- & Silverlight-Szenario (Teil 2 von 5) - Eigene Controls entwickeln, Styles anwenden und Animationen erstellen

    Teil 2 beschäftigt sich mit dem Entwickeln und Verwenden von eigenen Controls. Es wird ein Formular erstellt und anschließend mit Hilfe von Styles individuell gestaltet. Abschließend erfolgt eine Einführung in Animationen mit Expression Blend und das dynamische Erstellen von Animationen in Visual Studio.

    LiftOff Web- & Silverlight-Szenario (Teil 3 von 5) - Geschäftslogik, Formulare und Benutzeranmeldung

    In Teil 3 geht es um die Business Logik. Formulareingaben werden verarbeitet und einer Plausibilitätsprüfung unterzogen. Außerdem wird am Beispiel einer „Windows Live“-Anmeldung die Integration der Silverlight-Anwendung in eine ASP.NET-Seite und der Datenaustausch mittels Javascript betrachtet.

    LiftOff Web- & Silverlight-Szenario (Teil 4 von 5) - Arbeiten mit Daten. Datenbindung und LINQ

    Teil 4 beschäftigt sich mit Daten. So werden LINQ und Datenlayer am Beispiel der Anbindung von Daten aus XML und Web Services vorgestellt, welche anschließend mit Hilfe der Daten-Controls angezeigt werden. Formulardaten werden in eine Datenbank abgespeichert.

    LiftOff Web- & Silverlight-Szenario (Teil 5 von 5) - Animationen und Videos

    Teil 5 gibt einen tiefergehenden Einblick in eigene Controls und Animationen. Zusätzlich wird das Thema „Videos in Silverlight“ behandelt. Dies umfasst das Encoding, die Erstellung eines Players und das Erstellen von Videos mit Hilfe des Expression Encoders.

    Tipps und Tricks zu Silverlight 2 – Webcast-Serie

    Silverlight 2 - Tipps und Tricks (Teil 1 von 10) - Externe Daten einbinden leicht gemacht

    Silverlight kann theoretisch mit nahezu allen Datenformaten arbeiten. Allerdings gibt es oftmals Herausforderungen bei Cross-Domain-Calls. Dieser Webcast zeigt, wie man die Cross-Domain-Problematik umgeht und beliebige Daten aus anderen Quellen in Silverlight verwenden kann.

    Silverlight 2 - Tipps und Tricks (Teil 2 von 10) - Daten visualisieren mit Templates für Fortgeschrittene

    Daten laden ist einfach. Daten visualisieren ebenfalls. Auch Nicht-Designer können mit einfachen Mitteln und leichtem Databinding Daten sehr ansprechend visualisieren und interaktiver visualisieren. Dieser Webcast beschreibt den Mechanismus zum Binden von Daten in Silverlight und zeigt. wie man mit einfachen Mitteln seine Daten ansprechend darstellen kann.

    Silverlight 2 - Tipps und Tricks (Teil 3 von 10) - Erstellen eigener Layout-Container

    Mit Canvas, Grid, Border, StackPanel und dem Scrollviewer stehen Silverlight schon mächtige Layoutmechanismen zur Verfügung. Allerdings kann man auch selber sehr leicht einen Container zum automatischen Layouten von Steuerelementen verwenden. Dieser Webcast zeigt, wie man solche Container selber baut und liefert gleich einige neue Container mit.

    Silverlight 2 - Tipps und Tricks (Teil 4 von 10) - Datenuploads mit Silverlight

    Daten in Silverlight hinladen ist sehr einfach. Was viele jedoch (noch) nicht wissen ist, dass man in Silverlight auch Daten an beliebige Server "hochladen" kann. Es ist möglich, beliebig große Dateien einfach auf einen Server zu laden und dem Benutzer während des Upload-Vorgangs eine ordentliche Fortschrittsanzeige zu präsentieren. Dieser Webcast liefert das Know-How und den Code für eigene Datei-Upload-Steuerelemente.

    Silverlight 2 - Tipps und Tricks (Teil 5 von 10) - Design-Time-und Debugger-Tricks

    In Silverlight sind einige praktische Features enthalten, die es Entwicklern ermöglichen, UI-Designern die Arbeit zu erleichtern. So können bereits in Blend Daten angezeigt werden, die eigentlich erst zur Laufzeit von Anwendungen verfügbar wären. Dieser Webcast demonstriert einige Features, die das Leben von Designern wesentlich angenehmer machen.

    Silverlight 2 - Tipps und Tricks (Teil 6 von 10) - Deep Zoom für Fortgeschrittene

    Der Deep Zoom Composer ist nur ein möglicher Weg, um 'Deep Zoom'-Bilder zu erzeugen. Dies geht auch auf "programmiertechnischem" Weg und völlig automatisierbar. Darüberhinaus kann relativ einfach auf den Inhalt des fertigen Deep Zooms zugegriffen und dieser manipuliert werden. Das nötige Know-How wird in diesem Webcast vermittelt.

    Silverlight 2 - Tipps und Tricks (Teil 7 von 10) - Comics

    Wer liebt sie nicht: Comics. Wie leicht es ist, aus statischen Zeichnungen kleine Comic-Stories zu bauen, wird in diesem Webcast verraten.

    Silverlight 2 - Tipps und Tricks (Teil 8 von 10) - Games

    Innerhalb dieses Webcast wird ein kleines aber feines Spiel in Silverlight erstellt. Mehr wird noch nicht verraten.

    Silverlight 2 - Tipps und Tricks (Teil 9 von 10) - Grafik-Trickkiste

    Dieser Webcast gibt einen Einblick in verschiedene grafische Tricks und wie man diese mit Silverlight umsetzen kann.

    Silverlight 2 - Tipps und Tricks (Teil 10 von 10) - Datenbank-Frontends

    Die Anbindung von Datenbanken an Silverlight-Frontends ist recht unkompliziert: Mittels Webservices oder ADO.NET Data Services lassen sich vollständige Datenbanken sehr einfach integrieren. Dieser Webcast baut ein Datenbank-Frontend basierend auf diesen beiden Zugriffsmöglichkeiten.

    Tools zur Silverlight 2-Entwicklung

    03.07.2009 09:04:41 | Oliver Scheer

    Visual Web Developer 2008 Express Edition

    Visual Web Developer 2008 Express Edition ist die kostenfreie Variante der Visual Studio Reihe und bringt alles mit was ein Webanwender benötigt. Neben der reinen HTML-Entwicklung, gibt es auch eine Vielzahl von Tools für CSS und dynamische Webseiten mit ASP.NET.

    image

    Kostenfreier Download: hier

    Visual Studio 2008 inkl. Service Pack 1

    Visual Studio 2008 gibt ist es in unterschiedlichen Ausbaustufen: Express, Standard, Professional und Team System. Je nach Szenario können verschiedene Varianten in Frage kommen. Arbeitet man im Team mit mehreren Personen, dann sollte man auf Team System zurückgreifen. Damit bekommt man neben der Quellcodeverwaltung auch ein vollständiges Application Lifecycle Management System (Stichwörter: Prozessmodelle, Automatische und manuelle Testverfahren, uvm.)

    image 

    Download der Testversion: hier

    Service Pack 1 für Visual Studio 2008: hier

    Expression Blend 2 inkl. Service Pack

    Expression Blend ist ein Werkzeug für Entwickler/Gestalter von reichhalten Oberflächen. Expression Blend ermöglicht das Erstellen von WPF (Windows Presentation Foundation) und Silverlight 1 Anwendungen.

    Damit man mit Expression Blend 2 Silverlight 2 Anwendungen erstellen kann, benötigt man das Service Pack 1 für Expression Blend 2.

    image

    Download der Testversion: hier

    Download des Service Packs: hier

    Visual Studio Tools für Silverlight 2

    Visual Studio 2008 kam vor Silverlight heraus. Daher sind erstmal keine Vorlagen für Silverlight in Visual Studio enthalten. Diese kann man allerdings kostenfrei nach installieren.

    Kostenfreier Download: hier (Wichtig: Richtige Sprache auswählen)

    Mehr Tools

    Deep Zoom Composer

    Der Deep Zoom Composer ist ein kostenfreies Tool, das es erlaubt Fotos mit Hilfe der Deep Zoom Technik von Silverlight aufzubereiten und in ein Silverlight-Projekt zu integrieren.

    image

    Kostenfreier Download: hier

    Silverlight Toolkit

    Das Silverlight Toolkit ist eine Sammlung von Controls, Komponenten und Hilfsmitteln, die von Microsoft nicht in den normalen Releasezyklus gepasst haben, oder noch nicht vollendet sind.

    Darin enthalten ist der vollständige Sourcecode, inkl. Unit-Tests.

    Die Testseite des Toolkits befindet sich hier für Silverlight 2.

    image

    Kostenfreier Download: hier

    MSDN Webcastserie zur pragmatischen Webarchitektur mit ASP.NET 3.5

    02.07.2009 23:00:54 | Peter Bucher

    Auf MSDN ist eine neue Ausgabe vom PWA (Pragmatic Web Architecture) von Patrick A. Lorenz erschienen, das ASP.NET 3.5 fokusiert.

    Ich finde das Konzept gut gelungen und die vorherige Ausgabe der Webcast-Serie (Aus dem Jahre 2006) war sehr gut gemacht. Darum empfehlen ich allen die sich für eine pragmatische Architektur mit ASP.NET interessieren, da reinzuschauen.

    Zitat:

    Grundkonzept von PWA ist eine dem Projekt angepasste, flexibel erweiterbare Architektur für Web-Applikation. Seit über sechs Jahren kommt PWA nicht nur bei der PGK sondern auch vielen anderen Unternehmen erfolgreich zum Einsatz. Bereits 2006 wurde das Konzept mit einer umfangreichen Webcast-Serie, Artikeln und Vorträgen vorgestellt. Mit .NET hat sich auch PWA über zeit verändert. Die neue Webcast-Serie stellt PWA basierend auf ASP.NET 3.5 SP 1 und mit einer neuen Beispielapplikation vor.

    Die Webcasts und Quelltexte können direkt von der Firmen-Webseite von Patrick heruntergeladen werden.

    VSTestHost.exe has stopped working

    02.07.2009 19:52:00 | Peter Bucher

    Wenn MSTest als UnitTest-Framework benutzt wird, kann unter Umständen folgende Meldung beim Ausführen der Tests auftreten:

    VSTestHost.exe has stopped working

    Wie man auf englischen Blogs (und witzigerweise auf StackOverflow.com ;-)) lesen kann, liegt das in den meisten Fällen daran das ein Test eine StackOverflowException auslöst die durch eine
    Endlosrekursion ausgelöst wird.

    Sowas bspw.:


    [TestMethod]
    public void BrokenTest()
    {
        Test();
    }

    private void Test()
    {
        Test();
    }

    Natürlich ist der Fehler in den meisten Fällen nicht so einfach sichtbar.
    Bei den Testergebnissen, mit der Erkenntnis was man zuletzt geändert hat und mit dem Versuch die einzelnen Tests auszuführen
    und zu schauen ob ein Fehler kommt, kann man den Fehler finden.

    back to basics: Nullable

    02.07.2009 11:30:00 | Martin Hey

    Der heutige btb-Post handelt soll sich etwas intensiver mit dem Thema "nullable value types" beschäftigen:

    Das .NET-Framework unterscheidet zwischen 2 verschiedenen Arten von Typen - Wertetypen und Referenztypen. Während Referenztypen null werden, wenn ihnen kein Objekt zugewiesen wurde, haben Wertetypen diese Fähigkeit nicht. Diese werden bei ihrer Initialisierung direkt mit einem Wert belegt - false bei System.Boolean oder 0 bei System.Int32. Besonders bei der Arbeit mit Datenbanken - wo ein NULL (oder in .NET-Sprache DBNull) für einen nicht gesetzen Wert bei jeder Art von Typ exisitiert, kamen Entwickler immer wieder in Schwierigkeiten: Welcher Wert soll Null repräsentieren - ist es der Standard- der Minimal- oder der Maximalwert? Und was ist wenn dieser Wert mal wirklich ein gültiger Wert ist? Es ist also durchaus notwendig zwischen "0 weil nicht gesetzt" und "0 weil 0 gesetzt wurde" zu unterscheiden. Aus dieser Notwendigkeit heraus wurde die Struktur Nullable<T> geboren. Diese Struktur kann den zugrundeliegenden Wertetypen und ebenso auch Null-Werte beinhalten. Zur Arbeit mit dieser Struktur stehen 2 grundlegende Eigenschaften zur Verfügung: HasValue gibt zurück, ob ein Wert gesetzt wurde (true) oder ob null gespeichert ist (false); Value gibt den gespeicherten Wert zurück oder wirft eine InvalidOperationException, falls versucht wird auf Value zuzugreifen und null vorliegt.

    Die Deklaration ist recht einfach - entweder man deklariert eine Nullable<T>-Struktur oder man verwendet den ?-Zugriffsmodifizierer:
    Nullable<int> a;
    int? b;

    Ebenso einfach ist der Umgang mit Nullable<T>:
    int? a = null;
    if (a.HasValue)
    {
     Console.WriteLine("Wert: {0}", a.Value);
    }
    else
    {
     Console.WriteLine("kein Wert");
    }

    Natürlich können auch direkte Vergleiche mit null durchgeführt werden:
    bool? a = null;
    // returns the value of a or false if set to null
    bool b = (a ?? false);
    // returns whether a is null or not
    bool c = (a == null);

    Webseiten melden und gewinnen: Microsoft "Besserweb"-Initiative fuer Webstandards

    02.07.2009 09:40:31 | Kay Giza

    Ich wollte auf eine Aktion aufmerksam machen, bei der man nicht nur tolle Preise gewinnen kann, sondern auch noch etwas für seine eigen Webseite tun kann.
    Denn: Besser für alle ist ein Web, das auf Standards basiert.

    Das wollen wir von der Developer Platform and Strategy Group der Microsoft Deutschland GmbH unterstützen. Und Ihr könnt uns dabei helfen. Indem Ihr uns Webseiten mitteilen, die in der Internet Explorer 8-Standardansicht nicht korrekt angezeigt werden oder nicht funktionieren. Wir kümmern uns darum.

    Jetzt mitmachen!
    1) Seite einreichen » und tolle Preise gewinnen
    2) Kurzfristig die eigene Seite kompatibel machen
    3) Informieren: Was können Entwickler langfristig tun?
    Jetzt Seite einreichen und tolle Preise gewinnen!

    Weiterführende Links: Folge uns auf TwitterFolge uns auf Twitter | Bisher gemeldete Webseiten und TOP-Teilnehmer | MSDN Internet Explorer Developer Center



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

    Primärschlüssel: GUID vs Identity

    01.07.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. Juli 2009, ist es nun wieder so weit, und unser Thema für diesen Monat lautet:

    Primärschlüssel: GUID vs Identity

    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:

    In letzter Zeit scheint es immer mehr aufzukommen, GUIDs anstelle von Integers als Primärschlüssel zu benutzen.
    Dieser Blogeintrag soll bei der Entscheidung helfen, die mir bekannten und recherchierten Vor- und Nachteile hervorheben und meine persönliche Meinung kundgeben.

    Kurz und schmerzlos Vor- und Nachteile:

    Guid Vorteile:

    • Der Schlüssel kann unabhängig vom Datenbanksystems vergeben werden.
    • Einzigartigkeit des Schlüssels über jede Tabelle, Datenbank und sogar Server gewährleistet.
    • Das Zusammenführen von Datenbanken ist ohne Änderung der IDs einfach möglich.
    • Unbegrenzte Anzahl an IDs, keine Beschränkung auf den Datentyp wie bspw. int.

    Guid Nachteile:

    • Braucht 4 Mal mehr Platz als ein Integer.
    • Dadurch und je nach Aufgabe und Server kann die Performance der Datenbank leiden.
    • Schlecht lesbar und zu merken, bspw. auffallend beim Debugging.
    • Keine nachvollziehbare, chronologische Reihenfolge der IDs.
    • Nicht von allen Plattformen nativ unterstützt.

    Identity Vorteile:

    • 4 Mal geringerer Platzbedarf als eine Guid.
    • Kann je nach Situation eine bessere Performance im Gegensatz zu Guids liefern.
    • Gut lesbar und zu merken.
    • Chronologische Reihenfolge der IDs.

    Identity Nachteile:

    • Der Schlüssel kann nur vom Datenbanksystem vergeben werden.
    • Einzigartigkeit der Schlüssel ist nur innerhalb einer Tabelle gewährleistet, was beim Zusammenführen von Datenbanken unweigerlich zu Problemen führt.
    • Durch Datentyp begrenzte Anzahl von verfügbaren Schlüsseln für eine Tabelle.
    • Durch Löschen von Datensätzen oder RollBacks entstehen Lücken zwischen den sonst chronologischen IDs.

    Mit der Nutzung von GUIDs ist es möglich den / die Schlüssel unabhängig vom Datenbanksystem zu vergeben, das ist bspw. nützlich bei Anwendungen die auch im Offline-Modus laufen können.

    Wenn mehrere Tabellen mit Identity-Schlüsseln zusammengeführt werden, müssen die IDs zwangsläufig ändern, da sie nur innerhalb einer Tabelle einzigartig sind. Das führt beispielsweise dazu das Links oder irgendwelche gespeicherten Lesezeichen innerhalb einer Applikation nicht mehr gültig sind.

    Ein interessanter Vorteil beim verwenden von GUIDs lässt sich aus der Tatsache erzielen, das die IDs auf über mehrere Tabellen (Auch Datenbanken und Server) einzigartig sind.
    Dadurch ist es bspw. möglich eine Tabelle anzulegen, die Zusatzdaten wie bspw. für die Lokalisierung enthält, die auf jede unserer anderer Tabellen zutreffen könnten.
    Die Tabelle hat eine Primärschlüssel-Spalte und eine GUID-Spalte als Fremdschlüssel auf einen Datensatz irgend einer Tabelle.
    Bei einer Abfrage oder dem Speichern brauchen wir nur die GUID des aktuellen Datensatzes und keine Zusätzlichen Angaben mehr, wie bspw. den die Tabelle zu dem der Datensatz gehört, da es eben nicht Nummern sind die auch in anderen Tabellen vorkommen können.

    Für kleine Anwendungen, bspw. im Zusammenspiel von XML als Datenquelle nutze ich immer GUIDs. Die Verwaltung von Identity-Schlüsseln wäre mir da zu aufwändig und dessen Vorteile benötige ich dort gar nicht.
    Bei bestehenden Projekten an denen ich mitarbeite wird meistens Identity als Schlüssel verwendet, ausser man benötigt einer der Vorteile von GUIDs.

    Ich schimpfe mich bewusst nicht zum Experten was Datenbanken angeht und bin daher gespannt auf die Meinungen aus der Community und von Golo.

    Silverlight im Auto

    01.07.2009 08:20:14 | Kay Giza

    OK - das ist wirklich eine interessante Fragestellung fällt mir gerade auf. Gibt es sowas? Wie dem auch sei, ich könnte mir insbesondere beim Thema "Fehlerbehebung" oder "Fehlersuche" in einem Auto sehr gut vorstellen, dass man hier etwas mit DeepZoom, Silverlight und Co. machen könnte. Z.B. so etwas wie: Du musst Stecker A auf B stecken um Stecker C dann anschließend in die Buchse D einzuführen. Dabei ziehe Klappe 124 heraus und achte darauf, Steckverbindung 27C nicht zu berühren. Man kennt doch diese Bücher: "So wird's gemacht"-Bücher
    Ich könnte mir sehr gut vorstellen, dass man hier ansetzen könnte, oder?

    Wie bin ich darauf gekommen, ich habe mir Seiten wie Audi A4 allroad: Zoomen Sie sich rein, BMW Z4: Zoomen Sie sich rein! oder den Mazda Konfigurator angeschaut.
    Dann bin ich ein wenig gesurft und habe geschaut, gibt es so etwas überhaupt schon - so eine interaktive zooooming Fehleranleitung in Autos integriert? Gefunden habe ich nichts, aber wenn man sich mal Damirs Blogposting 'Introducing SILVERHD' liest man, welche Möglichkeiten es hier überhaupt gibt. Interessant nebenher gesagt ist, dass man nicht nur auf http://silverhd.net ein bzw. mehrere interessante Anwendungsbeispiele findet, wer den Twitter-Account SilverHDNet verfolgt, findet die eine oder andere interessante Idee - ist sehr dynamisch der Twitter-Account, wie ich finde.

    Viele Ideen :-) - da lässt sich was machen!

    Weiterführende Links:



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

    Regeln | Impressum