SharePoint 2013 + Visual Studio 2012 Debugging Extremely Slow

Prior to upgrading my machine to Windows 8, I was forced to use VMware Workstations 8 & 9 for development within a virtual environment.

My virtual environment within VMware Workstation 9 was:

  • Windows Server 2008R2
  • Visual Studio 2012
  • SharePoint 2013
  • SQL Standard 2012
  • 16 GB RAM
  • 4 Proc’s

When debugging SharePoint 2013 server-side code, all requests to SharePoint through the w3wp.exe process is extremely slow.  Furthermore, stepping through code becomes very sluggish. Additionally, while debugging 2013, the Virtual Studio Remote Debugging Monitor process eats up anywhere between 20-30% of the CPU resources.

Read more


Team Foundation Server 2012 Analysis Sync Jobs Will Not Automatically Re-queue

I have a TFS 2012 infrastructure designed according to Microsoft’s proposed multi-machine architecture. I am currently running Team Foundation Server 2012 with Update 1. A few weeks ago, I noticed my reports in SharePoint not being updated. Upon examining the web service admin interface (http://<your url>:8080/tfs/TeamFoundation/Administration/v3.0/WarehouseControlService.asmx), I was able to confirm that the jobs were not running.

tfs-process-import

You’ll notice in the attachment, my request to the process service is: 2013-02-16T23:29:54, however, the last time the Incremental ran was 2013-02-16T20:35:28.  Furthermore, there is no <NextRun /> element.  I’ve checked the settings, and its set to run every 7200 seconds (the 2-hour default).Read more


Adding E-mail Aliases in Office365

There are some instances where you wish to map alias email addresses to an account in Office365 (Office Online).

Read more


Issues with SharePoint Search

On one of my SharePoint installations, I was having a ton of issues with SharePoint Search.  I had created a SharePoint Search Application post-install with a different service account.  The search application starting adding an additional 10 MB to the individual log files.  I would reset the IIS application pool, but would see the search application continuing to run.

Read more


SharePoint People Picker Searching Accounts Across External Active Directory Trusts

In instances where your network administrator has created an external trust with another domain, you may want the SharePoint People Picker to find users in the external AD.

According to Microsoft's TechNet, "The People Picker automatically issues queries to all two-way trusted domains when it uses the application pool account to search for users and groups. When you select a secondary account in the People Picker, the primary account information will be returned."  Therefore, by default two-way trusts are automatically searched.

Read more


Counting the Factors of a Number

By definition, a factor is one of two or more positive numbers that when multiplied together produce a given product.  For example, given the integer 24, the count of factors 8.

The below algorithm tests the range of numbers from 1 to a given integer.  If the given interger divided by the current number returns a remainder of 0, then the current number is a factor of the given integer.

 

public int GetFactorsCount(int i)
{
    return Enumerable.Range(1, i).Count(x => i % x == 0);
}

 

Get the source control, including unit tests: GetFactorsCount.zip (9.43 kb)


Getting All Factors for a Number

By definition, a factor is one of two or more positive numbers that when multiplied together produce a given product.  For example, given the integer 24, the factors are [1, 2, 3, 4, 6, 8, 12, 24].

The below algorithm tests the range of numbers from 1 to a given integer.  If the given integer divided by the current number returns a remainder of 0, then the current number is a factor of the given integer.

public List<int> GetFactors(int i)
{
    return Enumerable.Range(1, i).Where(x => i % x == 0).ToList();
}

 

Get the source control, including unit tests: GetFactors.zip (9.85 kb)


Restore Database from a Network Path in SQL Management Studio

There's a lot of times when people need to restore databases from a network (UNC) path.  There are two ways of doing this:

  • By giving the path in the RESTORE DATABASE command like:
    RESTORE DATABASE FROM DISK = \\server_name\shared_drive\backup_file_name.bak
  • By giving the path of the file (\\server_name\shared_drive\backup_file_name.bak) in the management studio restore wizard

Read more


How to Programmatically Impersonate Users in SharePoint

There are times when developing custom web parts and other SharePoint solutions, you need to impersonate a user and view SharePoint from within their context.

Impersonating a user in SharePoint requires a few things:

  • the account that the web or console application users that has privileges to impersonate other users (typically this would be the system account)
  • specific users' user tokens

Read more


Testing LINQ Statements Using LINQPad

The other day I was needing a way to test some LINQ statements from an application which rebuilds a database while performing some calculations.  The rebuilding process is just shy of 24 hours.

Besides, there have been numerous other times in which I needed to test LINQ statements.

Troubleshooting LINQ can be difficult at times due to it deferred execution - the statement is executed as the last possible moment.  I wanted a tool similar to SQL Management Studio in which I could run LINQ queries against a database.  Thus, I stumbled upon (actually, it wasn't very hard to find) LINQPad.

Since, finding it, LINQPad has allowed me to test my queries prior to implementation in the application.  Therefore, I can better predict the result instead of waiting through a long process and/or waiting for QA to troubleshoot.

LINQPad allows the user to run C#, VB.NET, F# and SQL statements/expressions against the database - very flexible and extremely helpful.  LINQPad's flexibility allows the connection's data context to be LINQ to SQL, Entity Framework and WCF (OData).

Take a look at LINQPad at www.linqpad.net.