Sunday 1 July 2012

Azure Web Sites

Overview:  I love Azure.  There is just so much we can now do and a new feature released in June 1012.  The "web sites" function in Windows Azure (WA) are extremely flexible and this post shows how you can create a website using various templates in my case a Joomla CMS web site complete with a My SQL database.

There are a lot of options for using Azure web sites such as creating your own web sites in Visual Studio and uploading them to the Web Site role (all for free).  In this post I'm looking at leveraging a CMS to create a web site.  Windows Azure offers up to 10 free web site roles.  There are a lot of templates in the gallery so I feel this is a great place for design agencies and small business that need commercial web sites such as CMS, blogs ect.  They even have the WordPress template.

Steps to get Joomla working:
You will need a Windows Azure (WA) account, you get a free 90 day trial and if you hook your MSDN to it you get a decent amount of extra cloud computing hours thrown in. But for the 10 free "web sites" you don't use your cloud hours - it's free!

Once you are logged into the portal click the Add (+ button on the bottom left of the screen to add new services.  In this case select "Web Site" > "From Gallery" as show below.
Select the "CMS" tab and in my case I chose the "Joomla" template.
 Add the site name and login credentials as prompted (you can add a CName record later).
 The web site is created that backs onto my MySQL database.
Check the url and build your site.
Summary:  Web sites in Azure are easy, they are backed up by MS, there are tons of templates or build your own options, it free.  Microsoft is adding functionality and new services to Azure quickly and is easy to use.    

Scrum for SharePoint - Part 1 Introduction

Overview: Scrum is an Agile methodology that is useful for SharePoint projects as it allows for discovery/refinements of requirements as opposed to formally knowing all the functional requirements of a system upfront.  Each project lends itself to specific methodologies however, an Agile approach is often more suitable for SharePoint projects.  For larger, more formal projects I like MSF but traditional SDLC methodology run projects also work well.  Scrum is one Agile methodology and probably the most commonly used.  As with all projects I recommend following a methodology but lend from other and take out what isn't working to get the optimal process.

Scrum for Dummies:  Scrum consists of 3 types of team roles: the product owner/s, scrum master and the rest are team members.  Tam sizes should be less than 7-8 people (if bigger use scrum of scrums).
1.) The Product Owner is responsible for creating user stories.  These are specified in the form: As the <role> , I want to <feature> so that <benefit>.
2.) From the User stories I create Product Backlog Items (PBI's), Scrum is broken up into sprints (usually 2-4 weeks).  The sprint kicks off with a Sprint planning meeting that involves the entire team.  PBI's are broken down into tasks, tests and bugs.  During the sprint planning, the team members commit (renamed to forecasting in 2016) to the PBI's in the sprint and creates a "Sprint Goal".  I usually set apart 3-4 hrs to complete the Sprint Planning session at the start of each sprint.
3.) Daily scrum meeting takes 15 minutes facilitated by the scrum master.  Each team member states what they accomplished in the last day, what they will be working on in the next day and any blockers.  When the team members start a discussion, shelve it and they can have a separate meeting outside the scrum to avoid over running on the scrum meeting.  Do scrum meetings standing it helps make the sprint/team finish on time.
4.) At the end of each sprint, there must be a potential deployment.  Hold a scrum retrospective, this is to work out the team velocity (are the PBI's and features being achieved) and work out how productivity can be improved.
5.) Documentation:  Scrum is not document intensive but aims to get features right not finish at a specific point.  The documents generated by scrum are:
5.1) User Stories and corresponding Acceptance Criteria
5.2) Meetings (Daily scrum minutes/decisions, sprint planning agreements/outcomes & retrospective minutes)
5.3) Whiteboards (architecture diagrams and user story refinement)
5.4) TFS recorded data 
5.5) Communications (emails about decisions, supporting information, this could also include pptx from presentations, user reviews).

