.
Anmeldung | Registrieren | Hilfe

.NET-Blogs Archiv Oktober 2008

"Meine Software" und der Prophet im eigenen Land

31.10.2008 14:51:00 | Jens Peter Kleinau

Ist doch immer wieder spannend festzustellen, dass man erst nach Amerika muss, damit man in Deutschland auffällt. Nun ist der Computerwoche doch glatt bekannt geworden, dass die Deutsche Telekom AG eine Anwendung mit einer attraktiven Oberfläche heraus gebracht hat: Microsoft präsentiert den attraktiven Windows-Client. Dabei gibt es die Software seit der IFA08 also seit Juli. Erst muss Microsoft...

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

ASP.NET AJAX Request in einem HttpModule erkennen

31.10.2008 07:50:00 | Jürgen Gutsch

Um die Abarbeitungszeit einer Seite als HTML Komentar auszugeben hatte ich ein ganz einfaches HttpModule geschrieben, das mit die Zeit von BeginRequest bis EndRequest ermittelt und entsprechend ausgibt.

Das Resultat war, dass ich heute den ganzen nach der Ursache dafür suchte wieso kein UpdatePanel mehr aktualisiert wurde. Der PostBack wurde durchgeführt, das UpdateProgress wurde ausgelöst aber das UpdatePanel eben nicht aktualisiert. Auf den Fehler bin ich gekommen, als ich dann die Änderungen der letzten Tage angeschaut und temporär rückgängig gemacht hatte.

Das verflixte an der Sache war eigentlich nur, dass im Firefox (den ich vorzugsweise zum entwickeln verwende) absolut keine Fehlermeldung ausgegeben wurde. Im IE gibt es eine schöne JavaScript Meldung.

Was war passiert?

Eigentlich logisch: Das HttpModule sprang an und hat den HTML Kommentar and die Ausgabe - die eigentlich für das JavaScript des ASP.NET AJAX gedacht war - angehängt. Ein HttpModul springt bei jedem Request an, der über die aspnet_isapi.dll abgearbeitet wird. So natürlich auch bei einem ASP.NET AJAX Request. (Im IIS7 und im Web Development Server übrigens auch bei allen anderen Requests, wie Bildern, JavaScripts, etc.).

An den ASP.NET AJAX Response wurde also mein Kommentar angehängt und das JavaScript ist nicht mehr in der Lage den Response zu parsen und bricht (im IE) mit einem Fehler ab.

Naja, zu Glück gibt es Suchmaschinen und Geeks die das gleiche Problem bereits hatten:
http://blog.seesharp.org/blog/post/2007/10/Detecting-Aspnet-Ajax-Request-In-Custom-HttpModule.aspx
@Gokhan Demir: çok teşekkürler.

Meine HttpModule sieht jetzt also wie folgt aus:



public class PageProcessingTime : IHttpModule
{
  private DateTime dtStart = DateTime.MinValue;
  private HttpApplication httpApplication;

  public PageProcessingTime()
  { }

  public void Init(System.Web.HttpApplication application)
  {
    httpApplication = application;
    httpApplication.BeginRequest +=
        new System.EventHandler(BeginRequest);
    httpApplication.EndRequest += 
        new System.EventHandler(EndRequest);
  }

  public void BeginRequest(object sender, EventArgs e)
  {
    dtStart = DateTime.Now;
  }

  public void EndRequest(object sender, EventArgs e)
  {
    TimeSpan tsProcessingTime = DateTime.Now - dtStart;
    if (httpApplication.Context.CurrentHandler is Page &&
        httpApplication.Request.Headers["x-microsoftajax"] == null)
      httpApplication.Response.Write("\n<!-- Request Processing Time: "
        + tsProcessingTime.ToString() + " -->");
  }

  public void Dispose()
  { }
}

artiso Workitem Manager Open veröffentlicht

31.10.2008 01:14:31 | Thomas Schissler

Der artiso Workitem Manager ist ein Tool mit dem sich Workitems hierarchisch organisieren lassen. Diese hierarchische Organisation bietet verschiedene Vorteile. Neben einer besseren Strukturierung und einer erhöhten Übersichtlichkeit vor allem auch eine visuelle Traceability. Damit ist gemein, dass durch die Hierarchie sichtbar wird welche Tests und Implementierungsaufgaben einem Feature zugeordnet sind. Die ist z.B. sehr hilfreich, wenn sich das Feature ändert zu erkennen, welche Workitems auf mögliche Auswirkungen überprüft werden können. Wie hierarchische Workitems in Projekten hilfreich eingesetzt werden, habe ich zusammen mit Christian Binder in diesem MSDN-Webcast erörtert.

Leider bringt der TFS in der Version 2008 diese Hierarchie nicht von Haus aus mit. Deshalb hat artiso den Workitem Manager entwickelt. Diesen gibt es nun auch als Open-Version. Die Open-Version ist kostenlos und wird auch als Source-Code bereitgestellt. Wie sich der Workitem Manager Open zur Vollversion unterscheidet kann man der unten stehenden Funktionsmatrix entnehmen. Weiter unten gibt's noch eine Screenshot.

Den Donload für das Setup und den Source-Code findet man unter http://www.alm-tools.de. Gerne freue ich mich über euer Feedback zu dem Tool.

image

Entwicklerbuch geschenkt?

30.10.2008 23:38:23 | Jan Welker

Ist denn schon Weihnachten? Noch nicht ganz, aber Terrashop verschenkt wieder Bücher an alle dotnet-snippets.de und dotnet-forum.de User und Besucher.

Zur Auswahl stehen ein Buchpaket und zwei einzelne Bücher. Die Aktion läuft bis zum 1.Dezember bzw. solange der Vorrat reicht.

Alle weiteren Informationen gibt's hier:
http://dotnet-forum.de/content/GratisBuch.aspx

NDepend testen und Lizenz bekommen

30.10.2008 20:34:10 | Jan Welker

"NDepend is a tool that simplifies managing a complex .NET code base. Architects and developers can analyze code structure, specify design rules, plan massive refactoring, do effective code reviews and master evolution by comparing different versions of the code."

Ich habe mir NDepend mal bei einem Vortrag von Stefan Lieser angesehen, es wirklich beeindruckend was das Tool alles leistet.

Wer NDepend gern einmal ausführlich testen möchte, kann mich gern kontaktieren. Der Entwickler von NDepend, Patrick Smacchia, sponsort eine pro Lizenz.
Als Gegenleistung für die die Lizenz muss ein Testbericht in der dotnet-forum.de - Knowledge Base geschrieben werden.

Wer zuerst kommt mahlt zuerst!

Nachtrag:
So schnell kann es gehen, die Lizenz ist vergeben. Mathias wird NDepend testen.

"Alles Neu" ist besser!

30.10.2008 20:10:43 | Norbert Eder

Nicht nur kleine Unternehmen oder einzelne Softwareentwickler erwischt es. Nein, auch große Konzerne wie Microsoft. So geistert die Meldung durch das Internet, dass Microsoft die Workflow Foundation von Grund auf neu entwickeln wird. Oder zumindest einen Großteil, so genau kann das wohl niemand mit absoluter Sicherheit sagen. Aber ist das grundsätzlich schlecht?

Die wichtige Frage dabei ist wohl, aus welchem Grund eine Neuentwicklung passiert. Gründe hierfür lassen sich einige finden:
  • Technologie-Wechsel
  • Performance-Probleme
  • Mangelnde Erweiterbarkt
  • Design-Fehler
  • Sich veränderte Anforderungen

Dies ist nur als kleiner Auszug aus möglichen Gründen für eine komplette Neuentwicklung einer Software oder eines Frameworks zu sehen. Aber kommen wir zur Frage, wann denn eine neue Implementierung tatsächlich gerechtfertigt ist.

Der Ursprung dieses Gedankens liegt meist darin, dass gewünschte Anforderungen nicht mehr den Wünschen entsprechend umgesetzt werden können, oder aber laufend Probleme auftreten, die nicht in den Griff zu bekommen sind. An dieser Stelle muss nun gegenübergestellt werden, wie es um den Aufwand aussieht, der notwendig ist, diese Probleme in den Griff zu bekommen. In manchen Fällen rechnet es sich durchaus, einen Schritt zurück auf das "Startfeld" zu machen und die Implementierung der gesamten Software, oder der relevanten Teile neu zu beginnen.

Bei einem anstehenden Technologie-Wechsel werden sich einige Fragen nicht stellen. Hier steht der Wunsch (oder der Zwang) im Vordergrund, auf eine neue Technologie zu wechseln. Die Gründe können unterschiedlicher Art sein:
  • Fehlende Möglichkeiten
  • Effizienz-Einbußen
  • usw.

Treten tatsächlich Probleme auf (Performance, mangelnde Erweiterbarkeit), dann ist grundsätzlich Handlungsbedarf immer als dringend anzusehen. Können die Ursachen lokalisiert und dauerhaft gelöst werden (und das mit vertretbarem Aufwand) sollte darin investiert werden. Ist dies nicht der Fall, oder treten zusätzlich eigenartige Verhaltensweisen auf, dann kann durchaus an eine Neuentwicklung gedacht werden.

Auch eine Neuentwicklung bringt so ihre Probleme mit sich. Vor allem, wenn bereits Releases in Umlauf sind. Idealerweise sollten sich Schnittstellen nicht ändern. Bei einem Redesign bzw. einer Neuimplementierung ist dies allerdings nicht immer möglich. Um den neuen Anforderungen gerecht zu werden muss auch die API Neuerungen erfahren. Dies bringt sehr oft eine Inkompatibilität zu vorhergehenden Versionen mit sich. So in einigen Bereichen auch bei der geplanten Workflow Foundation. Damit gewisse Anforderungen erfüllt werden können, muss ein Bruch zur "alten" Version stattfinden. Er ist unvermeidbar. Schlecht für all diejenigen, welche die aktuelle Version einsetzen. Gut für diejenigen, die es schaffen, erfolgreich auf die künftige Version zu migrieren bzw. überhaupt erst mit der neuen Version einsteigen.

Was ich ingesamt damit sagen möchte: Ist von einer Neuentwicklung der eigenen Anwendung die Rede, verfallen die meisten sofort in Panik. Bisheriges kann doch nicht so schlecht sein. Bis jetzt wurden alle Anforderungen erfüllt. Reine Abwehrhaltung. Die Anforderungen ändern sich. Auch die zugrunde liegende Technologie. Irgendwann kommt jedes Produkt an seine Grenze. Idealerweise wird bereits frühzeitig erkannt, wann dies der Fall sein wird. Erhöht sich der Erweiterungsaufwand, wird die Anwendung oder das Framework instabil sollte man auch in diese Richtung denken. Nicht jede Neueentwicklung bedeutet, dass das bisher Geleistete schlecht ist. Man muss agieren um auch zukünftig konkurrenzfähig zu sein/bleiben. Eine Kosten/Nutzen-Rechnung sollte jedoch nicht ausser Augen gelassen werden.

SQL Server 2008 Date and Time Data Types

30.10.2008 18:55:00 | Ozgur Aytekin

Until Microsoft SQL Server 2008, we were limited in our storage and handling of date and time data. Our options consisted of either the datetime or the smalldatetime data type as you expressed. Both options were a combined field storing both date and time data. As a result we had to deal with cumbersome CONVERT() functions or involved T/SQL manipulations to massage and cajole data values stored in our databases into formats that were relevant and proper for our needs. The release of Microsoft SQL Server 2008 brought with it 4 new date and time data types: date, datetime2, datetimeoffset, and time. Each one of these will provide additional functionality and should significantly reduce the amount of coding overhead associated with managing date and time data. In this tip I'll be using the following table to demonstrate the differences between date and time data types in SQL 2008:

http://www.mssqltips.com/tip.asp?tip=1616

Content Deployment

30.10.2008 18:25:00 | Ozgur Aytekin

The most common solution to this problem is to have two server farms: one internal farm (in the intranet) dedicated to your authors/editors/designers and a second farm (in the Internet-facing network) that hosts your production site. Your internal farm is read/write, while your production farm is most likely read-only. If you have this sort of topology though, you need a way to get the authored content from your authoring farm to your production farm. This is where Content Deployment comes in. In a nutshell, deployment allows you to push out your content from one server farm to another. For the purposes of this post, I’m going to focus on a two-tier topology (authoring -> production), but you can also have a three-tier topology (authoring -> staging -> production) or even an n-tier topology if you need it.

http://blogs.msdn.com/sharepoint/archive/2006/05/02/content-deployment.aspx

Silverlight 2 Toolkit

30.10.2008 15:31:19 | Oliver Scheer

Auf Codeplex gibt es ein sehr interessantes Toolkit für Silverlight 2. Innerhalb dieses Toolkits gibt es eine Fülle an Controls:

  • TreeView
  • DockPanel
  • WrapPanel
  • Label
  • HeaderedContentControl
  • HeaderedItemsControl
  • AutoCompleteBox
  • ButtonSpinner
  • Charting
  • Expaneder
  • ImplicitStyleManager
  • NumericUpDown
  • Spinner
  • UpdownBase
  • ViewBox

image

Darüber hinaus gibt es dort direkt einige vordefinierten Themes, die man direkt verwenden kann ohne sich Gedanken über “Design” machen zu müssen

image

Mehr Informationen dazu unter: http://www.codeplex.com/Silverlight

WPF für Multi-Touch: ScatterView oder Surface für Anfänger

30.10.2008 15:00:00 | Jens Peter Kleinau

Seit der PDC 2008 (also seid gestern, den 30. Oktober 2008) ist das SDK für Microsoft Surface draußen. Allerdings werden die Tische und das SDK dazu nicht an jeden weitergegeben. Erst einmal wird der Amerikanische Markt bedient, dann kommen wir Europäer dran. Auch das SDK wird anfangs nur nur limitiert verteilt werden wie Rober Levy und Brad Carpenter in ihrer PDC Session verraten haben. Dass...

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

PDC 2008 Sessions als Videos im schnellen Zugriff

30.10.2008 09:05:41 | Albert Weinert

Aktuell ist in Los Angels die PDC 2008, die Microsoft Entwickler Konferenz überhaupt.

Nett daran ist das man nicht die vielen tausend Euro ausgeben muss um die Vorträge zu sehen. Diese sind nach 24 Stunden im Internet zum Abruf.

Ein einfacher Zugriff darauf ist über den RSS Feed von Channel 9 gegeben

http://channel9.msdn.com/posts/pdc2008/RSS/

Diesen am besten im Internet Explorer ansehen, einfach zu durchsuchen und nach Kategorien zu filtern. Im Firefox ist es nicht so nett.

.NET BlogBook: Ausgabe 7 - ASP.NET

30.10.2008 07:57:54 | Norbert Eder

Unter http://www.dotnet-blogbook.com ist nun auch der Teil zu ASP.NET als Download verfügbar.

Auch darin spiegeln sich die neuen Änderungen wider. Und natürlich stehen neuen und überarbeitete Inhalte zur Verfügung.

Also gleich auf die Projektseite vom .NET BlogBook und herunter laden.

WPF4 mit Multi-Touch Funktion

29.10.2008 19:57:00 | Gregor Biswanger

Anfang Oktober wurde hier auf Dotnet-Blog.net, zum Thema WPF eine Interessante Spur verfolgt. Es wurde spekuliert, was in Zukunft mit WPF passieren wird. Bekannt war, das Microsoft Surface, Windows 7 und Windows Mobile 7 eine Multi-Touch Oberfläche anbieten, und das die Frontend der Anwendungen auf WPF basieren. Erst war unklar wie die Events der Multi-Touch Funktionen von WPF angesprochen werden. Eines der Geheimnisse wurde anschließend gelüftet, die Multi-Touch Erweiterung steckt bei einem Kostenpflichtigen Sufrace SDK.

Leider blieb aber noch folgende Frage: "... Wie sieht es dann mit der Entwicklung für Windows 7 und Windows Mobile 7 aus?..."

Doch war die Antwort schon sehr nah: "...Aber es ist wiederum gut vorstellbar, das diese Funktionen ab denn .NET-Framework 4 oder später enthalten seien wird..."

.NET 4.0 bringt WPF 4

Am 26.Oktober 2008 wurde auf der PDC2008 von Microsoft unter dem Thema "Developing for Microsoft Surface" für Klarheit geschafft. Das .NET Framework 4.0 soll WPF 4 mitbringen und somit Windows 7 Multi-Touch Funktionen Unterstützen (siehe Abb1). Doch muss weiterhin das Surface SDK für das weitere Entwicken von Surface Anwendungen bezogen werden. Wenn allerdings auf ein Support von Microsoft verzichtet werden kann, und die passende Hardware vorhanden ist, hilft ein kostenfreies Open-Source SDK "Multi-Touch Vista" auf codeplex weiter!


Abb. 1: .NET 4.0 / Surface 2.0 Release

Visualization von Gegenständen

Sehr Interessant war die Visualization einer Farbpalette, wobei WPF automatisch durch eine Vorlage den späteren Gegenstand erkennt (siehe Abb2). Freie Felder wurden mit bunten SurfaceButton besetzt. Jeder Button dient somit zur Farbauswahl. Anschließend wurde eine "richtige" Farbpalette auf den Surface-Tisch gelegt und anstandslos erkannt. Mit einem Pinsel wurde dann auf die Button gedrückt und ein Bild zur Demonstration gemalt (siehe Abb3).


Abb. 2: WPF - Sourcecode für die Visualization

 



Abb. 3: Die fertige Anwendung im Einsatz

Und hier das Video von der PDC2008 - "Developing for Microsoft Surface"

"HID data has stopped working" - Problem mit HP Notebook und wireless Maus

29.10.2008 10:08:31 | Thomas Schissler

Seit kurzem bin ich stolzer Besitzer einer Microsoft Wireless Notebook Presenter Mouse 8000 (was für ein Name!). Auf meinem Notebook hatte ich aber ständig das Problem dass die Meldung "HDI data has stopped working" kam. Zwar funktionierte das System ohne Probleme aber die Meldung war extrem nervig, vor allem bei Demos und Vorträgen. Nach einigem suchen bin ich dann auf einen Forum-Thread gestossen der genau für dieses Problem eine Lösung beschreibt. Der entscheidende Post hier nochmals kurz zitiert:

I was having the same problem with my bluetooth microsoft wireless notebook presenter mouse 8000. The problem is created by an application in the HP quick launch Buttons. I removed the application from the launch buttons.

go to:

C:\Program Files\Hewlett-Packard\HP Quick Launch Buttons

move the following files to a backup folder on your computer:

HidActn.dll
Hiddata
PushHid.dll

Then restart you computer and you should not have the errors and the other things on your laptop should still be available.

"HID data has stopped working" - bluetooth mouse error - Vista Hardware Devices

Antworten zum Merge von Visual Studio Team System Development Edition und Database Edition

29.10.2008 08:47:01 | Thomas Schissler

Wie ich hier bereits gepostet habe, verschmilzt Microsoft die Visual Studio Team System Development Edition mit der Database Edition, aus meiner Sicht eine wirklich gute Lösung. Um dieses Thema treten aber immer wieder Fragen auf, so dass ich hier mal die wichtigsten gesammelt habe und natürlich auch beantworte.

F: Wie installiere ich die zusätzliche Edition?
A: Auf MSDN steht den Abonenten die jeweils andere Edition nun zusätzlich zum Download zur Verfügung. Diese kann hier heruntergeladen und dann einfach zusätzlich zur bestehenden Installation installiert werden. Die zusätzlichen Funktionen integrieren sich dann in die bestehende Installation. Ein gemeinsames Installationspaket ist momentan nicht geplant. Mit VS2010 werden die beiden Editionen dann als gemeinsames Paket ausgeliefert.

F: Für welche Editionen gilt diese Option?
A: Die Option gilt sowohl für die 2005er als auch für die 2008er Editionen, im Detail also für:
Visual Studio 2005 Team Edition for Software Developers with MSDN Premium Subscription
Visual Studio 2005 Team Edition for Database Professionals with MSDN Premium Subscription
Visual Studio Team System 2008 Development Edition with MSDN Premium Subscription
Visual Studio Team System 2008 Database Edition with MSDN Premium Subscription

F: Wie verhält sich das mit Servicepacks?
A: Nach der Installation der zusätzlichen Edition müssen die Servicepacks erneut installiert werden.

Weitere Informationen finden sich auch auf der FAQ-Seite zum Merge.

FAQ - MSDN Subscribers with Visual Studio Team System Development Edition or Database Edition

Enterprise Search Architecture

29.10.2008 05:52:00 | Ozgur Aytekin

Enterprise Search in Microsoft Office SharePoint Server 2007 is a Microsoft Office SharePoint Server 2007 shared service that provides extensive and extensible content gathering, indexing, and querying. This service supports full-text searching using a Structured Query Language (SQL)-based query syntax, and provides a new keyword syntax to support keyword searches.

Enterprise Search uses the same underlying Search service as Search in Windows SharePoint Services.

This topic provides information about the internal architecture of Enterprise Search, as well as Enterprise Search as a shared service.

http://msdn.microsoft.com/en-us/library/ms570748.aspx

SharePoint Products and Technologies Customization Best Practices

29.10.2008 05:48:00 | Ozgur Aytekin

This section describes best practices for many common types of customizations and whether they are supported in Microsoft SharePoint Products and Technologies. Customization, as used in this section, means any addition to, change to, or removal of the settings, content, and templates provided by SharePoint Products and Technologies. Unless otherwise specified, the descriptions in this documentation apply to all SharePoint Products and Technologies, including Office SharePoint Server 2007 and Windows SharePoint Services 3.0.

http://msdn.microsoft.com/en-us/library/bb861954.aspx

Alles Neu: VSTS 2010 Architecture Edition

29.10.2008 03:33:41 | Christian Binder

Ein Bereich in VSTS 2010, der signifikante Änderungen mit sich bringt, ist die Architecture Edition. Wobei der Fokus auf den Bereichen Applikations Design und Analyse bestehender Systeme liegt. Hierzu stehen UML Diagramme zur Verfügung, die via DSL implementiert sind, aber in einem UML Model gespeichert werden und exportiert werden können.

Activity Diagrams und Use Case Diagrams helfen Anforderungen zu visualisieren. So kann der Business Process mit Hilfe eines Activity Diagrams visualisiert werden.

image

Sequence Diagrams, Component Diagrams und Logical Class Diagrams unterstützen das Anwendungs Design. Ein Component Diagram zeigt die verschiedenen System Komponenten und wie diese als Provider bzw. Consumer in Abhängigkeit stehen.

image

Logical Class Diagrams zeigen auf einem abstrakteren Level Abhängigkeiten zwischen Klassen und Interfaces. Wobei die Operations direkt mit den Messages des Sequence Diagrams verknüpft werden können.

image

Das Layer Diagram ist meiner Meinung nach das Highlight. Es erlaubt Logische Layer zu definieren und diese an .Net Namespaces zu binden. Im Build Process kann das Layer Diagram via /t:ValidateArchitecture switch beim Gated Checkin verifiziert werden. Sobald ein Entwickler ein Call einbaut, der die definierten Layer ignoriert, wird der Checkin automatisch abgelehnt. Auf diese Weise kann eine definierte Mehrschicht Architektur während des Entwicklungsprozesses kontinuierlich validiert werden.  

image

Der Architekt Explorer ermöglicht die Analyse bestehenden Codes. Zum Beispiel die Abhängigkeiten zwischen Namespaces oder Assemblies. Die Stärke der Pfeile gibt die Häufigkeit an.

image

Auch die Abhängigkeiten zwischen Klassen können einfach und schnell in verschiedenen Ansichten dargestellt werden. Die Artefakte sind direkt mit dem Code verknüpft und via Click erreichbar.

image

Sequence Diagrams sind nicht nur beim Design nützlich, sondern können für bestehenden Code automatisch erstellt werden. 

image

Mehr Details später…… Wer die Diagramme selbst testen möchte kann hier den CTP bekommen.

Chris

Xtopia! Nur noch wenige Tage

28.10.2008 19:54:02 | Oliver Scheer

Bis zur Xtopia sind es nur noch wenige Tage und wir haben noch einige aktuelle Überraschungen bereit:

Waaaahnsinns Give-Away-Paket:  jetzt zusätzlich noch mit Vollversion Expression Encoder 2, bis zu 6 Monate free hosting durch Quality Hosting. Volles Paket hier.

Keynote von Carl Dichter, Director of Systems Development at MySpace.com mit dem Titel "Supporting Wild Ideas and Wild Growth at MySpace"

Erstmalig Surface mit deutschem Partner, neuen Demos und Detail-Präsentationen…wir werden 2 Tische vor Ort haben!

Blogger-Ecke auf der Xtopia - mit freundlicher Unterstützung von www.crowncrow.de/

Jetzt personalisierte Xtopia Memorabilia (T-Shirts, Caps, etc.) bei Spreadshirt ordern -- http://www.xtopia-konferenz.de/Xtopia08_Shop_xt08.mspx?ActiveID=1423

Neues Studententicket (stark limitiert) - für €79 auf die Xtopia mit vollem Give-Away-Paket!

PDC08: Windows 7, WPF, Silverlight, Office Online und das Live Framework

28.10.2008 19:42:57 | Robert Mühsig

Am zweiten Tag der PDC gab es auch wieder einige tolle Sachen zu sehen. Dazu gehört ein erster Blick auf Windows 7 und was man im Zusammenhang mit WPF da alles tolles machen kann. Besonders interessant fand ich die Ribbon Controls für WPF.

Silverlight im Browser und ohne Browser

Besonders interessant war auch, dass Silverlight demnächst nicht nur im Browser sich tummeln kann, sondern auch als selbstständige Applikation. Damit rückt Silverlight näher an Adobes AIR heran. Silverlight Gadgets welche auf XP, Vista und MacOS wären damit gut möglich.

Office Online

Microsoft gesellt sich jetzt auch zu den Online Office Anbietern. Die Präsentation sah schon recht nett aus - das online Office ist eine recht schicke Silverlight Anwendung - mal sehn wann man näheres davon erfährt.

Das Live Framework

Im Zusammenhang mit Windows Azure kommt nun auch das Live Framework. Ich habe bereits vor einige Zeit über “Live Mesh” geschrieben - mit dem SDK kann man nun wohl auch selber “meshfähige” Anwendungen bauen. Das SDK wird es wohl heute Nacht zum Downloaden geben, jedenfalls für diejenigen die sich bei MS Connect angemeldet haben.
Die Dokumentation und Walkthoughs sind aber bereits zum Downloaden bereit - sehr schick :)
Insbesondere durch die “Browserlosen”-Silverlight Applikationen kann man da doch die ein oder andere Idee erstmal spinnen.

Ich hab auch schon eine kleine Idee… ich hoffe ich komm demnächst dazu :)

ShareThis

Live Mesh Mobile Bits für Windows Mobile 6 vorerst nur für USA

28.10.2008 18:48:00 | Jens Peter Kleinau

Im April meinte noch msmobile.com "Microsoft announced Live Mesh but Windows Mobile forgotten". Zur TechEd Australia zeigte sah man in der  Keynote von Amid Mital, General Manager für Live Mesh bei Microsoft, schon etwas von den Live Mesh mobile bits. Nun auf der PDC sah man einen BBC Prototyp für Mobile und PC, der wirklich beindruckend war. Leider ist die auf...

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

In der PDC Keynote und in der Computerbild

28.10.2008 16:40:00 | Jens Peter Kleinau

Es macht manchmal Spaß, Erfolg zu haben, und ich freue mich sehr, dass die von uns erstellte T-Home Anwendung "Meine Software" eben in der Keynote von Ray Ozzie auf der Microsoft PDC (www.microsoftpdc.com/) zu sehen war. Ray Ozzie spricht gerade (28.19.2008 16:30) von der "Nest Generation of User Experience" und wie immer macht er seinen Job sehr gut. Gut, dass ihm...

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

Freikarten zu Xtopia und Technical Summit für Blogger

28.10.2008 16:06:00 | Lori Grosland

Die Xtopia ist Microsofts Konferenz für Business, Web Technology, Design & UX und geht jetzt ins zweite Jahr - mit noch stärkerem Fokus auf die Webthemen. Die Konferenz findet von 16.-18. November 2008 in Berlin ICC statt. Webentwickler, Designer und Businessentscheider können in vier parallelen Vortragsreihen aus einem vielfältigen Angebot an Themen, Workshops und vielem mehr auswählen. Ich bin ein Referent auf der Xtopia und werde über Photosynth und Popfly reden.

www.xtopia.de

Das Microsoft Technical Summit findet immer dann statt, wenn es viel Neues für professionelle Entwickler, Architekten und Entwicklungsleiter zu berichten gibt. Dieses Jahr sind die Highlights die Produkte und Services von morgen, die ganz aktuell auf der PDC 2008 bekannt gegeben und erstmalig auf dem Microsoft Technical Summit in Deutschland vorgestellt werden.

Das Technical Summit findet nach der Xtopia vom 19.-21. November 2008 in Berlin ICC statt. Professionelle Entwickler & IT-Entscheider können in parallelen Vortragsreihen aus einem vielfältigen Angebot an Themen und Workshops auswählen.

www.technical-summit.de

 

FREIKARTEN FÜR BLOGGER!!!

Für beide Veranstaltungen habe ich ein paar Karten für Blogger zu verschenken. Wenn Du ein Blogger bist und Lust hast, dabei zu sein, schicke eine Email bis 3. November 2008 an lori(dot)grosland(at)microsoft(dot)com. Lass mich wissen, welche Veranstaltung, warum Du gern dabei sein möchtest und auch die Link zu Deinem Blog. Auf beide Veranstaltungen werden wir eine Blogger-Ecke haben – mit freundlicher Unterstützung von www.crowncrow.de - wo Blogger mit anderen Blogger austauschen können oder einfach in Ruhe etwas schreiben.

Weite Highlights von den Veranstaltungen:

Xtopia:

  • Keynote von Carl Dichter, Director of Systems Development at MySpace.com mit dem Titel "Supporting Wild Ideas and Wild Growth at MySpace"
  • Keynote von Dan'l Lewin von Microsoft wird in der Keynote sprechen über: Innovation on the Edge (Dan’l Lewin hat NeXT mit Steve Jobs gegründet!)
  • Erstmalig Surface mit deutschem Partner, neuen Demos und Detail-Präsentationen…wir werden 2 Tische vor Ort haben!
  • Waaaahnsinns Give-Away-Paket:  jetzt zusätzlich noch mit Vollversion Expression Encoder 2, bis zu 6 Monate free hosting durch Quality Hosting. Volles Paket hier.
  • Jetzt personalisierte Xtopia Memorabilia (T-Shirts, Caps, etc.) bei Spreadshirt ordern -- http://www.xtopia-konferenz.de/Xtopia08_Shop_xt08.mspx?ActiveID=1423
  • Neues Studententicket (stark limitiert) - für €79 auf die Xtopia mit vollem Give-Away-Paket!

TechSummit:

  • Agenda jetzt final…mit vielen PDC Highlights…die so clip_image001 markiert sind. Volle Agenda hier.
  • Auch ein waaaahnsinns Give-Away-Paket:   jetzt bekommt jeder Teilnehmer auch ein kostenloses Schnupper-Abo der MSDN Premium Subscription mit Visual Studio 2008 Professional bis 28.2.2009. Volles Give-Away-Paket hier.
  • Neues Studententicket (stark limitiert) - für €79 auf das Technical Summit mit vollem Give-Away-Paket!

 

Ich bin Referent auf der Xtopia 08 - treffen Sie mich vor Ort!

Ungarische Notation als Problemlieferant

28.10.2008 16:03:05 | Norbert Eder

Beim Durchsehen von Sourcecode fällt mir doch recht oft auf, dass die ungarische Notation noch häufig verwendet wird. Das, obwohl an vielen Stellen davon abgeraten wird. Was genau ist die ungarische Notation?

Bei der ungarischen Notation erhalten Variablen ein Präfix. Dieses Präfix beschreibt, von welchem Typ die Variable ist. Beispiele:
  • strName
  • dtBirthday
  • intCounter

Den Namen hat die ungarische Notation vom Erfinder: Charles Simonyi, einem Ungarn.

Doch warum wird von der ungarischen Notation abgeraten?

Hier gibt es eine ganz klare Antwort: Es gibt keinen Standard für die Wahl der Präfixe. Dies bedeutet, dass unterschiedlichste Präfixe für dieselben Typen verwendet werden und es daher nicht immer auf den ersten Blick ersichtlich ist, welcher Typ wirklich gemeint ist. Es entstehen dadurch also Verständnisprobleme, wo sie eigentlich nicht sein sollten.

Die Verwendung der ungarischen Notation sollte daher nie in Projekten verwendet werden, an denen unterschiedliche Unternehmen, Zweigstellen etc. involviert sind. Es mag zwar für ein Unternehmen, eine Zweigstelle eine Definition geben, diese muss jedoch nicht für andere gelten oder anderen bekannt sein.

Daher auch immer wieder der Rat, die ungarische Notation nicht zu verwenden.

Was man alles mit Post-Its anstellen kann

28.10.2008 13:28:15 | Oliver Guhr

Einer unser kreativen Kollegen fühlte sich am Freitag berufen dieses Kunstwerk zu erstellen und verzierte diesen Arbeitsplatz (nicht meiner) mit 2 Packungen Post-Its.

28102008022

ShareThis

Multi-Touch: was ist das?

28.10.2008 12:29:00 | Jens Peter Kleinau

Vor etwa 5 Jahren hätte jeder Mensch mich mehr als nur komisch angesehen, wenn ich mit meinem Mittelfinger die Lücke zwischen den beiden Maustasten gestreichelt hätte!! Heute ist das "Mausrad" selbst bei hartnäckigen Mac-Usern ein wichtiges Eingabeinstrument und jeder häufige Computernutzer verwendet es oder vermisst es, wenn er an eine "antiquierte" Maus gerät. Die...

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

Visual Studio 2010 CTP verfügbar

28.10.2008 08:14:49 | Thomas Schissler

Das neueste CTP zu Visual Studio 2010 (Codename Rosario) steht nun zum Download bereit. Das CTP wird als VPC Image bereitgestellt.

Mit Visual Studio 2010 kommen viele neue interessante Features. Vor allem im Bereich Testing und Architektur hat sich hier vieles getan. Ich werde mit diesem CTP beginnen, die einzelnen Funktionen näher zu beleuchten und sicher in nächster Zeit den einen oder andern Blogbeitrag zu diesem Thema schreiben.

Es gibt mit dem CTP verschiedene Aktivierungs-Meldungen. Diese können jedoch meistens einfach ignoriert werden, das Image läuft ganz normal weiter.

Download details: Visual Studio 2010 and .NET Framework 4.0 CTP

Visual Studio Team System 2010 CTP verfügbar

27.10.2008 23:46:00 | Christian Binder

Im Rahmen der PDC in L.A. wurde der neue VSTS 2010 verfügbar gemacht und der bringt eine ganze Reihe neue Features mit :-)

Gated checkins, Buddy Builds, Branch Visualization,  Layer Diagram mit Build verification und das ist nur die Spitze des Eisbergs. Ich werde einige Highlights nochmal im Detail beleuchten.

Hier erstmal tder Link zum CTP:

Download

When you use the Visual Studio 2010 CTP VPC, you will encounter some Activation messages. In most cases, you can just ignore these messages and continue using the image. Read more about this and some workarounds in this post from Brian Keller titled Visual Studio 2010 CTP VPC: Dealing with Activation Messages.

Viel Spass

Chris

Windows Azure - Einer für alle, alle für Einen!

27.10.2008 23:45:00 | Gregor Biswanger

Cloud Computing ist die Vision des heutigen Computer Zeitalters. Dabei wird die zu betreibende Software und die dazu notwendige Hardware (Server etc.) nicht mehr selbst betrieben. Google macht es bereits durch ein Office-Klon vor, womit Briefe wie in Word, und Tabellenkalkulationen wie mit Excel, Online durch den Browser anwendbar werden. Auch Adobe sprengt die Grenzen indem eine Online Variante von der Bildbearbeitungssoftware Photoshop angeboten wird.

Heute am 27 Oktober 2008 wurde auf der PDC2008 (Professional Developers Conference) von Microsoft in Los Angeles, die Hauseigene Lösung zum Thema SaaS (Software as a Service) präsentiert: Windows Azure

Dabei ist Windows Azure kein Betriebssystem, was für Endbenutzer gedacht ist. Das neue Windows wird ausschließlich in Microsoft Rechenzentren betrieben. Windows Azure bietet zu folgenden Microsoft Produkten, öffentliche Schnittstellen an: Live Services, .NET-Services, SQL Services, SharePoint Services, Dynamics CRM Services. (siehe Abb. 1) 

Abb. 1: Das Azure Services Platform

Damit wird nun ein Hosting und Management von Cloud-basierten Diensten kostenpflichtig angeboten. Die Abrechnung soll bei der finalen Version, nach Nutzung stattfinden.

Windows Azure mit Visual Studio ansprechen

Microsoft veröffentlichte zudem ein freies SDK in der CTP-Version (siehe Abb. 2). Womit auf Windows Azure ausschließlich mit Visual Studio zugegriffen werden kann. Das SDK kann unter folgenden Link heruntergeladen werden: http://www.microsoft.com/downloads/details.aspx?FamilyId=BB893FB0-AD04-4FE8-BB04-0C5E4278D3E9&displaylang=en

Windows Azure Tools für Visual Studio: http://www.microsoft.com/downloads/details.aspx?FamilyId=63D0D248-1B08-4F7D-ABDE-62EB75CB1E69&displaylang=en

 

Abb. 2: Windows Azure - Software Development Kit (October 2008 CTP)

Damit das SDK auch Ausliebig getestet werden kann, muss sich dazu kostenlos Registrieren. http://www.microsoft.com/azure/signin.mspx

Wenn alle drei Dinge erledigt sind, kann das Testen auch schon beginnen. Unter Visual Studio wird nun ein "Neues Projekt" mit Cloud Service - Web Cloud Service erzeugt (siehe Abb.3). Unter Windows Vista MUSS das Visual Studio vorher mit Administrator rechten gestartet sein.

