24 January 2010

Code Signing in Visual Studio 2008

I recently purchased a code signing certificate from GoDaddy.  After a great deal of trouble getting the certificate fully downloaded and installed (more about that later), I then tried to sign the assemblies for an application I had just completed.  To my surprise, I received the an error: “Error Importing Key.  Object already exists.”

After all of the trouble I encountered getting the certificate, I was sure I had the right PFX file, with the private key embedded.  I had chosen that certificate in the signing tab in the assemblies properties correctly.  I was also very sure that I supplied the right password for the private key.  Unfortunately, despite my best efforts, I kept getting the same error.

Thanks to the magic of search with Google, I found loads of articles and discussion groups where users were having similar troubles with the built-in VS signing.  Lots of different solutions were provided.  Unfortunately, none of the approaches worked.  One particular discussion within the forums on MSDN gave a good, though long, summary of all of the ways some developers have tried to fix the code signing problem in Visual Studio 2008.  If you have the patience to review the source material, you’ll find that most blogs or discussions revolve around the same sorts of options; again, none worked for me.

However, I then came across a blog article by John Robbins on code signing.  John gave useful details about a lot of aspects of his challenges, but he also mentioned something I hadn’t seen before: using the sign tool from the Windows SDK to sign the complied assemblies worked for me [NOTE: I’m developing on Windows 7; if you’re using a different version of Windows, you’ll need to download the right version of the SDK for your environment].

While I’m not much for loads of steps and external utilities, John also gave a simple post-build macro you can have VS run.  Based on this blog, this is what is in my post-build for signing the compiled assembly:

"C:\Program Files\Microsoft SDKs\Windows\v7.0\Bin\signtool.exe" sign /f [CERTIFICATE PATH] /p [PASSWORD] /t http://tsa.starfieldtech.com "$(TargetPath)"

The [CERTIFICATE PATH] sequence should be replaced with the path where you stored the certificate locally (the PFX file).  The [PASSWORD] sequence should be replaced with your private key password (not the key itself, but the password you used to secure the key).  The rest of the post build event is pretty generic, except the URL parameter for the timestamp server (the stuff that follows /t).  That particular URL is GoDaddy’s timestamp server.  If you’re using a different CA, you should use the server they provide.

I hope this helps other struggling with the same issue.  If anyone has solved the problem of getting VS to handling signing through the properties dialog, I’d love to hear it. 

05 January 2010

Nielsen/Norman Group’s 10 Best Intranets of 2010

Welcome to 2010!  I hope you had a fantastic new year! 

To start this year on a high note, I wanted to highlight Nielsen/Norman Group’s yearly 10 Best Intranets.   The 2010 edition, like past reports, provides insights into some of the best intranets across organizations of various sizes, shapes and industries.  What I like best about the report (as well as report’s like Jane McConnell’s Global Intranet Trends Report) is the chance to see how different organizations take on the challenge of improving employee productivity through content technologies.

Here are the some of the highlights I discovered:

  • Intranets are getting a higher priority in the enterprise
    Better technology is enabling organization’s to produce better intranets.  NNG also notes the average increase in the size on intranet teams, giving enterprises more resources to produce and maintain these applications; in fact, the average team increased 27% to 14 people from 2009.  In Consejo’s own work, we have seen an increased focus on intranets across all of our clients; this is especially true of organization’s leveraging SharePoint, as much of those implementations involve internally facing applications.
  • Mobile continues to garner attention
    It’s far from a widely adopted feature, but mobile access is becoming increasingly important.  Of the surveyed companies, 30% had special mobile features.  NNG made a specific point about creating unique mobile experiences instead of merely trying to adapt an existing intranet design to a mobile device.  For example, one of our clients built a specific Windows Mobile application to download list items from SharePoint.  NNG cites another client that built an iPhone app for their intranet.
  • Social features gain real traction
    NNG called it the “year of social networking.”  Previously, NNG cautioned organizations about using the word “social” and many of our own clients refuse even use the word; one client prefers to use words like “collaborative” or “interactive” in lieu of social to avoid executive confusion with sites like Facebook.   However, as NNG points out, this trend is reversing and social media (as well as features) is gaining credibility.  For more insight into this area, take a look at the CMS Watch report on Enterprise Collaboration and Community Software.
  • CEO Blogs
    NNG highlights that the typical “boss blog” is getting a bit of a “face lift.”  Instead of the monolithic and “talk at you” approach of historical executive blogs, more organizations are, in NNG’s words, “show[ing] executives with a ‘human face’ and [helping to] make them more approachable.”    Toby Ward at Prescient Digital wrote a terrific blog article on the “8 ingredients of a great  executive blog, ” which summarizes some of the same themes NNG found in their research, specifically the inclusion of social media and audience engagement (like comments).
  • Focus on usability and improving features
    This point is a bit of an interpretation on my part, but NNG cites changes in the ways that organizations are encouraging use.  There’s less of the “built it and they will come” approach and more explicit, upfront research on usability and needs.  At Consejo, we typically encourage our clients to conduct surveys and in-person interviews to ensure the newly designed  intranet creates and improves productivity, as well as reducing the frustration that often accompanies change.  We also use that data to evaluate overall success of the intranet post launch, in addition to conducting post-launch surveys.
  • Continue quality improvement
    A trend that should simply be “par for the course,” NNG cites efforts that many enterprises are taking to improve the quality of their intranets.  Interestingly (at least for a consulting firm that focuses on SharePoint) is that “frequent use of SharePoint” was the first bullet under this heading.  NNG does note that “many other technology platforms were common as well [and that] no one solution guarantees a great intranet,” but I thought it was an interesting point (especially since half of the “winning” intranets in 2009 ran on SharePoint).  As the SharePoint Report 2009 from CMS Watch points out and what we’ve learned through our SharePoint Fast Track offering, collaborative applications like Intranets are definitely a strength of SharePoint; NNG continues to reinforce this idea through their research.  Beyond SharePoint, NNG points out that search continues to be a problem (though improving), editorial workflow is more extensively used to ensure content quality, more organizations are using role-based personalization (as well as personal customization), companies are waking up to the idea that you need to measure success (Trend Micro saved $1.6 MM) and more intranets are creating consistent presentation through the use of page templates (something WCM and portal tools have long included).  All of these trends add up to a vastly different intranet and improved experience.

As 2010 offers fresh opportunities for enterprises to further improve their intranets, it will be interesting to see how the old trends continue and what new trends emerge.  And, while we have seen both successful and unsuccessful intranets in many different kinds of organizations, it’s gratifying to see the progress being made.

We wish all of our clients and potential clients a prosperous new year!  May your intranets bloom!