Thursday, May 31, 2012

Visual Studio 2012 RC now available for download!

You can now download Visual Studio 2012 Release Candidate from MSDN!

http://msdn.microsoft.com/subscriptions

In addition, several other products have been released including Team Foundation Server 2012 RC, .Net Framework v. 4.5 RC and Windows Server 2012 RC.

Tuesday, May 29, 2012

Installing Metalogix StoragePoint

As some of you may or may not know, Metalogix StoragePoint is an RBS (Remote Blob Storage) provider for SharePoint 2007 and SharePoint 2010.

You can download a trial version of Metalogix StoragePoint from here: http://www.metalogix.com/Downloads/StoragePoint-Downloads/StoragePoint.aspx

  1. After downloading and extracting the media, you can run the StoragePoint2010 executable
  2. The one thing I noticed immediately is that the splash screen appears to be a .Net WinForms project rather than an installer-based splash screen similar to the ones generated by DemoShield, by Advanced Installer or other commercial installation programs.  Based on a review of the dialogs, it seems that they are using a modified version of the following tool:  http://sharepointinstaller.codeplex.com/
  3. After running the executable, click on the "Run StoragePoint Install" button on the splash screen
  4. The StoragePoint installation program will then begin.
  5. Once the actual installation begins, I noticed that the installation program also seems to be a .Net WinForms project rather than an installation package based on a commercial installation vendor.   Based on a review of the dialogs, it seems that they are using a modified version of the following tool:  http://sharepointinstaller.codeplex.com/
  6. The prerequisite installer runs and verifies all of the necessary prerequisites are in place.
  7. If you receive an error message regarding the SharePoint Administration Service not being started, you can go into the Services Control Panel and start the SharePoint 2010 Administration service.  You may also want to set the service to Automatic so that it will always be there while using the Metalogix StoragePoint RBS functionality.
  8. Unfortunately, there is no Re-scan functionality in the wizard, so you have to click on the Previous button and then click on the Next button once again to have it re-scan the state of the SharePoint 2010 Administration service.  Once it completes successfully, click the Next button.
  9. On the subsequent screen, click to Accept the license agreement
  10. You will then need to enter the License key as well as the number of WFEs (Web Front Ends) and an Administrative user for the SharePoint Farm.  If you have an Internet connection, you can activate your license online.  After entering all necessary details, click the Next button
  11. On the Database creation screen, you can enter database credentials to create the StoragePoint database.  You can verify the connectivity to the database using the Test Connection button.
  12. On the Database Access screen, you can specify credentials that will be used to connect to the StoragePoint database.  You can once again verify connectivity to the database using the Test Connection button.
  13. After clicking Next, the installation should begin.  The installation essentially deploys a Farm Level Solution and activates the Farm Feature.
  14. If the installation completed successfully, you will see a dialog prompting to reset IIS (using iisreset) as well as re-starting the SharePoint Timer Service on all of the WFE servers in the Farm.  You can click OK to the dialog prompt and then click on the Next button.
  15.  You will see a confirmation screen with a log of the activity.  You can then click Close on this screen to exit the installation.
  16. Clicking on the Close button immediately opens a browser window which prompts for logging into Central Administration
  17. After viewing the License Management screen, you can click back on Central Administration in the left hand navigation to return to the main Central Admin screen.
  18. Under System Settings, you can then click on Manage Farm Features to verify that StoragePoint has been activated
  19. Clicking back on the Application Management link in the left hand navigation, you can now see StoragePoint as a separate menu item and you can begin configuring StoragePoint for use as an RBS provider!



Monday, May 28, 2012

Keeping your Windows 7 and Windows Server 2008 R2 Installation images fully patched

If you need to frequently build machines from scratch with an OS such as Windows 7 or Windows Server 2008 R2 (especially when building test and development virtual machines), it is worthwhile to be able to use fully patched installation media (most often in the form of ISO images).

Therefore, rather than spending an inordinate amount of time downloading and installing the updates from Windows Update, I simply periodically patch my base installation media so that OSes are patched to the latest current set of Microsoft updates.

The tools that help me accomplish this are the following:

  1. Windows Updates Downloader  http://www.windowsupdatesdownloader.com/
  2. RT 7 Lite (for Windows 7)  http://www.rt7lite.com/rt-se7en-lite.html
  3. RT Server Customizer (for Windows Server 2008 R2)  http://2kr2.rt7lite.com/

