CodeRush Plugin – Navigate to Implementation

יום חמישי, נובמבר 12, 2009

EDIT: As of version 9.3.2 of CodeRush functionality similiar to that provided by this plugin is provided in the core product and support and builds for this plugin is discontinued... If you need assistance for earlier version of CR, just leave a comment and I'll get back to you. Instead of posting a new a post every time a new build of CodeRush (and the plugin) becomes available, I’ll start to post the binaries here by updating this post. If you are interested in the source code, you can get it here. If you want a walk-through of how the plugin...
2 comments

Calling the Google Closure Javascript Compiler – Code

יום שלישי, נובמבר 10, 2009

Here’s a follow-up to the last post that contained a few screenshots showing the integration of the Google Closure Javascript compiler in Visual Studio. Since I said in the last post that I would make the source available if there was interest, I’m doing that now. The project structure is as following All of the code for accessing the compilation service is in the GoogleClosure project. Initially I didn’t have a Winform project. I split the projects for this post, realizing that some people interested in the code might not have CodeRush. The GoogleClosure project also contains the UI in a...
one comment

Integrating Google Javascript Compiler in Visual Studio

יום ראשון, נובמבר 8, 2009

Friday, Google released some of their Javascript tools. Among them the Closure Javascript compiler. Being excited that Google has released Closure (the compiler), I decided to give it a go. So late Saturday night after the party was over and the kids were sleeping, I played a little with the online UI when I saw that the compiler services are exposed through a REST web service. At that point it would be a crime to go to sleep. 2 hours later… In this screenshot you can see some compiler statistics. (Yes, you can use the compiler service as a pretty-printer or...

CodeRush plugin "Navigate to Implementation" – binaries for CodeRush 9.2.4

יום ראשון, אוגוסט 30, 2009

For convenience, here are the binaries for the Navigate to Implementation CodeRush plugin. It is built against CodeRush 9.2.4. A detailed overview of the functionality of the plugin can be found here. The source code is available on Google Code: http://dxcorecommunityplugins.googlecode.com/svn/trunk/CR_NavigationContrib  
15 comments

Multi-Threading is Hard – Who do you trust?

יום חמישי, יוני 4, 2009

Something has been bothering me for quite some time and I am frankly not entirely sure what to do. I have been working on a multi-threaded server application for over a year and feel that I have a decent grasp on multi-threading. More importantly, I have learned to respect the complexity. So what is bothering me? Over the last few months I have encountered a number of blog posts that propose some solution with code that multi-threaded. The problem – It’s Wrong! Sometimes I send an email to the author, but for the most...
6 comments

SqlBulkCopy Bug Workaround

יום רביעי, מאי 20, 2009

We are using SqlBulkCopy to import large xml documents into a database. However, we encountered a “minor” bug in the .Net Framework related to table naming. It turns out that if you have a dot “.” in the table name, SqlBulkCopy doesn’t work. The problem has been reported and a KB article is available, but without a workaround besides renaming the table. Our problem wasn’t with the actual name of the table(s), but with the name of the schema. The schema naming convention used in that specific database is .TableName. The following code failes with the exception below....
7 comments

Solving an Expensive Database Lookup

יום ראשון, אפריל 26, 2009

We had an interesting problem the other day. In our database (SQL Server 2008) we have a few tables with possibly many millions of records. We send some of the data from these and related tables to a third party service for processing and get status reports back. The problem was that the reports that we get back cannot easily be correlated back to the original records in our database. Let’s say we have a person table and an address table with a 1:m relationship between person and address. The tables could look something like: Together with the person and...
no comments

Adapters and Functional Abstraction

יום שני, פברואר 23, 2009

I can’t decide what I think about the following implementation so I decided to throw it out here. Any thoughts are welcome. In a previous post I wrote about our wrapper around Bouncy Castle PGP encryption. Turned out it worked pretty well except one little problem. The PGP implementation on the receiving end would complain about our signature. In despair I even posted (and later answered) a question on StackOverflow. :-) The problem was that they use an old version of a PGP library that couldn’t deal with our newer v4 signatures. Oh, forget it, I’m not going to bore you...

PGP Zip Encrypted Files With C#

יום שישי, ינואר 23, 2009

On a recent project here at Renaissance, we needed to send files over FTP to some third party vendor. One of the requirements was that the files had to be encrypted using PGP (Pretty Good Privacy). After some research we decided to use Bouncy Castle. Bouncy Castle is an open source C# implementation of the OpenPGP standard. It is available in Java as well. An additional requirement was that the PGP Encrypted files needed to be signed as well. If you have no background in cryptology or PGP and this sounds like gibberish, here’s a short simplified background on...
64 comments

Windows Service Shutdown Problem

יום ראשון, ינואר 11, 2009

In our current project we have a service that handles messages sent to the application over MSMQ. On startup the service initiates a configurable numbers of listeners that processes messages as they arrive. The main reason this listener initialization is bootstrapped through a Windows Service is because we must be able to “survive” a system shutdown/restart. After a restart the queue listeners must get back to their task of processing and endless stream of messages. I’m not going to go into too much detail on the queuing infrastructure we use (I’m saving that for another post), but I want...
7 comments