Archiv der Kategorie: .NET

Visual Studio 2008 Express Edition in deutscher Sprache

Seit kurzem stehen die Express Editions von Visual Studio 2008 auch in deutscher Sprache zur Verfügung. Wie auch schon die Express Editions von Visual Studio 2005, sind diese Versionen ebenfalls kostenlos. Der Einsatz für in kommerziellen Projekten ist natürlich auch erlaubt.

Visual Studio 2008 Express

Info: http://www.microsoft.com/germany/express/
Download: http://www.microsoft.com/germany/express/download/default.aspx

Passend dazu gibts natürlich auch die MSDN-Versionen als Hilfedateien zum Download, um nicht bei jeder Anfrage auf die Antwort vom Browser warten zu müssen. (Auch ganz praktisch, wenn man mal mit der Bahn unterwegs ist 😉 )

MSDN Download: http://www.microsoft.com/germany/express/download/msdn.aspx

Wer gern wissen möchte, was ihm zur „Vollversion“ – also Standard oder Professional Edition fehlt – der kann sich unter folgender Seite informieren:

2008er Versionen im Vergleich: http://msdn2.microsoft.com/en-us/vstudio/products/cc149003.aspx

Nützliches Tool für die WinDbg Erweiterung SOS: SOS Assist

Kürzlich bin ich auf das Tool SOS Assist aufmerksam geworden, die eine grafische Oberfläche zu WinDbg SOS anbietet:

SOS Assist

Leider wird das Tool (laut ChangeLog) seit 2006 nicht mehr gepflegt. Im praktischen Einsatz konnte es zwar durch die zahlreichen Infofenster punkten, doch in Punkto Stabilität sind noch einige Defizite zu spüren.

