|| Saturday, June 10, 2006
In less than ten days, this year's ASP Konferenz will take place in Burghausen, Germany. This time, I will be presenting four topics: Windows Workflow Foundation & ASP.NET 2.0, Build Providers in ASP.NET 2.0, IIS 6.0 & ASP.NET 2.0 Secure Deployment and finally Health Monitoring in ASP.NET 2.0.
|| Friday, June 9, 2006
When working with a team, it is always a good idea to have dependencies in a separate folder so everyone can reference them using relative paths:
References from this dependencies folder then look as follows in the MyWinApp.csproj file:
<Reference Include="Boo.Lang, Version=220.127.116.11, ...">
<Reference Include="System" />
<Reference Include="System.Xml" />
So every team member that checks out the project will be able to work in their workspace, as well as the build server will have all the proper references. Great.
But what about the following scenario: depending on Release or Debug, you need different references - how can you solve this problem? The first step is to go and create a directory for each configuration below the Dependencies folder:
Next, copy the assemblies to the respective directories. Plus, you have to modify the .csproj file and add $(Configuration) to the external reference's hint path:
<Reference Include="Boo.Lang, Version=18.104.22.168, ...">
That's it - even Visual Studio will honor this change and still provide you with IntelliSense.
Before closing, I want to mention a new tool - even though it doesn't (yet) support editing the hint path, you should check out Attrice's Microsoft Build Sidekick. It allows you to graphically edit .*proj files:
|| Monday, June 5, 2006
Disclaimer: I am the Senior Project Wrangler for #develop. Therefore I am biased as well as knowledgeable.
Today, we shipped RC2 of SharpDevelop2. For those of you who haven't heard of it before, it is an Integrated Development Environment (IDE) for .NET. I will get to the features in just a second. First, I want to thank all developers that spent time on making v2 a reality. Daniel, the lead developer on v2, actually implemented a nice little tool for showing the project statistics, you can read more and download the utility in his blog Analyzing the code in SharpDevelop. Wow, we started quite a long ago on this baby.
I promised to get back to the feature set. Let's tackle it with more than a grain of blog posts and feature videos:
Supported Programming Languages
My definition of support is as follows: full code completion (aka IntelliSense) and a working Windows forms designer. Therefore, three languages qualify: C#, VB.NET and Boo. Aside from those fully supported languages, you get syntax highlighting for many more.
Speaking of syntax highlighting and code completion: both features are supported for XML files. You can check it out in the xml editing experience feature video (yes, this is available since v1.1!) You get this for MSBuild files too!
Features You Would Expect
Let's start with the integrated debugger. This has been our achilles heel since the very beginning, as implementing a debugger isn't exactly a piece of cake. However, thanks to David, v2 sports a debugger and you can watch a demo.
Let's continue with a simple list: Search & Replace, code folding, code templates (just try Ctrl+J in the editor), a toolbox and more.
Ahhh. At last. Let's see what we got:
- Unit testing (since 1.1, NUnit-based)
- Code Coverage (2.0, based on NCover - read more in Matt's blog post)
- Documentation generation (since 1.1, based on NDoc)
- Quick XML Doc (since 1.1, just try Ctrl+Q to get a preview of the HTML help that will be generated for your XML comments)
- Auto code generation (since 1.1, just try Alt+Ins)
- Code converter - convert your projects from C# to VB.NET and vice versa (since 1.1). New in 2.0: three way with Boo.
- Reports. Yes, SharpDevelop ships with a free-to-use report engine, #report. It was added late in 1.x, now improved for 2.0. Watch the demo
- Support for multiple frameworks - although 2.0 is the default, SharpDevelop can target 1.1 as well as Mono. Even Gtk# is supported.
- Ctrl+Mousewheel zooming. You will like it. I do.
What's Not There
We ain't a big software company, so we have to tackle features in order. Therefore, you won't find ASP.NET support in SharpDevelop, as well as others: CF support (planned for 2.1), version control (planned for 2.1), ClickOnce (planned for 2.1)...
Even if you don't plan on using SharpDevelop for your daily work, give it a try and let us know what you like and what not on our forums. You might even learn about a cool new feature like Component Inspector that is coming with 2.1, code-named Serralongue. And we'd be more than happy to welcome additional developers, testers, writers and translators.
The concept of shelving was made popular by Visual Studio Team System's source control system - it allows you to "shelve" your changes for a couple reasons, like:
- You have to work on a bug fix immediately, but you are in the middle of implementing a new feature. You cannot check in those half-baked changes, only the bug fix. So you shelve your feature work. Once done with the bug fix, you unshelve the feature work and continue.
- Sharing work. Another developer needs the changes you are currently working on, but you are not yet done. So you shelve your changes and the other dev unshelves them and can get productive immediately.
- Code review. Instead of having someone come over to your office (or worse, email the files) to review the changes before checkin, you shelve them and the reviewer can unshelve them.
- Backup. How many times do you leave your workplace with a feature not yet completed? What to do with this build-breaking half-baked work? Shelve it!
Now you get the idea why shelving is pretty neat. Even Subversion does support the concept although it is not explicitly there: the blog posts Shelving in Subversion and Shelving Subversion show how you can make shelving happen with Subversion.
|| Sunday, June 4, 2006
I had seen this error message on another Vista box previously, but at that time it definitely was related to a wrongly installed HDA driver for the onboard sound. This time sound was working, and some videos did actually play, so I was peeved when I got this error message while trying to watch recorded Web casts:
Yesterday, my solution was to boot XP - but leaving Vista just for watching Web casts, well, that is ridiculous. So I set out for a search on what other media players are capable of viewing WMV files. In the end (the third one I tried) I settled for the free DivX Player which nicely views all the recordings Windows Media Player 11 balked at.
Other casualties to report: the Sony Ericsson tools PC Suite as well as Update Service crash and burn on installation (the first one with MDAC, the other one with an already well-hated Java Exception, this time however on x86 and a different index).
|| Friday, June 2, 2006
Now, UAC is painful at times like installation (but getting better according to Reducing Elevation Prompts in RC1), however, there are loads of cool features hidden behind all the glitz of Aero that are really cool. Like Previous Versions:
It uses the Volume Shadow Copy technology already in use on Windows Server 2003, and it "hides" itself as part of System Protection / automatic restore points:
This is definitely one of those features that "sell" a product.
|| Thursday, June 1, 2006
I decided to take the plunge and try running Vista on a daily basis. Thus far the following casualties must be reported:
- Matrox P650 PCIe. No drivers, thus no dual head. Sorry Matrox. In more than ten years this is now the first time that my machine has no Matrox graphics card inside.
- PDFCreator. For some reason the setup msi dies during installation, as well as during the subsequent uninstallation. Too bad.
- Daemon Tools. On the first try, it didn't work. Maybe I'll give it another shot.
Given my previous experiences on my two laptops, it really turns out that the graphics drivers (or lack of) are the #1 issue for getting productive with Vista.
Let's see how long it takes until I hit a snag that makes me return to XP. Copying Application Data stuff to Vista was already quite "interesting" because Firefox and Thunderbird store their settings in Roaming and not Local.
|| Wednesday, May 31, 2006
But Adobe thinks I am too stupid to choose my baseline OS on my own, and presents me with a rather limited choice:
Also note that IE 7+ doesn't render the page correctly (menu). Time to fix your Web page, Adobe.
When you run an application that needs administrative rights (in this specific case via a manifest file), you are prompted with an UAC dialog to allow this operation:
This is the dialog you get for the "default" user, the one you create during setup that is a member of the Administrators group. Contrast that to the dialog a standard user is presented with:
Now, I am fine with prompting the user to enter administrative credentials. However, I am not fine with providing the user with the name of the administrative user(s) on that machine. In my opinion, this is giving away security-related information without need.
Update Of course you can always use net localgroup Administrators to get a list of the members of the Administrators group (Markus pinged me on that one). This feature has been available for ages, true. However, I am not convinced that the UAC convenience of providing the administrative accounts on a silver platter is really necessary.
|| Wednesday, May 24, 2006
This is ridiculous considering that we are fast approaching mid-2006:
© Copyright 2020 Christoph Wille
newtelligence dasBlog 2.3.9074.18820