.
Anmeldung | Registrieren | Hilfe

.NET-Blogs Archiv Dezember 2009

DI / IoC mit LightCore

31.12.2009 17:00:00 | Jürgen Gutsch

Was für Peter Bucher vor Monaten als Einstieg in TDD begonnen hatte, ist inzwischen ein Framework für Dependency Injection und Inversion of Control geworden.

Entstanden ist das kleine, feine uns super schnelle LightCore :-)

Ich selber nutze LightCore schon seit dem ersten Beta-Status in einem eigenem Projekt und bin bereits dabei LightCore in die Website des .NET-Stammtisch Konstanz-Kreuzlingen (http://dotnetkk.codeplex.com/) einzubinden.

Die Features von LightCore können hier angeschaut werden:
http://lightcore.peterbucher.ch/features.aspx

Der Download der aktuellen Version per SVN ist hier beschrieben:
http://lightcore.peterbucher.ch/download.aspx

DotNetKicks-DE Image

LINQ und LINQ to SQL

30.12.2009 14:28:00 | Jürgen Gutsch

Neulich erhielt ich eine E-Mail mit einigen Fragen zur Verwendung von “LINQ to SQL” in n-Tier-Applikationen, die ich hier anonymisiert beantworten möchte:

Wie sieht Microsoft beim Einsatz von “LINQ to SQL” die Machbarkeit von n-Tier-Applikationen, die über eine separate Datenzugriffsschicht verfügen?

Da ich nicht Microsoft bin und auch kein offizielles Statement von Microsoft zu dieser Problematik kenne, kann ich diese Frage so nicht beantworten. Ich kann nur sagen, dass es Beispiel-Applikationen von Microsoft gibt, in denen durchaus “LINQ to SQL” innerhalb der Datenzugriffsschicht eingesetzt wird.

Wenn ich das richtig sehe, krankt “LINQ to SQL” bei seiner Nutzung mit .NET daran, dass ich bei der Nutzung aller automatisch generierten Objekte auf allen Ebenen der Anwendung einen Verweis auf “LINQ to SQL” benötige, oder?

Wenn man die automatisch generierten Objekte in der ganzen Applikation nutzen möchte, ist das sicher so. Aufgrund von der Austauschbarkeit der Datenzugriffsschicht würde ich allerdings empfehlen diese automatisch generierten Objekte nicht über alle Schichten hinweg zu verwenden, sondern “LINQ to SQL” komplett in der Datenzugriffsschicht zu kapseln.

Oder ich führe eine (aufwändig zu implementierende) Mapping-Schicht ein, in der ich die “LINQ to SQL”-generierten Datenklassen in anwendungsinterne Objekte übersetze.

Das wäre eine Möglichkeit, aber aus meiner Sicht nicht empfehlenswert. Ich würde bei einer klassischen 3-Schicht-Architektur eine vierte parallele vertikale Schicht einbinden, welche die Datenobjekte enthält die über alle Schichten hinweg zur Verfügung stehen sollen.

Die Datenzugriffsschicht ist dann verantwortlich für das bereitstellen der Daten und das Mappen der Daten in die Datenobjekte der vierten parallelen vertikalen Schicht.

Für den Fall, dass mal per “LINQ to XML” auf eine XML-Datenbasis zugegriffen werden soll, muss so nur die Datenzugriffsschicht ausgetauscht werden.

Auch wenn ich Benutzeroberfläche (Grids, etc.) an “LINQ to SQL”-Results binden möchte, habe ich das Problem, dass ich damit ja die Datenlogik in die GUI ziehe, und damit die eigentlich unterste mit der eigentlich obersten Schicht verbinde...?

Auch das ist ein Grund für die oben beschriebene parallele vertikale Anwendungsschicht. “LINQ to SQL” ist auf diese Art komplett von den anderen Schichten entkoppelt und die Datenzugriffsschicht liefert nur die gewünschten Objekte.

DotNetKicks-DE Image

TeamSpeak 3 Sidebar Gadget für Windows Vista und Windows 7

28.12.2009 21:51:00 | Andreas Mehl

I have programmed a Sidebar Gadget for TeamSpeak v.3 and v.2.

It can be changed in a small gadget block or a big one. real easy to do.

 

Screenshots can be found here: Screenshots


Configuration as follows:

under Settings insert the TeamSpeak Viewer ID or the server informations

Download Sidebar Gadget Teamspeak 3

Consuming .NET Webservice by Javascript

25.12.2009 13:56:00 | Andreas Mehl

I have a webService service.asmx and I would like to call and consum this webservice using XMLHttpRequest and SOAP. The thing why I would like to do this is that I have hosted a client gadget application which is accessing the webservice perfectly.

Calling the Service from javascript:

intvar req = new ActiveXObject("Microsoft.XMLHTTP");
if (req) {
    req.onreadystatechange = function() {
        if (req.readyState == 4) // 4 = "loaded"
        {
            if (req.status == 200) // 200 = OK
            {
                // XML Struktur
                var xmldata = req.responseXML;
                // Erstes Tag holen
                var FirstTag = xmldata.getElementsByTagName('Donation');
                // Vom ersten Tag die Subtags ziehen
                var SubstringTags = FirstTag[0].getElementsByTagName('string');
                // Alle subtags durchgehen und dessen Inhalt in variablen speichern
                for (i = 0; i < SubstringTags.length; i++) {
                    // Hier wird der Text aus dem string Tag gelesen
                    Array.push(SubstringTags[i].text);
                }
               
                // Anderes Tag aus der XML Struktur holen
                // Wichtig ist hier, das der Knoten Wert ausgelesen wird
                header = xmldata.getElementsByTagName('Header')[0].firstChild.nodeValue;
            }
            else {
                showError("Problem retrieving XML data");
            }
        }
    }
    req.open("GET", "service.asmx", true);
    req.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
    req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    req.send(null);

Frohe Weihnachten 2009 und ein erfolgreiches Jahr 2010!

24.12.2009 17:01:58 | Kay Giza

Jetzt kommt die Zeit, um das Jahr 2009 langsam ausklingen zu lassen. Die Weihnachtsfeiertage und das Jahr 2010 stehen vor der Tür. In diesem Jahr gab es sehr viel zu berichten und selbstverständlich viel zu bloggen und ich möchte mich bei Ihnen für Ihr beständiges Interesse bedanken. Natürlich findet man in dieser ruhigen Zeit auch einige Minuten, um auf das Jahr 2009 zurückzublicken. Nutzen Sie dafür z.B. das... [lesen Sie den vollständigen Artikel auf Giza-Blog.de inkl. Videos]

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-2010 Kay Giza. All rights reserved. Legal
Subscribe

Kostenloses Kopierprogramm RoboCopy von Microsoft

24.12.2009 14:56:15 | Kay Giza

Dieses Posting soll das Programm "Robocopy" von Microsoft vorstellen, eine Übersicht über die Funktionen und Parameter geben und dient mir selber (und ich hoffe Ihnen dann auch :-)) als schnelle Nachschlagequelle. Robocopy ist ein sehr leistungsfähiges Kopierprogramm, das zum Umfang von Windows Vista, Windows 7, Windows Server 2008 R2 oder auch dem Microsoft Windows Server® 2003 Resource Kit Tools gehört. Robocopy kopiert standardmäßig Dateidaten für jede Datei, die älter bzw. neuer ist oder verändert wurde oder Sie können beispielsweise ganze Verzeichnisse spiegeln, auf Änderungen überwachen und synchronisieren lassen. Mit der Robocopy.exe sind sehr komplexe Kopieraufgaben und Dateireplizierungsaufgaben möglich. Unter Windows 7 / Windows Server 2008 kann die immer nützliche Robocopy.exe nun auch multithreaded ausgeführt werden um schnellere und mehrfach gleichzeitige Dateioperationen zu erhalten. In diesem ausführlichen Blog-Artikel finden Sie die komplette Befehlszeilen-Referenz, Tipps und Hinweise sowie Downloads mehrerer grafischen Benutzeroberflächen für Robocopy... [... mehr in diesem ausführlichen Blogeintrag von 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-2010 Kay Giza. All rights reserved. Legal
Subscribe

MSDN Webcast: MSDN Hotline FAQ (2) - Windows Presentation Foundation (WPF)

24.12.2009 10:08:24 | Kay Giza

Ich freue mich hier den 2. Teil unseres neuen Service der MSDN Hotline ankündigen zu dürfen!
Auch im Rahmen von Webcasts beantworten künftig die Experten der MSDN Hotline häufig gestellte Fragen, die dort per Telefon oder Messenger auflaufen. Premiere hatte unserer neue Service mit einem ersten Online-Referat zum Thema "C++ Standard Template Library". Die Kolleginnen und Kollegen der MSDN Hotline verfassen auch täglich die Antworten der am häufigst gestellten Fragen und bereiten Sie im MSDN Forum 'Aus der MSDN Hotline- Häufig gestellte Fragen und deren Antworten' auf.

Es steht jetzt der 2. Webcast kostenlos zur Verfügung: MSDN Webcast: MSDN Hotline FAQ (2) - Windows Presentation Foundation
Dieser Webcast thematisiert drei Problemstellungen im Zusammenhang mit der Windows Presentation Foundation (WPF): Die Vererbung für Window-Elemente, Styles sowie das Element-to-Element DataBinding. Anhand vollständiger und ausführlicher Beispiele wird auch die praktische Anwendung in einem Programm gezeigt.



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-2010 Kay Giza. All rights reserved. Legal
Subscribe

Imagine Cup 2010 - Microsoft spendet an 3 Hilfsprojekte - und jede/r kann mitmachen!

23.12.2009 04:08:58 | Kay Giza

Eine sehr schöne Sache habe ich heute mitbekommen :-) - die ich mit diesem Blogeintrag gerne unterstützen möchte.

Nicht nur mit der Teilnahme am Imagine Cup 2010 und den Ideen, wie man mit Software die großen Probleme dieser Welt lösen kann, sondern auch schon mit der persönlichen Registrierung kann man Gutes tun!
Microsoft spendet für jede Registrierung, die über offizielle Imagine Cup 2010 Spenden-Webseite eingeht 1,- € an eines der drei dort beschriebenen Hilfsprojekte. Unabhängig von der Anzahl Eurer Registrierung unterstützt Microsoft jedes der vorgestellten Projekt mit einer Spende von mindestens 250,- €.


Der Imagine Cup ist der weltweit größte Technologiewettbewerb für Schüler und Studierende, der in diesem Jahr in fünf verschiedenen Kategorien ausgetragen wird:
Von Softwareprogrammierung über Filme drehen ist für jeden eine Kategorie dabei. Der Wettbewerb steht unter dem Motto: „Technologie für eine bessere Welt“ und orientiert sich dabei an den UN Millenniumszielen. Mehr Informationen zum Imagine Cup: www.imaginecup.de  

Apropos Imagine Cup, das Finale in der Kategorie Embedded findet erstmalig in Deutschland statt!
Erstmalig in der Geschichte des Imagine Cups wird es ein lokales Finale in der Kategorie Embedded Development geben. Schüler und Studierende sind eingeladen, ihrer Kreativität und ihren Ideen freien Lauf zu lassen:
Wie kann ein Embedded Device dazu beitragen, die Probleme dieser Welt lösen? Bildung, Armut, Gesundheit und Umwelt sind nur 4 der insgesamt 8 UN Millenniumsziele, an denen sich die Projekte orientieren sollen.
Abgabefrist für die Projektmappe ist der 15.02.2010. Das nationale Finale findet dann im April gemeinsam mit der Vorausscheidung in der Kategorie Software Design statt. Das nationale Gewinnerteam fährt dann im Juli 2010 zum internationalen Finale nach Polen, wo es gegen Teams aus der ganzen Welt antritt!

Toi toi toi... sowie vielen Dank für die Unterstützung der Spenden durch jede Registrierung!



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-2010 Kay Giza. All rights reserved. Legal
Subscribe

How to Install Windows Service

22.12.2009 21:51:00 | Andreas Mehl

Creating the solution

To create the solution, use "File." "New." and select "Blank Solution. from the Visual Studio development environment. For this example, call the solution "ServiceSolution".

All related projects (especially those that will be part of a installation, should become a project within the root solution. This keeps all inter-project dependencies relative to one another an simplifies the process if another developer decides to use a working folder.

The next step is to create two new projects as part of this solution the service application and the installation package. Right click on the solution within the Solution Explorer and select "Add." and the "New Project." from the Visual C# projects folder, choose "Window Service". Name the project "TestService". The resulting project should now be in design mode and ready to add the installation components.

The C# source file "Service1" and the class name "Service1" are added to the project; replace all occurrences of "Service1" with "TestService", including the string used to name the service in the InitializeComponent() method.

In the design view, right click and select "Add Installer" from the context menu. A new source file "ProjectInstaller.cs" with the class named "ProjectInstaller" will be added to the project. Two component will also be added to your project with the default name "serviceInstaller1" and "serviceProcessInstaller1". These component use the .NET framework to handle the registry key setup and installation of the service. You can opt to change the names of these components, but for this example keep them the same.

Service properties

In the design view, you can select the "serviceProcessInstaller1 component and modify its properties. For the "account" property, you can choose the type of account this service will use. For a use account, a name and password can be supplied in the code, but this should not be done. For production services, the service type should typically be user and then the name and password set to 'null'. A installation time, the production support personnel will be prompted to enter the name and password for the account under which the service will run. Be sure to specify what resources will be required by the application so that the account's permissions may be set appropriately.

Next, select the "serviceInstaller1" component in the design view. In the properties window, the name property should be set to "TestService which is the name of the class we chose for our service. You only need to change this property if you want the Service Control Manager to recognize your service with a different name.

In the "ServicesDependedOn" property, add the service name (as shown in the Service Control Manager) of any other dependent services that you service requires. This can be other services such as Microsoft Message Queuing, IIS, etc.

For the "DisplayName" property, choose a short friendly name that is displayed when the services are listed in the control panel. For our service, we'll use "Test Service" (with a space).

Adding a description


You'll note that there is no description property available for the service through any of the components. In order to add a useful description to the service that can be read by anyone, some code will need to be added to the "ProjectInstaller" class that was created.

The service is now ready to be developed in accordance to the service specification; prior to development, however, we can create the installation package along with the custom steps required to install the product.

MSI Package setup

The final step of the exercise is to create the MSI installation package that will be used to install our test service. From the Solution Explorer, right click on the "ServiceSolution" and choose "Add." then "New Project." from the context menu. From the "Setup and Deployment Projects" folder, select "Setup Project" and then name it TestServiceInstall".

Instead of focusing on the various properties for the installation, instead we will just go through the steps required to install the service application and then execute the service installation components that will occur when the MSI is deployed.

With the "TestServiceInstall" project selected in the Solution Explorer, you should see icons appear over the project folders. Select the first icon which is the "File System" installation folders. Right click on the "Application Folder" in the project pane and select "Add." and "Project Output." from the context menus.

Make sure that the "TestService" project is selected in the project drop-down and then click on "Primary Output" in the list box. Keep the "Configuration" dropdown to "(Active)". This will allow the installation project to use the appropriate output for either a debug or release build depending upon which you choose to create for the installation. (Debug builds are useful for development/stage environment deployment in some testing situations.)

The fifth icon on the top is the "Custom Actions" editor. Custom actions can be callbacks in code (in this case, they are part of the "ProcessInstaller" class that was created for us). We need to associate the "primary" output of our application to each of the custom installation steps.

To do this in one fell swoop, click the "Custom Actions" icon to show the actions view. There are several folders with the names "Install", "Commit", "Rollback" and "Uninstall". Right click on the top level "Custom Actions" node and select "Custom Action."

In the next dialog, open the dropdown and select "Application Folder". You should now see the "Primary output from TestService (Active)" in the list view, as this is where we added our project's output. Select this item in the list and choose "OK". The primary output for the service will now be associated with all of the custom actions and the service installer classes that were added to the project will now be called to perform the various installation steps when the MSI package is deployed.

Testing

We are now ready to create the installation package and see the results of the service installation. Right click on the "TestServiceInstall" project and choose "Build" from the context menu.

When the "TestServiceInstall.msi" file is created, navigate to the output folder where it was placed and double click on it to perform the installation. The other installation properties (such as the splash screen display name, copyright information, other dependencies, etc.) can be added as needed as this is only a test project.

When installing, choose "Everyone" for the installation and continue to click next. You will eventually be prompted with the dialog to enter your login name and credentials. You can use your network logon for testing purposes. When installation is complete, use the Administrative Tools to view the installed service applications. You should see the "Test Service" along with its description and the credentials used by the service application.

After closing the services window, use the "Add/Remove Programs" functionality from the Control Panel to uninstall the service and it should no longer appear in list of available services.

Web-Slice gewinnt Eysa-Wettbewerb

21.12.2009 17:01:00 | dotnet-kicks.de Blog

Unsere Community-Seite hatte ebenfalls beim Wettbewerb “Empower Your Site” mitgemacht, dem Internet Explorer Add-On Web-Bewerb von Microsoft. Dabei hat der Webslice von .NET-Kicks, der die jeweils aktuellen Artikel anzeigt, den dritten Platz gemacht.

Was ist ein Web-Slice?

Web-Slices erlauben es den Benutzern, bestimmte Bereiche einer Website zu abonieren und so über bestimmte Teil-Informationen immer auf dem neuesten Stand zu bleiben. Die Webslices werden ähnlich wie RSS-Feeds aboniert und tauchen anschließend in der Link-Leiste des Internet Explorers auf. Bei .NET-Kicks hat man so neu veröffentlichte Artikel sofort im Blick und bleibt so auf dem Laufenden.

Schön und gut, aber wo kriege ich den jetzt her?

Ganz einfach über das Tastenkürzel ALT +J oder direkt über den grün werdenden RSS-Button in der Button-Leiste des Internet Explorers, wenn man auf die Seite von .NET-Kicks geht. Hier könnt ihr sowohl die zur Verfügung stehenden RSS-Feeds auswählen (orangenes Icon) oder aber auch die Web-Slices (grünes Icon).

.NET-Kicks Web-Slice


kick it on dotnet-kicks.de

Interop? Kuckst du hier! interoperabilitybridges.com

21.12.2009 13:17:59 | Jan Schenk



tweetmeme_url = 'http://blogs.msdn.com/jansche/archive/2009/12/21/interop-kuckst-du-hier-interoperabilitybridges-com.aspx'; tweetmeme_source = 'jansche';

Eine großartige Seite, die ich an dieser Stelle gerne featuren (neusprech: fiedschan) würde, ist http://www.interoperabilitybridges.com. Hier werden all die schönen Dinge vorgestellt, die für das Brückenbauen zwischen Microsoft- und Nicht-Microsoft-Technologien notwendig sind.

image

Ob Eclipse, PHP, oder  .NET Framework, Java, Ruby oder C, hier findet man alles, was es zum Thema Interop zu sagen gibt. PHP mit ADO.NET? Kein Problem, dafür steht ein Toolkit bereit. Oder doch lieber Windows Azure AppFabric mit Java? Null Problemo. Oh du wolltest es mit Ruby machen? Here you go.

Ich mach mich jetzt mal dran, ein bisschen zu schmökern und zu stöbern. Und wenn es bei euch um Interoperabilität geht, solltet ihr das wahrscheinlich auch mal ausprobieren:
http://www.interoperabilitybridges.com/

jan

TFS 2010 Power Tool verfügbar

21.12.2009 11:20:11 | Christian Binder

Brian Harry hat auf seinem Blog alles zusammengefasst, also für alle die schon gewartet haben, es aber noch nicht mitbekommen haben.

Infos zur Pre-Release gibt’s hier.

Und diesem Sinn wünsche ich Euch eine schöne Weihnachten und ein Guten Rutsch :-)

Chris

 

PS: Das mit dem Rutschen nicht so wörtlich nehmen, bin meinem Kleinwagen kurz mit der Felge an den Bordstein gekommen = 3000Euro
Da musste ich meiner Tochter kurz erklären, dass das Christkind sich den Fuss gebrochen hat und daher Weihnachten dieses Jahr ausfällt…. just kidding :-)

Giza-Blog.de Internet Explorer 8 Center [IE8]

18.12.2009 19:12:14 | Kay Giza

