Wednesday, June 29, 2011

SharePoint 2010 SP1 and Office 2010 SP1 released!

SharePoint 2010 SP1 was released yesterday!

You can read more about the details of SP1 here: http://technet.microsoft.com/en-us/library/hh285676.aspx

To download SharePoint 2010 SP1, you can get it from here: http://support.microsoft.com/kb/2460045

For Office 2010 SP1, you get the 32-bit and 64-bit versions here:

32-bit:
http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=26622

64-bit:
http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=26617

Tuesday, June 21, 2011

ASP.Net Universal Providers

In an effort to unify the various Providers in the ASP.Net framework such as the ASP.Net Membership Provider, Role Provider, Profile provider etc. the Microsoft team has released an Alpha release of the ASP.Net Universal Providers.  One of the major benefits of having a "universal provider" is that the same code base can be used to access SQL Server, SQL Server Compact Edition as well as SQL Azure simply by changing the underlying database connection string!

You can read more about the new ASP.Net Universal Providers here: http://www.hanselman.com/blog/IntroducingSystemWebProvidersASPNETUniversalProvidersForSessionMembershipRolesAndUserProfileOnSQLCompactAndSQLAzure.aspx

If they can implement such a thing so as to encapsulate other major database providers such as Oracle and MySQL, it will make code maintenance across different database platforms a snap!  I guess all we can do is cross our fingers and wait....

Saturday, June 11, 2011

Fixing the IE Download Limit

If you have been frustrated with the IE Download Limit configured in nearly version of Internet Explorer,  fortunately, Microsoft has finally offered an easy fix to increase the limit.

In the past, you would have had to manually modify some registry key entries or run a script which would perform the registry entry modifications for you.  But now, you can simply run an executable which will make the modifications for you and it is all described in a Microsoft Support Knowledgebase article:

How do I configure Internet Explorer to download more than two files at one time?
http://support.microsoft.com/kb/282402

Thursday, June 9, 2011

Setting the Name attribute in HtmlInputHidden fields

I was recently creating a Web Form that was using a Submit button with the PostBackUrl attribute configured to a 3rd party payment gateway (in this case, I was using Authorize.Net).

As you may or may not know, when you configure the PostBackUrl to an external website such as a 3rd party payment gateway, there is really no opportunity to perform any server side processing prior to submitting the form.

Fortunately, I found a reference to this article in the ASP.Net Forums which provides a workaround specifically for such a scenario: http://www.jigar.net/articles/viewhtmlcontent78.aspx

So after compiling a class to handle the RemotePost, I wanted to add my necessary hidden fields for submission to the Payment Gateway.

I first tried simply adding the Html Input Hidden Fields that were already present in the form.  Unfortunately, this did not work at all since the names for the hidden fields are altered by ASP.Net into a convoluted string which seems to indicate the hierarchy of the control in relation to other controls on the form.

Given this, it immediately became obvious that I would have to parse out the actual names and then assign the correct names.

Unfortunately, simply by using the following code:


HtmlInputHidden authNetHdnControl = new HtmlInputHidden();
                    authNetHdnControl.Name = strHdnControlName;
                    authNetHdnControl.Value = hdnControl.Value;

I could not get the code to work!  Each time I attempted to set the Name attribute on the HtmlInputHidden control, the Name would come back as null (even though the attribute provides a getter and setter).

Based on a hunch, I simply set the ID for the control instead, rather than attempting to set the Name attribute explicitly:



HtmlInputHidden authNetHdnControl = new HtmlInputHidden();
                    authNetHdnControl.ID = strHdnControlName;
                    authNetHdnControl.Value = hdnControl.Value;

Voila!  Everything worked properly and the Name attribute was being set based on the value I set for the ID attribute.

So, if you run into this problem yourself, just remember to set the ID attribute just like you would for a standard ASP.Net Server Control (even though the control is an Html Server Control)!




Monday, June 6, 2011

My SharePoint Designer Wish List

If you have worked with SharePoint Designer for any length of time, there are probably numerous features you wish you had, but don't.  As Microsoft would state: "Use Visual Studio instead!"  Well, in many scenarios, using Visual Studio simply is not an option because the environment dictates that workflow development cannot be published using Visual Studio.  Therefore, I am forced to use SharePoint Designer. 

Given this forced restriction, below is a brief list of features and capabilities that I wish I could use in SharePoint Designer:
  1. Be able to copy and paste from any dialog regardless of whether it is a String Builder Dialog or an E-mail message dialog
  2. Be able to drag and drop actions from one step to any other step
  3. Be able to copy and paste existing actions within a workflow
  4. Be able to use Encoded Absolute Url for Lists other than Document Libraries
  5. Be able to move actions in and out of if/else blocks
  6. Be able to right click on any action and convert it to a snippet
  7. Be able to move back and forth between design view and code view similar to designing and developing with ASP.Net Web Forms
  8. Provide a design surface similar to Visual Studio with drag and drop capabilities of any action, condition, step etc.
  9. Be able to design a "SharePoint Designer-compatible worklow" in Visual Studio and import it into SharePoint Designer
  10. Be able to put break points, debug assertions or traces in a workflow
  11. Be able to step into and out of workflows by attaching to a SharePoint process
  12. Be able to output Debug or Logging messages to a log file or to a Web Part, MessageBox window etc.
  13. Be able to re-use content types across several Collect Data steps
  14. After deleting a conditional statement, be able to move the statements nested within the conditional statement elsewhere.
  15. After adding a lookup for a user, be able to view and edit the details for the user lookup.

Friday, June 3, 2011

Allowing drive redirection in Windows Remote Desktop

If you have ever wanted to map a drive letter over a Remote Desktop session and have discovered that simply changing the drive redirection in the Remote Desktop client is insufficient, you may have to modify these settings at the server level.


  1. At the Run prompt, type gpedit.msc
  2. Expand the node for Computer Configuration
  3. Expand the node for Administrative Templates
  4. Expand the node for Windows Components
  5. Scroll down until you find the node for Terminal Services
  6. Beneath this node, you should find a node for Terminal Server-->Device and Resource Redirection
  7. After clicking on this node, you should find a set of group policies
  8. Amongst these group policies, look for the policy that states "Do not allow drive redirection"
  9. Open the policy by double clicking on it
  10. Select the radio button for Disabled and click the OK button
  11. Re-connect via the Remote Desktop client
  12. You should now see your local workstation drive letter mapped on the server!

Thursday, June 2, 2011

Jetbrains TeamCity 6.5 released!

Jetbrains (the company that makes Resharper) just recently released TeamCity 6.5.  Many of the limitations that have been present with earlier releases of TeamCity have now been removed with the exception on the limitation of total build configurations (it is still 20).

You can read about the new features in this release here:

http://www.jetbrains.com/teamcity/whatsnew/index.html

If you are upgrading from a prior release of TeamCity, details on how to perform the upgrade can be found here:

http://confluence.jetbrains.net/display/TCD65/Upgrade

http://confluence.jetbrains.net/display/TCD65/TeamCity+Maintenance+Mode