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
![Page 1: Pro Agile .NET Development Solution Overview](https://reader033.vdocuments.us/reader033/viewer/2022051209/548d94fdb47959d30c8b662e/html5/thumbnails/1.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022051209/548d94fdb47959d30c8b662e/html5/thumbnails/2.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022051209/548d94fdb47959d30c8b662e/html5/thumbnails/3.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022051209/548d94fdb47959d30c8b662e/html5/thumbnails/4.jpg)
Pro ASP.NET Design Patterns Summary
![Page 5: Pro Agile .NET Development Solution Overview](https://reader033.vdocuments.us/reader033/viewer/2022051209/548d94fdb47959d30c8b662e/html5/thumbnails/5.jpg)
And The Winner Is...
![Page 6: Pro Agile .NET Development Solution Overview](https://reader033.vdocuments.us/reader033/viewer/2022051209/548d94fdb47959d30c8b662e/html5/thumbnails/6.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022051209/548d94fdb47959d30c8b662e/html5/thumbnails/7.jpg)
Blackjack Game Screen (With CSS flaw!)
![Page 8: Pro Agile .NET Development Solution Overview](https://reader033.vdocuments.us/reader033/viewer/2022051209/548d94fdb47959d30c8b662e/html5/thumbnails/8.jpg)
Winning Hand!
![Page 9: Pro Agile .NET Development Solution Overview](https://reader033.vdocuments.us/reader033/viewer/2022051209/548d94fdb47959d30c8b662e/html5/thumbnails/9.jpg)
Scrum Process
![Page 10: Pro Agile .NET Development Solution Overview](https://reader033.vdocuments.us/reader033/viewer/2022051209/548d94fdb47959d30c8b662e/html5/thumbnails/10.jpg)
More About Scrum from Jeff Sutherland
![Page 11: Pro Agile .NET Development Solution Overview](https://reader033.vdocuments.us/reader033/viewer/2022051209/548d94fdb47959d30c8b662e/html5/thumbnails/11.jpg)
Blackjack Solution Overview
![Page 12: Pro Agile .NET Development Solution Overview](https://reader033.vdocuments.us/reader033/viewer/2022051209/548d94fdb47959d30c8b662e/html5/thumbnails/12.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022051209/548d94fdb47959d30c8b662e/html5/thumbnails/13.jpg)
Acceptance Criteria in Given, When, Then Format
![Page 14: Pro Agile .NET Development Solution Overview](https://reader033.vdocuments.us/reader033/viewer/2022051209/548d94fdb47959d30c8b662e/html5/thumbnails/14.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022051209/548d94fdb47959d30c8b662e/html5/thumbnails/15.jpg)
The Big Picture
Source: http://www.slideshare.net/jbandi/ndc-2011-building-net-applications-with-bdd
![Page 16: Pro Agile .NET Development Solution Overview](https://reader033.vdocuments.us/reader033/viewer/2022051209/548d94fdb47959d30c8b662e/html5/thumbnails/16.jpg)
Drilling Into a Whole Feature : SpecFlow
001-BetAtTheStartOfAGame.feature:
![Page 17: Pro Agile .NET Development Solution Overview](https://reader033.vdocuments.us/reader033/viewer/2022051209/548d94fdb47959d30c8b662e/html5/thumbnails/17.jpg)
Feature File Maps Give, When, Then to “Step” Definitions
NavigationSteps.cs:
![Page 18: Pro Agile .NET Development Solution Overview](https://reader033.vdocuments.us/reader033/viewer/2022051209/548d94fdb47959d30c8b662e/html5/thumbnails/18.jpg)
SiteNavigator is Facade for WatiN Browser Automation
![Page 19: Pro Agile .NET Development Solution Overview](https://reader033.vdocuments.us/reader033/viewer/2022051209/548d94fdb47959d30c8b662e/html5/thumbnails/19.jpg)
Page Objects Pattern Simulates End User's Behavior
![Page 20: Pro Agile .NET Development Solution Overview](https://reader033.vdocuments.us/reader033/viewer/2022051209/548d94fdb47959d30c8b662e/html5/thumbnails/20.jpg)
The BetOnHandPage Object
![Page 21: Pro Agile .NET Development Solution Overview](https://reader033.vdocuments.us/reader033/viewer/2022051209/548d94fdb47959d30c8b662e/html5/thumbnails/21.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022051209/548d94fdb47959d30c8b662e/html5/thumbnails/22.jpg)
Extreme Page Objects
http://www.youtube.com/watch?v=Jg-FN_rcNRc
![Page 23: Pro Agile .NET Development Solution Overview](https://reader033.vdocuments.us/reader033/viewer/2022051209/548d94fdb47959d30c8b662e/html5/thumbnails/23.jpg)
Driving Internal Design with mSpec
![Page 24: Pro Agile .NET Development Solution Overview](https://reader033.vdocuments.us/reader033/viewer/2022051209/548d94fdb47959d30c8b662e/html5/thumbnails/24.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022051209/548d94fdb47959d30c8b662e/html5/thumbnails/25.jpg)
BetController Contextual Specification
![Page 26: Pro Agile .NET Development Solution Overview](https://reader033.vdocuments.us/reader033/viewer/2022051209/548d94fdb47959d30c8b662e/html5/thumbnails/26.jpg)
BetController Bet Implementation (HTTP POST)
BetController.cs:
![Page 27: Pro Agile .NET Development Solution Overview](https://reader033.vdocuments.us/reader033/viewer/2022051209/548d94fdb47959d30c8b662e/html5/thumbnails/27.jpg)
CQRS Command Bus Instance
![Page 28: Pro Agile .NET Development Solution Overview](https://reader033.vdocuments.us/reader033/viewer/2022051209/548d94fdb47959d30c8b662e/html5/thumbnails/28.jpg)
BetCommand Declaration
![Page 29: Pro Agile .NET Development Solution Overview](https://reader033.vdocuments.us/reader033/viewer/2022051209/548d94fdb47959d30c8b662e/html5/thumbnails/29.jpg)
BetHandler
![Page 30: Pro Agile .NET Development Solution Overview](https://reader033.vdocuments.us/reader033/viewer/2022051209/548d94fdb47959d30c8b662e/html5/thumbnails/30.jpg)
Redirect Back to Bet (HTTP GET)
![Page 31: Pro Agile .NET Development Solution Overview](https://reader033.vdocuments.us/reader033/viewer/2022051209/548d94fdb47959d30c8b662e/html5/thumbnails/31.jpg)
More About CQRS: Traditional Way
Source http://martinfowler.com/bliki/CQRS.html
![Page 32: Pro Agile .NET Development Solution Overview](https://reader033.vdocuments.us/reader033/viewer/2022051209/548d94fdb47959d30c8b662e/html5/thumbnails/32.jpg)
More about CQRS: Separation
![Page 33: Pro Agile .NET Development Solution Overview](https://reader033.vdocuments.us/reader033/viewer/2022051209/548d94fdb47959d30c8b662e/html5/thumbnails/33.jpg)
Happy Coding!