pro agile .net development solution overview

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

Upload: josh-gough

Post on 05-Dec-2014

668 views

Category:

Technology


0 download

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.

TRANSCRIPT

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!