Abb. 3: Cloud Service unter Visual Studio

Als Namen tragen wir "HelloCloud" ein. Anschließend werden zwei Projekte automatisch erzeugt (siehe Abb.4). Das erste mit "HelloCloud" ist unsere Cloud-Anwendung mit den dazugehörigen Einstellungen. "HelloCloud_WebRole" dient zum lokalen Entwickeln und Testen der Anwendung.

Abb. 4: Cloud-Projektaufbau unter Visual Studio

Zum Testen wird beim Projekt "HelloCloud_WebRole" bei der Default.aspx, ein Titel und eine Überschrift hinzugefügt mit "Hello, Cloud!".

Abb. 5: Hello, Cloud! unter Default.aspx

Nun wird beim Starten des Projekts, wie gewohnt, lokal die ASP.NET-Page mit unserer Begrüßung angezeigt.

Abb. 6: Hello, Cloud! im Browser

Um die fertige Page nun auf Windows Azure zu laden, muss beim ersten Projekt "HelloCloud_WebRole" mittels rechtsklick auf "Publish.." geklickt werden. (siehe Abb.7)

Abb. 7: Cloud-Anwendung erzeugen

Es öffnen sich zwei neue Fenster. Zum einem das erzeugte Projekt (siehe Abb.8), das aus zwei Dateien besteht. Einer Binären cspkg-Datei, mit der hauptsächlichen Anwendung, und einer cscfg-Datei im XML-Format, mit den Einstellungen der Cloud-Anwendung. Der Namensaufbau kann folgend aufgebaut sein: cspkg (csharp- package) - xscfg (csharp-configuration).

Abb. 8: Cloud-Anwendung erzeugt

Das zweite Fenster ist der Browser, zum direkten Log-In des Azures-Accounts. Wie die folgenden Bilder zeigen, soll es in Zukunft möglich sein, einen Hosting-Service zu erzeugen mit eigener Subdomain. Leider war dies gerade zum Zeitpunkt noch nicht aktiv. Nach dem erzeugten Service, können die beiden Dateien hochgeladen werden. Unter der angelegten Subdomain, ist nun die HelloCloud-Page Aktiv.

Abb. 9: Das erzeugen eines Hosting-Service

Abb. 10: Das erzeugen eines Projekts

Abb. 11: Subdomain zum Projekt anlegen

Abb. 12: Die erzeugte Cloud-Anwendung hochladen

Der kleine Vorgeschmack dieses Beispiels, macht auf jeden Fall Hunger nach mehr! Auch die Community ist erfreut über die einfache Umsetzung der Projekte. Bei der Finalen Version, wird die Plattform offen für andere Anwendungen angeboten werden. Zum Beispiel für Python und Eclipse.

Fazit

Durch ein einheitliches System, wird die Kommunikation unter den verschiedenen Anwendungen um einiges erleichtert. Gedanken zur Hardware-Architektur und Datensicherheit bleiben hierbei erspart. Ein interessanter Punkt wird das Vertrauen der Firmen zu Microsoft sein. Die Ihre Geschäftsdaten durch die Anwendungen fließen lassen. Es bleibt abzuwarten bis die Finale Version veröffentlicht wird, und was Microsoft zum Thema Datensicherheit anbieten kann.

Links

 

http://www.microsoft.com/azure/windowsazure.mspx

http://www.microsoft.com/azure/whatisazure.mspx

C# 4.0: Mit dynamic anonyme Typen zurückgeben und verwenden

27.10.2008 23:05:46 | Mathias Raacke

Interessant was jetzt geht:

static void Main(string[] args)
{
    Console.WriteLine(Test().Hello);
    Console.WriteLine(Test().World);
}

static dynamic Test()
{
    return new { Hello = "Hallo", World = "Welt" };
}
>

Das funktioniert tatsächlich so. Die Kombination “static dynamic” liest sich allerdings etwas merkwürdig :-).

Technorati-Tags: ,

C# 4.0: Optionale Parameter

27.10.2008 22:47:53 | Mathias Raacke

C# 4.0 wird optionale Parameter unterstützen. Für optionale Parameter muss man einen Default-Wert angeben, optionale Parameter müssen am Ende der Parameterliste stehen, d.h. danach dürfen keine nicht-optionalen Parameter mehr folgen. Beispiel:

class Program
    {
        static void Main(string[] args)
        {
            Hello(); // Hello World!

            Hello("OutOfCoffeeException.de");
           
        }
        
        public static void Hello(string world = "World!")
        {
            Console.WriteLine("Hello " + world);
        }
    }
Technorati-Tags: ,

C# 4.0: dynamic Keyword

27.10.2008 22:42:51 | Mathias Raacke

Nachdem ich eben die neue Visual Studio 2010 / .NET 4.0 CTP heruntergeladen habe und schon den ganzen Tag den Twitter Feed von der PDC verfolge habe ich ein wenig mit C# herum experimentiert. Leider habe ich noch keine Doku dazu gefunden, deshalb musste ich mir alles aus einzelnen Infos von Twitter und trial+error zusammenreimen.

C# 4.0 enthält ein neues Schlüsselwort “dynamic”. Das soll wohl für Interoperabilität mit dynamischen Sprachen sorgen. Hier ist ein erstes Beispiel dazu:

class Program
   {
       static void Main(string[] args)
       {
           dynamic dynObj = new DemoA();
           dynObj.DoSomething();

           dynObj = new DemoB();
           dynObj.DoSomething();
       }
   }

   class DemoA
   {
       public void DoSomething()
       {
           Console.WriteLine("Hello from DemoA");
       }
   }

   class DemoB
   {
       public void DoSomething()
       {
           Console.WriteLine("Hello form DemoB");
       }
   }

Mit dem Schlüsselwort “dynamic” wird in Zeile 5 ein dynamisches Objekt erzeugt. Anschließend kann man auf diesem Objekt Methoden aufrufen, die erst zur Laufzeit aufgelöst werden. Bin gespannt welche Anwendungsfälle neben dem Aufruf von dynamischen Sprachen sich dafür noch finden werden.

Technorati-Tags: ,,

Visual Studio Team System support für Sharepoint und Windows Sharpoint Services

27.10.2008 22:19:00 | Christian Binder

Hier kurz die möglichen Varianten mit den verschiedenen VSTS Versionen:

VSTS 2005 unterstützt das Portal nur als WSS auf der lokalen Application Tier des TFS.

Mit VSTS 2008 kann man das Portal auch auf einem anderen Server als der TFS Application Tier
betreiben. Schon bei der Installstion des TFS kann man den Server angeben. Wobei MOSS oder WSS möglich ist. Um nachträglich einen anderen WSS zu konfigurieren, müssen erst die \wssext\cd von der TFS CD installiert werden (siehe TFS Installation Guide) und dann via tfsadminutil die SharepointURI’s angeapsst werden.

image 

Mit VSTS 2010, ist das Portal optional. Es kann WSS sein. Lokal oder Remote.
MOSS, lokal oder Remote. Wobei wir im Fall von MOSS zusätzliche MOSS Features im Portal nutzten werden. Oder eine andere Portal Platform. Die Konfiguration wird via UI im neuen MMC Plug-in möglich sein.

Chris

DNUG Koblenz Spezial: LOB Silverlight 2.0 mit Tony Lombardo aus Jersey, USA (6.11.08 ab 19:00 Uhr in Koblenz)

27.10.2008 21:17:59 | Andre Kraemer

Er ist ASP.NET MVP, er ist Co-Leader der Central-Jersey .NET User Group, für Microsoft hält Web-Casts direkt aus Redmond. Außerdem ist er der Leiter von Infragistics weltweiter Evangelism Gruppe. Er kommt direkt aus den USA und im November ist er bei uns!

Die .NET User Group Koblenz ist stolz, Anfang November mit Tony Lombardo, Lead Evangelist von Infragistics aus den USA, den ersten internationalen Sprecher zu Gast zu haben.
Tony wird über Line of Business Applications mit Silverlight 2.0 sprechen. Während des Vortrags wird er unter anderem auf alltägliche Aufgabenstellungen wie Datenbindung, Authentifizierung oder der Speicherung von Benutzereinstellungen zu sprechen kommen.

Über den Sprecher:

Tony Lombardo ist der leitende Evangelist von Infragistics Welt-Weiter Evangelisten Gruppe. Sein Spezialgebiet ist ASP.NET. Sein tiefer technischer ASP.NET Hintergrund sowie sein Community Engagement verschafften ihm die Auszeichnung zum Microsoft MVP für ASP.NET.
Tony ist Co-Leader der Central-Jersey .NET User Group. Zusätzlich schreibt er regelmäßig für online und print Medien wie zum Beispiel ASP.NET Pro, Dr. Dobb’s Journal, .NET Developers Journal und die Redmond Developer News.
Tony arbeitet seit fast einem Jahrzehnt für Infragistics. Diese Zeit startete er zunächst als Entwickler für ASP.NET, wurde anschließend Produkt Manager für die Infragistics ASP.NET Komponenten ehe er seine aktuelle Rolle als Lead-Evangelist einnahm. Bedingt durch seinen Werdegang verfügt er über "real-world" ASP.NET Erfahrung, die er stets mit freue teilt.
Der Vortrag wird ausnahmsweise in englischer Sprache abgehalten werden.

Anmeldung unter:
https://www.xing.com/app/events?op=detail;id=267741

English Version:

LOB 2.0 with Silverlight 2

This talk will cover building a next generation web application using Silverlight 2. In this talk we will discuss how to do some common tasks including databinding, authentication, and persistence of user defined settings.

Speaker: Tony Lombardo

In November we have Tony Lombardo visiting Europe from the USA. Tony is the lead Technical Evangelist in Infragistics' Worldwide Evangelism Group at Infragistics.
Tony has a deep technical background in ASP.NET and his community participation has earned him the ASP.NET MVP Award from Microsoft. Tony co-runs the Central Jersey .NET Users Group, and often writes for both online and printed publications, including ASP.NET Pro, Dr. Dobb’s Journal, .NET Developers Journal and Redmond Developer News.
In addition, Tony has been working for Infragistics for almost a decade, and in that time he spent his days working as a Developer on our ASP.NET product before becoming a Product Manager and eventually moving the role he has today. As such, Tony has first-hand experience in “real-world” issues and he will be very pleased to advise in a technical capacity on use of Infragistics controls.

Register at:
https://www.xing.com/app/events?op=detail;id=267741



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

Prepare for the Upcoming Office SharePoint Server 2007 and Windows SharePoint Services 3.0 Service Pack 2

27.10.2008 20:57:00 | Ozgur Aytekin

Office Service Pack Team announced Service Pack 2 for 2007 Microsoft Office System. This new service pack will be released between February and April 2009. It will contain both client and server updates. Here are some of the SharePoint related topics that we will be expanding upon in later posts.

- Improved Read-only Content Databases
Whenever a content database is marked read-only, all of the site collections in that database are automatically marked as read-only.

- ECM Performance and Manageability Improvements
Improved performance and manageability in variations, including STSADM commands for repairing links between source and target pages.

- Improved Index Rebuild Timer Jobs
SharePoint content databases running in SQL Server 2005 will undergo an automatic index rebuild, which helps stop defragmentation, and stop the database from degrading in performance.

- Upgrade Checker
This will scan your SharePoint farm in advance of applying SP2 and will provide feedback on the environments readiness to upgrade.

http://blogs.msdn.com/sharepoint/archive/2008/10/24/prepare-for-the-upcoming-office-sharepoint-server-2007-and-windows-sharepoint-services-3-0-service-pack-2.aspx#9018886

Visual Studio 2010 & .NET Framework 4.0 CTP

27.10.2008 20:09:14 | Lars Keller

...gibt es hier zum Download.

Ich bin bei 50% ;-)



This weblog is sponsored by netcreate OHG.

Windows Azure

27.10.2008 19:15:29 | Oliver Scheer

“It is an operating system for the cloud”

Vor wenigen Minuten hat Microsoft auf der PDC in Los Angeles, Windows Azure vorgestellt. Ein Betriebssystem für die Wolke/Cloud.

Unter Windows Azure stehen alle Mittel und Technologien für die Entwicklung, Veröffentlichung und das Hosten von eigenen Anwendungen zur Verfügung.

Skalierbar, Hochverfügbar, einfaches Hosten, existierende Tools (Visual Studio), und viel mehr. Lokal entwickelbar, lokal debugbar und dennoch sehr einfach verteilbar.

Mehr Informationen bald hier und unter: www.azure.com

Visual Studio 2010 & .NET Framework 4.0 CTP

27.10.2008 19:09:14 | Lars Keller

...gibt es hier zum Download.

Ich bin bei 50% ;-)

Disaster Recovery Procedures in SQL Server 2005 Part 2 (Isolating Critical Objects)

27.10.2008 19:06:00 | Ozgur Aytekin

To continue the series on disaster recovery scenarios in SQL Server 2005, let us look at another means to increase the availability of your highly critical databases. Isolating critical objects gives you the advantage of increasing your database availability. You should create a separate filegroup for your critical database objects. In fact, you should be creating your database objects in a different filegroup other than the default primary filegroup. Most of the time, we think of filegroups as a means to improve performance or manage database files. However, we tend to forget the fact that filegroups can be used as a means to improve database availability and should be considered as part of our disaster recovery plan.


http://www.mssqltips.com/tip.asp?tip=1613

Disaster Recovery Procedures in SQL Server 2005 Part 1

27.10.2008 19:06:00 | Ozgur Aytekin

This series of articles will look at different disaster recovery scenarios and the procedures involved in your recovery plan. When considering disaster recovery options for your SQL Server 2005 database, you should include as many technologies as you can so you'll have a pool of options to choose from if a disaster arises. While having these technologies prove to be important, it is the process that goes with it that makes it effective. For this article, let's take a simple scenario where a user accidentally dropped or truncated a table about 5 hours after a database backup was taken. Restoring from a database backup would mean losing 5 hours worth of data. And for most companies, they would rather opt for loss of time than loss of data. Plus, if this was a very large database, it would take quite some time to recover and bring it online. We'll take this scenario to build a procedural approach to recover the database as quickly as possible while minimizing data loss. We will use the Northwind database to demonstrate the process. Remember to change Northwind's database recovery model to FULL before working through the steps below.

http://mssqltips.com/tip.asp?tip=1595

Durchdachte Prozesse als Heilmittel in der Softwareentwicklung?

27.10.2008 18:39:38 | Norbert Eder

Die meisten Softwareschmieden haben das gleiche Problem: Die Softwareentwicklung durchläuft keinen klar definierten Prozess. Egal ob Feature, Bug oder Idee. Alles fließt in eine einige Datenhalde, die dann abgearbeitet wird. Prioritäten werden in den wenigsten Fällen vergeben. Ebenfalls finden sich oft kaum Beschreibungen, genaue Fehlerhinweise oder gar Konkretisierungen der gewünschten Anforderungen.
Immer wieder gerate ich in Unterhaltungen, in denen dieses Thema aufgegriffen wird. Meist ist man sich einig, dass am jeweiligen Software-Prozess Änderungen vorgenommen werden müssen. So einfach es theoretisch ist, treten doch in der Praxis zahlreiche Probleme auf. Wie kann man dem also entgegen wirken?

Eine der wichtigsten Aufgaben ist wohl, zu identifizieren was schief läuft und wo Handlungsbedarf besteht. Auch das klingt einfach und ist es schlussendlich nicht. Wo finden sich Ansatzpunkte?

Projektverantwortliche (unabhängig ob der Geschäftsführer, der Program Manager, der Project Manager usw.) finden sich immer wieder in der Situation, dass sie den aktuellen Entwicklungsstand nicht beurteilen können. So wird an der Businesslogik geschraubt, mit kaum sichtbaren Ergebnissen oder Erweiterungen finden ihren Weg in die Software, die auch erst im letzten Schritt eine Auswirkung auf das User Interface haben. Meist sehr unbefriedigend für denjenigen, der das Produkt seinen Kunden schmackhaft machen soll.

Die Entwickler auf der anderen Seite sehen sich damit konfrontiert, dass die Software im halbfertigen Zustand begutachtet wird, wobei doch gemachte Erweiterungen noch gar nicht sichtbar sein können. Aufgaben mit höchster Priorität werden verteilt, die aktuell nicht zum Entwicklungsstand passen und daher auch nicht wahrgenommen werden können. Zustätzlich werden in ein etwaiges vorhandenes System alle Punkte eingepflegt, sodass sie für jeden Entwickler sichtbar sind (eventuell sogar noch mit Benachrichtigung). Dies bringt definitiv Unruhe in das Entwickler-Team, da man sich automatisch Gedanken über Dinge macht, die zum aktuellen Zeitpunkt nicht relevant sind.

Resultat sind langwierige Diskussionen. Entwickler in ihrer technischen Welt auf der einen Seite und der wirtschaftliche Bereich auf der anderen. Wie gesagt: Stundenlanges Gerede. Jeder "spricht in seinen Worten". Die Annäherung geht gegen null. Schlussendlich glaubt jeder, die andere Seite verstanden zu haben, um bei nächster Gelegenheit zu merken, dass dem nicht der Fall ist.

Nun die entscheidende Frage: Wie kann Ordnung in dieses Chaos gebracht werden?

Es gilt den Wildwuchs von Informationen Herr (oder Frau) zu werden. Der Entwickler soll für ihn relevante Informationen zu Gesicht bekommen und nicht mehr. Dies bedeutet, dass - wie in agilen Prozessen üblich - Releasetermine definiert werden müssen. Jedes Release enthält eine klar abgegrenzte Feature-Liste. Diese wird mit Prioritäten versehen und entsprechend abgearbeitet. Zusätzliche (neue) Anforderungen werden für das aktuelle Release nicht mehr aufgenommen, sondern neuen Releases zugewiesen. Wichtig ist hier, dass die neuen Funktionalitäten klar definiert werden (genaue Spezifikationen müssen definitiv vorhanden sein, ebenfalls Use Cases usw.).

Wird ein Releaseplan zusammengestellt obligt es dem Entwickler eine Machbarkeitsanalyse durch zu führen und entsprechend Rückmeldung zu geben. Bei Machbarkeit erfolgt eine Aufwandsschätung. Darauf hin kann der "Auftraggeber" seine Prioritäten vergeben und festlegen, für welches Release dieser Punkt Relevanz hat.

Der Vorteil liegt klar auf der Hand:
  • Der Projektverantwortliche hält einen klaren Releaseplan in der Hand. Er weiß zu jeder Zeit, welche Features umgesetzt werden können und welche aus Zeitgründen in ein anderes Release verschoben werden müssen. Zusammen mit entsprechenden Auswertungen und Erfahrungswerten gelangt er zur Information, wieviel tatsächlich von seinem Team umgesetzt werden kann.
  • Der Entwickler erhält eine Liste von Punkten die umzusetzen sind. Änderungen (manche lassen sich leider nicht vermeiden, Blocker o.ä.) sind nicht vorgesehen. Er kann sich auf seine Aufgaben konzentrieren und muss sich mit neuen Aufgaben erst bei der Erstellung des nächsten Release-Planes beschäftigen. Er hat den Kopf für aktuelle Aufgaben frei.
  • Einer muss schließlich die Software verkaufen. Er hat aussagekräftige Informationen zur Hand, die er dem Kunden vorlegen kann. Zudem ist jedoch auch klar, dass mal eben ein Feature nicht untergeschoben werden kann. Dieses muss durch den Prozess durch und wird je nach Priorität und Aufwand einem bestimmten Release zugeordnet. Schwerwiegende Fehler sind davon natürlich ausgenommen. Natürlich kann sich durch die Wichtigkeit des Kunden bzw. des Punktes auch der nächste Release-Plan entsprechend verändern. Der aktuell vorliegende Plan sollte davon jedoch unberührt bleiben.

Dieser Prozess ist natürlich nur einer von vielen. An allen Ecken und Enden muss gefeilt werden. Idealerweise setzen sich jedoch Projektverantwortliche und Entwickler an einen Tisch und versuchen einen gangbaren Weg zu finden. Die Bedürfnisse sind auf beiden Seiten die gleichen:
  • Jeder möchte wissen, was im nächsten Release implementiert ist und was nicht.
  • Wie sieht es mit den nächsten Schritten aus? Was ist für zukünftige Releases geplant?
  • Wann sind wir fertig?
  • usw.

Fragen über Fragen. Ein sauberer Prozess kann nicht auf alles eine Antwort geben. Aber viele Antworten können erleichtert werden und durch zusätzliche Messungen kann festgestellt werden, wieviele Manntage tatsächlich innerhalb eines Monats umgesetzt werden können, was das für die Roadmap des Produktes bedeutet und viele weitere Angaben, welche die Planung erheblich erleichtern.

Vielleicht sind Projektverantwortliche und Entwickler in ihren Wünschen doch nicht so weit voneinander entfernt ...

Microsoft server software and supported virtualization environments

27.10.2008 18:21:00 | Ozgur Aytekin

This article discusses the support policy for running Microsoft server software in the following supported virtualization environments:
- Windows Server 2008 with Hyper-V
- Microsoft Hyper-V Server 2008
- Server Virtualization Validation Program (SVVP)

- Windows Server 2008 Standard
- Windows Server 2008 Enterprise
- Windows Server 2008 Datacenter

http://support.microsoft.com/kb/957006

Support policy for Microsoft software running in non-Microsoft hardware virtualization software

27.10.2008 18:20:00 | Ozgur Aytekin

Hardware virtualization software lets you run multiple operating system instances at the same time on a single computer. Microsoft has three software offerings, Windows Server 2008, Microsoft Virtual PC, and Microsoft Virtual Server, which provide this functionality. Third parties also have software in the market that provides this functionality. This article describes support provided by Microsoft for its software running together with non-Microsoft hardware virtualization software.

- All Microsoft Products

http://support.microsoft.com/kb/897615

MS Research Foto-Technologien

27.10.2008 17:42:00 | Lori Grosland

Microsoft Research hat ein paar neue Foto-Technologien auf der Photokina in Köln vorgestellt.  Vor Ort habe ich mit Chris O’Prey, Software Development Engineer bei Microsoft Research Cambridge über die Technologien gesprochen.  In diesem Video zeigt er mir Auto Collage, Image Composite Editor und HD View.

Auto Collage ist eine zukunftsweisende Computervision und Bildentwicklungstechnologie und erstellt automatisch Collagen aus mehreren Bildern. Man wählt die gewünschten Fotos in einem Ordner aus und das Programm generiert automatisch eine Collage mit nahtlosen Übergängen daraus. Auto Collage hat Gesichtserkennungstechnologie und sortiert unpassende Bilder und Bildwiederholungen aus, um eine interessante Fotocollage zu erzeugen.  Die Fotocollage kann auch ausgedruckt werden.

Image Composite Editor erstellt aus mehreren überlappenden Fotos ein Panoramabild.  Wenn die Fotos vom gleichen Standpunkt gemacht worden sind, fügt die Software die einzelnen Fotos zu einem großen Bild zusammen. Der Image Composite Editor korrigiert Unterschiede wie verschiedene Zoom-Einstellungen oder Verschlusszeiten und das Ergebnis kann man in verschiedensten Formaten, wie JPG, PSD, HD View und Silverlight Deep Zoom Formate speichern.

HD View schickt Bilder über das Netz ohne Einschränkung der Dimensionen, der dynamischen Bandbreite oder der Farbtonabstufungen. Mit HDView kann man hochauflösende Bildern im Gigapixel-Bereich in einem Browser betrachten und innerhalb der Bilder navigieren.

Weitere Info über die Foto-Technologien findet Ihr hier…

AutoCollage
http://research.microsoft.com/autocollage/

Image Composite Editor
http://research.microsoft.com/ivm/ice.html

HD View
http://research.microsoft.com/ivm/hdview.htm

WPF für Manager: Time for Change

27.10.2008 12:27:00 | Jens Peter Kleinau

Kürzlich saß ich in einer Veranstaltung zum Thema WPF und User Experience im weiten Kreis von Entscheidungsträgern im Bereich der Software Herstellern. Zu meinem persönlichen Erstaunen war die Anzahl derjenigen, die schon konkrete Erfahrung mit WPF im größeren Rahmen hatten, sehr gering. Aber fast ausnahmslos alle standen nun vor dem Schritt, .Net 3.5 und WPF in ihrer Software zur Anwendung zu...

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

Visual Studio 2010 & .NET Framework 4.0 CTP

27.10.2008 11:09:01 | Lars Keller

...gibt es hier zum Download.

Ich bin bei 50% ;-)

Windows 7 - langsam wird es ernst

27.10.2008 09:51:00 | Jens Peter Kleinau

Am 28. Oktober 2008 werden die Besucher der PDC (Professional Developers Conference) in Los Angeles ein Pre-Beta Build von Windows 7 sehen und erhalten. Die PDC Version von Windows 7 wird auch eine Woche später auf der WinHEC (Windows Hardware Engineering Conference) verteilt werden und aus den M3 Builds (3. Meilenstein) stammen. Aus dem Meilenstein stammen auch Builds, welche im September...

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

Kein Silverlight 2 auf dem iPhone?

26.10.2008 14:01:00 | Jens Peter Kleinau

Irgendwie überrascht mich die Meldung vom 15. Oktober 2008 nicht, die ich bei FierceWireless fand, nicht wirklich. In der Meldung steht, dass Microsoft wahrscheinlich das iPhone nicht als Zielplattform für Silverlight 2 sieht. Das ist fast mehr als nur verständlich. Die Gründe liegen allerdings nicht in irgendwelchen technischen Hürden, sondern so meine persönliche Einschätzung, in der...

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

User Experience auf den Punkt gebracht.

26.10.2008 13:25:00 | Jens Peter Kleinau

Am Freitag lauschte ich den Worten des deutschsprachigen Microsoft User Experience Evangelisten Clemens Lutsch. Er erzählte viel über die Geschichte und die Entwicklung der Erfahrungen von Computer Nutzern. Der für mich wesentliche Satz seines mehrstündigen Vortrags war sinngemäß: Egal ob sie für User Experience Geld ausgeben oder nicht: sie findet auf jeden Fall statt. User Experience ist kein...

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

Creating SQL Server performance based reports using Excel

26.10.2008 10:08:00 | Ozgur Aytekin

In a previous tip, "Setting up Performance Monitor to always collect performance statistics" I wrote about how to collect performance monitor data, but once you have the data then what do you do with it. In this tip I will show you how I use Excel to analyze the data to help determine where your bottlenecks may be and also an easy way to create quick reports and charts for your SQL Servers.

http://www.mssqltips.com/tip.asp?tip=1515

MSDN Virtual Lab: A SharePoint Developer Introduction - Web Parts - C#

26.10.2008 10:03:00 | Ozgur Aytekin

MSDN Virtual Lab: A SharePoint Developer Introduction - Web Parts - C#
Event ID: 1032380233

Web Parts are one of the core ASP.NET technologies used by SharePoint to present dynamic information to users. They are the most common customization created for SharePoint. A Web Part is a reusable component which exists on a Web Part Page and can present any type of web-based information.

The objective of this lab is to learn about how to build Web Parts for use in the SharePoint system. After completing this lab you will be better able to create a basic SharePoint Web Part which displays information from within the SharePoint site, create a more advanced Web Part utilizing a server postback and the SPGridView control, and
create an advanced Web Part leveraging Web Part connection that displays budget data.

http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032380233&EventCategory=3&culture=en-US&CountryCode=US

FIX: The return type or the out argument of an ASMX service method that includes a property that has an internal setter may not be serialized on a ...

25.10.2008 11:33:00 | Ozgur Aytekin

FIX: The return type or the out argument of an ASMX service method that includes a property that has an internal setter may not be serialized on a computer that has the .NET Framework installed

Consider the following scenario. You have a computer that has the Microsoft .NET Framework 2.0 Service Pack 2 (SP2) or the .NET Framework 3.5 SP1 installed. You use an ASMX service method that includes a property, and the property has an internal setter. The serialization may fail. This problem occurs in a scenario that resembles the following:

http://support.microsoft.com/kb/952883

Nur noch drei Wochen bis zur Xtopia: Hochkarätige Speaker, Wahnsinns-Giveaways, brutale Studenten-Rabatte und zwei echte Surface-Maschinen, woohoo!

24.10.2008 19:39:00 | Steffen Ritter

In gut drei Wochen ist es soweit und die zweite Xtopia-Konferenz startet in Berlin am 17. Oktober (die Pre-Conference startet bereits am 16.). Ich bin dieses Jahr selber kaum an der Organisation beteiligt, nur einige Sessions aus dem Designertrack stammen von mir, beispielsweise „Der Silverlight-Design-Workflow in der Praxis“ mit Sascha Wolter als Sprecher. Sascha ist übrigens auch der Autor eines neuen DVD-Trainings zu Silverlight im Programm von Video2Brain – und ja, alle Xtopia-Teilnehmer erhalten diese Trainings-DVD kostenlos in ihren Konferenz-Taschen.   

Auch ansonsten kann sich das Giveaway-Paket sehen lassen. Jeder Teilnehmer der Xtopia-Konferenz erhält:

·         Eine Vollversion des Microsoft Expression Encoder 2

·         Eine Vollversion von ComponentOne Studio for Silverlight inkl. 6-monatiger Subscription

·         „Webhosting-Paket for free“ - bis zu 6 Monate kostenfreies Hosting auf einem Microsoft Virtual Web Server 2008 von Quality Hosting

·         Bis zu 30 Prozent Nachlass auf die Expression Professional Subscription

·         Eine Trainings-DVD: Anwendungsentwicklung für Silverlight 2 – Verstehen, Verwenden, Programmieren und Gestalten

·         Ein beliebiges Buch von Microsoft Press Deutschland nach Wahl

Die Sprecherliste der Keynote liest sich wie ein Who-is-Who der IT- und Webbranche:

  • Dan'l Lewin (Corparate Vice President, Strategic and Emerging Business Development, Microsoft Corp.)    
  •  Carl Dichter (Director of Systems Development, MySpace.com)
  • Said Zahedani (Direktor der Developer Platform & Strategy Group, Microsoft Deutschland)
  • Patrick Baudisch (Research Scientist @ Microsoft Research, Seattle)

Großartige ist auch das Angebot das sich meine Kollegen für Studenten ausgedacht haben: Für kurze Zeit und stark limitiert gibt es momentan für nur 79,- Euro spezielle Studententickets mit komplettem Giveaway-Paket!  

Vielen Dank außerdem an Alex von Crow’n’Crow – Crow’n’Crow sponsort die Bloggerecke auf der Xtopia und stattet sie mit den individuell gestaltbaren Crow’n’Crow-Sitzsäcken aus.

Wir sehen uns in Berlin in drei Wochen!

PS: Ach ja, wer personalisierte Xtopia-Memorabilia möchte (T-Shirts, Caps, etc.) kann jetzt bei Spreadshirt ordern.

Visual Studio Team System 2010 Week on Channel 9!

24.10.2008 19:16:54 | Thomas Schissler

Auf Channel 9 gibt es eine ganze Reihe von Videos zu Visual Studio 2010 (Codename Rosario).

Monday, September 29th:
- Announcing Visual Studio Team System 2010

Architecture Day (Tuesday, September 30th):
- Cameron Skinner: Visual Studio Team System 2010 - Architecture
- "Top-down" design with Visual Studio Team System 2010
- "Bottom-up" Design with Visual Studio Team System 2010 Architect
- ARCast.TV - Peter Provost on what’s coming for Architects in Visual Studio Team System

Business Alignment (Wednesday, October 1st):
- Achieving Business Alignment with Visual Studio Team System 2010
- Agile Planning Templates in Visual Studio Team System 2010
- Enterprise Project Management with Visual Studio Team System 2010
- Requirements Management and Traceability with Visual Studio Team System 2010

Software Quality (Thursday, October 2nd):
- Better Software Quality with Visual Studio Team System 2010
- Manual Testing with Visual Studio Team System 2010
- Historical Debugger and Test Impact Analysis in Visual Studio Team System 2010

Team Foundation Server (Friday, October 3rd):
- Brian Harry: Team Foundation Server 2010
- Branching and Merging Visualization with Team Foundation Server 2010
- Enterprise Team Foundation Server Management with Mario Rodriguez
- Team Foundation Server 2010 Setup and Administration
- An early look at Team Foundation Build 2010 with Jim Lamb
- A first look at Visual Studio Team System Web Access 2010
- Update on Team Foundation Server Migration and Synchronization

Visual Studio Team System 2010 Week on Channel 9! | VisualStudio | Channel 9

Bildungsinitative: Studenten aufgepasst! Konferenzen zum Sparpreis und neues Microsoft Academic Relations Portal auf MSDN!

24.10.2008 16:58:48 | Kay Giza

Überall ist von „Mehr Geld für Bildung“ die Rede, bei MSDN lautet das Motto dagegen klar „Weniger Geld“!
Zum Sonderpreis von nur 79 € können Studierende am Microsoft-Webkongress „
Xtopia“ teilnehmen, der vom 17. bis 18. November in Berlin stattfindet; ebenfalls zum 79 €-Spartarif ist der Besuch der Hauptkonferenz des „Microsoft Technical Summit“ am 20. und 21. November möglich. Was man für die Anmeldung benötigt und was Studierende in Berlin erwartet, erklären Konferenz-Organisator Achim Dettweiler und MSDN-Manager Frank Fischer in diesem Video:




MSDN Microsoft Academic Relations-Portal
Das neue Portal MSDN Microsoft Academic Relations-Portal ist zukünftig Anlaufstelle Nummer eins für alle Professoren, Hochschulmitarbeiter, Studenten sowie Bildungseinrichtungen.
Noch Rückfragen :-) - dann finden Sie auf selbstverständlich auch alle Ansprechpartner des 'Academic Relations Teams' bei Microsoft vor.

Also - das nenne ich mal Bildungsoffensive :)

This post is powered by www.Giza-Blog.de | Giza-Blog.de: RSS Feed
Visit:  MSDN Online | Kostenfreie MSDN Service-Hotline für Entwickler
Daily News on MSDN:   MSDN Aktuell
© Copyright 2006-2009 Kay Giza. All rights reserved. Legal

InfoPath and Web Content Management: an End-to-End SharePoint Scenario -- Part 1: Creating the InfoPath Form

24.10.2008 11:57:00 | Ozgur Aytekin

This month at the SharePoint User's Group meeting, I spent an hour going through a demonstration of an end-to-end SharePoint solution, and I wanted to share the contents of that lecture with you.

Because SharePoint is such a large product, it often gets segmented into different areas of functionality, which label things like "Collaboration", "Business Intelligence", "Web Content Management", etc. While these labels are helpful, they tend to encourage silo thinking; that is to say, we think of our application as just one thing, while neglecting to think about all the possibilities available to us through SharePoint.

http://blog.beckybertram.com/Lists/Posts/Post.aspx?ID=10

Axialis IconWorkshop™ Lite for Microsoft Visual Studio® 2008

24.10.2008 11:44:00 | Ozgur Aytekin

Axialis IconWorkshop™ Lite Version 6.3.1.1

Axialis Software, in association with Microsoft Corporation, presents Axialis IconWorkshop Lite for Visual Studio 2008:

* 100% Free for Visual Studio 2008 users;
* Make icons for Windows up to 256x256 PNG-compressed icons for Windows Vista™ and include them in your software projects;
* Use an advanced icon editor with various tools, filters and effects;
* Work efficiently using a Plug-in for Visual Studio 2008;
* Create icons from images or ready-to-use image objects;
* Use a fully integrated workspace with librarian, built-in file explorer with thumbnail preview, image viewer and more...

* Create Icons for Windows® up to Vista™
* Create Icons using Basic Object Packs
* Use Plug-in with Visual Studio 2008
* Enhanced and Fully Integrated User Interface
* Modify Icons in Programs/DLL
* Manage Icons using a built-in Librarian
* Built-in File Browser with Thumbnail Previews


http://www.axialis.com/download/iwlite.html

Web services included with Windows SharePoint Services 3.0 and Microsoft Office SharePoint Server 2007

24.10.2008 09:38:00 | Ozgur Aytekin

Refers to access to the built-in Web services included with Windows SharePoint Services 3.0 and Microsoft Office SharePoint Server 2007.

The SharePoint environment includes built-in Web services that can be used to work with areas of the SharePoint object model remotely. Each Web application Web service is installed in the _vti_bin directory, which maps to the following file system location:

%COMMONPROGRAMFILES%\Microsoft Shared\web server extensions\12\ISAPI

The following Web services are provided in Office SharePoint Server 2007 Web applications.

http://msdn.microsoft.com/en-us/library/bb862916.aspx

Wir haben doch keine Zeit!

24.10.2008 07:58:36 | Andre Kraemer

Haben wir doch! Zumindest wenn wir Torsten Weber glauben schenken.

Torsten besuchte nämlich gestern unsere .NET User Group in Koblenz um einen Vortrag zum Thema Mobile Computing zu halten. Auf die obligatorische Frage: "Wie viel Zeit brauchst du für deinen Vortrag?" Antwortete er: "Wie viel gibst du mir?" Als ich nun sagte "So viel du brauchst!", schlug er mit einem lächeln auf dem Gesicht vor, zwei Vorträge zu halten. Zum einen erzählte er natürlich etwas über Mobile Computing, startete jedoch mit dem Thema "(k)eine Zeit für Herzrasen".

Die Entscheidung, diesen Vortrag auch hören zu wollen, bereute sicherlich niemand in unserer Gruppe, auch wenn das Treffen dadurch statt um 21:00 Uhr erst um 23:30 endete.

Persönlich habe ich folgendes aus dem Vortrag mit genommen:

  • Ich werde meine E-Mail Inbox aufräumen, um von 185 Elementen in meiner Inbox auf 0 zu kommen
  • Ich werde MindManager nicht mehr nur zum zeichnen von Kästchen, sondern zum effektiven Selbstmanagement nutzen
  • Ich werde mir definitiv Informationen zum Thema Presentation Zen ansehen