Bisher hatte ich mir immer mit ClrDump (http://www.debuginfo.com/tools/clrdump.html) beholfen, welches mir CrashDumps zur Analyse erstellte. Diese konnte ich dann im WinDbg laden und mittels SOS-Erweiterung analysieren.

Screenshots: http://old.thinktecture.com/SOSAssist/Screenshots.htm

Download: http://old.thinktecture.com/SOSAssist/default.html

Übrigens: Zum Thema CrashDump-Analyse zum Aufspüren von Sicherheitslücken hat auch das MSDN-Magazin einen Artikel veröffentlicht: http://msdn.microsoft.com/msdnmag/issues/07/11/ExploitingCrashes/default.aspx?loc=de

Sehr lesenswert!

Kostenloses Trainingsmaterial zu SharePoint 2007

Heute bin ich zufällig über das Blog von Neil Thompson gestoßen. Dort hat er unter dem Titel „Training Material Roadmap“ zahlreiche Trainingsmaterialien zur SharePoint 2007 als Word-Dateien verlinkt.

Zusätzlich gibt es noch Links zu Webcasts und MP3-Podcasts zu dem Thema. Alles frei herunterladbar 🙂

Hier der Link: http://blogs.msdn.com/neilth/pages/office-sharepoint-server-2007-training-material-roadmap.aspx

Ermitteln von Assembly-Dependencies – oder „Wie werde ich diese verd*** FileNotFound-Exception los?“

Ich ärgere mich momentan mit einem Projekt herum, welches ich nicht problemlos deployen kann. Ich verwende dazu Interop-Technologien aus C++/CLI.

Leider läßt sich das Programm nicht auf einem frisch installierten Zielrechner ausführen. Irgendeine Abhängigkeit muss es noch geben, die bei Installer nicht berücksichtigt wurde.

Aus diesem Grund habe ich mich etwas mit Assembly-Abhängigkeiten (bzw. Assembly-Dependencies) beschäftigen müssen. Dabei bin ich über ein nützliches Tool auf CodeProject gestoßen: Assemlby Dependencies von Natty Gur.

Weiterlesen

.NET Applikationen über das Netzwerk starten

Den größten Teil meiner Arbeit beschäftige ich mich mit der Interoperabilität von .NET-Anwendungen mit unmanaged C++-Code (no COM). Dabei kommt es immer häufiger vor, dass Anwendungen vom Netz gestartet werden sollen.

Die CAS (Code Access Security) verhindert dies, indem sie der Anwendung die Rechte für LocalIntranet-Zone zuweist. Wenn man trotzdem die Anwendung vom Netzlaufwerk aus starten möchte, muss man die CAS bemühen, der zu startenden Applikation volle Rechte zu geben (oder zumindest die benötigten Permissions).

Dies geschiet mithilfe des Tools caspol.exe, welches bei jedem .NET Framework mitgeliefert wird. Es befindet sich im Standard-Installationsverzeichnis der jeweiligen .NET Framework-Version:

{Windows-Verzeichnis}Microsoft.NET{.NET-Version}caspol.exe

Nun legen wir eine neue Codegruppe namens „FullTrustFromNetworkShare“ an:

caspol -machine -addgroup All_Code -url \serverpath* FullTrust -n FullTrustFromNetworkShare

In der grafischen .NET Framework 2.0 Configuration sieht das nun wiefolgt aus:

dotnet_20_config_caspol.png

Natürlich sollte man bei solchen Aktionen bedenken, dass man die Code-Zugriffssicherheit für das Verzeichnis quasi aushebelt und Schädlingen, die über das Verzeichnis gestartet werden, alle Rechte gibt 😐

Mehr Infos dazu gibts auf der MSDN-Seite zum CASPOL-Utility:  http://msdn.microsoft.com/library/DEU/cptools/html/cpgrfCodeAccessSecurityPolicyUtilityCaspolexe.asp

Microsoft gibt mit VS2008 den Quellcode für .NET-Klassenbibliotheken frei

Wie ich heute erfahren habe, gibt Microsoft den Quellcode für verschiedene Klassenbibliotheken frei. Bisher war es ja nicht möglich, in die Klassenbibliotheken rein zu debuggen. Das habe ich im Gegensatz zu Java schon sehr vermisst.

Welche Bibliotheken werden dabei sein?

  • Base Class Libraries (mscorlib.dll)
  • ASP.NET (System.Web.dll)
  • Windows Forms (System.Drawing.DLL & System. Windows.Forms.dll)
  • ADO.NET (System.Data.DLL)
  • XML (System.Xml.DLL)
  • WPF (System.Windows.DLL)

Leider wird der Code unter der Microsoft Reference License veröffentlicht. Heißt im Klartext: Gucken, aber nicht anfassen.

Wenn man einen Fehler im .NET Framework entdeckt, dann darf man sich freuen ihn gefunden zu haben – und wenn man ihn meldet, dann wird er  (vielleicht) bald gefixt. (frei nach dem Motto: Wer einen Fehler findet, darf ihn behalten).

WinDbg-Erweiterung für verwalteten Code: SOSEX

Neue Debugger-Befehle in dieser Erweiterung sind:
!dumpgen and !gcgen
Herausfinden, welche Objekte sich in welcher Generation der GarbageCollection befinden (z.B. !dumpgen 2 zeigt eine Liste der Objekte an, die sich in GC-Generation 2 befinden)

!refs
Zeigt alle Referenzen auf ein bestimmtes Objekt

!dlk
DeadLock detection – zur Erkennung von DeadLocks (sich behindernde Threads)

!bpsc and !bpmo
bpsc (BreakPoint Source) erlaubt das nachträgliche Setzen von Source-Breakpoints im Code an einer bestimmten Code-Zeile

!vars and !isf
Wenn an einem Breakpoint angehalten wurde, so kann mithilfe von !vars die lokalen Variablen angeschaut werden.

Mehr Infos zu den Erweiterungen gibts im Blog von Steve Johnson:
http://www.stevestechspot.com/SOSEXANewDebuggingExtensionForManagedCode.aspx

und im Blog von John Robbins:
http://www.wintellect.com/cs/blogs/jrobbins/archive/2007/06/19/great-sosex-a-phenomenal-net-debugging-extension-to-see-the-hard-stuff-steve-johnson-is-my-hero.aspx

Download x86-Edition: http://www.stevestechspot.com/downloads/sosex_32.zip
Download x64-Edition: http://www.stevestechspot.com/downloads/sosex_64.zip

Download-Tipp: Windows Server 2008 Developer Training Kit (Beta 3)

Für Software-Entwickler für Windows Server 2008 gibt es das Developer Training Kit als kostenlosen Download.

Darin enthalten sind Hands-On-Labs und Präsentationen für den IIS7, Management, Windows Communication Foundation, Windows Workflow Foundation, Windows CardSpace, Windows PowerShell, Virtualisierung und das Transactional File System (TxF).

Auch enthalten ist die Technologie-Demo-Applikation „DinnerNow„. 

Windows Server 2008 Developer Training Kit

Hier ein kleiner Vorgeschmack anhand einiger Screenshots:

Windows Server 2008 Developer Training Kit Windows Server 2008 Developer Training Kit Windows Server 2008 Developer Training Kit

Ist alles echt nett gemacht! Sollte man sich als Entwickler unbedingt mal ansehen.

Download (57.1 MB):
http://www.microsoft.com/downloads/details.aspx?FamilyId=B36EE81A-AFF5-4314-95D7-DAD3ACFA8094&displaylang=en

[Update 05.02.2008]
Die Release-Version des Trainingskits ist zum Download (125,9MB) verfügbar:
http://www.microsoft.com/downloads/details.aspx?familyid=8BDAA836-0BBA-4393-94DB-6C3C4A0C98A1&displaylang=en

Debuggen von Problemen beim Laden von Assemblies

Ich entwickle beruflich u.a. Assemblies mit C++/CLI, die eine Interop-Brücke zwischen den vorhandenen C++-Bibliotheken und unseren .NET-Anwendungen (in C#) darstellen. Hin und wieder (beispielsweise wenn sich eine native C++-DLL geändert hat), bekomme ich Loader Exceptions in Form von System.IO.FileNotFoundException.

Bisher habe ich mir immer Hilfe bei dem Assembly Binding Log Viewer geholt, der mich angezeigt hat, welche Assemblies Probleme machen. Der Assembly Binding Fusion Log Viewer liegt üblicherweise im SDK-Ordner vom .NET Framework (in meinem Fall C:Program FilesMicrosoft Visual Studio 8SDKv2.0Bin) und heißt FUSLOGVW.exe.

Assembly Binding Log Viewer

Danach habe ich mir die Assemblies angeschaut, die Probleme machen und habe somit schnell die fehlenden Abhängigkeiten gefunden.

Weiter Tipps in dieser Richtung habe ich im Blog von Suzsanne Cook gefunden, wie man Probleme beim Laden von Assemblies in den Griff bekommt:

http://blogs.msdn.com/suzcook/archive/2003/05/29/57120.aspx