Sunday, July 31, 2011

Google Public DNS

If you are having problems with DNS lookups and you are not sure if it is due to your ISP, the easiest way to solve this problem is to use Google Public DNS.

You can find instructions for setting up Google Public DNS here:

http://code.google.com/speed/public-dns/

Wednesday, July 27, 2011

New version of SQL Server Migration Assistant released

A new version of SQL Server Migration Assistant was just released which now supports a broader range of SQL Server platforms including the upcoming release of SQL Server "Denali"

http://blogs.msdn.com/b/ssma/archive/2011/07/12/announcing-sql-server-migration-assistant-ssma-v-5-1.aspx

On a more interesting note, SQL Server "Denali" introduces the concept of sequences which have been present in Oracle but compared to identity key values in SQL Server.  The major discrepancy in the past between the 2 platforms differed in the way that the values were stored.  Whereas Oracle stored the sequence information independent of the table, SQL Server always stored this information directly with the table information.  With the new introduction of SQL Server sequences in "Denali", it will be interesting to see how future Oracle migrations to SQL Server "Denali" occur.

http://blogs.msdn.com/b/ssma/archive/2011/07/12/converting-oracle-sequence-using-ssma-for-oracle-v5-1.aspx

Using Web.config transformations in Sitefinity v. 4.x

In Sitefinity v. 4.x, the connectionStrings element has been moved from the Web.config file to a file called DataConfig.config.  Unfortunately, the move away from the Web.config file does not allow one to leverage Web.config transformations which were introduced as part of Visual Studio 2010.

Fortunately, the folks at Telerik are able to offer a solution that will allow developers to continue to utilize Web.config transformations:

http://www.sitefinity.com/devnet/forums/sitefinity-4-x/developing-with-sitefinity/web-config-transformations.aspx

Tuesday, July 26, 2011

Visual Studio LightSwitch 2011 Released!

Visual Studio 2010 LightSwitch 2011 is now available for download for all MSDN Subscribers:

http://msdn.microsoft.com/en-us/subscriptions/default.aspx

You can read more about LightSwitch here:

http://www.microsoft.com/visualstudio/en-us/lightswitch

Optimizing Performance in Sitefinity v. 4.x

If you are experiencing performance problems and issues with Sitefinity v. 4.x, here are some tips that you may want to try to improve the overall performance and response time of Sitefinity v. 4.x:

http://www.sitefinity.com/documentation/installation-and-administration-guide/tips-for-optimizing-performance.aspx

Uploading User Controls for Sitefinity 4.x

If you previously used Sitefinity v. 3.7, you may notice that the method of uploading User Controls has changed significantly in Sitefinity v. 4.x.

The documentation that outlines the process and steps to upload a User Control in Sitefinity v. 4.x can be found here:

http://www.sitefinity.com/40/help/developers-guide/sitefinity-essentials-controls-adding-controls-to-the-toolbox.html

Monday, July 25, 2011

Using Outlook to read Lotus Notes e-mail messages

If you are a current user of Lotus Notes, but a former user of Outlook, like most individuals, you probably prefer to use Outlook for checking and reading your e-mail messages rather than Lotus Notes.

Fortunately, IBM has released a connector to allow you to do just that! 
It is called the Domino Access for Outlook Connector.

Instructions on how to configure the Domino Access for Outlook connector can be found here:
http://www.sharepoint2007security.com/blog/2009-10-09/using-office-outlook-2010-lotus-notes-backend-connector-damo-windows-7
http://www.slipstick.com/addins/services/connecting-outlook-to-lotus-notes/

If you are looking to download the DAMO connector, you can visit the IBM website to download it.  The most current release of the DAMO connector is Fix 6 and should have a file name of setup.DAMO.InterimFix6.2010.exe.


How can customers get access to the latest Domino Access for Microsoft Outlook (DAMO) release?

https://www-304.ibm.com/support/docview.wss?uid=swg21321549

Saturday, July 23, 2011

Deploying Sitefinity v. 4.x to a shared hosting provider

Unfortunately, due to the nature of deploying to a shared hosting provider, you have to alter the schema associated with the database in order to get Sitefinity to work.  For example, if you are developing on your local machine using 'sa' or similar 'dbo' privileges, when you finally deploy a backup of your development database to your shared hosting provider, you will have to create an associated username/password that will be associated with that particular database.

In those instances, since the 'dbo' schema will no longer be accessible, you will have to alter the name prefix of the database schema from 'dbo' to the user name you created in your shared hosting provider configuration.