Nach dem gestrigen Abend kann ich jedem, der die Chance dazu hat, nur wärmstens empfehlen, sich Torstens Vortrag anzuhören!

Abgesehen davon, dass der Unterhaltungswert weitaus höher ist, als der des abendlichen Fernsehprogramms, ist er voll von nützlichen Tipps, Tricks und Methodiken, die einem zwar nicht mehr Zeit, aber mehr freie Zeit verschaffen können!

In diesem Sinne noch einmal vielen Dank an Torsten, der seinen letzten Abend vor seiner Reise zur PDC dafür opferte uns zu erklären wie man "vergessenes notiert"!



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

Update sofort installieren! fuer Windows 2000, Windows XP, Windows Server 2003 / 2008 und Windows Vista

23.10.2008 21:34:33 | Kay Giza

Wie heute in meinem Blogpost 'Microsoft Update: außerplanmäßige Sicherheitsaktualisierung am 23.10.08!' angekündigt, hat Microsoft heute ein wichtiges Sicherheitsupdate veröffentlicht. Dieses Sicherheitsupdate behebt eine vertraulich gemeldete Sicherheitsanfälligkeit im Serverdienst.

Die Sicherheitsanfälligkeit kann Remotecodeausführung ermöglichen, wenn ein betroffenes System eine speziell gestaltete RPC-Anforderung erhält. Auf Systemen mit Microsoft Windows 2000, Windows XP und Windows Server 2003 kann ein Angreifer diese Sicherheitsanfälligkeit ohne Authentifizierung ausnutzen, um beliebigen Code auszuführen. Diese Sicherheitsanfälligkeit kann bei der Gestaltung einer als Computerwurm verwendbaren Ausnutzung verwendet werden. Mithilfe empfohlener Vorgehensweisen für die Firewall und standardisierten Firewallkonfigurationen können Netzwerkressourcen vor Remoteangriffen von außerhalb des Unternehmens geschützt werden.

Dieses Sicherheitsupdate wird für alle unterstützten Editionen von Microsoft Windows 2000, Windows XP und Windows Server 2003 als Kritisch eingestuft und für alle unterstützten Editionen von Windows Vista und Windows Server 2008 als Hoch.

Das Sicherheitsupdate behebt die Sicherheitsanfälligkeit, indem korrigiert wird, wie der Serverdienst RPC-Anforderungen verarbeitet.

Empfehlung: Microsoft empfiehlt Benutzern die sofortige Installation des Updates

 



This post is powered by www.Giza-Blog.de | Giza-Blog.de: RSS Feed
Visit:  MSDN Online | Kostenfreie MSDN Service-Hotline für Entwickler
Daily News on MSDN:   MSDN Aktuell
© Copyright 2006-2009 Kay Giza. All rights reserved. Legal

Windows Home Server

23.10.2008 20:57:00 | Lori Grosland

Auf der Photokina habe ich mit Marc Oldenburg über Windows Home Server geredet.  Der Windows Home Server verbindet PCs, Player und Speichermedien innerhalb eines Hauses miteinander auf einfache Art und Weise.  Er bietet einen zuverlässigen Weg Daten zu speichern, auf Daten zu zugreifen oder anzubieten und auch automatisch zu sichern. Der Windows Home Server macht es einfach Fotos, Dokumente und Daten an einer zentralen Stelle zu organisieren.   Marc erzählt mehr über Windows Home Server in diesem Video. 

Weitere Information rund um Windows Home Server findet Ihr hier…

www.microsoft.com/germany/windows/products/winfamily/windowshomeserver/default.mspx

Oder über den „Stay-At-Home-Server“ hier…

www.stayathomeserver.com

After a user is deleted from a role in the Authorization Manager in an Active Directory domain environment, the user can still unexpectedly access ...

23.10.2008 20:50:00 | Ozgur Aytekin

After a user is deleted from a role in the Authorization Manager in an Active Directory domain environment, the user can still unexpectedly access that role from a Windows Vista-based or Windows Server 2008-based client computer

Consider the following scenario:
- You have an Authorization Manager store in an Active Directory domain environment.
- You add a user to a role in Authorization Manager.
- You log on to and then you log off from the domain on a Windows Vista-based or Windows Server 2008-based client computer by using the user account to that you added the role.
- The administrator deletes the user from the role in the Authorization Manager.

- Windows Vista Business
- Windows Vista Enterprise
- Windows Vista Ultimate
- Windows Vista Enterprise 64-bit Edition
- Windows Vista Business 64-bit Edition
- Windows Vista Ultimate 64-bit Edition
- Windows Server 2008 Datacenter without Hyper-V
- Windows Server 2008 Enterprise without Hyper-V
- Windows Server 2008 for Itanium-Based Systems
- Windows Server 2008 Standard without Hyper-V
- Windows Server 2008 Datacenter
- Windows Server 2008 Enterprise
- Windows Server 2008 Standard
- Windows Web Server 2008

http://support.microsoft.com/kb/954902

Windows Server System software not supported within a Microsoft Virtual Server environment

23.10.2008 20:48:00 | Ozgur Aytekin

The following Windows Server System software is not supported within a Microsoft Virtual Server environment:
- Microsoft Speech Server
Speech Server requires telephony hardware not available in a virtualized hardware environment. Therefore, Speech Server is not supported when run within Virtual Server.

- Microsoft ISA Server 2000
ISA Server 2000 is currently not supported running within Virtual Server.

- Microsoft ISA Server 2004
ISA Server 2004 is currently not supported running within Virtual Server.

- Microsoft SharePoint Portal Server
SharePoint Portal Server is currently not supported running within Virtual Server. Support for SharePoint Portal Server within Virtual Server is expected in a future release.
Note Microsoft Office Sharepoint Server 2007 and Windows Sharepoint Services 3.0 are supported in a Microsoft Virtual Server 2005 R2 environment.

- Microsoft Identity Lifecycle Manager 2007
Identity Lifecycle Manager 2007 is currently not supported running within Virtual Server.

- Microsoft Identity Integration Server 2003
Identity Integration Server 2003 is currently not supported running within Virtual Server.

- Microsoft Identity Integration Feature Pack
The Identity Integration Feature Pack is currently not supported running within Virtual Server.

- Microsoft Forefront Client Security
Forefront Client Security is currently not supported within Virtual Server for production use.

- Microsoft Dynamics AX Dynamics
AX 4.0 and earlier verions is currently not supported running within Virtual Server. Support for Dynamics AX within Virtual Server is expected in a future release.

- Microsoft Exchange Server 2007
The release version of Exchange Server 2007 and Exchange Server 2007 with Service Pack 1 are currently not supported running within Virtual Server.

Note Microsoft ISA Server 2006 is supported within a Microsoft Virtual Server 2005 R2 environment.

- Microsoft Virtual Server 2005 Enterprise Edition
- Microsoft Virtual Server 2005 Standard Edition
- Microsoft Virtual Server 2005 R2 Enterprise Edition
- Microsoft Virtual Server 2005 R2 Standard Edition
- Microsoft Exchange Server 2007 Enterprise Edition
- Microsoft Exchange Server 2007 Service Pack 1
- Microsoft Exchange Server 2007 Standard Edition

http://support.microsoft.com/kb/897614/

SQL Server Schema Binding and Indexed Views

23.10.2008 20:44:00 | Ozgur Aytekin

Recently while creating an archival job I noticed that job was taking way too long to complete. To help troubleshoot I executed the stored procedure directly and it was also taking a long time to fetch the rows from the view that I was using. Based on the query plan it looked like creating an index on the view may help the issue, so I first looked to see if any indexes were in place for the views, but none were found. The next step was to create an index on the view, but I was presented with this error message "Cannot create index on view, because the view is not schema bound".

http://www.mssqltips.com/tip.asp?tip=1610

Hosting a WPF Control in MFC and Enable Cut-and-Paste

23.10.2008 19:53:00 | Ozgur Aytekin

It is possible to host a Windows Presentation Foundation (WPF) Control in the client area of an MFC Application and to enable Cut-and-Paste event handling in MFC that can cut-and-paste text in the WPF controls.

WPF controls do not have window handles therefore you will need to use WPF API's in the MFC event handling code to cut and paste the text.

This article will outline the basic steps to enable this in a simple MFC SDI application.

- Microsoft Visual C++ 2008 Express Edition

http://support.microsoft.com/kb/959082

Microsoft Update: ausserplanmaessige Sicherheitsaktualisierung am 23.10.08!

23.10.2008 12:52:05 | Kay Giza

Update 23.10.2008, 20:34 Uhr: Update sofort installieren! für Windows 2000, Windows XP, Windows Server 2003 / 2008 und Windows Vista

Ursprüngliche Meldung:
Die Sicherheit unserer Produkte ist uns ein vordringliches Anliegen. Um Sie beim sicheren Betreiben Ihrer IT-Infrastruktur optimal zu unterstützen, wird Microsoft heute Donnerstag, den 23.10. gegen 19:00 Ortszeit eine außerplanmäßige Sicherheitsaktualisierung veröffentlichen.


Solche außerplanmäßigen Sicherheitsaktualisierungen werden von uns nur aus wichtigen Gründen veröffentlicht. Ich empfehle Ihnen daher, diese Information an die zuständige Person in Ihrer IT-Abteilung weiterzuleiten. Diese Vorabinformation soll Ihnen helfen die außerplanmäßige Sicherheitsaktualisierung auch in Ihrem Unternehmen möglichst rasch zum Einsatz zu bringen. Die Detailinformationen dazu werden heute Abend gegen 19:00 veröffentlicht werden.
 
Folgende Informationen stehen derzeit zur Verfügung (in englisch):

Informieren Sie sich über die verfügbaren Updates. Updates für Ihren Computer oder Laptop sind von der Microsoft Update-Website beziehbar.  

Wir möchten an dieser Stelle noch einmal ausdrücklich darauf hinweisen, dass Microsoft niemals Softwareupdates als Anhang von Sicherheitsbenachrichtigungen verschickt, sondern Sie auf diesem Weg lediglich auf ihre Verfügbarkeit hinweist. Sollten Sie also E-Mails erhalten, die vermeintlich von Microsoft stammen und als Anhang angebliche Sicherheitsupdates beinhalten, löschen Sie diese bitte ungelesen!



This post is powered by www.Giza-Blog.de | Giza-Blog.de: RSS Feed
Visit:  MSDN Online | Kostenfreie MSDN Service-Hotline für Entwickler
Daily News on MSDN:   MSDN Aktuell
© Copyright 2006-2009 Kay Giza. All rights reserved. Legal

QuakeLight - Quake mit Silverlight? Silverlight und 3D?

23.10.2008 10:36:48 | Robert Mühsig

Ein verrückter französischer Entwickler arbeitet gerade an einer Silverlight Variante von Quake:


QuakeLight Preview

In diesem Blogpost beschreibt er sein Vorgehen und wie er das eigentlich macht (und wie cool Silverlight eigentlich ist ;) ) - er nimmt keine bestehende 3D Engine wie Baldar etc., sondern portiert die Quake Engine direkt in C#, Silverlight.

Man kann es leider noch nicht selber anschauen, aber wenn es klappt und Performant läuft… wow :D

Diese Seite ist auch sehr interessant dazu - bei dieser Spieleschmiede arbeitet der Entwickler. Silverlight als Gaming-Plattform ahoi!

ShareThis

Error message when content is crawled in SharePoint Server 2007: "An unrecognized HTTP status was received. Check that the address can be accessed ...

23.10.2008 05:56:00 | Ozgur Aytekin

Error message when content is crawled in SharePoint Server 2007: "An unrecognized HTTP status was received. Check that the address can be accessed using Internet Explorer"

When content is crawled in Microsoft Office SharePoint Server 2007, you notice that the Office SharePoint Server Search service generates the following error message in the crawl logs:
An unrecognized HTTP status was received. Check that the address can be accessed using Internet Explorer.
(HttpStatusCode Service Unavailable.
The request failed with HTTP status 503: Service Unavailable).

- Microsoft Office SharePoint Server 2007

http://support.microsoft.com/kb/938219

xUnit BDD Extensions

22.10.2008 18:24:03 | Mathias Raacke

Auf dem .NET Open Space hat Björn Rochel seine xUnit BDD Extensions vorgestellt und wir haben uns in einer Session auch länger darüber unterhalten.

Heute habe ich seine Extensions das erste Mal ausprobiert und einen neuen Unit Test nach BDD Art geschrieben.

Dieser spezielle Test war besonders kompliziert, da ich hier Code in einem Windows Service testen wollte und dafür die OnStart Methode aufrufen musste, die protected ist. Außerdem startet der Code der getestet wird mehrere neue Threads, und der Test sollte prüfen, ob diese Threads auch wirklich gestartet wurden.

Der Test sieht dann folgendermaßen aus:

public class 
When_the_Service_Starts_And_There_Are_three_Tasks : 
TaskRunnerServiceSpecification
   {
       #region Arrange

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

           newThreads = new List<Thread>();

           // add some tasks
           tasks.Add(new TestTask(this));
           tasks.Add(new TestTask(this));
           tasks.Add(new TestTask(this));
       }

       internal IList<Thread> newThreads;



       #endregion

       #region Act

       protected override void Because()
       {
           // because OnStart was called...
           taskRunnerService.InvokeNonPublicMethod(
              "OnStart", new object[] {
                 new string[0]});

           // ... wait a second to give the other 
           // threads a chance to execute
           Thread.Sleep(1000);
       }

       #endregion

       #region Assert

       [Observation]
       public void should_create_three_new_threads()
       {
           newThreads.Distinct().Count().
           ShouldBeEqualTo(3);
       }

       [Observation]
       public void should_execute_all_tasks()
       {
           tasks[0].wasExecuted.ShouldBeTrue();
           tasks[1].wasExecuted.ShouldBeTrue();
           tasks[2].wasExecuted.ShouldBeTrue();
       }


       #endregion

       #region Cleanup


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

           foreach (var thread in newThreads)
           {
               if (thread.IsAlive)
                   thread.Abort();
           }
       }

       #endregion
   }

Im Prinzip verbirgt sich dahinter ein “ganz normaler” Unit Test mit xUnit und Rhino Mocks (wobei ich in diesem speziellen Test zufällig gerade keine Mocks nutze), allerdings besser strukturiert und mit lesbareren Methodennamen (z.B. ShouldBeTrue statt Assert.True).

Durch die Bennenung der Tests und Methoden nach BDD-Art ist die Ausgabe im ReSharper Testrunner richtig gut lesbar:

image

In dem Beispielcode oben fehlt noch eine Hilfsklasse für diesen Test, TestTask. Diese setzt nur ihre “wasExecuted”-Eigenschaft auf true, falls die Execute-Methode aufgerufen wurde, und fügt ihren Thread zur newThreads-Liste hinzu.

Wir werden das in der Praxis weiter ausprobieren (ein anderer Kollege hat sich vorhin auch schon an BDD versucht), und diesen Ansatz wenn er sich bewährt für alle unsere Unit Tests übernehmen.

Gallio und MbUnit V3 fertig

22.10.2008 11:36:21 | Rainer Schuster

Letzte Woche hat das Team rund um Lead Developer Jeff Brown Gallio fertiggestellt. Mit in dem Paket dabei ist MbUnit V3. Gallio bringt neue Testrunner mit - Echo für die Konsole und Icarus als GUI.

Unterstützt wird

Weitere Toolunterstützung gibt es dazu noch in Hülle und Fülle:

Ziel des Projektes ist es eine neue Plattform für andere zu bieten auf dem weiteres Tooling rund um Testing, TDD, BDD und allen anderen Testderivaten stattfinden kann.

Das Packet wird mit einem für diese Zwecke recht ausführlichen Buch als Dokumentation bereitgestellt.

Xtopia und Technical Summit ATE

22.10.2008 10:37:23 | Mathias Raacke

Auf der Xtopia und dem Technical Summit werde ich als “Ask the Expert” dabei sein und Fragen rund um .NET und Visual Studio beantworten. Ich freue mich schon auf viele interessante Gespräche!

Offizieller ATE @ Xtopia 08: Treffen Sie mich in den Ask the Experts-Sessions! Offizieller ATE @ Microsoft Technical Summit 2008: Treffen Sie mich in den Ask the Experts-Sessions!

Technorati-Tags: ,

Erste Alpha vom neuen Sandcastle Help File Builder

22.10.2008 10:22:51 | Rainer Schuster

Beim SHFB hat sich einiges getan. am 18.10. ist eine erste Alpha der ersten neuen Version erschienen. Damit schlägt der Autor Eric Woodruff einen neuen Weg ein.

Es hat sich sehr viel geändert. Ziel ist es den SHFB später als Visual Studio Package zu verteilen. Damit legt er in dieser Version die ersten Grundsteine und führt neben einem neuen Projektformat, das auf MSBuild basiert auch ein neues Frontend.

Welche Änderungen sich im Detail ergeben und welche Auswirkungen das auf meine Artikel und bestehenden Posts hat, werde ich mir noch ansehen und diese entsprechend aktuallisieren.

Wer daran interessiert ist, sich das näher anzusehen, dem seien auch als Quickstart die Verionsänderungen zur neuen Alpha genannt.

Das Model-View-Presenter Pattern in ASP.NET – Teil 1

21.10.2008 19:10:09 | Mathias Raacke

Im Moment liest man überall vom ASP.NET Model View Controller (MVC) Framework. Das MVC Framework unterscheidet zwischen einem Model, einer View und einem Controller, und führt so zu einer klaren Aufgabentrennung und leichter testbarem Code.

Um testbare ASP.NET Web Seiten zu schreiben, bei der die Darstellung (View) sauber von der Logik und vom Modell getrennt ist, muss  man jedoch nicht erst auf das MVC Framework warten. Auch mit ASP.NET Web Forms ist es möglich, gut strukturierte und testbare Anwendungen zu entwickeln.

Ein Ansatz dafür ist das Model-View-Presenter (MVP) Pattern. Auf den ersten Blick ist das MVP Pattern dem MVC Pattern sehr ähnlich. Beide Ansätze verfolgen im Prinzip die gleichen Ziele, erreichen diese nur auf einem anderen Weg. Eine genaue Beschreibung der Unterschiede gibt es z.B. unter

http://ameleta.spaces.live.com/blog/cns!5F6316345A821420!163.entry

http://stackoverflow.com/questions/2056/what-are-mvp-and-mvc-and-what-is-the-difference#101561

Das Pattern das ich verwende ist eine Variante des MVP Patterns, und nennt sich “Supervising Controller”. Dieses Pattern wird von Fowler sehr ausführlich beschrieben.

Meine Implementierung des MVP Patterns basiert auf einer Implementierung von David Hayden: http://www.pnpguidance.net/Post/UnityIoCDependencyInjectionASPNETModelViewPresenter.aspx

David verwendet das MVP Pattern zusammen mit Microsoft Unity als Dependency Injection Container. Über das Thema Dependeny Injection werde ich später vielleicht in einem eigenen Beitrag schreiben, bis dahin soll es ausreichen zu wissen, dass sich Unity darum kümmert, dass Model, View und Presenter richtig miteinander “verdrahtet” werden.

David hat Basisklassen für View und Presenter geschrieben. Die View ist bei ihm eine von System.Web.Page abgeleitete Klasse. Die View hat zwei Typparameter, TView und TPresenter. Als TView übergeben wir ein Interface, das die Methoden enthält, über die der Presenter Daten in der View darstellen kann. TPresenter ist der zur View passende Presenter. Die View erhält eine Referenz zu ihrem Presenter, und benachrichtigt diesen dann über verschiedene Ereignisse (Seite geladen, Button geklickt usw.).

Ich habe mit Davids Code angefangen und bin dann mehrfach an Stellen gekommen, wo ich seinen Code erweitern musste. So soll z.B. eine einzelne Seite oft nicht nur eine View, sondern gleich mehrere unterschiedliche Views in Form von Steuerelementen darstellen können. Dafür habe ich eine BaseControl-Klasse geschrieben, die von UserControl ableitet und so MVP basierte UserControls ermöglicht. Auch für MasterPages möchte ich das MVP Pattern einsetzen können, und habe dafür eine BaseMasterPage geschrieben.

An einigen Stellen musste ich auf ASP.NET-spezifische Klassen wie SessionState und Cache zugreifen. Um diese besser testen zu können und in meinen Tests unabhängig von ASP.NET zu bleiben habe ich mir für diese Fälle die Interfaces ICacheProvider bzw. IStateProvider geschrieben, die von BasePage/BaseControl/BaseMasterPage implementiert werden, und somit einen Zugriff auf SessionState und Cache ermöglichen, ohne dass ich dafür in meinen Tests ASP.NET Klassen verwenden müsste.

Als letzte Klasse gibt es dann schließlich noch die BaseApplication, die sich genau wie die HttpApplication-Klasse in Davids Beispiel um die Initialisierung des Unity-Containers kümmert.

Zusammengenommen ergibt sich damit folgendes bild:

image

Da ich diese Klassen so in mehreren Projekten verwenden kann (und auch bereits verwendet habe) habe ich das alles noch in ein eigenes Projekt ausgelagert.

Soweit die Theorie. In Teil zwei zeige ich dann an Beispielen aus meinem Quellcode, wie ich das MVP Pattern angewendet habe.

Expression Media 2

21.10.2008 17:33:00 | Lori Grosland

Auf der Photokina habe ich mit Steffen Ritter über Expression Media 2 gesprochen.  Expression Media ist der Nachfolger von dem iView MediaPro und eine professionelle Digital Asset Management Software zum Katalogisieren, Verwalten und Archivieren von Fotos und andere File-Formaten.  Die Dateien können bequem mit Schlagwörtern gefunden werden und in Kategorien zusammengefasst werden, um sie schnell wiederzufinden. Mit Expression Media gibt es auch die Möglichkeit, stilvoll zu präsentieren mit Präsentationen, Videos und Silverlight-Webgalerien und zu veröffentlichen bei Onlinefotoservices oder Bildagenturen wie Getty Images. Expression Media 2 ist sowohl für Windows als auch für Macintosh erhältlich.  Mehr Info zu Expression Media 2 findet Ihr hier...

http://www.microsoft.com/germany/expression/products/overview.aspx?key=media

Windows Live-Writer.de feiert Geburtstag

21.10.2008 11:51:02 | Lars Keller

Der Windows Live Writer Blog feiert seinen zweiten Geburtstag. Passend dazu gibt es ein kleines Gewinnspiel, wo man "4x Microsoft LifeCam NX-6000 weitere Informationen auf LifeCam NX-6000" gewinnen kann.

Das einzige was man tun muss ist Kreativ zu sein ;-)

Alles weitere zum Gewinnspiel findet man hier. Da bleibt mir nur zusagen "Herzlichen Glückwunsch" an das Team! :-)

Bei dem Post kamen spontan folgende Zeilen zustande, die euch nicht vorenthalten möchte:

Ein Blogger lacht so heiter,

wenn er benutzt den Windows Live Writer. :-)

Denn alles geht so fix und rund,

Clicky, Clicky – alles bunt.

Viele Templates sind dabei,

darum ist das Tool der letzte Schrei.

Jetzt schnell Downloaden aber fix,

denn das Beste, es kostet nix.

Die Moral von der Geschicht,

blogge ohne Live Writer nicht.

Zum Glück lässt sich über Kreativität nicht streiten... :D



This weblog is sponsored by netcreate OHG.

.NET Open Space - Klassische Konferenz war gestern

21.10.2008 11:14:47 | Lars Keller

Vom 17-19.11.08 war das .NET Open Space in Leipzig. Wie der Name schon sagt war die Konferenz nachdem Open Space Prinzip aufgebaut, welches sich durch keine feste Agenda auszeichnet. Der einzige feste Rahmen war .NET. Die Agenda wird kurz vor den Sessions aufgestellt. So kann jeder Teilnehmer ein Thema vorschlagen und wenn gleichgesinnte mitmachen wollen, war eine Session gefunden. Eine völlig neue Erfahrung war das für mich. Das System hat prima geklappt, besonders am zweiten Tag.

Ich habe viel gelernt dieses Wochenende und es hat richtig Spaß gemacht sich über Technologie zu unterhalten. Auf den klassischen Konferenzen hat man sehr viel Marketing-Bla dabei, welches hier überhaupt nicht vorhanden war. Dadurch das jeder etwas sagen konnte, konnte jeder seine Frage oder Meinung unterbringen und somit aktiv die Session beeinflussen.

Mir hat der Event sehr viel Spaß gemacht und es war eines der best organisierten Community Events, welches ich bis jetzt erlebt habe. Nochmals vielen Dank an Alexander Groß, Torsten Weber, Stefan Lieser und Marcel Hoyer für die Orga und Ausrichtung dieses Events. -> .NET Open Space 2009 ich komme!

Weitere Inspirationen von anderen Teilnehmern:

Einige Fotos vom Event:



This weblog is sponsored by netcreate OHG.

Windows Live-Writer.de feiert Geburtstag

21.10.2008 10:51:02 | Lars Keller

Der Windows Live Writer Blog feiert seinen zweiten Geburtstag. Passend dazu gibt es ein kleines Gewinnspiel, wo man "4x Microsoft LifeCam NX-6000 weitere Informationen auf LifeCam NX-6000" gewinnen kann.

Das einzige was man tun muss ist Kreativ zu sein ;-)

Alles weitere zum Gewinnspiel findet man hier. Da bleibt mir nur zusagen "Herzlichen Glückwunsch" an das Team! :-)

Bei dem Post kamen spontan folgende Zeilen zustande, die euch nicht vorenthalten möchte:

Ein Blogger lacht so heiter,

wenn er benutzt den Windows Live Writer. :-)

Denn alles geht so fix und rund,

Clicky, Clicky – alles bunt.

Viele Templates sind dabei,

darum ist das Tool der letzte Schrei.

Jetzt schnell Downloaden aber fix,

denn das Beste, es kostet nix.

Die Moral von der Geschicht,

blogge ohne Live Writer nicht.

Zum Glück lässt sich über Kreativität nicht streiten... :D

.NET Open Space - Klassische Konferenz war gestern

21.10.2008 10:14:47 | Lars Keller

Vom 17-19.11.08 war das .NET Open Space in Leipzig. Wie der Name schon sagt war die Konferenz nachdem Open Space Prinzip aufgebaut, welches sich durch keine feste Agenda auszeichnet. Der einzige feste Rahmen war .NET. Die Agenda wird kurz vor den Sessions aufgestellt. So kann jeder Teilnehmer ein Thema vorschlagen und wenn gleichgesinnte mitmachen wollen, war eine Session gefunden. Eine völlig neue Erfahrung war das für mich. Das System hat prima geklappt, besonders am zweiten Tag.

Ich habe viel gelernt dieses Wochenende und es hat richtig Spaß gemacht sich über Technologie zu unterhalten. Auf den klassischen Konferenzen hat man sehr viel Marketing-Bla dabei, welches hier überhaupt nicht vorhanden war. Dadurch das jeder etwas sagen konnte, konnte jeder seine Frage oder Meinung unterbringen und somit aktiv die Session beeinflussen.

Mir hat der Event sehr viel Spaß gemacht und es war eines der best organisierten Community Events, welches ich bis jetzt erlebt habe. Nochmals vielen Dank an Alexander Groß, Torsten Weber, Stefan Lieser und Marcel Hoyer für die Orga und Ausrichtung dieses Events. -> .NET Open Space 2009 ich komme!

Weitere Inspirationen von anderen Teilnehmern:

Einige Fotos vom Event:

Download: Internet Explorer 8 Developer-Partner Marketing Toolkit [PDF]

21.10.2008 08:18:51 | Kay Giza

Seit heute steht das englischsprachige Internet Explorer 8 Partner Marketing Toolkit-Guidebook online zur Verfügung. Microsofts Original-Beschreibung dazu lautet: The evolution of the Internet has introduced new ways to access the information people care about most—whether it is from interactive AJAX-based web pages, user-generated content, or powerful search engines. Windows® Internet Explorer® 8 seamlessly delivers all of the experiences available from the web, and helps people browse faster, safer, and easier than ever before. Microsoft listened to Internet users and developed new platform features that reduce the steps needed to connect users with the services and information they care about most. Sehr interessant ist jedoch in dem Dokument, das ursprünglich an Microsoft Partner gerichtet ist, der Inhalt... [...mehr]

This post is powered by www.Giza-Blog.de | Giza-Blog.de: RSS Feed
Visit:  MSDN Online | Kostenfreie MSDN Service-Hotline für Entwickler
Daily News on MSDN:   MSDN Aktuell
© Copyright 2006-2009 Kay Giza. All rights reserved. Legal

Windows Live-Writer.de feiert Geburtstag

21.10.2008 01:51:00 | Lars Keller

Der Windows Live Writer Blog feiert seinen zweiten Geburtstag. Passend dazu gibt es ein kleines Gewinnspiel, wo man "4x Microsoft LifeCam NX-6000 weitere Informationen auf LifeCam NX-6000" gewinnen kann.

Das einzige was man tun muss ist Kreativ zu sein ;-)

Alles weitere zum Gewinnspiel findet man hier. Da bleibt mir nur zusagen "Herzlichen Glückwunsch" an das Team! :-)

Bei dem Post kamen spontan folgende Zeilen zustande, die euch nicht vorenthalten möchte:

Ein Blogger lacht so heiter,

wenn er benutzt den Windows Live Writer. :-)

Denn alles geht so fix und rund,

Clicky, Clicky – alles bunt.

Viele Templates sind dabei,

darum ist das Tool der letzte Schrei.

Jetzt schnell Downloaden aber fix,

denn das Beste, es kostet nix.

Die Moral von der Geschicht,

blogge ohne Live Writer nicht.

Zum Glück lässt sich über Kreativität nicht streiten... :D

.NET Open Space - Klassische Konferenz war gestern

21.10.2008 01:14:04 | Lars Keller

Vom 17-19.11.08 war das .NET Open Space in Leipzig. Wie der Name schon sagt war die Konferenz nachdem Open Space Prinzip aufgebaut, welches sich durch keine feste Agenda auszeichnet. Der einzige feste Rahmen war .NET. Die Agenda wird kurz vor den Sessions aufgestellt. So kann jeder Teilnehmer ein Thema vorschlagen und wenn gleichgesinnte mitmachen wollen, war eine Session gefunden. Eine völlig neue Erfahrung war das für mich. Das System hat prima geklappt, besonders am zweiten Tag.

Ich habe viel gelernt dieses Wochenende und es hat richtig Spaß gemacht sich über Technologie zu unterhalten. Auf den klassischen Konferenzen hat man sehr viel Marketing-Bla dabei, welches hier überhaupt nicht vorhanden war. Dadurch das jeder etwas sagen konnte, konnte jeder seine Frage oder Meinung unterbringen und somit aktiv die Session beeinflussen.

Mir hat der Event sehr viel Spaß gemacht und es war eines der best organisierten Community Events, welches ich bis jetzt erlebt habe. Nochmals vielen Dank an Alexander Groß, Torsten Weber, Stefan Lieser und Marcel Hoyer für die Orga und Ausrichtung dieses Events. -> .NET Open Space 2009 ich komme!

Weitere Inspirationen von anderen Teilnehmern:

Einige Fotos vom Event:

OT: Ein Event in blau

20.10.2008 19:41:04 | Norbert Eder

Lange habe ich es mir gewünscht und gestern war es dann endlich soweit. Da konnte ich die Blue Man Group einmal live bewundern. In der Grazer Stadthalle gaben sie gestern das letzte von zwei Konzerten in Graz.

Auf super Plätzen harrte ich dann der Dinge, die da passieren würde. Eine wirklich gut durchdachte Show sorgte für das visuelle, als auch auditive Wohl. Einfach klasse. Ich möchte an dieser Stelle auch gar nicht viel von der Show verraten. Kurz: Man muss sie einfach gesehen haben.

Also wenn sie in der Nähe spielen und noch Karten zu haben sind, dann einfach los, kaufen und genießen. Wunderbar.

Photosynth auf der Photokina

20.10.2008 17:00:00 | Lori Grosland

Auf der Photokina in Köln habe ich mit Andre Mohr, UX Designer bei Microsoft Live Labs geredet.  In diesem Video erklärt und zeigt er Photosynth, die neue kostenlose 3D-Foto-Visualisierungs-Service von Microsoft Live Labs.  Photosynth nimmt eine Kollektion von digitalen Fotos von einem Objekt oder Ort und analysiert jedes Foto auf Ähnlichkeiten mit den anderen. Photosynth dann ermittelt, wo die Bilder aufgenommen wurden und stellt es die Umgebung weitgehend automatisch wieder her und nutzt diese als Basis für die Anzeige der Fotos. Innerhalb eines Synths kann man auch sich virtuell nach oben oder unten sowie nach links oder rechts bewegen, Details vergrößern oder sich übersichtlich die Gesamtansicht anzeigen lassen. Es ist ein echt cooles Erlebnis! Mehr Info zum Photosynth oder zum selbst ausprobieren findet Ihr unter: www.photosynth.com

Für ein paar Tipps und Tricks zur Photosynth-Fotografie solltet Ihr dieses Video anschauen:
http://on10.net/blogs/lorigros/Photosynth-Wie-erstellt-man-ein-Synth/

Highend-Notebook für Fotografen

20.10.2008 16:12:00 | Lori Grosland

Die Photokina fand von 23.-28. September in Köln statt.  Die Photokina ist die weltweit bedeutendste Messe für Fotografie und die Foto- und Imaging-Branche.  Ich war in Köln für die Messe und habe auf dem Microsoft-Stand gearbeitet.  Ich habe zusammen mit einem Teil von dem Photosynth-Team Photosynth für das Messepublikum vorgestellt.  Ich habe auch meine Videokamera dabei gehabt und wenn ich Zeit hatte, habe ich ein paar Videos gemacht.  Photokina ist inzwischen fast ein Monat her – danach war ich viel unterwegs und leider auch sehr erkältet - aber ich denke die Themen und Demos sind immer noch sehr spannend. 

In diesem Video spreche ich mit André Cartschau von Lenovo.  Lenovo war auf der Photokina, um der ThinkPad W700 zu präsentieren.  Der ThinkPad W700 ist ein Highend-Notebook für Fotografen oder Grafiker.  Es ist das erste Notebook mit einem eingebauten Grafiktablett und Farbkalibrator und ist besonders für intensiven Daten- und Grafikgebrauch zu empfehlen. Mehr Info zu dem Lenovo Foto Notebook findet Ihr hier:  http://www.photolaptop.com/

Channel 9 in deutscher Sprache gestartet

20.10.2008 08:28:55 | Kay Giza

Channel 9 kann nun auch Deutsch. OK - vielleicht hakt es noch an der einen oder anderen Stelle, aber all diejenigen unter uns - die lieber ein deutsches Navigationsmenü etc. pp haben möchten, dürfen sich nun freuen.
Dariusz und ich haben dazu auch einen kleinen Text geschrieben, der hoffentlich gut erklärt, was Channel9 ist, daher kopiere ich ihn hier einfach mal rein:

Channel9Channel 9 bietet einen fortlaufenden Austausch mit Entwicklern über Microsoft-Tools, -Services und Technologien. Hier finden Sie Interviews, Diskussionsforen und sogar ein Wiki mit großartigen Informationen für Entwickler und Technologieenthusiasten. Nutzen Sie die Chance, chatten Sie mit anderen Entwicklern, schauen Sie sich Videos und CodeClips an und bekommen Sie so einen Blick hinter die Kulissen bei Microsoft. Um zu erfahren, wie Channel 9 entstanden ist, sollten Sie sich das Video "The 9 Guys - Who We Are" ansehen oder lesen Sie den MSDN-Artikel über Channel 9 und on10.net.

Wer von Webportalen wie Channel 9 nicht genug bekommt, hier ist eine kleine Auswahl:



This post is powered by www.Giza-Blog.de | Giza-Blog.de: RSS Feed
Visit:  MSDN Online | Kostenfreie MSDN Service-Hotline für Entwickler
Daily News on MSDN:   MSDN Aktuell
© Copyright 2006-2009 Kay Giza. All rights reserved. Legal

Live-Writer.de feiert Geburtstag, .NET BlogBook, Quick Contest, .NET Open Space und User Group-Meetings

20.10.2008 07:05:56 | Kay Giza

Einiges los ist derzeit in der Community! Live-Writer.de startet zu seinem zweijährigen Bestehen ein Gewinnspiel. Zu gewinnen gibt es 4x Microsofts LifeCam NX-6000 weitere Informationen auf LifeCam NX-6000. Glückwunsch zum 2jährigen!

Die mittlerweile siebte Ausgabe ihres Nachschlagewerks „.NET BlogBook“ haben die Autoren Norbert Eder (Graz) und Kai Gloth (Katlenburg-Lindau) fertiggestellt. Die kostenlose .NET-Entwicklungshilfe zum herunterladen soll künftig nicht mehr als ein Sammelfile angeboten werden, sondern aufgeteilt in unterschiedliche Themenbereiche. Abrufbar ist bereits ein Kapitel zur „Windows Presentation Foundation“; die Kapitel „.NET Core“ und ASP.NET“ sind geplant.

Zu Ende ist der Programmierwettbewerb „Quick Contest“ von „dotnet-snippets.de“. Wer gewonnen hat, erfahren Sie im Blog von Jan Welker.

An diesem Wochenende hat dar .NET Open Space stattgefunden, wie man Twitter & Co. entnehmen konnte, sehr erfolgreich. Ich bin auf die Nachlese gespannt!

