SharePoint 2010: Stsadm to PowerShell Mappings
30 April 2010
Just a quick note – here’s a comparison of stsadm commands to Powershell commandlets in SharePoint 2010. http://technet.microsoft.com/en-us/library/ff621084(office.14).aspx
(currently 0 comments)
Pex & Moles with SharePoint – A Quick Example
27 April 2010
I recently demoed moles against the SharePoint 2007 object model. I demoed testing a contrived method that simple returned true if the number of items in a SharePoint list was greater than 20. Code is below…
private const int ItemsPerPage = 10;
public bool ShowPagination()
{
using (SPSite siteCollection = new SPSite("http://example.local"))
{
using (SPWeb web = siteCollection.OpenWeb())
{
SPList list = web.Lists["MyList"];
if (list.ItemCount > ItemsPerPage)
{
return true;
}
}
}
return false;
}
This is a difficult method to test, as you cannot mock out the SharePoint OM code (as it’s not written to an interface etc). As you are tied to SharePoint, you would need to alter the SharePoint list to test boundary conditions. This is where moles come in…
I generated a mole dll against the Microsoft.SharePoint dll in my test project, and was then able to intercept SharePoint OM calls via lambdas. The example below illustrates a test that force the value of the list.ItemCount to return a known value. Note that in my test, the SharePoint OM was not called, instead only the Mole classes were called (via a detour).
[TestMethod]
[HostType("Moles")]
public void ShowPaginationReturnsFalseWhenLessThanTenItems()
{
// Arrange
// Use initilizers and lamdba functions to set up moles
// Only "mole" functionality that is used by code
MSPSite.ConstructorString = (site, url) => new MSPSite(site)
{
OpenWeb = () => new MSPWeb
{
ListsGet = () => new MSPListCollection
{
ItemGetString = id => new MSPList
{
ItemCountGet = () => 9
}
},
Dispose = () => { }
},
Dispose = () => { }
};
// Act
TableLogic tableLogic = new TableLogic();
bool showPagination = tableLogic.ShowPagination();
// Assert
Assert.IsTrue(showPagination == false, "The page will be paginated");
}
http://research.microsoft.com/en-us/projects/pex/
(currently 0 comments)
QuickNote: Activating PowerShell ISE on Server 2008 R2
27 April 2010
To activate the PowerShell Integrated Scripting Environments on Windows Server 2008 R2 you need to add the feature as follows:
- Start –> Server Manager
- Features –> Add Feature
- Select “Windows PowerShell ISE”
- Click next and install
- You should no see the PowerShell ISE shortcut under Start –> Programs –> Accessories –> PowerShell
(currently 0 comments)
SharePoint 2010: Provisioning a new site using a custom template
23 April 2010
In SharePoint 2010, stps are no longer used. Instead site templates are saved as wsp files.
To create a new site collection using one of these template through the UI, you need to create a site collection through central admin that has no template selected. Once completed, browse to the site collection. From here, you are prompted to select a template. Instead of doing this, click the link to "solution gallery" and Upload your wsp file (previously exported). Once complete, go back to the choose template screen (at the root of the site collection) and select you new template from the "custom" tab.
Below is some powershell script that facilitates this...
[void][System.Reflection.Assembly]::Load("Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c")
New-SPSite -Url "http://localhost:81/sites/robtest2" -OwnerAlias "Administrator" -Description "Rob Test Site" -Name "Rob Test" -Language 1033
Add-SPUserSolution -LiteralPath "C:\Users\Administrator\Desktop\RobTestX.wsp" -Site "http://localhost:81/sites/robtest2"
Install-SPUserSolution -Identity "RobTestX.wsp" -Site "http://localhost:81/sites/robtest2"
$site = New-Object Microsoft.SharePoint.SPSite("http://localhost:81/sites/robtest2")
$web = $site.OpenWeb();
$template = $web.GetAvailableWebTemplates(1033) | Where-Object {$_.Name -like "{*" }
$templateName = $template.Name
$web.ApplyWebTemplate($templateName)
(currently 0 comments)
Quicknote: Duplicate Menu Items in Visual Studio 2010
22 April 2010
Recently I had a weird issue with Visual Studio 2010 where menu items where duplicated. To resolve this I ran the following:
devenv.exe /safemode /setup from the command line. Once this ran, I restarted Visual Studio and normal behaviour was resumed!
(currently 0 comments)
Quicknote: Extending a VHD
22 April 2010
Just a note as I’ve had to extend a fixed size VHD. I used http://code.msdn.microsoft.com/vhdtool to expand the actual VHD file. This extending the partition, but did not extend the volume. To complete the process, I needed to boot the VHD and extend the volume (C:).
As I wanted to extend my boot volume (C:), I could not extend onto this using Disk Management (from Computer Management). Instead I had to use the Diskpart tool (access via the command line when ran as Administrator).
I then ran the following commands:
diskpart (this takes you to the diskpart prompt).
list disk
select disk 2
detail disk
select volume 3
detail volume
extend
detail volume
Once complete, my fixed size VHD was expanded to 60Gb
Related link:
http://www.techotopia.com/index.php/Extending_and_Shrinking_Windows_Server_2008_Partitions_and_Volumes
(currently 0 comments)