|| Monday, November 14, 2005
You need: Visual Studio 2005, IIS 6.0 and Visual Studio 2005 Web Deployment Projects (Beta Preview). Of course, the .NET Framework 2.0 should be installed.
The site has one simple page: Convert.aspx (C#, separate code file):
As you can see, this page is being run with the ASP.NET Development Web Server. Also works fine with IIS 6.0.
Next, let's add a deployment project to our Web project:
Build it, and in IIS, create a new application and map it to the Debug directory. Execute the page:
Oopsie, what the hell happened here? The answer can be found by digging into the Temporary ASP.NET Files directory:
Let's have a look at the generated vs precompiled assemblies in ILDasm:
So what's the difference? Well, it happens that by default on-demand compilation and precompilation behave differently in the way the pages (page classes) are stitched together. In one case we have a quasi-random name, and in the other we have the class name as it was set in our Convert.aspx - Convert. And this rather obviously clashes with System.Convert (I have a certain talent on picking about the single problematic name).
Why is the Convert name retained? Look in Property Tabs for the deployment project:
By default "Allow this precompiled site to be updatable" is checked - which after all is very useful. But not in this specific case where my Convert class clashes with System.Convert...
In my blog entry Crashing Visual Studio 2005 for Fun I described how to crash Visual Studio 2005. Scott Guthrie followed up, and since then I was in permanent contact with team members. After some research, it turned out that it (a) was seemingly reproducible only on my machine, and (b) likely a tooltip issue.
What is going? Well, my machine is equipped with a Matrox P750 and has three monitors attached, spanning a single 3840x1024 "display". This strechted single display is managed by Matrox PowerDesk-HF, and it comes with a couple of desktop settings to make applications play nice on three physical monitors. One of those options is "Prevent tooltip spanning in strechted mode":
What does this option do? Imagine that I have an application full screen on the middle monitor - without that option turned on, tooltips "overflow" to the monitor to the right (you only see the background image in this screenshot, but that is the 3rd monitor):
Now guess what - once I turn that option on, VS05 crashes the way I described in my previous blog entry. It took me a couple of reboots, configuration from scratch and quite some testing to finally figure out the root cause for this crash.
|| Sunday, November 13, 2005
|| Saturday, November 12, 2005
When I saw this "interior design" store named Avalon in Valle Gran Rey, La Gomera, I had to take a photo:
Quite fitting for Windows Presentation Foundation
|| Thursday, November 10, 2005
I just finished a Web-based C# to VB.NET converter for .NET 2.0. It took me about half an hour and 20 lines of code. How come? Well, Daniel (#develop 2.0 PM) did a video on NRefactory, which is at the heart of #develop's parsing infrastructure. I took some of his demo code plus some of #develop's internal code converter, and put it into a ASP.NET 2.0 page. Presto, that easy if you can stand on the shoulders of giants.
Oh, and I actually put it online, here is the link: C# to VB.NET converter (you can find the source code for a simpler VB.NET implementation of the converter here).
|| Tuesday, November 8, 2005
Now, I did not set out to crash it intentionally, but at least it is fully reproducible. What did I do? Well, I wanted to build a site based on the code I wrote in the blog entry Writing a Subversion-backed VirtualPathProvider for ASP.NET 2.0. So I created a new directory for the site, and simply put the code from the download into a subdirectory (which already exists in the zip file):
Of course I went ahead and opened MyNewWebSite in Visual Studio 2005:
Nothing unexpected so far, I can expand all directories just fine in Solution Explorer:
However, as soon as I hover over SubversionVirtualPathProvider.cs, Solution Explorer goes grey. Totally grey. As in no icons, no tree, no nothing. So I File / Exit Visual Studio 2005 (saying No to saving the solution), and kabooom, here is my friend the error reporting tool:
Oh, and btw, an empty App_Code directory won't do the trick.
|| Thursday, October 20, 2005
To put this into the right perspective - I am a very peculiar user of word processing applications. I spend most of my time with writing or reviewing documents. That is, the feature areas I care about most are revision tracking and commenting.
To illustrate my point, I took the following screenshot of Word:
This is a rather orderly document, with one comment tacked to a section of a sentence, plus I added "stuff" (a pointless edit). During the lifetime of this document, more comments will be added, as well as edits by multiple people.
So what do I do once all comments are in? Yep, accept or reject the changes. If I am fine with the changes, I mark that block containing all the changes, and go to the toolbar to accept the changes:
That's how it works in Microsoft Word. Now let's take a look at OpenOffice.org Writer:
I couldn't care less about the missing toolbar to access the reviewing functionality directly, however, I do care deeply about the internal workings:
- Comments Added via Insert / Note. But don't make the mistake to expect to be able to select a portion of your text to associate it with - once the note is inserted, the marked text is deleted!
- Changes Making changes to the document works as expected. But look at the above screenshot again: yes, accepting and rejecting changes is done in a separate dialog box! See for yourself:
That might be practical for a small document, but definitely not for one that was reviewed by 5+ people and contains 100+ changes (which, funny enough, does happen a lot for specification documents or book chapters...).
Without a proper editing workflow, OOo is not going to play a major part in my everyday work process any time soon.
|| Sunday, October 16, 2005
The ASP.NET 2.0 Deployment Guide is a reference for web hosters who are interested in adding ASP.NET 2.0 to their existing Windows hosting service. Besides improving developer productivity, ASP.NET 2.0 also provides benefits for hosted environments, including support for shutting down inactive applications and locking down rogue applications. Enhanced health monitoring configuration can be used to set thresholds and severity levels for monitoring the health of ASP.NET.
|| Saturday, October 15, 2005
|| Friday, October 14, 2005
Remember my call to action in Web applications and SMTP proxies don't mix well (it seems)? I mentioned that I am guilty as well - not only for Web applications as it turned out, but also for other server-based software, such as the Subversion post-commit hook I wrote.
You can already guess the contents of the change log (the last public version was 1.7):
- SMTP authentication & SMTP server port options added
If you are running the hook today, all you need to do is copy the new post-commit.exe over your existing one (assuming you use 1.7), and add the following four lines to your post-commit.exe.config's <appSettings> section:
<add key="SMTPAuthentication" value="" />
<add key="SMTPServerPort" value="25" />
<add key="SMTPUsername" value="username" />
<add key="SMTPPassword" value="password" />
Those values default post-commit.exe to the 1.7 behavior. To use authentication, set SMTPAuthentication to BASIC, and provide username and password. Most of the time, you will not need to play with the server port.
Finally, here is the usual binary & source code archive:
SvnPostCommitHook18.104.22.168014.zip (424.24 KB)
© Copyright 2020 Christoph Wille
newtelligence dasBlog 2.3.9074.18820