Details about how to accomplish this can be found here:
http://www.sitefinity.com/devnet/forums/sitefinity-4-x/bugs-issues/error-invalid-root-node-configured-for-pages-no-root-node-with-the-name-of-quot-frontendsitemap-quot.aspx


In addition, some shared hosting providers provide support for Full Trust, but the hosting providers by default run in "Medium Trust".  Therefore, it is necessary to add the <trust level="Full" /> element to the Web.config file in order to get the ASP.Net Web Site to run under Full Trust (as is required by Sitefinity v. 4.x)

The database script to rename the associated database schema can be found below:


DECLARE tabcurs CURSOR
FOR
SELECT 'dbo.' + [name]
FROM sysobjects
WHERE xtype = 'u'

OPEN tabcurs
DECLARE @tname NVARCHAR(517)
FETCH NEXT FROM tabcurs INTO @tname

WHILE @@fetch_status = 0
BEGIN

EXEC sp_changeobjectowner @tname, 'charity'

FETCH NEXT FROM tabcurs INTO @tname
END
CLOSE tabcurs
DEALLOCATE tabcurs

NOTE: You should run this script to change the database owner prior to actually accessing the website for the first time in Sitefinity. If you access the website through Sitefinity first, Sitefinity will attempt to create the necessary database objects for you, thus resulting in potentially duplicate table creation.

Designing a Theme in Sitefinity v. 4.0

As of Sitefinity v. 4.0, the usage of the App_Themes directory has been modified from Sitefinity v. 3.7.  The App_Themes directory is now located inside the App_Data directory.

To learn how to create a Theme in Sitefinity v. 4.0 and above, you can review the documentation here:
http://www.sitefinity.com/documentation/designers-guide/creating-a-theme/registering-a-theme.aspx

Developing Skins for Telerik Sitefinity

If you need to build skins for the Telerik RadControls included within Sitefinity, you should use the Telerik Visual Style Builder to easily modify existing styles or create a brand new style.

You can access the Telerik Visual Style Builder here:

http://stylebuilder.telerik.com/

Thursday, July 21, 2011

Save and Publish in SharePoint Designer

I just recently learned that Save and Publish in SharePoint Designer actually function independently.

Whereas in Visual Studio, when I perform a Publish operation, Visual Studio automatically saves my current changes, performs a build/compile and then proceeds with the publish operation, SharePoint Designer does not appear to do the same thing.

Instead, it seems that the Publish operation in SharePoint Designer simply publishes the last saved copy of the workflow rather than saving the current content in the workflow designer prior to publishing the workflow.

Therefore, in order to ensure that the latest changes you have made in workflow designer are committed, you will have to perform the Save operation prior to performing the Publish operation.

Creating a Url hyperlink in SharePoint Designer

Unfortunately, as you may already know, SharePoint Designer 2010 does not offer a great way to obtain the Url  and hyperlink to an item such as a List within SharePoint.  Of course, this makes it very difficult when you are composing e-mail messages within SharePoint Designer to send as part of a custom workflow.

Even though the solution is definitely less than ideal, the solution I discovered was this:


  1. Use the Extract Substring from Start of String action to extract the base Url from the Encoded Absolute Url
  2. Use a Workflow variable and the dynamic string builder to concatenate this value with the Current Item:Path for the list
  3. The resultant Url stored in the workflow variable should be the correct Url to the List

Tuesday, July 19, 2011

Resolving Moles Assembly Reference issues

If you are experiencing issues with Moles Assembly Reference issues when loading a Visual Studio 2010 project, you will probably have to go through the following steps in order to have Visual Studio fix up the assembly references for you so that you can actually successfully compile your project:


  1. Right click on the solution and select the menu option for "Upgrade .Moles files"  
  2. You will then get a dialog prompt asking whether or not you want to update all the .moles files in your projects.  
  3. Click on the OK button to proceed with the upgrade.
  4. Re-build the solution.
  5. If everything went well, the solution should now successfully build.
  6. If things did not go so well, you can try the solution posted here: http://samirvaidya.blogspot.com/2011/02/failed-to-generate-strong-name-key-pair.html


Monday, July 18, 2011

Troubleshooting SharePoint 2010 Error Messages

If you encounter any SharePoint error messages, odds are you will see some type of Correlation ID associated with the error message on the screen.

Fortunately, if you have that error message, you should be able to further investigate the issue through examining the SharePoint logs, or else simply convey this information to your SharePoint Administrators and they should be able to pinpoint the issue for you.

