+ All Categories
Home > Software > Improving the SharePoint Development Process with Continuous Integration

Improving the SharePoint Development Process with Continuous Integration

Date post: 02-Jul-2015
Category:
Upload: sharepoint-saturday-new-jersey
View: 200 times
Download: 1 times
Share this document with a friend
Description:
Continuous Integration is a wonderful and popular practice in the software development universe. Yet, for whatever reason, it seems much less commonly utilized in the SharePoint community. SharePoint (naturally) throws a few wrinkles into the process, but no substantial roadblocks, and the benefits of CI can be realized just as well on SharePoint projects as anywhere else. In this session, you'll learn why you should implement a CI process and then see how to do it using TFS and Visual Studio.
18
Improving the SharePoint Development Process with Continuous Integration Robert Hiskey SPS NJ 2014
Transcript
Page 1: Improving the SharePoint Development Process with Continuous Integration

Improving the SharePoint Development Process with Continuous IntegrationRobert Hiskey

SPS NJ 2014

Page 2: Improving the SharePoint Development Process with Continuous Integration

About MePortals & Collaboration Consultant @ Slalom Consulting

Web Developer

Working with SharePoint since 2008

User Experience and Project Management @HollywoodHiskey

http://www.linkedin.com/in/roberthiskey

[email protected]

Page 3: Improving the SharePoint Development Process with Continuous Integration
Page 4: Improving the SharePoint Development Process with Continuous Integration

AgendaOverview of Continuous Integration (CI)

Foundations of CI

CI Process Components

Project Setup

Build Configuration

Unit Testing

Demo

Page 5: Improving the SharePoint Development Process with Continuous Integration

Continuous IntegrationWhat is it, why use it, and when is it most effective?

Page 6: Improving the SharePoint Development Process with Continuous Integration

What is Continuous Integration?A complete process that includes:

Task management

Source control

Unit testing

Automated builds

Automated deployments

Stable test environments

Reporting/communication

Page 7: Improving the SharePoint Development Process with Continuous Integration

What are the benefits?Organization/prioritization of work

Increased development efficiency

Improved quality

Reduced overhead

More frequent test cycles

Trusted test results

Page 8: Improving the SharePoint Development Process with Continuous Integration

When can CI be leveraged?On any development project (at least partially)

Indicators that you should be using a CI process:

Multiple developers

Medium/Long-term projects

Frequent QA/UAT builds

Complex codebases

Page 9: Improving the SharePoint Development Process with Continuous Integration

CI FoundationsTask management, source control, and deployment scheduling.

Page 10: Improving the SharePoint Development Process with Continuous Integration

Task ManagementImplementing other aspects of CI without a good system for managing work might only make things worse!

Important to know:

What changes were included in the latest build?

Which new features were included in the last deployment?

What (and who) caused the build to fail?!

Best Practice: Every check-in should be associated with a clear, granular item/task.

Page 11: Improving the SharePoint Development Process with Continuous Integration

Source ControlWhen part of a CI process, source control is more than just a code repository

Design and configure the source control system to match the needs of each project

Branches and labels

File locking

Check-in process

Build triggers are set for individual branches

Best Practice: Each branch should represent a release (not a server!)

Page 12: Improving the SharePoint Development Process with Continuous Integration

Deployment SchedulingFrequent deployments are essential to the CI process, but it’s possible to be too agile

Multiple factors help determine the ideal schedule:

Number of test environments

Sprint duration

Testing process and duration

Best Practice: “True” CI for Integration environments, regularly scheduled deployments for Staging environments.

Page 13: Improving the SharePoint Development Process with Continuous Integration

CI ComponentsImplementing a CI process from scratch.

Page 14: Improving the SharePoint Development Process with Continuous Integration

Project SetupCreate a team project

Explanation of Process Templates

Add work items and tasks

Open project in Visual Studio

Page 15: Improving the SharePoint Development Process with Continuous Integration

Build ConfigurationStart from the Builds tab in Team Explorer view

Create a new build definition!

Trigger (Build Triggers Explained)

Build Controller

Process

Best Practice: Make build outcome dependent on unit tests.

Page 16: Improving the SharePoint Development Process with Continuous Integration

Unit TestingUnit testing of .NET code is straightforward, out of the box

JavaScript unit testing can also be integrated with a build using additional tools

Qunit – JavaScript unit testing framework

Chutzpah – JavaScript test runner with Visual Studio extensionIntegrating Chutzpah with TFS

Page 17: Improving the SharePoint Development Process with Continuous Integration

Automated DeploymentConfigure a build definition to execute a command upon successful completion

PowerShell!SharePoint 2010 with Windows PowerShell Remoting Step by Step

What about SharePoint Online? SharePoint Online Management Shell

Client-side SharePoint PowerShell

Complexity of automation varies by solutionSimple WSP deployment, or do specific features need to be activated?

Should the same deployment steps occur every time?

For some projects, automated builds (without deployment) may be enough

Page 18: Improving the SharePoint Development Process with Continuous Integration

Thank you!Please submit a speaker evaluation (forms at front).

Let’s talk at SharePint!Harvest Moon Brewery

392 George Street

New Brunswick, NJ 08901

Twitter: @HollywoodHiskey

E-mail: [email protected]


Recommended