Thursday, March 3, 2016

SharEPoint 2013 Development Tools - Must Haves

Thank you to Tobias Zimmergren for his great post on SharEPoint 2013 tools. I've taken some of his suggestions and added some of my own to this list.
check out his original post here:
https://zimmergren.net/tools-for-your-sharepoint-2013-development-toolbox/

SharePoint Provisioning Tools

Using schema definition files to provision SharePoint artefacts is becoming a dying practice. two highly talented development teams have decided to solve the issues you would face with versioning and re-deployment of sharepoint artefacts using the traditional approach. Since SP2013 supports ever richer CSOM abilities, we can now take full control of deploying our artefacts, version control them, handle upgrades elegantly and repackage solutions more efficiently than ever before.
Some of the issues that the following libraries solve:
  • create site collections with multiple sub sites in one go
  • re-deploy changes to lists and libraries while content is present
  • apply advanced settings to lists and libraries that are not available in the schema definitions
  • apply security logic
  • apply business logic while provisioning changes to a site

SharePoint PnP (Patterns and Practices)

started with the Provisioning Engine for 2007 which would be used to create Publishing Portals and has evolved to a fully functional templating and provisioning engine for any sharepoint artefact
https://github.com/OfficeDev/PnP

SPMeta2

driven by TDD, the author of this package wanted to have a provisioning framework that was ROBUST. Tired of SharePoint stumbling over its own feet every time it tried to redeploy a list, library, content type they built a code driven provisioning framework from scratch. pretty impressive, but comes with a steep learning curve
https://github.com/SubPointSolutions/spmeta2

Visual Studio Enhancements

CKS Dev Tools

Must have for rapid testing of ghosted changes. careful, some changes require an IISreset and/or re-deployment. some don't. you'll figure it out fast enough :-)
https://cksdev.codeplex.com/

Debugging Assistant

allows you to be more specific as to what process you're recycling. speeds up the IISreset process. and believe me. you want to speed that up.
https://spassistant.codeplex.com/

ULs logs add-in

this brings the uls logs to your IDE. have not worked with it, but it looks worthy of a good trial
https://integrateduls.codeplex.com/

ReSharper

Analyses your code on the fly and applies rules that will highlight where you are breaking standards and conventions. you can add/remove your own rules to adapt your own standards to the tool. Also has built in refactoring capabilities to clean up your code with a few clicks.
https://www.jetbrains.com/resharper

SPCAF

The SharePoint Code Analysis Framework is your SharePoint version of ReSharper which will check for SharePoint specific Gotchas. very useful to keep your CSOM in shape!
http://www.spcaf.com/

Standalone tools you Must have

CAML Designer

You do not want to learn CAML inside out. you'll rather eat a frog for brekky. Using an automated tool to translate "give me all items from shared documents where the department is IT and created is within the last week" in a few seconds will make CAML a JOY!
http://www.camldesigner.com/

SharePoint Manager

Has gotten me out of very tight spots in the past when I by accident deployed very bad CAML causing endless grief. with this tool you navigate your way through the object model and can not only read out values but modify them in some instances. Also very useful to extract Field definitions and content type schema from your prototyping sites on the fly.
http://spm.codeplex.com/

SharePoint Client Browser

