Data Warehousing & Data Academy Blog
http://dataacademy.blogspot.com/
Building SSIS (SQL Server Integration Services) Packages programatically from a .NET 4.0 application?
Seeing the following error? (Or something similar?)
(Probably when getting the InnerObject of a TaskHost?)
System.InvalidCastException: Unable to cast COM object of type 'System.__ComObject' to class type 'Microsoft.SqlServer.Dts.Tasks.ExecuteSQLTask.ExecuteSQLTask'.
Feeling *VERY* frustrated?
I certainly was!
Well... the problem is caused because .NET 4.0 needs special handling for loading legacy DLLs. It sounds complicated, but the solution is actually quite simple.
In your app.config, find the startup key, and add the following attribute:
useLegacyV2RuntimeActivationPolicy="true"
So, it will look something like this:
{startup useLegacyV2RuntimeActivationPolicy="true"}
(Only with correct start/ end tags - Blogger doesn't seem to like in-line XML!)
Case solved!
What's your "Dream Computer"? It might be an Alienware Gaming Monster; or a super-sleek iMac - but whatever it is, I can tell you one thing - it costs more than you can afford!
How do I know this? Well, I've been doing a bit of speccing-out (again!) and I've concluded that the computer you really want always costs more than you can afford!
Just take memory as an example. If you can afford 4GB, then the machine you really want would have 8... which is another $200. But if you can already afford 8GB... well then, you really want 16... which is over $1000 more!
And hard disks are just the same. If you can afford 5400 rpm, you really want 7200... but if you can afford 7200, you really want SSD.
So, who is responsible for all this?
Personally, I blame the web sites, with their "Configure & Buy" screens, always tempting you with the next option "up".
Come to think of it... I worked on one of those screens when I was at Dell.
So... I guess it is my fault then!
A good friend of mine is a top High Street fashion designer.
(I'm not going to name-drop; or "out" her as the kind of girl who hangs out with computer programmers! But suffice it to say that, if you are in an office right now, there is a good chance that somebody around you is wearing one of her pieces.)
In a recent conversation, she talked about the importance of "brand identity". It isn't enough to create a beautiful shirt - it has to be part of a collection, which itself has to be a part of a brand; because it is that with which the customer ultimately identifies. And so if something doesn't fit with the "band identity" - it is discarded, because the customer just won't buy it!
So, what has this got to do with anything?
Well... I am often asked about particular approaches taken by Data Academy. In particular, the behavior of the User Interface.
Wouldn't it make sense to put these check-boxes on a tab?
Isn't it more logical for this screen to have the button here?
And I've always struggled to answer these questions. But it occurs to me that although these issues arise in isolated contexts, the answer is that we have to look at the software as a whole - and in this sense, it is all about "brand identity"!
We could put the check-boxes on a tab, but we don't do it anywhere else, so we've compromised our brand identity... and the customer won't "buy it"! (Albeit using "buy it" in this sense to indicate acceptance rather than purchase.)
Now, I will freely admit that the fact that Data Academy even has a brand identity, was happenstance as much as anything else - it arose out of the employment of a fairly rigid, but highly economical UI framework.
But it was good happenstance - and when I next design a piece of software from scratch, it is something I intend to remember.
Read More...