Alleine in den nächsten drei Tagen finden mehr als 10 User Group-Treffen und Community-Veranstaltungen statt:
PASS Deutschland: Treffen der Regionalgruppe Berlin am 21.10.2008 in Berlin, dFPUG-Regionaltreffen Wien am 21.10.2008 in Wien, .NET Developers Group München: 'Multi-User-Betrieb mit dem SQL Server 2000/2005/2008' am 21.10.2008 in München,  .NET User Group Bonn: 'Model - View - ViewModel' am 21.10.2008 in Bonn-Pützchen, .NET Developer Group Braunschweig: 'Mobile Computing mit dem .NET Compact Framework 3.5' am 21.10.2008 in Braunschweig, .NET User Group Österreich Süd: 'Best Practices C# 3.0, Tipps & Tricks zu Visual Studio 2008 und dem Visual C# Compiler' am 22.10.2008 in Graz, Access-Stammtisch Offenburg der Community "Office-loesung.de" am 22.10.2008 in Offenburg, 114. Treffen der DevGroup Göttingen/Kassel: 'LINQ Part II' am 23.10.2008 in Lutterberg, PASS Deutschland: Treffen der Regionalgruppe Köln/Bonn/Düsseldorf am 23.10.2008 in Köln, .NET Developer Group Koblenz: 'Mobile Computing' am 23.10.2008 in Koblenz sowie Club DigitalHome Österreich: 'Hausautomatisierung mit ELV FS20' am 23.10.2008 in Wien.

Und vieles mehr! Da ich sicherlich nicht alles aufschreiben kann und dies nur eine kleine Auswahl war:
Mehr Informationen bietet der Microsoft Community Guide!



This post is powered by www.Giza-Blog.de | Giza-Blog.de: RSS Feed
Visit:  MSDN Online | Kostenfreie MSDN Service-Hotline für Entwickler
Daily News on MSDN:   MSDN Aktuell
© Copyright 2006-2009 Kay Giza. All rights reserved. Legal

.NET Open Space 2008

19.10.2008 23:15:53 | Jan Welker

Vom 17. Bis 19. Oktober war ich in Leipzig beim .NET Open Space, welches von Torsten Weber, Alexander Groß und Stefan Lieser organisiert wurde.
Das besondere an dieser  Community Veranstaltung war, dass es keine Aufteilung in Speaker und Zuhörer gab. Jeder war einfach nur Teilnehmer. Auf dem Treffen gab es lediglich Moderatoren, die die Teilnehmer angeleitet haben, sich selbst zu organisieren. Nach dem wir uns am Freitagabend bei einer Party näher kennenlernen konnten, begann der Samstag mit dem Sammeln von Themen. Jeder konnte ein oder mehrere Themen auf einen Notizzettel schreiben und an eine Pinnwand heften. Ähnliche Themen wurden zusammengefasst und Tracks gebildet. Diese Tracks hatten aber wenig mit herkömmlichen Tracks gemeinsam, weil es nur selten einen festen Speaker gab. Mal hat sich eine lockere Diskussionsrunde gebildet, mal wurde das Fish Bowl Prinzip angewendet. In einem  anderen Track wurde ganz spontan ein Demo Projekt mit Hilfe von Pair Programming entwickelt.
Die Art und Weise der Themenbildung wurde am zweiten Tag refaktorisiert, da es am Samstag etwas zu demokratisch abgelaufen ist.
Ich habe an Tracks mit folgenden Schwerpunkten teilgenommen:

  • Domain Driven Design
  • Behaviour Driven Design
  • Test Driven Development
  • Webservice Factories
  • Presentation Zen
  • Soft Skills
  • ORM
Die Pausen zwischen den Tracks waren länger, als ich es bei anderen Konferenzen kennen gelernt hatte. So konnte ich neue nette Leute kennen lernen. Auch bei den Partys am Freitag und Samstag gab es genug Gelegenheit dazu (bei nicht ganz so leckerem Leipziger Sauerbier).

Mein Fazit: Da das System des Open Space für die meisten komplett neu war, hat es am ersten Tag kleine Unstimmigkeiten in der Organisation gegeben. Aus diesen kleinen Fehlern wurde am zweiten Tag gelernt und die Aufteilung der Themen lief wesentlich besser. Der Termin für das nächste .Net Open Space steht schon fest. Ich werde mir vornehmen, wieder nach Leipzig zu fahren.

Einige Bilder von diesem Event gibt es in meinem Live Space: http://dotnet-snippets.spaces.live.com/photos/cns!7E1203B1F022BE53!176/

SharePoint Products and Technologies White Paper: Implementing Microsoft Office SharePoint Server 2007 and Windows SharePoint Services 3.0 Solutions

19.10.2008 13:21:00 | Ozgur Aytekin

This document outlines a methodology for team SharePoint development combining custom code and content, with the aim of accelerating implementation and mitigating production risks. To form the methodology, the document describes implementation scenarios, tools, and development environments. The document does not detail specific implementations (such as "how to write a Web Part" or "how to manage work items"), but describes the overall needs and techniques for the stated goal, and provides several references to topics for more information.

Note This white paper represents only a single methodology, and should not be considered the only Microsoft-prescribed solution methodology.

http://www.microsoft.com/downloads/details.aspx?FamilyID=65F21935-CBC0-4178-8C08-4C56F721C87D&displaylang=en

FIX: When you update rows by using a cursor in SQL Server 2005, the update may take a long time to finish

18.10.2008 20:36:00 | Ozgur Aytekin

In Microsoft SQL Server 2005, you create a cursor. You try to update the cursor by using a statement. The statement includes an ORDER BY clause. When you update rows by using the cursor, the update may take a long time to finish.

This problem also occurs in Microsoft SQL Server 2008. For more information, click the following article number to view the article in the Microsoft Knowledge Base:
957872 (http://support.microsoft.com/kb/957872/) FIX: When you update rows by using a cursor in SQL Server 2008, the update may take a long time to finish

- Microsoft SQL Server 2005 Enterprise Edition
- Microsoft SQL Server 2005 Developer Edition
- Microsoft SQL Server 2005 Enterprise Edition for Itanium-based Systems
- Microsoft SQL Server 2005 Enterprise X64 Edition

http://support.microsoft.com/kb/955694

Code-Inside Casts: Jetzt auch noch Videos…

18.10.2008 00:38:14 | Robert Mühsig

Code-Inside wird noch (Bloggen, Twittern, in Social Bookmarking…) webzwonulliger - neustes Experiment: Screencasts.
Videos können sehr eindrucksvoll zeigen, wie einfach und schnell etwas zu bewerkstelligen ist - wesentlich besser als Seitenweise Text. Daher habe ich jetzt mal ein Screencast zum Thema “3 Schichten Architektur” erstellt.

Ich habe mich dabei (trotz der bescheidenen Qualität und der (scheinbar nur für neue Mitglieder?) 10 Minuten Videolängenbegrenzung) bewusst für YouTube entschieden:

  • Gigantische Nutzerzahlen
  • Keine Hostingkosten
  • Einfache Verlinkung
  • Es kennt einfach jeder und die Usability ist im Vergleich zur Konkurrenz einfach unschlagbar

So ganz 100% bin ich auch nicht mit dem Ergebnis zufrieden, allerdings ist so ein Screencast doch etwas ganz anderes als ein Blogpost. Dazu kommt dass der Mensch im Normalfall seine Stimme eigentlich nicht wirklich selber hören mag… aber beurteilt selbst und ich würde mich über Feedback freuen:

ShareThis

Awards, Awards, Awards

17.10.2008 17:51:33 | Oliver Scheer

clip_image001
Silverlight Gadget Award

Microsoft prämiert auf der diesjährigen Microsoft-Webkonferenz Xtopia in Berlin (www.xtopia.de) die kreativsten und originellsten Vista Sidebar Gadgets mit den „Silverlight Gadget Awards“. Gewinnen Sie attraktive Preise, wie ein Wochenende in Hamburg, ein Notebook, eine Xbox 360° plus
3 Spiele uvm.

Kategorie „Wow“:

In dieser Kategorie werden die kreativsten Gadgets mit besonderer „User Experience“ ausgezeichnet.

Kategorie „Business“:

In dieser Kategorie werden die innovativsten Business Gadgets ausgezeichnet.

Bei Einreichung bis zum 31. Oktober 2008 wird Ihr Projekt in der Pressemappe der XTOPIA erscheinen – Ihre einmalige PR-Möglichkeit!

Teilnahmeschluss: 31. Oktober 2008.

clip_image002 Client Innovation Award

Microsoft Deutschland GmbH und Experton AG prämieren Anwendungen, die die Fähigkeiten der Windows Presentation Foundation (WPF) ausschöpfen. Gewinnen Sie eine Teilnahme an der Experton Summer University, eine Xbox 360° plus 3 Spiele uvm.

Schreiben Sie Microsoft Client Anwendungen mit:

· hoher Geschäftsrelevanz?

· einem hohen Innovationsgrad?

· und einer überzeugenden User Experience?

Dann haben Sie die Chance, mit Ihrer Applikation zu den drei Siegern zu gehören. Auf die Gewinner und ihre Projektteams  warten interessante Preise und eine Auszeichnung mit dem „Client Innovation Award“-Siegel. Die Preisverleihung findet unter reger Medienteilnahme auf der CeBIT 2009 statt.

Nutzen Sie jetzt die Chance und nehmen Sie am „Client Innovation Award“ unter www.innovation-awards.de teil. Bei Einreichung bis zum 31. Oktober 2008 wird Ihr Projekt in der Pressemappe der XTOPIA erscheinen – Ihre einmalige PR-Möglichkeit!

Teilnahmeschluss: 15. Januar 2009.

clip_image003 Client Solution Catalog

Der Client Solution Catalog bietet Ihnen die Möglichkeit, mit Ihren innovativen Client-Lösungen auf Basis der Technologien WPF, Silverlight, Windows VISTA und Internet Explorer 8 Ihre Kompetenz zu demonstrieren. Diese deutschlandweit beworbene Online-Lösungsplattform wird bei zahlreichen Microsoft-Veranstaltungen vorgestellt, u.a. auf der Xtopia (www.xtopia.de), dem Technical Summit (www.technical-summit.de) und der CeBIT. Unter allen Einträgen werden erfolgsversprechende Preise wie die Nutzung des Microsoft Technology Centers oder eine Xbox 360° plus 3 Spiele verlost.

Sie können:

· sich für einen der beiden Awards qualifizieren und tolle Preise gewinnen

· Ihre innovativen Client-Lösungen neuen Kunden demonstrieren

· die umfangreiche Vermarktung Ihrer Client-Lösungen durch Microsoft nutzen

Bei Einreichung bis zum 31. Oktober 2008 wird Ihr Projekt in der Pressemappe der XTOPIA erscheinen – Ihre einmalige PR-Möglichkeit!

Teilnahmeschluss: 15. Januar 2009.

Let’s GO!

ContosoCars

17.10.2008 17:45:41 | Oliver Scheer

Wer gerade vor dem Kauf eines neuen Autos steht, der MUSS einfach auf unseren neuen Car-Shop vorbei schauen: http://cs.w3a.de

Die gesamte Anwendung basiert auf Silverlight 2 und wird von uns zu Trainingszwecken eingesetzt.

Wichtig :-) Auf jeden Fall die Videos ansehen. Habe selten solche genialen Actionsequenzen gesehen.

image

Live Services Jumpstart 2009

17.10.2008 17:27:24 | Oliver Scheer

Am 27. und 28. November haben Entwickler in Berlin Gelegenheit, im Rahmen der kostenlosen Konferenz „Live Services Jumpstart 2009“ die Microsoft Live Services in allen Facetten kennenzulernen. Auf der Veranstaltungs-Agenda stehen mehr als 20 technische Session; über die genauen Themen informiert die Website www.lsjumpstart.com. Bei der Anmeldung ist etwas Eile geboten, denn wie so häufig gilt auch hier: Wer zuerst kommt, mahlt zuerst.

Ich werde dort auch selber vor Ort sein.

Mehr Informationen unter:
 http://www.lsjumpstart.com/content/info.asp?Ccpsubsiteid=91&infoid=12

Basic Authentication mit ASP.NET

17.10.2008 14:55:00 | Peter Bucher

Möglichkeiten der Authentifizierung mit ASP.NET

Mit ASP.NET gibt es verschiedene Möglichkeiten, sich am Server anzumelden, die bekannteste davon ist die Möglichkeit über Membership-API von ASP.NET.

Zudem gibt es noch die Möglichkeiten, sich direkt am IIS zu authentifizieren, sei dies über "Integrated", "Digest" oder "Basic".

Bei einer Autentifizierung über die Membership-API braucht es ein grosses Gerüst, eine Datenquelle sowie mindestens einen Membership-Provider, optional noch einen Role-Provider.
Wenn keine Datenbank verfügbar ist, bzw. keine die direkt von der Membership-API unterstützt wird, muss ein eigener Provider geschrieben werden, dies gibt einen Mehraufwand und ist nicht in allen Fällen die richtige Lösung.

Die Membership-API bietet standardmässig nur die Autentifizierungsoptionen "None, Forms, Windows oder Passport.
All diese Möglichkeiten benötigen in der Standardkonfiguration eine GUI für die Anmeldung und Verwaltung.

An dieser Stelle sollte noch die Möglichkeit erwähnt werden, eine eigene API für die Benutzerverwaltung zu schreiben, falls sich die Membership-API nicht lohnt / zu gross ist.

Ein Beispiel finden sie auf dem Blog von Jürgen Gutsch: Einfache Authentifizierung mit ASP.NET.

 

Authentifizierung ohne eigene GUI

Mit eigenen HttpHandlers lassen sich nicht nur Ressourcen-Downloads abbilden (Dateien, CSS, Javascript, ..), sondern auch komplette Webseiten.
(Merke: Die Basisklasse für eine ASP.NET Seite _Page_ ist auch ein HttpHandler, sprich: implementiert auch das Interface IHttpHandler)

Eine Möglichkeit wie sowas umgesetzt werden könnte, wurde in diesem Blog schon mal erwähnt, daneben könnte eine komplette Webapplikation mithilfe einer HttpHandlerFactory (IHttpHandlerFactory) aufgebaut werden, dazu aber in einem anderem Beitrag mehr.

Wenn jetzt ein fertiger HttpHandler besteht, der von der eigentlichen Seiteninfrastruktur losgelöst ist und dessen Aufrufe Passwort geschützt werden müssen, was dann?
Bei keiner Loslösung zur eigentlichen Applikation kann dessen Autentifizierung genutzt werden - also eine Anmeldung am System und dann Zugriff mittels Session oder Cookie.

Ist dies aber nicht der Fall, kann diese Lücke mit der HTTP Basic Autentification gefüllt werden.

 

Basic Authentification?

Das HTTP-Protokoll selber sieht eine einfache Möglichkeit zur Authentifizierung vor, die Basic Authentifizierung.
Wenn auf eine Ressource zugegriffen wird, die geschützt ist, wird beispielsweise folgender Header zum Browser geschickt:

HTTP/1.1 401 Unauthorized
Server: Microsoft-IIS/6.0
Date: Fr, 17 Oct 2008 10:22:44 GMT
WWW-Authenticate: BASIC Realm=Download Area
Connection: Keep-Alive
Content-Length: 443
Content-Type: application/pdf
Cache-control: private

Der Statuscode "401 Unauthorized" + der Header "WWW-Authenticate" + "Basic " sagt dem Browser, dass er ein Loginfenster, wie vom guten alten Verzeichnisschutz mit dem IIS bekannt ist, darstellen soll.
Dort wird ein Benutzername + Passwort eingegeben und bei Bestätigung durch [OK] zum Server gesendet.
Das Versenden geschieht im Klartext, die Benutzernamen- Passwortkombination ist lediglich Base64 codiert.

Auf dem Server wird die Kombination wiederum encodiert und geprüft.
Falls die Prüfung erfolgreich ist, wird anstelle des beschrieben Statuscodes sowie dem WWWAuthenticate-Header der eigentliche Inhalt zum Client geschickt.

Soweit die einfache Ausführung. Wie bei einer einfachen Authentifizierung mit ASP.NET kann auch hier Gebrauch vom Cookies gemacht werden, um so eine Anmeldung für einen weiteren Besuch aufrecht zu erhalten.

Eine Aufrechterhaltung mithilfe des SessionStates ist nicht nötig, da sich die Browser das letze Login merken und daher für die Dauer einer Sitzung keine weitere Eingabe mehr nötig ist, wenn nicht eine andere Kennung erforderlich ist.

Hinweis:
Beim IIS7 funktioniert das beschriebene Vorgehen in der Standardeinstellung, beim IIS6 hingegen ist in der Standardeinstellung "Integrated Windows Authentication" an, dann versucht der IIS die Anfrage selbst zu bearbeiten.
Bei den meisten Web-Providern sollte diese Einstellung standardmässig aus sein - einfach mal probieren.

iis6_setting

Beispiel?

Folgend werden sie in ein Beispiel eingeführt das die Downloads im App_Code-Ordner hält (Dadurch vom Client nicht direkt abrufbar, also geschützt) und Zugriff auf die Downloads durch einen Handler gegen Eingabe der richtigen Benutzernamen- / Passwortkombination gewährt.

Der HttpHandler im Beispiel hat zwei Methoden, neben der Implementierung vom IHttpHandler-Interface.
Wenn ein Request eintrifft, werden in der Methode "CheckLogin" jeweils die Daten in der Servervariable "HTTP_AUTHORIZATION" abgefragt.
Diese Daten enthalten im Falle einer Übergabe von Logindaten (Also wenn der Benutzer Benutzername und Passwort eingegeben hat) beispielsweise folgende Zeichenfolge:

Basic YWRtaW46cHdk

"Basic " ist die Kennung, dass es sich um die Basic Authentication handelt und die Zeichenfolge dahinter ist der Benutzername und das Password mit Base64 codiert.
Wenn diese Zeichenfolge decodiert wird, könnte sie beispielsweise so aussehen:

admin:pass

Aufgrund dieser Daten wird das Login überprüft, bei Erfolg die Datei zum Client geschickt und bei Misserfolg wiederum im Header die Daten geschickt, dass der Client sich identifizieren muss.

Dabei ist nur der Statuscode 401 + der Header nötig, die Ausgabe per Response.Write() ist optional.
"Realm" steht für den Bereich der gesichert wird, im Beispiel einfach "Download Area".



namespace BasicAuthExample.Classes
{
    public class SecureHandler : IHttpHandler
    {
        #region IHttpHandler Members

        public void ProcessRequest(HttpContext context) {
            // Login Checken
            if(CheckLogin(context)) {
                // Datei zum Client schicken
                context.Response.ContentType = "application/octet-stream";
                context.Response.AddHeader("content-disposition", "attachment; filename=test.txt");
                context.Response.WriteFile(context.Server.MapPath("~/App_Data/secure.txt"));
            } else {
                // Authentifizierung anfordern
                RequestAuth(context);
            }
        }

        public bool IsReusable {
            get {
                return false;
            }
        }

        #endregion

        private bool CheckLogin(HttpContext context) {
            // Infos vom Client (Name / Passwort)
            string data = context.Request.ServerVariables["HTTP_AUTHORIZATION"] ?? String.Empty;

            // Sind Daten einer Basic Authentifizierung vorhanden?
            bool isAuthenticationDataAvailable =
                data != String.Empty && data.IndexOf("Basic") > -1;

            // Wenn keine Daten vorhanden sind, ist das Login fehlgeschlagen
            if (!isAuthenticationDataAvailable) {
                return false;
            }

            // Ansonsten Passwort und Namen decodieren und extrahieren
            string encodedAsBase64 = data.Replace("Basic ", String.Empty);
            byte[] plainText = Convert.FromBase64String(encodedAsBase64);
            UTF8Encoding encoding = new UTF8Encoding();
            string encodedAsUtf8 = encoding.GetString(plainText);

            // Checken ob ein Doppelpunkt vorhanden ist
            int indexOfColon = encodedAsUtf8.IndexOf(':');
            if (indexOfColon == -1) {
                return false;
            }

            // Ansonsten Passwort und Namen decodieren und extrahieren
            string username = encodedAsUtf8.Substring(0, indexOfColon);
            string password = encodedAsUtf8.Substring(indexOfColon + 1);

            // Checken ob das Login korrekt ist
            if (username.Equals("admin") && password.Equals("pass")) {
                return true;
            }

            // Login fehlgeschlagen
            return false;
        }


        private void RequestAuth(HttpContext context) {
            context.Response.Write("401 Unauthorized");
            context.Response.Status = "401 Unauthorized";
            context.Response.AddHeader("WWW-Authenticate", "BASIC Realm=Download Service");
            context.Response.End();
        } 
    }
}

Wann ist diese Art der Authentifizierung jetzt überhaupt sinnvoll?

Diese Frage ist durch den ersten Teil des Artikels schon fast beantwortet.
Bei einem HttpHandler - vorallem wenn er selber von der Hauptapplikation isoliert ist (Externe Library beispielsweise) - ist es nicht einfach möglich oder sinnvoll für die Anmeldung eine riesen Infrastruktur inklusive GUI hochzufahren.

Genau bei einem solchen Fall, ist die Basic Authentifizierung ein guter Kandidat.
Wenn es um wirklich sichere Daten geht, sieht diese Art der Authentifizierung jedoch alt aus, sofern keine SSL-Verschlüsselung im Spiel ist, da alles im Klartext übermittelt wird.

Abschliessende Worte

Ich hoffe dieser Ausflug in die Authentifizierung mit ASP.NET bringt auch bei diesem Thema ein bisschen Licht ins Dunkle
und wirft hoffentlich auch neue Fragen, Ideen und Diskussionen auf.

Wie immer bin ich für alle Ideen, Vorschläge und jegliche konstruktive Kritik gerne zu haben, benutzt dazu einfach die Kommentarmöglichkeit dieses Blogs.

 

Download des Beispiels:

Quellen:

Bearbeitung / Korrekturen:

08.01.09 - CheckLogin-Methode verbessert und Download upgedated

Windows 6.1 heißt: Windows 7

17.10.2008 10:28:00 | Jens Peter Kleinau

Das Windows Betriebssystem mit der technischen Version 7 (auch bekannt als Fiji oder Vienna) wird nun auch offiziell "Windows 7" getauft. Microsoft geht damit zurück auf die Wurzeln zu den ersten Windows Versionen, die von der 1.0 bis zur 3.1 ordentlich durchnummeriert waren. Erst mit der Codebasis für die Versionen beginnend mit der Ziffer 4 begann das Namenswunder bei Microsoft und...

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

.NET Open Space 2008

16.10.2008 23:31:30 | Alexander Groß

Tomorrow around 3 P.M. I will be heading to Leipzig's Mediencampus Villa Ida to finish the last preparations of the first .NET Open Space 2008 in Leipzig, Germany.

The .NET Open Space 2008 is an "unconference" in the style of Open Spaces and was inspired by the recent ALT.NET conferences in London and Seattle. That is, we as attendees decide on the actual topics of the sessions: There's no separation in speakers, attendees and the organizing team. Thus, every participant is responsible to make the best of the coming weekend; discuss, inspire, chat, meet people, party and travel home with lots of new ideas. We hope that a lively conversation will take place.

The open format allows us to skip the sometimes lengthy negotiation with speakers that Torsten and I went through for the last .NET Summercamp in 2007. Instead Stefan, Torsten and I harnessed our otherwise wasted spare time to build an extensive list of sponsors that allow for a pretty decent list of supplies and a couple of free products and books that we don't raffle but rather lay out all day long to let each attendee actually have a look at what's in for him and vote who should get the product.

I wish us 85 a great weekend!

.NET Open Space 2008

16.10.2008 23:31:30 | Alexander Groß

Tomorrow around 3 P.M. I will be heading to Leipzig's Mediencampus Villa Ida to finish the last preparations of the first .NET Open Space 2008 in Leipzig, Germany.

The .NET Open Space 2008 is an "unconference" in the style of Open Spaces and was inspired by the recent ALT.NET conferences in London and Seattle. That is, we as attendees decide on the actual topics of the sessions: There's no separation in speakers, attendees and the organizing team. Thus, every participant is responsible to make the best of the coming weekend; discuss, inspire, chat, meet people, party and travel home with lots of new ideas. We hope that a lively conversation will take place.

The open format allows us to skip the sometimes lengthy negotiation with speakers that Torsten and I went through for the last .NET Summercamp in 2007. Instead Stefan, Torsten and I harnessed our otherwise wasted spare time to build an extensive list of sponsors that allow for a pretty decent list of supplies and a couple of free products and books that we don't raffle but rather lay out all day long to let each attendee actually have a look at what's in for him and vote who should get the product.

I wish us 85 a great weekend!

Blogumstellung, oder doch nicht?

16.10.2008 20:47:22 | Norbert Eder

Seit längerer Zeit spiele ich mit dem Gedanken, dieses Blog auf ein anderes - zeitgemäßeres - System umzustellen. Die Arbeiten dafür wären recht aufwändig, was aber grundsätzlich nicht das Problem darstellt, da doch schon einiges in diese Richtung geschehen ist.

Mich würde von meinen Lesern nun interessieren, wie ihr die Kriterien:

- Design
- Performance

empfindet. Müsste es hier eine Verbesserung geben, oder empfindet ihr das aktuelle System als durchaus ausreichend?

ASP.NET MVC Beta Release

16.10.2008 15:13:00 | Peter Bucher

Robert hat es schon verkündet, nun muss ich das auch festhalten :)

ASP.NET MVC ist als Beta verfügbar - es gibt bisher noch keinen Beitrag von Microsoft dazu, aber der Downloadlink wurde schon entdeckt.
Im Verlauf des heutigen Tages wird sich Microsoft sicherlich noch öffentlich dazu äussern, sehr wahrscheinlich mit einem Blogpost von ScottGu.

Update:

IE8 Beta 2: Technology Overview fuer Developers

16.10.2008 10:56:52 | Kay Giza

Hier ist ein sehr interessantes (englischsprachiges) Dokument für Entwickler und Interessierte. Dieses Dokument wird Ihnen als Web-Entwickler oder Designer einen Überblick über die neuen Funktionen geben bzw. technischen Neuerungen zwischen der Beta 1 und der Beta 2 des Windows Internet Explorers aufzeigen. Kompakt ;-) zusammengefasst auf 21 Seiten... (...mehr)

This post is powered by www.Giza-Blog.de | Giza-Blog.de: RSS Feed
Visit:  MSDN Online | Kostenfreie MSDN Service-Hotline für Entwickler
Daily News on MSDN:   MSDN Aktuell
© Copyright 2006-2009 Kay Giza. All rights reserved. Legal

var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); try { var pageTracker = _gat._getTracker("UA-6946044-1"); pageTracker._trackPageview(); } catch(err) {}

ASP.NET MVC ist nun im Beta-Status + Blogposts von ScottGu und co.

16.10.2008 08:49:45 | Robert Mühsig

Scott Guthrie hat es zwar noch nicht geschrieben, jedoch wurde bereits der Downloadlink für die Beta entdeckt:

Microsoft ASP.NET MVC Beta

Da Scott sicherlich im laufe des Tages (oder ein anderer Microsoftie) einen seiner Monsterblogposts schreibt, werde ich ihn dann hier verlinken.

Update: Nun ist es soweit… Scott & Scott & Phil haben gebloggt:

ShareThis

Guter Überblick über VSTS Content auf dem Technical Summit und offline

16.10.2008 08:41:18 | Thomas Schissler

Christian Binder hat eine sehr Übersichtliche Darstellung über die verschiedenen VSTS-Sessions auf dem Technical Summit in Berlin zusammengestellt. Die Map stellt nicht nur die dort live vorgestellten Sessions zusammen, soondern auch bereits bestehende und in Kürze erscheinende Webcasts zu dem Thema. Die Map zeigt auch, dass wir versucht haben unsere Inhalte auf dem Technical Summit so aufeinander abzustimmen, dass sowohl EInsteiger als auch fortgeschrittene Anwender sich ein möglichst komplettes Bild von VSTS machen kann. Die WebCast sind thematisch entsprechend eingeordnet und können als Vorbereitung bzw. zur Vertiefung zu den Live-Sessions genutzt werden.

Danke Christian, endlich mal eine übersichtliche Darstellung der verschiendenen Inhalte! 

Tech Summit TFS Track

Was bedeutet was?

image

Christian Binder's Weblog : Alle Visual Studio Teamsystem Session auf dem Technical Summit 2008 im Überblick

.NET BlogBook geht in die 7. Runde

15.10.2008 20:54:04 | Norbert Eder

Heute ist der Tag der Wahrheit. Es steht mittlerweile die siebte Ausgabe des .NET BlogBooks zur Verfügung.

Diese Ausgabe bringt eine Reihe an Neuerungen mit sich:
  • Es gibt aktuell kein gesamtes PDF mehr. Die einzelnen Teilbereiche wurden in einzelne Dateien verpackt. Damit bekommt jeder den Bereich, der in interessiert, Downloadgrößen und -zeiten werden dadurch minimiert.
  • Alles wurde in ein neues Layout verpackt. Damit wird sichergestellt, dass die Lesbarkeit nun besser gegeben ist und auch die Ergebnisse beim Druck positiver ausfallen.
  • Natürlich wurden auch neue Beiträge eingearbeitet.

Da dies einen relativ hohen Aufwand darstellt, steht zur aktuellen Zeit nur der Bereich Windows Presentation Foundation zur Verfügung. Die weiteren Teile werden im Laufe der kommenden Tage und der nächsten Woche nachgeliefert.

Auf jeden Fall würden wir uns über Rückmeldungen sehr freuen und hoffen, dass wir das erhaltene Feedback gut umsetzen konnten.

Weitere Informationen und Download-Möglichkeiten finden sich auf der Projekt-Homepage unter http://www.dotnet-blogbook.com

21.10.08 Treffen der .NET Developer Group Braunschweig - Wir haben zweijähriges Jubiläum! :-)

15.10.2008 10:54:34 | Lars Keller

dotnet-bs

Die .NET Developer Group Braunschweig trifft sich zu ihrem 25 User Group Treffen am 21.10.08 um 19:30 im Restaurant Kilian's Raffinerie. (Achtung das Treffen fängt diesmal eine halbe Stunde später an).

Zu unserem zweijährigen Jubiläum kommt uns Torsten Weber mit zwei Vorträgen besuchen:

Mobile Computing mit dem .NET Compact Framework 3.5
Dieser Vortrag zeigt die neuen Leistungsmerkmale vom .NET Compact Framework 3.5 und der Windows Mobile 6.1 API und betrachtet kritisch, in welchen Szenarien sie zum Einsatz kommen könnten. Dazu gehören z. B. die Windows Communication Foundation, das Gerätecenter unter Windows Vista, LINQ oder das Microsoft Sync Framework.

(Keine) Zeit für Herzrasen!
Es geht um perfekte Momente wie den ersten Kuss, um E-Mail-Berge & große Aufgabenlisten, Untersuchungen, Freizeit zu opfern, Klagen über Zeitmangel, um "das ist erst einmal gut so" und um Microsoft und Google. Es geht um eine Handlungsmaxime für eine ausgeglichene Work-Life-Balance. Es geht um Entschleunigung für Fortbildung, Freiräume & Erfolg mit Werkzeugen wie Getting Things Done & MindManager.

 

Ich sage nur Kinder wie die Zeit vergeht! Zwei Jahre gibt es uns nun schon und ich kann mit stolz berichten, dass wir bis jetzt kein einziges Treffen ausfallen lassen haben! Außerdem wächst unsere Gruppe immer weiter. Schön ist auch, dass es viele Mitglieder kontinuierlich zu unseren Treffen kommen und sich dadurch eine feste Gemeinschaft gebildet hat. Wir freuen uns auch immer über neue Gesichter die uns besuchen kommen und viele von denen kommen auch wieder. :-) Das was mich am meisten freut ist, dass wir viele unterschiedliche Themen in den zwei Jahren behandelt haben. Gerade die Ansichten und Erfahrungen von anderen Entwicklern macht die Gruppe so wertvoll für mich persönlich.

Ich freue mich auf weitere Treffen!

Weitere Informationen unter www.dotnet-braunschweig.de.

Wie immer ist jeder herzlich willkommen!



This weblog is sponsored by netcreate OHG.

21.10.08 Treffen der .NET Developer Group Braunschweig - Wir haben zweijähriges Jubiläum! :-)

15.10.2008 09:54:34 | Lars Keller

dotnet-bs

Die .NET Developer Group Braunschweig trifft sich zu ihrem 25 User Group Treffen am 21.10.08 um 19:30 im Restaurant Kilian's Raffinerie. (Achtung das Treffen fängt diesmal eine halbe Stunde später an).

Zu unserem zweijährigen Jubiläum kommt uns Torsten Weber mit zwei Vorträgen besuchen:

Mobile Computing mit dem .NET Compact Framework 3.5
Dieser Vortrag zeigt die neuen Leistungsmerkmale vom .NET Compact Framework 3.5 und der Windows Mobile 6.1 API und betrachtet kritisch, in welchen Szenarien sie zum Einsatz kommen könnten. Dazu gehören z. B. die Windows Communication Foundation, das Gerätecenter unter Windows Vista, LINQ oder das Microsoft Sync Framework.

(Keine) Zeit für Herzrasen!
Es geht um perfekte Momente wie den ersten Kuss, um E-Mail-Berge & große Aufgabenlisten, Untersuchungen, Freizeit zu opfern, Klagen über Zeitmangel, um "das ist erst einmal gut so" und um Microsoft und Google. Es geht um eine Handlungsmaxime für eine ausgeglichene Work-Life-Balance. Es geht um Entschleunigung für Fortbildung, Freiräume & Erfolg mit Werkzeugen wie Getting Things Done & MindManager.

 

Ich sage nur Kinder wie die Zeit vergeht! Zwei Jahre gibt es uns nun schon und ich kann mit stolz berichten, dass wir bis jetzt kein einziges Treffen ausfallen lassen haben! Außerdem wächst unsere Gruppe immer weiter. Schön ist auch, dass es viele Mitglieder kontinuierlich zu unseren Treffen kommen und sich dadurch eine feste Gemeinschaft gebildet hat. Wir freuen uns auch immer über neue Gesichter die uns besuchen kommen und viele von denen kommen auch wieder. :-) Das was mich am meisten freut ist, dass wir viele unterschiedliche Themen in den zwei Jahren behandelt haben. Gerade die Ansichten und Erfahrungen von anderen Entwicklern macht die Gruppe so wertvoll für mich persönlich.

Ich freue mich auf weitere Treffen!

Weitere Informationen unter www.dotnet-braunschweig.de.

Wie immer ist jeder herzlich willkommen!

21.10.08 Treffen der .NET Developer Group Braunschweig - Wir haben zweijähriges Jubiläum! :-)

15.10.2008 00:54:03 | Lars Keller

dotnet-bs

Die .NET Developer Group Braunschweig trifft sich zu ihrem 25 User Group Treffen am 21.10.08 um 19:30 im Restaurant Kilian's Raffinerie. (Achtung das Treffen fängt diesmal eine halbe Stunde später an).

Zu unserem zweijährigen Jubiläum kommt uns Torsten Weber mit zwei Vorträgen besuchen:

Mobile Computing mit dem .NET Compact Framework 3.5
Dieser Vortrag zeigt die neuen Leistungsmerkmale vom .NET Compact Framework 3.5 und der Windows Mobile 6.1 API und betrachtet kritisch, in welchen Szenarien sie zum Einsatz kommen könnten. Dazu gehören z. B. die Windows Communication Foundation, das Gerätecenter unter Windows Vista, LINQ oder das Microsoft Sync Framework.

(Keine) Zeit für Herzrasen!
Es geht um perfekte Momente wie den ersten Kuss, um E-Mail-Berge & große Aufgabenlisten, Untersuchungen, Freizeit zu opfern, Klagen über Zeitmangel, um "das ist erst einmal gut so" und um Microsoft und Google. Es geht um eine Handlungsmaxime für eine ausgeglichene Work-Life-Balance. Es geht um Entschleunigung für Fortbildung, Freiräume & Erfolg mit Werkzeugen wie Getting Things Done & MindManager.

 

Ich sage nur Kinder wie die Zeit vergeht! Zwei Jahre gibt es uns nun schon und ich kann mit stolz berichten, dass wir bis jetzt kein einziges Treffen ausfallen lassen haben! Außerdem wächst unsere Gruppe immer weiter. Schön ist auch, dass es viele Mitglieder kontinuierlich zu unseren Treffen kommen und sich dadurch eine feste Gemeinschaft gebildet hat. Wir freuen uns auch immer über neue Gesichter die uns besuchen kommen und viele von denen kommen auch wieder. :-) Das was mich am meisten freut ist, dass wir viele unterschiedliche Themen in den zwei Jahren behandelt haben. Gerade die Ansichten und Erfahrungen von anderen Entwicklern macht die Gruppe so wertvoll für mich persönlich.

Ich freue mich auf weitere Treffen!

Weitere Informationen unter www.dotnet-braunschweig.de.

Wie immer ist jeder herzlich willkommen!

Webentwicklung: Unterschiede zwischen Client- und Server-Programmierung

14.10.2008 23:55:00 | Jürgen Gutsch

Immer wieder kommt es bei ASP.NET Anfänger zu logischen Missverständnissen, wenn im laufe des Projektes der Zeitpunkt kommt, in dem Clientseitige Aktionen vorgenommen werden müssen.

Von Clientseitig sprechen wir, wenn wir Funktionen umsetzen die auf dem Client ausgeführt werden sollen. Der Client ist dabei immer der Browser und dessen Umgebung, also der Browser und das Betriebssystem. Clientseitige Funktionen sind zum Beispiel das öffnen eines neuen Fenster, die Reaktion auf eine Aktion des Benutzers (Klick auf einen Button).
Clientseitige Aktionen werden in der Regel mit JavaScript, aber auch mit JScript und VBScript und sehr begrenzt auch mit CSS (über Pseudoklassen) umgesetzt und durchgeführt.

Serverseitig dagegen sind Aktionen die auf dem Server (Webserver, IIS) ausgeführt werden sollen. Z. B: Auslesen von Daten aus einer Datenbank, Darstellung der Daten in Form von HTML, etc. Serverseitige Aktionen werden mit Sprachen umgesetzt, die über einem Webserver ausgeführt werden. Mit ASP.NET sind das üblicherweise C# und VB.NET. (Mit anderen Techniken: Perl für CGI, VBScript für classic ASP usw.)