In meinem Blogposting 'Add-Ons und Tools für die Webentwicklung mit IE8' schrieb ich: "...Soweit so gut erst mal, mal schauen, wie ich die ganzen Notizen und Fragen sowie Hinweise aufarbeite..." Herausgekommen ist mein Giza-Blog.de Internet Explorer 8-Center. Auf dieser Übersichtsseite finden Sie neben dem Internet Explorer 8 an sich auch weitere Software mit der Sie den neuen Browser anpassen und gestalten können sowie zahlreiche Know-how Beiträge, Infofilme und Trainings rund um den Internet Explorer und das Thema Webentwicklung. Ich habe mir... [... vollständigen Blogeintrag inkl. Screenshots und Links 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-2010 Kay Giza. All rights reserved. Legal
Subscribe

Windows 7: Frequently Asked Questions (FAQ) rund um die Entwicklung fuer Windows 7

18.12.2009 18:14:55 | Kay Giza

Im MSDN Forum 'Kompatibilität von Anwendungen', wo Sie Fragen zum Testen der Anwendungskompatibilität stellen können, allgemeine Fragen zur Anwendungskompatibilität diskutieren und Erfahrungen zur Programmierung Windows-basierter Anwendungen austauschen können, haben wir heute ganz frisch eine FAQ veröffentlicht.

In diesem heute veröffentlichten MSDN Forum-Thread hat das Team von MSDN Online für Sie Frequently Asked Questions (FAQ) rund um die Entwicklung für Windows 7 zusammengestellt. Diese sehr umfangreiche Sammlung von Fragen und Antworten erhebt keinen Anspruch auf Vollständigkeit, sondern versucht wichtige Fragen zur Anwendungskompatibilität bei Windows 7 zu erläutern und Ihnen die Suche nach Antworten und tiefergehenden Wissensquellen zu erleichtern. Schwerpunkte dieser FAQs sind folgenden Themen:

Zusätzlich finden Sie unter dem Punkt "Weitere Informationen" eine Reihe von Links zu den Windows 7-Angeboten auf MSDN Online. Sollten Ihnen Themen fehlen oder Sie noch offene Fragen zu diesen Teilbereichen der Entwicklung für Windows 7 haben, posten Sie diese einfach als Antwort auf diesen Thread. Wir bemühen uns daraufhin, die FAQs entsprechend zu ergänzen. Zusätzlich zu den deutschen FAQs können Sie auch einen Blick in die Windows 7 FAQs im englischsprachigen MSDN-Forum werfen.

Hier geht es zur FAQ: Windows 7 Anwendungskompatibilität: Freqently Asked Questions



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-2010 Kay Giza. All rights reserved. Legal
Subscribe

Windows 7: Schnellstartleiste / Quick Launch wie unter Vista / XP wiederherstellen

18.12.2009 18:13:32 | Kay Giza

Vor einigen Tagen wurde ich gefragt, ob es unter Windows 7 auch die von früheren Versionen bekannte Schnellstartleiste in der Taskleiste gibt? Die Schnellstartleiste ist auch unter Windows 7 verfügbar, wobei ich jedoch deren Einsatz nicht empfehlen möchte. Nicht nur dass Sie mit der alten Schnellstartleiste auf erheblich kleiner Icons zurückgreifen müssen, nein auch die neue Bedienbarkeit der neuen Taskleiste geht Ihnen verloren (wie z.B.: Schnelle Vorschau mit Peek, Größere und eindeutigere Symbole, Schneller Zugriff auf Ihre Programme, Schneller Zugriff mit Sprunglisten, Popup-Zusammenfassung, etc.), sondern Sie können dann auch bei neueren Programmen nicht die volle Funktionsvielfalt ausnutzen, die Entwicklern Ihnen mit der "Taskleisten-API" bereitstellen können (Entwickler bitte hier klicken: Windows 7 Taskbar- Developer Resources). Kommen wir aber zurück zu der Frage, ob es die "alte" Schnellstartleiste unter Windows 7 dennoch gibt bzw. ob Sie vorhanden ist: Das ist sie! Sie aktivieren Sie die die Schnellstartleiste: Klicken Sie unter Windows 7... [... vollständige Anleitung 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-2010 Kay Giza. All rights reserved. Legal
Subscribe

Microsoft Academic Relations mit neu gestalteter Website fuer Studenten

18.12.2009 18:10:17 | Kay Giza

Seine Website komplett überarbeitet diese Tage hat das deutsche Academic Relations Team von Microsoft zusammen mit dem MSDN Online-Team.
Herausgekommen ist „DreamSpark – das Portal für Technik begeisterte Studenten“. Unter „www.microsoft.de/dreamspark“ gibt’s zum Start Interviews mit Achim Berg, dem Geschäftsführer von Microsoft Deutschland, mit "Windows 7"-Chefentwickler Jon deVaan und Stephen Elop, dem Präsidenten der Microsoft Business Division.
Außerdem dabei: Infos zum nächsten Imagine Cup Wettbewerb und ein Screencast zur „Azure Services Plattform“. Künftig sollen auf dem neuen Portal jeden Monat neue Videos, Nachrichten und Termine zu Themen rund um Technologie, Studium, Downloads und Karriere veröffentlicht werden.

Im gleichem Atemzuge wurde auch ein Forum eingerichtet: DreamSpark-Forum
Hier finden Sie aktuelle Nachrichten, Informationen und Ankündigungen rund um DreamSpark, Microsoft Student Partners, Imagine Cup, IT Academy-Programm, MSDN Academic Alliance und alles Interessante für Studenten.



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-2010 Kay Giza. All rights reserved. Legal
Subscribe

MSDN Online Telefon-Hotline macht Weihnachtspause

18.12.2009 18:09:01 | Kay Giza

Über den Jahreswechsel verabschiedet sich die kostenfrei nutzbare MSDN Hotline für MSDN Online für ein paar Tage in den verdienten Kurzurlaub. Wenn’s also Dinge rund um MSDN gibt, die Sie schon immer wissen wollten, aber nie zu fragen wagten: entweder gleich zum Hörer bzw. zur Tastatur greifen oder gut merken – ab 7. Januar 2010 sind die Kolleginnen und Kollegen telefonisch oder per Windows-Messenger wieder für Sie da. Bis zur Weihnachtspause steht Ihnen die Hotline noch bis einschließlich 23. Dezember 2009 in gewohntem Umfang kostenlos zur Verfügung: MSDN Hotline macht Pause

Im MSDN Forum 'Aus der MSDN Hotline: Häufig gestellte Fragen und deren Antworten' bereiten die Kolleginnen und Kollegen der Hotline seit geraumer Zeit immer wiederkehrende Frage oder aktuelle Geschehnisse auf. Aktuell sind dort bereits schon über 210 FAQs oder auch "Wiederkehrende Fragen und deren Antworten" gelistet. Werfen Sie doch mal über die ruhigen Weihnachtsfeiertage und dem Jahreswechsel einen Blick in die Frage & Antwort-Sammlung.

MSDN Hotline: Schnelle & kompetente Hilfe für Entwickler: kostenfrei!



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-2010 Kay Giza. All rights reserved. Legal
Subscribe

Verlaengerte Betaphase fuer Visual Studio 2010 – Release Candidate (RC) im Februar 2010

18.12.2009 18:04:57 | Kay Giza

Seit Oktober ist Beta 2 von Visual Studio 2010 frei verfügbar und wurde bisher von einigen Hunderttausenden Entwicklern weltweit herunter geladen und getestet. Seitdem haben wir eine Unmenge an konstruktivem Feedback erhalten – vielen Dank dafür an alle Tester der Beta 2 von Visual Studio 2010! Im Rahmen dieses umfangreichen Feedbacks hat sich auch herauskristallisiert... [... detaillierte Informationen in diesem Blogposting 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-2010 Kay Giza. All rights reserved. Legal
Subscribe

Windows 7 Workshops – im neuen Jahr mit neuem Programm!

18.12.2009 14:02:15 | Peter Kirchner

Auch im kommenden Jahr werden wir wieder die beliebten Windows 7 Workshops für Softwarehersteller anbieten. Mit einer frischen Agenda ist der Schwerpunkt ein wenig mehr Richtung Entwickler verschoben worden.

Themen:

  • Windows 7 Anwendungskompatibilität
  • Windows 7 Logo
  • Benutzerkontensteuerung in der Praxis
  • Windows Error Reporting in der Praxis
  • High DPI in der Praxis
  • Neue Features in Windows 7
  • .NET 4.0 und Windows 7

Hinweise:

  • Zielgruppe sind Software-Entwickler und -Architekten
  • Laptops sind nicht zwingend notwendig, jedoch praktisch, wenn Sie bestimmte Themen gleich selbst nachvollziehen möchten. Dazu sollten Sie auf Ihrem Laptop Windows 7 und Visual Studio 2010 vorinstalliert haben. Notwendige SDKs oder Tools werden vor Ort bereitgestellt.

Termine:

Die Veranstaltungen werden um 10 Uhr beginnen und ca. gegen 17 Uhr enden. Ihre Anmeldungen schicken Sie bitte einfach an unsere E-Mail-Adresse fitmit7@microsoft.com.

Informationen zu weiteren Angeboten für Softwarehersteller können Sie auch beim Microsoft Partner Network finden.

Update 14.01.2010: Neuen Termin für Köln hinzugefügt.

Weiterführende Links:

Verlängerte Betaphase für Visual Studio 2010 – „Release Candidate“ im Februar 2010

18.12.2009 10:29:27 | Peter Kirchner

Seit Oktober ist Beta 2 von Visual Studio 2010 frei verfügbar und wurde bisher von einigen Hunderttausenden Entwicklern weltweit herunter geladen und getestet. Seitdem haben wir eine Unmenge an konstruktivem Feedback erhalten – vielen Dank dafür an alle Tester der Beta 2 von Visual Studio 2010!

Im Rahmen dieses umfangreichen Feedbacks hat sich auch herauskristallisiert, dass die Arbeitsgeschwindigkeit von Visual Studio 2010 Beta 2 in verschiedenen Schlüsselszenarien (wie beispielsweise bei der Nutzung virtuellen Speichers) noch unbefriedigend ist. Zwar wurde die Arbeitsgeschwindigkeit seit Beta 1 deutlich verbessert, aber es gibt eindeutig noch Verbesserungspotential für die endgültige Version von Visual Studio 2010.  Die Entwicklungsteams sind sich dessen bewusst und arbeiten mit Hochdruck daran, die Arbeitsgeschwindigkeit zu verbessern. Seit der Veröffentlichung von Beta 2 im Oktober wurden in diesem Bereich bereits signifikante Verbesserungen erzielt.

Um sicherzustellen, dass Visual Studio 2010 den hohen Erwartungen gerecht wird, haben wir uns entschieden mehr Zeit in die Optimierung zu investieren und die Betaphase um einen weiteren Meilenstein vor der Veröffentlichung zu verlängern. Voraussichtlich im Februar 2010 wird daher ein „Release Candidate“ von Visual Studio 2010 erscheinen (ebenfalls mit einer „Go Live License“ für den produktiven Einsatz. Was eine „Go Live  License“ ist wird hier erklärt). 

Das Ziel dieses „Release Candidate“ ist es, die neuen Geschwindigkeitsverbesserungen der Öffentlichkeit zum Testen freizugeben, um erneut möglichst breites Feedback für die Entwicklungsteams zu bekommen. Naturgemäß benötigt das Entwicklungsteam dadurch ein wenig mehr Zeit, um das Feedback zu sammeln und umzusetzen, bevor die endgültige Version von Visual Studio 2010 fertig gestellt werden kann. Daher wird der offizielle Veröffentlichungstermin von Visual Studio 2010 und .NET Framework 4 um ein paar Wochen verschoben. 

Ihr Feedback wird gehört

Unser Aufruf an die Entwicklergemeinde: Geben Sie uns weiterhin Feedback zur aktuellen Beta 2 von Visual Studio 2010 und im Februar zum „Release Candidate“ – Ihr Feedback kommt direkt dort an, wo es wichtig ist: In den Produktgruppen und Entwicklungsteams, die hart daran arbeiten, Visual Studio 2010 zur besten Entwicklungsumgebung zu machen. Der beste Weg, Feedback zu geben, sind die Connect-Websites zu Visual Studio 2010: https://connect.microsoft.com/VisualStudio

Was bedeutet das für die aktuellen Promotions und Aktionen?

Derzeit laufen drei wichtige Aktionen:

  • Die „MSDN Attach Promo“, mit der Besitzer eines Visual Studio Professional ohne MSDN dieses MSDN nachrüsten können und dabei bis zu 61 Prozent gegenüber einer Neulizenzierung sparen können. Diese Promotion endet trotzdem am 31.3.2010 (weitere Infos zu dieser Promo).
  • Das „Ultimative Angebot für Entwickler“, auch bekannt als „Doppelte Leistung zum halben Preis“ bei dem Entwickler jetzt ein Visual Studio mit MSDN erwerben können, um dann zur Veröffentlichung von Visual Studio 2010 ein circa zweieinhalbfaches Leistungspaket ohne zusätzliche Lizenzkosten zu erhalten wird verlängert – voraussichtlich bis zum tatsächlichen Veröffentlichungstermin (der noch nicht bekannt ist). (Weitere Infos zu dieser Aktion.)
  • Die Aktion „Letzte Chance auf das klassische Rundum-Sorglos-Paket für IT-Administratoren und IT-Profis“ wird ebenfalls bis zum tatsächlichen Veröffentlichungstermin verlängert. Speziell für IT-Profis und Administratoren ist das klassische MSDN Premium ein hervorragendes „Rundum-Sorglos-Paket.“ Diese Anwender benötigen zwar üblicherweise keine Microsoft-Entwicklerwerkzeuge (also kein Visual Studio), aber dafür flexiblen und unbürokratischen Zugriff auf Microsoft Server, Office und Betriebssysteme. In MSDN Premium ist alles drin – und Microsoft Office darf sogar produktiv genutzt werden! Allerdings wird dieses klassische MSDN Premium mit der Veröffentlichung von Visual Studio 2010 durch ein neues Produkt ersetzt, welches zwar mehr als den zweieinhalbfachen Leistungsumfang bietet, aber auch höhere Einstiegskosten mit sich bringt. Sichern Sie sich daher noch vor der Veröffentlichung von Visual Studio 2010 das günstige MSDN Premium als „Rundum-Sorglos-Paket“ für Ihre IT-Profis und Administratoren und profitieren Sie von der einfachen Lizenzierung und den geringeren Kosten gegenüber dem Einzelkauf. Sie erhalten wie beim „Ultimativen Angebot“ für Entwickler bei Erscheinen von Visual Studio 2010 außerdem die nächsthöhere Version der Subscription – für die komplette Restlaufzeit Ihres Vertrages natürlich ohne zusätzliche Lizenzkosten. Wenden Sie sich an Ihren Fachhändler oder direkt an Microsoft. Wir beraten Sie gerne, wie Sie mit MSDN Premium Ihre IT standardisieren und Geld sparen können.

Microsoft Silverlight Support Lifecycle-Richtlinie

18.12.2009 10:26:39 | Oliver Scheer

Weil es immer wieder nachgefragt wurde und etwas ist, was nicht jeder bietet. Text wurde original von hier übernommen.

“Microsoft veröffentlicht neue Support Lifecycle-Informationen für Microsoft Silverlight.

In der Vergangenheit wurde Microsoft Silverlight separat von Microsoft-Produkten veröffentlicht, daher hatte es auch keinen genau definierte Produktenlebenszyklus. Um dies nun klarer zu definieren, wird Silverlight von nun an als "Tool" bezeichnet.
Ein "Tool" ist ein Hilfsprogramm oder Feature, das eine bestimmte Aufgabe oder mehrere begrenzte Aufgaben ausführt. Das Ende des Lebenssykluses für größere Versionen des Tools wird mindestens 12 Monate davor bekanntgegben. Andernfalls endet der Support mit dem Ende des Supportzeitraums für das dazugehörige Produkt, z. B. Microsoft Windows.

Hinweis: Einige Tools erhalten u. U. Sicherheitsupdates oder neue Features. Kunden müssen evtl. diese Updates installieren, um auch weiterhin Support für die Hauptversion des Tools zu erhalten.
Die Microsoft Support Lifecycle-Richtlinien bieten Ihnen klare und planbare Supportbestimmungen bzgl. Ihrer Microsoft-Produkte. Weitere Informationen finden Sie unter:http://support.microsoft.com/lifecycle

Fragen und Antworten:

Supportlebenszyklus für Microsoft Silverlight

Microsoft wird auch weiterhin alle Versionen von Silverlight mithilfe von Updates zur neuesten Version für Silverlight-Runtime und Silverlight SDK unterstützen. Updates und neue Versionen von Silverlight-Runtime sind abwärtskompatibel in Webapplikationen, die mithilfe von früheren Silverlight-Versionen erstellt wurden und enthalten zudem die aktuellen Features in den Bereichen Sicherheit, Performance sowie Problembehebung. Vorangegange Versionen werden auch dann unterstützt wenn Sicherheitsanfälligkeiten durch das Microsoft Security Response Center (MSRC) festgestellt wurden.

Silverlight 1 – Microsoft wird allen Kunden mit Silverlight 1 bis zum 12.Oktober 2010 kostenlosen Support zur Verfügung stellen. Jeder Kunde kann mithilfe eines Upgrades auf die aktuellste Silverlight-Version kostenlosen Installationssupport erhalten. Microsoft wird MSRC-Sicherheitsanfälligkeiten für die Silverlight 1-Runtime veröffentlichen.

Silverlight 1-Entwickler mit den entsprechenden Developer-Tools erhalten kostenpflichtigen Support in Form von Workarounds. Nach Möglichkeit empfehlen wir allen Kunden, das Update der Developertools auf die aktuellste Version. Microsoft wird Updates für Silverlight 1-Runtime und Silverlight 1 SDK in Bezug auf MSRC-Sicherheitsanfälligkeiten veröffentlichen.

Silverlight 2 – Microsoft wird allen Kunden mit Silverlight 2 bis zum 12.Oktober 2010 kostenlosen Support zur Verfügung stellen. Jeder Kunde kann mithilfe eines Upgrades auf die aktuellste Silverlight-Version kostenlosen Installationssupport erhalten. Microsoft wird Updates für Silverlight 2-Runtime und Silverlight 2 SDK in Bezug auf MSRC-Sicherheitsanfälligkeiten veröffentlichen.

Silverlight 2-Entwickler mit den entsprechenden Developer-Tools erhalten kostenpflichtigen Support in Form von angemessenen Workarounds. Nach Möglichkeit empfehlen wir allen Kunden, das Update der Developertools auf die aktuellste Version. Microsoft wird Updates für Silverlight 2-Runtime und Silverlight 2 SDK in Bezug auf MSRC-Sicherheitsanfälligkeiten veröffentlichen.

Silverlight 3 – Microsoft wird allen Kunden mit Silverlight 3 kostenlosen Support zur Verfügung stellen. Kostenpflichtige Supportoptionen stehen allen Kunden zur Verfügung, die weitergehende Probleme haben. Microsoft wird Updates für Silverlight 3-Runtime und Silverlight 2 SDK in Bezug auf MSRC-Sicherheitsanfälligkeiten veröffentlichen.

Silverlight 3-Entwickler mit den entsprechenden Developer-Tools erhalten kostenpflichtigen Developer-Support. Microsoft unterstützt auch weiterhin Silverlight 3-Entwickler in Form von Updates zur Silverlight 3-Runtime und, falls nötig, auch für die Silverlight 3 SDK.

Das Ende des Supports für Silverlight 3 wird mindestens 12 Monate davor bekanntgegben. Weitere Ankündigungen zum Support Lifecycle von Silverlight finden Sie unter http://support.microsoft.com/lifecycle und http://support.microsoft.com/Silverlight.

Die Microsoft Support Lifecycle-Richtlinien bieten Ihnen klare und planbare Supportbestimmungen bzgl. Ihrer Microsoft-Produkte. Weitere Informationen finden Sie unter:http://support.microsoft.com/lifecycle

Die Originalformulierung kann hier nachgelesen werden.

Verlängerte Betaphase für Visual Studio 2010 – „Release Candidate“ im Februar 2010

18.12.2009 09:41:48 | Oliver Scheer

Seit Oktober ist Beta 2 von Visual Studio 2010 frei verfügbar und wurde bisher von einigen Hunderttausenden Entwicklern weltweit herunter geladen und getestet. Seitdem haben wir eine Unmenge an konstruktivem Feedback erhalten – vielen Dank dafür an alle Tester der Beta 2 von Visual Studio 2010!

Im Rahmen dieses umfangreichen Feedbacks hat sich auch herauskristallisiert, dass die Arbeitsgeschwindigkeit von Visual Studio 2010 Beta 2 in verschiedenen Schlüsselszenarien (wie beispielsweise bei der Nutzung virtuellen Speichers) noch unbefriedigend ist. Zwar wurde die Arbeitsgeschwindigkeit seit Beta 1 deutlich verbessert, aber es gibt eindeutig noch Verbesserungspotential für die endgültige Version von Visual Studio 2010.  Die Entwicklungsteams sind sich dessen bewusst und arbeiten mit Hochdruck daran, die Arbeitsgeschwindigkeit zu verbessern. Seit der Veröffentlichung von Beta 2 im Oktober wurden in diesem Bereich bereits signifikante Verbesserungen erzielt.

Um sicherzustellen, dass Visual Studio 2010 den hohen Erwartungen gerecht wird, haben wir uns entschieden mehr Zeit in die Optimierung zu investieren und die Betaphase um einen weiteren Meilenstein vor der Veröffentlichung zu verlängern. Voraussichtlich im Februar 2010 wird daher ein „Release Candidate“ von Visual Studio 2010 erscheinen (ebenfalls mit einer „Go Live License“ für den produktiven Einsatz. Was eine „Go Live  License“ ist wird hier erklärt). 

Das Ziel dieses „Release Candidate“ ist es, die neuen Geschwindigkeitsverbesserungen der Öffentlichkeit zum Testen freizugeben, um erneut möglichst breites Feedback für die Entwicklungsteams zu bekommen. Naturgemäß benötigt das Entwicklungsteam dadurch ein wenig mehr Zeit, um das Feedback zu sammeln und umzusetzen, bevor die endgültige Version von Visual Studio 2010 fertig gestellt werden kann. Daher wird der offizielle Veröffentlichungstermin von Visual Studio 2010 und .NET Framework 4 um ein paar Wochen verschoben. 

Ihr Feedback wird gehört

Unser Aufruf an die Entwicklergemeinde: Geben Sie uns weiterhin Feedback zur aktuellen Beta 2 von Visual Studio 2010 und im Februar zum „Release Candidate“ – Ihr Feedback kommt direkt dort an, wo es wichtig ist: In den Produktgruppen und Entwicklungsteams, die hart daran arbeiten, Visual Studio 2010 zur besten Entwicklungsumgebung zu machen. Der beste Weg, Feedback zu geben, sind die Connect-Websites zu Visual Studio 2010: https://connect.microsoft.com/VisualStudio

Was bedeutet das für die aktuellen Promotions und Aktionen?

Derzeit laufen drei wichtige Aktionen:

· Die „MSDN Attach Promo“, mit der Besitzer eines Visual Studio Professional ohne MSDN dieses MSDN nachrüsten können und dabei bis zu 61 Prozent gegenüber einer Neulizenzierung sparen können. Diese Promotion endet trotzdem am 31.3.2010 (weitere Infos zu dieser Promo).

· Das „Ultimative Angebot für Entwickler“, auch bekannt als „Doppelte Leistung zum halben Preis“ bei dem Entwickler jetzt ein Visual Studio mit MSDN erwerben können, um dann zur Veröffentlichung von Visual Studio 2010 ein circa zweieinhalbfaches Leistungspaket ohne zusätzliche Lizenzkosten zu erhalten wird verlängert – voraussichtlich bis zum tatsächlichen Veröffentlichungstermin (der noch nicht bekannt ist). (Weitere Infos zu dieser Aktion.)

· Die Aktion „Letzte Chance auf das klassische Rundum-Sorglos-Paket für IT-Administratoren und IT-Profis“ wird ebenfalls bis zum tatsächlichen Veröffentlichungstermin verlängert. Speziell für IT-Profis und Administratoren ist das klassische MSDN Premium ein hervorragendes „Rundum-Sorglos-Paket.“ Diese Anwender benötigen zwar üblicherweise keine Microsoft-Entwicklerwerkzeuge (also kein Visual Studio), aber dafür flexiblen und unbürokratischen Zugriff auf Microsoft Server, Office und Betriebssysteme. In MSDN Premium ist alles drin – und Microsoft Office darf sogar produktiv genutzt werden! Allerdings wird dieses klassische MSDN Premium mit der Veröffentlichung von Visual Studio 2010 durch ein neues Produkt ersetzt, welches zwar mehr als den zweieinhalbfachen Leistungsumfang bietet, aber auch höhere Einstiegskosten mit sich bringt. Sichern Sie sich daher noch vor der Veröffentlichung von Visual Studio 2010 das günstige MSDN Premium als „Rundum-Sorglos-Paket“ für Ihre IT-Profis und Administratoren und profitieren Sie von der einfachen Lizenzierung und den geringeren Kosten gegenüber dem Einzelkauf. Sie erhalten wie beim „Ultimativen Angebot“ für Entwickler bei Erscheinen von Visual Studio 2010 außerdem die nächsthöhere Version der Subscription – für die komplette Restlaufzeit Ihres Vertrages natürlich ohne zusätzliche Lizenzkosten. Wenden Sie sich an Ihren Fachhändler oder direkt an Microsoft. Wir beraten Sie gerne, wie Sie mit MSDN Premium Ihre IT standardisieren und Geld sparen können.

Was ist neu in Silverlight 4?

18.12.2009 09:00:00 | Oliver Scheer

Neue Version, neue Features. Und dann auch noch so viele? Ja geht das überhaupt? Ja.

Jetzt mal ein grober Überblick über die Bereiche in denen

es neue Funktionalitäten gibt.

  • Tooling
  • Printing API
  • Right-click event handling
  • Webcam/microphone access
  • Mouse wheel support
  • RichTextArea Control
  • ICommand support
  • Clipboard API
  • HTML Hosting with WebBrowser
  • Elevated trust applications
  • Local file access
  • COM interop
  • Notification (“toast”) API
  • Network authentication
  • Cross-domain Networking changes
  • Keyboard access in full screen mode
  • Text trimming
  • ViewBox
  • Right-to-left, BiDi and complex script
  • Offline DRM
  • H.264 protected content
  • Silverlight as a drop target
  • Data binding
    • IDataErrorInfo and Async Validation
    • DependencyObject Binding
    • StringFormat, TargetNullValue, FallbackValue
  • Managed Extensibility Framework (MEF)
  • DataGrid enhancements
  • Fluid UI support in items controls
  • Implicit theming
  • Google Chrome support

Eine umfassende Beschreibung aller Features, Trainingsvideos und Beispielen kann bei Tim Heuer eingesehen werden.

Windows Azure SDK Installationsprobleme

17.12.2009 17:09:46 | Jan Schenk



tweetmeme_url = 'http://blogs.msdn.com/jansche/archive/2009/12/17/windows-azure-sdk-installationsprobleme.aspx'; tweetmeme_source = 'jansche';

Ich gehe mal davon aus, dass das nur 64bit Windows 7 User betrifft. Es könnte auch noch sein, dass es damit zusammen hängt, dass ich das .NET4.0 Framework installiert habe, da ich mit Visual Studio 2010 arbeite.

Aber falls ihr über diesen Fehler stolpert, könnte euch diese kurze Anleitung helfen.

Bei Ausführen des Windows Azure SDK Setup v1 bekam ich diese hübsche Fehlermeldung, obwohl .NET Framework 3.5 Service Pack 1 (.NET FX 3.5SP1) installiert und aktiviert war.

“To use this software, you must first install the .NET Framework 3.5 Service Pack 1. See the product release notes for details”.

image Bullshit, irgendwas hat meine Registry vereiert, denn die Lösung für das Problem fand mein Kollege Bernhard Frank in den Foren von msdn.

http://social.msdn.microsoft.com/Forums/en-US/windowsazure/thread/939536eb-741d-4a18-81ee-3a9ff95724f9/

Die zwei Registry-Schlüssel
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v3.5\SP
und
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5\SP
müssen beide auf 1 gesetzt sein.

Bei mir war es der zweite, der auf 0 war, und damit diesen Fehler auslöste.

image

So wuppt es:

image

Und schon flutscht auch die Installation des Software Development Kit für Windows Azure.

Viel Spass,
jan

Silverlight 4 Beta veröffentlicht

17.12.2009 16:34:33 | Oliver Scheer

Auf der im November stattgefundenen Microsoft Professional Developer Conference (PDC) hat Scott Guthrie die Verfügbarkeit einer ersten Beta von Silverlight 4 bekannt gegeben.

Die Geschwindigkeit ist echt beachtlich, wenn man bedenkt das Silverlight 3 gerade mal vor knapp drei Monaten veröffentlicht wurde. Die neue Beta-Version ist definitiv nur als Vorabversion für Entwickler gedacht, um die neuen Features vorzustellen und Feedback aus der Entwicklercommunity zu erhalten. Das Plug-In ist keine Consumer-Version, das bedeutet, es geht nicht mit einer Go-Live-Lizenz einher. Diese Vorabversion ist nicht für den Produktiveinsatz gedacht.

Was benötigt der Entwickler um erste Eindrücke der neuen Version zu erhalten?

  • Visual Studio 2010 Beta 2 oder Visual Web Developer Express 2010 Beta 2
  • Silverlight Tools for Visual Studio 2010
  • Expression Blend for .NET 4 Preview
  • WCF RIA Services (früher bekannt unter dem Namen .NET Ria Services)
  • Die Silverlight 4 SDK Dokumentation im CHM-Format
  • Das Silverlight Toolkit wurde für Silverlight 4 angepasst und kann auch dort verwendet werden
  • Es gibt jeweils eine Entwickler-Laufzeitumgebung für Windows und Mac
  • Silverlight 4 SDK (Bestandteil der Silverlight Tools für Visual Studio 2010)

Die Links zu der Software sind hier zu finden.

25. Treffen der PASS Regionalgruppe Sachsen am 25.01.2010

17.12.2009 16:34:00 | Martin Hey

5 Jahre PASS Deutschland - in Dresden wird nachgefeiert! Nachdem das eigentliche Treffen zum Thema Microsoft SQL Server 2008 R2 im September leider aufgrund von Krankheit nicht ganz wie geplant stattfinden konnte, wird der Termin nun nachgeholt.
Die PASS Regionalgruppe Dresden trifft sich am Montag den 25.01.2010 an gewohnter Stelle im IT-Trainingshaus am Waldschlösschen. Nähere Informationen zum Termin und eine Anfahrtsbeschreibung findet man auf der PASS-Seite im Bereich Regionalgruppe Sachsen.

Exam 70-630: Configuring Office SharePoint Server 2007

17.12.2009 15:43:00 | Martin Hey

Da sich das Jahr nun so langsam dem Ende zuneigt, war das nun auch die letzte Prüfung für dieses Jahr. Dieses Mal war es die Zertifizierungsprüfung 70-630. Wie der Name schon sagt, ging es in den 51 Fragen um die Konfiguration und Einrichtung von MOSS 2007.

Thematisch ging es dabei um:
  • Configuring Microsoft Office SharePoint Server 2007
  • Managing Search
  • Configuring Content Management
  • Configuring Business Forms
  • Managing Business Intelligence
  • Managing Administration
  • Deploying or Upgrading

Zu den einfacheren Fragen gehörten sinngemäß: "Was sollte man tun, wenn die Suche nicht alle Ergebnisse findet?" oder "Wie bekomme ich einen Link zu einer Site in die Navigationsleiste?" Aber einige der Fragen betrachteten auch Themen, mit denen man sich nicht täglich konfrontiert sieht, wie den Search-for-broken-Links-Menüpunkt oder der Einrichtung von IRM.

Chrome Extension - Chrome Touch (Touchscreen use like IPhone)

17.12.2009 09:32:00 | Andreas Mehl

Because i have a netbook with Touchscreen functionality, i would like to use the Browser Scroll Feature from the new IPhone Handy.

So i found the Extension for the Chrome Browser.

Get chromeTouch

 

After Downloading, it doesn't work with my Ramdisk installed Chromium.

I tried many things to get it worked.

The Solution is as follows:

 

Create a Folder "c:\myextension"

Extract the content of the crx File into the folder

Find your chrome shortcut (for example, right-click the Chrome icon on your desktop and choose Properties) and add the --load-extension flag to it:

chrome.exe --load-extension="c:\myextension"

 

Thats it :)

 

more Extensions can be found here:

http://www.chromeextensions.org/

Netbook - Ultra Speed in Web-Browsing with Ramdisk, Sandboxie and Chrome

17.12.2009 09:24:00 | Andreas Mehl

How to create a RAM DISK with "Gavotte Ramdisk"

Click Download and you get the "Gavotte Ramdisk" (freeware)

Unzip the zip archive and start Ramdisk.exe

Now Click on "Install Ramdisk"

"Disk Size(Bytes)" if you have 1 GB of RAM then you should only 32 use for the ramdisk.
All which have more than 1 GB of RAM should set max. 1 / 4 of RAM
without using PC-losing performance, etc. ..
I have 2 GB so i setted up a 512 MB RamDrive.


"Driver Letter" here you can take a drive-letter
Select the best take your "R"

In the "Media Type" select "Fixed Media"

Now click on "Apply">>> OK>>> OK>>> "OK"

In the workplace you now see a new drive with the letter "R"
this is your RAM disk as you can now put everything you want
eg: "Windows Temp folder" Firefox browser "software", etc. ..


   
Change Location of Temp Files

Go to Control Panel, System Advanced and click on 'Environment Variables'.

Set both tmp and temp to R:\Temp and create a new Temp folder on R


Downloading and Installing Sandboxie

Click Download to get Sandboxie.

After installing Sandboxie, please review the Getting Started tutorial in the Help Topics page. 

Now set Sandboxie Container Location to Ramdisk Drive.

 

Browsing with Google Chrome

get it Here or take the chromium version which i prefer.

After extracting or installing, move the chrom/chromium folder to Ramdisk.

Create Desktop Shortcut.

 

Finally Start Browsing by clicking right on the Desktop Shortcut and choose Start with the Sandboxie.

 

 

HTML 5 und Web Standards im Internet Explorer 8 [IE8]

17.12.2009 08:09:34 | Kay Giza

HTML 5 ist noch nicht in trockenen Tüchern, sondern liegt noch als W3C HTML 5 Working Draft vor, dennoch sind einige der interessantesten Technologien daraus bereits in Internet Explorer 8 integriert. Weiter in diesem Blogposting, mehr als 7.200 einzelne Testszenarien zum CSS 2.1-Standard, samt und sonders zu finden im MSDN Internet Explorer Testing Center, hat Microsoft in diesem Jahr an das zuständige W3C übermittelt... [... vollständiger und ausführlicher Artikel in diesem Blogposting 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-2010 Kay Giza. All rights reserved. Legal
Subscribe

MSDN TV – Weihnachts-Ausgabe 14.12.09

17.12.2009 07:52:51 | Kay Giza

In der letzten Folge vor den Feiertagen widmet sich "MSDN TV" dem Themen-Schwerpunkt „Cloud Computing mit der Windows Azure Plattform“. Bei Jan Schenk zu Gast ist diesmal Holger Sirtl, „Architect Evangelist“ für Cloud Computing bei Microsoft Deutschland und Autor eines gerade erschienenen Standardwerks zum Thema.
Ausschließlich aktuelle Download-Tipps gibt’s bei den obligatorischen „MSDN TV“-Kurznachrichten – als da wären: die Visual Studio 2010 Beta 2, Videos von der PDC 09, ein kostenloses ’Microsoft Press’-Buch zu Visual Basic 2008, das Service Pack 1 für Microsoft Expression Web 3 und eine Vorschau auf die nächste SharePoint-Generation mit der Beta des Sharepoint Server 2010 [17:07]

Anfang November hat MSDN eine Gewinnaktion für Zuschauer gestartet, die bereit waren, über ihren Twitter-Account einen Tweet zum Thema „msdn tv“ zu versenden. Mit Ablauf des Monats ist das Preisausschreiben zu Ende gegangen und jetzt stehen auch die Gewinner fest: In einer Sondersendung präsentiert "msdn tv" die offizielle Ziehung von fünf Einsendern, die künftig jeweils ein Expression Studio 3 ihr Eigen nennen können. Durch die Sendung führt Jan Schenk, assistiert von der reizenden Glücksfee Anne Michels [2:33]

Mehr: MSDN TV – Ausgabe 14.12.09




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-2010 Kay Giza. All rights reserved. Legal
Subscribe

Advent, Advent: Ich twittere Windows Azure Tokens

16.12.2009 17:04:44 | Jan Schenk



tweetmeme_url = 'http://blogs.msdn.com/jansche/archive/2009/12/16/advent-advent-ich-twittere-windows-azure-tokens.aspx'; tweetmeme_source = 'jansche';

Die frohe Weihnachtszeit soll natürlich auch was für uns Entwickler bereit halten. Ich habe dafür keine Mühen gescheut und den Registrierungsprozess bei Windows Azure für euch übernommen. Jetzt twittere ich jeden Tag 3 Windows Azure Tokens. Morgens, mittags und abends. Was ihr davon habt? Ganz einfach, ihr könnt, wenn ihr schon bei Azure registriert seid, mehrere Projekte anlegen, indem ihr den Code einlöst (“Redeem Token”). Für die, die ihre Nase bisher noch nicht in Windows Azure gesteckt hatten, ist so ein Code auch “good to have”, denn es entfällt ein Registrierungsprozess auf Microsoft Connect.

Um jetzt an so einen Code zu kommen, müsst ihr mir nur auf Twitter folgen:

http://twitter.com/jansche

 

Viel Spass beim Cloud Computing mit Windows Azure!
jan

Backup Email Accounts in Outlook 2007 in .reg file

15.12.2009 20:32:00 | Andreas Mehl

Old Machine

Outlook 2007 is nice enough to put all of its account info for each profile under one key.

HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\

So, first off, close Outlook if it's running.

To export your Outlook account information, we just need to export that magic key.

  1. Open Registry Editor.
  2. Select the key that you want to save as a file.
  3. On the File menu, click Export.
  4. In the Export Registry File dialog box, in Save in, click the drive, folder, or network computer and folder where you want to save the hive.
  5. In File name, enter a name for the key. (outlook_profile.reg would work great.)
  6. In Save as type, make sure it's set as Registration Files (*.reg)
  7. Click Save.

To move your old mail, you'll need to copy your PST file to the new machine.

  1. Click Start, Run
  2. Type %userprofile%\local settings\application data\microsoft\outlook
  3. Click OK
  4. In that folder there will be some *.pst files.  Copy (don't move!) them to a removable drive or a network share.  The one you're most likely concerned with is outlook.pst


New Machine

First, we need to import the profile information.

  1. Double-click the file (outlook_profiles.reg) you exported on the old machine.  That will import the new information into the registry.  (Simple!)

Next, we need to get your data file back over.

  1. Click Start, Run
  2. Type %userprofile%\local settings\application data\microsoft\outlook
  3. Click OK
  4. Copy (don't move!) the *.pst files you found on the old machine.  The one you're most likely concerned with is outlook.pst

Lastly, we need to set Outlook to use the profile from the old machine.

  1. Open Control Panel.
  2. Open the Mail applet.
  3. Click on the Show Profiles button.
  4. Choose the profile name that matches the one you used to use from the "Always use this profile" dropdown.
  5. Click OK.

Now, when you open Outlook, you should have your old mail and the mail accounts all set up and ready to go.

IMPORTANT for Passwords:

Outlook on the new machine will ask you for passwords the first time it does a send/receive on all non-Exchange accounts.

Fit PC2 - Kleinster Nettop der Welt

15.12.2009 19:45:00 | Andreas Mehl

Seit kurzem gibt es den derzeit als kleinsten Nettop der Welt bezeichneten Rechner, den Fit-PC2, auch in Deutschland. Ab 379 Euro wird der Nettop angeboten und neben einer Linux-Variante kann man sich auch für Windows 7 als Betriebssystem entscheiden. Damit wird's allerdings etwas teurer. Für solch ein winziges Gerät sind die technischen Innereien und die Anschluss-Möglichkeiten recht gut und vielseitig.

Ich selber habe einen, und bin damit höchst zufrieden. Ich nutze Ihn als Home Server. Ohne irgendwelchen problemen.

nettop_fit-pc2Den Nettop gibt es entweder direkt beim Hersteller oder aber bei SH-EDV und bei Amazon. SH-EDV verlangt für den Fit-PC2 ohne HDD 379 Euro, mit Windows 7 Professional und Instant-On-Feature 545 Euro und bei Amazon gibt es den Fit-PC2 inklusive Linux und HDD für 429 Euro. Das bei SH-EDV erwähnte Instant-On-Feature sorgt dafür, dass der Nettop sofort hochfährt, wenn Spannung auf dem Gerät liegt.

Im Fit-PC2 tickt ein Intel Atom Z530 mit einer Taktrate von 1,6 GHz und als Chipsatz ist der Intel US15W Poulsbo verbaut, der mit der GMA500-Grafikeinheit ergänzt wird. Weiter mit an Bord sind: 1 GByte RAM, LAN, WLAN, 6 USB-Ports und eine 160-GByte-Festplatte (beim SH-Angebot).

Wer sich für Linux entscheidet, kann den Mini-Rechner mittels VLC oder Media Player Classic zum Anschauen von HD-Filmen nutzen: Der HD-Beschleuniger, den es im GMA500 gibt, lässt Filme mit einer Auflösung von 1080p zu. Um das gute Stück mal in der Hand zu sehen und die winzigen Dimensionen wirklich zu fassen, gibt es auf YouTube ein Video:

Windows Azure Infodays starten am 20.01.2009 – Jetzt anmelden!

15.12.2009 17:47:43 | Jan Schenk



tweetmeme_url = 'http://blogs.msdn.com/jansche/archive/2009/12/15/windows-azure-infodays-starten-am-20-01-2009-jetzt-anmelden.aspx'; tweetmeme_source = 'jansche';

Ihr habt Interesse an Cloud Computing und Windows Azure im Speziellen? Dann sind das eure Infodays.

clip_image001

Die Termine der Windows Azure Infodays für unsere 4 Städte sehen so aus:

· 20.01.2010 - München

· 10.02.2010 -  Bad Homburg

· 17.02.2010 - Köln

· 16.03.2010 - München

Die Veranstaltung richtet sich primär an eine technisch interessierte Zielgruppe (Architekten, Entwickler, Projektleiter, technische Entscheider) und in der Agenda wurde bewusst etwas weiter gefasst. Alle weiteren Details findet Ihr auf der offiziellen Anmeldewebseite:
www.msdn-online.de/go/azuredays

Wer teilnehmen möchte kann sich entweder direkt anmelden, oder mich nochmal ansprechen (E-Mail, twitter etc.), um ein kleines Goodie obendrauf zu bekommen. Das solltet ihr aber unbedingt vor der Anmeldung tun!

Was erwartet euch?

Agenda für den Azure Information Day:

10.00-10.15 Uhr

Begrüßung und Vorstellungsrunde

10.15-11.30 Uhr

Die Windows Azure Platform (Überblick, Strategie)
Die Windows Azure Platform bietet Entwicklern und Unternehmen die Möglichkeit, auf einfache Weise von den Vorteilen des Cloud Computings zu profitieren. Windows Azure erlaubt es, Anwendungen in der Cloud zu betreiben, Daten zu speichern und Dienste über Unternehmensgrenzen hinweg zu integrieren.
Dieser Vortrag gibt einen Überblick über die Bestandteile der Windows Azure Platform (Windows Azure, SQL Azure, AppFabric) und zeigt Szenarien auf, in denen sich Anwendungen für Cloud Computing mit Azure eignen.

11.30-12.00 Uhr

Diskussionsrunde

12.00-12.45 Uhr

Mittagessen

12.45-14.00 Uhr

Dienste der Windows Azure Platform (technischer Überblick mit Demo)
In diesem Vortrag werden die einzelnen Dienste der Windows Azure Platform näher vorgestellt. Es wird gezeigt, wie einfache Anwendungen erstellt werden können, die auf Windows Azure ausgeführt werden sollen, wie Datenspeicherung mit SQL Azure funktioniert und wie Dienste über .NET Services miteinander kommunizieren können.

14.00-14.45 Uhr

Anwendungsentwicklung mit Azure

  • Was muss beachtet werden, wenn bestehende Anwendungen im Sinne eines Software-as-a-Service-Ansatzes (SaaS) nach Windows Azure migriert bzw. neue Anwendungen für Windows Azure entwickelt werden sollen?
  • Wie können die Dienste der Windows Azure Platform effektiv eingesetzt werden?
  • Wo kann Cloud Computing seine Stärken ausspielen, wo sind Grenzen?

Dieser Vortrag geht auf diese Fragen ein und diskutiert Architekturszenarien für verschiedene Azure-basierte Anwendungen.

14.45-15.00 Uhr

Kaffeepause

15.00-16.00 Uhr

Geschäftsmodelle mit Azure (Kosten, Abrechnung, Mehrwerte)
Im Zentrum dieses Vortrags steht die Frage, wie mit Hilfe von Azure Geschäftsmodelle umgesetzt werden können. Hierzu gehört eine Diskussion der verschiedenen Kosten- und Abrechnungsmodelle von Azure sowie weitere Aspekte der Plattform, die eine Nutzenbetrachtung in verschiedenen Szenarien ermöglichen.

16.00-17.00 Uhr

Diskussionsrunde

Jetzt anmelden und sich einen Platz sichern!
www.msdn-online.de/go/azuredays

Cloud Computing – The Future Is Now!
jan

Freie browser-basierte Entwicklungsumgebung

15.12.2009 13:12:33 | Oliver Scheer

Coderun bietet eine browser-basierte freie Entwicklungsumgebung für verschiedene Anwendungstypen zur Verfügung. Es lassen sich z.B. C-Sharp-, JavaScript- und PHP-Anwendungen entwickeln. Dabei wird das Visual Studio-Projektformat unterstützt. Das bedeutet, das man auch eigene Solutions hochladen kann.

image

Derzeit steht die IDE in der Version 1.01 Beta zur Verfügung.

Die IDE gibt es unter: http://www.coderun.com/ide/. Eine Beispielanwendung gibt es unter http://www.coderun.com/ide/?p=3d-tile-flip-wpf-xbap.

Microsoft SharePoint 2007 Video-Training

15.12.2009 00:21:00 | Jürgen Gutsch

Vor einiger Zeit hat Gregor Biswanger sein erstes Video für video2brain veröffentlicht. Da ich mich ebenfalls sehr für den SharePoint 2007 interessiere habe ich die Gelegenheit bekommen in das Video-Training rein schauen zu dürfen.

Bei dem Video-Training handelt es sich um 8 Stunden Training mit 78 Lektionen über die Installation, Administration und Einrichtung von Microsoft SharePoint 2007. Außerdem zeigt Gregor wie Sharepoint mit Office 2007 zusammenarbeitet und wie man selber für Sharepoint entwickelt.

Wer jetzt allerdings den Gregor gekämmt und in Anzug und Krawatte erwartet hat Pech gehabt. Gregor begrüßt einen hier im gewohnten lockeren Stil; Gregor wie er leibt und lebt:

Das tolle an diesem Video-Training ist der “Mach Mit!-Modus” bei dem sich das Video verkleinert in der linken oberen Ecke des Bildschirms, immer im Vordergrund, platziert. So kann man die einzelnen Schritte zusammen mit Gregor ausprobieren.

Wer möchte kann sich unter folgendem Link ein paar Probevideos anschauen: http://www.video2brain.com/de/products-419-2.htm

Das Video-Training ist für alle Einsteiger, Interessierte und Wiedereinsteiger (wie mich) absolut geeignet. Aber auch erfahrenere SharePoint Administratoren und Entwickler finden sicher deren einen oder anderen Tipp. Ich finde Gregor hat hier seinen Job absolut sauber gemacht *daumenhoch*, denn er präsentiert hier den Microsoft SharePoint 2007 in einfachen, kleinen und verständlichen schritten.

Mich hat es schon in den ersten Lektionen in den Fingern gekitzelt. Ich wurde praktisch gezwungen in den “Mach Mit!-Modus” zu wechseln und parallel alles auszuprobieren :-)

DotNetKicks-DE Image

msdn tv – Nachrichten für Entwickler

14.12.2009 19:29:49 | Oliver Scheer

clip_image002„msdn tv – Nachrichten für Entwickler“ kommt diesmal aus Berlin und präsentiert u.a. Impressionen und Statements von der „Tech·Ed Europe 2009“. Jan Schenk hatte dort Gelegenheit, als Gesprächspartner Orlando Escalante vor Mikrofon und Kamera zu bekommen, der als „Role Owner“ der Technical Platform Evangelists bei Microsoft mitverantwortlich für die Beratung von IT-Professionals zeichnet.
In den Kurznachrichten: Infos zur Beta des ASP.NET MVC Framework 2.0, eine Tutorial-Reihe rund um ‘Expression Studio‘, die Beta 2 Version von Visual Studio 2010 Ultimate und wo man sie kostenlos bekommt, das neue Facebook .NET SDK 3.0 und eine aktuelle MSDN Webcast-Serie zu ‘Powershell’. Sponsorhinweis: Unser Moderator Jan Schenk wird eingekleidet und ausgestattet von Jan Schenk

Get Microsoft Silverlight

Joe Rassic: Silverlight Game der Extra-Klasse

14.12.2009 19:01:37 | Oliver Scheer

image

Der kleine Joe Rassic kämpft sich durch gegnerische Dinos und direkt in die Herzen des Spielers ;) Und wer dann noch nerven hat, der kann sich die verknüpften YouTube-Videos auch noch anschauen.

Link: http://www.joerassic.ch/

Neue Folge von "msdn tv - Nachrichten für Entwickler"

14.12.2009 18:16:10 | Oliver Scheer

clip_image001In der letzten Folge vor den Feiertagen widmet sich "msdn tv" dem Themen-Schwerpunkt „Cloud Computing mit der Windows Azure Plattform“. Bei Jan Schenk zu Gast ist diesmal Holger Sirtl, „Architect Evangelist“ für Cloud Computing bei Microsoft Deutschland und Autor eines gerade erschienenen Standardwerks zum Thema.
Ausschließlich aktuelle Download-Tipps gibt’s bei den obligatorischen „msdn tv“-Kurznachrichten – als da wären: die Visual Studio 2010 Beta 2, Videos von der PDC 09, ein kostenloses ’Microsoft Press’-Buch zu Visual Basic 2008, das Service Pack 1 für Microsoft Expression Web 3 und eine Vorschau auf die nächste SharePoint-Generation mit der Beta des Sharepoint Server 2010.

Get Microsoft Silverlight

Interview Tech-Ed 2009 Berlin : Brian Keller talks about the new VS 2010 Testing Tools

14.12.2009 17:12:11 | Christian Binder

I have been in the role of the Program Manager for the Developer Track at Tech-Ed 2009 in Berlin this year and decided to run some interviews with some of the speakers in my track. I am talking with Brian Keller about the brand new VS2010 Testing Toolset, which is really a major area of invest for the VS 2010 release. Honestly with the VS 2008 we had not too much tooling  in this area, but this is changing now :-) If you want to know what is coming check this out.

Video

Enjoy

Chris

msdn tv – Nachrichten für Entwickler (Ausgabe vom 11.12.2009)

14.12.2009 11:11:54 | Jan Schenk



tweetmeme_url = 'http://blogs.msdn.com/jansche/archive/2009/12/14/msdn-tv-nachrichten-f-r-entwickler-ausgabe-vom-11-12-2009.aspx'; tweetmeme_source = 'jansche';

In der letzten Folge vor den Feiertagen widmet sich "msdn tv" dem Themen-Schwerpunkt „Cloud Computing mit der Windows Azure Plattform“. Bei Jan Schenk zu Gast ist diesmal Holger Sirtl, „Architect Evangelist“ für Cloud Computing bei Microsoft Deutschland und Autor eines gerade erschienenen Standardwerks zum Thema.
Ausschließlich aktuelle Download-Tipps gibt’s bei den obligatorischen „msdn tv“-Kurznachrichten – als da wären: die Visual Studio 2010 Beta 2, Videos von der PDC 09, ein kostenloses ’Microsoft Press’-Buch zu Visual Basic 2008, das Service Pack 1 für Microsoft Expression Web 3 und eine Vorschau auf die nächste SharePoint-Generation mit der Beta des Sharepoint Server 2010.

Zum nahenden Weihnachtsfest gibt es in der MSDN-Mediathek auch noch ein besonderes Schmankerl: Die Weihnachtsgedichte! Freunde der leichten Unterhaltung finden hier einige erlesene leicht adaptierte Klassiker unter den Weihnachtsgedichten.

Eine frohe Staade Zeit,
euer jan

Kostenloser Buch-Download: Visual Basic 2008 – Das Entwicklerbuch

14.12.2009 09:32:00 | Oliver Scheer

Eltern verzweifeln, Einzelhändler werden panisch, das Bundesverfassungsgericht ist alarmiert und die Anzahl der Parkunfälle in den Innenstädten steigt dramatisch an: Es weihnachtet sehr, und nicht nur die ersten offenen Türchen der Adventskalender künden davon. Lehnen Sie sich doch einfach mal zurück und genießen Sie unsere vorzeitigen Weihnachtsgeschenke: MSDN Online und Microsoft Press schenkt Ihnen 1.388 Seiten geballtes Know-how für Entwickler, zusammengestellt von VB-Routinier Klaus Löffelmann. Download der Code-Beispiele inklusive. Ganz entspannt und unfallfrei. Packen Sie das einfach mal als Lektüre ein - vielleicht schneit´s ja doch erst im Februar? Hier geht’s zum Download: Visual Basic 2008 – Das Entwicklerbuch [PDF, E-Book]

Scott Hanselman’s Baby Smash!

13.12.2009 05:39:04 | Jürgen Gutsch

baby smash!

Vor einiger Zeit bin ich auf ein Webcast von Scott Hanselman gestoßen in dem er eine ClickOnce Anwendung vorstellte. Seine Beispielanwendung war ein kleines Programm namens Baby Smash!

Das Programm

Baby Smash! ist, wie der Name schon sagt, ein Computerspiel für kleine Kinder. Ich fand das Programm auf Anhieb interessant und installierte es Zuhause auf meinem Rechner.

Baby Smash! ist eine WPF-Anwendung die per Click Once installiert werden kann. Das Spiel sperrt den Bildschirm und erzeugt per Fullscreen eine weiße Fläche. Werden nun beliebige Tasten gedrückt erscheinen Buchstaben und Symbole auf dem Bildschirm. Die Buchstaben auf der Tastatur erzeugen bunte Buchstaben, Sonderzeichen und andere Tasten erzeugen zufällige Symbole (wie Sterne, Fünfecke, Herzen, etc.). Jedes Mal wenn ein Symbol oder Buchstabe erscheint wird auch ein kinderlachen ausgegeben. Buchstaben werden wahlweise Vogelesen oder es wird ebenfalls ein kinderlachen ausgegeben.

Selbst die Maus ist mit Funktionen belegt: Klickt man irgendwo auf dem Bildschirm, wird ein bunter Punkt erzeugt. Fährt man mit gedrückter Maustaste über den Schirm, wird eine Mausspur mit bunten Punkten erzeugt und eine passende Melodie ausgegeben. Beim drehen des Scroll-Rades, wird je nach Drehrichtung, ein Geräusch eines erstaunten oder eines wissenden Kindes ausgegeben. (“Hääääääää?” und “Ahhhhhhhhh”) Die Symbole und Punkte verschwinden nach einer gewählten Zeit oder wenn eine bestimmte Anzahl überschritten ist.

Außerdem werden fast alle Tastenkürzel gesperrt, so das die Kinder beim spielen nichts kaputt machen können. [Alt][F4] zum beenden des Spiels und [Strg][Shift][Alt]Time für die Spiele Optionen stehen noch zur Verfügung.

Die Zielgruppe

Mich interessierte natürlich hauptsächlich auch wie Hendrik auf das Spiel reagieren würde.

Sobald er also in der Lage war, an meinem Bauch gelehnt auf meinem Schoß zu sitzen. Setzte ich mich mit ihm vor den Rechner und startete das Spiel. Es dauerte nicht lang, bis er - “ganz wie der Papa” - wild auf der Tastatur herum hauen wollte.

Das Ergebnis war besser als erwartet. Hendrik verstand sehr schnell, dass sein wildes Gehaue eine Reaktion auf dem Bildschirm auslöste. Er haute auf die Tastatur und beobachtete anschließend fasziniert den Bildschirm und lauschte den Geräuschen. Sobald keine Töne und keine neuen bunten Symbole mehr zu sehen waren, fing er wieder an mit Begeisterung auf der Tastatur herum zuhauen.

Das Fazit

Scott Hanselmann hat ein Spiel geschaffen, dass sogar Babys faszinieren und begeistern kann.

Nein, mein Sohn wird nicht zu einem Zocker erzogen. Zumindest hoffe ich das. Er wird das Spiel nur einige Minuten pro Woche oder Monat zu Gesicht bekommen. Aber es ist faszinierend, wie er mit jeder Altersstufe die er erreicht immer wieder etwas anders auf das Spiel reagiert

Infos

Infos und Download: http://www.hanselman.com/babysmash/

DotNetKicks-DE Image

Nachlese zum Treffen der .NET Usergroup Chemnitz

12.12.2009 16:25:00 | Martin Hey

Am 10.12.2009 fand in Chemnitz ein Treffen der .NET Usergroup statt. Dieser Termin stand voll und ganz unter dem Thema SharePoint.

Da wir während unserer täglichen Arbeit sehr viel mit SharePoint zu tun haben und auch die SharePoint Usergroup hier in Dresden mit veranstalten, nutzten Anne Rüger, Torsten Hufsky und ich die Gelegenheit für einen Ausflug nach Chemnitz. Im TCC angekommen wurden wir sehr freundlich aufgenommen.

In einer ersten Präsentation gab ich einen kurzen Überblick über die Features von WSS 3.0 und MOSS 2007. An ein paar Beispielen zeigte ich, wie man Workspaces erstellt, Listen anlegt, mit Hilfe der Tools Central Administration und stsadm das Portal administrieren kann und im den SharePoint Designer einfache Workflows zu erzeugen. Mit dabei auch ein kleiner Ausblick auf SharePoint 2010.

Im weiteren Verlauf gaben Anne und Torsten einen kurzen Einblick, wie man serverseitig auf das Objektmodell zugreift und was man dabei beachten muss – als Stichworte hierfür: “Disposing von Objekten”, “Elevated Privileges” – und wie man von einem Client mit Hilfe der integrierten Webservices auf Listen und Webs zugreift.



Das Feedback der anderen Teilnehmer war durchweg positiv und auch wir hatten viel Spaß dabei, das Produkt vorzustellen, etwas aus dem Nähkästchen zu plaudern und spannende Themen mit denjenigen zu besprechen, die schon Erfahrungen hatten und über ähnliche Probleme gestolpert sind und Erfolgserlebnisse zu teilen.

Ich bin schon sehr gespannt und freue mich auf weitere Treffen und auf gemeinsame Themen.

MSDN - ein Gedicht! Weihnachtliche Stimmung in der MSDN Mediathek

12.12.2009 09:39:21 | Kay Giza

Gelegentlich treffen wir bei User Group Meetings oder im Rahmen der kostenlosen Telefon-Hotline Entwickler, die sich auf MSDN noch keinen Reim machen können. Insassen und Helfer der „Developer Plattform & Strategy Group“ von Microsoft Deutschland haben dies zum Anlass genommen und hier kurzfristig Abhilfe geschaffen: unter dem Motto „MSDN – ein Gedicht“ tragen sie in vorweihnachtlicher Besinnlichkeit kleine Verslein rund um MSDN und Entwicklerthemen vor – natürlich auf traditionelle Art und Weise selbstgemacht und ohne Zuhilfenahme irgendwelcher Bewusstsein erweiternder Substanzen hergestellt (z.B. Reimlexikon). Vier der Kunstwerke sind bereits in der MSDN Mediathek abrufbar; weitere stellen wir Ihnen in den verbleibenden Tagen bis zum Fest in loser Folge vor.

Viel Spaß beim Anschauen und beim Stöbern in der MSDN Mediathek mit mehreren tausenden Multimedia-Inhalten, frei auf Abruf!
Mehr: MSDN – ein Gedicht!



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-2010 Kay Giza. All rights reserved. Legal
Subscribe

Bilder mit altChunk in Kopfzeilen von Dokumenten einfügen

12.12.2009 00:24:00 | Jan Christian Selke

Vor kurzem stand ich vor dem Problem, wie Bilder als Logos aus einem Textbaustein in ein Zieldokument übernommen werden können. Ein nicht unübliches Problem, dass ein Dokument aus verschiedenen Bausteinen zusammengesetzt werden soll. Grundsätzlich hatte ich zwei Lösungsansätze: Das Dokument Stück für Stück, Absatz für Absatz übernehmen oder das gesamte Dokument mittels altChunk einbinden. Aus verschiedenen Gründen habe ich mich letztlich für die erste Variante entschieden… Wie aber hätte eine Umsetzung mit altChunk aussehen können? Dieser Frage werde ich in diesem Post nachgehen.

Vorüberlegungen

Zuerst sollte man wissen, dass mit AltChunk ein vollständiges Dokument als binärer Part in das Zieldokument eingefügt wird. Die Dokumente können in OpenXml, html, plain text oder anderen Formate genutzt werden. Es werden nur vollständige Dokumente übernommen. Im Umkehrschluss bedeutet dies: Es ist nicht möglich Teile aus einem Dokument zu übernehmen. Alle unterstützten Formate lassen sich bei Microsoft in der Dokumentation  finden. Weiterhin sollte bekannt sein, dass es sich bei AltChunk um ein Feature handelt, dass nur zusammen mit Word 2007 genutzt werden kann.

Jetzt kann der Quellcode geschrieben werden. Der Ablauf ist relativ trivial. Erst wird das Dokument geöffnet, dann wird der Ziel-HeaderPart bestimmt. Existiert noch kein HeaderPart, wird dieser dem Dokument hinzugefügt. Als Ziel wird der Header für “Erste Seite anders” ausgewählt. Die Wahl fiel auf diesen Header Typen, da Logos in Kopfzeilen einbinden in aller Regel eine Anforderung an die erste Seite eines Schreibens ist. Die zugehörige headerReference ist über den Typ first identifizierbar. Ist der aktuelle Abschnitt nicht darauf ausgerichtet, die erste Seite anders darzustellen, wird ein neues TitlePage Objekt instanziiert und den SectionProperties hinzugefügt. Schließlich wird das Baustein Dokument als AlternativeFormatImportPart dem HeaderPart hinzugefügt. Beim nächsten Öffnen des Zieldokuments wird nun das Bild in der Kopfzeile angezeigt.

Der Quellcode sollte in etwa dem Folgenden entsprechen.

Der Quellcode

private void ImportAltChunk(string documentPath, string importDocumentPath)
{
    using (WordprocessingDocument wordDocument = WordprocessingDocument.Open(documentPath, true))
    {
        MainDocumentPart mainDocumentPart = wordDocument.MainDocumentPart;
        HeaderPart importHeaderPart = FindHeaderPart(mainDocumentPart);

        string altChunkId = "aCh1";
        AlternativeFormatImportPart chunkPart = importHeaderPart.AddAlternativeFormatImportPart(AlternativeFormatImportPartType.WordprocessingML, altChunkId);
        using (FileStream stream = File.Open(importDocumentPath, FileMode.Open))
        {
            chunkPart.FeedData(stream);
        }

        AltChunk altChunk = new AltChunk() { Id = altChunkId };
        importHeaderPart.Header.AppendChild<AltChunk>(altChunk);

        importHeaderPart.Header.Save();
        mainDocumentPart.Document.Save();
    }
}

private void FindHeaderPart(MainDocumentPart mainDocumentPart)
{
    if (mainDocument.Document.Descendants<HeaderReference>().Any())
    {
        return this.GetExistingHeaderPart(mainDocumentPart);
    }
    else
    {
        return this.CreateNewHeaderPart(mainDocumentPart);
    }
}

private HeaderPart GetExistingHeaderPart(MainDocumentPart mainDocumentPart)
{
    HeaderReference reference = mainDocument
        .Document.Descendants<HeaderReference>().First(x => x.Type == HeaderFooterValues.First);
    return (HeaderPart)mainDocument.GetPartById(reference.Id.Value);
}

private HeaderPart CreateNewHeaderPart(MainDocumentPart mainDocumentPart)
{
    SectionProperties mainsection = mainDocument.Document.Body
        .Descendants<SectionProperties>().First();
    HeaderPart newHeaderPart = mainDocument.AddNewPart<HeaderPart>();
    HeaderReference headerReference = mainsection.PrependChild<HeaderReference>(new HeaderReference());
    headerReference.Id = new StringValue();
    headerReference.Id.Value = mainDocument.GetIdOfPart(newHeaderPart);
    headerReference.Type = HeaderFooterValues.First;
    newHeaderPart.Header = new Header();
    mainsection.PrependChild<TitlePage>(new TitlePage());

    return newHeaderPart;
}

Was genau passiert beim Ausführen?

Das Objekt vom Typ AltChunk wurde durch den Quellcode in den Header eingefügt, der für die Darstellung der ersten Seite Ausschlag gebend ist. Dazu wurde die headerReference mit dem Typ first ausgewählt und die MainSection um das Tag w:titlePg erweitert. Die Existenz eines Elements vom Typ TitlePage bewirkt, dass der durch diese SectionProperties (w:sectPr) beschriebene Abschnitt auf seiner ersten Seite die Kopfzeile anders als auf den Folgenden darstellt. Ein typisches Feature für eine Titel Seite eben…

mainDocument_fertig_aenderungen

Innerhalb des Headers wurde das w:altChunk Element mit der vorher festgelegten id=“aCh1” eingefügt. Das <w:altChunk> Tag kann als unmittelbares Unterelement des Headers w:hdr eingefügt werden.

header_fertig

Die Übersetzung der Id zu dem importierten Dokument befindet sich in der zu dem Header gehörenden Relation headerX.xml.rels. Die Angabe der Pfade ist immer relativ. In diesem Fall wird auf die Datei /word/afchunk2.docx verwiesen.

rels

Öffnet man zur Kontrolle das OpenXml Dokument als zip Datei, befindet sich die mit dem Methodenaufruf AddAlternativeFormatImportPart importierte Datei als afchunk2.docx auch in dem entsprechenden Order /word.

zip_structure

Mit dem ersten Öffnen des Dokuments, wird jetzt das Bild aus dem Textbaustein innerhalb der Kopfzeile des Zieldokuments angezeigt. Das Dokument sollte nun folgendermaßen aussehen:

Fertig

 

Ein kurzes Fazit

AltChunk ist eine sehr einfache, leicht umzusetzende und performante Alternative, um komplette Dokumente zusammenzuführen. Aber auch genau hierin liegt die große Limitierung. Es können nur vollständige Dokumente zusammen geführt werden. Besteht die Anforderung etwa nur Diagramme oder Tabellen aus einem Dokument einzubinden, ist dies bereits ein K.O. Kriterium für diesen Ansatz.

Ein kleiner Tipp zum Schluß: Wer selbst definieren möchte, an welcher Stelle der Import stattfinden soll, kann alternativ beispielsweise ein Inhaltssteuerelement als Zielcontainer für altChunk verwenden.

Ich wünsche viel Spaß beim selbst ausprobieren.

Angetestet: SYNCING.NET

11.12.2009 18:01:30 | Klaus Bock

syncing.netWer Microsoft Outlook® verwendet und mehrere Rechner besitzt, kennt das Dilemma der unterschiedlichen Datenstände bestimmt ebenfalls sehr gut. Man ist mit dem Notebook unterwegs und hat den dringend benötigten Kontakt natürlich auf dem Desktop-PC. Oder kürzlich hat man eine interessante Person kennengelernt und will ihr eine Email schreiben, vom Desktop-PC aus. Die Kontaktdaten wurden natürlich schön sauber in Outlook eingetragen, aber auf dem Notebook.
Genau hier setzt das Produkt SYNCING.NET, der gleichnamigen Firma, an. Es verspricht die unterschiedlichen Outlook Datenbeständen auf verschiedenen Rechnern synchron zu halten; auch über das Internet.
Außer Outlook-Daten können auch beliebige andere Dateien auf verschiedenen Rechnern synchron gehalten werden. Einen ersten Überblick, was SYNCING.NET macht, kann man sich auf der Produktseite verschaffen.

Viel mehr als die Arbeitsweiße von SYNCING.NET, interessierte mich die Technik in der Software. Der Name SYNCING.NET suggeriert die Verwendung des .NET-Framework. Also interessierte mich brennend die Frage: ist auch .NET drin, wo .NET draufsteht?
Bevor ich irgendwelche Reverse Engineering Experimente veranstaltete, ging ich den einfacheren Weg: Ich fragte die Entwickler der Anwendung. Sie erteilten mir auch bereitwillig Auskunft.

Q: Wurde die Anwendung tatsächlich auf Basis des .NET-Framework entwickelt, wie der Name suggeriert?
A: SYNCING.NET basiert ursprünglich auf .NET Framework 1.1, wenn auch mit einer externen COM-Komponente. Der erste Prototyp von SYNCING.NET bestand lediglich aus zwei Einzelmodulen:
· GUI in C#.NET (managed Code)
· MAPI-Zugriffsmodul in Visual C++ (unmanaged Code; notwendig wegen MAPI-Zugriff)

In der heutigen Fassung besteht SYNCING.NET aus drei Modulgruppen:
· Applikationskern in C#.NET (managed Code)
· Outlook-Module in Visual C++ (unmanaged Code; notwendig wegen MAPI-Zugriff)
· Infrastruktur-Module in Visual C++ (unmanaged Code; historisch gewachsen, da ursprünglich eigenständige Software)

In der ursprünglichen Fassung musste die Infrastruktur noch durch ein externes Zusatzprogramm bereitgestellt werden; seit SYNCING.NET 2.0 verwenden wir jedoch eine eigene Modulgruppe für diesen Zweck.

Q: Wenn ja, auf Basis von Windows Forms oder schon WPF?
A: Der Applikationskern von SYNCING.NET (mitsamt GUI) verwendet das Windows Forms Widget Set.

Q: Wenn .NET in welcher Sprache, also C#, VB.NET oder managed C++?
A: Der Applikationskern von SYNCING.NET (mitsamt GUI) wurde und wird in reinem C# entwickelt; diese Sprache wird von uns als ideale Sprache für die Entwicklung in .NET angesehen. C++ musste als Sprache beispielsweise extra angepasst (bzw. in seinen Möglichkeiten beschnitten) werden um als „managed C++“ .NET-kompatibel zu sein; VB.NET hingegen ist wie seinerzeit schon VB einfach nicht mächtig genug für die professionelle Entwicklung.

Q: Wenn die Anwendung nicht auf .NET basiert, ist auch eine 64bit Variante erhältlich? Diese ist ein Punkt, der heute immer mehr Anwender interessiert.
A: Eine echte 64-Bit-Umsetzung ist bei unseren Outlook- und Infrastrukturmodulen bereits umgesetzt worden wodurch auf 64-Bit-Windows-Systemen auch die Verarbeitung spürbar schneller ist als auf 32-Bit basierten; lediglich unser Applikationskern inklusive GUI wird weiterhin im 32-Bit-Modus ausgeführt, da hier eine messbare Beschleunigung der Verarbeitungsgeschwindigkeit in keiner Relation zum Aufwand eines 64-Bit-basierenden Redesign stehen würde.

Mir persönlich gefallen an den Antworten der Entwickler besonders drei Dinge:
· Die Anwendung basiert tatsächlich auf dem .NET-Framework.
· C# scheint die bevorzugte .NET Sprache zu sein.
· Auch Entwickler kommerziellere Software verwenden gerne Module aus unmanaged Code.

Zusätzlich zu einer Software die nun endlich Ordnung in mein Outlook Chaos bringt, wurde ich auch in meiner Entscheidung bekräftigt, weiterhin auf das .NET-Framework als Entwicklungsplattform zu setzen.

Technorati-Tags: | | |

Der MSDN-Weihnachtswebcast

11.12.2009 16:12:20 | Oliver Scheer

Alle Jahre wieder treibt der Weihnachtsmann auch bei MSDN sein Unwesen und lädt Entwickler zu einem besinnlichen Online-Live-Meeting ein. Seine Vertreter auf Erden, Bernd Marquardt und Neno Loje, werfen dabei wie immer einen Blick zurück auf einige Technologie-Highlights des abgelaufenen Jahres und auf solche, derer wir noch gemeinsam harren. Und nebenher veranstalten die beiden Experten der „XMAS Presentation Foundation“ natürlich auch diesmal wieder das schon legendäre Weihnachts-Gewinnspiel, bei dem Sie als Teilnehmer live Fragen beantworten und gleich etwas gewinnen können. Verlost werden professionelle Software, viele Bücher und allerlei andere nützliche Pretiosen, die den Entwickleralltag leichter machen. Was genau, wird noch nicht verraten, aber wie spricht schon der Volksmund: „Der Weihnachtsmann sagt ‚Ho, Ho, Ho‘, ich bring‘ Euch Visual …“ (Basic?, C#?)

Termin: Mittwoch, 16.12.2009 16:00

Kostenfreie Anmeldung unter: http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032437099&Culture=de-DE

Azure Information Day

11.12.2009 13:51:44 | Oliver Scheer

Windows Azure ist das neue Cloud Computing-Angebot von Microsoft, mit dem Unternehmen, IT-Dienstleister, Softwarehersteller und Entwickler Websites, Webanwendungen und Webdienste sowie Speicherplatz sehr einfach, hoch verfügbar und skalierbar in Microsoft Rechenzentren bereitstellen können. Windows Azure entlastet Sie dabei von jeglichen Administrationsarbeiten.

Windows Azure zeichnet sich durch Kosteneffizienz, eine sehr hohe Verfügbarkeit und Skalierbarkeit über mehrere Server sowie über eine extrem einfache Bereitstellung und ein automatisches Management von IT-Lösungen aus.

Aktuelle Termine

Melden Sie sich gleich HIER an.

Ankündigung: xtopia[kompakt] Roadshow 2010

11.12.2009 13:47:27 | Oliver Scheer

Weihnachten steht vor der Tür und passend dazu gibt es frohe Kunde: Die xtopia[kompakt] Roadshow geht in die nächste Runde!

Nach dem sensationellen Erfolg in diesem Jahr touren wir auch im kommenden Frühjahr durch Deutschland und geben Euch die Gelegenheit ein Feuerwerk an Innovationen im Bereich Web, User Experience und RIA zu erleben. Und das Alles kostenlos!

Wann und Wo? - Termine und Locations

Die Roadshow macht in sechs Städten in Deutschland halt. Beginn ist 17 Uhr, Ende der Veranstaltung ist gegen 22 Uhr.

  • Montag, 19.04.2010: Hilton München Park, München
  • Dienstag, 20.04.2010: Best Western, Karlsruhe
  • Mittwoch, 21.04.2010: Maritim, Bad Homburg
  • Montag, 26.04.2010: Leonardo Hotel, Köln
  • Dienstag, 27.04.2010: Baseler Hof, Hamburg
  • Mittwoch, 28.04.2010: Mövenpick, Berlin

Was erwartet Euch?

Neben interessanten Vorträgen von Microsoft Sprechern zu neuen Technologien und Innovationen werden wieder verschiedene namhafte Agenturen das Thema Web-und Interface Design und User Experience aus der Praxis vorstellen. Außerdem werden bekannte Unternehmen über die Verwendung von Interface-Design Werkzeugen sprechen.

In den Pausen und im Anschluss an die Veranstaltung gibt es natürlich Gelegenheit sich untereinander auszutauschen und in entspannter Atmosphäre neue Kontakte zu schließen.

Anmeldung

Ab Mitte Januar könnt ihr euch für dieses kostenlose Event-Highlight registrieren. Alle Infos sowie Neuigkeiten zu Sprechern und Agenda findet Ihr wie immer hier im Blog!

Ein Rückblick

Damit alle, die letztes Jahr nicht dabei waren, einen Eindruck von der xtopia [kompakt] Roadshow bekommen hier ein Themenüberblick der diesjährigen Veranstaltung:

clip_image002

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

Whitepaper: Effiziente Qualitätssicherung und Testen mit Microsoft® Visual Studio® 2010

11.12.2009 13:38:31 | Oliver Scheer

Mit den neuen Funktionen von Visual Studio 2010 können Unternehmen ihre Anwendungen effizient und komfortabel testen; das schließt Windows-Anwendungen inklusive Windows® 7 ein, sowie Webanwendungen und .NET Framework-basierte Anwendungen inklusive .NET Framework 4 – sowohl in virtuellen, wie in echten 32- und 64-Bit-Umgebungen. Die neuen Werkzeuge und Workflows in Visual Studio 2010 bringen Tester und Entwickler enger zusammen. Sie optimieren den Informationsfluss und enthalten innovative neue Funktionen, beispielsweise zum Vermeiden von “Fehler-Ping-Pong” durch nicht reproduzierbare Bugs. Zielgruppe für dieses Whitepaper sind Tester, Testmanager und Verantwortliche für Qualitätssicherung in Softwareprojekten.
Zum Download als PDF-Datei oder XPS-Datei.

Neu : VS 2010 Webcast Serie mit Dariusz und Mir :-)

11.12.2009 13:18:00 | Christian Binder

Nachdem TechTalk letzte Woche haben wir uns entschieden auf dieser Basis (Beta2) eine kurze Webcast Serie aufzunehmen, falls es jemanden über die Feiertage langweilig werden sollte :-) Die ersten Teile sollten ab dem 14.12 hier verfügbar sein. Für VS 2010 RTM planen eine deutlich Umfangreichere Serie zu produzieren,
wollen damit aber erst mit den RC Bits beginnen.

Application Development mit Visual Studio 2010

Auf Basis der Visual Studio 2010 Beta 2 zeigt Dariusz Parys und Christian Binder am Beispiel einer Windows Forms Anwendung einige Aspekte der Anwendungs Entwicklung. Focus der Serie sind vor allem Entwickler und Tester. Angefangen mit einigen Grundlagen zu Agiler Software Entwicklung mit VS 2010 über die Erweiterung der Windows Forms Anwendung bis hin zum Testing der Anwendung wird alles in einem EndtoEnd Demo gezeigt. Nach Erweiterung und Test der Windows Forms Anwendung zeigt, Dariusz wie man mit Hilfe neuer .NET Framework Technologien , wie Workflow Foundation 4, Entitiy Framework 4 und ASP.Net MVC, das Anwednungs Szenario effizient erweitern kann

Teil 1 : Agile Software Development mit VS 2010

Der erste Teil beleuchtet kurz die Application Lifecyle Managment Platform VS 2010 und fokussiert hierbei Agile Software Development auf Basis von SCRUM mit dem MSF Agile Process Template. Es werden Grundsätzliche Mechanismen des Agilen Prozesses erläutert, wie Product Backlog und Sprints. Danach Starten wir in die Windows Forms Demo und es gibt’s keine weiteren Slides mehr für die ganze Webcast Serie. 

Teil 2 : Entwicklung einer Windows Forms Anwendung mit VS 2010

Im Zweiten Teil wird die Windows Forms Anwendung erst mal mit den neuen Architecture Tools analysiert und dann im Context einer UserStory erweitert. Hierbei arbeiten wir auch mit entsprechenden Version Control Branch Strukturen , führen Checkins durch und nutzen Team Builds.

Teil 3 : Testing der Windows Forms Anwendung  mit VS 2010

Im dritten Teil Testen wir die implementierten Windows Forms Erweiterungen. Debuggen Fehler, beheben Fehler und automatisieren UI Tests. Hiebei stehen die neuen Tools zu Test Planung und Test Ausführung , sowie Debugging Features, wie IntelliTrace im Fokus.

Teil 4 : Erweiterung der Anwendung mit dem ASP.NET MVC 2, WF 4 und EF 4  (Teil1)
Teil 5 : Erweiterung der Anwendung mit dem ASP.NET MVC 2, WF 4 und EF 4  (Teil2)

Im vierten und fünften Teil geht es um die Integration eines Backend Systems welches die Zentrale unserer Demo Lösung darstellt. Die Zentrale beliefert die Filialen mit Waren und die Filialen melden Ihre Abverkäufe Ihrer Kassen an die Zentrale zurück. Die Software auf der Zentralseite ist eine Web Anwendung die wir mit ASP.NET MVC 2 schreiben werden, der Datenzugriff wird über das Entity Framework 4 erfolgen und die Abwicklung aller Prozesse übernimmt die Workflow Foundation 4.

Viel Spass
Chris

msdn tv spezial - Ziehung der Expression Studio 3 Gewinner

11.12.2009 10:16:51 | Jan Schenk



tweetmeme_url = 'http://blogs.msdn.com/jansche/archive/2009/12/11/msdn-tv-spezial-ziehung-der-expression-studio-3-gewinner.aspx'; tweetmeme_source = 'jansche';

Es ist soweit! Wir ziehen die Gewinner des msdn tv Gewinnspiels, in dem es 5 Expression Studio 3 Boxen zu gewinnen gab. Dafür habe ich extra meine Academia-Kollegin Anne Michels gebeten, meine Glücksfee zu sein. Sie zieht aus allen Einsendungen - natürlich haben wir auch Postkarten und Briefe berücksichtigt - 5 Gewinner. Deren Namen sind teils recht kryptisch, wie Twitter-Accounts halt mal so sind. Trotzdem macht sie einen Superjob und verhilft 5 glücklichen Gewinnern zu einer erstklassigen Designtool-Sammlung für Silverlight, .NET und das Web.

Den Hut/Helm hat diesmal auch Anne auf. Als Gentleman bin ich ihrer Bitte nur zu gerne nachgekommen und die Hut- bzw. Helmfrage hatte sich erledigt. Ausserdem ist es immer besser sich vor Unvorhersehbarkeiten zu schützen ;-) !

