Sunday, October 28, 2007
#
If you're in Belfast this Monday (29th October) and interested in getting a peek at some of the vs v2008 and .net 3.5 enhancements, I'll doing a user group talk for
Nimtug , taking a quick lap around the IDE and the various language enhancements. Thanks to the support for multi-targetting built into vs 2008, it should be of interest to anyone using .net 2.0 or higher.
Monday, August 20, 2007
#
About this time last year I spoke at a conference organised by Software Developer network in the Netherlands. It was a windows developer conference with the usual asp.net/vb.net/c# tracks, but they'd added a DotNetNuke track as well. The sessions were all really well attended, so this time out they've expanded their coverage and there are now two dotnetnuke tracks with more than 20 sessions over the two days, as well as 80+ other topics. If you're interested in DotNetNuke and can get to Arnhem in mid-September I recommend it.
As well as our first 'official' European conference, we've also having a US based conference - this time with a couple of tracks at the devconnections conference in Las Vegas in November. It's a much larger conference with approximately 4700 expected over the 4 days. The lineup and sessions there are excellent, particularly as theres no PDC this year, and we're hoping to get a good turn-out for the DotNetNuke tracks. Personally I'm just hoping I don't get drawn in the same timeslot as one of the big hitters like Scott Guthrie :) . If anyone makes it to either of the conferences, make sure and track me down for a few beers.
Monday, July 23, 2007
#
After updating a number of my sites recently, I was greeting with an error stating "The server tag is not well formed..." on a number of pages. One of the applied patches was
MS07-040 which does fix some asp.net issues, but I didn't see where in the code i was doing anything untoward. After drilling down to the code itself it turned out that I had a tag that was using localised resources, but instead of using the "ResourceKey" attribute, mine said
"ResourcêKey " (note the funky "e").
Previously this hadn't been apparent as all it meant was that that field kept it's default value and didn't use the intended resources, but since the patch it causes the error. My guess is that to fix the null byte termination issue, Microsoft has reduced the list of allowed characters in tag declarations to a restricted set (probably ANSI) - i've seen other reports similar to this where code contained ״ rather than " .If you get this error after patching your servers, be sure to look out for incorrect character usage.
Wednesday, June 20, 2007
#
Whilst google's still my weapon of choice for performing searches, I do use live.com from time to time, and had noticed that as well as starting to perform better, they were returning me some good, relevant results. However, earlier on I decided to take a look at the .net implementation of the spring framework (which many of the java types in my current company swear by). Imagine my surprise when I found the following when using live.com.

Initially I figured I must have misspelled it, or else I'd been told the wrong name of the framework, so I quickly fired up google.co.uk, and got the 208,000 results, including the one I wanted at number 3. What's particularly disturbing about this, is that the url spring.net wasn't even returned by live.com!