These are the steps that I follow to get my fully patched installation media:

  1. Get the latest Windows 7 Update Lists (http://www.windowsupdatesdownloader.com/UpdateLists.aspx) from the Windows Updates Downloader site (these work for both Windows 7 and Windows Server 2008 R2) 
  2. Download all of the relevant patches to meet my needs 
  3. Using the Rockers Team tools, use the Integrate feature to begin selecting all of my various hotfixes
  4. Wait while all of the hotfixes are integrated into the respective installation media
  5. After all of the hotfixes have been successfully integrated, use the Rockers Team tool to re-create my ISO installation media
  6. Now when I build my virtual machines, I mount my newly updated ISO images and lo and behold I have a completely patched Windows 7 or Windows Server 2008 R2 virtual machine!

Wednesday, May 23, 2012

SharePoint Broken Link Checker

As most SharePoint 2010 developers know, Microsoft removed the ability to check for broken links in SharePoint Designer which was previously available in SharePoint 2007.

Unfortunately, there are no available extensions to SharePoint Designer or Visual Studio to re-introduce that functionality.  However, a company called QiPoint has created a .Net console application which can be run on a SharePoint WFE to produce a CSV report of all the broken links in specified SharePoint Sites and Site Collections.

This tool supports BOTH SharePoint 2010 and SharePoint 2013:

You can read more about this tool and download it for free from here: http://www.qipoint.com/_downloads/software/SimpleSPTools/Setup.zip

If you want Microsoft to BRING BACK the Broken Links Report/Broken Links checker that was previously available in SharePoint 2007, you can vote for this UserVoice suggestion here: http://officespdev.uservoice.com/forums/224641-general/suggestions/4970699-bring-back-sharepoint-broken-links-report

Sunday, May 20, 2012

Joining 2 or more virtual machines to a domain

If you have ever had to build distributed architecture test environments (such as for Team Foundation Server or SharePoint), there is a good chance that you have to join one or more machines to a domain to get everything to work properly.

I most frequently use VMWare Workstation so the basic guide I have provided here will work best with VMWare Workstation or VMWare Player, but it should apply similarly to other virtualization products as well.

  1. If you have not already done so, build a primary virtual machine that will act as the domain controller.  This machine should have a static IP address and should be configured to be its own DNS Server.  If you are building this virtual machine on a home network, I would recommend using blocking out a set of IP addresses from your router that will not be used as part of the DHCP range on your LAN.
  2. Once you have that initial domain controller virtual machine, you can now configure your secondary virtual machine.  Before you attempt to join it to the domain, make sure you set the Primary DNS IP Address for the secondary virtual machine to point to the Domain Controller's IP Address.  For example, if your Domain Controller is configured with an IP Address of 192.168.0.10, then your secondary virtual machine should be configured with an IP Address of 192.168.0.11 and a Primary DNS Server Address of 192.168.0.10.  
  3. Once you have configured the appropriate IP address configuration for your secondary virtual machine, you should now be able to join it to the domain.  When you are prompted for credentials to join it to the domain, you need to be sure that you enter credentials of a user that has Domain Admin privileges.
  4. If the secondary member server is joined to the domain successfully, you are on your way!! You can follow this same procedure for any additional servers that you need to join to the domain.  
  5. If you are having trouble testing communication between the domain servers (such as by using telnet), you may have to configure the Windows Firewall for Domain Networks.  NOTE: When you join machines to a domain, the Windows Firewall will automatically be enabled for Domain Networks.

If you are attempting to run your virtual machines on a corporate network and you know that Bridged or NAT network configurations will not work (due to Corporate Administrative Group Policies on your host machine), then since you cannot connect your virtual machines to the Internet, you can create a custom virtual network.

  1. From the Edit menu, select Virtual Network Editor
  2. Click on the Add Network button to create a new virtual network
  3. From the drop down list, select a virtual network to Add and click the OK button
  4. Once you are able to view the Virtual Network Editor screen, enter the subnet and DHCP settings
  5. When you have completed entering all of your settings, click on the OK button
  6. Now, when you go back into your virtual machines, you need to edit your existing Network Adapter and select your newly created Virtual Network and click the OK button.
  7. Once you have edited the Network Adapters for all of your virtual machines, you can power on the virtual machines.
  8. If you wish to assign static IP addresses to your virtual machines, you can assign them statically as long as they exist within the range of DHCP IP addresses available for your custom network.  
  9. Once you have assigned a static IP address to your domain controller, you can use this IP address as the Primary DNS IP address in all of your subsequent virtual machines.
  10. Once the network settings have been configured, you should be able to join your remaining machines to the domain.  
  11. If the secondary member server is joined to the domain successfully, you are on your way!! You can follow this same procedure for any additional servers that you need to join to the domain.  
  12. If you are having trouble testing communication between the domain servers (such as by using telnet), you may have to configure the Windows Firewall for Domain Networks.  NOTE: When you join machines to a domain, the Windows Firewall will automatically be enabled for Domain Networks.








Thursday, May 17, 2012

Failed to install Active Directory Domain Services binaries

I normally customize my Windows installations to run unattended and often end up tweaking the settings that I use for my unattended installations to run the bare minimum of services in order to conserve memory.

After installing an instance of Windows Server 2008 R2 with SP1 and attempting to promote my server to a domain controller, I received the following error message "Failed to install Active Directory Domain Services binaries".

Well, after a little digging, I discovered that I had disabled the Remote Registry Service in the Services Control Panel Applet.  Interestingly enough, this service does not sound like a necessary requirement for promoting a server to a domain controller, but it is what it is!!

In any case, after setting the Remote Registry Service to start Automatically and rebooting my server, I was able to successfully run dcpromo to upgrade my server to a domain controller!  

Silent/Quiet Installation of SharePoint 2010 Prerequisites

As many SharePoint 2010 Administrators already know, one of the frustrating things about a typical SharePoint 2010 installation is that it requires downloading many of the prerequisites from the Internet thus requiring an Internet connection on your SharePoint Server.

If you have already downloaded all of the prerequisites manually, you probably have had to run them individually to get them installed which is a relatively time consuming process.

What I have done for my SharePoint 2010 installations (since I have to install SharePoint on all of my various test machines/environments) is to simply create a Prerequisite Installer batch file to install all of the prerequisites.      I place all of the prerequisite installer files directly on my SharePoint 2010 installation media and then run the Prerequisite Installer batch file prior to running splash.hta to run the built-in SharePoint Prerequisite installation.  This saves me a tremendous amount of time while performing all of my various SharePoint Installations.

Below are the commands that I use to silently install all of my prerequisites (on a Windows Server 2008 R2 SP1 base OS):
ECHO Installing Microsoft Chart Controls for Microsoft.NET Framework 3.5
MSChart /q 
ECHO Installing Microsoft Server Speech Recognition Language - TELE(en-US)
MSSpeech_SR_en-US_TELE.msi /quiet 
ECHO Installing SQL 2008 R2 Reporting Services SharePoint 2010 Add-in
rsSharePoint.msi /quiet 
ECHO Installing Microsoft Server Speech Platform Runtime (x64)
SpeechPlatformRuntime.msi /quiet 
ECHO Installing Microsoft SQL Server 2008 Native Client 
sqlncli.msi /quiet 
ECHO Installing Microsoft SQL Server 2008 Analysis Services ADOMD.NET
SQLSERVER2008_ASADOMD10.msi /quiet 
ECHO Installing Microsoft Sync Framework Runtime v1.0(x64)
Synchronization.msi /quiet 
ECHO Installing Windows Identity Foundation Runtime 
Windows6.1-KB974405-x64.msu /quiet

Wednesday, May 16, 2012

Visual Studio 11--Positive User Interface Changes coming in RC

It seems that Microsoft has listened to much of the feedback (mostly negative) received on the Visual Studio 11 Beta and is ACTUALLY doing something about it for the upcoming RC release!

You can read more about the User Interface changes coming to Visual Studio 11 RC here:

http://blogs.msdn.com/b/visualstudio/archive/2012/05/08/visual-studio-11-user-interface-updates-coming-in-rc.aspx

Wednesday, May 2, 2012

Visual Studio 11/2012 RC--Unable to create Unit Tests

If you have recently started using Visual Studio 11 Beta for your development and you regularly work with Unit Tests, you might have noticed that there is a major glaring hole in the newest release of the IDE.  Namely, Visual Studio 11 no longer allows you to create Unit Tests from your existing code base!!!  I am guessing that the "new philosophy" in Visual Studio 11 is that if you "strictly" follow Test-Driven Development you will always create your Unit Tests first.

Well, Microsoft, that simply is not true.  I regularly used to create Unit Tests from my existing code base using Visual Studio 2010 and the most appealing aspect of it was that Visual Studio 2010 used to shell out my entire Unit Test for me with my selected methods, thus saving me a tremendous amount of time.  So if I had created a Class Diagram in my Visual Studio project to generate my "empty shell" of a Class, I could easily create my Unit Tests from my code base and then follow TDD practices.

However, that ability is now completely gone from the Visual Studio 11 IDE.  Even in the Visual Studio 2012 RC, they have not added this functionality back into the IDE.

Check out the screenshots below from Visual Studio 11 vs. Visual Studio 2010:



Do you miss this functionality from Visual Studio 2012 as I do?  

If so, please provide feedback to Microsoft and let them know that you want it back!!

Internet Explorer 9--Don't believe the hype

You may have seen the recent advertisements from Microsoft promoting Internet Explorer 9 as a great new browser platform--far better than all prior releases of Internet Explorer.  However, even as a Microsoft developer, I have found that Internet Explorer 9 continues to leave a lot to be desired and will probably never be able to compete with the likes of Mozilla Firefox and Google Chrome.

Here is an example, I was recently trying to submit file attachments on Microsoft's very own website: https://connect.microsoft.com.  Of course, considering that it was a Microsoft website after all and Microsoft's websites are notorious about having problems with supporting functionality in alternative browsers (just check out https://partner.microsoft.com and http://visualstudiogallery.msdn.microsoft.com in Google Chrome), I decided to use Internet Explorer 9 to attempt to upload my files.

Well, guess what, I could not even click the Submit button after attaching my files!!!  I even switched to IE 8 compatibility mode and tried it again--still no luck!!  So....I finally gave up and decided to switch over to Google Chrome.  As you can probably figure out by now, it WORKED JUST FINE!  I was able to successfully add my attachments and click the Submit button.

Moral of the story--if even Microsoft cannot get browser support for IE 9 right, why should it be considered to be so great???