Here’s is my slide deck and the Resources from the SharePoint Saturday Sydney 2011. Thank you for those who attended and voted for this session.
|Plan to upgrade BCS|
|BCS Resource Centre|
|BCS Video – Secure Store|
|BCS Security Overview|
|How BCS & Azure play together|
I am pleased to announce that I will be presenting at the next SharePoint Saturday Sydney on 06/08/2011. I will be presenting on Business Connectivity Services (BCS)
BCS is an umbrella term which incorporates set of awesome technologies and tools for both developers and power users to build business applications that natively fits into SharePoint 2010.
Here is an abstract of my session:
Business Connectivity Services (BCS) in SharePoint 2010 provides new ways to connect and integrate with external data such as your own SQL databases. BCS enhances the SharePoint platform’s capabilities with out-of-box features in the key areas of presentation, connectivity, tooling and lifecycle management that streamline the development of solutions with deep integration of external data and services. Come learn what’s available out of the box and how to bring your .NET skills to seamlessly integrate and surface external line of business data through SharePoint 2010
Check out the strong session line up here http://bit.ly/19Feqc .See you there!
I am presenting on the topic “Unboxing Claims based authentication in SharePoint 2010” at the SharePoint Saturday Perth on 9th April.
If you are curious about what’s new SharePoint 2010 security model I recon this will clarify some of your questions. we will explore how SharePoint 2010 has undergone a shift in identity and access control by adopting the claims-based Identity model offered by Windows Identity Foundation (WIF). You will see how SharePoint 2010 implements the extensibility points of WIF and achieves a standards based identity solution that is designed for heterogeneous identity environments for both sign-in and services (SOA) highlighting its benefits, implications, and implementation that can help to drive greater interoperability with SharePoint and other systems.
Check out other great session here
See you there!
Improving the quality of your Custom SharePoint 2010 Solutions via continues Integration(CI) with Team foundation Server 2010Posted: March 31, 2011
This is a follow up blog post based on the content of my presentation on “SharePoint2010-ALM” presented at Melbourne SharePoint User Group meeting (#MOSSIG) on 23rd March 2011. Since then I’ve received number of requests from the community for sharing the content and the references. Therefore I thought of writing a little detailed post about this topic and here we go.
Continues integration is a critical process in modern day product development in improving the quality of your solution from 1st Sprint (iteration) of your product development if you are following an agile approach like Scrum. This allows you to early detect and rectify the issues in your solution which increases the chances of success without having to go through painful integration issues and surprises at the last minute in your product development cycle.
How does it improve the quality of my custom SharePoint solution?
Well if you have a mature fully automated continues build (CI build) and a Nightly build you are in the correct path and your SharePoint development team enjoys the following in every sprint.
- It enforces you to promote the code from Dev -> Test-> Staging -> Production in the correct way in the first place. Otherwise automation will not be possible.
- Every code check in by a developer will kick-off an automated code validation, run unit tests (if any) and build the SharePoint solution (.wsp files) in the Team foundation server.
- A Nightly build will do every thing in step 2 plus Add, Deploy and Activate your SharePoint solution packages into your test farm and can run and automated coded UI tests and automated load tests (if any) for you.
here is the sketch workflow.
Why was this approach not so common in SharePoint Development?
The Lack of SharePoint development tooling support with VS2008 contributed significantly. This is also coupled with the natural complexity arises when you develop on a platform rather than a development Framework. When it comes to SharePoint development, you may not necessarily develop with Visual Studio environment. You can develop quite powerful collaborative solutions and branding work with SharePoint Designer as no code solutions. But unless we convert those customisations into solution artefacts we will not be able to cleanly source control and maintain the solutions which breaks the fundamental concept of Application Lifecycle Management (ALM).
SharePoint 2010 has evolved and positioned as a single unified platform for most originations playing a mission critical role for day to day operations. With the introduction of Business connectivity Service (BCS), Client OM, Sandbox solutions, WCF based Service Applications and Claims based authentication SharePoint 2010 has also significantly evolved as application development platform which opens up a number of extensibility options for the developers.
We also have integrated set of tools built into Visual Studio 2010 for SharePoint Development. So the challenge is how to use these tools effectively and efficiently in a team based environment to build your product or solution and deploy into those shared mission critical environments confidently with consistent quality? This post describes how to implement an automated continues build with the help of following tools to validate, build and deploy SharePoint solutions.
- VS2010 (with SP1 adds support for 64 bit unit testing and Intellitrace with historical debugging capabilities for SharePoint Development)
- VS2010 SharePoint Power tools (Sandbox code validation, Visual Web Part as Sandbox Solutions)
- TFS 2010
- CKSDev (productivity tools),
- Pex & Moles (unit testing)
- SPDisposeCheck (build validation)
- Sysinternals PSEXEC (remote deployment)
Step1: We need to get all your customisations as solution artefacts. Reverse engineer your SharePoint designer customisations and featurize them. CKSDev Branding SPI can help you to deploy master pages and CSS as Features. Save all SharePoint Designer authored workflows as Reusable workflows as .wsp from SharePoint Designer and bring it to Visual Studio environment.
Step2: Create a new Team project and add your solution into source control under TFS. For the purpose of this post I am using a simple VS2010 solution name SPHelloWorld. For Code analysis, SPDisposeCheck ruleset needs to be in source control and can be shared across multiple projects with in your repository.
Step3: Enable Code analysis for you solution via project poperties and select SPDisposeCheck RuleSet from your local TFS workspace as shown below.
Step4: Note that Code Analysis now runs SPDisposeCheck rules as part of compilation and both Dispose and Do not Dispose rules are fired when detecting the the poor code.
Step5: Now open the Default Build Template for the project. We are going to extend the default build definition file to deploy our solution to the Test SharePoint Farm remotely. TFS 2010 is using windows workflow foundation 4 based
.xaml template. Drag the activities from the left side bar tool box and assemble the activities as shown below just after packaging is finished.
The high level tasks performed by this segment of the workflow are
- Build the Solution
- Run Code Analysis with SPDisposeCheck on the TFS Server. If this code analysis fails our build would fail at this point.
- Create .wsp solution package
- Check the user specified deployment flag (This is a work initiation parameter)
- Write a log message to the log file
- Map a Admin share drive to the Target SharePoint Server (Test Farm) with the user specified credentials.
- SET the STSADM path on the target server
- Stop V4 Admin service in the target farm. (This uses PSEXEC to remotely execute STSADM on the target server)
- Copy each .wsp file to the target SharePoint server and add, deploy and execute the timer job in user specified sequence.
- Finally turn on the V4 Admin timer service.
If you are interested the customised TFS2010 workflow template for building and deploying .wsp solutions can be downloaded from my SkyDrive here
Now define the additional parameters required for the workflow initiation that needs to be supplied by the user when starting a new Team build.
Now set activity properties for each activiry. As a sample I’ve shown below the properties set for the “Add solution” InvokeProcess workflow activity. Once all properties are set WF4 validates your workflow. Once all validations are passed, checkin your custom build definition template into TFS.
Step6: Author a new Build definition based on our updated workflow template.
Some important parameters that you need to set are shown below.
Step7: It’s time to Queue a new Build. Now assume a scenario where the developer rushes to checkin by overriding the Check-in Policies set by the build master.
and here is the result : TFS build agent decided to fail your build because your code did not pass the code analysis. No .wsp’s produced.
So developer now fix the code with proper disposing as shown below and check-in the code again.
And after few seconds we get this TFS Build status. All green!
Opening the build log gives us the workflow execution log as shown below. Note how STSADM has been invoked remotely via psexec.exe on the TFS build agent.
and see below the end result in the central admin in our test SharePoint Farm.
On a final note “the right tools make all the difference”. But tooling it self may not helps you to build a quality product. The process matters. TFS 2010 support you with your chosen process and allows you to tailor the default process templates if required. You have the chance to select the process template when you create a new Team project as shown below. I highly encourage you to check out the new “Microsoft Visual Studio Scrum 1.0” template. This template has been co-developed by Microsoft in collaboration with the Scrum community. The template guides you with scrum based agile product development. I’ve highlighted a few below.
- Creating effective user stories
- Creating prioritizing grooming product backlog
- Agile estimation and Sprint planning
- Scrum artefacts such as sprint burndown and release burndown chart
And here is the high level process behind the template.
The correct tools coupled with the correct process will take your product/solution to the next level faster and smoother and make you a successful SharePoint developer and hence a successful product/solution delivery Team.
Where to go from here?
- Disposing Best Practices
- Unit Testing SharePoint Solutions
- Unit Testing SharePoint with Pex & Moles
- How to Build SharePoint Projects with TFS Team Build
- Configuring TFS for building SharePoint and SPDisposeCheck (10min) by Jeremy Thake
- Scrum Resources
Since August 2010, SharePoint 2010 adoption has grown five-fold with well over two-thirds of organisations extending its use to manage document workflows, and half for business processes*.
Far from a mere corporate portal, SharePoint 2010 is fast becoming a Mission-Critical Enterprise Application Platform.
This is a follow up blog post of my session at Readify Exclusive Breakfast Seminar for Business Professionals held in Melbourne on 23rd March 2011.
This session was targeted at business and Technical decision makers. If you are to take 3 things out of this presentation, That will be
1) SharePoint 2010 Key Platform Capabilities
2) The Future of Productivity: How Does SharePoint Fit In?
3) Understand SharePoint 2010 Maturity Model
Windows Identity Foundation (WIF) is the platform on which SharePoint 2010 claims authentication is based. WIF, which is fully supported in SharePoint 2010, ADFS 2.0, ASP.NET, Windows Communication Foundation (WCF), and any other .NET application you care to develop, provides the infrastructure necessary to generate, transmit, and process claims-based identity in a simple and straightforward manner. It removes the roadblocks imposed by legacy authentication schemes like NTLM and Kerberos and puts control directly into the hands of developers, users, and IT security professionals. long story short, it’s a framework written to help solve identity issues common in the of cloud computing and service-oriented architecture.
The idea of claims based identity is one that many people are willing to try. Getting accurate information out there to the public though does take time.
The important point is this is based on industry standards. Many different entities are on board along with Microsoft in this matter. The digital world continues to give us new opportunities and those involved believe that this will help all of us to get the most out of it. There is a strong foundation in place to continue building upon. The use of AD FS v2, CardSpace, and Windows Identity Foundation are all important pieces of this puzzle.
As a demonstration of these capabilities, I’ll show how SharePoint 2010, WCF,and WIF can be put together to solve the identity delegation problem. In this demo session part 1 I start establishing the trust relationship between ADFS 2.0 and SharePoint with PowerShell and demonstrate how the claims get into SharePoint.Then we build and deploy a claims viewer Webpart with WIF programming model. In part 2 We start with a web service that is front-ending line-of-business information stored in a SQL database. Then, we’ll configure it to use WIF to request the calling user’s claims from SharePoint and process the token so that authorization decisions can be made. we’ll surface this information in SharePoint 2010 as an External Content Type using Business Connectivity Services (BCS).
Click here to view a recorded screencast of this session.
The slide deck of this session is shared here
I was honoured to be speaking at DDDMelbourne developer conference last weekend in Melbourne. Thanks you every one who voted, attended and commented on my session “Getting Started with Silverlight and SharePoint 2010”. With SharePoint 2010 and Visual Studio 2010 the developer story has come a long way. SharePoint now is integrated into Visual Studio 2010 as a first-class platform Silverlight 4.0 provides the opportunity for developers to create the next generation of Rich Internet Applications (RIAs). SharePoint 2010 integrates closely with Silverlight to enable you to build compelling user interfaces that interact with SharePoint for deep data integration with line-of-business systems. This session will covers the techniques, data access strategies and developer productivity enhancements and for rapidly building and deploying Silverlight 4 applications on SharePoint 2010 platform including SharePoint Client Object Model, RESTful services along with Sandboxed Solutions.
The Slide deck is upload here