Wer diesmal kein Glück hatte, der kommt vielleicht beim nächsten Mal zum Zug, wenn es wieder ein Gewinnspiel bei msdn tv gibt. Immer ein Gewinn ist "msdn tv - Nachrichten für Entwickler" ohnehin. Mit spannenden Interviews und interessanten News für alle Technikbegeisterte.

Herzlichen Glückwunsch an alle Gewinner!
jan

Kostenlose Veranstaltung: Microsoft Business Process & Integration Community Tag

11.12.2009 08:16:00 | Kay Giza

Unter dem Motto „Connected with Competence” lädt Microsoft am 24. Februar 2010 IT Professionals, technisch orientierte Entscheider und Entwickler in Köln zu einem kostenlosen Infotag rund ums Thema „BizTalk Server“. Microsoft-Experten und ausgewählten Partner zeigen dabei im Rahmen von Sessions und an Ausstellungsständen, wie Mehrwert mit und für den BizTalk Server geschaffen wird. Teilnehmer erhalten Einblicke in innovative Problemlösungen, z.B. bei SAP-, Dynamics- und SharePoint-Integration. Ferner erfahren sie alles über BizTalk Server 2009 R2, der in 2010 auf den Markt kommt, sowie die Microsoft BPM & SOA Roadmap.