Wednesday, April 18, 2007
#
I never got a chance to post about this before, but theres a series of interesting looking webcasts on the next version of Visual Basic and Orcas coming up. The first one of these went out tonight, but there were problems with the webcast, so it's likely to be repeated again check the VB Developer Center for updates
Monday, April 02, 2007
#
For those interested in unit-testing, the next visual studio release (currently codenamed Orcas) will have support for unit testing built in as Microsoft are moving the existing Visual Studio Team edition functionality, back into the professional version of the product. It's a typical Microsoft move to roll down features into the lower-priced version of the product as the new versions are released ( who wants to make an early bet that they'll end up in visual web developer express 2009 :) ), but what's perhaps more interested is trying to guess what they'll add to the next VSTS/team edition release to justify the price.
I'm a longtime fan of MBUNIT (I even contributed the code for the asp.net 2.0 version of the rollback facility in the latest release, as we needed the capability for a project in work), and knew that the original creator of MBUnit, Jonathan de Halleux, had taken a job with Microsoft, so did a little googling earlier tonight and found this post on his blog discussing pex , a very interesting looking Microsoft research project that could go a long way to removing a lot of the repetitive drudgery of writing comprehensive unit tests - as the article says:
"Pex enables a new development experience in Visual Studio Team System, taking test-driven development to the next level. Pex analyzes .NET applications. From a parameterized unit test, it automatically produces traditional unit tests cases with high code coverage. Moreover, when a generated test fails, Pex can often suggest a bug fix.
Pex performs a systematic program analysis. It records detailed execution traces of existing test cases. Pex learns the program behavior from the execution traces, and a constraint solver produces new test cases with different behavior. The result is a minimal test suite with maximal code coverage. When a test fails, Pex uses detailed dataflow information to determine the root cause and a potential bug fix. "
Wednesday, March 07, 2007
#
I've been running the various versions of Vista for the past year or so, and have had to live with the compatibility/stability problems with some of my daily toolset. I understand that the need to alter the OS security model has complicated the usual smooth upgrade, and Vista's release date had slipped to an unacceptable degree, so Vista was released prior to the necessary updates being available for various Microsoft products.
I've never felt comfortable with this, as it reeks of a decision made my bean-counters & the marketing department, rather than the engineers themselves, so I've held off from installing Vista on any of machines (except in virtuals). Happily, the updates for the various products are coming thick and fast, so I'll be wiping my laptop and installing Vista this week, rather than having to continue to accept the performance of Virtual PC images on my less than stellar laptop. For anyone in the same situation, heres a list of the downloads I've found useful :
- Service Pack 2 for SQL 2005 can be downloaded here , it contains fixes for Vista and Office 2007.
- Virtual PC 2007 can be downloaded here . Don't try running Vista under Virtual PC 2004, it's not worth the effort.
And keep an eye on Windows Update this Friday-Monday, as Microsoft will be releasing a Vista-specific update for vs.net 2005 (according to this article it will contain 25 fixes for a variety of issues) the VS 2005 service pack 1 update for Vista has been released and can be found here
Wednesday, November 29, 2006
#
Ah, another Microsoft product launch, and another almost too good to be true giveaway. Simply visit http://www.powertogether.com/ , watch a few informative webcasts or do a few handy virtual lab training sessions, and hey presto, free copies of Vista and Office 2007.......
....Ah-ha, but check the smallprint, and you'll find that you need to live in North America to apply (US/Canada/US Military airbases are typically the only allowable entrants) , as clearly the rest of the world would regard free software as the equivalent of a slap in the face. It would be bad enough if this was a once off, but this is clearly a matter of policy, as the same happened for vs.net (http://msdn2.microsoft.com/en-us/vbasic/ms789057.aspx ), and asp.net 2.0 (http://www.learn2asp.net/campaign.aspx) amongst others. This time I notice that even the Canadians have been banished ("and is open only to legal residents of the 50 United States (includes District of Columbia) "), I wonder if my favorite moose-loving Microsoftie can explain what the Canadian's have done lately to be be added to the freebie blacklist like us Europeans?
Saturday, November 04, 2006
#
With the release of vb.net 2005, Microsoft added support for xml documenation tags, a useful feature that c# had had for a few versions. Whilst you could use the documentation tags in vb.net in vs.net 2003, you had to install the vbcommentator powertoy, it's always nicer when support is baking into the IDE itself. To generate documentation templates, you simply have to type three apostrophies i.e. ''' , and vs.net will generate the context and generate the stub i.e. if it's beside a property, it'll generate the approriate xml tags for that area.
Whilst the default's are pretty good, often you'll have a need to alter them, perhaps to match your coding standards (e.g. I often use the <example> and <code> tags to provide guidance to users of my API's), and it's not obvious how to do this as the default aren't exposed via the UI, but you can override them by providing your own implementation in a particular location.
If you're running vs.net 2005, and you're a vb.net developer, create a file called VBXMLDoc.xml, and place a copy of it in your \Documents and Settings\<your user>\Application Data\Microsoft\VisualStudio\8.0 folder and you should be set. Below is a copy of the vs.net 2005 vb.net defaults that should be easy to tweak for your own needs.
<?xml version="1.0" encoding="utf-8" ?>
<XMLDocCommentSchema>
<CodeElement type="Module">
<Template>
<summary/>
<remarks/>
</Template>
<CompletionList>
<include file="" path=""/>
<permission cref=""/>
<remarks/>
<summary/>
</CompletionList>
</CodeElement>
<CodeElement type="Class">
<Template>
<summary/>
<remarks/>
</Template>
<CompletionList>
<include file="" path=""/>
<permission cref=""/>
<remarks/>
<summary/>
</CompletionList>
</CodeElement>
<CodeElement type="Structure">
<Template>
<summary/>
<remarks/>
</Template>
<CompletionList>
<include file="" path=""/>
<permission cref=""/>
<remarks/>
<summary/>
</CompletionList>
</CodeElement>
<CodeElement type="Interface">
<Template>
<summary/>
<remarks/>
</Template>
<CompletionList>
<include file="" path=""/>
<permission cref=""/>
<remarks/>
<summary/>
</CompletionList>
</CodeElement>
<CodeElement type="Enum">
<Template>
<summary/>
<remarks/>
</Template>
<CompletionList>
<include file="" path=""/>
<permission cref=""/>
<remarks/>
<summary/>
</CompletionList>
</CodeElement>
<CodeElement type="Property">
<Template>
<summary/>
<param/>
<value/>
<remarks/>
</Template>
<CompletionList>
<exception cref=""/>
<include file="" path=""/>
<param name=""/>
<permission cref=""/>
<remarks/>
<summary/>
<value/>
</CompletionList>
</CodeElement>
<CodeElement type="Sub">
<Template>
<summary/>
<param/>
<remarks/>
</Template>
<CompletionList>
<exception cref=""/>
<include file="" path=""/>
<param name=""/>
<permission cref=""/>
<remarks/>
<summary/>
</CompletionList>
</CodeElement>
<CodeElement type="Function">
<Template>
<summary/>
<param/>
<returns/>
</Template>
<CompletionList>
<exception cref=""/>
<include file="" path=""/>
<param name=""/>
<permission cref=""/>
<remarks/>
<returns/>
<summary/>
</CompletionList>
</CodeElement>
<CodeElement type="Operator">
<Template>
<summary/>
<param/>
<returns/>
<remarks/>
</Template>
<CompletionList>
<exception cref=""/>
<include file="" path=""/>
<param name=""/>
<permission cref=""/>
<remarks/>
<returns/>
<summary/>
</CompletionList>
</CodeElement>
<CodeElement type="Declare">
<Template>
<summary/>
<param/>
<returns/>
<remarks/>
</Template>
<CompletionList>
<exception cref=""/>
<include file="" path=""/>
<param name=""/>
<permission cref=""/>
<remarks/>
<returns/>
<summary/>
</CompletionList>
</CodeElement>
<CodeElement type="Field">
<Template>
<summary/>
<remarks/>
</Template>
<CompletionList>
<include file="" path=""/>
<permission cref=""/>
<remarks/>
<summary/>
</CompletionList>
</CodeElement>
<CodeElement type="Delegate">
<Template>
<summary/>
<param/>
<returns/>
<remarks/>
</Template>
<CompletionList>
<include file="" path=""/>
<param name=""/>
<permission cref=""/>
<remarks/>
<returns/>
<summary/>
</CompletionList>
</CodeElement>
<CodeElement type="Event">
<Template>
<summary/>
<param/>
<remarks/>
</Template>
<CompletionList>
<include file="" path=""/>
<param name=""/>
<permission cref=""/>
<remarks/>
<summary/>
</CompletionList>
</CodeElement>
<ChildCompletionList>
<c/>
<code/>
<example/>
<list type="">
<listheader>
<term/>
<description/>
</listheader>
</list>
<para/>
<paramref name=""/>
<see cref=""/>
<seealso cref=""/>
</ChildCompletionList>
</XMLDocCommentSchema>
Friday, November 03, 2006
#
It's always annoyed me the length of time Microsoft sit on patches. In the past I've experienced issues with particular products (particularly visual studio.net), and after searching through the msdn.microsoft.com site it's not been uncommon to find knowledge base articles acknowledging the problem, and stating there was a fix but that it was only available via Microsoft PS. If it's been important enough, I've jumped through the hoops-of-fire fun that is contacting PS and promising my first-born in exchange for the fix, but normally I just move on and forget about it. I appreciate that Microsoft are loath to release patches that haven't been fully regression tested, but seeing as these patches often pile up for months if not years before making it to an offical servicepack, it's one of those death by a thousand cut annoyances.
However, it looks like someone with the pull in Microsoft has arranged for these patches to see the light of day in open download format, so if you want to apply particular patches, visit here to download them. For visual basic.net users the two key ones: are KB915038 and KB917452:
Microsoft KB917452 "FIX: You may receive Visual Basic compiler error messages when you are developing a Visual Basic 2005 project in Visual Studio 2005 Visual studio" - in the real world this translates as "if you're foolish enough to run 2 copies of vs.net 2005 at the same time, or else compile a project of more than a few thousand lines, vs.net will fall over more than a drunk on a whiskey bender"
KB917452 "FIX: You may experience performance issues when you use solutions that contain large Visual Basic projects in Visual Studio 2005" -in the real world this translates as "a large solution really means 3 or more projects, if you're insane enough to leave edit and continue on, vs.net will have the breaking strain of a kitkat"
Tuesday, October 31, 2006
#
I've just been reading an interesting article on Mark Cubans
blog about the Google Youtube deal. Whilst theres a degree of speculation in the post, if any of it turns out to be true, it's sad to see how far Google have fallen from their lofty ideals.
Wednesday, October 25, 2006
#
I blogged early about creating your own IE7 search providers and shortly after that it occurred to me that it would work really well if you could point it at your own search engine, something you can now do easily with Google Co-op .
One of the community members over on the DotNetNuke forums, already created one, so a quick trip to here , and I added in this string, and hey presto, my own DotNetNuke search engine.
If you've recently downloaded
IE7 , you've no doubt noticed the new search box in the top right of the toolbar. It's handy for doing quick searches, and it comes with easy options to help you find more providers. The magic that makes this happen is the
OpenSearch API , originally invented by A9/Amazon -nice to see Microsoft not being afraid to adopt an open standard. Whilst you can roll your own, theres a handy online service
here that will generate the details for you and allow you to install it directly.
Thursday, October 19, 2006
#
It's been a while since I've posted anything on this blog. I've been busy moving jobs (which also meant that I've had to brush up on my c#), working on DotNetNuke, and various other bits and pieces.Another reason for the lack of posting, was that I was also suffering a bit from beta overload. These days trying to keep up with the avalanches of CTP's, alphas, betas and RC's is virtually a fulltime job in itself. Now things have settled a bit, i thought I'd dust off this blog.
Recently one of the areas I've been working on most is Windows Workflow foundation. Workflow is an area we're looking at for a future DotNetNuke version, so I checked out the WF bits when they first came out. Sadly, as WF requires full trust code access security (as does WCF - can anyone explain to me why Microsoft made 2/3 of .net 3.0 incompatible with their recommended trust level setup of hosting providers?), we can't use it, as we support medium trust,but aside from that I liked what I saw so have been working away steadily on it. As it's still a little bit off official release, I had to steer through a minefield of helloworld activities and articles with the same workflows (helpdesk anyone?), to find the bits that work, but for anyone coming fresh to this area, theres now some good, free training on WF and the other .net 3.0 components on the Microsoft e-learning site - they're only free for another while.
Thursday, June 15, 2006
#
Until now, versions of the .net framework have always been tied into particular versions of visual studio e.g. vs.net 2000 was tied to the 1.0 version of the .net framework, vs.net 2003 was tied to 1.1 and vs.net 2005 was tied to 2.0 (though you could use MSBee to target 1.1). Similarly, the version of the language has also been tied to the version of visual studio and the CLR, but this is about to change, as there will be a few other releases coming out from the vs.net/clr teams that alter the product, but don't alter the language version or CLR version sequentially as before. I've summarised these forthcoming changes, along with some notes and answers to common questions that were supplied by one of the program managers on the visual basic team
|
Product/Deliverable |
Timeframe |
Language Ver. |
CLR Ver. |
|
.NET FX 2.0 |
Nov 2005 |
VB 8.0/C# 2.0 |
2.0 |
|
VS 2005 |
Nov 2005 |
VB 8.0/C# 2.0 |
2.0 |
|
FX 3.0 (Formerly “WinFX”; Includes Avalon, Indigo, Workflow) |
Windows Vista RTM (2006) |
VB 8.0/C# 2.0 |
2.0 |
|
Visual Studio “Orcas” |
2007 |
VB 9.0/C# 3.0 |
2.0 |
|
FX 3.5 (LINQ) |
2007 |
VB 9.0/C# 3.0 |
2.0 |
Here’s some information on what each version includes:
· FX 2.0: Includes CLR 2.0—generics, etc. Shipped with VS 2005; not much to say here.
· FX 3.0 = FX 2.0 + WPF (Avalon), WCF (Indigo), WF (Workflow). In other words, FX 3.0 is a set of assemblies that has been added to FX 2.0; it only includes service pack-level fixes to existing (FX 2.0) assemblies or the existing languages (VB 8.0). FX 3.0 is installed by default on Windows Vista (and is therefore bound to the Vista RTM date), and available for download on down-level platforms. There currently is not a supported version of Visual Studio that targets FX 3.0, however; you can download extensions to VS 2005 that provides some rudimentary support for FX 3.0 at http://msdn.microsoft.com/windowsvista/downloads/products/getthebeta/default.aspx.
· FX 3.5 = FX 3.0 + LINQ. Basically, you can think of FX 3.5 as the new compilers, tools, and assemblies required to support LINQ. Again, FX 3.5 includes new assemblies (e.g., System.Query.dll) and service-pack-level fixes to existing assemblies. FX 3.5 will ship with VS “Orcas”.
An important thing to note about the above versions of the FX is that they all run on CLR 2.0, which shipped in 2005.
Unlike previous versions of VS, VS “Orcas” will include the ability to build applications that target each of the above framework versions—FX 2.0, FX 3.0, and FX 3.5. You’ll have the ability to specify what framework version the project should target when a project is created, opened for the first time in VS Orcas, and via the property pages. Once a framework version is selected, references, IntelliSense, Object Browser, the Toolbox, etc will be modified such that references that aren’t available in the chosen target are filtered (grayed out, generally).
Some common questions…
· Will I be able to open my 2005 project in VS “Orcas” without upgrading it to FX 3.5?
Yes. Users will have the option to upgrade the project’s framework target the first time they open it in VS Orcas; however, upgrading will not be required
· Will I be able to open my 2005 project in VS “Orcas” then re-open it in VS 2005?
No. Once a project has been opened in VS “Orcas”, it cannot be subsequently opened in 2005.
· Will I be able to use LINQ in my FX 2.0 project?
No. LINQ requires assemblies that are only available in FX 3.5 projects.
· If I already have FX 2.0 installed and my app requires FX 3.0, what do I need to install when I deploy my app?
Because FX 3.0 is just an add-on pack of sorts for FX 3.0, you’ll only need to install the 3.0 Runtime Components, which have FX 2.0 as a pre-requisite.