SPM does not work with Office365, as it reuquires the sharepoint server dlls to be loaded in GAC.  So if you want to look behind the curtains on your online tenant, or don't have local admin access tot he SP box, then try out the SP2013 client browser
https://spcb.codeplex.com/‎
(you're allowed to look, but not touch!)

SharePoint Log Viewers

this one is my favourite as it supports filtering and live logging, what it lacks is the ability to copy values from the list and filter by selection.
https://sharepointlogviewer.codeplex.com/

SharePoint Search tool

great way to learn by trial and error how to build search requests against the search API and manage the response that comes back to you.
http://sp2013searchtool.codeplex.com/

Fiddler

once started, this tool will log ALL http/s traffic originating from your computer and the responses. great tool to debug responses, errors, webs service calls, REST url format, claims issues and SAML tokens
http://fiddler2.com/get-fiddler

Reflector

when you are completely stuck and need to figure out how SharePoint works behind the scenes, Reflector will show you a C# or VB representation of the sharepoint dlls by reading the IL(Intermediate Language) from the .net assemblies and presenting the logic in human readable form. Super useful if you need to find a workaround to a SharePoint bug and can't wait for the hotfix to fix it.
http://www.red-gate.com/products/dotnet-development/reflector/

Telnet Client

by adding/removing windows features you can add the telnet client to your command line. I've found this tool great to do very quick connectivity tests when things don't seem to want to talk to each other.
i.e. test connection to the corporate SMTP server on port 25, test the SQL connection on port 1433, etc.
simply open a command prompt after you installed it and type: telnet and see if it opens a comms channel. if it does, you're good to go. if it times out, check your firewalls,  and configurations. maybe SQL is listening on a non standard port, maybe your exchange server won't accept your SharePoint server. BTW. look for EHLO on my blog to see some instructions on creating a test email message using Telnet. Useful to see if relay is properly configured on your main smtp server.

PowerShell Tools

Visual Studio Add-In

Planning on writing lots of powershell tools and want to keep them in Source Control? VS would be a great place to start. Sadly it does not do Highlighting natively. this tool will make writing Powershell in VS a breeze:
https://visualstudiogallery.msdn.microsoft.com/c9eb3ba8-0c59-4944-9a62-6eee37294597

PowerGUI

Dell have now bought up powergui, still a very nifty tool for writing and debugging powershell scripts
http://en.community.dell.com/techcenter/powergui/

SharePoint Installer

ALL installations should use this tool to install:
https://autospinstaller.codeplex.com/

REST tools

Chrome add-in: Advanced REST client

Great tool to quickly test your REST commands. Especially when you want to experiment with POST, PUT and DELETE commands
https://chrome.google.com/webstore/detail/advanced-rest-client/hgmloofddffdnphfgcellkdfbfbjeloo?hl=en-US

PostMan

I've been using this tool for several months now and it's pretty slick! allows you to build a collection of HTTP requests that you can re-execute on a regular basis. allows you to build the input using JSON highlighting and shows the response also using different highlihgting options. the feature that makes it pretty awesome is its TEST client which will allow you to build assert statements in javascript to build your own "unit" tests using the REST calls.
it also comes with NewMan, which is the command line test runner which you can then execute automatically on your favourite build server (Jenkins comes to mind)
https://www.getpostman.com/

smtp4dev

this nifty tool will intercept all smtp traffic that was coming from your local sharepoint server (if you installed smtp on the machine and configured SP to use the local SMTP instance and not your corporate email server that is. Great to figure out if SharePoint is properly configured and also great when you're testing new workflows but don't want to bombard the users with emails. As this tool will hijack the emails being sent for you.

JavaScript debuggers

by now all browsers have pretty solid JS, HTML and CSS debugging capabilities. Just press F12 in your favourite browser and start experimenting with the DOM.
some tips: you can put break points into JS functions, breakpoints into inline JS.
But the thing I use most: being able to tweak css styles and style attributes on the fly in the browser. Nothing better than sitting with the customer and making colour and positioning changes on the canvas in seconds, then recording those tweaks and baking them back into the solution.

 

Tuesday, March 1, 2016

Due to my previous employer making Intellectual Property Right claims to knowledge that I obtained while in their employment, I have removed all technical blog posts since February 2012 while I'm seeking legal advice as to the validity of their claims.
Sorry folks, I know there were some great nuggets which have helped many out of a tight spot. I'll try to get them back online as fast as legally possible.

Monday, February 6, 2012

Coding Duel online

While researching more on Test Driven Development for SharePoint I came across a cute code duel website. The basis of this website is to write valid C# code and have the PEX engine analyse the code, come up with suitable test values and then compare those against expected values. If your code matches the secret implementation which is providing the expected values, the PEX scan will complete without errors.

http://www.pexforfun.com

Although this site can provide hours of fun entertainment for bored coders ( I could not resist to solve one or the other puzzle myself to try it out) and feel good factor for coming up with clever and light solutions (resource constraints stop you from using the full object model) it can also serve a very different purpose:

Recruitment Assistance! Sit your next development candidate infront of two or three of those puzzles and let them solve them there and then. No need to come up with lots of scenarios. No need to test the solutions. Heck, no need to know anything about coding at all. Just let them solve it and confirm that the puzzles complete with a success note.
Record exactly which puzzle was atempted, and if a candidate gets stuck let them try out another one. The senior developer can always evaluate which ones were completed and which ones not at a later stage.

Friday, December 30, 2011

Lync User Adoption And Training Kit

The team at Microsoft has made a great resource available for companies planning to roll out Lync within their organization. http://lync.microsoft.com/adoption-and-training-kit

Here you will find ready to use training material for end users, a pre made help site which you can make available in your intranet, a great overview of who needs what level of training and lots of useful resources and tools. Now, creating a Lync Adoption Plan for your organization has become a matter of hours and not days/weeks.

Wednesday, December 7, 2011

Trend Analysis of Lync Servers using Reporting Services Snapshots

So you have a Lync farm and have monitoring set up. You keep the last 6 weeks worth of data for those reports but what about last year? How can you easily compare the usage and network statistics that the OOB Lync Reports give you effectively and efficiently?
SQL Server Reporting Services Snapshots could be the answer to your question. To enable Snapshots and start tracking usage over time you need to do following things:
1) un-hide the individual reports in Report Manager
2) create a snapshot schedule
3) subscribe to the snapshots so you don't forget to look at the data!