Von 15.30-16.15 Uhr werde ich die Closing-Session halten und zum Thema "MSDN, TechNet und Services Angebote von Microsoft für Kunden und Partner" das Angebot des Microsoft Developer Network (MSDN) vorstellen. Ich werde auf interessante, bekannte und unbekannte Services aufmerksam machen, in Demos zeigen wie man als Entwickler (insbesondere zum Thema BizTalk Server) sich am schnellsten und besten orientieren kann, mit dem Ziel: Ihre tägliche Arbeit zu beschleunigen und Ihnen somit helfen.

Anmeldung und Details unter www.connected-with-competence.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-2010 Kay Giza. All rights reserved. Legal
Subscribe

Einladung: Fokusgruppe fuer Corporate Developer am 15. Dezember 2009 in Muenchen

11.12.2009 08:05:46 | Kay Giza

Eine etwas vielleicht außergewöhnliche Anfrage, aber ich denke vielleicht ist es für den einen oder anderen Blogleser hier für Interesse? Am kommenden Dienstag, den 15. Dezember 2009, möchten wir gerne eine (weihnachtliches) spontane Feedback-Veranstaltung für sogenannte "Corporate Developer" durchführen. Falls jemand von Ihnen Lust sowie Zeit und Interesse hätte, an der Veranstaltung teilzunehmen und uns Ihr Feedback zu unseren Angeboten für Entwickler geben können, würden wir uns sehr freuen! Details und Anmeldung zu diesem Termin entnehmen Sie bitte diesem Blogeintrag 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-2010 Kay Giza. All rights reserved. Legal
Subscribe

