|| Sunday, November 27, 2005
Next week, I will be in Rosenheim, Germany for the ADC 2005. I'll be teaching the Visual Studio 2005 Team System Hands-on workshop (Tuesday as well as Friday), plus doing two talks during the main conference: IIS 7 and ASP.NET 2.0 Health Monitoring. See you there!
|| Thursday, November 17, 2005
|| 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.
© Copyright 2020 Christoph Wille
newtelligence dasBlog 2.3.9074.18820