Do you know the Sysinternals tools?
You probably do if you're an IT pro or a developer. For those who don't, it's a series of free utilities written by Mark Russinovich that are essential to manage, troubleshoot and diagnose your Windows systems and applications. I even need one of the Sysinternals tools for my classes: ZoomIt allows you to zoom and draw on the screen.
Microsoft acquired Sysinternals some time ago and since then the tools have been available, always for free of course, from the TechNet website. I, like many others, downloaded the whole suite and keep it in USB drives and my "Utils" folder. Even though the website's fine to learn more about each of the individual tools, it's not very practical when it comes to downloading and keeping them up to date.
Fortunately, the Sysinternals Team had the brilliant idea of actually sharing these files like you probably share your files on your home or office network, allowing you to run the tools from any computer connected to the Internet without having to navigate to a webpage, download and extract them. All you have to do is visit http://live.sysinternals.com/, which is simply a website with "Directory browsing" on or, even better, use the direct UNC link (\\live.sysinternals.com\Tools\) and run the tools directly. You'll probably want PowerShell installed for command line tools then, but those are the exception and all of the Windows apps will execute fine.
Find out by taking a look at the source code of the .NET Framework that, as Scott Guthrie announced today, is now available for debugger access from within Visual Studio 2008.
For now, the libraries that are available are:
- .NET Base Class Libraries (including System, System.CodeDom, System.Collections, System.ComponentModel, System.Diagnostics, System.Drawing, System.Globalization, System.IO, System.Net, System.Reflection, System.Runtime, System.Security, System.Text, System.Threading, etc).
- ASP.NET (System.Web, System.Web.Extensions)
- Windows Forms (System.Windows.Forms)
- Windows Presentation Foundation (System.Windows)
- ADO.NET and XML (System.Data and System.Xml)
They are released under a Reference License that basically lets you take a look at the code, but you cannot reuse it for your own projects. You still get access to the full source, including comments, which will hopefully give you a better understanding on how the Framework works. To learn how to configure Visual Studio to download the Framework’s source, that a look at Shawn Burke’s tutorial.
Reading other people’s code is an excellent way of becoming a better programmer, as has been discussed by people such as Scott Hanselman. Reading the .NET Framework’s code is one way to do it, but don’t forget that there’s plenty of code lying around on the Internet; some of it is even open source. Sites like Codeplex or Sourceforge are great places to start.
(Cross-post from Channel 8.)
Il est possible (on se demande si c'est utile, par contre?) de compiler des projets C# sous Visual Studio 2005 pour le Framework .NET 1.1. Plusieurs articles sur le Web expliquent comment le faire, mais ils sont en anglais. Je vais me contenter de traduire (plus ou moins fidèlement)
ce post de
Jomo Fisher, developpeur dans la team MSBuild.
- Copiez le fichier mis à disposition ici (ou téléchargeable ici) dans le dossier
C:\Program Files\MSBuild\. Appelez-le CrossCompile.CSharp.targets. - Ouvrez le fichier projet (
*.csproj) du projet C# que vous souhaitez compiler pour le Framework 1.1. - Cherchez la balise
Import et remplacez son attribut Project par : Project="$(MSBuildExtensionsPath)\CrossCompile.CSharp.targets" - Chargez le projet dans Visual Studio 2005.
- Le programme vous affichera un message d'avertissement vous indiquant que le fichier de projet a été modifié. Indiquez que vous souhaitez ouvrir le projet en mode normal.
- Dans le menu déroulant qui affiche 'Any CPU' (à côté du bouton 'Start Debugging') choisissez l'option 'Configuration Manager'.
- Dans la fenêtre qui s'ouvre, sous la colonne 'Platform', choisissez '.NET 1.1' et fermez la fenêtre.
- Pour vérifier que vous compilez bien pour la version 1.1 du Framework, essayez de compiler un projet qui contient des spécificités de la version 2, par exemple:
using System.Collections.Generic, ou public partial class...