Great How To for Strong Naming assemblies in VB.NET

Consume a .NET Assembly from a classic ASP page. by Darren Neimke


All I would add is that RegAsm lives in:


Beware of parameterized constructors, i.e. defining a Sub New() with parameters, if you do this your class will not be eligible for COM registration and won’t show up in the registry or be creatable from your ASP pages / VB components.

Failed to generate a strong name key pair — Access is denied.

I got the above error when trying to generate a strong name key running filemon (see it showed that there was a file access error for me on the folder:

C:Documents and SettingsAll UsersApplication DataMicrosoftCrypto

I had to give myself permissions on this folder and tell windows to propogate them to all the child objects then I could successfully generate a key using

SN.exe -k mykey.snk

This is the first time I’ve used filemon but I doubt it will be the last.

Smoke this – Execute Parameterized Stored Procs with less code.

Okay so it turns out it’s all about performance (read my previous post) not forcing VB6 developers in ADO to set command parameter attributes like size and type, meant an additional round trip to the database. I don’t have a problem with MS taking this functionality out for the default but they could have allowed us a way to turn it back on.

Fear not I a have written a class that will go off to the database fetch all the attributes of the parameters in your query so that all you have to do is specify the values. WARNING: This will slow things down two trips to the database are slower than one, the only way I can see you could remove some of this overhead would be come up with a caching scheme.

I have tried to comment the code so you should find it fairly straghtforward to use, I have only tried using it on SQL Server 2000 so far. The source is attached to this post for your dining pleasure. (1.51 KB)

What were they smoking?

What were the MS programmers smoking when they coded the System.Data.SQLClient and System.Data.Oledb wrappers? My beef is that under VB6 I made extensive use of parameterized stored procedures, with a couple of functions that handled the creating the connection and command object I had reduced the amount of code to:

Set Cm = GetCm(“sp_MyStoredProc”)

For a recordset it took a little more effort:

Set Cm = GetCm(“sp_MyStoredProc”)

For a parameterised query:

Set Cm = GetCm(“sp_MyStoredProc”)
SetCommandParameter Cm, “@MyParam”, “Test”

With this has increased greatly as now I have to specify the Direction of the paramter and the size or get a runtime error!! Surely any observer can see this is a step backwards. If a stored procedure’s parameter is altered so that the application now sets the wrong parameter direction and errors this is going to cause pain. If the reason this has been introduced is to speed things up then where’s the option to turn it off and do it the old way?

If MS are trying to encourage VB6 old timers like myself to adopt their fancy new .Net then they should be trying to make my life easier not cause me to rip what little hair I have left out!


London Dot Net User Group (DNUG)

I am off to my first DNUG meeting where I’ll be participating in the XP game. Hopefully my understanding of agile programming techniques will be increased profoundly and i’ll also get to talk tech with like minded souls instead of boring the ears off my friends and relatives.

That’s the big problem with being a tech-head, I find myself almost apoligising after responding to what I do for a living, unless the interviewer happens also to love all things binary. If that is the case I find I end up spending hours talking to that person an ignoring all others, i’m sure I have a form of OCD and my wife agrees.

DNUG was founded by Ian Cooper when he discovered there were already many user groups in the US but none in London, it is free to join and the central activity is a meeting a month to discuss new technologies that will impact dotnet developers. If this sounds appealing you can subscribe to the mailing list here and if any of the topics catch your eye sign up and come along.

Dealing with spam in Outlook 2003

Here is a simple strategy that can help you deal with spam in Outlook 2003. Using this method you can automatically direct any spam emails you recieve to one folder (i.e Junk or Deleted). It uses a very simple mechanism, in Outlook 2003 it is possible to move email to a folder if it is not sent from someone who’s email address is already in one of your contacts folders, you can do this in Tools > Rules and Alerts.

That is not the end of the story, if your anything like me then you probably do quite a bit of emailing and you would find it pretty inconvienent to have to create a contact for everyone you get email from. Well you don’t have to, Mapilab have created an Outlook 2003 add-in that will do this for you. It is not free but it is only US$15 and you can get it here. The add-in once installed can be used to process all the emails in a folder that you have already received to create a contact for the sender if one does not exist already. It can then be configured to create a contact (if one doesn’t already exist) everytime you reply to an email. I have created an ‘Unsorted Contacts’ folder where these are put. The only time you really have to delve into your junk mail folder is if you signup to a site that needs to email you to register, then you simply find the message, hit reply and a contact will automatically be created for that address so future emails will get through.

So far this method has worked well for me, it is quite a cheap option and whilst it’s not perfect it makes my life a lot easier.

Land Rover vs The Blogger

When Adrian wasn’t happy with his shiny new Discovery 3 he sent a message to Land Rover by post, when this didn’t effect a response he created a ‘war blog’ to try and get one. Land Rover have admitted that they monitor the blogosphere and admitted that they should have got in touch with Adrian eight weeks ago before the negative PR generated by Adrian’s blog had time to do damage.

In short if you feel you have been wronged as a consumer and wish to seek retribution then maybe you should consider starting a blog about it.

Read Adrians Post on the result..

I’m Anti Anti Virus

The topic of anti virus software came up at our last meeting, I am opposed to installing anti virus software on our workstations, I view it as shutting the gate after the horse has bolted. We use a third party to scan all our inbound emails, keep all our machines as patched up to date as possible and of course we use a firewall to protect us from the big bad web.

The only areas we are vulnerable is from users downloading files from the web and portable media / flash drives, so we need a utility that will protect us in these places. Ideally there will be a piece of software out there that can scan downloaded files and quarantine them if they contain a virus. It would need to do the same for newly inserted CD’s and USB flash drives. Because we develop software on our machines we don’t want the pain of something like Norton AV which sits in the background monitoring all files and which has the potential to cause problems, if you don’t believe me check out microsofts knowledge base articles they are littered with ‘disable your AV software’.

If you know of a piece of software that could do this for us and can recomend it then please leave a comment or drop me an email to Kitesurf<at> Alternatively if i’m way of the mark about how many problems are caused by AV software and you can recomend a scanner that will not negatively impact our developers then that would be great also. another agency dedicated to helping african universities and schools

Excerpt From their site:

“Computer Aid International has already shipped over 50,000 PCs to more than 90 developing countries. Of those 50,000 shipped over 25,000 have gone to educational institutions and the remaining to community organisations working in fields as diverse as HIV/Aids, environment, human rights, and primary healthcare.”

I contacted James at computeraid to see what types of computer equipment they need, currently they will accept working pc’s from PII 233mhz and up. I am going to try and collect as many machines as possible and then arrange to transport them to their workshop in north london. If you are local to Oxted, Surrey and you have an old (working) PC you no longer have a use for then if you would like to donate it contact me at Kitesurf<at> and I will take it to their workshop in north london at the end of the month.

They also accept CRT 15-17″ colour monitors, leads and printers. using IT to help Africa

What the Widernet eGranary Digital Library project  does:

Most schools in developing countries do not have an Internet connection; and where they do exist, they are slow, unreliable and very expensive. The WiderNet Project’s eGranary Digital Library delivers digital information directly to Web servers inside institutions, bypassing the Internet.  More than two-million educational documents are currently delivered to more than 50 institutions in Africa giving at least 300,000 students and professors access to information over their local area networks (LAN) quickly and at no cost.  The eGranary Digital Library regularly adds new content that is provided by authors and publishers all over the world who want to enhance the educational opportunities for developing countries.

Please see the menu below for more information about the eGranary Digital Library. If you can’t find what you’re looking for, contact Cliff Missen, director, at 319-335-2200 or