Ankündigung: xtopia[kompakt] Roadshow 2010

09.12.2009 10:20:18 | Jan Schenk



tweetmeme_url = 'http://blogs.msdn.com/jansche/archive/2009/12/09/ank-ndigung-xtopia-kompakt-roadshow-2010.aspx'; tweetmeme_source = 'jansche';

clip_image001

Weihnachten steht vor der Tür und passend dazu gibt es frohe Kunde: Die xtopia[kompakt] Roadshow geht in die nächste Runde!

Nach dem sensationellen Erfolg in diesem Jahr touren wir auch im kommenden Frühjahr durch Deutschland und geben Euch die Gelegenheit ein Feuerwerk an Innovationen im Bereich Web, User Experience und RIA zu erleben. Und das Alles kostenlos!

Wann und Wo? - Termine und Locations

Die Roadshow macht in sechs Städten in Deutschland halt. Beginn ist 17 Uhr, Ende der Veranstaltung ist gegen 22 Uhr.

Montag, 19.04.2010: Hilton München Park, München

Dienstag, 20.04.2010: Best Western, Karlsruhe

Mittwoch, 21.04.2010: Maritim, Bad Homburg

Montag, 26.04.2010: Leonardo Hotel, Köln

Dienstag, 27.04.2010: Baseler Hof, Hamburg

