33
Pro Agile .NET Development with Scrum Solution Overview November 1, 2011 Presenter: Josh Gough ATL ALT.NET Meetup

Pro Agile .NET Development Solution Overview

Embed Size (px)

DESCRIPTION

Presentation given at Atlanta ALT.NET Meetup about Apress book Pro Agile .NET Development with Scrum. The book leads the reader through a hands-on project that features BDD with SpecFlow, TDD with mSpec, ASP.NET MVC for the web layer, a simple NHibernate based query service for reads, and a CQRS command bus for writes to the system DB.If you're in Atlanta, check out http://www.meetup.com/ATLAltDotNet. We will be continuing to work through the materials as a group over the last couple of months of 2011. Many thanks to Apress and the book's authors for letting our group use it and providing a half-off discount code for our group's members.

Citation preview

Page 1: Pro Agile .NET Development Solution Overview

Pro Agile .NET Development with Scrum Solution Overview

November 1, 2011

Presenter: Josh Gough

ATL ALT.NET Meetup

Page 2: Pro Agile .NET Development Solution Overview

Thank You

Thank you to Manuel's Tavern!

Thanks to book's authors! ● Jerrel Blankenship● Matthew Bussa● Scott Millett

Thanks to Apress for sponsoring our group and for 50% discount!

Page 3: Pro Agile .NET Development Solution Overview

Book Raffle!

Scott Millett sent copies of his previous book Pro ASP.NET Design Patterns for us to raffle!

Page 4: Pro Agile .NET Development Solution Overview

Pro ASP.NET Design Patterns Summary

Page 5: Pro Agile .NET Development Solution Overview

And The Winner Is...

Page 6: Pro Agile .NET Development Solution Overview

Pro Agile .NET Blackjack Project

Book Url: http://www.apress.com/9781430235330 – eBook only $17 with perk!

Page 7: Pro Agile .NET Development Solution Overview

Blackjack Game Screen (With CSS flaw!)

Page 8: Pro Agile .NET Development Solution Overview

Winning Hand!

Page 9: Pro Agile .NET Development Solution Overview

Scrum Process

Page 10: Pro Agile .NET Development Solution Overview

More About Scrum from Jeff Sutherland

Page 11: Pro Agile .NET Development Solution Overview

Blackjack Solution Overview

Page 12: Pro Agile .NET Development Solution Overview

BDD Acceptance Tests: Outside-In

Behaviour-driven development is an “outside-in” methodology. It starts at the outside by identifying business outcomes, and then drills down into the feature set that will achieve those outcomes. Each feature is captured as a “story”, which defines the scope of the feature along with its acceptance criteria.

– Dan North, originator of term “BDD”

http://dannorth.net/whats-in-a-story/

Page 13: Pro Agile .NET Development Solution Overview

Acceptance Criteria in Given, When, Then Format

Page 14: Pro Agile .NET Development Solution Overview

Turning User Stories into Living / Executable Documentation

Source: http://www.slideshare.net/jbandi/ndc-2011-building-net-applications-with-bdd

Page 15: Pro Agile .NET Development Solution Overview

The Big Picture

Source: http://www.slideshare.net/jbandi/ndc-2011-building-net-applications-with-bdd

Page 16: Pro Agile .NET Development Solution Overview

Drilling Into a Whole Feature : SpecFlow

001-BetAtTheStartOfAGame.feature:

Page 17: Pro Agile .NET Development Solution Overview

Feature File Maps Give, When, Then to “Step” Definitions

NavigationSteps.cs:

Page 18: Pro Agile .NET Development Solution Overview

SiteNavigator is Facade for WatiN Browser Automation

Page 19: Pro Agile .NET Development Solution Overview

Page Objects Pattern Simulates End User's Behavior

Page 20: Pro Agile .NET Development Solution Overview

The BetOnHandPage Object

Page 21: Pro Agile .NET Development Solution Overview

More About Page ObjectsThe Page Object pattern represents the screens of your web app as a series of objects

Source: http://code.google.com/p/selenium/wiki/PageObjects

Page 22: Pro Agile .NET Development Solution Overview

Extreme Page Objects

http://www.youtube.com/watch?v=Jg-FN_rcNRc

Page 23: Pro Agile .NET Development Solution Overview

Driving Internal Design with mSpec

Page 24: Pro Agile .NET Development Solution Overview

Context Specification Style Tests

Named as sentences that describe the application state / interaction

●Establish specifies context of the scenario, the “Givens”

●Because executes behavior, the “When” steps

●It should delegates makes assertions, the “Then” steps

Page 25: Pro Agile .NET Development Solution Overview

BetController Contextual Specification

Page 26: Pro Agile .NET Development Solution Overview

BetController Bet Implementation (HTTP POST)

BetController.cs:

Page 27: Pro Agile .NET Development Solution Overview

CQRS Command Bus Instance

Page 28: Pro Agile .NET Development Solution Overview

BetCommand Declaration

Page 29: Pro Agile .NET Development Solution Overview

BetHandler

Page 30: Pro Agile .NET Development Solution Overview

Redirect Back to Bet (HTTP GET)

Page 31: Pro Agile .NET Development Solution Overview

More About CQRS: Traditional Way

Source http://martinfowler.com/bliki/CQRS.html

Page 32: Pro Agile .NET Development Solution Overview

More about CQRS: Separation

Page 33: Pro Agile .NET Development Solution Overview

Happy Coding!