TFS:
  • SharePoint has a lot out of the box and using Scrum allows for better technical decisions whereby team members often identify OOTB solutions which hopefully eradicates the common developer mentality of using .NET to do existing SP functionality.
  • There are Templates for Scrum download and base your project off them.
  • Microsoft offer a great free services called TFSPreview (http://www.tfspreview.com/) which is a SaaS offering TFS 2010, doesn't have all the features but it is amazing and best of all it has a built in Scrum template so I'd always start with this and if you feel you are being to restricted you can always go for a on premises option. VSTS (cloud service) is the current name for TFS preview Oct 2017.

Agile for SharePoint
Scrum for SharePoint - Part 1 (This post)
Scrum for SharePoint - Part 2
Scrum - Part 3 - Scaling Scrum
Scrum - Part 4 - Kanban and Scrum
Scrum - Part 5 - Certification PSM 1

Friday 29 June 2012

Azure WCF Role - url issue

Problem:  Created a WCF service using Visual Studio (VS) 2010, I called my endpoint TimesheetBOL.svc.  This WCF worked perfectly when deployed locally but then I used the Azure emulator or the Azure Service role, the scv endoint was pointing to the local machine and not using the host header.
Here is the issue. I have a simple service that I deployed to Azure. It is accessible via:
http://tspaulbeck.cloudapp.net/TimesheetBOL.svc but the link to the wsdl uses the internal machine name instead of the host header, like this:
svcutil.exe http://rd006123e/TimesheetBOL.svc?wsdl Obviously, the wsdl is not accessible.

WCF test util throws the following error:
The communication object, System.ServiceModel.Channels.ServiceChannel, cannot be used for communication because it is in the Faulted state.
Server stack trace: at System.ServiceModel.Channels.CommunicationObject.ThrowIfDisposedOrNotOpen()

Resolution:  Us an attribute supported in .NET 4, "useRequestHeadersForMetadataAddress".




Thursday 28 June 2012

Working with SP2010 offline

Problem:  Often users are disconnected from SP2010 on premises, they need to work with data and update the SharePoint farm with the changes.

Initial Hypothesis:
Groove 2007 (Ray Ozzies company bought by MS) was the approach for off line content for MOSS, it is not call Workspace 2010.
Lists can be exported to Excel (this can be kept in sync or decoupled, the 'Design tab > Refresh' ribbon button will pull the current list data). 
Access can be used to retrieve and write back the data to the SP list. 
Outlook "You can synchronize a SharePoint library, contact list, task list, Project task list and a certain type of SharePoint external list with Microsoft Outlook 2010. Because many SharePoint 2010 users also use Outlook 2010 to collaborate and coordinate activities and projects, the ability to synchronize these libraries and lists can help you become more efficient, especially if you work offline or don’t have convenient access to your SharePoint sites all the time."  microsoft.com

Resolution:
  • Workspace 2010 is brilliant for offline conent watch out as it doesn't work with SP calendars and come other conent types such as publishing pages.  Also not the size is limited to 2GB or 30,000 items per list/document library.
  • Excel is a great option for working with data out of SharePoint and it can be kept current.  Maximium number of items is limited to 50,000.
  • Access can either take the data as an export from SP or have it linked to the live SP list.  Working with the live data can not use SQL/Query builder in Access.  Updating any data in Access will update the SP lists, so useful for updating data as opposed to Excel being read-only of the data.
  • Document librarts can be brought into Outlook allow for offline usage.  Calendaars can be overlayed and tasks are easy to setup with 2 way sync.

Wednesday 27 June 2012

SP2010 List View Throttling

Overview:  IT pro's and developers in SP generally understand the properties that can be used in setting list views in SP.  Users of SharePoint and department site collection administrator types seem to find it confussing.


How Lists Throttling Works - Simplified:
SharePoint's default list view threshold is 5000 items.  This does not mean the list is up to 5000 items simply that your list view will querry the list and work with a maximum of 5000.  Now the point to understand is that if you are filtering on 6000 rows event though you are displaying 100, you have passed the threshold as you need to look at all 6000 that you are filtering/sorting.  If you add an index to the property that you are filtering/sorting on, it will work. 

"For a view to quickly filter through a large number of items, the first column that you specify in the filter must be indexed. Other columns you specify in the view filter may or may not be indexed, but the view does not use those indexes. You also need to make sure that the first column of the filter does not return more items than the List View Threshold, even if the final result of the filtered view returns less than the List View Threshold. " from MS.

Other:
The smallest the list view threshold can be set to is 2000 results.
List thresholds can be increase for general users, this can have performance issues.

Glyn Clough explains list view throttling clearly in more detail.

Steve Peschka explains working with large lists.
Tutorial from MS.  This blog and movies explains view limit thresholds perfectly.

Saturday 23 June 2012

Windows Azure SDK update

Problem: I want to ensure I have the latest Visual Studio 2010 .NET SDK for Windows Azure.

Initial Hypothesis: Check the version of Visual Studio (VS) by open VS click > Help > About Microsoft Visual Studio.


I know version 1.7 is the current release as of 23/06/2012.
Update 27 October 2012 - The latest version is 1.8 released in October 2012.

Resolution:

Unlike the extension manager that can check for updates, I don't think this is an option with the Windows Azure SDK.  I manaually installed the latest SDK (version 1.7).  https://www.windowsazure.com/en-us/develop/downloads/



Verify that the WA SDK has been updated for VS2010.


Note: At the time of this post Visual Studio 2012 RC is available I am using VS2010 to do my Windows Azure dev.

Wednesday 6 June 2012

SharePoint Competitors

Overview:  This post looks to examine what are SharePoint's competitor products for Enterprise Collaboration.  As SharePoint is an amalgamation of several Microsoft server products which has made it extremely big it is difficult to have 1-to-1 mapping for competitor products.  Additionally SharePoint has many complementary products such as Lync which competitors product stacks may bundle as part of their product.  In short this is a very rough list and certainly open to addition.  Pls let me have you comments and suggestions.

SharePoint's EMC competitors:
 Gartner EMC magic Quadrant 2011 

Cisco Quad - Cisco Quad is an recently launched enterprise collaboration platform designed for social, mobile, visual, and virtual collaboration. Tight integration with WebEx (Lync replacement).  Believe Cisco Quad has good integration with Documentum.  2015/02.03: Product is no longer being sold.
Oracle Beehive - Oracles product stack is comprehensive and with addons and integration it covers a wide spectrum of services needed in Enterprises.
IBM Lotus - I'm not a big fan of Lotus Notes but depending on your organisations existing infrastructure and preferences definitely worth considering.  IBM product stack is comprehensive but the tie-in to the vendor is a big consideration.
OpenText -  Lightweight functionality but if you want blogs, wikis and document collaboration, a viable option.