Mittwoch, 28.04.2010: Mövenpick, Berlin

Was erwartet Euch?

Neben interessanten Vorträgen von Microsoft Sprechern zu neuen Technologien und Innovationen werden wieder verschiedene namhafte Agenturen das Thema Web-und Interface Design und User Experience aus der Praxis vorstellen. Außerdem werden bekannte Unternehmen über die Verwendung von Interface-Design Werkzeugen sprechen.

In den Pausen und im Anschluss an die Veranstaltung gibt es natürlich Gelegenheit sich untereinander auszutauschen und in entspannter Atmosphäre neue Kontakte zu schließen.

Anmeldung

Ab Mitte Januar könnt ihr euch für dieses kostenlose Event-Highlight registrieren. Alle Infos sowie Neuigkeiten zu Sprechern und Agenda findet Ihr wie immer hier im Blog!

Ein Rückblick

Damit alle, die letztes Jahr nicht dabei waren, einen Eindruck von der xtopia [kompakt] Roadshow bekommen hier ein Themenüberblick der diesjährigen Veranstaltung:

2009 Rückblick

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

Merkt Euch die Termine im Kalender vor, meldet Euch im Januar an und freut Euch auf ein Feuerwerk der Innovationen!

HowTo: Globalization/Localization mit ASP.NET MVC – streng typisiert

09.12.2009 02:11:54 | Robert Mühsig

In einen meiner letzten HowTos ging es um die Mehrsprachigkeit in ASP.NET MVC Anwendungen. Dort hatte ich ein System empfohlen, welche über bestimmte Expressions die Resourcendatein auslesen. Es geht natürlich viel einfacher und eleganter: Einfach über Resources zugreifen.   Die erste Variante: In der ersten Variante konnte ich so die Resourcendatein auslesen: Global resource : <%=Html.Resource("Strings, GlobalResourceKey") %><br [...]SHARETHIS.addEntry({ title: "HowTo: Globalization/Localization mit ASP.NET MVC – streng typisiert", url: "http://code-inside.de/blog/2009/12/09/howto-globalizationlocalization-mit-asp-net-mvc-streng-typisiert/" });

MVP für VSTO Projekte. Auch hier gilt: Spaghetti auf den Tisch

09.12.2009 00:02:00 | Jan Christian Selke

Monolithische Anwendungen sind im Bereich der VSTO Entwicklung keine Seltenheit. Die Callback Methoden der Ribbon Klasse laden, ähnlich des button1_Click, förmlich dazu  ein. Es geht aber auch anders, denn auch hier lässt sich beispielsweise das Model-View-Presenter Pattern (MVP) anwenden.

Bisher wird in aller Regelmäßigkeit, dem Ribbon Support sei Dank, eine Ribbon Klasse dem Projekt hinzugefügt und die CallBack Methode direkt aufgefüllt. Der Quellcode zum Überschreiben von Word Dokumenttext könnte diesem dann ähneln.

private void button1_Click(object sender, RibbonControlEventArgs e)
{
    using (SqlConnection sqlConnection = new SqlConnection(connectionString))
    {
        using (SqlCommand sqlCommand = new SqlCommand("Select name, vorname from user", sqlConnection))
        {
            SqlDataReader dataReader = null;
            try
            {
                string newText = string.Empty;
                dataReader = sqlCommand.ExecuteReader();
                while (dataReader != null && dataReader.Read())
                {
                    newText += string.Format("{0}, {1}" + Environment.NewLine, dataReader[0], dataReader[1]);
                }

                Globals.ThisAddIn.Application.ActiveDocument.Content.Text = newText;
            }
            finally
            {
                if (dataReader != null)
                {
                    dataReader.Close();
                }
            }
        }
    }
}

Die Limitierungen dieses Vorgehens in Hinblick auf Wartbarkeit und Testfähigkeit, konnte ich in einem meiner letzten Projekte am eigenen Leibe erfahren. Unabhängig davon verstößt es zudem gegen fast alle gängigen Softwareentwicklungsprinzipien (SRP, OCP etc.). Datenzugriffe, Ablauflogik und UI Steuerung in einer Klasse/Methode ist kein sauberes Vorgehen... Die daraufhin im Projekt entwickelte und eingesetzte Struktur möchte ich im Folgenden vorstellen.

Also…

Wie kann am besten vorgegangen werden?

Da das Ribbon letztlich das UI repräsentiert kann auch hier anhand des MVP vorgegangen werden, um Verantwortlichkeiten und Funktionalitäten zu separieren und damit die Komponenten unabhängig voneinander erweiterbar und testfähig zu machen. Was ist aber das Model, was der View und welches der Presenter? Der initiale View ist die Ribbon Klasse die bereits existiert. Es wird noch ein Presenter und das Model benötigt.

Im weiteren Vorgehen werden als erstes Kontrakte erstellt, um durch eine saubere Trennung der Komponenten vor allem Wart-  und Testbarkeit zu gewährleisten. Hierzu werden die Basis Schnittstellen IView, IPresenter und IModel angelegt.

Meine persönliche Vorliebe geht in Richtung passiver View. Ich bin der Auffassung ein View sollte anzeigen und damit hat er genug zu tun. Zudem wird wesentlich stärker zwischen Anzeige und Logik entkoppelt. Daher ist dem View selbst der Presenter und das Model unbekannt. Die Kommunikation zwischen Presenter und View erfolgt ausschließlich auf Basis von Events und Methoden, die aus dem View Kontrakt hervorgehen. Da der Presenter den View nur über seinen Kontrakt kennt, ist der erreichte Grad an Entkopplung aus meiner Sicht optimal.

Der Kontrakt

Die grundlegende IView Schnittstelle ist sehr schlank gehalten. Sie definiert nur Events und Methoden für das Öffnen und Schließen des Views.

public interface IView
{
    event LoadEventHandler LoadEvent;
    event CloseEventHandler CloseEvent;
    void ShowView();
    void CloseView();
}

Die Presenter Basisschnittstelle IPresenter deklariert typisierte Instanzen des Views und des Models. Eine Methode Initialize wird vorgegeben, in deren später vorgenommener Implementierung sich auf die Events des Views registriert wird. Durch diese Eventsteuerung wird der Inhalt des Views anhand der durch den Kontrakt bereitgestellten Methoden manipuliert. Die IPresenter Schnittstelle hat folgende Struktur.

public interface IPresenter<TView, TModel> where TView : IView where TModel : IModel
{
    TView View { get; }
    TModel Model { get; }
    void Initialize();

}

Das Model beinhaltet die Ablauflogik und Zugriffe auf externe Datenquellen. Der Basiskontrakt IModel ist sehr übersichtlich:

public interface IModel
{
    void Initialize();
}

Die grundlegende Funktionalität eines Presenters wird in einer abstrakten Basisklasse BasePresenter implementiert. Dazu gehört die Implementierung von IPresenter, sowie das Registrieren auf die IView Events in der Methode Initialize. Diese Methode RegisterEvents kann von jedem konkreten Presenter um die View spezifischen Registrierungen erweitert werden.

public abstract class BasePresenter<TView, TModel> : IPresenter<TView, TModel> where TView : IView where TModel : IModel
{
    private TView view;
    private TModel model;

    public BasePresenter(TView view, TModel model)
    {
        this.view = view;
        this.model = model;
    }

    public TView View
    {
        get { return this.view; }
    }

    public TModel Model
    {
        get { return this.model; }
    }

    public void Initialize()
    {
        this.RegisterEvents();
    }

    protected virtual void RegisterEvents()
    {
        view.LoadEvent += OnLoadEvent;

                               view.CloseEvent += OnCloseEvent;
    }

    private void OnLoadEvent(object sender, LoadEventHandlerArgs args)
    {
    }

    private void OnCloseEvent(object sender, CloseEventHandlerArgs args)
    {
    }

}

Die Abhängigkeiten zum View und dem Model, die über den Konstruktor hereingereicht werden, werden durch den Einsatz von StructureMap aufgelöst. Wie das im Detail funktioniert, zeige ich zum Schluss.

Nachdem das Fundament gelegt ist, folgt jetzt die Konkretisierung für den Ribbon. Die IRibbonView Schnittstelle implementiert die Basis IView und erweitert diese um die Events, die bei Aufruf der Callback Methode(n) ausgelöst werden sollen. Implementiert wird die Schnittstelle später direkt in der Ribbon Klasse.

public interface IRibbonView : IView 
{
   
event ReplaceContentTextHandler ReplaceContentText;  
    void SetContentText(string newContentText); 
}

Der Presenter Kontrakt IRibbonPresenter implementiert IPresenter und definiert die Methode ReplaceViewContentText zum Setzen des Textes im Dokument.

public interface IRibbonPresenter : IPresenter<IRibbonView, IRibbonModel>,
{
    void ReplaceViewContentText();
}

Als letztes folgt die Schnittstelle IRibbonModel für das Model. Die Datenbankzugriffe, die hinter dem Model mit einem Repository realisiert werden, sollen im Rahmen dieses Beispiels keine weitere Beachtung finden. Das Model implementiert den Basiskontrakt IModel und beschreibt die Methode GetPersons, die eine Aufzählung aller Objekte des Typs Person liefert.

public interface IRibbonModel : IModel
{
    IEnumerable<Person> GetPersons();
}

Die Implementierung der konkreten Klassen

Als erstes wird in die Klasse Ribbon, wie oben bereits angemerkt, die Schnittstellt IRibbonView implementiert. Dies hat die folgenden Erweiterungen zur Folge:

public event ReplaceContentTextHandler ReplaceContentTextEvent;
public event LoadEventHandler LoadEvent;

public void SetContentText(string newContentText)
{
    throw new NotImplementedException();
}

Zusätzlich werden der OnLoad und der button1_Click Callback erweitert und die Methode SetContentText mit Leben gefüllt.

public void SetContentText(string newContentText)
{
    Globals.ThisAddIn.Application.ActiveDocument.Content.Text = newContentText;
}

private void Ribbon1_Load(object sender, RibbonUIEventArgs e)
{
    if(this.LoadEvent != null)
    {
        this.LoadEvent(this, new LoadEventHandlerArgs());
    }
}

private void button1_Click(object sender, RibbonControlEventArgs e)
{
    if(this.ReplaceContentText != null)
    {
        this.ReplaceContentText(this, new ReplaceContentTextEventHandlerArgs());
    }
}

Die vollständige Ribbon Klasse sollte nun folgenden Quellcode aufweisen.

public partial class Ribbon : OfficeRibbon, IRibbonView
{
    public Ribbon()
    {
        InitializeComponent(); 
    }

    public event ReplaceContentTextEventHandler ReplaceContentTextEvent;
   public event LoadEventHandler LoadEvent;

    public void SetContentText(string newContentText)
    {
        Globals.ThisAddIn.Application.ActiveDocument.Content.Text = newContentText;
    }

    private void Ribbon_Load(object sender, RibbonUIEventArgs e)
    {
        if (this.LoadEvent != null)
        {
            this.LoadEvent(this, new LoadEventHandlerArgs());
        }
    }

    private void button1_Click(object sender, RibbonControlEventArgs e)
    {
        if (this.ReplaceContentTextEvent != null)
        {
            this.ReplaceContentTextEvent(this, new ReplaceContentTextEventHandlerArgs());
        }
    }
}

Der View, also der Ribbon, sind an dieser Stelle soweit fertig. Als nächstes folgt die Implementierung des RibbonModel, dass die Daten der Personen aus der Datenbank ausliest und dem Presenter liefert. Der Aufruf ist in ein Repository weggekapselt.

public class RibbonModel : IRibbonModel
{
    public RibbonModel()
    {
    }

    public IEnumerable<Person> GetPersons()
    {
        return DbRepository.GetPersons();
    }
}

Der RibbonPresenter schließlich implementiert die IRibbonPresenter Schnittstelle und den BasePresenter. Die im BasePresenter implementierte Methode Initialize ruft die Ableitung von RegisterEvents auf, die wiederum die Basis im BasePresenter aufruft. Damit werden alle vorhandenen Events registriert. Auf das Event ReplaceContentTextEvent wird direkt die Methode ReplaceViewContentText zum Setzen des Inhalts registriert. Der implementierte BasPresenter wird mit den konkreten View und Model Kontrakten typisiert. So kann der RibbonPresenter auf die für ihn spezifischen Typen zugreifen.

public class RibbonPresenter : BasePresenter<IRibbonView, IRibbonModel>, IRibbonPresenter
{
    public RibbonPresenter(IRibbonView view, IRibbonModel model)
        : base(view, model)
    {
    }

    public void ReplaceViewContentText()
    {
        string newContent = string.Empty;
        foreach (Person person in DbRepository.GetPersons())
        {
            newContent += string.Format(
                "{0}, {1}",
                person.Name,
                person.Vorname);
            newContent += Environment.NewLine;
        }

        this.View.SetContentText(newContent);
    }

    protected override void RegisterEvents()
    {
        base.RegisterEvents();

        this.View.ReplaceContentTextEvent += new ReplaceContentTextEventHandler(ReplaceContentTextEvent);
    }
}

Die Initialisierung

Die Initialisierung und Auflösung der Abhängigkeiten des Presenters erfolgt mit StructureMap. Dazu wird eine Klasse  RibbonRegistry erstellt, die von Registry aus dem Namensraum StructureMap.Configuration.Dsl ableitet. Registriert werden die Kontrakte des Ribbons mit der zugehörigen konkreten Implementierung.

public class RibbonRegistry : Registry
{
    public RibbonRegistry()
    {
        ForRequestedType<IRibbonView>()
            .TheDefaultIsConcreteType<Ribbon>();
        ForRequestedType<IRibbonModel>()
            .TheDefaultIsConcreteType<RibbonModel>();
        ForRequestedType<IRibbonPresenter>()
            .TheDefaultIsConcreteType<RibbonPresenter>();
    }
}

Die Initialisierung des Presenters erfolgt schließlich im Konstruktor der Ribbon Klasse. Dazu wird dieser um die folgenden Zeilen erweitert.

public Ribbon()
{
    InitializeComponent();
    ObjectFactory.Initialize(x =>
        {
            x.AddRegistry(new RibbonRegistry());
        });

    ObjectFactory.Inject<IRibbonView>(this);
    IRibbonModel model = ObjectFactory.GetInstance<IRibbonModel>();
    ObjectFactory.With(this).With(model).GetInstance<IRibbonPresenter>().Initialize();
}

Der Aufruf ObjectFactory.Inject<IRibbonView>(this) ist notwendig, um einen StackOverflow zu unterbinden. Würde nicht das konkrete Objekt bereits an die ObjectFactory übergeben, versuchte StructureMap ständig eine neue Instanz der Klasse Ribbon zu erzeugen, obwohl this übergeben wird. Da sich dieser Aufruf im Konstruktor befindet, würde mit jeder Typinitialisierung des Ribbons eine neue Instanziierung stattfinden…

Ich hoffe, dass ich einen Anreiz geben konnte und würde mich über jede Art von Feedback, Kommentare, Anmerkungen oder Verbesserungsvorschläge herzlich freuen. Ein kleines Beispielprojekt werde ich bald zum Download bereitstellen.

MSDN Weihnachts-Webcast 2009: Alle Jahre wieder...

08.12.2009 19:35:57 | Kay Giza

Ich freue mich wirklich sehr, in guter alter Tradition, folgendes wieder ankündigen zu dürfen!
Alle Jahre wieder treibt der Weihnachtsmann auch bei MSDN Online sein Unwesen und lädt Entwickler zu einem besinnlichen Online-Live-Meeting ein:

Diesmal am Mittwoch, den 16. Dezember, von 16:00 bis 17:30 Uhr. Seine Vertreter auf Erden, Bernd Marquardt und Neno Loje, werfen dabei gemeinsam einen Blick zurück auf einige Technologie-Highlights des abgelaufenen Jahres und auf solche, derer wir in 2010 gemeinsam harren. Und nebenher veranstalten die beiden Experten der „XMAS Presentation Foundation“ natürlich wieder das schon legendäre Weihnachts-Gewinnspiel, bei dem Sie als Teilnehmer live Fragen beantworten und gleich gewinnen können.

Verlost werden professionelle Software, viele Bücher und allerlei andere nützliche Pretiosen, die den Entwickleralltag leichter machen.