The details on how to utilize the Correlation ID to troubleshoot SharePoint error messages can be found here:
http://sharepoint.microsoft.com/Blogs/GetThePoint/Lists/Posts/Post.aspx?ID=353

Wednesday, July 13, 2011

Easy ways to create Virtual Machines for VMWare

One of my colleagues just came across this site which allows you to easily create configurations for VMWare virtual machines:

http://easyvmx.com/

SQL Server 2008 R2 SP1 released

For anyone currently using SQL Server 2008 R2, Microsoft recently released SP1.  The latest service pack can be downloaded here:

http://www.microsoft.com/download/en/details.aspx?id=26727

SQL Server 2012 RTM Released

SQL Server 2012 was recently released.  There are many new features in SQL Server 2012, but one particularly interesting feature is a new feature called LocalDB which sounds a lot like SQL Server Compact Edition.  Based on what I have read so far, it sounds like how I wished SQL Server Express Edition worked with the App_Data folder in ASP.Net.

You can download the latest Trial/Evaluation version here:

http://www.microsoft.com/download/en/details.aspx?id=29066

You can download the Express Edition here:

http://www.microsoft.com/betaexperience/pd/SQLEXPCTAV2/enus/default.aspx

Precompilation for Web Application Projects

If you wish to utilize precompilation for Web Application projects just as you were able to do using precompilation for Web Site projects, fortunately, you can do this through a Web Deployment project.

You can download and install the Web Deployment Project installer for Visual Studio 2010 from here:
http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=24509

You can then follow the same steps in Visual Studio 2010 as the steps described for Visual Studio 2008:
http://amiraryani.wordpress.com/2008/10/13/pre-compile-web-application-by-vs-2008/

Below is a screenshot of the dialog from the Property Pages of the Web Deployment project here:

Sunday, July 10, 2011

Converting a Web Site project to a Web Application project

I recently had to convert a Web Site project to a Web Application project and unfortunately, the entire process is largely manual even while using the latest release of Visual Studio--Visual Studio 2010 SP1.  There is an MSDN article which describes this process (http://msdn.microsoft.com/en-us/library/aa983476.aspx), but I have found numerous things missing from the documentation, therefore, I am outlining the steps I followed here:

  1. You will have to first create a blank or empty Web Application project for the target .Net Framework (such as .Net 3.5 or .Net 4.0 etc.)
  2. You can then add all of your existing items from your Web Site project to the newly created Web Application project
  3. If you have an App_Code folder in your current Web Site project, you will need to rename the folder to something such as CodeFolder or ClassFiles etc. due to this problem with the App_Code folder in Web Application projects as described here: http://vishaljoshi.blogspot.com/2009/07/appcode-folder-doesnt-work-with-web.html
  4. For any folders that have content contained within them, if there are any .aspx.cs or .cs files that will need to be included as part of the compilation, you should highlight all of the items and open the Properties menu.  For the Build Action property, set the Build Action to Compile.  For any .aspx or .ascx files, ensure that these files still have the default Build Action set to Content.
  5. If you have any missing project references, you will have to add the appropriate references through the Add Reference Dialog.
  6. There may be several instances where the original .aspx or .ascx files cause compilation errors that were completely missed/unnoticed in Web Site projects.  In those instances, you will have to manually correct those errors.
  7. Unfortunately, you may have to correct each error on a file-by-file basis while building/re-building between each change since Visual Studio will usually not be able to display all of the errors in the Web Application project simultaneously. 
  8. Since the creation of the designer files associates the partial classes with a namespace, you will have to use the "Surround With" option to surround all of your code behind partial classes with a namespace.
  9. Unfortunately, doing this also requires you to update all of your Page Directives for the Inherits attributes to match the corresponding namespace and class name for each and every one of your pages/controls as well.  If you are using a tool such as Resharper, Resharper should provide you with Intellisense to autocorrect the fully qualified name to include the namespace in the Page Directive.
  10. If you have an existing Global.asax file, you will need to copy the appropriate code from it and delete the existing Global.asax file.  You can then re-create it by adding a new Global Application Class.  This is required because there is no option to "Convert to Web Application" for a Global.asax file.
  11. For any .aspx or .ascx files you have in the project, highlight all of the items and select "Convert to Web Application".  This will generate the appropriate designer files for you.
  12. Re-build the project until all errors have disappeared.  If no errors display, you have successfully converted a Web Site project to a Web Application project!  Whew....