Wednesday, November 24, 2010

Get service of SVsBuildManagerAccessor fails

Output:
Get service of SVsBuildManagerAccessor fails

When this rather cryptic message is shown in Visual Studio 2010, it's because your one-click publish has failed (perhaps several seconds prior to your push deadline). Even worse, no webpages indexed by Google contain any mention of this obscure error.

The funny thing about Visual Studio publish is that it relies on some Internet Explorer assemblies; if one of these assemblies, specifically, ieproxy.dll, is missing or unregistered, you will get the error message "Get service of SVsBuildManagerAccessor fails" when you try to publish.

The quickest fix for this problem is to either update or reinstall Internet Explorer, alternatively, if you are sure the dll is present and you enjoy the command prompt, you can use regsvr32, to make sure ieproxy.dll is in the registry.

Credit is due to patthewebrat

Wednesday, October 6, 2010

jQueryTOOLS TOOLTIP

I was putting together a quick prototype, and decided to use jQueryTOOLS TOOLTIP. I had been looking around at different jQuery plugins the week prior and was impressed by their demo; it looks great. The good thing about the the jQueryTOOLS TOOLTIP is it is very configurable; read, "it does not look like it does in the demo out of the box so I hope you have a good graphics artist". For something as simple as a tooltip, it was also a little bit difficult to get working properly.

When I tried to use it for my table rows it was a bit choppy when you moused over, also if I did not set the "tip" option, it turned my row into the tooltip (after tearing the row out of the table permanently). For something as simple as a tooltip, if I was looking for a high level of configuration I would just make it myself; I want simple and works within seconds. I will not be using jQueryTOOLS TOOLTIP in any production applications.

Saturday, October 2, 2010

"class" is a Reserved Word in Internet Explorer

I'm a big fan of most of Microsoft's products, even Vista; but I loath Internet Explorer. If you are writing JavaScript make sure you avoid naming variables "class" as it is a reserved word in Internet Explorer (even IE8).

Thursday, September 30, 2010

Entity Framework Web Application Deployment

In retrospect, this seem painfully obvious, but when you deploy your Entity Framework web application, I would recommend that you script your database from SQL Management Studio as opposed to selecting "Generate Database from Model..." in the Visual Studio .edmx context menu.

Yes, I made the mistake of using the model generated SQL to create my production database, but it was a very small project and I had not gone into SQL Management Studio once during coding...

Happy Coding

Friday, September 10, 2010

What I wish I read a decade ago

In the field of software development two types of developers seem to be working their hardest to destroy you application and push back your release date. The first is the "Copy and Paste Kid", the second is "Over-Generalizing Gerry". The Copy and Paste Kid has never heard of functions or constants and makes numerous humorous mistakes. Over-Generalizing Gerry is the evil "genius" who will destroy your code-base by over-engineering you application into oblivion. Watch out, he'll leave no stone unturned because he will either try to anticipate every future situation imaginable or make sure your application conforms (insert buzz word paradigm) religiously. If you let your local evil "genius" gain too much self-confidence he might even try to create his own language or language extension! Pshhh, what the heck did the creators of JavaScript know?

The frustrating thing about talking to even a mild Over-Generalizing Gerry is he will often confuse you with the Copy and Paste Kid! I've finally found an article that articulates perfectly why there is an "over" in "over-generalize". I myself have been guilty of over-engineering all too often; that's why I wish I had read this article a while ago: Tips for maintainable Java code.

The preceding article is probably the best I have ever read as far as good practices outlines go. It applies to any language, not just Java.

Friday, July 30, 2010

Making a custom container control in ASP.Net (without templates)

If you're anything like me, you've tried to make your own ASP.Net server control that had container functionality, but were greeted with this exception when parsing:

"Type 'YourControlHere' does not have a public property named 'SomeHtmlElement'."

Next you goggled all possible permutations of "asp.net server control tutorial" and "child controls". Most of the solutions seemed to be either, "call EnsureChildControls", or "Use a template". However, you already called "EnsureChildControls", and if the ASP Panel control doesn't use a template, why would you?

To fix this inconvenience simply put the following attribute before your control class:
[ParseChildren(false)]

Now you are free to go about your business calling this.RenderChildren where ever and when ever you please!

Thursday, July 8, 2010

Problems with Telerick RadGrids inside a dynamic element?

I was working on a drag and drop system yesterday, but I had some problems in Firefox. When containers resized, the Telerick RadGrids inside of them would overflow instead of resizing properly like they do in IE8 (weird I know) and Chrome.

My first attempt at a work around was to allow dynamic resizing in the server-side RadGrid options. This was effective; however, it had the unfortunate, but not completely unexpected side-effect of allowing users to resize and distort the grid. Although, the main benefit of trying this fix was examining the resulting DOM and discovering an more effective solution:
<MasterTableView TableLayout="Fixed" />
When the table-layout style attribute of the table is changed from "auto" to "fixed" the problem seems to disappear.

It would not surprise me if there was a better solution to the problem out there; I can't claim to be an expert with Telerick controls. All the same, I hope someone finds the information in this post helpful.