Wie jedes Jahr freuen wir uns (und natürlich auch der Weihnachtsmann ;-), viele dutzende Live-Webcast-Besucher begrüßen zu dürfen. Alte Traditionen soll man also nicht aufgeben, daher: Ich hoffe wir sehen und hören uns am 16.12.2009 auf MSDN Online! Und nicht vergessen: Weitersagen! Denn den Spezial-Webcast gibt es wirklich nur einmal im Jahr ;-)

Link: Süßer, die Glocken - Der MSDN Weihnachts-Webcast
(Achtung, Anmeldung vorweg nicht vergessen!)



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-2010 Kay Giza. All rights reserved. Legal
Subscribe

Alle Jahre wieder, kommt… der Weihnachstwebcast!

08.12.2009 18:47:43 | Peter Kirchner

Alle Jahre wieder treibt der Weihnachtsmann auch bei MSDN sein Unwesen und lädt Entwickler zu einem besinnlichen Online-Live-Meeting ein. Seine Vertreter auf Erden, Bernd Marquardt und Neno Loje, werfen dabei wie immer einen Blick zurück auf einige Technologie-Highlights des abgelaufenen Jahres und auf solche, derer wir noch gemeinsam harren. Und nebenher veranstalten die beiden Experten der „XMAS Presentation Foundation“ natürlich auch diesmal wieder das schon legendäre Weihnachts-Gewinnspiel, bei dem Sie als Teilnehmer live Fragen beantworten und gleich etwas gewinnen können. Verlost werden professionelle Software, viele Bücher und allerlei andere nützliche Pretiosen, die den Entwickleralltag leichter machen. Was genau, wird noch nicht verraten, aber wie spricht schon der Volksmund: „Der Weihnachtsmann sagt ‚Ho, Ho, Ho‘, ich bring‘ Euch Visual …“ (Basic?, C#?)

Wann? Nächste Woche schon! Am Mittwoch, dem 16.12.2009 ab 16 Uhr

Anmeldung hier: http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032437099&Culture=de-DE

15.12.09 Treffen der .NET Developer Group Braunschweig - Cloud Computing, VS 2010 & MS Office 2010 - Was gibt es Neues?

08.12.2009 06:59:00 | Lars Keller

Unser 40 User Group Treffen der .NET Developer Group Braunschweig findet am 15.12.09, ab 19 Uhr in der Kilian’s Raffinerie statt.

Bei unserem Weihnachtsevent dreht sich alles um die im nächsten Jahr auf uns zu kommenden Themen:
Alles redet von Cloud Computing bzw. Microsoft Azure, aber nur wenige wissen, was das überhaupt ist, was man damit machen kann und ob es für einen persönlich überhaupt interessant ist. Der Vortrag soll Entscheidern und Entwicklern einen Überblick geben, in welchen Anwendungsszenarien die Verwendung von Azure sinnvoll sein kann.
Visual Studio 2010 soll im zweiten Quartal erscheinen. In einem kleinen Rundflug durch die aktuelle Beta-Version wird gezeigt, welche neuen Features (z.B. Historical Debugging) bald zum Entwickleralltag gehören werden.
Auch die kommende MS Office 2010 Version wird ein Thema des Abends sein. Was gibt es für neue Features und welche neuen Möglichkeiten gibt es für .NET Entwickler mit VSTO 4.0.

Referenten sind Karim El Jed und Lars Keller.

Weitere Informationen unter www.dotnet-braunschweig.de.

Wie immer ist jeder herzlich willkommen!

Die Montagsmeinung – Das Wertvollste sind meine Daten

07.12.2009 17:04:18 | Jan Schenk



tweetmeme_url = 'http://blogs.msdn.com/jansche/archive/2009/12/07/die-montagsmeinung-das-wertvollste-sind-meine-daten.aspx'; tweetmeme_source = 'jansche';

 

500_kV_Switch1 Es ist mal wieder Zeit für eine Montagsmeinung. Höchste Zeit! Dank der Ankündigung des DNS-Dienstes eines global agierenden Suchanbieters frage ich mich immer wieder, welche Motivation hinter solchen Bestrebungen stecken kann. Und ich sehe ein Muster, das sich gar nicht mal so langsam abzeichnet, und an dem schon so viele Unternehmen […]

Weiterlesen auf http://www.der-evangelist.de.

Sorry für die Weiterleitung, aber manche Themen sind so subjektiv, dass ich sie nur auf meinem privaten Blog veröffentliche.

Neuer Artikel auf dotnet.de: “…Und Silverlight 4 war auch meine Idee”

07.12.2009 08:46:43 | Gregor Biswanger

dotnet.de-logo

 

Auf dem Webportal dotnet.de gibt es einen neuen Artikel meinerseits.

Zu lesen ist der freie Online-Artikel unter folgendem Link:

…Und Silverlight 4 war auch meine Idee

 

dotnet.de

Tabellen und Abfragen einer Access-OleDbConnection ermitteln

06.12.2009 10:32:00 | Martin Hey

Möchte man dem Endanwender selbst die Entscheidung überlassen, welche Datenbankobjekte für eine bestimmte Operation relevant sind, so bietet es sich an, diese als Auswahl bereitzustellen und so Fehleingaben und Frust bei manueller Eingabe zu vermeiden. Das Beispiel soll zeigen, wie alle Tabellen und Abfragen einer Access 2003 Datenbank ermittelt werden können. Schnell ist herausgefunden, dass die Methode GetOleDbSchemaTable diese Aufgabe unterstützen kann - aber wie geht man damit genau um?

Tabellen ermitteln
Zunächst gilt es, alle Tabellen zu ermitteln. Im einfachsten Fall ruft man dafür
DataTable schemaTable = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
auf, wobei "connection" eine bestehende OleDbConnection auf die fragliche Access-Datenbank ist.

Das Ergebnis ist ein DataTable. Die Spalte "TABLE_TYPE" ermöglicht eine Filterung auf die verschiedenen Objekttypen. Dabei haben Benutzertabellen den Typ "TABLE", verknüpfte Tabellen den Typ "LINK". Diese Filterung kann auch gleich beim Aufruf der Funktion durchgeführt werden, indem der zweite Parameter der Funktion GetOleDbSchemaTable mit befüllt wird. Der folgende Aufruf gibt die DataTable gefiltert nach dem Typ "TABLE" zurück.
DataTable schemaTable = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,new object[] { null, null, null, "TABLE" });


Abfragen ermitteln
Für die Ermittlung der Views gibt es mehrere Möglichkeiten. Die erste sticht direkt ins Auge - ein Aufruf von
DataTable schemaTable = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,new object[] { null, null, null, "VIEW" });

Eine weitere Möglichkeit ist, "GetOleDbSchemaTable" mit dem Parameter "OleDbSchemaGuid.Views" aufzurufen. Dabei hat der zweitgenannte Aufruf den Vorteil, dass hier die Definition der Abfrage - also der SQL-Text mit abgerufen wird.
DataTable schemaTable = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Views, null);


Bei näherer Betrachtung fällt aber auf, dass hier nicht alle Abfragen enthalten sind. Es fehlen Abfragen, die einen Parameter erwarten sowie Union- und Kreuztabellen-Abfragen.
Die Lösung dieses Problems ist ein weiterer Aufruf von "GetOleDbSchemaTable" mit dem Parameter "OleDbSchemaGuid.Procedures". Darin enthalten sind alle Abfragen, die solche Besonderheiten haben.

Dabei erscheinen auch interne Abfragen mit. Das sind SQL-Statements, die direkt in das Feld Datenquelle eingegeben wurden ohne vorher eine Abfrage zu definieren - diese beginnen mit "~sq_" und sollten für externe Belange irrelevant sein. Bei den anderen Einträgen kann anhand selbst gewählter Kriterien entschieden werden, ob diese für externen Zugriff relevant sind oder nicht.

Das Ergebnis
Alle diese Erkenntnisse zusammengenommen, könnte der resultierende Quellcode ungefähr wie folgt aussehen:
private List GetDbObjectNames(string dbPath)
{
List dbObjectsList = new List();

string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + dbPath;

using (OleDbConnection connection = new OleDbConnection(connectionString))
{
connection.Open();
DataTable schemaTable = null;

// tables
schemaTable = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,new object[] { null, null, null, "TABLE" });
foreach (DataRow row in schemaTable.Rows)
{
dbObjectsList.Add(row["Table_Name"] as string);
}

// linked tables
schemaTable = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "LINK" });
foreach (DataRow row in schemaTable.Rows)
{
dbObjectsList.Add(row["Table_Name"] as string);
}

// views
schemaTable = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Views, null);
foreach (DataRow row in schemaTable.Rows)
{
dbObjectsList.Add(row["Table_Name"] as string);
}

// special views
schemaTable = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Procedures, null);
foreach (DataRow row in schemaTable.Rows)
{
if (!2.Equals(row["Procedure_Type"]))
continue;
if (((string)row["Procedure_Name"]).StartsWith("~sq_"))
continue;
dbObjectsList.Add(row["Procedure_Name"] as string);
}


connection.Close();
}


return dbObjectsList;
}


private void loadObjectsButton_Click(object sender, EventArgs e)
{
dbObjectsList.Items.Clear();
List items = GetDbObjectNames("C:\\Program Files\\Microsoft Office\\OFFICE11\\SAMPLES\\nordwind.mdb");
dbObjectsList.Items.AddRange(items.ToArray());
}

Anti-Spam Filter in Blogengine.NET

05.12.2009 13:11:34 | Klaus Bock

Mit dem Check Out der  Version 1.5.1.30, fiel mir das erste mal der eigene Bereich für Kommentare im Admin-Bereich von Blogengine.NET auf. Was ich da sah, gefiel mir auf Anhieb. Es ist die Möglichkeit geschaffen worden, die Kommentare automatisch über verschiedene Filter moderieren zu lassen.

Blogengine.NET bringt Stop Forum Spam und Askimet als Filter mit. Da Askimet sehr viele Daten auf seine Server in den USA überträgt, habe ich auf Grund der unsicheren Rechtslage diesen Filter deaktiviert. Über Stop Forum Spam habe ich noch nichts gefunden. Sollte es auch damit Beanstandungen geben, fliegt er ebenfalls raus.

Die, aus meiner Sicht, beste Neuerung ist das Erstellen eigener Filter. Es können Allow-, Block- und Delete-Filter erstellt werden. Als Filterkriterium kann die IP-Adresse, der Autor, die Website-Adresse, die Email oder der Kommentarinhalt gewählt werden. Die einzelnen Felder können mit “enthält angegebenen Wert”, also contains oder nach “ist gleich angegebenen Wert”, also equals verglichen werden.

Was wollen die Kommentar-Spammer eigentlich erreichen? Ganz einfach; sie wollen Backlinks zu ihren Webseiten oder Blogs generieren. Also werden sie bei den Namen und Email-Adressen lügen. Jedoch sicher nicht bei der Angabe ihrer Website. Also wird nach der Website-Adresse gefiltert.

Spamfilter 

Wenn jetzt ein Kommentar mit der im Filter enthaltenen Adresse geschrieben wird, erhält der Benutzer lediglich die Meldung, sein Kommentar müsse bestätigt werden und der Kommentar wird nicht im Blog angezeigt.

Spamkommentar

Statt dessen wird der abgegebene Kommentar im Reiter Spam im Kommentarbereich der Blog-Verwaltung angezeigt. Hier kann er nun wiederhergestellt werden, falls es ein Irrtum sein sollte, oder man löscht den Kommentar einfach.

moderierte Kommentare

Über einen Delete-Filter könnte man die Kommentare auch direkt vom Filter löschen lassen. Diese Option werde ich nutzen, wenn eine bestimmte Website über längere Zeit auffallen sollte. Fürs erste werde ich mich auf das sammeln solcher Webseiten beschränken und die Kommentare von Hand löschen.

Technorati-Tags: | |

WPF/Silverlight Community Day Graz 2010

05.12.2009 04:47:04 | Lars Keller

Meine beiden Freunde Norbert Eder und Mario Meir-Huber veranstalten am 29.01.2009 den ersten WPF/Silverlight Community Day in Graz. So ein Community Day ist eine gute Möglichkeit sich mit anderen Teilnehmern zu den Themen auszutauschen und auch mögliche Probleme zu diskutieren. Die Teilnahme ist kostenlos, jeder Teilnehmer bestimmt selber, ob er etwas für das Catering, die Raummiete, etc. spenden möchte oder nicht.

Aus eigener Erfahrung kann ich so ein Event nur empfehlen!

Btw: Nächstes Jahr wird es auch wieder einen Office Community Day geben, Mario und ich stecken gerade in den Vorbereitungen, darum kann ich noch nicht viel verraten. Stay tuned! ;-)

Monitor.Enter, lock Anweisung und Co.

04.12.2009 23:48:00 | Jan Christian Selke

Was ist denn nun der Unterschied und wozu brauche ich es überhaupt?

So oder zumindest sehr ähnlich waren meine Fragen, bevor ich das erste Mal beim Erstellen von Dokumenten mit dem Open Xml SDK in ein Deadlock gelaufen bin (siehe mein voriger Post zu Multithreading und Open Xml).
Andre Krämer hat mit seinem Kommentar zu meinem letzten Post sehr recht. All zu schnell ist man geneigt zu übersehen, dass Anwendungen basierend auf Web Services sich bereits in einer multithreading Umgebung befinden. Daher empfehle ich, in ähnlichen Szenarien grundsätzlich alle Zugriffe auf Open Xml Parts in einen kritischen Abschnitt aufzunehmen, auf die mindestens eine der folgenden Aussagen zutrifft:
  • die maximale Größe des Parts ist nicht absehbar,
  • die maximale Größe des Parts ist absehbar und wird voraussichtlich jenseits der 8 MB liegen.
Mit maximaler Größe ist die tatsächliche Größe in entpackter Form und nicht die in der docx komprimierte Größe gemeint.
Aber zurück zum Thema: Es gibt zwei Möglichkeiten einen kritischen Abschnitt zu definieren. Zum einen die lock Anweisung und zum anderen die Monitor.Enter() Methode.
Die Klasse Monitor stellt einen Mechanismus zur Verfügung, der den Zugriff auf Objekte steuert. Hierzu wird einem einzelnen Thread ein exklusives Zugriffsrecht auf ein Objekt gewährt. Die Zugriffssperre wird mit dem Aufruf der Methode Enter vergeben. Kein anderer Thread kann dann eine weitere Sperre auf das Objekt erhalten. Die lock Anweisung bewirkt nichts anderes, als dass der Compiler selbst einen try-finally-Block um die Anweisung erzeugt.
Grundsätzlich ist es also egal, welcher Weg der Umsetzung gewählt wird. Es ist lediglich von den eigenen Anforderungen an den Kontext abhängig.

Ist es wirklich egal?

Ja, ist es, denn der Compiler macht aus der lock Anweisung nichts anderes als ein Monitor.Enter und Monitor.Exit in einem try-finally-Block. Dass diese Aussage auch korrekt ist, veranschaulicht ein kleines Beispiel. Zur Einfachheit habe ich nur einen leeren Rumpf für beide Varianten erstellt.
lock_code
Nun vergleichen wir die durch den Compiler generierte IL. Dazu benutze ich den Redgate Reflector. Man sieht, dass es wirklich nahezu identisch ist. Das lock Statement bewirkt in der Tat nichts anderes, als dass der Compiler für einen try- finally –Block sorgt – it’s magic…

lock_monitor

Weiter oben schrieb ich, dass die Auswahl kontextabhängig sei. In meinem konkreten Beispiel sollte die Synchronisation der Aufrufe in Abhängigkeit der Stream Größe stattfinden. Ich habe daher den direkten Aufruf des Monitor.Enter() gewählt, damit ich nicht den Quellcode einmal mit lock Anweisung und einmal ohne vorhalten muss. Es wird anhand eines HighWaterMark entschieden, ob das Aufbauen eines kritischen Blocks notwendig ist. Mit dem try-finally-Block um die Methodenaufrufe wird sichergestellt, dass der Monitor auch wieder freigegeben wird.

try_finally_block  
Eine wesentliche Schwäche existiert nach wie vor. In dem Falle eines Deadlocks, wäre die Anwendung zur Zeit nicht mehr reaktionsfähig. Es ist keine Art von Timeout vorgesehen. Am Beispiel meines letzten Posts, ist deutlich, dass diese Situation schnell unverschuldet entstehen kann, wenn das CLR lock sich nicht lösen lässt, da nativer Code einen Mutex hält.

Was tun, wenn der CLR lock nicht aufgehoben wird?

Aus diesem Grund existiert die Methode TryEnter. Es kann über eine bestimmte Zeitspanne versucht werden, eine exklusive Sperre zu erhalten. Etwas ungewöhnlich finde ich nur, dass im Falle eines Timeout eine ArgumentOutOfRangeException geworfen wird.
Es gibt bereits verschiedene Implementierungen eines TimeOut Ansatzes. Einen sehr interessanten, der dem von Ian Griffith sehr ähnlich ist, habe ich bei Eric de Carufel gefunden:
using System;
using System.Linq;
using System.Threading;

namespace MultithreadHelper
{
    public class Safe : IDisposable
    {
        private readonly object[] _padlocks;
        private readonly bool[] _securedFlags;

        private Safe(object padlock, int milliSecondTimeout)
        {
            _padlocks = new[] {padlock};
            _securedFlags = new[] {Monitor.TryEnter(padlock, milliSecondTimeout)};
        }

        private Safe(object[] padlocks, int milliSecondTimeout)
        {
            _padlocks = padlocks;
            _securedFlags = new bool[_padlocks.Length];
            for (int i = 0; i < _padlocks.Length; i++)
            _securedFlags[i] = Monitor.TryEnter(padlocks[i], milliSecondTimeout);
        }

        public bool Secured
        {
            get { return _securedFlags.All(s => s); }
        } 
 
        public static void Lock(object[] padlocks, int millisecondTimeout, Action codeToRun)
        {
            using (var bolt = new Safe(padlocks, millisecondTimeout))
            if (bolt.Secured)
                codeToRun();
            else
                throw new TimeoutException(string.Format("Safe.Lock wasn't able to acquire a lock in {0}ms",
            millisecondTimeout));
        }

        public static void Lock(object padlock, int millisecondTimeout, Action codeToRun)
        { 
            using (var bolt = new Safe(padlock, millisecondTimeout))
            if (bolt.Secured)
                codeToRun();
            else
                throw new TimeoutException(string.Format("Safe.Lock wasn't able to acquire a lock in {0}ms",
            millisecondTimeout));
        }

        #region Implementation of IDisposable

        public void Dispose()
        {
             for (int i = 0; i < _securedFlags.Length; i++)
                 if (_securedFlags[i])
                 {
                     Monitor.Exit(_padlocks[i]);
                     _securedFlags[i] = false;
                 }
        } 

        #endregion
    }
}

InternalsVisibleToAttribute und signierte Assemblies: So funktionierts garantiert.

04.12.2009 16:46:00 | Peter Bucher

Stellt euch vor, ihr habt zwei Assemblies:

  • MyProject.Core
  • MyProject.Core.Tests

Im Core-Projekt gibt es Typen, die nicht öffentlich gemacht werden sollten, allerdings für die UnitTests zugänglich sein sollen.
Nun, das ist ein kleines Problem, wenn man das Attribut “InternalsVisibleTo” kennt, mithilfe folgender Dekleration in der AssemblyInfo.cs des MyProject.Core-Projekts kann dies einfach erledigt werden:

[assembly: InternalsVisibleTo("MyProject.Core.Tests”)]


Das macht sogar sehr viel Sinn, denn sonst können Kollisionen und Verwechslungen der Extensionmethods beim Endbenutzer vorkommen.

Soweit, so gut. Die Typen der MyProject.Core-Assembly sind jetzt in der MyProject.Core.Tests-Assembly sichtbar.
Müssen die Projekte jedoch signiert sein, kommt es zu einem grösseren Problem.

In mehreren Blogs sind die nötigen Schritte beschrieben, jedoch werden da wichtige Punkte nicht genannt, die einem zur Verzweiflung treiben können.
Die sind wie folgt:

  • Alle involvierten Assemblies müssen signiert werden.
  • Der PublicKey muss vom Projekt bezogen werden, bei dem die Internals sichtbar werden sollen, in unserem Fall also das MyProject.Core.Tests-Projekt.

Nach einer weiteren Suche bin ich schlussendlich auf einem (selbsternannten) Newbie-Blog fündig geworden.
Noch später sties ich dann auf die folgende Anleitung, die eigentlich alles beinhaltet, sodass ich nicht alles im Detail niederschreiben muss, trotzdem die wichtigen Punkte nennen kann und vorallem die Lösung wieder einmal finde:

Also, beachtet die oben stehenden zwei Punkte und haltet euch an folgende Anleitung:

MS Office 2010 & Sharepoint 2010 kommt im Juni(?)

04.12.2009 00:57:03 | Lars Keller

Wenn die Pläne so bleiben wie gedacht, wird MS Office 2010 und Sharepoint 2010 im Juni 2010 erscheinen.

Quelle: hier

MSDN VSTO Developer Center gestartet

04.12.2009 00:54:00 | Lars Keller

Diese Woche ist das neue VSTO Developer Center im neuen Design online gegangen. Hier findet man viele Tipps & Tricks über VSTO und die MS Office Entwicklung. Das neue Design sieht schick aus! :)

Besonders gut gefällt mir die “How DO I Videos” Sektion, ideal für den Einstieg! Man bekommt auf jeden Fall einen guten Überblick was mit VSTO alles geht.

Wenn Du brav warst, Schenk!

03.12.2009 16:50:52 | Jan Schenk



tweetmeme_url = 'http://blogs.msdn.com/jansche/archive/2009/12/03/wenn-du-brav-warst-schenk.aspx'; tweetmeme_source = 'jansche';

Da hab ich mich doch gestern am Hauptbahnhof gleich angesprochen gefühlt. Ich war auf einem Seminar über Digital Signage als Gastredner zum Thema Silverlight eingeladen und an der Bayerstraße hat mich doch glatt diese Werbung direkt angesprochen. Die Advertisement-Technologie der letzten Generation ist wirklich erschreckend. Mit welch fiesen Tricks man trotz Datenschutzgesetzen zum gläsernen Bürger wird ist erschreckend ;-)

20091202_WennDuBravWarstSchenk_re 20091202_WennDuBravWarstSchenk_re

Ich hab das natürlich weitestgehend ignoriert, nur das Foto, das musste ich machen…

Wenn euch das auch passiert, sagt bitte Bescheid!
jan

8-bit pwny club – Der Unterhaltungsteufel schlägt wieder zu

03.12.2009 10:56:29 | Jan Schenk



tweetmeme_url = 'http://blogs.msdn.com/jansche/archive/2009/12/03/8-bit-pwny-club-der-unterhaltungsteufel-schl-gt-wieder-zu.aspx'; tweetmeme_source = 'jansche';

Sehr nettes Retro-Video zu alten Computerspielen. Wer die Referenzen nicht kapiert ist wohl zu jung ;-)

Neue Folge MSDN TV - Ausgabe 25.11.09

03.12.2009 07:29:49 | Kay Giza

Und wieder haben die Kollegen eine neue Folge Nachrichtensendung für Entwickler fertiggestellt!
msdn tv – Nachrichten für Entwickler“ kommt diesmal aus Berlin und präsentiert u.a. Impressionen und Statements von der „Tech·Ed Europe 2009“. Jan Schenk hatte dort Gelegenheit, als Gesprächspartner Orlando Escalante vor Mikrofon und Kamera zu bekommen, der als „Role Owner“ der Technical Platform Evangelists bei Microsoft mitverantwortlich für die Beratung von IT-Professionals zeichnet.

In den Kurznachrichten: Infos zur Beta des ASP.NET MVC Framework 2.0, eine Tutorial-Reihe rund um ‘Expression Studio‘, die Beta 2 Version von Visual Studio 2010 Ultimate und wo man sie kostenlos bekommt, das neue Facebook .NET SDK 3.0 und eine aktuelle MSDN Webcast-Serie zu ‘Powershell’. Sponsorhinweis: Unser Moderator wird eingekleidet und ausgestattet von Jan Schenk [13:46]

Jetzt angucken: MSDN TV - Ausgabe 25.11.09



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-2010 Kay Giza. All rights reserved. Legal
Subscribe

Code Snippet Adventskalender fuer Windows Mobile Entwickler

03.12.2009 07:23:27 | Kay Giza

Die beiden MSDN-Webcast-Referenten und Mobile-Spezialisten Patrick Getzmann und Peter Nowak (MVP) präsentieren in diesem Jahr ein vorweihnachtliches Überraschungspaket für Entwickler: in ihrem „Windows Mobile Adventskalender“ gibt’s vom 1. Dezember bis zum Fest täglich eine nette “Leckerei” in Form von Code Snippets, also kleinen, häufig nachgefragten Codebeispielen. Damit auch jeder etwas für sich findet, werden die Snippets in zwei Fassungen angeboten: einmal als verwaltete Version in C# (von Peter Nowak), sowie nativ in C++ (von Patrick Getzmann).
MSDN Online stellt die 24 Schnipsel auf seiner Website vor.


Ein großes Dankeschön seitens Microsofts geht an Patrick und Peter für Ihr (Community-) Engagement!
Hier geht's zum Code Snippet Adventskalender für Windows Mobile Entwickler und wir wünschen viel Spaß beim Entdecken und genießen der ganzen "Leckereien".

Apropos Adventskalender, wer gerne einmal selber einen erstellen möchte, dem empfehle ich (wie eigentlich jedes Jahr seit dem wir es haben) folgenden CodeClip von MSDN Solve: MSDN Solve - Adventskalender



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-2010 Kay Giza. All rights reserved. Legal
Subscribe

Kostenloser Buch-Download: Visual Basic 2008 – Das Entwicklerbuch

02.12.2009 11:38:56 | Jan Schenk



tweetmeme_url = 'http://blogs.msdn.com/jansche/archive/2009/12/02/kostenloser-buch-download-visual-basic-2008-das-entwicklerbuch.aspx'; tweetmeme_source = 'jansche';

Eltern verzweifeln, Einzelhändler werden panisch, das Bundesverfassungsgericht ist alarmiert und die Anzahl der Parkunfälle in den Innenstädten steigt dramatisch an: Es weihnachtet sehr, und nicht nur die ersten offenen Türchen der Adventskalender künden davon. Lehnen Sie sich doch einfach mal zurück und genießen Sie unsere vorzeitigen Weihnachtsgeschenke: MSDN Online und Microsoft Press schenkt Ihnen 1.388 Seiten geballtes Know-how für Entwickler, zusammengestellt von VB-Routinier Klaus Löffelmann. Download der Code-Beispiele inklusive. Ganz entspannt und unfallfrei. Packen Sie das einfach mal als Lektüre ein - vielleicht schneit´s ja doch erst im Februar?

Hier geht’s zum Download: Visual Basic 2008 – Das Entwicklerbuch [PDF, E-Book]

Neuer Artikel beim dot.net magazin: "Mehr Speed für Silverlight-3-Anwendungen”

02.12.2009 11:28:26 | Gregor Biswanger

dotnet-magazin

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

Next Generation Silverlight – Mehr Speed für Silverlight-3-Anwendungen

Jeden Tag wächst das Angebot von Silverlight-Anwendungen. Gerade im Geschäftsumfeld hat der RIA-Gigant einen enormen Stellenwert. Auch hier gilt die Devise: „Zeit ist Geld“. Umso wichtiger wird, dass die Arbeit durch ganz bestimmte Performanceaspekte angenehmer ausfällt. Wenn dazu noch ein paar Punkte beachtet werden, wird einiges an Zeit beim Entwicklungsprozess dazugewonnen.

dotnet-magazin012010

Zu lesen ist der Artikel beim dot.net magazin, Ausgabe 01/2010.

Kostenloser Download: Visual Basic 2008 – Das Entwicklerbuch

02.12.2009 11:18:54 | Peter Kirchner

MSDN Online und Microsoft Press schenken Ihnen passend zum Beginn der Adventszeit 1.388 Seiten geballtes Entwickler-Know-how. Ab sofort steht „Visual Basic 2008 – Das Entwicklerbuch“ zum kostenlosen Download in zwei Teilen bereit.

Das Buch von Klaus Löffelmann (MVP) bietet Ihnen einen Einstieg in Visual Basic 2008, das .NET Framework 3.5 inklusive der wichtigen Neuerungen in Visual Studio Service Pack 1 und den Grundlagen der objektorientierten Programmierung. Aber auch fortgeschrittene Techniken, wie die Datenbankprogrammierung mit LINQ oder das Erstellen moderner Benutzeroberflächen, werden ausführlich erläutert. Am 30.11.2009 wurde die Bereitstellung des 59,- EURO wertvollen Buches im MSDN Flash Newsletter angekündigt.

Für Rückfragen und Diskussionen kann man gerne das MSDN Forum zum Thema Visual Basic nutzen.

Kostenloser Download des Buches sowie der Code-Beispiele: Visual Basic 2008 – Das Entwicklerbuch als PDF

Kostenloser Download: Visual Basic 2008 – Das Entwicklerbuch [als PDF, E-Book]

02.12.2009 07:56:19 | Kay Giza

Ich denke das ist eine schöne Sache, die wir den Entwicklern hier anbieten derzeit!

MSDN Online und Microsoft Press schenken Ihnen passend zum Beginn der Adventszeit 1.388 Seiten geballtes Entwickler-Know-how. Ab sofort steht „Visual Basic 2008 – Das Entwicklerbuch“ zum kostenlosen Download in 2 Teilen bereit. Das Buch von Klaus Löffelmann (MVP) bietet Ihnen einen Einstieg in Visual Basic 2008, das .NET Framework 3.5 inklusive der wichtigen Neuerungen in Visual Studio Service Pack 1 und den Grundlagen der objektorientierten Programmierung. Aber auch fortgeschrittene Techniken, wie die Datenbankprogrammierung mit LINQ oder das Erstellen moderner Benutzeroberflächen, werden ausführlich erläutert.

Am 30.11.2009 wurde die Bereitstellung des 59,- EUR wertvollen Buches im MSDN Flash Newsletter angekündigt. Ich möchte mich hier an dieser Stelle recht herzlich bei Klaus Löffelmann sowie Microsoft Press bedanken, die zusammen mit dem MSDN Online-Team diesen kostenlosen Download ermöglicht haben! Vielen Dank!

Für Rückfragen und Diskussionen kann man gerne das MSDN Forum zum Thema Visual Basic nutzen.


Kostenloser Download: Visual Basic 2008 – Das Entwicklerbuch als PDF


Siehe auch:

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

Dokumentschutz für Word 2007 mit Open Xml

01.12.2009 22:02:00 | Jan Christian Selke

Um es vorweg zu nehmen: Ich halte nichts von Passwortschutz mittels DocumentProtection unter Word2007. Dennoch, es gibt vier verschiedene Möglichkeiten ein Dokument zu “schützen”, davon aber nur eine, die mit dem OpenXml SDK umgesetzt werden kann:
Document Protection
Das einzige Open Xml Feature. Die Document Protection war aber nie als Sicherheitsfeature vorgesehen und kann leicht umgangen werden. Es handelt sich mehr um eine Art Schutz vor versehentlichen Änderungen durch den Benutzer. Dies wird auch so in der Spezifikation kommuniziert:
Document protection is a set of restrictions used to prevent unintentional changes to all or part of a WordprocessingML document  -since this protection does not encrypt the document, malicious applications may circumventits use. This protection is not intended as a security feature and may be ignored.
Document Encryption
Office Button >> Prepare >> Document Encryption
Die Datei endet ab sofort weiterhin auf .docx. Versucht man jedoch es als Zip zu öffnen, stellt man fest, dass keine Package Struktur mehr vorhanden ist und es sich im Prinzip um nichts weiter als ein getarntes .doc im 97-2003 Format handelt.
Restrict Permission
Office Button >> Prepare >> Restrict Permission
Ein serverseitiger Dokumentschutz basierend auf der Windows Live ID. Notwendig ist der Download der Information Rights Management Software von Microsoft.
Digital signature
Office Button >> Prepare >> Add A Digital Signature
Das Dokument erhält eine Signatur, um die Herkunft des Dokuments und Unversehrtheit des Inhalts sicherzustellen.

Was dann?!

Wie schon eingangs erwähnt, ich halte nichts von Passwortschutz. Das soll aber nicht heißen, dass ich grundsätzlich nichts vom Dokumentschutz halte. Nur eben nicht vom Passwortschutz mit DocumentProtection. Ich begründe das vor allem damit, dass der Passwortschutz ganz einfach ausgehebelt werden kann.
Das Dokument wird durch einen Eintrag in der settings.xml geschützt. Besteht Dokumentschutz ist eine der folgenden Zeile ähnliche vorhanden:
DocumentProtextion
So einfach wie die Zeile in der settings.xml ausgelesen werden kann, genau so einfach kann sie auch gelöscht werden. Wer sich nicht an die Dokumentstruktur herantraut, kann den Schutz fast noch einfacher aufheben, indem das Dokument einmal unter Word2000/2003 gespeichert wird. Wer sich für den genauen Vorgang interessiert, kann hier bei Vladimir Averkin nachlesen.

Daher bin ich der Meinung, wer ein Dokument mit Mitteln des Open Xml SDK schützen möchte, kann dies ohnehin nur gegen versehentliche Änderungen tun. Wird der Schutz manuell aufgehoben, steckt soviel negatives Potential in dem Umgehen des Schutzes, dass das Dokument selbst mit Passwortschutz aufgrund der genannten Möglichkeiten nicht wirklich sicher ist… Ergo, kann man auch gleich vollständig auf ein Passwort verzichten.

Eine einfache Implementation des Dokumentschutzes, ohne Passwort, könnte etwa diesem entsprechen:
using (var inputDocumentPackage = WordprocessingDocument.Open(inputFile, true))
{
    DocumentSettingsPart settingsPart = inputDocumentPackage.MainDocumentPart.DocumentSettingsPart;
    Settings settings = settingsPart.Settings;
    DocumentProtection prot = settings.ChildElements.First<DocumentProtection>();
    if (prot != null)
    {
        prot.Remove();
    }

    DocumentProtection docProtect = new DocumentProtection
    {
        Edit = DocumentProtectionValues.ReadOnly,
        Enforcement = OnOffValue.FromBoolean(true)
    };

    settings.PrependChild(docProtect);
    settings.Save();
}

Reflection – Fluch oder Segen?

01.12.2009 09:37:00 | Peter Bucher

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

Bisher sind in dieser Reihe folgende Kommentare erschienen:

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

Reflection – Fluch oder Segen?

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:

 

Reflection?

Reflection, Reflexion bzw. Introspektion macht es möglich, Programme wie Daten zu behandeln und so Informationen über Typen / Member abzurufen und auch zu setzen.

Eine Einführung zu Reflection findet sich bspw. hier, und auf myCSharp.de findet sich ein super ausführlicher und tiefgehender Artikel, der auf jeden Fall lesenswert ist.
Darüber hinaus ist es per Reflection möglich, eine späte Bindung in jeglicher Hinsicht zu erreichen. Sei dies das dynamische Laden einer Assembly oder auch das dynamische Aufrufen einer Methode zur Laufzeit.
Damit lassen sich Service Locator und Dependency Injection Container - also Systeme zur Entkoppelung - umsetzen, die je nach Konfiguration eine andere Assembly mitsamt ihren Typen lädt.

Ein praktischer Anwendungsfall wäre ein Serialisierungsmechanismus, der Objekthierarchien bspw. in XML-Form abspeichern kann.
Mithilfe von Reflection können die zu speichernden Typen in Form einer Instanz von System.Reflection.Type abgefragt werden.

Ein Type Objekt macht alles verfügbar, was zu einem Typen gehört, seien dies Methoden, Attribute, Eigenschaften oder gar Felder.

Kleines Beispiel:

int count = 2012;
Type typeOfCount = count.GetType(); // Oder: typeof(int)
Console.WriteLine(typeOfCount);

Ausgabe ist die Stringrepräsentation des Types der mit dem Alias int verknüpft ist, also: “System.Int32”.

Schluss ist damit noch lange nicht, es ist genau so möglich Code zur Kompile- oder Laufzeit dynamisch zu erstellen.
Das .NET Framework bietet die hierzu nötigen Klassen im Namensraum System.Reflection.Emit bereit.

Die Anwendung dieser API ist jedoch relativ umständlich und komplex, dafür extrem mächtig.

 

Segen?

Reflection und Bibliotheken die darauf aufbauen birgen ein riesen Potential und ungeahnte Möglichkeiten.
Die Anwendung ist extrem einfach und viele Features im .NET Framework selber bauen auch auf Reflection auf.

Also auf jeden Fall ein Segen… auf der einen Seite.

 

Fluch?

Auf der anderen Seite kann es auch zu einem Fluch werden, denn mit Reflection kann viel Humbug getrieben werden.
Zum einen ist die Ausführung von Code der Reflection nutzt, um einiges langsamer, was zu Performanceproblemen führen kann, zum anderen kann so auch die Mauer der Zugriffsmodifizierer umgangen werden, da es ohne viel Aufwand möglich ist, auch private Members einer Klasse auszulesen.

Zudem können Probleme auftreten, wenn die Umgebung in der eine Anwendung läuft, zuwenig Rechte hat. Das kann dazu führen, das eine Anwendung überhaupt nicht, oder nur eingeschränkt lauffähig ist, in restriktiven Umgebungen.

Über das dynamische Laden von Assemblies kann es zu Sicherheitsproblemen kommen, falls die geladenen Assemblies schädlichen Code enthalten.

Allerdings lassen sich viele der geschilderten Probleme umgehen bzw. beheben.
Caching – dafür gibt es auch schon diverse, fertige APIs, die auch neben Caching noch weitere Verbesserungen für Reflection bringen.

Alle anderen Probleme brauchen eine vorsichtige und sparsame Verwendung von Reflection.
Mein Credo dabei ist: So viel wie nötig, so wenig wie möglich. Denn sehr vieles geht auch ohne Reflection, kann aber mit Reflection nachgebaut werden.

 

System.Linq.Expressions

Mit der Einführung von LINQ und in dessen Zuge auch dem neuen Namensraum System.Linq.Expressions gibt es eine weitere und einfachere Möglichkeit, Code dynamisch zu generieren und vorallem auch zu analysieren.

Zum einen ist es mit LINQ und den Expression Trees möglich, Lambda Ausdrücke, die in eine Methode eingespiesen werden, auseinander zu nehmen und zu analysieren.
In .NET selber wird das bspw. verwendet, um LINQ abfragen zu parsen und diese anschliessend in ein SQL-Statement zu überführen.

Zumindest laut meinem Wissen, ist es mit dem Expressions-API nur möglich, Methoden dynamisch zu generieren und zu kompilieren. Das ist eine Einschränkung, die allerdings für viele Anwendungsfälle nicht weiter tragisch ist, damit lässt einfach schon relativ viel realisieren.

Das Expressions-API nutzt intern auch Reflection und schlussendlich auch die Klassen aus dem Namensraum System.Reflection.Emit.

Beispiele mit dem Expressions-API:

Addieren von zwei Zahlen per statischem Code.
private void AddPlain()
{
  int one = 1;
  int two = 2;

  int result = one + two;
}

Addieren von zwei Zahlen, die Methode wird dynamisch zusammengebaut.
private static void AddWithExpressions()
{
  ConstantExpression numberOneExpression = Expression.Constant(2);
  ConstantExpression numberTwoExpression = Expression.Constant(3);

  BinaryExpression addExpression = Expression.Add(numberOneExpression, numberTwoExpression);

  var lambdaExpression = Expression.Lambda<Func<int>>(addExpression);
  Func<int> methodDelegate = lambdaExpression.Compile();

  int result = methodDelegate();
}


Funktion zum Addieren von zwei Zahlen per statischm Code.
private static int AddFunctionPlain(int left, int right)
{
  return left + right;
}

Funktion zum Addieren von zwei Zahlen dynamische generiert.
private static Func<int, int, int> GenerateAddFunction()
{
  ParameterExpression leftParameter = Expression.Parameter(typeof(int), "left");
  ParameterExpression rightParameter = Expression.Parameter(typeof(int), "right");

  BinaryExpression addExpression = Expression.Add(leftParameter, rightParameter);

  var lambdaExpression = Expression.Lambda<Func<int, int, int>>(addExpression, leftParameter, rightParameter);
  Func<int, int, int> methodDelegate = lambdaExpression.Compile();

  return methodDelegate;
}

Wie man sehen kann, ist die Nutzung von Expressions zum dynamische Generieren von Methoden für Ihre Mächtigkeit immer noch relativ einfach zu nutzen.

 

Fazit

Das war ein kurzer Rundflug durch Reflection und verwandte Gebiete, in dem ich versucht habe, die Vorteile, Möglichkeiten sowie auch Gefahren aufzuzeigen.
Reflection ist genial, aber nur wenn es sinngemäss und mit Vorsicht eingesetzt wird.

Also: Fluch und Segen :)

Regeln | Impressum