Vielen ist am Anfang nicht bewusst was nur auf dem Client funktioniert und was nur auf dem Server umgesetzt werden kann. So ist es z. B: nicht möglich nur mit C# ein neues Browserfenster zu öffnen oder nur mit JavaScript eine Datenbankabfrage vorzunehmen.

Um die Verwirrung komplett zu machen, gibt es - der Vollständigkeit halber - natürlich auch Aktionen die sowohl serverseitig als auch clientseitig durchgeführt werden können, wie z. B: das lesen und schreiben von Cookies oder das Umleiten auf eine andere Seite.

Man kann dennoch größtenteils davon ausgehen das Funktionen die auf dem Client nur mit JavaScript (oder einer anderen Clientsprache) ausgeführt werden können. Andersherum können Funktionen auf dem Server größtenteils nur mit einer serverseitigen Sprache wie C# oder VB.NET umgesetzt werden.

Wie sollte man, bzw. kann man nun vorgehen um solche Verwechslungen zu vermeiden?

Man sollte sich bewusst machen wo die gewünschte Funktion ausgeführt werden soll. Damit ist dann schon die meiste Arbeit getan. Dann geht es nur noch darum zu recherchieren wie die Funktion umgesetzt werden kann.

Wenn es doch nur so einfach wäre, gelle? ;-)

Bestimmte Anforderungen bringen alle Anfänger durcheinander, z. B. das Anzeigen einer MessageBox aufgrund eines am Server aufgetretenen Ereignisses. Vor allem dann, wenn folgender Code tatsächlich funktioniert:

MessageBox.Show("Es ist ein Fehler aufgetreten!!!!");

Allerdings funktioniert dieser Code nur so lange, bis die fertige Anwendung auf einen entfernten Webserver geschoben wird, um sie dem Auftraggeber zu zeigen. Denn die mit C# erzeugte MessageBox wird nur auf dem Server angezeigt. Wenn der Client-Computer gleichzeitig auch der Server ist - wie es bei Entwicklungsrechnern fast immer der Fall ist - wird die Box natürlich ordnungsgemäß angezeigt. Wird die Anwendung hingegen auf einem entfernten Server ausgeführt, würden die Boxen dort aufgehen, statt auf dem Client-Computer, denn der Aufruf ist rein serverseitig passiert.

Also muss clientseitiger Code her:

alert("Es ist ein Fehler aufgetreten!!!!");

Dieser clientseitige Code muss auf dem Server erzeugt werden und anschließen auf dem Client ausgeführt werden. Da eine ASP.NET Seite immer erst auf dem Server verarbeitet wird, ist es also problemlos möglich auf dem Server Code zu erzeugen, der auf dem Client ausgeführt werden soll:

ClientScript.RegisterStartupScript(typeof(Page), "msgbox", "alert(\"Es ist ein Fehler aufgetreten!!!!\");", true);
http://msdn.microsoft.com/de-de/library/z9h4dk8y.aspx

Dieser Code erzeugt folgende Ausgabe vor dem schließenden <form>-Tag im HTML:
<script type="text/javascript">alert("Es ist ein Fehler aufgetreten!!!!");</script>

Dieser Code wird ausgeführt, sobald die Seite zum größten Teil vom Browser geladen ist. Auf diese Art ist es möglich JavaScript für den Client zu erzeugen und sofort ausführen zu lassen.

Auf eine Ganz ähnliche Weise kann per Servercode eine clientseitige Funktion bereitgestellt werden die zu einem beliebigen Zeitpunkt am Client ausgeführt werden kann:

StringBuilder script = new StringBuilder();
script.AppendLine("function showMessage(strMsg) {");
script.AppendLine("alert(\"Nachricht: \" + strMsg);");
script.AppendLine("}");
ClientScript.RegisterClientScriptBlock(typeof(Page), "msgbox", script.ToString(), true);

http://msdn.microsoft.com/de-de/library/bahh2fef.aspx

Dieser Clientcode wird nach der geöffneten <form>-Tag eingefügt:
<script type="text/javascript">
function showMessage(strMsg) {
alert("Nachricht: " + strMsg);
}</script>

Zum Beispiel kann man jetzt dem Button folgende Clientaktion setzen:
myButton.OnCLientClick = String.Format("showMessage('{0}');", "Hallo Welt");
http://msdn.microsoft.com/de-de/library/system.web.ui.webcontrols.button.onclientclick.aspx

Man sollte sich stets in Erinnerung halten, dass ASP.NET in erster Linie HTML erzeugt, das von Browsern interpretiert und angezeigt wird. Und wie wir von HTML Dateien wissen können diese JavaScripts (Clientscripts) enthalten die von den Browsern ausgeführt werden können. Wir können also dafür sorgen, dass unser ASP.NET zu dem HTML auch JavaScript zur Verfügung stellt.

AJAX und Co.

ASP.NET AJAX und JavaScript-lastige Controls verwaschen leider immer mehr die Grenzen zwischen Client und Server, indem es immer mehr möglich wird, per serverseitigem Code Aktionen auf dem Client zu tätigen, oder umgekehrt. In Wirklichkeit werden aber auch hier unter anderem nur clientseitige Funktionen serverseitig zur Verfügung gestellt oder clientseitig Ressourcen auf dem Server aufgerufen, die wiederum dort Aktionen ausführen und gegebenenfalls ein Resultat an den Client zurückgeben.

Siehe auch: AJAX oder doch Javascript?

HowTo: ASP.NET MVC Projekt erstellen (erster Einstieg)

14.10.2008 23:06:41 | Robert Mühsig

Im letzten MVC HowTo ging es um die Beweggründe für ASP.NET MVC - heute werfen wir einen ersten Blick auf das MVC Framework. Das ganze werde ich direkt praktisch in meinem “ReadYou” Projekt verwenden (das derzeit aufgrund von Zeitmangel etwas schleift).

Die Projektvorlage:

Wenn man sich die aktuelle ASP.NET MVC Version runtergeladen hat (momentan sind wir bei Preview 5 auf Codeplex) und ein neues Projekt anlegt, sieht man folgendes neue Item:

image

Anmerkung: Wenn man das deutsche Visual Studio benutzt, scheint die Projektvorlage nicht mit aufzutauchen, dazu muss man die Project- und Itemtemplates von 1033 in 1031 (z. B. C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\ProjectTemplates\CSharp\Web\1031 bzw. \1033) kopieren und danach per Kommandozeile “devenv /installvstemplates” aufrufen. - Danke an “GarlandGreene” für den Hinweis.

Nachdem man dies ausgewählt hat kommt dieses Fenster:

image

Es wird angeboten sofort ein Unittest Projekt anzulegen. “Visual Studio Unit Test” (MS Test) ist per Default ausgewählt - später sollen allerdings noch weitere Test Frameworks (NUnit etc.) folgen.

Projektstruktur:

Nachdem die beiden Wizards durchgelaufen sind finden wir ungefähr (ich hab das UnitTest Projekt verschoben und umbenannt) so aus:

image

Aus der Ordnerstruktur ist auch bereits das MVC zu erkennen:

  • Kurzüberblick:
    • Controller: Logik
    • Models: Die eigentlichen Businessdaten
    • Views: Wie werden die Daten angezeigt

Views, Controller & Model:

Im ausgelieferten Stand besitzt das Template 2 Controller, 3 View-Ordner und ein Model-Ordner:

image

  • Im “Shared” Ordner werden alle Viewelemente gehalten, die für jeden View nützlich sind, wie z.B. die Masterpage oder eine Errorseite falls etwas schief läuft.
  • Jeder Controller besitzt seinen eigenen Ordner (”AccountController” - “Account” / “HomeController” - “Home“)
  • Diese “Pfade” können allerdings über Interfaces angepasst werden - ein Beispiel findet man z.B. hier “Partitioning an ASP.NET MVC application into separate “Areas”” oder Rob Conery Version.
  • Im Models Ordner können normale Klassen gespeichert werden - allerdings kann man diesen Ordner auch leer lassen, wenn man für die normalen Klassen bereits eine Klassenbibliothek hat.

Ein Blick auf die Seite:

Um einen ersten Blick auf die Funktionsweise des MVC Frameworks zu erhaschen ist die Startanwendung (welche bereits mit dem Membershipsystem, Masterpages etc.) ausgeliefert wird, ein guter Anfangspunkt:

image

image

Der Request Flow:

Justin Etheredge hat auf seinem Blog gut dargestellt, wie der Request einer MVC Anwendung verarbeitet wird und wo es überall die Möglichkeit gibt, selber einzugreifen: ASP.NET MVC Request Flow

Kommunikation zwischen Controller und View: Vom Controller zum View

image

 

Der Controller wird durch den Request Flow (siehe oben) aufgerufen - ich werde später noch eigene Controller in einem seperaten HowTo erstellen. Dabei kann man das ViewData Dictionary nutzen:

public ActionResult Index()
        {
            ViewData["Title"] = "Home Page";
            ViewData["Message"] = "Welcome to ASP.NET MVC!";

            return View();
        }

Durch den Aufruf der “View()“-Methode wird der View namens “Index” (weil die ControllerAction “Index” heisst) im “Home” Ordner aufgerufen (weil der Controller “Home” heisst).

Im View “Index.aspx” ist folgender Quellcode:

<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" AutoEventWireup="true" CodeBehind="Index.aspx.cs" Inherits="ReadYou.WebApp.Views.Home.Index" %>

<asp:Content ID="indexContent" ContentPlaceHolderID="MainContent" runat="server">
    <h2><%= Html.Encode(ViewData["Message"]) %></h2>
    <p>
        To learn more about ASP.NET MVC visit <a href="http://asp.net/mvc" title="ASP.NET MVC Website">http://asp.net/mvc</a>.
    </p>
</asp:Content>

Durch das einbinden der Masterpage (”MasterPageFile”) wird natürlich auch die Masterpage aufgerufen:

...
<head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title><%= Html.Encode(ViewData["Title"]) %></title>
</head>
...

Die Daten in dem “ViewData” werden sowohl in der Masterpage als auch in dem eigentlichen View angezeigt - ähnlich wie bei klassischem ASP.

Stark Typisierte Variante

Da das Dictionary nicht besonderes typisiert ist, kann man natürlich die ViewData auch noch streng typisiert hinterlegen. Dafür muss man in der Codebehinde Datei der ViewPage, welche im Ausgangszustand so aussieht:

namespace ReadYou.WebApp.Views.Home
{
    public partial class Index : ViewPage
    {
    }
}

Einen eigenen ViewData Typ hinterlegen:

Index.aspx.cs:

namespace ReadYou.WebApp.Views.Home
{
    public class IndexViewData
    {
        public string Text { get; set; }
    }

    public partial class Index : ViewPage<IndexViewData>
    {
    }
}

Index.aspx:

<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" AutoEventWireup="true" CodeBehind="Index.aspx.cs" Inherits="ReadYou.WebApp.Views.Home.Index" %>

<asp:Content ID="indexContent" ContentPlaceHolderID="MainContent" runat="server">
    <h2><%= Html.Encode(ViewData.Model.Text) %></h2>
    <p>
        To learn more about ASP.NET MVC visit <a href="http://asp.net/mvc" title="ASP.NET MVC Website">http://asp.net/mvc</a>.
    </p>
</asp:Content>

HomeController.cs:

        public ActionResult Index()
        {
            ViewData["Title"] = "Home Page";
            IndexViewData data = new IndexViewData();
            data.Text = "Hallo streng typisierter Text";
            ViewData.Model = data;
            return View();
        }

Hinweis: Das ViewData[”Title”] wird nach wie vor von der Masterpage ausgewertet. In einer MVC Anwendung müssen alle Daten vom Controller übergeben werden - es existiert momentan (Preview 5) nur eine experimentelle Funktion, welche es erlaubt, dass der View sich Daten aus anderen Quellen holt - allerdings entspricht dies nicht der MVC Norm!

Mehr Informationen findet man in dem Blogpost von Scott Guthrie (damals Preview 3 - Konzept ist gleich geblieben, manche Sachen sind allerdings geändert wurden):
ASP.NET MVC Framework (Part 3): Passing ViewData from Controllers to Views

 

Kommunikation zwischen Controller und View: Vom View zum Controller

image 

Der View kann über normale Links oder HTML Formulare die Daten an einen Controller schicken. Ein Beispiel ist bereits in dem Template eingebaut: Der Login-Mechanismus - dafür schauen wir uns die Login.aspx an:

Variante 1: Per GET oder der “ActionLink”

Für alle die noch nicht angemeldet sind, gibt es auf der Loginseite einen kleinen Link zum Registrieren:

image

Im Code:

<p>
        Please enter your username and password below. If you don't have an account,
        please <%= Html.ActionLink("register", "Register") %>.
    </p>

Dieser Html Helper generiert den Link damit die Daten beim Klicken zum “AccountController” (der View befindet sich im “Account” Ordner) zur “Register” ActionMethode kommen.

Variante 2: Per POST

Der Username / Password wird in einem normalen Html Forumlar eingegeben:

    <form method="post" action="<%= Html.AttributeEncode(Url.Action("Login")) %>">
        <div>
            <table>
                <tr>
                    <td>Username:</td>
                    <td><%= Html.TextBox("username") %></td>
                </tr>
                <tr>
                    <td>Password:</td>
                    <td><%= Html.Password("password") %></td>
                </tr>
                <tr>
                    <td></td>
                    <td><input type="checkbox" name="rememberMe" value="true" /> Remember me?</td>
                </tr>
                <tr>
                    <td></td>
                    <td><input type="submit" value="Login" /></td>
                </tr>
            </table>
        </div>
    </form>

Die action-URL wird wieder über einen Html Helper generiert. Wenn der Nutzer das Formular abschickt, kommen die Daten in der “Login” ActionMethode des “AccountControllers” an:

        public ActionResult Login(string username, string password, bool? rememberMe)
        {

            ViewData["Title"] = "Login";

            // Non-POST requests should just display the Login form
            if (Request.HttpMethod != "POST")
            {
                return View();
            }

            // Basic parameter validation
            List<string> errors = new List<string>();

            if (String.IsNullOrEmpty(username))
            {
                errors.Add("You must specify a username.");
            }
...
        }

Es gibt im MVC Framework einen eingebauten Mechanismus, der Formularwerte direkt auf Methoden-Parameter mappen kann (dies ist (natürlich) auch anpassbar). Dies ist nützlich, damit man die Methode besser mit UnitTests testen kann und kein Request Objekt sich erzeugen muss, sondern nur die Parameter entsprechend befüllen.

In der Methode werden Validierungen etc. vorgenommen. Man kann hier auch auf das normale Request Objekt zugreifen - allerdings sollte man um eine hohe Testbarkeit zu erreichen nicht direkt auf die Request Parameter zugreifen, sondern versuchen das Parametermapping zu verwenden. Stephen Walther hat dazu ein netten Blogpost darüber geschrieben.

Die Html Helper können auch “streng typisierte” sein und somit braucht man nicht unbedingt mit Strings Arbeiten (bei dem Actionlink z.B. direkt den Methodenaufruf über eine Expression anstatt “Register” als String zu schreiben) - Scott Hanselman hat einen Screencast dazu gemacht.

“Best Practices”, Tipps und Anlaufstellen

Da das MVC Framework noch nicht mal Beta ist, gibt es natürlich noch keine “Best Practices” - allerdings gibt es bereits mehrere interessante Projekte, welche mit MVC erstellt werden und Tipps geben:

Im nächsten HowTo werde ich dann genauer auf einzelne Teile eingehen - dies soll als Einstieg genügen.

ShareThis

Component Studio für Silverlight erreicht Milestone 4

14.10.2008 15:54:00 | Jens Peter Kleinau

Mit dem Release von Silverlight 2 kann nun die Company Component One in die nächsten Meilensteine gehen und den Release Candidate angehen. Die Toolbox aus Pittsburgh enthält eine lange Liste von Controls wie... Chart for Silverlight, ComboBox for Silverlight, RichTextBox for Silverlight, Numeric Box for Silverlight, DataGrid for Silverlight, Masked TextBox for Silverlight, Menu for Silverlight,...

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

Silverlight 2 released

14.10.2008 15:17:00 | Jens Peter Kleinau

Kaum hat man noch auf das RC0 aufmerksam gemacht, schon ist das RTM draußen. Auf der offziellen Homepage zu Silverlight geht es ab heute dem 14. Oktober 2008 das Silverlight 2.0 auf das wir alle so lange gewartet haben. Silverlight ist eine der Plattformen mit der größten Verbreitungsgeschwindigkeit. Kaum eine andere Technologie gelang eine so schnelle Durchsetzung im Markt. Da nun...

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

PEX - Automatisches Generieren von Unit-Tests

14.10.2008 14:10:10 | Thomas Schissler

Microsoft Research hat vor kurzer Zeit PEX zum freien Download veröffentlicht. Hinter diesem unscheinbaren Kürzel verbirgt sich ein Tool das absolut genial und beeindruckend ist und klar mach, warum Microsoft ein research center unterhält. Das Tool verspricht nichts weniger als die automatische Generierung von Unit-Tests und den dazugehörigen Testcases um eine möglichst hohe Code-Abdeckung zu erzielen. Detaillierte Informationen bietet das Whitepaper, wer sich auf die schnelle einen Einblick verschaffen möchte findet einen Überblick im Folgenden (na ja, für einen Überblick ist der Post vielleicht doch ein wenig lang geraden, aber ich konnte mich nicht bremsen vor Begeisterung):

Darf ich vorstellen - PEX

Gegeben sei folgende Methode die getestet werden soll:

 1: public string SimpleTest(int x1, int x2)
 2: {
 3: if (x1
> x2)
 4: return "x1
> x2";
 5: if (x1
< x2)
 6: return "x1
< x2"; 
 7: else
 8: return "x1
== x2";
 9: }

Für das versierte Auge eines Entwicklers ist sofort klar, da brauchen wir 3 Testcases um eine vollständige Code-Abdeckung zu erzielen. Mal sehen, was PEX daraus macht. Zunächst mal muss PEX heruntergeladen und installiert sein.  Dann kann man einfach einen "Parameterized Unit Test Stub" erzeugen. Dazu in der Methode rechts klicken und den Befehl aus dem Pex-Menü auswählen.

image

Im folgenden Dialog können Sie verschiedene Parameter angeben. Das wichtigste hier ist das Testprojekt in dem der Stub erzeugt werden soll.

image

Der erzeugte Stub sieht dann so aus:

 1: ///
<summary>
 2: ///
This class contains parameterized unit tests for Calculation
 3: ///
</summary>
 4: [TestClass]
 5: [PexClass(typeof(Calculation))]
 6: public partial class CalculationTest
 7: {
 8: [PexMethod]
 9: public string SimpleTest(
 10: [PexAssumeUnderTest]Calculation
target,
 11: int x1,
 12: int x2
 13: )
 14: {
 15: string result
= target.SimpleTest(x1, x2);
 16: return result;
 17: //
TODO: add assertions to method CalculationTest.SimpleTest(Calculation, Int32, Int32)
 18: }
 19: 
 20: }

Bei diesem Stub handelt es such um eine Vorlage für einen parameterisierten Unit-test. Toll, und was lässt sich damit nun machen? Wir können eine "Exploration" starten.

image

Diese Exploration versucht nun Input-Parameter zu finden die zu einer möglichst 100%igen Code-Abdeckung führen. Und hier beginnt nun die Magic von PEX. Ohne unser Zutun findet PEX 3 Kombinationen von Input-Parametern die tatsächlich eine komplette Code-Abdeckung erzielen- WOW! Dazu analysiert PEX wirklich den von uns erstellten Code und kann daraus definieren, mit welchen Input-Parametern die einzelnen noch nicht abgedeckten Zweige erreicht werden können.

image

Und das schönste, PEX baut uns automatisch 3 Unit-Tests die diese Testcases implementieren:

 1: [TestMethod]
 2: [PexGeneratedBy(typeof(CalculationTest))]
 3: public void SimpleTest01()
 4: {
 5: string s;
 6: Calculation
calculation = new Calculation();
 7: s
= this.SimpleTest(calculation, 1, 2);
 8: Assert.AreEqual<string>("x1
< x2", s);
 9: }
 10:  
 11: [TestMethod]
 12: [PexGeneratedBy(typeof(CalculationTest))]
 13: public void SimpleTest02()
 14: {
 15: string s;
 16: Calculation
calculation = new Calculation();
 17: s
= this.SimpleTest(calculation, 1879212556, 1879212556);
 18: Assert.AreEqual<string>("x1
== x2", s);
 19: }
 20:  
 21: [TestMethod]
 22: [PexGeneratedBy(typeof(CalculationTest))]
 23: public void SimpleTest03()
 24: {
 25: string s;
 26: Calculation
calculation = new Calculation();
 27: s
= this.SimpleTest(calculation, 256, 254);
 28: Assert.AreEqual<string>("x1
> x2", s);
 29: }

Diese Unit-Tests können wir nun starten und sehen, dass diese wie erwartet alle erfolgreich sind.

image

Damit haben wir einen Test automatisiert erstellt, der sicherstellen kann, dass diese Methode ihr Verhalten nach Außen für die aktuell definierten Test-Cases nicht verändert. Damit können ungewollte Änderungen an der Methode erkannt und beseitigt werden. Ob die Methode allerdings ihre Aufgabe korrekt erledigt, kann PEX natürlich nicht testen. Haben wir die Funktionsweise einer Methode allerdings einmal validiert, kann PEX nun sehr einfach dieses Verhalten prüfen. Und natürlich eignet es sich auch sehr gut um mögliche Test-Cases zu definieren. Es müssen in diesem Fall dann nur noch die einzelnen Ergebnisse je Test validiert werden.

Ändern wir die Methode ab, so dass sich ihr Verhalten ändert, dann alarmiert uns der entsprechende Test.

Soweit sogut - Und was geht sonst noch?

Wenn wir nun ein gewünschte Änderung der Funktionalität implementieren, wie kann PEX dann damit umgehen? Zunächst würden wir die vorhandenen Tests durchführen, damit wir sicher sind, dass die aktuelle Funktionalität noch korrekt läuft. Dann erweitern wir unsere Methode:

 1: public string SimpleTest(int x1, int x2)
 2: {
 3: if (x1
> x2 * 2)
 4: return "x1
> x2 * 2";
 5: if (x1
> x2)
 6: return "x1
> x2";
 7: if (x1
< x2)
 8: return "x1
< x2"; 
 9: else
 10: return "x1
== x2";
 11: }
Zeile 3+4 haben wir neu hinzugefügt. Nun starten wir eine neue Exploration und PEX ermittelt einen weiteren Test-Case um diese Funktion ebenfalls abzudecken.
 

image

Schön - darf's noch ein bisschen mehr sein?

Dieses einfache Sample war ja schon sehr beeindruckend. Die Frage, die sich aber natürlich direkt stellt, ist wie weit geht denn das? Wir wollen nun den Schwierigkeitsgrad für PEX schrittweise steigern. Integer-Werte sind ja noch relativ einfach zu handhaben, aber wie sieht's denn beispielsweise mit Strings aus? Hierzu zunächst wieder eine Methode, die wir testen wollen:

 1: public class StringOperations
 2: {
 3: public string CheckString(string Input)
 4: {
 5: if (Input.StartsWith("abc")
&& Input.Length > 10)
 6: return Input
+ " Starts with 'abc' and length > 10"; 
 7: if (Input.StartsWith("abc"))
 8: return Input
+ " Starts with 'abc'";
 9: if (Input.StartsWith("ABC"))
 10: return Input
+ " Starts with 'ABC'";
 11: return "Unknown
pattern";
 12: }
 13: }

Stubs erzeugen und Exploration starten. Ob PEX wohl solche Operationen wie "StartsWith" und "Length" versteht?

image

Es findet tatsächlich alle erforderlichen Input-Parameter und sogar noch mehr! PEX stell fest, dass unsere Methode beim Übergeben einer NULL-Referenz eine Exception wirft. Und damit nicht genug, PEX kann uns auch einen Vorschlag machen, wie wir unseren Code verbessern können. Dazu im "Pex Exploration Results" - Fenster unter Views "Show suggestions window" aufrufen.

image

image

Durch einen Doppelklick auf den Eintrag am unteren Rand des Bereichs öffnet sich ein Fenster, das die vorgeschlagene Änderung direkt in unseren Code einfügen kann.

image

 1: public string CheckString(string Input)
 2: {
 3: //
<pex>
 4: if (Input
== (string)null)
 5: throw new ArgumentNullException("Input");
 6: //
</pex>
 7: if (Input.StartsWith("abc")
&& Input.Length > 10)
 8: return Input
+ " Starts with 'abc' and length > 10"; 
 9: if (Input.StartsWith("abc"))
 10: return Input
+ " Starts with 'abc'";
 11: if (Input.StartsWith("ABC"))
 12: return Input
+ " Starts with 'ABC'";
 13: return "Unknown
pattern";
 14: }

Die Zeilen 3-6 wurden von PEX erzeugt. Natürlich können wir das entsprechende Verhalten im Code direkt ändern und an unsere Vorstellungen anpassen. Vielleicht ist es aber gar keine schlechte Idee, in diesem Fall eine Exception zu werden. Dies ist das Standard-Verhalten von PEX an dieser Stelle. Wird die erwartete Exception nicht mehr geworfen oder eine andere Exception tritt auf, wird dies durch einen fehlgeschlagenen Test angezeigt.

Der nächste bitte!

So nun wollen wir noch einen Schritt weitergehen und sehen, wie PEX mit Listen umgehen kann. Dazu habe ich folgende Testmethode erstellt (über den Sinn einer solchen Methode wollen wir jetzt nicht nachdenken)

 1: int result
= 0;
 2: if (list.Count
> 10)
 3: {
 4: foreach (int i in list)
 5: result
+= i;
 6: }
 7: else
 8: {
 9: foreach (int i in list)
 10: result
*= i;
 11: }
 12: return result;

Die Methode bekommt eine Liste von Integer-Werten übergeben. Wenn es mehr als 10 Elemente sind, werden diese addiert, sonst werden die Werte miteinander Multipliziert. Mal sehen, wie PEX mit Listen umgeht.

image

PEX erkennt noch, dass unsere Methode mit Null-References nicht korrekt umgeht, aber dann verließen sie ihn.  Aber freundlicherweise bekommen wir noch einen Hinweis "2 Object Creations". klickt man darauf, dann bekommt man schon mehr Informationen.

image

Aha, PEX kann also eine List<int> nicht erzeugen. Also was tun? Klickt man den unteren der beiden Einträge an, bietet PEX etwas weiter rechts die Möglichkeit eine Factory zu definieren. Eine Factory ist ein Extensibility-Point mit dem PEX beigebracht werden kann mit solchen Objekten umzugehen. Ein Beispiel für eine solche Factory kann so aussehen:

 1: namespace System.Collections.Generic
 2: {
 3: [PexFactoryClass]
 4: public partial class ListFactory
 5: {
 6: [PexFactoryMethod(typeof(List<int>))]
 7: public static List<int>
Create(int i)
 8: {
 9: if (i
> 100)
 10: i
= 100;
 11: List<int>
l = new List<int>();
 12: for (int j
= 0; j < i; j++)
 13: {
 14: l.Add(j
* 10);
 15: }
 16: return l;
 17: }
 18: }
 19: }

Hier teilt man PEX nun mit, welche Elemente es damit erzeugen kann (Zeile 6). Anschließend implementiert man eine Create-Methode die beliebige Parameter übernehmen kann. In Abhängigkeit dieser Parameter wird nun eine Instanz des gewünschten Objektes erzeugt. In unserem Beispiel übernehmen wir nur einen Parameter der die Länge der Liste angibt. In den Zeilen 9/10 begrenzen wir die Länge der Lsite auf 100 Elemente. Die Liste selbst befüllen wir mit einer Reihe von Zahlen. Hier ist es sicher keine gute Idee, z.B. Zufallszahlen zu verwenden, da diese ja bei jedem Testdurchlauf andere Werte liefern und deshalb der Assert nicht erfolgreich ausgeführt werden kann.

Mit hilfe dieser Factory kannPEX nun unsere Testcases definieren. Dazu ermittelt es einfach geeignete Parameter für die Create-Methode in unserer Factory statt das Objekt selbst zu erzeugen.

image

Die erzeugten Tests sehen dann so aus:

 1: [TestMethod]
 2: [PexGeneratedBy(typeof(ListCalculationTest))]
 3: public void SumList03()
 4: {
 5: List<int>
list;
 6: int i;
 7: list
= ListFactory.Create(2);
 8: ListCalculation
listCalculation = new ListCalculation();
 9: i
= this.SumList(listCalculation, list);
 10: Assert.AreEqual<int>(0,
i);
 11: }
 12:  
 13: [TestMethod]
 14: [PexGeneratedBy(typeof(ListCalculationTest))]
 15: public void SumList04()
 16: {
 17: List<int>
list;
 18: int i;
 19: list
= ListFactory.Create(536870912);
 20: ListCalculation
listCalculation = new ListCalculation();
 21: i
= this.SumList(listCalculation, list);
 22: Assert.AreEqual<int>(49500,
i);
 23: }

 

Nun folgt noch die Kür

Nach den Erfahrungen mit der Liste bereits etwas skeptischer geworden, wollen wir's jetzt aber doch wissen. Wie sieht's mit eigenen Objekten aus? Wie weit kommt PEX damit? Auch hier gibt es wieder eine einfache Methode die wir testen wollen:

 1: public class ComplexDataCalculation
 2: {
 3: public string DoComplexDataCalculation(cData
d)
 4: {
 5: if (!d.IsValid)
 6: return "NotValid";
 7:  
 8: if (d.DataValues.x1
> d.DataValues.x2)
 9: return "x1
> x2";
 10: if (d.DataValues.x1
< d.DataValues.x2)
 11: return "x1
< x2"; 
 12: else
 13: return "x1
== x2";
 14:  
 15: }
 16: }
 17:  
 18: public class cData
 19: {
 20: public cDataValues
DataValues { get; set; }
 21: public string ObsoleteParameter
{ get; set; }
 22: public bool IsValid
{ get; set; }
 23: }
 24:  
 25: public class cDataValues
 26: {
 27: public int x1
{ get; set; }
 28: public int x2
{ get; set; }
 29: }

Die Methode bekommt einen komplexen Datentyp übergeben. Und was macht PEX???

image

PEX erkennt nicht nur, dass wir zwei Null-Exceptions abfangen sollten, sondern kann auch unser Datenobjekt so initialisieren, dass wir wieder eine 100% Codeabdeckung bekommen. Die Unit-Tests sehen ungefähr so aus:

 1: [TestMethod]
 2: [PexGeneratedBy(typeof(ComplexDataCalculationTest))]
 3: public void DoComplexDataCalculation04()
 4: {
 5: cDataValues
cDataValues;
 6: cData
cData;
 7: string s;
 8: cDataValues
= new cDataValues();
 9: cDataValues.x1
= 3;
 10: cDataValues.x2
= 4;
 11: cData
= new cData();
 12: cData.DataValues
= cDataValues;
 13: cData.ObsoleteParameter
= "";
 14: cData.IsValid
= true;
 15: ComplexDataCalculation
complexDataCalculation = new ComplexDataCalculation();
 16: s
= this.DoComplexDataCalculation(complexDataCalculation,
cData);
 17: Assert.AreEqual<string>("x1
< x2", s);
 18: }

Das ist schon extrem beeindruckend, wie PEX tatsächlich eine entsprechende Instanz unseres Datenobjektes erzeugt und initialisiert und das so, dass wir alle Testcases abdecken. Wirklich beeindruckend.

Was haltet ihr davon? Würde mich über Feedback freuen.

TFS-Workitems aus Test Results anlegen

14.10.2008 14:02:36 | Thomas Schissler

Die Integration des TFS mit Visual Studio ist eine richtig schöne Sache. Eine Stelle an der die Vorteile dieser Integration schön sichtbar werden ist die Erzeugung einen Workitems direkt aus einem Test-Result heraus. Wenn also z.B. ein Test fehlgeschlagen ist, kann daraus direkt ein Bug-Workitem erzeugt werden. Der Clou dabei ist, dass das Test-Result automatisch auf dem TFS veröffentlicht und als Attachment an das Workitem angehängt wird. Damit hat der Entwickler der den Bug beheben soll Zugriff auf den durchgeführten Test und die Results. Dies funktioniert mit allen Testarten sofern der Entwickler mit seiner Visual Studio Edition die entsprechenden Testarten ausführen kann. Somit kann der Entwickler z.B. bei einem Unit-Test diesen verwenden um den Testcase einfach zu debuggen. Und bei manuellen Tests stellt die Testspezifikation die Beschreibung der Repro-Steps dar. Auf jeden Fall ein Zeitgewinn. Man kann aber beispielsweise damit auch Aufgaben definieren, dass ein bestimmter Test noch mit zusätzlichen Test-Cases angereichert werden soll etc.

Dazu geht man einfach mit der rechten Maustaste auf den entsprechenden Eintrag im Testresults-Fenster und wählt aus dem Kontext-Menü den entsprechenden Workitemtyp aus.

image

Wird statt der Liste der Workitems "No Active Team Project" angezeigt, dann gibt es hier eine einfache Lösung, die aber nicht ganz intuitiv ist.

image

1.) Sicherstellen dass im Team-Explorer das gewünschte Projekt angezeigt wird in dem man das neue Workitem anlegen möchte.

2.) Dieses Team-Projekt aktiv markieren (das Projekt wird fett dargestellt)

image

Nun werden die WorkitemTypen die im ProcessTemplate dieses Projektes definiert sind zur Auswahl angezeigt. Das Projekt selbst muss nicht unbedingt in der Quellcode-Verwaltung des TFS abgelegt sein.

Eclipse Tools für Microsoft Silverlight

14.10.2008 12:10:00 | Jens Peter Kleinau

Heute am 14. Oktober 2008 ist der erste Meilenstein Termin für die Open Source Community rund um Eclipse. Wer aus der .Net Welt Eclipse noch nicht kennt, dem sei etwas vereinfacht gesagt, dass es das Java Äquivalent zu Visual Studio ist. Es ist eine kostenlose auf Java basierende Entwicklungsumgebung (IDE). Ecclipse hat sich durch ein umfassend offenes Konzept zu einer Eierlegenden Wollmilchsau...

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

Microsoft veroeffentlicht Silverlight 2

14.10.2008 10:50:15 | Kay Giza

Silverlight 2 wird ab sofort (14. Oktober 2008) als kostenfreier Download unter www.microsoft.de/silverlight (alternativ direkter Download-Link der das Betriebssystem erkennt) zur Verfügung stehen... (... mehr)

This post is powered by www.Giza-Blog.de | Giza-Blog.de: RSS Feed
Visit:  MSDN Online | Kostenfreie MSDN Service-Hotline für Entwickler
Daily News on MSDN:   MSDN Aktuell
© Copyright 2006-2009 Kay Giza. All rights reserved. Legal

var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); try { var pageTracker = _gat._getTracker("UA-6946044-1"); pageTracker._trackPageview(); } catch(err) {}

BASTA! Spring - WPF und Silverlight

14.10.2008 10:25:00 | Jens Peter Kleinau

Best Practices stehene auch im Februar 2009 ganz oben auf der Liste der BASTA! Spring. Nach dem großen Erfolg der BASTA! 08 in Mainz im September findet vom 23.-27.Februar 2009 in Darmstadt die BASTA Spring 09 statt. Dabei werden von Silverlight 2.0 bis Oslo, von Windows 7 bis Cloud Computing alle für .NET-Entwickler relevanten Themen behandelt. Aktuell kann man sich mit dem Very Early Bird...

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

Samsung q310 im Praxistest

14.10.2008 08:19:37 | Norbert Eder

Seit einigen Tagen bin ich nun im Besitz eines Samsung q310. Bis jetzt waren bei mir einige Dell-Laptops am Werke. Somit stellt dies für mich einen kleinen Blick über den Tellerrand dar.

Angeschafft wurde das Gerät mit Anforderungen an hohe Mobilität (klein, wenig Gewicht), dennoch gute Performance und natürlich einem guten Preis-Leistungsverhältnis. Auf den ersten Blick kann dieses Gerät alles erfüllen. Aber ist dem auch tatsächlich so?

Am meisten stört mich bei neuen Geräten immer wieder die vorinstallierte Software. Demo-Tools, Anwendungen, die noch lizenziert werden wollen usw. Natürlich entsprechen die meisten nicht der eigenen Liste an Tools, die man für gewöhnlich gerne verwendet. Hierbei möchte ich keinen Hersteller ausnehmen. Daher wird von mir gleich das gesamte System eingeebnet und meinen Wünschen und Vorstellungen entsprechend neu installiert. Also, neues Vista + die wichtigsten Tools rauf auf den neuen Rechner. Funktionierte soweit alles wunderbar.

Im Vergleich zu meinen zur Verfügung stehenden Dell-Notebooks war ich von einigen Dingen durchaus begeistert:

Das Display wird gut ausgestrahlt und läßt sich sehr gut an die aktuellen Gegebenheiten anpassen. Im Freien (und das war von Beginn an klar) wird es jedoch selbst mit allen Einstellungsmöglichkeiten haarig - dank dem glossy Display. Aber das ist eine Einbuße, die ich bewußt in Kauf genommen habe.

Sehr entgegen kommt mir die Tastatur. Diese besitzt genau den von mir bevorzugten Tastenanschlag und hinterläßt da natürlich einen sehr guten Eindruck. Die Anordnung der Tasten ist gut gelungen, die Abstände sind in Ordnung. Wer hier Apple-Tastaturen bevorzugt, wird höchstwahrscheinlich nicht ganz zufrieden sein. Weiters vorteilhaft ist die spezielle antibakterielle Oberfläche der einzelnen Tasten.

Für audiophile Personen sind die verbauten Lautsprecher eher weniger, bei so kleinen Geräten auch durchaus nicht verwunderlich. Mit Kopfhörer sieht es dann durchaus ein wenig anders aus. Passt auch bei den Kopfhörern die Qualität, läßt sich ganz gut Musik hören, mit einigermaßen gutem Klang. Wunder darf man sich hier allerdings keine erwarten.

Der allgemeine Geräuschpegel ist ebenfalls genau das, was ich mir gewünscht habe. Selbst bei einiger Belastung verhält sich das System ruhig und macht wenig bis keine Geräusche. Wer es noch leiser möchte, kann in einen speziellen Modus schalten und hört dann so gut wie gar nichts mehr. So soll es sein, wenn man in Ruhe arbeiten möchte. Hier kann ich als Vergleich meine Dell-Rechner heranziehen, die weit mehr Geräusche verursachen. An dieser Stelle sei auch erwähnt, dass es keine Klick-Geräusche, oder ähnliches gibt.

Wo wir denn gerade beim Geräuschpegel sind, muss ich die Festplatte erwähnen. Diese läuft absolut leise und ruhig, was jedoch auch den Nachteil hat, dass sie nicht die schnellste aller Platten ist. Dies macht sich gerade bei vielen Schreibzugriffen durchaus bemerkbar. Auch dies hatte ich eigentlich erwartet und schockt mich nicht weiter. Sollte sich im Laufe der Zeit herausstellen, dass mir die Gesamtleistung zu gering ist, kann an dieser Stelle selbst bei einem Laptop sehr einfach ein Tausch vorgenommen werden.

Ein weiterer wichtiger Punkt ist das Thema Verarbeitung. Es knarrt nichts, es läßt sich nichts verbiegen - alles macht einen stabilen Eindruck. Das Aufklappen geht meiner Meinung nach fast zu leicht, der Bildschirm hat aber dennoch einen stabilen Halt. Wollen wir mal hoffen, dass dem so bleibt.

Insgesamt macht das Samsung q310 einen sehr guten Eindruck und überrascht mich durchaus. Bis dato war ich Qualität von Dell gewohnt, welche leider in der letzten Zeit ein wenig nachgelassen hat und mich so zu einer Umorientierung gezwungen hat. Geräte von IBM/Lenovo wollte ich mir nicht leisten, da die für mich in Frage kommenden Geräte bei dem vorgesehenen Verwendungszweck einfach zu teuer waren. Ich kann das Samsung also bis jetzt durchaus weiter empfehlen. Ich hoffe, dass ich das auch noch in einem halben Jahr tun kann.

Infragistics gibt NetAdvantage Silverlight Roadmap bekannt

13.10.2008 23:01:48 | Andre Kraemer

Abgesehen von "Können Sie mir hier bitte einen Stempel drauf machen?" oder "Darf ich so einen Kuli haben?" war  die dritthäufigste Frage an unserem Infragistics-Stand während der diesjährigen Herbst-Basta sicherlich "Wann kommen die Infragistics Silverlight 2.0 Controls raus?"

Nun, während der Messe lautete unsere Antwort stets: "So lange Microsoft selbst nicht weiss, wann Silverlight 2.0 heraus kommt, können wir hier leider keine Antwort geben" ;-)