By default only the homepage and the dashboard can be viewed from the Report Manager url (http://your-report-server/Reports). At the root of that url you will find a folder called "Lync Server Reports". Within that folder is the Reports Home Page. This is the main dashboard that opens up directly when you open the reports from the Lync Control Panel. At the same location you will find a sub folder called "Reports Content" This is actually where all the juicy sub-reports are hidden. Yes. HIDDEN. But you can still see them by clicking the Show Details button found at the top right of the report manager. From there you can then unhide reports, set up snapshot schedules and even subscribe to the snapshots to easily stay informed about your general lync farm health.



First go to the Report Manager Url which is the fqdn of your report server followed by /Reports




 Then drill down to the Reports Content Page with the Show Details button at the top right. Just two Datasources and the Monitoring Dashboard are visible. Click on the


Click on the edit properties button of the report to change the visibility status.



That's the magic tick box to make the reports easily visible in the report manager again.



Click the History link of the Report to set up a snapshot schedule



From here you can run a snapshot at a regular interval



And finally add a subscription based on the snapshot so you get an email and can look at performance related data on a regular basis! (If email is not an option, check smtp settings of reporting server)


A couple of tips along the way:
  • Set up different schedules for different types of reports
  • Set up Subscriptions only for reports that you are planning on reading
  • Make sure your Reporting Services Server is properly configured and has a valid SMTP server address associated with it. (Report Server Configuration Tool on the Reporting Server). Otherwise the subscriptions page will not show email as an option!


Tuesday, September 20, 2011

Hands on Labs for SharePoint and Lync

[Update 7/12/2011: Found two more Lync Labs and added them to the list]

Often when I teach a course students feel overwhelmed by the sheer amount of information bombarding them in just five days. Obviously the best medicine is to go over the books when they have had a chance to breathe and digest all the great new things they have learnt. But the best way to learn is not to read about it but do it! No, I can't give my students copies of the lab servers to play with at home. And no, you should not repeat the exercises on your production SharePoint farms. Luckily there is a simple answer to this dilemma. It is called Virtual Labs.
The boys and girls at Microsoft have put a tremendous amount of effort and resources into creating lab environments which anybody can use to gain invaluable skills with the SharePoint products. The labs are split into two main audience groups. Administrators and Developers. While the administrators will be able to get their juice from Technet the developers can get their labs from MSDN. Below is a compilation of labs which I think you will find quite useful. (Lync labs at the end of the article)


TechNet Virtual Labs for SharePoint 2010 Administrators

  • TechNet Virtual Lab: Backup and Restore in SharePoint Server 2010 - After completing this lab, you will be better able to use farm-level backup and restore features in Microsoft® SharePoint® Server 2010, use granular backup and content recovery tools in SharePoint Server 2010, and use Microsoft Windows® PowerShellTM to restore sites and lists in SharePoint Server 2010
  • TechNet Virtual Lab: Business Connectivity Services - After completing this lab, you will be better able to create an External Content Type based on a back end database and view and manipulate backend data in External Lists
  • TechNet Virtual Lab: Business Continuity Management in SharePoint Server 2010 - After completing this lab, you will be better able to configure and use the versioning features in Microsoft® SharePoint® Server 2010, configure and use the SharePoint Server 2010 Recycle Bins, and use Microsoft Windows® PowerShellTM cmdlets to perform backup and restore operations in the SharePoint 2010 Management Shell
  • TechNet Virtual Lab: Configuring Remote Blob Storage FILESTREAM Provider for SharePoint Server 2010- After completing this lab, you will be better able to enable FILESTREAM on the appropriate SQL Server database, provision the RBS data store, install the Remote Blob Storage (RBS) FILESTREAM Provider, enable the RBS FILESTREAM Provider on the appropriate content database, and configure the RBS FILESTREAM Provider scenario
  • TechNet Virtual Lab: Configuring Tenant Administration on SharePoint Server 2010 - After completing this lab, you will be better able to create a new Tenant Administration site collection, manage site collections through Tenant Administration, and create a partitioned service application
  • TechNet Virtual Lab: Configuring User Profile Synchronization in SharePoint Server 2010 - After completing this lab, you will be better able to configure the User Profile Synchronization Service in Microsoft® SharePoint® Server 2010, start the User Profile Synchronization Service, create a New Profile Synchronization Connection, edit Profile Synchronization Connection Filters, map User Profile Properties, and configure Profile Synchronization Settings
  • TechNet Virtual Lab: Enterprise Search - After completing this lab, you will be better able to create a new content source for SharePoint to crawl, exclude certain results from being crawled by search, create a Search Center, and customize and extend the user interface
  • TechNet Virtual Lab: Introduction to Microsoft SharePoint Server 2010 Upgrade - After completing this lab, you will be better able to verify existing 2007 farm and content upgrade readiness through the use of the 2007 pre-upgrade checker command, verify existing 2010 farm readiness to upgrade specific content databases using the 2010 Test-SPContentDatabase cmdlet, initiate upgrade for individual content databases using the 2010 STSADM -o addcontentdb command, review the upgrade session status using the improved Central Administration web site Upgrade Status page, initiate upgrade for multiple individual content databases using multiple PowerShell sessions to trigger parallel upgrade sessions, troubleshoot an upgrade failure due to missing features, and how to restart upgrade for individual content database, and use Visual Upgrade features to switch sites from the 2007 product look and feel to the new 2010 product user interface
  • TechNet Virtual Lab: New IT Pro Features in SharePoint Server 2010 - After completing this lab, you will be better able to find your way around the Microsoft® SharePoint® Server 2010 Central Administration Web site, use basic site management tools in SharePoint Server 2010, describe the health monitoring and Web analytics capabilities of SharePoint Server 2010, provide and consume SharePoint Server 2010 service applications, and use commands from the Microsoft Windows® PowerShellTM command-line interface in the SharePoint 2010 Management Shell
  • TechNet Virtual Lab: Performance Management - After completing this lab, you will be better able to set limitations on the number of list items returned at a time, understand how large list limits affect users, configure Resource Throttling, and understand how Resource Throttling and HTTP Request Monitoring and Throttling affect SharePoint performance and user experience
  • TechNet Virtual Lab: PowerShell and SharePoint 2010 - After completing this lab, you will be better able to find your way around the SharePoint 2010 Management Shell and interact with SharePoint Web applications, site collections, and sites, use Windows PowerShell scripting techniques such as pipes, filters, wildcards, and enumerations for SharePoint Server 2010 administration. You will also be better able to explain how to create and assign variables and use the SharePoint object model from Windows PowerShell
  • TechNet Virtual Lab: SharePoint Designer for IT Pros - After completing this lab, you will be better able to create and modify lists on the SharePoint site, create and modify workflows, and save SharePoint site as reusable template
  • TechNet Virtual Lab: SharePoint RTM - IT PRO - Business Continuity Management - After completing this lab, you will be better able to navigate through an unattached SharePoint Content Database, export content from an unattached SharePoint Content Database, and import previously exported content
  • TechNet Virtual Lab: SharePoint RTM - IT PRO - Installing and Configuring - After completing this lab, you will be better able to successfully install and configure SharePoint Server 2010, create a Managed Account in Central Administration, create a Web Application in Central Administration, and also create a Site Collection within the Web Application
  • TechNet Virtual Lab: SharePoint RTM - IT PRO - Service Applications - After completing this lab, you will be better able to configure the new Managed Metadata Service Application, associate the Managed Metadata Service Application with a web application, manage the Metadata Service by adding your own custom groups and term sets, import a group into the Enterprise Term Store within the metadata service, utilize the Managed Metadata Service Application within a list, configure My Site settings, and create a My Site
  • TechNet Virtual Lab: SharePoint RTM - IT PRO - Upgrade - After completing this lab, you will be better able to verify existing 2007 farm and content upgrade readiness through the use of the 2007 pre-upgrade checker command, verify existing 2010 farm readiness to upgrade specific content databases using the 2010 Test-SPContentDatabase cmdlet, initiate upgrade for individual content databases using the 2010 STSADM -o addcontentdb command, review the upgrade session status using the improved Central Administration web site Upgrade Status page, initiate upgrade for multiple individual content databases using multiple PowerShell sessions to trigger parallel upgrade sessions, troubleshoot an upgrade failure due to missing features and know how to restart upgrade for individual content database, and use Visual Upgrade features to switch sites from the 2007 product look and feel to the new 2010 product user interface
  • TechNet Virtual Lab: Windows PowerShell in SharePoint Server 2010 - After completing this lab, you will be better able to find your way around the SharePoint 2010 Management Shell and interact with SharePoint Web applications, site collections, and sites, use Windows PowerShell scripting techniques, such as pipes, filters, wildcards, and enumerations, for SharePoint Server 2010 administration, and explain how to create and assign variables and use the SharePoint object model from Windows PowerShell

SharePoint Server 2010 Virtual Labs for Developers

  • MSDN Virtual Lab: Client Object Model - After completing this lab, you will be better able to retrieve lists, print a list, and use ADO.NET data services
  • MSDN Virtual Lab: Customizing MySites - In this lab you will work with some of the new events capabilities in SharePoint Server 2010 as well as the new Visual Studio 2010 SharePoint Tools. You will customize public my site by adding new public page, which can host any additional services exposed for my site end users, create stapled features to customize structures created in personal my site using Visual Studio 2010, and also create delegation control to customize top navigation and web parts, which exists by default in the personal my site
  • MSDN Virtual Lab: Designing Lists and Schemas - In this lab you will work with some of the new events capabilities in Windows SharePoint Services 14 as well as the new Visual Studio 2010 SharePoint Tools. You will create a custom list definition, template and instance using Visual Studio 2010, implement referential integrity between two SharePoint lists so that items in one list cannot be deleted until referenced items in a child list are removed first, and create a synchronous event receiver that is triggered when new task is created
  • MSDN Virtual Lab: Developing a BCS External Content Type with Visual Studio 2010 - After completing this lab, you will be better able to build a BCS External content type, create a Business Data Catalog Model project, configure the External Content Type for offline use, and open the list using Outlook
  • MSDN Virtual Lab: Developing a Sandboxed Solution with Web Parts - In this lab you will construct a basic Web Part that will call into the SharePoint API to retrieve some information. Next it will try and use SPSecurity to try to elevate privileges. The third and last action that is added is an attempt to initiate a HTTP connection to an external site
  • MSDN Virtual Lab: Developing a Visual Web Part in Visual Studio 2010 - After completing this lab, you will be better able to work with existing Web Parts and Linq and also you will be more familiar with connecting two web parts
  • MSDN Virtual Lab: Developing Business Intelligence Applications - After completing this lab, you will be better able to use the Chart Web Part to create graphical representations of data within SharePoint lists, use Microsoft Excel 2010 to examine and data from SQL Server Analysis Services, and publish an Excel workbook with Excel Services to make it accessible to users using a browser. You will also be able to work with a PerformancePoint Services site and the new Dashboard Designer
  • MSDN Virtual Lab: Enterprise Content Management - In this lab you will work with some of the new capabilities added to SharePoint Server 2010 in the area of Enterprise Content Management. You will verify the configuration of an Managed Metadata in a SharePoint Web application, customize the Managed Metadata term store and leverage it within an existing SharePoint site, and implement document sets
  • MSDN Virtual Lab: Getting Started with SharePoint 2010 - In this lab you will begin your work with SharePoint 2010 and become familiar with the Virtual Machine (VM) that you will be using. You will get experience working with the SharePoint 2010 Central Administration site as well as working with a standard team site. This will allow you to experience the new user interface concepts introduced in SharePoint 2010 such as the server-side ribbon and in-place item editing. You will also get a chance to write and test C# code using the SharePoint Foundation 2010 object model
  • MSDN Virtual Lab: LINQ to SharePoint 2010 - In this lab you will create lists for use with LINQ, and create a web part for accessing the list data using LINQ
  • MSDN Virtual Lab: SharePoint 2010 User Interface Advancements - After completing this lab, you will be better able to create and customize SharePoint 2010 lists for storing ideas for new toys, and use various new features of SharePoint, SharePoint Designer and InfoPath
  • MSDN Virtual Lab: Visual Studio SharePoint Tools - In the lab you will become familiar with the standard project structure used by SharePoint Tools, create and test a project that contains a Feature, a Feature Receiver and a Web Part, configure SharePoint Tools deployment options, and debug a SharePoint Tools project by single-stepping through the code in your solution
  • MSDN Virtual Lab: Workflow - After completing this lab, you will be better able to use Visio to create the high level process, export the Visio model to SharePoint Designer 2010, and use SharePoint Designer 2010 to complete the detail. You will also be able to export from SharePoint Designer 2010 to a WSP file and import the WSP file into Visual Studio 2010

Virtual Labs for Lync 2010 Developers


TechNet Virtual Labs for Lync 2010 Administrators


Monday, September 19, 2011

Using Office 365 in an Extranet Scenario

This is something that has been one of the most exciting aspects of Office 365 for me. The fast and effective way of creating an Extranet scenario without the need to worry about firewalls, external user accounts or certificates.
When you sign up with Office 365 on an Enterprise plan you get access to your SharePoint Admin control panel. (Sorry folks, the Small business version aka Professional Plan does not have this feature)
There you can create several site collections and even allow external user which have not been set up in your AD or on Office 365 to access your SharePoint sites.
This is great news for companies who work closely with clients and want to use the SharePoint Online part of Office 365 as a information sharing hub.
When you open your first SharePoint team site at :https://youcompanyname.sharepoint.com" as administrator you will notice a new Site Action menu item called "Share Site". This is where you can add users as Visitor or Member to your site or sub site. You will also notice that this does not seem to work for external users straight away. You first need to change two settings for externals to gain access.

  1. On the SharePoint Administration page accessible via https://portal.microsoftonline.com/admin/default.aspx you will find a button that says Settings. Use this button to enable external access for your whole account. 
  2. Then go to the Site Settings of your private site collection via the Site Actions menu and activate the External User Invitations feature under Site Collection Features.

That's it folks. From now on you can add any email address to the Share Site dialog and that person will receive an invitation email to connect to your SharePoint site.
Using what username and password you might ask? Windows Live ID solves this problem for us. This part of Office 365 integrates via federation with Windows Live ID and so the external user can either use their existing Windows Live ID or sign up for a new one.
Once the user has signed in with their Live ID, they will appear in the group that you have added them to. Not any sooner though. They will also appear with their Live ID email which might be different from the email address you sent the invitation to. So before you get a heart attack thinking you got hacked by some random person, double check the email if it does not belong to someone you know who favours cryptic email addresses.

Happy Sharing!