pro agile .net development solution overview
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
Pro Agile .NET Development with Scrum Solution Overview
November 1, 2011
Presenter: Josh Gough
ATL ALT.NET Meetup
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!
Book Raffle!
Scott Millett sent copies of his previous book Pro ASP.NET Design Patterns for us to raffle!
Pro ASP.NET Design Patterns Summary
And The Winner Is...
Pro Agile .NET Blackjack Project
Book Url: http://www.apress.com/9781430235330 – eBook only $17 with perk!
Blackjack Game Screen (With CSS flaw!)
Winning Hand!
Scrum Process
More About Scrum from Jeff Sutherland
Blackjack 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/
Acceptance Criteria in Given, When, Then Format
Turning User Stories into Living / Executable Documentation
Source: http://www.slideshare.net/jbandi/ndc-2011-building-net-applications-with-bdd
The Big Picture
Source: http://www.slideshare.net/jbandi/ndc-2011-building-net-applications-with-bdd
Drilling Into a Whole Feature : SpecFlow
001-BetAtTheStartOfAGame.feature:
Feature File Maps Give, When, Then to “Step” Definitions
NavigationSteps.cs:
SiteNavigator is Facade for WatiN Browser Automation
Page Objects Pattern Simulates End User's Behavior
The BetOnHandPage Object
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
Extreme Page Objects
http://www.youtube.com/watch?v=Jg-FN_rcNRc
Driving Internal Design with mSpec
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
BetController Contextual Specification
BetController Bet Implementation (HTTP POST)
BetController.cs:
CQRS Command Bus Instance
BetCommand Declaration
BetHandler
Redirect Back to Bet (HTTP GET)
More About CQRS: Traditional Way
Source http://martinfowler.com/bliki/CQRS.html
More about CQRS: Separation
Happy Coding!