Tja, wie heute in diversen Blogs zu lesen war ([1], [2], [3]) hat Microsoft die Katze aus dem Sack gelassen und das Silverlight 2.0 RTW für morgen angekündigt.

Infragistics war allerdings ein wenig schneller - zumindest was die Ankündigungen angeht -  und gabin Tony's Blog letzten Mittwoch die Infragistics NetAdvantage Silverlight Controls for Line of Business (LOB) Applications Roadmap bekannt.

Zusammengefasst sieht diese wie folgt aus:

Meilenstein Datum
Roadmap angekündigt Oktober 2008
Erstes CTP Ende 2008
Zweites CTP März 2009
2009 Vol 1 Release (inkl. Silverlight LOB Controls) Quartal 2 2009

Die ersten Screenshots sehen schon recht vielversprechend aus

xamWebChart xamOutlookbar

bleibt nun also abzuwarten, was tatsächlich daraus wird.

PIC-0031

Eine Aussage zum NetAdvantage Silverlight Release Datum konnten wir während der Basta leider nicht treffen. Spaß auf dem "Bastoberfest" hatten wir aber trotzdem ;-)



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

Regex-Lab, oder: Einfach Ausdrücke testen und entwickeln

13.10.2008 20:55:00 | Peter Bucher

Herbivore aus dem myCSharp.de Team hat ein geniales Tool erstellt, mit dem Reguläre Ausdrücke und die Eingaben on-the-fly getestet werden können.
Das ist sehr hilfreich beim Entwickeln, sowie auch zum testen von Ausdrücken.

Zitat aus der Beschreibung:

Regex-Lab arbeitet on the fly. Das bedeutet, dass bei jeder Änderung des Pattern, des Input-Textes oder der Optionen/Einstellungen, die Auswirkungen sofort angezeigt werden.

Dabei wird der gefundene Text unterstrichen und die gefundenen Gruppen werden im InputText und in der Group-Liste farblich hervorgehoben. Man sieht also genau, von wo bis wo der Pattern und seine Teile (Groups) gematcht haben. Wenn eine Gruppe mehr als einen Capture hat, werden die Captures in der Farbe der Gruppe, aber mit wechselnder Helligkeit ausgegeben, so dass man auch hier sehen kann, von wo bis wo sich der Capture im Input-Text erstreckt.

Mehr Infos finden sich im Post auf myCSharp.de:

Noch Fragen, Roden? Ja, Bucher!

13.10.2008 20:35:00 | Peter Bucher

Vor rund zweieinhalb Wochen haben Golo Roden und ich uns einander offline kennen gelernt, nachdem wir zuvor über Monate ausschließlich per MSN und E-Mail Kontakt hatten. Als erstes Ergebnis dieses Treffens haben wir beschlossen, in unseren Blogs zukünftig jeweils zum ersten eines jeden Monats eine Art Kommentar zu einem im Vorfeld abgesteckten Thema vorzustellen.

Das Thema entscheiden wir dabei gemeinsam vorab, wobei wir nicht mehr als einige Schlagworte festhalten. Für jeden von uns lautet dann die Aufgabe, bis zum ersten Tag des kommenden Monats einen Kommentar zu schreiben, in dem wir unsere Meinung zu dem jeweiligen Thema erläutern.
Wir wissen dabei gegenseitig nicht, was der andere schreiben wird - es werden also nicht nur unsere Leser überrascht.

Am 1. Dezember 2008 wird es beginnen ...

FIX: On a computer that is running the .NET Framework 2.0 Service Pack 1, the file name and the line number are not reported as part of an error ...

13.10.2008 20:32:00 | Ozgur Aytekin

FIX: On a computer that is running the .NET Framework 2.0 Service Pack 1, the file name and the line number are not reported as part of an error message if a Visual C# Web site project is in a directory that has a name that contains parentheses

On a computer that is running the Microsoft .NET Framework 2.0 Service Pack 1 (SP1), you create a Microsoft Visual C# Web site project in a directory. The directory name contains parentheses. Then, you build the Visual C# Web site project. However, if an error exists, the file name and the line number are not reported as part of an error message. Instead, you receive an error message that resembles the following:
(0,0): error CSXXXX: expected.
Additionally, if you open the code file where the error is located, the error is not underlined, and no information shows that an error exists.

- Microsoft .NET Framework 2.0

http://support.microsoft.com/kb/956898/

Plan alternate access mappings (Office SharePoint Server)

13.10.2008 20:28:00 | Ozgur Aytekin

In this article:

- About alternate access mappings
- Reverse proxy publishing
- Alternate access mapping integration with authentication providers
- Alternate access mapping integration with Web application policies
- Alternate access mapping and external resource mapping
- Troubleshooting alternate access mappings

http://technet.microsoft.com/en-us/library/cc261814.aspx

Unable to “Check Out” a Document in MOSS 2007 Published Through ISA Server 2006

13.10.2008 20:26:00 | Ozgur Aytekin

Troubleshooting Sharepoint/MOSS 2007 publishing through ISA Server can be really challenging, mainly because most of the times the argument is: but it works just fine internally. Although this can be a good argument it doesn’t prove that the issue is on ISA Sever. The reason why it doesn’t prove is because most of the time while publishing MOSS 2007 through ISA Server 2006 the Alternate Access Mappings is controlled by MOSS. This is a key element in this type of publishing scenario, so before we move further on this issue I strong recommend you to read the following article: Plan alternate access mappings (Office SharePoint Server). This article has all the concepts that you need to plan your AAM without hurting your publishing rule through ISA Server.

http://blogs.technet.com/isablog/archive/2008/10/02/unable-to-check-out-a-document-in-moss-2007-published-through-isa-server-2006.aspx

Information about Windows Server 2008 Service Pack 2 and Windows Vista Service Pack 2

13.10.2008 19:49:00 | Ozgur Aytekin

This Microsoft Knowledge Base article will be updated with more information about Windows Server 2008 Service Pack 2 (SP2) and Windows Vista Service Pack 2 (SP2) when the information becomes available. Currently, the product release notes and related information about Windows Server 2008 SP2 and Windows Vista SP2 are not available.

- Windows Vista Enterprise 64-bit Edition
- Windows Vista Home Basic 64-bit Edition
- Windows Vista Home Premium 64-bit Edition
- Windows Vista Ultimate 64-bit Edition
- Windows Vista Business 64-bit Edition
- Windows Vista Business
- Windows Vista Enterprise
- Windows Vista Home Basic
- Windows Vista Home Premium
- Windows Vista Starter
- Windows Vista Ultimate
- Windows Server 2008 Datacenter without Hyper-V
- Windows Server 2008 Enterprise without Hyper-V
- Windows Server 2008 for Itanium-Based Systems
- Windows Server 2008 Standard without Hyper-V
- Windows Server 2008 Datacenter
- Windows Server 2008 Enterprise
- Windows Server 2008 Standard
- Windows Web Server 2008

http://support.microsoft.com/kb/948465/

Alle Visual Studio Teamsystem Session auf dem Technical Summit 2008 im Überblick

13.10.2008 19:27:00 | Christian Binder

Der Technical Summit 2008 in Berlin wird dieses Jahr die umfassendste Microsoft Entwickler Veranstaltung in Deutschland sein. Neben den Highlights von der PDC in Los Angels und anderen spannenden Themen, gibt’s natürlich auch wieder Talks rund um Visual Studio Team System.

Ich habe die Agenda nochmal grafisch aufbereitet, um Abhängigkeiten zwischen Sessions und extistierenden und geplantem Webcast Content auf einen Blick transparent zu machen. Ich hoffe so findet jeder die für sich relevanten Sessions.

Am PreConf Tag startet der TFS mit Neno Loje gleich stark durch, die erste Session “Der Team Foundation Server stellt sich vor” ist für alle empfehlenswert ,die sich gerne bei Null abholen lassen wollen und mit der zweiten Session “Team Foundation Server im Praxiseinsatz” mit 100% den eigenen TFS in Betrieb nehmen wollen. Wenn Neno das nicht schafft, lasst es mich bitte wissen :-)

Auf der MainConf starten wir mit “Durchgängige Entwicklungsprozesse mit Visual Studio Team System” die Grundlage für alle anderen Sessions. Mit der Session “TFS – Versionsverwaltung im Praxiseinsatz” fokussieren wir nicht nur auf die Version Control Features, sondern Fragen wie nutze ich Branches? Wie gehe ich mit Version Control Dependencies um. Wer nochmal die Basics auffrischen möchte, kann sich den Version Control Webcast des “Visual Studio Team System 2008 Serien Webcast” anschauen. Die grafischen Elemente sind mit den entsprechenden Webcasts verlinkt. Thomas Schissler zeigt mit “QM mit VSTS und TFS”, dass die Kombination eines durchgängigen Entwicklungs Prozesses mit Test Tools die Basis für ein funktionierendes Qualitätsmanagement ist.  MOSS Development ist nicht immer einfach, Torsten Mandelkow zeigt mit “MOSS Development mit VTS automatisieren” wie es mit  VSTS geht und man ein vernünftiges Application Lifecycle Management für MOSS Anwendungen mit Hilfe von TFS abbilden kann. Ich werde Euch in “VSTS 2010 Codename Rosario” die Highlights der neuen Version zeigen, natürlich auf Basis der letzten PDC Bits :-)

Wer Fragen hat mitbringen! Am Donnerstag 18:00 bis 19:30 werden alle VSTS Sprecher im ASk the Experts Bereich sein und freuen uns auf Euch und Euer Feedback!

Zusätzlich findet Ihr alle 2008er Webcast’s verlinkt, die das eine oder andere Thema vertiefen und natürlich die zum jetzigen Zeitpunkt geplanten Webcasts mit rotem Rahmen gekennzeichnet.

Tech Summit TFS Track

Was bedeutet was?

 

image

Bitte gebt mir Feedback, ob diese Darstellung für Euch hilfreich ist !!!!

Viel Spass

Chris

Silverlight 2 ist da, kostenloses Eclipse-Toolset für Silverlight in Entwicklung, ServicePack 1 für Expression Blend ermöglicht Silverlight 2-Entwicklung mit Expression Studio 2

13.10.2008 18:43:00 | Steffen Ritter

Silverlight, RIA, Open Source, .NET auf allen Plattformen im Browser, erfolgreichstes Plug-in aller Zeiten, knapp 50% Verbreitung binnen 12 Monaten in manchen Ländern, 1 von 4 Usern weltweit kann bereits Silverlight nutzen, XAML, Eclipse, VC-1, Moonlight,H.264, Linux, Mac, Cross-Platform usw. usf… Was für ein Buzzword-Bingo!

Aber trotzdem (oder gerade deswegen) kriege ich das Gefühl nicht los, dass wir mit Silverlight und Expression Studio diesmal einiges richtig gemacht haben. Silverlight ist tatsächlich eines der erfolgreichsten Plug-ins in der Geschichte des Internets, sowohl was die schnelle Akzeptanz und Installation durch Endanwender, als auch die Nutzung durch Entwickler betrifft. „Plattformübergreifend“ heißt trotz allen Unkenrufen aus den üblichen Foren tatsächlich für Windows, Mac und Linux (das Thema Linux war speziell in Deutschland ein heißer Punkt); die XAML-Spezifikationen sind frei und offen verfügbar, so dass jeder seinen eigenen grafischen XAML-Editor entwickeln kann und Drittanbieter problemlos Funktionen zum Lesen, Verarbeiten und Generieren von XAML-Code in ihre eigenen Anwendungen integrieren können. Silverlight Controls wurden als Open Source veröffentlicht. Neben Expression Studio (und dem kostenlosen Visual Studio Express) gibt es auch Open Source-Tools für die Silverlight-Entwicklung, deren Existenz von Microsoft nicht nur geduldet wird, sondern die wir sogar komplett finanzieren: Eclipse-Tools for Silverlight

Service Pack 1 für Expression Blend 2 macht Expression Blend 2 „Silverlight-2-fähig“ – das Service Pack für die englische Version von Expression Blend 2 ist bereits verfügbar, die deutsche Version kommt in Kürze. Damit ist endlich auch eine unnötige Verwirrung erledigt, Expression Blend 2 ist nun das offizielle Werkzeug für Silverlight 2 /.NET (und nicht mehr nur für Silverlight 1/JavaScript). Die deutsche Homepage zu Expression Studio 2 ist allerdings noch nicht auf dem neuesten Stand, das wird mit der Veröffentlichung des deutschen SP1 nachgeholt.

Für mich persönlich – und natürlich für das gesamte weltweite Expression Studio/Silverlight/Designer Marketing-Team bei Microsoft – ist mit der Veröffentlichung von Silverlight 2 und den zugehörigen Tools ein Meilenstein erreicht, auf den wir mehrere Jahre hingearbeitet haben. Viel Zeit zum Erholen haben wir nicht, denn in wenigen Wochen ist bereits Xtopia – die größte deutsche Microsoft-Konferenz zum Thema Web, RIA, User Experience und Web-Business (16.-18. November in Berlin) – aber was wir in den vergangenen Monaten mit Silverlight  – nicht nur für Windows, sondern für das Web allgemein – erreicht haben gibt mir persönlich ein gutes Gefühl. Das Thema ist extrem spannend und Microsoft hat sich vielen neuen Spielregeln geöffnet und spielt mit Silverlight (und einigen noch geheimen Technologien die wir auf der PDC und dem TechSummit in Berlin vorstellen werden) wieder ganz vorne mit. 

Links aus diesem Beitrag:

Technical Summit 2008 - Early Bird usw.

13.10.2008 09:35:15 | Norbert Eder

Leider bin ich nicht eher dazu gekommen, dies zu posten, aber hier noch schnell die Information über die Verlängerung des Early Birds für das Technical Summit, als auch für XTOPIA

Die Event-Organisatoren haben die Early-Bird-Aktion verlängert. Alle, die sich noch bis zum 15. Oktober für die XTOPIA und/oder den Technical Summit anmelden, können bis zu 150 Euro sparen.

Um den vergünstigten Preis zu erhalten, muss bei der Anmeldung lediglich ein Promo-Code angegeben werden.

Promo-Code XTOPIA: XT08-34283-EB1510
Promo-Code Technical Summit: TS08-62811-EB1510


Weiters freue ich mich, dass ich selbst auch auf dem Technical Summit dabei sein werde. Für ein Gespräch sollte also entsprechend Zeit sein - wer möchte, kann sich ja bereits im Vorfeld bei mir melden.

View and update a SharePoint calendar

12.10.2008 13:14:00 | Ozgur Aytekin

You can view and update a SharePoint calendar, just as you do your Outlook calendar.

You can view a calendar from a SharePoint site side-by-side with an Outlook calendar, view an overlay of the calendars as if they were one single calendar, and even copy events among the calendars.

When you connect a SharePoint calendar to Outlook 2007, it appears under Other Calendars with your calendar folders. You can connect multiple calendars at the same time, such as a team vacation calendar and a project schedule. Depending on your needs, you can choose which calendars you want to work with: a single calendar from a SharePoint site, multiple SharePoint calendars (if you have them), or Outlook calendars.

http://office.microsoft.com/en-us/outlook/HA100819871033.aspx

Office SharePoint Server 2007 Workflow Whitepaper

12.10.2008 10:21:00 | Ozgur Aytekin

Over the last decade, business process management solutions have been gaining considerable momentum as organizations are struggling to maintain consistency and efficiency in executing their core business processes. Workflow for automating formal business processes has been built into enterprise solutions and line-of-business applications, and business process management point solutions have emerged for more comprehensive process management capabilities. Despite these advancements in business process management technologies, workflow and business process management solutions are typically used to address only a small percentage of the work that is done within an enterprise. By focusing exclusively on highly structured business processes designed by a small number of employees, organizations have historically neglected to address and enable the less formal and more iterative work that is completed by the vast majority of employees.

Microsoft has responded to these industry challenges by providing the Microsoft® Office SharePoint® Server 2007 Workflow solution that delivers highly flexible tools like InfoPath Forms Services for data collection and workflow interaction and SharePoint® Designer for easy workflow design and customization including robust out of the box features to enable the rapid deployment and adoption of business process solutions across the enterprise. By supplementing formalized process execution with collaborative human interaction, employees can work more effectively in the context of the larger goals of the enterprise.

http://www.microsoft.com/downloads/details.aspx?familyid=15D9D316-2FF3-40C9-85ED-4537657FA965&displaylang=en

Office SharePoint Server 2007 Document Management Whitepaper

12.10.2008 10:20:00 | Ozgur Aytekin

Most large enterprises rely far too heavily on shared drives and e-mail as the primary mechanisms for storing and sharing enterprise documents. While these solutions work somewhat effectively when dealing with moderate volumes of documents, they cannot scale to meet the evolving needs of most companies. In today’s world, document volumes are growing exponentially, resulting in skyrocketing management costs and inability to find relevant information.

Microsoft has responded to these challenges by delivering an integrated solution that extends document management to all employees. By recognizing that a document’s lifecycle begins the moment it is created and does not end until it is destroyed, organizations can achieve wide adoption and enforcement of enterprise standards, resulting in decreased management costs and reduced corporate risk.

http://www.microsoft.com/downloads/details.aspx?familyid=D1AA2974-7B03-4FF3-86FF-58DB2819C1DD&displaylang=en

Office SharePoint Server 2007 Records Management Whitepaper

12.10.2008 10:18:00 | Ozgur Aytekin

Records management is the practice of identifying, classifying, archiving, preserving, and destroying records according to a set of pre-defined standards. The primary driver behind records management solutions is to reduce risk through improved regulatory and corporate compliance.

Microsoft delivers a records management platform that can be extended to every information worker. By viewing retention and records management as a component of the overall document lifecycle, organizations can reduce risk and improve compliance with increased adoption of records management practices.

http://www.microsoft.com/downloads/details.aspx?FamilyID=717a3870-520e-4e4f-b996-a067d13cd4ad&DisplayLang=en

2007 Office System Converter: Microsoft Filter Pack

12.10.2008 10:12:00 | Ozgur Aytekin

This download will install and register IFilters with the Windows Indexing Service. These IFilters are used by Microsoft Search products to index the contents of specific document formats. This Filter Pack includes IFilters for the following formats: .docx, .docm, .pptx, .pptm, .xlsx, .xlsm, .xlsb, .zip, .one, .vdx, .vsd, .vss, .vst, .vdx, .vsx, and .vtx.

To register these IFilters with a specific Search product, please see the associated KB article below:

- Office SharePoint Server 2007 - Office SharePoint Server 2007 registration steps
- Search Server 2008 - Search Server 2008 registration steps
- SharePoint Portal Server 2003 - SharePoint Portal Server 2003 registration steps
- Windows SharePoint Services v3.0 - Windows SharePoint Services v3.0 registration steps
- Exchange Server 2007 - Exchange Server 2007 registration steps
- SQL Server 2005 - SQL Server 2005 registration steps
- SQL Server 2008 - SQL Server 2008 registration steps

http://www.microsoft.com/downloads/details.aspx?FamilyID=60c92a37-719c-4077-b5c6-cac34f4227cc&DisplayLang=en

Fixes für das WPF Performance Profiling Tool

12.10.2008 01:22:43 | Klaus Bock

Wie auf dem WPF Performance Blog in diesem Artikel zu erfahren ist, liegt seit gestern ein Update für die WPF Performance Suite vor. Mit diesem Update werden ein paar Ungereimtheiten beseitigt die auf Computern, welche mit einem lokalisierten Betriebssystem betrieben werden, auftreten können.

Technorati-Tags:

Parallele Programmierung im .NET Framework 4.0

11.10.2008 17:45:26 | Klaus Bock

Es ist offiziell. Gestern hat es das Team der Entwickler der Parallel Library auf seinem Teamblog bekannt gegeben: Die parallelen Erweiterungen werden eine Kern-Komponente des Framework 4.0. Zitat:

Parallel Extensions will indeed be a part of the .NET Framework 4.0.  Not only will it be a part of it, it will be a core part of it.

Somit wird die ParallelFX, welche im Moment noch als CTP erhältlich ist, endlich offiziell im .NET Framework enthalten sein. Damit wird sicher auch der ein oder andere Zweifler von den Vorteilen der Parallelisierung überzeugt werden. Vor allem wenn man sieht wie relativ einfach sich einzelne Aufgaben parallelisieren lassen.

In früheren Post's habe ich schon die Verwendung der ParallelFX gezeigt. Für eine CTP sind die Bibliotheken schon erstaunlich stabil. Für allem für Linq-Enthusiasten kommt mit PLinq, oder Parallel Linq, eine mächtige Erweiterung der Abfragesprache. Für alle anderen bieten die Klassen Parallel und Task schon jetzt einen verhältnismäßig unkomplizierten Weg um Aufgaben zu parallelisieren. Alle die ein wenig mehr über die Parallel Erweiterungen für das .NET Framework erfahren wollen, sollten sich diesen Artikel aus dem MSDN Magazin zu Gemüte führen.

 

ASP.NET MVC Preview 5 und der Visual Studio 2008 Absturz.

11.10.2008 12:53:42 | Albert Weinert

Vor nicht allzulanger Zeit sprach mich Alexander an ob sich bei mir auch Visual Studio sang und klanglos verabschiedete wenn eine .aspx Seite aus einem MVC- Projekt geöffnet wurde. Dies war damals bei mir nicht der fall. Ich erzeuge ein paar Projekte und alles war wunderbar.Der Fehler tauchte jedoch nicht nur bei ihm auf wie auf forums.asp.net zu lesen war. Eine für Ihn funktionierende Lösung war jedoch nicht dabei.

Heute beim hinzufügen eines MVC Projektes zu einer vorhandenen Solution ereilte mich auch diese Problem und beim öffnen von .aspx und .js Dateien aus einem MVC Projekt verabschiedete sich mein Visual Studio 2008.

Also erst einmal die Referenzen auf System.Web.Abstractions und System.Web.Routing geändert so dass diese nicht mehr auf die vom MVC Framework mitgelieferten Versionen verweisen, sondern auf die im GAC. Dies war keine Lösung.

Somit nochmal in forums.asp.net gesucht und siehe da, nun ist dort ein Hinweis auf eine Lösung in einem Blogpost von Øyvind Valland. Dieser behob mein Problem.

Lösung

Aus irgendeinem Grund befinden sich im Bin-Ordner des MVC-Projektes die System.Web.Abstractrions.dll sowie System.Web.Routing.dll. Nach dem löschen dieser stürzt mein Visual Studio nicht mehr ab.

Neuer VSTS Webcast: Hierarchische Workitems mit VSTS 2008 erfolgreich anwenden

10.10.2008 12:04:11 | Christian Binder

Eines der am häufigsten vermissten Features in VSTS 2008 sind Workitem-Hierarchien. Im Webcast "Team Foundation Server 2008 - Hierarchische Organisation von Workitems" (27.1.2008) hatten wir bereits gezeigt, dass man mit der TFS API dieses Feature problemlos implementieren kann. Aufgrund der Nachfragen gibt es nun einen Workitem Manager Open, also ein kostenloses Tool, das wir im Rahmen dieses Webcasts vorstellen. Im Fokus des Vortrags stehen die Nutzung des Tools und die Vorteile, die sich in der Praxis durch Workitem-Hierarchien ergeben.

Download

Den Workitem Manager Open gibt's hier www.alm-tools.de

Viel Spass

Chris

Die Give-Aways der Xtopia

10.10.2008 08:25:00 | Oliver Scheer

Jeder zahlende Teilnehmer der Xtopia 08 erhält auch dieses Jahr ein höchstinteressantes und wertvolles Give-Away-Paket. Nachdem wir Ihnen noch Details zu einem der Give-Aways schuldig waren, freuen wir uns Ihnen mitteilen zu können:
Sie erhalten nun Microsoft Expression Encoder 2 als Vollversion. Damit sieht das gesamte Give-Away-Paket der diesjährigen Xtopia 08 wie folgt aus:

Mehr dazu: www.xtopia.de

Chat mit dem IE-Team am 16.10.2008 sowie 13.11.2008

10.10.2008 07:30:19 | Kay Giza

Am Donnerstag, 16. Oktober 2008 findet ein öffentlich zugänglicher Chat mit dem Internet Explorer 8 Team statt.
19.00 Uhr unserer Zeit hier in Deutschland startet.
Download Kalender-Eintrag: 08_1016_ez_IE8.ics (7,22 KB)
Inhalte: "Please join experts from the Internet Explorer team in a chat around the Internet Explorer 8 Beta. These chats are a great opportunity to have your questions answered and hear from members of the IE product team."

Zusätzlich findet am Donnerstag, 13.November 2008 ein zweiter Chat mit dem IE8-Team statt, auch um 19.00 Uhr unserer Zeit.
Inhalt: "Please join experts from the Internet Explorer team in a chat around the Internet Explorer 8 Beta. These chats are a great opportunity to have your questions answered and hear from members of the IE product team."
Download Kalender-Eintrag: 08_1113_ez_IE8.ics (7,69 KB)

Mehr Informationen: US Expert Zone Chats sowie IE8 Developer Center
PS: Apropos Internet Explorer 8, auf dem Microsoft Technical Summit 2008 wird Daniel Melanchthon eine ganze Session zum Internet Explorer 8 halten. Und zum Schluss, damit das Salz in der Suppe nicht fehlt, noch ein Hinweis auf den Browser-Blog.de - sehr interessant zu lesen.




This post is powered by www.Giza-Blog.de | Giza-Blog.de: RSS Feed
Visit:  MSDN Online | Kostenfreie MSDN Service-Hotline für Entwickler
Daily News on MSDN:   MSDN Aktuell
© Copyright 2006-2009 Kay Giza. All rights reserved. Legal

var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); try { var pageTracker = _gat._getTracker("UA-6946044-1"); pageTracker._trackPageview(); } catch(err) {}

Thomas auf der ADC08

10.10.2008 01:05:40 | Thomas Schissler

Advanced Developers Conference, Windows Development, Windwos Entwicklung, ADC, LINQ, LINQ (DB), Testing, Deployment, Visual Studio Team System, VSTS-Versionkontrolle, Dynamische Sprachen, C++, C#, Debugging, Architektur, WCF, WF, WPF, Parallel LINQ, OpenMP, MPI, C++/CLI, C++-Interop, MFC, TR1, Vista-API’s, Debugging, VS-Extensions, Database Data Mining, Analysis, Reporting, VS-DB-Edition, visual studio, .net, vista, Anwendungsentwicklung .NET, managed code, unmanaged code

Nächste Woche Dienstag bin ich mit zwei Vorträgen auf der ADC08 vertreten.

Testing Practices mit VSTS und TFS
VSTS bringt eine ganze Reihe von Testmethoden. Insbesondere die Edition für Tester bietet verschiedene Testarten. Die Implementierung der unterschiedlichen Testarten ist inzwischen hinlänglich beschrieben. Wie diese Tests in Real-World-Projekte eingesetzt werden, um tatsächlich die Qualität zu verbessern, beschreibt der Vortrag ebenso wie die Lösung von Real-World-Problemen. Dabei werden Themen wie die Bereitstellung von Testumgebungen, Testplanung und Testdurchführung sowie Testdokumentation ebenso beleuchtet wie die Frage, in welchen Fällen eine Edition für Tester notwendig ist, wo es mögliche Alternativen gibt und wie verschiedene Akteure innerhalb des Projekts wie z.B. Fachabteilungen eingebunden werden.

UI-Testing mit UI Automation
Unit-Testing und Web-Testing verbreiten sich mit VSTS und anderen Testing-Tools immer mehr. Was diese Testmethoden jedoch nicht abdecken, ist quasi die „letzte Meile“, die Oberfläche der Anwendungen. Um diese in Tests einzubinden sind entweder teure Tools erforderlich, oder man nutzt das weitgehend unbekannte UI Automation Framework, das Bestandteil des .NET 3.0 Frameworks ist. Der Vortrag erläutert zunächst, wie man mit Hilfe des UI Automation Frameworks Windows- und Web-Anwendungen kontrollieren kann. Anschließend werden diese Methoden in Unit-Tests integriert, um damit automatisierte UI-Tests aufzubauen. Als krönender Abschluss wird ein UI-Test-Rekorder implementiert, mit dem UI-Aktionen aufgezeichnet und automatisiert in Unit-Test überführt werden können. Der Vortrag beschreibt neben den Möglichkeiten auch Grenzen des UI Automation Frameworks und mögliche Lösungen.

Hierarchische Workitems mit VSTS 2008 erfolgreich anwenden - Eine Einführung in den Workitem Manager Open

10.10.2008 00:56:33 | Thomas Schissler

MSDN Webcasts

Seit ein paar Tagen ist ein neuer Web-Cast online in dem ich zusammen mit Christian Binder zusammen erörtere welche Vorteile die hierarchische Organisation von Workitems bietet. Ohne schon zuviel vom Inhalt verraten zu wolle, es geht um Requirementmanagement, Traceability, Impace-Analyse und einiges mehr. Im Webcast wird ein kostenloses Tool vorgestellt mit dem bereits mit TFS 2008 hierarchische Workitems realisiert werden können.

UI-Automation ServerSide Provider zur Automatisierung eines MenuStrip

10.10.2008 00:43:23 | Thomas Schissler

Mit Hilfe des UI Automation Frameworks (UIA) können Oberflächen aus einer Testanwendung heraus "ferngesteuert" werden. Damit lassen sich z.B. UI-Tests bauen. Die Grundlagen hierzu habe ich in zwei Blogposts bzw. Webcasts beschrieben.

MSDN WebCast zum UI-Recording
MSDN WebCast zum UI-Testing mit dem UI Automation Framework

Wenn man sich mit dieser Technologie etwas intensiver beschäftigt wird man früher oder später auf ein paar Probleme stoßen. So veröffentlichen beispielsweise nicht alle Third-Party-Controls alle erforderlichen Funktionalitäten über die UIAutomation Patterns. Und leider gibt es auch bei Standard-Winforms-Controls noch ein paar Lücken. Ein Beispiel hierzu ist das MenuStrip-Control. Dieses Control bietet leider nicht die erforderlichen Events um die Auswahl eines Menüeintrags aufzuzeichnen. Und für die Auswahl eines Menüeintrages gibt es auch kein geeignetes Invoke-Pattern o.ä.

Das schöne am UI Automation Framework ist jedoch, dass man diese Funktionalitäten selber nachrüsten kann. Dies wollen wir nun am Beispiel des MenuStrips mal durchspielen. Zum Einsatz kommen sog. Serverside Provider. Wir gehen zunächst her und erstellen uns ein eigenes Control das wir von MenuStrip und entsprechenden Interfaces aus dem UIA ableiten.

public class ExtendedMenuStrip
: MenuStrip, IRawElementProviderSimple, IValueProvider 

 

Über das Interface IValueProvider geben wir an, dass das Control das ValuePattern implementieren soll. Wir verwenden hier das ValuePattern statt des InvokePatterns da wir ja angeben müssen, welches Menüelement aufgerufen werden soll.

Zunächst werden wir das Interface IRawElementProviderSimple implementieren.

 1: #region IRawElementProviderSimple
Members
 2: public object GetPatternProvider(int patternId)
 3: {
 4: if (patternId
== ValuePatternIdentifiers.Pattern.Id)
 5: {
 6: return this;
 7: }
 8: else
 9: {
 10: return null;
 11: }
 12: }
 13:  
 14: ///
<summary>
 15: ///
Get the value of properties
 16: ///
</summary>
 17: ///
<param name="propertyId"></param>
 18: ///
<returns></returns>
 19: public object GetPropertyValue(int propertyId)
 20: {
 21: if (propertyId
== AutomationElementIdentifiers.ClassNameProperty.Id)
 22: {
 23: return "ExtendedMenuStrip";
 24: }
 25: else if (propertyId
== AutomationElementIdentifiers.ControlTypeProperty.Id)
 26: {
 27: return ControlType.MenuBar.Id;
 28: }
 29:  
 30: if (propertyId
== AutomationElementIdentifiers.HelpTextProperty.Id)
 31: {
 32: return "Help
for ExtendedMenuStrip";
 33: }
 34:  
 35: if (propertyId
== AutomationElementIdentifiers.AutomationIdProperty.Id)
 36: {
 37: return this.Name;
 38: }
 39:  
 40: if (propertyId
== AutomationElementIdentifiers.IsEnabledProperty.Id)
 41: {
 42: return true;
 43: }
 44:  
 45: if (propertyId
== AutomationElementIdentifiers.ItemStatusProperty.Id)
 46: {
 47: return SelectedItemID;
 48: }
 49:  
 50: else
 51: {
 52: return null;
 53: }
 54: }
 55:  
 56: ///
<summary>
 57: ///
Get the host rawelement provider
 58: ///
</summary>
 59: public IRawElementProviderSimple
HostRawElementProvider
 60: {
 61: get
 62: {
 63: return AutomationInteropProvider.HostProviderFromHandle(Handle);
 64: }
 65: }
 66: 
 67: ///
<summary>
 68: ///
Get the provider options
 69: ///
</summary>
 70: public ProviderOptions
ProviderOptions
 71: {
 72: get
 73: {
 74: return ProviderOptions.ServerSideProvider;
 75: }
 76: }
 77:  
 78: #endregion

 

Die Methode GetPatternProvider gibt das Objekt selbst zurück, wenn ein Provider für ein ValuePattern angefordert wird. Da unser Control nur dieses Pattern implementiert, reagiert die Funktion nur auf dieses Pattern. Wir können das Control selbst zurückgeben, da dieses ja das ValuePattern implementiert. Altzernativ könnte man natürlich auch einen expliziten Provider definieren und hier zurückgeben. Die Methode GetPropertyValue gibt je nach übergebenen PropertyID einen entsprechenden Wert zurück. Hier wird z.B. die ID des Controls als AutomationID zurückgegeben. Die beiden Properties HostRawElementProvider und ProviderOptions sind readonly und geben einen Hostprovider bzw. den Typ der Providers zurück.

Die Implementierung des IValueProvider Interface ist ebenfalls recht einfach:

 1: #region IValueProvider
Members 
 2: ///
<summary>
 3: ///
Get readonly as false
 4: ///
</summary>
 5: public bool IsReadOnly
 6: {
 7: get
 8: {
 9: return false;
 10: }
 11: }
 12:  
 13: ///
<summary>
 14: ///
Set value: Invoke the click event of the item
 15: ///
</summary>
 16: ///
<param name="value"></param>
 17: public void SetValue(string value)
 18: {
 19: object[]
param = new object[1];
 20: param[0]
= null;
 21: ToolStripMenuItem
toolStripMenuItem = getToolStripMenuItemByName(this.Items, value);
 22: if (toolStripMenuItem
!= null)
 23: toolStripMenuItem.GetType().GetMethod("OnClick",
BindingFlags.NonPublic | BindingFlags.Instance).Invoke(toolStripMenuItem, param);
 24: }
 25:  
 26: ///
<summary>
 27: ///
