|| Wednesday, November 16, 2005
Lunch breaks always tend to end up being cut short by stupid ideas, today by my insistence to use My (from Visual Basic) in C#. To get up to speed on My, I suggest looking at Development with My in the MSDN library. The class diagram graphic will come in handy later on.
Step 1 is to reference the Microsoft.VisualBasic.dll assembly:
Next, we need a couple of includes:
Why those and not Microsoft.VisualBasic.MyServices? Well, My is just an amalgamation of various classes that live in those namespaces: Computer, Audio, ... All the stuff you saw in the class diagram in the article Development with My.
Basically, you now have the functionality provided by My, but not as nicely grouped with a My object as in Visual Basic. To achieve this, have a look at the article C# My Services by Gildeoni Santos, it sports a download for wrapping My. As the code (at the time of this writing) is based on Beta 1 bits, you will have to put in the correct namespace references and pull the My prefix on all class names.
|| 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
© Copyright 2020 Christoph Wille
newtelligence dasBlog 2.3.9074.18820