Get the ID of the selected item
 28: ///
</summary>
 29: public string Value
 30: {
 31: get
 32: {
 33: return SelectedItemID;
 34: }
 35: }
 36: #endregion

 

Entscheidend ist hier die Methode SetValue. Hier ermitteln wir das entsprechende Element innerhalb des MenuStrips (ToolStripMenuItem) und rufen hier einen Click-Event auf. Da die OnClick Methode nicht public ist, müssen wir hier Reflection verwenden um diese aufrufen zu können (siehe auch Events von WinForms Controls von Außen aufrufen). Das Aufrufen des Events ist an dieser Stelle notwendig, da ja mehrere Eventhandler registriert sein können und die wollen wir alle aufrufen. Durch den Click-Event verhält sich das Control am ähnlichsten zum Anklicken in der UI.

Nun brauchen wir noch einen Event der ausgelöst wird wenn ein Menüeintrag ausgewählt wird.

 1: ///
<summary>
 2: ///
Set eventhandlers
 3: ///
</summary>
 4: ///
<param name="items"></param>
 5: public void SetExtendedMenuStripEventHandlers(ToolStripItemCollection
items)
 6: {
 7: for (int i
= 0; i <= items.Count - 1; i++)
 8: {
 9: ToolStripMenuItem
toolStripMenuItem = items[i] as ToolStripMenuItem;
 10: if(toolStripMenuItem
!= null)
 11: {
 12: toolStripMenuItem.Click
+= new EventHandler(ItemRaiseAutomationEvent);
 13: SetExtendedMenuStripEventHandlers(toolStripMenuItem.DropDownItems);
 14: }
 15: }
 16: }
 17:  
 18: ///
<summary>
 19: ///
Raise automation event
 20: ///
</summary>
 21: ///
<param name="sender"></param>
 22: ///
<param name="e"></param>
 23: private void ItemRaiseAutomationEvent(object sender,
EventArgs e)
 24: {
 25: if ((AutomationInteropProvider.ClientsAreListening))
 26: {
 27: AutomationEventArgs
args = new AutomationEventArgs(InvokePatternIdentifiers.InvokedEvent);
 28: this.SelectedItemID
=((ToolStripMenuItem)sender).Name;
 29: AutomationInteropProvider.RaiseAutomationEvent(InvokePatternIdentifiers.InvokedEvent, this,
args);
 30: }
 31: }

 

Die Methode SetExtendedMenuStripEventHandlers registriert auf jedem ToolStripMenuItem einen EventHandler. Dieser löst dann den AutomationEvent aus. Hier übergeben wir im Feld SelectedItemID den Name des ToolStripMenuItems das angeklickt wurde.

Nun müssen wir noch die Methode wndProc überschreiben damit diese bei WM_GETOBJECT den entsprechenden AutomationProvider zurückgibt.

 1: ///
<summary>
 2: ///
Process Windows-based messages
 3: ///
</summary>
 4: ///
<param name="m"></param>
 5: [PermissionSetAttribute(SecurityAction.Demand,
Unrestricted = true)]
 6: protected override void WndProc(ref Message
m)
 7: {
 8: //
0x3D == WM_GETOBJECT
 9: Int32
param = 0;
 10: if (Int32.TryParse(m.LParam.ToString(), out param))
 11: {
 12: if ((m.Msg
== 0x3D) && (param == AutomationInteropProvider.RootObjectId))
 13: {
 14: m.Result
= AutomationInteropProvider.ReturnRawElementProvider(
 15: Handle,
m.WParam, m.LParam, (IRawElementProviderSimple)this);
 16: return;
 17: }
 18: }
 19: base.WndProc(ref m);
 20: }

Das so erstellte Control kann nun statt des normalen MenuStrip Controls verwendet werden und ist nun über UI Automation ansprechbar. Die fertige Solution inkl. dem UI-Recoder kann hier heruntergeladen werden:

>

Vielleicht noch kurz eine Anmerkung weshalb der Zugriff auf die ToolStripItems etwas umständlich gelöst wurde. Eigentlich wäre es doch einfach der direkt auf dem ToolStripMenuItem den Event auszulösen. Dann könnte der Recoder auch direkt einen Invoke auf dem ToolStripMenuItem generieren. Dazu müsste dann aber der ToolStripMenuItem abgeleitet werden und dann wird's aber mit der Designer-Unterstützung problematisch. Denn um das Control soweit umzubauen, dass im Designer beim Hinzufügen von ToolStripMenuItems zum MenuStrip der abgeleitete Typ verwendet wird ist ein deutlich höherer Aufwand notwendig als das Ganze über den MenuStrip laufen zu lassen.

WPF : Geheimnisse auf der Spur

09.10.2008 15:05:00 | Gregor Biswanger

Beim Blogeintrag vom 07.10.2008 ging es darum, das WPF für die kommenden Multi-Touch-Computer, wie der Tisch "Microsoft Surface", die Betriebssysteme Windows 7 und Windows Mobile 7, eingesetzt wird. Auch geplante Front-End Anwendungen, sollten für die Zukunft gezielt Muli-Touch tauglich sein.

 

Doch bleiben einige Fragen vorenthalten, wie können Event-Funktionen von mehreren Fingern verarbeitet werden? Warum ist bei dem derzeitigen WPF vom .NET-Framework 3.5 SP1 keines dieser Events enthalten?

 

Doch dieser Geheimnisse mal auf der Spur verfolgt, wurden Interessante Funde gemacht. Für Microsoft Surface gibt es bereits ein SDK (Software Development Kit) von Microsoft. Leider handelt es sich hier um eine Kostenpflichtiges Surface SDK. Auch zum Debuggen kann ein Emulator verwendet werden, doch bringt es ohne Multi-Touch tauglichen Monitor überhaupt nichts. Dafür muss anschließend ein richtiger Surface-Tisch an denn Computer angeschlossen werden, das derzeit zusätzlich 10.000 $ Kostet. Sehr unterhaltsam ist ein Video von Microsoft, das Demonstriert, wie ein "Hello World" mit WPF für Surface entwickelt wird.

http://video.msn.com/video.aspx?mkt=en-us&vid=6acfce98-17d3-416f-b2c0-679356c5ce79

 

Sehr bemerkenswert ist zu beobachten, wie die XAML-Definition für ein Multi-Touch Control aussieht. Hier der ausschnitt:

 

 

 

Abb. 1: Der Microsoft Surface beim Debugging vom "Hello World!"-XAML Code.

 

Fazit

Obwohl wir jetzt dem Geheimnis langsam auf der Spur gefolgt sind, bleiben dessen ungeachtet weitere Fragen offen. Wie sieht es dann mit der Entwicklung für Windows 7 und Windows Mobile 7 aus? Möglicherweise wird es auch dementsprechende SDK´s geben. Aber es ist wiederum gut vorstellbar, das diese Funktionen ab denn .NET-Framework 4 oder später enthalten seien wird. Da folglich Windows 7 schon für großes Interesse sorgt.

 

Die Zukunft von .NET – Eine Analyse der PDC Session Abstracts

09.10.2008 00:36:26 | Mathias Raacke

Aus den Beschreibungen der PDC Sessions lassen sich schon jetzt einige Fakten über .NET 4.0 bzw. die Zukunft der Microsoft Plattform im Allgemeinen entnehmen. Die folgende Liste enthält meine Interpretationen einiger Session Abstracts, ich kann mich auch irren. Die Infos die sowieso schon auf verschiedenen Blogs (blogs.msdn.com usw.) aufgetaucht sind habe ich ausgelassen:

  • Common Language Runtime “vNext”
  • Unterstützung für mehrere CLR-Versionen innerhalb eines Prozesses
  • “Code Contracts” – was auch immer das bedeutet, ich vermute etwas in Richtung Design by Contract
  • Neue Klassen in der Base Class Library, z.B. BigInteger, Tuples und Bäume
  • Optimierter Garbage Collector, um Mehrprozessorsysteme effizienter auszunutzen

(http://channel9.msdn.com/pdc2008/PC49/)

Typsystem

Änderungen am Typsystem, die Versionierung und Deployment vereinfachen sollen, und z.B. die Arbeit mit COM Komponenten ohne Primary Interop Assemblies ermöglichen sollen

(http://channel9.msdn.com/pdc2008/TL02/)

Entity Framework

Wird einfacher und soll Model Driven Development (POCO?) besser unterstützen.

Interessant ist hier aber auch, was nicht in den Abstracts steht – es gibt bisher keine Session zu LINQ to SQL Neuerungen.

(http://channel9.msdn.com/pdc2008/TL20/)

Sync Services

Synchronisierung mit der “Cloud”. Kann vieles bedeuten, z.B. Live Mesh oder Data Services. Da die Session nicht mit “Live Mesh” getaggt wurde, obwohl es ein Tag dafür gibt, vermutlich eher letzteres. Dafür spricht auch, dass die Sync Services auch in einer SQL Server Data Services Session erwähnt werden.

(http://channel9.msdn.com/pdc2008/TL30/)

Cloud Services

Mit 33 Sessions eindeutig ein (der?) Schwerpunkt der PDC, gefolgt von Live Services mit 14, die ja auch eine “Coud”-Technologie sind, und ein “Live Framework” mit 10 Sessions. Dann wären da noch die SQL Server Data Services mit 7 Sessions. Dazu kommen noch Sessions zu “Windows Strata”, die kurz in der Agenda aufgetaucht, aber dann wieder verschwunden sind.

Windows CardSpace

Die nächste Version hat den Codenamen “Geneva”, und es gibt ein Server Produkt dazu, den “Geneva” Server. Der Name taucht aber nur in der Kurzfassung der Session auf, die über die Session Liste angezeigt wird. Auf der Details-Seite geht es dann nur um “Zermatt”.

Oslo

Zu Oslo gibt es gerade mal 5 Sessions, und aus den Abstracts lässt sich nichts entnehmen, was nicht schon ansatzweise in verschiedenen Blogs und Artikeln erwähnt wurde. Schade.

VB.NET

Weitere LINQ-Features (wie auch immer diese aussehen mögen), vereinfachter Syntax, vielleicht auch Metadata-Programming und Scripting. Viele Infos sind das leider nicht, aber mehr als zu C#, wo der Abstract nichts neues verrät.

(http://channel9.msdn.com/pdc2008/TL12/)

Windows Server vNext

Unterstützung für ASP.NET in der Server Core Variante – nett!

(http://channel9.msdn.com/pdc2008/ES06/)

Windows 7

Leider nichts neues, zu den “interessanten” Sessions steht als Beschreibung nur “TBD”. Aus den Titeln kann man nur entnehmen, dass es z.B. neue APIs für Text, Grafik, Suche und Shell geben wird.

 

Ich bin sehr gespannt was Microsoft denn nun wirklich auf der PDC ankündigen wird. Schade dass ich nicht dabei sein kann.

Technorati-Tags: ,,

Xtopia 08 und Technical Summit 2008: Teilnehmer-Banner und: warum sollte ich dabei sein?

08.10.2008 16:10:59 | Kay Giza

Kollege Christian Binder hat vor einigen Tagen einen sehr interessanten Beitrag zur Technical Summit 2008 - Keynote geschrieben, ich zitiere einige Zeilen: In der Keynote greifen wir unter anderem ein Thema auf, was in naher Zukunft fast jedem Entwickler Kopfschmerzen bereiten könnte: Intel hat für 2011 Prozessoren mit 80 Cores angekündigt, was nichts anderes bedeutet.. Mehr Informationen zu Christians Beitrag 'Warum muss ich hin? Keynote Technical Summit 2008' in diesem Blogposting. Apropos hingehen, sind Sie Teilnehmer der Xtopia 08 oder des Technical Summit 2008? Dann nutzen Sie doch folgende Images... (...mehr)

This post is powered by www.Giza-Blog.de | Giza-Blog.de: RSS Feed
Visit:  MSDN Online | Kostenfreie MSDN Service-Hotline für Entwickler
Daily News on MSDN:   MSDN Aktuell
© Copyright 2006-2008 Kay Giza. All rights reserved. Legal

Migrating from LINQ to SQL to Entity Framework: Eager Loading

08.10.2008 07:37:00 | Ozgur Aytekin

Since the release of the Entity Framework, we have received a number of requests for details and best practices from customers who are looking at migrating their LINQ to SQL based applications to the Entity Framework. In order to address this topic, we are beginning a new series of blogs posts that will look at various aspects of migration.

This first post in the series covers Eager Loading in LINQ to SQL, and the steps for migrating to equivalent constructs in the Entity Framework in .NET 3.5 SP1. Subsequent posts will cover Deferred Loading, LINQ specifics, concurrency, mapping, stored procedure support, and other topics. As we continue to approach the next release of the Entity Framework we will revisit how some of the new features aid in migration.

http://blogs.msdn.com/adonet/archive/2008/10/07/migrating-from-linq-to-sql-to-entity-framework-eager-loading.aspx

"Touchless" - Multitouch mit einer Webcam

08.10.2008 01:58:38 | Robert Mühsig

Die Jungs von den “Office Labs” haben wieder eine neue coole Technologie veröffentlicht: Touchless - Multitouch mit einer normalen Webcam. Es hat Ähnlichkeiten mit der Wiimote - nur dass man diesmal als “Bewegungssensor” auf die Webcam setzt und markante Dinge erkennen lässt.

Das Video zeigt die Funktionalität ganz gut:

Das ganze ist als Open Source SDK (mit Demoanwendung) auf Codeplex zu finden. Gestensteuerung ahoi!

ShareThis

Neue BuildTasks auf CodePlex

08.10.2008 01:11:58 | Thomas Schissler


Das MSBuild Extension Pack bietet eine Sammlung von BuildTasks für MSBuild und damit natürlich auch TeamBuild die kostenlos von CodePlex heruntergeladen werden können. Diese BuildTasks bieten verschiedene Operationen im Rahmen eines Builds wie z.B. das Zippen und Vermailen von Dateien, Prüfen des Buildprojektes mit FxCop oder StyleCop, verschiedene Dateioperationen und vieles mehr. Die Bibliothek ist gut strukturirert und dokumentiert.

MSBuild Extension Pack - Home

Events von WinForms Controls von Außen aufrufen

08.10.2008 00:41:57 | Thomas Schissler

Möchte man einen Event eines Controls per Code auslösen und somit alle registrierten Delegates aufrufen, wie es beim eigentlichen Auslösen des Events passiert, dann kann dieses Beispiel helfen. Jedes Control besitzt für seine einzelnen Events eine Methode den event auszulösen, z.B. OnClick(EventArgs e). Die Methoden sind allerdings private und können damit von außerhalb des Controls nicht so einfach aufgerufen werden. Bei einem einfachen Control wie z.B. einem Button geht das einfach durch Ableitung:

 1: public partial class CustomButton
: Button 
 2: {
 3: public CustomButton()
 4: {
 5: InitializeComponent();
 6: }
 7:  
 8: public void RaiseClickEvent(EventArgs
e)
 9: {
 10: base.OnClick(e);
 11: }
 12: }

Etwas schwieriger wird es bei komplexeren Controls, z.B. einem MenuStrip. Möchte man den Click-Event eines ToolStripMenuItem aufrufen, müsste man ja das ToolStripMenuItem ableiten, was aber zur Folge hätte, dass das komplette MenuStrip-Control umbauen muss. Hier kann man mit Hilfe von Reflection eine bessere Lösung implementieren. Bei dieser Lösung wird nur das MenuStrip abgeleitet und um eine RaiseClickEvent-Methode erweitert der als Parameter ein ToolStripItem entgegen nimmt. Auf diesem wird dann per Reflection die Private-Methode OnClick aufgerufen.

 1: public partial class CustomMenuStrip
: MenuStrip 
 2: {
 3: public CustomMenuStrip()
 4: {
 5: }
 6: 
 7: public void RaiseClickEvent(ToolStripItem
m)
 8: {
 9: Type
t = m.GetType();
 10: object[]
para = new object[1];
 11: para[0]
= null;
 12: t.GetMethod("OnClick",
BindingFlags.NonPublic | BindingFlags.Instance).Invoke(m, para);
 13: } 
 14: }

Torsten Weber im Oktober zu Gast bei der .NET Developer Group Koblenz

07.10.2008 22:22:39 | Andre Kraemer

Die .NET User Group Koblenz freut sich, am 23. Oktober, mit Torsten Weber einen weiteren Top Speaker zu Gast zu haben. Torsten ist Microsoft MVP, Buchautor, Basta-Speaker und Leiter der .NET User Group Leipzig.

Inhalt des Vortrags:

Mobile Computing ist schwer, denn dazu benötigt man einerseits komplexes Fachwissen und andererseits mindestens ein mobiles Gerät. Falsch; Mobile Computing ist nicht so schwer, wie man vielleicht denkt. Viel schwerer ist es, die Angst davor zu verlieren. Genau das bietet Torsten Weber in seinem „Wo und wie beginne ich"-Vortrag. Da die Begriffe AJAX und Web Irgendetwas.Null derzeit auf Entwickler viel magische Anziehungskraft besitzen und manche Entwickler lieber bei den "guten alten" Webanwendungen bleiben als bei Windows Forms, gibt es für alle Schmackes oben drauf: Die Unterstützung vom Internet Explorer Mobile als auch von Windows Forms für AJAX & Co. Abgerundet wird alles mit Best Practices bei mobilen Anwendungen.

Über den Sprecher:

Torsten Weber hat sich seit seinem ersten mobilen Gerät vor über einem Jahrzehnt in die Mobilität verliebt und schwört mit Beginn der ersten Version des .NET Compact Frameworks auf genau diese Plattform. Als Wirtschaftsinformatiker, gelernter Bankkaufmann, Technologieberater und Querdenker hat er langjährige Berufserfahrung in der Softwareentwicklung, insbesondere wenn es um betriebswirtschaftliche Gesamtzusammenhänge geht. Ob bei seiner Tätigkeit bei Microsoft als Project Manager, ob als Buchautor oder in seinem Engagement in der Leipziger .NET User Group mit Alexander Groß bis hin zu seinem MVP für Device Application Development – es geht ihm immer ein wenig um "so wird das Ganze dann mobil!".

Anmeldungen werden unter: https://www.xing.com/app/events?op=detail;id=259135; angenommen. Näheres zur .NET Developer Group Koblenz kann unter http://www.dnug-koblenz.de nachgelesen werden.



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

You receive error code 0x8007F0DA when use the Windows Update Web site or the Microsoft Update Web site to install updates:

07.10.2008 19:38:00 | Ozgur Aytekin

When you try to install updates from the Windows Update Web site or from the Microsoft Update Web site, you receive the following error code: 0x8007F0DA

Microsoft Update
Microsoft Windows Update
Microsoft Windows XP Professional
Microsoft Windows XP Home Edition
Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
Microsoft Windows Server 2003, Enterprise x64 Edition
Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems
Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
Microsoft Windows Server 2003, Datacenter x64 Edition
Microsoft Windows Server 2003, Datacenter Edition for Itanium-Based Systems
Microsoft Windows Server 2003, Standard Edition (32-bit x86)
Microsoft Windows Server 2003, Standard x64 Edition
Microsoft Windows 2000 Advanced Server
Microsoft Windows 2000 Datacenter Server
Microsoft Windows 2000 Professional Edition
Microsoft Windows 2000 Server


http://support.microsoft.com/kb/958050

A dedicated complete memory dump file may not be successfully generated if the volume that stores the dedicated dump file has insufficient free space

07.10.2008 19:36:00 | Ozgur Aytekin

Consider the following scenario on a Windows Vista-based or Windows Server 2008-based computer:
- You configure the computer to generate a complete memory dump file when the system crashes.
- You use the DedicatedDumpFile registry entry to specify the location for the dump file.
In this scenario, after the system crashes, the memory dump file may not be successfully generated. Instead, you find a file that is named dump.tmp file at the location that you specified for the dedicated dump file.

This problem occurs if both following conditions are true:
- The dedicated dump file and the system memory dump file are in the same volume.
- The free space on the volume that you specified for the dedicated dump file is less than two times the physical memory size of the computer.

Windows Vista Enterprise 64-bit Edition
Windows Vista Home Basic 64-bit Edition
Windows Vista Home Premium 64-bit Edition
Windows Vista Ultimate 64-bit Edition
Windows Vista Business
Windows Vista Business 64-bit Edition
Windows Vista Enterprise
Windows Vista Home Basic
Windows Vista Home Premium
Windows Vista Ultimate
Windows Server 2008 Datacenter without Hyper-V
Windows Server 2008 Enterprise without Hyper-V
Windows Server 2008 for Itanium-Based Systems
Windows Server 2008 Standard without Hyper-V
Windows Server 2008 Datacenter
Windows Server 2008 Enterprise
Windows Server 2008 Standard

http://support.microsoft.com/kb/957517

No progress bar is displayed when you put a Windows Vista-based computer to sleep or into hibernation

07.10.2008 19:34:00 | Ozgur Aytekin

When you put a Windows Vista-based computer to sleep or into hibernation, the system does not display a progress bar that indicates the sleep or hibernation progress as it does in Windows XP.

Windows Vista Starter
Windows Vista Home Basic
Windows Vista Home Premium
Windows Vista Enterprise
Windows Vista Business
Windows Vista Ultimate
Windows Vista Business 64-bit Edition
Windows Vista Ultimate 64-bit Edition
Windows Vista Home Premium 64-bit Edition
Windows Vista Home Basic 64-bit Edition
Windows Vista Enterprise 64-bit Edition

http://support.microsoft.com/kb/958103

A SharePoint Developer Introduction - Content Types

07.10.2008 18:50:00 | Ozgur Aytekin

After completing this lab, you will be better able to create a Content Type for managing online events, add customized pages, and create and deploy a Content Type using the SharePoint API.

http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032381768&EventCategory=3&culture=en-US&CountryCode=US

Troubleshooting Silverlight Data Access

07.10.2008 18:48:00 | Ozgur Aytekin

Understanding data access in Microsoft Silverlight can be challenging, particularly if you are learning to use Silverlight. In this webcast, we examine the most common pitfalls developers face when getting started with Web services, syndicated data, and other types of data access within Silverlight 2. We explain the things you need to know and show how to use some helpful tools that can save you many hours when trying to solve problems. This webcast is 95 percent demonstration, so come prepared with questions.

http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?culture=en-US&EventID=1032386657&CountryCode=US

Visual Studio 2010 and .NET Framework 4.0 Overview

07.10.2008 18:25:00 | Ozgur Aytekin

Microsoft präsentiert auf dem MSDN Plattform die ersten Informationen über die neuen Produkte Visual Studio 2010 und .NET Framework 4.0.

Die folgenden Themen werden in kürze beschrieben:
• Democratizing Application Lifecycle Management
• Enabling emerging trends
• Inspiring developer delight
• Riding the next generation platform wave
• Breakthrough Departmental Applications

Microsoft kündet an, dass sie In den nächsten Monaten noch mehr Details über das Thema „Democratizing Application Lifecycle Management“ veröffentlichen werden.

Weitere Informationen findet ihr unter:
http://msdn.microsoft.com/en-us/vstudio/products/cc948977.aspx

NHibernate Collections - Dschungelcamp für Einsteiger

07.10.2008 18:16:21 | Rainer Schuster

Ich beschäftige mich ja jetzt schon seit zwei bis drei Wochen mit NHibernate, aber über die Verwendung der Collections bin ich bisher immer wieder gestolpert. Ich war mir also noch immer nicht sicher, wann ich welche Collection benutzen sollte. Karl Seguin sei gedankt für seinen Blogpost, indem er die verschiedenen Begrifflichkeiten für mich verständlich veranschaulicht hat. Aus C++ Zeiten kenne ich ja noch die ganzen verschiendenen Collections aus der STL, somit hatte ich auch gedacht komme ich mit NHibernate ohne Probleme klar. Aber es kam anders und ich musste mir überlegen, was ich wann benutzen muss.

.NET Typ vs. NHibernate

Vorweg sei für diejenigen erwähnt, die es nicht wissen, dass es im .NET-Framework keine Implementierung und kein Interface für Set gibt. Daher greif ja NHibernate bekannter maßen auf Iesi.Collections zu. Soweit auch alles noch verständlich. Hinzu kommt ja aber noch, dass NHibernate nicht diese Implementierungen verwendet, sondern eben eigene, spezialisierte Collections um das LazyLoading durchführen zu können. Soweit auch noch veständlich. Was ich nicht nicht verstanden hatte war wie ich von meinem Domänenmodel (die Entitys und ValueObjects) über mein Mapping auf den passenden Collection-Typ komme.

Gegenüberstellung

Collection-Typ NHibernate Terminologie DomänenModel
List, List<T> Bag IList

Bedeutung:
Ein Item kann mehrfach vorkommen, wie bei einem Multiset. z.B. Meier, Hans könnte zwei mal drinnen stehen. Ein Item wird nur durch den Index unterschieden)

Aus Iesi.Collections

  • ListSet (schnell für Count < 10)
  • SortedSet (sortierbar)
  • HashedSet (schnell für größere Sets)
  • HybridSet (zuerst ListSet, dann HashedSet)
Set ISet

Bedeutung:
Jedes Element darf nur ein einziges mal in der Collection vorkommen, ansonsten gibt es eine Indexverletzung.

 

Codebeispiel

 

   1: using Iesi.Collections.Generic;
   2:  
   3: namespace DomainModel
   4: {
   5:     public class Customer : IdentityFieldProvider<Customer>
   6:     {
   7:         public virtual string Name { get; set; }
   8:         public virtual Address Adresse { get; set; } 
   9:         public virtual ISet<Person> Ansprechpartner { get; set; }
  10:  
  11:         public Customer ()
  12:         {
  13:             Ansprechpartner = new HashedSet<Person>();
  14:         }
  15:     }
  16: }

 

Fazit

Keine Große Sache, wer sich das einfach mal visualisiert. Nach einem kurzen Denkprozess und der Gegenüberstellung sollte es nicht mehr schwer sein die Richtige Wahl zu treffen.

Expression Media 2 ServicePack 1 für Mac und Windows verfügbar

07.10.2008 17:18:00 | Steffen Ritter

Das wird Fotoprofis und Multimediagestalter freuen: Ab sofort ist ServicePack 1 für das Fotokatalogisierungs und Digital Asset Management-Tool Expression Media 2 verfügbar.  Im Servicepack 1 für Expression Media 2 wurden über 400 Bugs behoben, viele Funktionen verbessert und neue Funktionen implementiert.

Die Neuerungen in Expression Media 2 SP1 für Mac und Windows im Schnelldurchlauf:

Hierarchische Schlüsselwörter

  • Beim Entfernen eines übergeordneten Begriffes werden dessen untergeordnete Begriffe automatisch entfernt.
  • Die Interaktion zwischen hierarchischen Schlüsselwörtern und in einer flachen Liste enthaltenen Schlüsselwörtern wurde verbessert.
  • Das Verhalten von Drag & Drop zwischen übergeordneten und untergeordneten Begriffen wurde verbessert.

Geo-Tags/Virtual Earth

  • Im Virtual Earth-Fenster können GPS-Daten mittels Drag & Drop vergeben werden.
  • Beim Ziehen eines Bilds in ein Virtual Earth-Fenster werden Schlüsselwörter angezeigt.
  • Das GPS-Anmerkungsfeld kann nun vom Benutzer bearbeitet werden.
  • GPS-Orte können aus URLs mit eingebetteten Informationen zu Längen- und Breitengrad gezogen werden.
  • Es wurden weitere Breiten- und Längengradformate hinzugefügt.
  • Breiten- und Längengrad-Tags können zur Anzeige in HTML-Katalogen hinzugefügt werden.

Unterstützung für RAW-Bilder

  • In der Windows-Version steht nun eine Einstellung zur Verfügung, mit der Benutzer wählen können, ob Windows Imaging Component (WIC) für RAW-Bilderverwendet wird. Mit dieser Option kann möglicherweise die Farbwiedergabe verbessert oder die Anzeige beschleunigt werden.
  • Sie können nun mithilfe von Distributed Authoring and Versioning (WebDAV) Medien katalogisieren und verwalten, die in einem Netzwerk zur gemeinsamen Nutzung freigegeben sind.

Informationen (Übersichtspanel)

  • Die Vorlagenereignisdaten werden korrekt gespeichert.
  • Details zum Autor werden korrekt angezeigt.
  • Das mit einer Anmerkung versehene Datum wird beim Importieren der NEF-Dateien korrekt angezeigt.

Katalogbearbeitung

  • Beim Zurücksetzen von Pfaden werden lange Pfad- und Dateinamen unterstützt.
  • Es werden keine unerwarteten Duplikate mehr erstellt.
  • Der zuletzt verwendete geöffnete Ort wird nun in Expression Media gespeichert.
  • Die Funktion Katalogfinder zeigt den vollständigen Pfad von Bilddateien an.

Import

  • In HTML-Katalogen werden jetzt große Dateien, wie z. B. Bilder mit 16000 x 8000 Pixel, unterstützt.
  • Die Renderingleistung für NEF-Dateien von Nikon wurde verbessert.
  • Für ARW-Dateien werden die EXIF-Daten (Exchangeable Image File) angezeigt.
  • Die Importgrenze für Medien in den Optionen des Kontextmenüs von Windows Explorer wurde angehoben.
  • Probleme beim Import von Kameradatenträgern wurden behoben.

Leuchtkasten

  • Probleme beim Zeichnen mehrerer Elemente wurden behoben.
  • Das Verhalten der Löschen-Schaltfläche wurde geändert.
  • Die Position des Bildschirmlupenzeigers wurde korrigiert.
  • Probleme mit Tastenkombinationen wurden behoben.
  • Die Benutzerfreundlichkeit der Anwendung beim Wechsel zwischen Vollbild- und Fenstermodus wurde verbessert.

Diverse neue Funktionen und Verbesserungen

  • Der Hilfeinhalt wurde in mehr als 50 Punkten aktualisiert.
  • Das Feld Datumssuche des Bereichs Organisieren unterstützt nun die Navigation nach Monat, Jahr und Tag.
  • Zeitweise trat das Problem auf, dass nur einige importierte Dateien die richtigen XMP-Anmerkungen (Extensible Metadata Platform) aufwiesen. Dieses Problem wurde behoben.
  • Mehrere Probleme mit Unicode-Dateinamen und abgeschnittenen Dateinamen wurden behoben. So wurden z. B. Probleme bei der Anzeige oder Auflösung dieser Dateinamen behoben.
  • In der Windows-Version wird nun der Informationsbereich für Expression Media-Dateien zur Verwendung mit Adobe-Anwendungen, darunter auch Photoshop, installiert.
  • Mehrere Probleme im Zusammenhang mit dem Import bzw. Export von EXIF-Metadaten wurden behoben. Beispielsweise wurden beim Importieren von RAW-Bildern von Canon oder Sony manchmal falsche EXIF-Informationen generiert.
  • Einige Farbprofile wurden manchmal falsch in Berichten angezeigt. Dieses Problem wurde behoben. So wurde z. B. das Farbmanagement für NEF-Bilder von Nikon in einigen Situationen verbessert.
  • In früheren Versionen von Expression Media und iView MediaPro konnte ein Katalog mit einem Kennwort geschützt werden. Diese Option wurde entfernt, um Benutzern die Möglichkeit zu geben, persönliche Daten mit einem sichereren Verfahren zu schützen. Weitere Informationen finden Sie in der Hilfe zu Expression Media.

Weitere Informationen zu Expression Media 2 gibt es auf der deutschen Website: http://www.microsoft.com/germany/expression/products/overview.aspx?key=media 

Windows- und Macversion des ServicePack 1 für Expression Media 2 liegen hier zum Download bereit: http://www.microsoft.com/downloads/results.aspx?pocId=&freetext=Expression%20Media%202&DisplayLang=de

MSDN Ticker [Video]

07.10.2008 10:55:56 | Kay Giza

Gestern hatte ich kurz über 'MSDN Ticker' berichtet. Ein Kollege der gerade mit den verschiedensten Silverlight-Versionen spielt, hat darum gebeten ihm mal einen Screenshot zu schicken. Ich habe eben fix ein Video gemacht, merke gerade die Qualität ist schlecht (zu viel codiert ;-)) - aber es sollte reichen und die Zeit für die Erstellung sollte nicht verschwendet gewesen sein :) (... mehr)

This post is powered by www.Giza-Blog.de | Giza-Blog.de: RSS Feed
Visit:  MSDN Online | Kostenfreie MSDN Service-Hotline für Entwickler
Daily News on MSDN:   MSDN Aktuell
© Copyright 2006-2008 Kay Giza. All rights reserved. Legal

Nicht immer ist die Migration von Unittests im TFS der beste Weg: Der Unit Test Result Converter hilft

07.10.2008 10:25:59 | Christian Binder

TFS bringt sein eigenes Unittest Framework mit. In der Praxis gibt es in aktiven Projekten aber sehr oft schon gewachsene komplexe Unit Test Infrastrukturen, die nicht mal einfach so migriert werden können. Dennoch bietet es sich an die Testergebnisse im TFS zu verwalten und somit z.B. die Reporting Features voll zu nutzten. Wer also sein eigenes Testframework nutzen möchte und die Ergebnisse der Tests im TFS mit allen Vorteile nutzen möchte, sollte sich den Unit Test Converter mal anschauen. Besser wäre eigentlich  Unit Test Result Converter :-)  

http://tfsblog.de/2008/09/29/einbindung-verschiedener-testplattformen/

Viel Spass

Chris

Neue BuildTasks auf CodePlex

07.10.2008 08:04:29 | Thomas Schissler


Das MSBuild Extension Pack bietet eine Sammlung von BuildTasks für MSBuild und damit natürlich auch TeamBuild die kostenlos von CodePlex heruntergeladen werden können. Diese BuildTasks bieten verschiedene Operationen im Rahmen eines Builds wie z.B. das Zippen und Vermailen von Dateien, Prüfen des Buildprojektes mit FxCop oder StyleCop, verschiedene Dateioperationen und vieles mehr. Die Bibliothek ist gut strukturirert und dokumentiert.

MSBuild Extension Pack - Home

Das Internet-Archiv als Zeitraffer

07.10.2008 00:02:40 | Robert Mühsig

Von dem Google Zeitraffer Video war ich doch etwas angetan und habe mir gedacht, dass man sicherlich ein Teil davon automatisieren kann. Rausgekommen ist mein kleines “WebHistoryTimeline” Projekt, welches als Datenquelle das “Internet Archive” nutzt.

Dabei hole ich mir über RegEx alle Links heraus und rufe diese Links über die WebBrowser Klasse auf und speichere die gerenderte Seite im Dateisystem.

image

Die Projektstruktur:

image

Model beschreibt einfach unsere “Objektstruktur”. Der Service macht hier nur ein kleine Überprüfung ob die eingegeben URLs mit “http://” beginnen - quasi etwas Validierung. Im Data passiert das eigentlich interessante:

(ich bin kein RegEx Profi, sondern eher ein blutiger Anfänger und wollte schnell zu Ergebnissen kommen) :

        public Website GetWebsite(string url)
        {
            string archiveUrl = "http://web.archive.org/web/*/" + url;
            HttpWebRequest rq = (HttpWebRequest)WebRequest.Create(archiveUrl);
            HttpWebResponse response = (HttpWebResponse)rq.GetResponse();
            StreamReader reader = new StreamReader(response.GetResponseStream());
            string html = reader.ReadToEnd();

            Website resultWebsite = new Website();
            resultWebsite.Url = url;

            MatchCollection matchs = Regex.Matches(html, @"<a.href=.http://web.archive.org/web/\d.*?</a>");
            foreach (Match match in matchs)
            {
                ArchiveWebsite archive = new ArchiveWebsite();
                archive.ArchiveUrl = Regex.Match(match.Value, @"http://web.archive.org/web/\d*").Value + "/" + url;
                archive.Date = DateTime.Parse(Regex.Match(match.Value, @"\w\w\w\s\d\d,\s\d\d\d\d").Value);
                resultWebsite.ArchiveWebsites.Add(archive);
            }

            return resultWebsite;
        }

Die “WinApp” und die “ConsoleApp” sind zwei Demoanwendungen, wobei die Konsolenapplikation die Bilder auf die Festplatte speichert:

image

Das ganze ist nicht besonders toll und Multithreading fehlt auch ;) - allerdings hat man hinterher folgendes Ergebnis (bei der Microsoft Seite)

image

Insgesamt sind es bei der Microsoftseite über 1300.

Da das vielleicht ein nettes Spielzeug für den einen oder anderen ist, werde ich den Sourcecode auf Codeplex veröffentlichen. Leider kann ich das gerade dort nicht einchecken, sodass ich erstmal nur die “Download-Variante” anbiete:

[ Download Source Code ]

Viel Spaß :)

ShareThis

NHibernate Mapping der Entitäten - Möglichkeiten

06.10.2008 18:31:28 | Rainer Schuster

Wer sich mit DDD beschäftigt wird schnell darauf kommen, dass POCOs der ideale Einsatz für das Domänenmodel sind. Welche Möglichkeiten habe ich nun, aus meinem DomainModel das aus POCOs besteht zu meinem Mapping zu kommen?

Die Vor- und Nachteile liegen dabei für mich auf der Hand.

  1. NHibernates hbm.xml (per Hand)
    1. Refactoring ist fehleranfällig, oder anpassen des Domänenmodels nicht unterstützt wird. Änderungen müssen manuell im XML nachgezogen werden
    2. Keine grafische Unterstützung
    3. POCOs möglich
  2. ActiveRecord (per Hand)
    1. Keine POCOs. Entitäten werden mit Attributen dekoriert. Konfiguration wird automatisch erstellt.
    2. Keine grafische Unterstützung
    3. Übersichtliche Konfiguration und "inplace"
    4. Refactoring kann Fehleranfällig sein
  3. ActiveWriter (GUI für ActiveRecord)
    1. Keine POCOs. Entitäten werden mit Attributen dekoriert. Konfiguration wird automatisch erstellt.
    2. Übersichtliche Konfiguration und "inplace"
    3. Drag & Drop vom Server-Explorer möglich
    4. Refactoring über Designer einfach möglich
  4. Fluent NHibernate (per Hand, aber im Code)
    1. POCOs möglich
    2. Keine grafische Unterstützung
    3. Refactoring gut Unterstützt da im Code
    4. Nicht so verbose wie XML (leichter lesbar, verständlicher)
    5. Sehr leicht Testbar

Und dabei bin ich bei meinem Momentanen Favoriten: Fluent NHibernate, da dieses einfach zu testen ist! Demnächst folgen dann einfache Beispiele für den Vergleich.

Es gibt noch andere Tools. Aber das sind für mich die vier wichtigsten, die ich mir im Moment anschaue.

Silverlight 2 Release Candidate - Beta Anwendungen sollten schnell angepasst werden

06.10.2008 17:17:00 | Jens Peter Kleinau

Seit dem 25. September ist der erste Release Candidate für Silverlight 2.0 verfügbar. Die offizielle Downloadseite ist http://silverlight.net/GetStarted/sl2rc0.aspx. Die semi-offizielle Kommentarseite dazu ist von Scott Guthrie http://weblogs.asp.net/scottgu/archive/2008/09/25/silverlight-2-release-candidate-now-available.aspx. Wer sich an die ersten CTPs erinnert oder wie ich einen Blick auf...

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

XTOPIA und Technical Summit Early-Bird-Aktion verlängert

06.10.2008 15:42:00 | Jens Peter Kleinau

Die Event-Organisatoren haben die Early-Bird-Aktion verlängert. Alle, die sich noch bis zum 15. Oktober für die XTOPIA und/oder den Technical Summit anmelden, können bis zu 150 Euro sparen.  Um den vergünstigten Preis zu erhalten, muss bei der Anmeldung lediglich ein Promo-Code angegeben werden. Promo-Code XTOPIA: XT08-34283-EB1510 Promo-Code Technical Summit: TS08-62811-EB1510  

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

LiveBericht von der XTOPIA und der Technical Summit

06.10.2008 15:29:00 | Jens Peter Kleinau

In Absprache mit den Event-Organisatoren der XTOPIA und des Technical Summits und der Microsoft PR-Abteilung werde ich live von den beiden Konferenzen hier im XAML Blog berichten. Video Interviews werde ich mir vermutlich aussparen müssen, aber meine nagelneue Nikon D60 wird wohl heißlaufen und einige nette Bilder hierher zaubern. Die beiden Konferenzen zählen für mich zu den Events im...

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

10 Jahre Google Startseite im Schnelldurchlauf

06.10.2008 13:25:36 | Robert Mühsig

Gerade auf dem Blog von Tobias Steinicke gefunden:

Die Daten beruhen auf dem Internet Archiv. Bemerkenswert wie wenig die Seite sich im schnelllebigen Internet verändert hat.

ShareThis

Visual Studio Database Edition und Developer Edition sind jetzt Eins !

06.10.2008 13:01:48 | Christian Binder

Die Funktionen der Database Edition sind jetzt aus Lizenzsicht in die Developer Edition integriert worden. Natürlich gilt das Vice Versa, daher wer eine Database Edition gekauft hat, bekommt die Funktionen der Developer Edition dazu.  Mit VSTS 2008 müssen bei Editionen separat installiert werden. Mit Rosario werden beide Rollen integriert sein. Wer die Database Edition sich noch nicht angeschaut hat, aber Bedarf an DB Schema Versionierung, Schema Deployment, Stored Proc und Function Unit Testing, Tooling für Schema-, Data Compare, Schema Refactoring und Testdaten Generierung hat, sollte mal reinschauen  :-)

Ich empfehle den aktuellen GDR zu verwenden, der auch SQL2008 unterstützt:
Microsoft® Visual Studio Team System 2008 Database Edition GDR September CTP Download Hier
Die GDR Version basiert auf VS Sp1 und bringt einige Neuerungen mit sich, z.B. wird die Schema Validierung jetzt mit einem Model durchgeführt und nicht mit einer SQL Express Instanz.

Wer nicht den CTP nutzen möchte, kann via MSDN Subscriber Download Center die aktuelle Microsoft® Visual Studio Team System 2008 Database Edition oder Developer Edition herunterladen. Es empfiehlt sich dann noch die Microsoft® Visual Studio Team System 2008 Database Edition Power Tools Download Hier zu installieren.

Ein Einführungs Webcast zur Database Edition findet Ihr hier.

Viel Spass
Chris

Finden wonach andere suchen: TagCloud, Ticker und Code-Search

06.10.2008 11:21:02 | Kay Giza

Auf My MSDN - Ihrem lokalen MSDN-Portal, in unserem lösungsorientierten „How-To“-Portal MSDN Solve - sowie auf dem Microsoft Architects Connection-Portal haben wir für Sie jetzt die populärsten Suchbegriffe in einer TagCloud zusammengefasst.

Suchbegriffe mal ganz anders dargestellt, finden Sie im neuen MSDN Ticker. Der Ticker fasst Social Bookmarks von den MSDN- und TechNet-Portalen zusammen. Er visualisiert die auf diesen Portalen gefundenen Bookmarks, indem er sie ähnlich wie ein Nachrichten- oder Börsenticker über den Bildschirm laufen lässt. Sie können an der Farbe des Tickertextes erkennen, von welchem Portal das Bookmark stammt: rot steht für MSDN und blau für TechNet. Sie können bestimmen, von welchen Portalen Sie Bookmarks angezeigt bekommen möchten. Platzieren Sie die Maus über den Titel eines Bookmarks, um den Link sowie weitere Informationen zu diesem Bookmark zu erhalten. Klicken Sie einfach auf das Bookmark, um die zugehörige Webseite zu besuchen. Die gewünschte Seite wird dann in einem neuen Browserfenster angezeigt.

Apropos neues Fenster und Target=“_blank“ – wer auf der Suche nach dem passenden Code ist, der sollte sich den Preview unserer MSDN Code-Suche anschauen. Gefällt sie Ihnen? Was könnte besser sein? Sagen Sie es uns!



This post is powered by www.Giza-Blog.de | Giza-Blog.de: RSS Feed
Visit:  MSDN Online | Kostenfreie MSDN Service-Hotline für Entwickler
Daily News on MSDN:   MSDN Aktuell
© Copyright 2006-2008 Kay Giza. All rights reserved. Legal

Web Platform Installer Beta

06.10.2008 01:43:01 | Jürgen Gutsch

Microsoft hat mit dem Web Platform Installer Beta (Web PI) ein Paket veröffentlicht, mit dem man bequem eine kostenfreie Web-Entwicklungsumgebung auf seinem Rechner installieren kann.

Das Paket beinhaltet unter anderem:
IIS7
Visual Web Developer 2008 Express Edition
SQL Server 2008 Express Edition
.NET Framework

Voraussetzung sind Windows Vista RTM, Windows Vista SP1 und Windows Server 2008

Gerade für ASP.NET Einsteiger ist dieses Paket sicher ideal um sich eine komplette Entwicklungsumgebung einzurichten mit der man sofort starten kann.

via: http://www.webresourcesdepot.com/microsoft-web-platform-installer-beta/

HowTo: ASP.NET MVC - Was ist es und warum sollte man es sich anschauen?

06.10.2008 01:22:48 | Robert Mühsig

Ich habe bereits vor einiger Zeit mich mit dem MVC Framework beschäftigt und möchte nun (nachdem bereits die Preview 5 zum Download bereitsteht und die Beta demnächst kommt) auf die Grundlagen von ASP.NET MVC eingehen und im ersten Post erst mal auf das “Warum sollte ich das mir mal anschauen und was ist es eigentlich?” eingehen. Source Code und was man damit alles genau anstellen kann folgen in den nächsten HowTos.

Wofür steht das “MVC”?

MVC steht für Model-View-Controller und ist bereits ein recht altes Entwurfsmuster aus dem Jahre 1979. Der Grundgedanke von diesem Entwurfsmuster ist einfach die Teilung der Zuständigkeiten (oder als engl. Abkürzung “SoC“) :

image

Diese 3 Teile lassen sich kurz so beschreiben:

  • Model: Die “Daten” der Anwendung
  • View: Wie sollen die Daten dargestellt werden?
  • Controller: Die eigentliche Logik welche die Daten lädt oder ändert und den View die Daten übergibt.

Ein gutes Beispiel wo wir täglich mit dem MVC Pattern (Pattern = engl. für Entwurfsmuster) in Berührung kommen ist der Browser.

Warum ASP.NET MVC?

Das momentan aktuelle ASP.NET Modell  (”WebForms”) bringt viel Abstraktion in die Webentwicklung, um sie möglichst nahe an die Windowsentwicklung rankommen zu lassen. Dabei gibt es verschiedenste Tricks aber auch Probleme - um mal ein paar Schlagwörter zu bringen:

image

Der “Viewstate” ist eine Technik um dem zustandlosen HTTP einen Zustand zu geben - das bringt allerdings einige Komplexität mit sich. Das hängt auch stark mit dem “Postback” Mechanismus und dem recht großen “Lifecycle” zusammen.
Im Zusammenspiel mit dem Zwang das immer eine HTML Form mit “runat=server” dabei sein muss und das die ASP.NET Controls ihr eigenes HTML rendern und man somit nur wenig Kontrolle über das Ergebnis hat, wird der Zugriff natürlich über Javascript und co. recht schwierig - von SEO ganz zu schweigen. Im schlimmsten Falle vermischt sich UI Code der in der Codehinde liegt mit Businesslogik und schon wird die Wartung recht teuer.

Achtung: Viele hier aufgezählte Sachen sind nicht unbedingt schlecht - wer sich in der aktuellen Arbeitswelt mit ASP.NET wohl fühlt braucht sich nicht zu fürchten - ASP.NET MVC ersetzt nicht ASP.NET WebForms. Beide Modelle werden weiterentwickelt.

Was bringt ASP.NET MVC?

Diese Frage habe ich versucht in einem recht alten Blogpost bereits zu beantworten. Es gibt von der letzten Mix noch eine gute Präsentation von Scott Hanselman zu ASP.NET MVC.

Ein paar kurze Punkte “was es bringt” und “was es kann”:

  • Bessere Testbarkeit
  • Volle Kontrolle über gerenderten HTML Code
  • Ist an (fast?) allen Ecken erweiterbar
  • Klare Trennung von UI / Logik / Domain Modell (wenn man nichts arg falsch macht ;) )

Es hat zudem starke Ähnlichkeiten mit Ruby on Rails oder andere MVC Frameworks, wie Struts für Java.

Was haben wir nun also von ASP.NET MVC?

Durch MVC haben wir, wie bereits erwähnt, eine Alternative für alle, die volle Kontrolle über das gerenderte HTML haben möchten und denen die Abstraktion von “WebForms” zu weit ging. Das kann sich natürlich durch die Testbarkeit auch auf die Qualität der Software am Ende niederschlagen.

Von was man Abschied nehmen muss:

Die momentanen Standard-ASP.NET Control funktionieren meistens nicht mehr, da diese auf die Postback-Funktionalität aufsetzen. So kann man z.B. das Gridview nicht verwenden - allerdings kann man es mit wenig Aufwand selber implementieren oder im Internet kurz rumforschen. Ich werde in einem der nächsten HowTos ebenfalls auf solche Standardthemen eingehen.
Alles was nicht auf den Viewstate oder auf Postbacks zurückgreift, kann man jedoch weiterhin verwenden - es ist nur ASP.NET :)

Scott Hanselman hat in einem Blogpost beschrieben wie ASP.NET MVC, WebForms und Dynamic Data in einem Projekt harmonieren können. Da natürlich auch der Lifecycle komplett anders ist als bei “normalen” ASP.NET Webseiten muss man sich da natürlich in Richtung MVC umstellen. Was das bedeutet (und das es eigentlich sehr eingängig ist), werde ich ebenfalls später zeigen.

Dies sollte als “Einstiegsworte” erst einmal genügen. Wer Fragen hat, der kann diese wie immer gerne hier stellen.

ShareThis

ATE auf dem Technical Summit 2008

05.10.2008 22:29:19 | Lars Keller

Ich bin vom 20.11-21.11.2008 auf dem Technical Summit 2008 in Berlin als Ask The Expert dabei. Das Technical Summit ist zwar nicht so groß wie das Launch Event in Frankfurt, aber das Event steht im Zeichen der PDC. Mal sehen, was es alles Neues geben wird!

Offizieller ATE @ Microsoft Technical Summit 2008: Treffen Sie mich in den Ask the Experts-Sessions!

Ich freue mich auf die vielen Fragen, Gespräche und die üblichen Verdächtigen... .-)



This weblog is sponsored by netcreate OHG.

ATE auf dem Technical Summit 2008

05.10.2008 21:29:19 | Lars Keller

Ich bin vom 20.11-21.11.2008 auf dem Technical Summit 2008 in Berlin als Ask The Expert dabei. Das Technical Summit ist zwar nicht so groß wie das Launch Event in Frankfurt, aber das Event steht im Zeichen der PDC. Mal sehen, was es alles Neues geben wird!

Offizieller ATE @ Microsoft Technical Summit 2008: Treffen Sie mich in den Ask the Experts-Sessions!

Ich freue mich auf die vielen Fragen, Gespräche und die üblichen Verdächtigen... .-)

ATE auf dem Technical Summit 2008

05.10.2008 12:29:01 | Lars Keller

Ich bin vom 20.11-21.11.2008 auf dem Technical Summit 2008 in Berlin als Ask The Expert dabei. Das Technical Summit ist zwar nicht so groß wie das Launch Event in Frankfurt, aber das Event steht im Zeichen der PDC. Mal sehen, was es alles Neues geben wird!

Offizieller ATE @ Microsoft Technical Summit 2008: Treffen Sie mich in den Ask the Experts-Sessions!

Ich freue mich auf die vielen Fragen, Gespräche und die üblichen Verdächtigen... .-)

Mit T-SQL Vor- und Nachname vertauschen

05.10.2008 10:48:07 | Thomas Schissler

Ich hatte gerade das Problem, dass in einem Feld in der Datenbank Einträge wie z.B. "Thomas, Schissler" standen und ich die in "Schissler, Thomas" ändern wollte. Hier hilft folgendes kleines Skript:

select CASE LEN(ResponsibleName) WHEN 0 THEN ResponsibleName ELSE SUBSTRING(ResponsibleName,
charindex ( ',', ResponsibleName )+2, len(ResponsibleName))
+ ', ' + SUBSTRING(ResponsibleName,
1, charindex ( ',', ResponsibleName )-1) END from data

XML-Felder in T_SQL abfragen

05.10.2008 10:29:54 | Thomas Schissler

In einem früheren Beitrag habe ich beschrieben, wie man kleinere Listen mit LINQ effizien speichern kann. Hierzu verwende ich einfach ein XML-Feld in der entsprechenden Tabelle und lege die Liste dann dort als XML-Serialisierung ab. Nun stand ich vor der Herausforderung, dass ich direkt auf der Datenbank dieses Feld abfragen wollte. Glücklicherweise beitet T-SQL eine sehr gute XML-Unterstützung, unglücklicherweise gibt es eine vielzahl von Techniken dies zu tun und die Treffer meiner Internetrecherche waren sehr unübersichtlich. Deshalb hier nochmals kurz zusammengefasst, wie ich das gelöst habe.

Ich habe in einem Feld folgenden XML-Inhalt der ein Dictionary mit 5 Einträgen repräsentiert:

<Root> <item> <key> <int>1</int> </key> <value> <decimal>17.00</decimal> </value> </item> <item> <key> <int>2</int> </key> <value> <decimal>17.81</decimal> </value> </item> <item> <key> <int>3</int> </key> <value> <decimal>18.62</decimal> </value> </item> <item> <key> <int>4</int> </key> <value> <decimal>19.43</decimal> </value> </item> <item> <key> <int>5</int> </key> <value> <decimal>20.24</decimal> </value> </item> </Root>

 

Die Struktur der XML-Daten ist bei allen Datensätzen gleich. Nun wollte ich diese Werte in 5 separaten Spalten ausgeben um diese einfachin Excel weiterverarbeiten zu können. Das macht folgendes Skript:

SELECT PackSIzeID,
Units, u1.l.value('decimal[1]','Decimal(18,2)') AS UnitsYear1,
u1.l.value('decimal[1]','Decimal(18,2)') AS UnitsYear2,
u1.l.value('decimal[1]','Decimal(18,2)') AS UnitsYear3,
u1.l.value('decimal[1]','Decimal(18,2)') AS UnitsYear4,
u1.l.value('decimal[1]','Decimal(18,2)') AS UnitsYear5 FROM data_PackSizes CROSS APPLY
Units.nodes('//Root/item[1]/value') u1(l) CROSS APPLY
Units.nodes('//Root/item[2]/value') u2(l) CROSS APPLY
Units.nodes('//Root/item[3]/value') u3(l) CROSS APPLY
Units.nodes('//Root/item[4]/value') u4(l) CROSS APPLY
Units.nodes('//Root/item[5]/value') u5(l)


Hier kann ich die 5 values als separate Nodes adressieren und dann in der Feldliste entsprechend auswählen. Das Ergebnis sieht dann so aus:
image

Vielleicht geht das auch noch eleganter, aber für mich hat's erst mal funktioniert und deshalb habe ich hier erst mal nicht mehr Zeit investiert.

Weitere Infos zum Thema:

SQL XML-Workshop von Jacob Sebastian

Technet-Whitepapaer: XML Best Practices for Microsoft SQL Server 2005

Geburtstags-Erweiterung für CommunityServer 2007

03.10.2008 21:11:06 | Jan Welker

Im CommunityServer hat jeder User die Möglichkeit, in seinem Profil sein Geburtsdatum einzugeben. Dieses Datum wird dann im Profil des Users angezeigt.
In vielen anderen Foren und Social Networking Sites, wie zum Beispiel Xing, werden die Geburtstagskinder auf der Startseite angezeigt. Diese Idee fand ich sinnvoll für das dotnet-forum.de. Da ich keine passende Erweiterung für den CommunityServer gefunden habe, habe ich dieses in Form eines Usercontrols entwickelt:

birthday


Wer das Control im CommunityServer einsetzen möchte, kann mich gern kontaktieren.

Port25Blog: Auf Wiedersehen

03.10.2008 14:12:21 | Klaus Bock

Wie Andreas Hartl gestern auf dem deutschen Port25 Blog mitteilte, wird dieser geschlossen. Zwar wird das amerikanische Port25Blog weitergeführt und steht auch den deutschen Entwicklern offen, doch anscheinend soll die neue Anlaufstelle in Sachen Plattform unabhängiger Open Source Projekte die OSBF-Wiki werden. Zitat aus dem Abschiedsbeitrag von Andreas Hartl:

Wie wir auf diesem mitunter steinigen, aber stets spannenden Weg vorankommen, davon können Sie sich unter http://osbf.de/de/intern/osbfw ein Bild machen. Denn im OSBF-Wiki stellen wir umfassende Informationen zu den bereits beschlossenen Vorhaben der Arbeitsgruppe Interoperabilität bereit und berichten regelmäßig über die realisierten Projektfortschritte. Natürlich nach den Prinzipien, die auch für das Port25-Blog prägend waren: Direkt und faktenreich, praxisnah und frei von Marketing. Hier werde ich mich künftig als Web-Autor engagieren und alles Wissenswerte zu den Interop-Aktivitäten zusammentragen, die Microsoft Deutschland zusammen mit der Open-Source-Community auf die Beine stellt. Ich würde mir wünschen, dass mich möglichst viele Leser und Leserinnen des Port25-Blogs zum OSBF begleiten. Vielleicht ja sogar als Mitglied des Netzwerks.

Die Open Source Business Foundation (OSBF) betreibt auch ein Blog auf ihrer Seite. Ich werde diesen Blog erst einmal mit lesen und mir dann eine Meinung über die OSBF bilden. Vielleicht geht es ja nur mir so, aber wenn ich Namen wie: 1&1, Deutsche Telekom, Zimory und viele andere mehr auf der Mitgliederliste der OSBF lese, dann stimmt mich das nachdenklich.

Technorati-Tags: |

The CodeDom provider type Microsoft.VJSharp.VJSharpCodeProvider could not be located

03.10.2008 00:53:00 | Peter Bucher

Beim builden eines Web-Projektes (WebSite) bekam ich folgende Kompilermeldung:

The CodeDom provider type "Microsoft.VJSharp.VJSharpCodeProvider, VJSharpCodeProvider, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" could not be located.

Mithilfe der Suche gibts Antworten.
Mir hat es geholfen, die J# Redist herunterzuladen und zu installieren.

Keine Ahnung wieso, *.java Dateien oder ähnliches hatte ich nicht im Projekt.
Das Projekt war VB.NET, kein C# und schon gar kein J# - auch keine J#-Komponenten.

Scheinbar kann das passieren, wenn eine VS05 Solution in eine VS08 konvertiert wird.

Early-Bird für XTOPIA und Technical Summit verlängert

02.10.2008 23:21:46 | Jan Welker

Die Event-Organisatoren haben die Early-Bird-Aktion verlängert.
Alle, die sich noch bis zum 15. Oktober für die XTOPIA und/oder den Technical Summit anmelden, können bis zu 150 Euro sparen.

Um den vergünstigten Preis zu erhalten, muss bei der Anmeldung lediglich ein Promo-Code angegeben werden.

Promo-Code XTOPIA: XT08-34283-EB1510
Promo-Code Technical Summit: TS08-62811-EB1510

Wie man an dem Banner auf der rechten Seite unschwer erkennen kann, werde ich auch beim Technical Summit dabei sein. Ich werde direkt vom Technical Summit hier im Blog berichten.

Man sieht sich in Berlin! ;-)

Ankündigung der nächsten Version der TFS Power-Tools

02.10.2008 13:49:18 | Thomas Schissler

Die nächste Version der TFS Power-Tools werden ein paar richtig coole Features enthalten sein.

Z.B. ein neuer Knoten "Team Members" im Team Explorer über den man mit allen Team-Mitglieder kommunizieren kann und worüber man auch z.B. schnell die Pending Changes oder die Shelfsets einzelner Mitglieder findet etc.

imageimage

Zusätzlich lassen sich damit Komponenten wie z.B. Checkin-Policies oder Workitem-Controls einfach distributieren.

image

Und von vielen heiß ersehnt, es gibt jetzt eine Windows Explorer Integration zur Quellcode-verwaltung.

imageimage

Darüber hinaus ist noch der Power-Shell Support Bestandteil der neuen Power-Tools

Weitere Details unter Brian Harrys Blog

bharry's WebLog : Preview of the next TFS Power Tools release

TFS Fehlermeldung beim Anlegen eines Work Item (Could not load type....)

02.10.2008 11:24:11 | Lars Keller

Als ich heute einen Bug mit dem TFS anlegen wollte, bekam ich folgende Fehlermeldung:

---------------------------
Microsoft Visual Studio
---------------------------
Could not load type 'Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItemTypeDeniedOrNotExistException' from assembly 'Microsoft.TeamFoundation.WorkItemTracking.Client, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.

Nach ein wenig Recherche bin ich auf folgende Links gestoßen:

Nachdem ich das SP1 neu installiert habe, war der Fehler weg.



This weblog is sponsored by netcreate OHG.

TFS Fehlermeldung beim Anlegen eines Work Item (Could not load type....)

02.10.2008 10:24:11 | Lars Keller

Als ich heute einen Bug mit dem TFS anlegen wollte, bekam ich folgende Fehlermeldung:

---------------------------
Microsoft Visual Studio
---------------------------
Could not load type 'Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItemTypeDeniedOrNotExistException' from assembly 'Microsoft.TeamFoundation.WorkItemTracking.Client, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.

Nach ein wenig Recherche bin ich auf folgende Links gestoßen:

Nachdem ich das SP1 neu installiert habe, war der Fehler weg.

Die nächsten VSTS Power Tools rücken an

02.10.2008 09:29:24 | Lars Keller

Wie ausführlich in dem Blog von Brain Harry zu lesen, werden die kommenden Power Tools für Visual Studio Team System ein paar sehr coole Neuigkeiten haben.

  • Team Members - We've added a new node to the Team Explorer called "Team Members".  It appears under each Team Project and is used to identify who are the people who work on the project.  It serves as a "pivot point" for information about and operations on people and teams.
  • Windows Shell Extension - We've built a Windows shell extension that allows you to do the core version control operations directly inside the Windows Explorer without using the Team Explorer.
  • PowerShell Support - We've started working on a PowerShell pipeline and commandlets for TFS.  Our initial set support basic version control operations but over time we plan to add work item tracking, administration, build and more.

 

Cool! Gerade die ersten beiden Features habe ich bis jetzt sehr vermisst!

Link:



This weblog is sponsored by netcreate OHG.

Die nächsten VSTS Power Tools rücken an

02.10.2008 08:29:24 | Lars Keller

Wie ausführlich in dem Blog von Brain Harry zu lesen, werden die kommenden Power Tools für Visual Studio Team System ein paar sehr coole Neuigkeiten haben.

  • Team Members - We've added a new node to the Team Explorer called "Team Members".  It appears under each Team Project and is used to identify who are the people who work on the project.  It serves as a "pivot point" for information about and operations on people and teams.
  • Windows Shell Extension - We've built a Windows shell extension that allows you to do the core version control operations directly inside the Windows Explorer without using the Team Explorer.
  • PowerShell Support - We've started working on a PowerShell pipeline and commandlets for TFS.  Our initial set support basic version control operations but over time we plan to add work item tracking, administration, build and more.

 

Cool! Gerade die ersten beiden Features habe ich bis jetzt sehr vermisst!

Link:

TFS Fehlermeldung beim Anlegen eines Work Item (Could not load type....)

02.10.2008 01:24:01 | Lars Keller

Als ich heute einen Bug mit dem TFS anlegen wollte, bekam ich folgende Fehlermeldung:

---------------------------
Microsoft Visual Studio
---------------------------
Could not load type 'Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItemTypeDeniedOrNotExistException' from assembly 'Microsoft.TeamFoundation.WorkItemTracking.Client, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.

Nach ein wenig Recherche bin ich auf folgende Links gestoßen:

Nachdem ich das SP1 neu installiert habe, war der Fehler weg.

Cloud Computing mit Amazon & Microsoft.

02.10.2008 00:47:21 | Robert Mühsig

Amazon wird demnächst auch Windows Systeme auf ihrer Serverfarm “Elastic Compute Cloud (Amazon EC2)” bereitstellen: Coming Soon: Amazon EC2 With Windows

IIS, SQL Server und co. (selbst High Performance Computing) gehostet in Amazons Rechenzentren und flexibel abrechenbar ist sicherlich eine Option für das ein oder andere Projekt. Auf der PDC wird es nähere Informationen geben.

Microsoft hat selbst momentan die “SQL Server Data Services” im Betastadium und ich bin gespannt, was Herr Ballmer mit “Windows Cloud OS” meint - auf der PDC wird es also sicherlich nicht langweilig.

ShareThis

.NET User Group Paderborn – Wunschthema für den 06.10.08

02.10.2008 00:24:06 | Mathias Raacke

Da wir bis jetzt noch kein Thema für das nächste Treffen haben habe ich mir überlegt, einfach einen meiner Vorträge von der BASTA und vom Herbstcampus vorzutragen. Aber nicht einfach irgendeinen – ich lasse abstimmen. Hier sind die möglichen Themen für das nächste Treffen:

>

Die Umfrage ist noch offen bis Sonntag um 15 Uhr.

Die nächsten VSTS Power Tools rücken an

01.10.2008 23:29:02 | Lars Keller

Wie ausführlich in dem Blog von Brain Harry zu lesen, werden die kommenden Power Tools für Visual Studio Team System ein paar sehr coole Neuigkeiten haben.

  • Team Members - We've added a new node to the Team Explorer called "Team Members".  It appears under each Team Project and is used to identify who are the people who work on the project.  It serves as a "pivot point" for information about and operations on people and teams.
  • Windows Shell Extension - We've built a Windows shell extension that allows you to do the core version control operations directly inside the Windows Explorer without using the Team Explorer.
  • PowerShell Support - We've started working on a PowerShell pipeline and commandlets for TFS.  Our initial set support basic version control operations but over time we plan to add work item tracking, administration, build and more.

 

Cool! Gerade die ersten beiden Features habe ich bis jetzt sehr vermisst!

Link:

AddInSpy ein sehr nützliches Helferlein für die VSTO Entwicklung

01.10.2008 18:38:32 | Lars Keller

Daniel hat mich heute auf das Tool AddInSpy aufmerksam gemacht, welches Entwickler beim erstellen von VSTO Add-Ins unterstützt.

Summary: AddInSpy is a diagnostic tool which discovers all registered Microsoft Office add-ins on a computer, and reports the maximum possible information about these add-ins. The tool works with all versions of all Microsoft Office applications that support COM add-ins, and all types of COM add-ins.

AddInSpy bietet eine Übersicht über folgende Informationen...

  • Whether the host application is running, and whether the add-in is loaded.
  • The type of each add-in: VSTO, managed non-VSTO, native.
  • FriendlyName, ProgID, CLSID and LoadBehavior of the add-in.
  • Manifest path, assembly path, and assembly strongname.
  • Registry hive (HKCU or HKLM) where the add-in is registered.
  • CLR version the add-in was built against.
  • VSTO runtime version used by the add-in.
  • Installed date, and publish version.
  • Which extensibility interfaces the add-in implements for Ribbon, custom taskpane, etc (including via VSTO wrappers).
  • Whether the add-in exposes itself for automation through the COMAddIns collection of the Office host application.
  • Whether the add-in is in the disabled items list for the current user, for each selected Office host application.
  • Whether the add-in is registered as the provider for any custom form regions.
  • Context information: machine name, user/domain name, OS details, VSTO environment variables.

...und listet diese übersichtlich auf:

addinspy

Dadurch erspart man sich viel "gesuche" in der Registry etc. Eine ausführliche Anleitung zu dem AddInSpy befindet sich im MSDN.

Der Download ist auf Codeplex.



This weblog is sponsored by netcreate OHG.

AddInSpy ein sehr nützliches Helferlein für die VSTO Entwicklung

01.10.2008 17:38:32 | Lars Keller

Daniel hat mich heute auf das Tool AddInSpy aufmerksam gemacht, welches Entwickler beim erstellen von VSTO Add-Ins unterstützt.

Summary: AddInSpy is a diagnostic tool which discovers all registered Microsoft Office add-ins on a computer, and reports the maximum possible information about these add-ins. The tool works with all versions of all Microsoft Office applications that support COM add-ins, and all types of COM add-ins.

AddInSpy bietet eine Übersicht über folgende Informationen...

  • Whether the host application is running, and whether the add-in is loaded.
  • The type of each add-in: VSTO, managed non-VSTO, native.
  • FriendlyName, ProgID, CLSID and LoadBehavior of the add-in.
  • Manifest path, assembly path, and assembly strongname.
  • Registry hive (HKCU or HKLM) where the add-in is registered.
  • CLR version the add-in was built against.
  • VSTO runtime version used by the add-in.
  • Installed date, and publish version.
  • Which extensibility interfaces the add-in implements for Ribbon, custom taskpane, etc (including via VSTO wrappers).
  • Whether the add-in exposes itself for automation through the COMAddIns collection of the Office host application.
  • Whether the add-in is in the disabled items list for the current user, for each selected Office host application.
  • Whether the add-in is registered as the provider for any custom form regions.
  • Context information: machine name, user/domain name, OS details, VSTO environment variables.

...und listet diese übersichtlich auf:

addinspy

Dadurch erspart man sich viel "gesuche" in der Registry etc. Eine ausführliche Anleitung zu dem AddInSpy befindet sich im MSDN.

Der Download ist auf Codeplex.

Download: MSDN Library fuer Visual Studio 2008 SP1 (Deutsch)

01.10.2008 14:06:16 | Kay Giza

Im Microsoft Download-Center steht in deutschsprachiger Version die „MSDN Library für Visual Studio 2008 SP1“ zum herunterladen bereit. Die MSDN Library (hier die Online-Version der MSDN Library) ermöglicht den Zugriff auf grundlegende Programmierinformationen, einschließlich technischer Referenzdokumentation, Whitepaper, Software Development Kits und Codebeispielen, die zum Entwickeln von Webdiensten und Anwendungen erforderlich sind. Die jetzt vorliegende Version ist ein Update der MSDN Library für Visual Studio 2008 und enthält die Dokumentation zu Visual Studio 2008 Service Pack 1 sowie Aktualisierungen der allgemeinen Visual Studio 2008-Dokumentation und der Microsoft Knowledge Base.
Link: Download: MSDN Library für Visual Studio 2008 SP1

This post is powered by www.Giza-Blog.de | Giza-Blog.de: RSS Feed
Visit:  MSDN Online | Kostenfreie MSDN Service-Hotline für Entwickler
Daily News on MSDN:   MSDN Aktuell
© Copyright 2006-2008 Kay Giza. All rights reserved. Legal

Expression Encoder 2 Service Pack 1 angekündigt

01.10.2008 12:46:52 | Oliver Scheer

Der Expression Encoder 2 erhält in Kürze mit Hilfe des ersten Service Packs diverse neue Features:

Vorlagen für Silverlight 2 (bisher wurden immer nur Silverlight 1-Player erzeugt)

  • H.264 Encoding
  • Verbesserte A/B-Compare Features
  • WebDAV-Unterstützung
  • u.v.m.

Demnächst wirds spannend ;)

Mehr Informationen gibt es hier: http://blogs.msdn.com/expressionencoder/archive/2008/09/23/8962401.aspx

Rückblick Herbstcampus Nürnberg

01.10.2008 09:10:06 | Thomas Schissler

Ok, OK, ich weiß, ich bin spät dran, aber ich möchte dennoch nicht versäumen, einen kurzen Rückblick auf den Herbstcampus zu tun und meine Folien zu veröffentlichen.

Interessant war für mich an der Veranstaltung, dass es Tracks sowohl für JAVA als auch .Net gab. Ich selbst hatte zwei Talks:

Qualitätsmanagement mit VSTS und TFS
In dieser Session habe ich zunächst einmal beleuchtet, warum Entwickler QM nicht unbedingt mögen. Einer der Gründe liegt in der mangelnden Integration von QM in den Entwicklungsprozess. Gerade hier bietet VSTS und TFS einige Verbesserungen. Wichtig ist, dass QM nicht erst mit dem Testing beginnt, sondern bereits früh im Prozess ansetzen muss. Ohne ein gutes Requirement-Management wird kein gutes Qualitäts-Management möglich sein. Im Vortrag habe ich demonstriert, welche Methoden mit diesem Toolset über die verschiedenen Prozessphasen zur Verfügung stehen um in Software-Projekten wirklich mehr Qualität zu erzielen.

Agile Development Process - Ein Architektur-basierter Entwicklungsprozess

Architektur und Prozesse werden meist getrennt betrachtet. Dass aber gerade eine gemeinsame Betrachtung dieser beiden Themen viele Vorteile bringt, habe ich versucht in dieser Session zu vermitteln. Im Kern ging es darum, dass verschiedene Prozesse wie z.B. das UI Driven Development erst durch eine passende Architektur ermöglicht wird. Sehr gut fand ich auch die Diskussion am Ende meines Vortrags. Das versprochene Whitepaper zu diesem Vortrag wird noch nachgereicht.

AddInSpy ein sehr nützliches Helferlein für die VSTO Entwicklung

01.10.2008 08:38:03 | Lars Keller

Daniel hat mich heute auf das Tool AddInSpy aufmerksam gemacht, welches Entwickler beim erstellen von VSTO Add-Ins unterstützt.

Summary: AddInSpy is a diagnostic tool which discovers all registered Microsoft Office add-ins on a computer, and reports the maximum possible information about these add-ins. The tool works with all versions of all Microsoft Office applications that support COM add-ins, and all types of COM add-ins.

AddInSpy bietet eine Übersicht über folgende Informationen...

  • Whether the host application is running, and whether the add-in is loaded.
  • The type of each add-in: VSTO, managed non-VSTO, native.
  • FriendlyName, ProgID, CLSID and LoadBehavior of the add-in.
  • Manifest path, assembly path, and assembly strongname.
  • Registry hive (HKCU or HKLM) where the add-in is registered.
  • CLR version the add-in was built against.
  • VSTO runtime version used by the add-in.
  • Installed date, and publish version.
  • Which extensibility interfaces the add-in implements for Ribbon, custom taskpane, etc (including via VSTO wrappers).
  • Whether the add-in exposes itself for automation through the COMAddIns collection of the Office host application.
  • Whether the add-in is in the disabled items list for the current user, for each selected Office host application.
  • Whether the add-in is registered as the provider for any custom form regions.
  • Context information: machine name, user/domain name, OS details, VSTO environment variables.

...und listet diese übersichtlich auf:

addinspy

Dadurch erspart man sich viel "gesuche" in der Registry etc. Eine ausführliche Anleitung zu dem AddInSpy befindet sich im MSDN.

Der Download ist auf Codeplex.

Noch mehr Artikel: 10 Artikel über Datenbankdesign

01.10.2008 02:26:00 | Jürgen Gutsch

Nützliche Tutorials und Artikel zu Webentwicklung mit MS Techniken

01.10.2008 02:16:05 | Jürgen Gutsch

Unter folgender URL gibt es eine ganz nützliche Übersicht mit Links zu Artikeln und Tutorials zum Thema ASP.NET, Silverlight, SQL Server und Visual Studio:
http://connectwithlife.co.in/developer-3.aspx

Einige der Links werden sicher schon bekannt sein, aber für Einsteiger ist es eine ganz gute Übersicht.

via: Good asp.net and other developer learning links & resources

WPF Forum | ASP.NET Forum | ASP.NET MVC Forum | Silverlight Forum | Windows Phone 7 Forum | SharePoint Forum | Dotnet Jobs | Dotnet Termine | Developer Blogs | Dotnet News

Das Team | Regeln | Impressum