Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

of

MSDN Live - CI using TFS11 & NuGet Slide 1 MSDN Live - CI using TFS11 & NuGet Slide 2 MSDN Live - CI using TFS11 & NuGet Slide 3 MSDN Live - CI using TFS11 & NuGet Slide 4 MSDN Live - CI using TFS11 & NuGet Slide 5 MSDN Live - CI using TFS11 & NuGet Slide 6 MSDN Live - CI using TFS11 & NuGet Slide 7 MSDN Live - CI using TFS11 & NuGet Slide 8 MSDN Live - CI using TFS11 & NuGet Slide 9 MSDN Live - CI using TFS11 & NuGet Slide 10 MSDN Live - CI using TFS11 & NuGet Slide 11 MSDN Live - CI using TFS11 & NuGet Slide 12 MSDN Live - CI using TFS11 & NuGet Slide 13 MSDN Live - CI using TFS11 & NuGet Slide 14 MSDN Live - CI using TFS11 & NuGet Slide 15 MSDN Live - CI using TFS11 & NuGet Slide 16 MSDN Live - CI using TFS11 & NuGet Slide 17 MSDN Live - CI using TFS11 & NuGet Slide 18 MSDN Live - CI using TFS11 & NuGet Slide 19 MSDN Live - CI using TFS11 & NuGet Slide 20 MSDN Live - CI using TFS11 & NuGet Slide 21 MSDN Live - CI using TFS11 & NuGet Slide 22 MSDN Live - CI using TFS11 & NuGet Slide 23 MSDN Live - CI using TFS11 & NuGet Slide 24 MSDN Live - CI using TFS11 & NuGet Slide 25 MSDN Live - CI using TFS11 & NuGet Slide 26 MSDN Live - CI using TFS11 & NuGet Slide 27 MSDN Live - CI using TFS11 & NuGet Slide 28 MSDN Live - CI using TFS11 & NuGet Slide 29 MSDN Live - CI using TFS11 & NuGet Slide 30 MSDN Live - CI using TFS11 & NuGet Slide 31 MSDN Live - CI using TFS11 & NuGet Slide 32 MSDN Live - CI using TFS11 & NuGet Slide 33
Upcoming SlideShare
Organize your chickens - NuGet for the Enterprise
Next
Download to read offline and view in fullscreen.

1 Like

Share

Download to read offline

MSDN Live - CI using TFS11 & NuGet

Download to read offline

NuGet quickly became a very popular package management solution for .NET and has been around for some time now. The introduction of a central package repository and the integrated NuGet tooling suddenly made it a whole lot easier to improve certain ALM processes, proof of which can be found into the increasing rate at which many packages make it to the NuGet Gallery.
At the same time, most businesses are struggling how to take optimal benefit from this while trying to avoid a situation commonly known as “dependency hell”. In addition, most are not anticipating or designing for failure by depending directly, which became painfully clear during a recent downtime of the NuGet Gallery. This session will provide you with guidance on how you can use both NuGet and TFS11 to take your development environment to the next level.

Related Books

Free with a 30 day trial from Scribd

See all

MSDN Live - CI using TFS11 & NuGet

  1. 1. www.realdolmen.com CONTINUOUS INTEGRATION USING & MAY 8, 2012 | SLIDE 1
  2. 2. WHO AM I?  Xavier Decoster  Antwerp, Belgium  www.realdolmen.com  Co-founder of MyGet.org  Focus on ALM/Web  http://www.xavierdecoster.com  @xavierdecoster MAY 8, 2012 | SLIDE 3
  3. 3. AGENDA  Continuous Integration  Room for Improvement  Dealing with dependencies  Versioning  VCS issues  Debugging  Package Management  One step closer to Continuous Delivery?  1 + 1 = Optimize for Happiness MAY 8, 2012 | SLIDE 4
  4. 4. Do you speak it? CONTINUOUS INTEGRATION MAY 8, 2012 | SLIDE 5
  5. 5. DISCLAIMER  Not saying “my way” must be “your way”  Non-optimal doesn’t mean wrong  Pointing out opportunities and alternatives MAY 8, 2012 | SLIDE 6
  6. 6. CONTINUOUS INTEGRATION  Team members integrate their work frequently  Each integration is verified by an automated build (including tests)  Goal:  Detect integration errors  As quickly as possible!  Why?  Reduce risks  Deployable software at any time MAY 8, 2012 | SLIDE 7
  7. 7. (OFTEN) NON-OPTIMAL SETUP  Most commonly encountered approach to CI Developer  Automated Build triggered by VCS VCS  All tests run every single time Build  Eventually someone looks at the CI Tests outcome Feedback MAY 8, 2012 | SLIDE 8
  8. 8. WHAT IF…  … compilation fails?  Changes already in VCS! Developer  Entire team affected VCS  … a test fails?  Same story! Build  … no one noticed the CI failed?  Kittens die! Tests Feedback MAY 8, 2012 | SLIDE 9
  9. 9. OPTIMIZE FOR HAPPINESS  Integrate first!  Gated check-ins Developer  Integration fails? Build  Changeset rejected Tests  Integration succeeds?  Changeset committed Feedback Every successful check-in is a reward for good work. VCS MAY 8, 2012 | SLIDE 10
  10. 10. OPTIMIZE FOR QUALITY  Code Analysis Developer Build  Test Impact Analysis Tests Feedback VCS MAY 8, 2012 | SLIDE 11
  11. 11. TFS11 – CI IMPROVEMENTS  Build Triggers MAY 8, 2012 | SLIDE 12
  12. 12. TFS11 – CI IMPROVEMENTS  Supporting multiple test frameworks  MSTest (built-in)  xUnit (http://aka.ms/xunit-vs11)  NUnit (http://aka.ms/nunit-vs11) MAY 8, 2012 | SLIDE 13
  13. 13. VS11 – CI IMPROVEMENTS  Continuously Run Unit Tests  Separate Code Analysis Results window MAY 8, 2012 | SLIDE 14
  14. 14. VS11 – CI IMPROVEMENTS  Tracking Builds MAY 8, 2012 | SLIDE 15
  15. 15. VS11 – CI IMPROVEMENTS  Faster Feedback  Dialog Prompt  Auto-Reconciliation  Toast notifications  Improved accessibility to builds  Own recent builds overview  Favorites!  Filter definitions using search box MAY 8, 2012 | SLIDE 16
  16. 16. TFS ONLINE (BETA)  Built upon Windows Azure  “TFS in the Cloud”  Benefits  Incremental feature upgrades  Reduced timespan between major upgrades  Setup & configuration by Microsoft  Most of internal support & maintenance by Microsoft  Identity management  Via Windows Azure ACS  Only Live ID at the moment  Federation to come? MAY 8, 2012 | SLIDE 17
  17. 17. DEALING WITH DEPENDENCIES MAY 8, 2012 | SLIDE 18
  18. 18. DEPENDENCY HELL “A term for the frustration of software users who have installed software packages which have dependencies on specific versions of other software packages.” MAY 8, 2012 | SLIDE 19
  19. 19. REACTIONS  Reinventing the wheel  We don’t need that dependency  “If they can do it, we can do it, but better”  Marketing-driven versioning  People are waiting for v2 to buy  Let’s call it v7 Platform Update SP3 November Edition KB2348063 RTW Refresh  What happened to reuse of components?  We lost ownership of AssemblyVersion ? MAY 8, 2012 | SLIDE 20
  20. 20. CAUSE AND EFFECT Reference-by-source • “Needed for debugging” syndrome • Found a bug and fixed it • Upgrade path: merges! Reference-by-release • Use symbols for debugging • Report/Fix the bug and submit a pull request • Clean upgrade path MAY 8, 2012 | SLIDE 21
  21. 21. PACKAGE MANAGEMENT MAY 8, 2012 | SLIDE 22
  22. 22. NUGET  NuGet Gallery  5000+ unique packages  Within “2 clicks or 1 command” reach inside Visual Studio  NuGet improved  Discoverability  Upgrade experience  Reuse of software  Reference-by-release + symbols for everyone  NuGet provides opportunities  Dependency management  Reach, discoverability & visibility of own packages MAY 8, 2012 | SLIDE 23
  23. 23. VERSIONING  NuGet supports Semantic Versioning  http://www.semver.org Major Breaking changes Minor Backwards compatible API additions/changes Patch Bugfixes not affecting the API  Prerelease  Tags: Alpha, Beta, RC, … (e.g. v1.0.0-RC)  Note: precedence in alphabetic order! MAY 8, 2012 | SLIDE 24
  24. 24. NUGET SUPPORTS SEMANTIC VERSIONING  But not entirely…  NuGet doesn’t support 4th version number (build) for prereleases  1.0.0-RC.32190  Caution: pick a scheme!  Major.Minor.Patch[-Prerelease]  Major.Minor.Patch[.Build]  Workaround:  push CI packages to another feed, e.g. MyGet.org  mark CI packages as prerelease when pushing to NuGet.org – Remove Build number – Append Prerelease tag MAY 8, 2012 | SLIDE 25
  25. 25. DEPENDENCIES VS VCS  In TFS terms: Source Control  Today often contains  Documents  Binaries  Tools  Scripts  Sources  Struggling with binary diffs  Merge conflicts  Repository size MAY 8, 2012 | SLIDE 26
  26. 26. PACKAGE REPOSITORY  NuGet Package Repository  Package Restore feature  Opportunity  Get rid of binaries in VCS  Decrease binary diff issues & merge conflicts  Decrease VCS repository size  Manage dependencies centrally  Fine-grained packages = fine-grained dependencies MAY 8, 2012 | SLIDE 27
  27. 27. IN OR OUT?  Your choice  Have a strategy!  No-Commit?  What if the package source goes down?  What if a package got removed from the repository?  Mirroring MAY 8, 2012 | SLIDE 28
  28. 28. Package Restore Package & Symbols Publishing SOLUTION SETUP MAY 8, 2012 | SLIDE 29
  29. 29. DEMO SUMMARY  Enable-PackageRestore  Install-Package NuSpec  Install-NuSpec <project> -EnablePackageBuild  Enable-PackagePush  Set pkg src URL, symbols src URL, API-key  Easy package creation (IntelliSense)  Automatic package building & versioning  Automatic package & symbols pushing MAY 8, 2012 | SLIDE 30
  30. 30. RESOURCES  Continuous Integration: http://martinfowler.com/articles/continuousIntegration.html  Team Foundation Service (Preview): http://tfspreview.com/ (ALM Rangers whitepaper)  Visual Studio 11 & TFS 11 (Beta): http://www.microsoft.com/visualstudio/11/en-us  NuGet: http://www.nuget.org  http://docs.nuget.org/docs/start-here/overview PM> Install-Package ProNuGet  MyGet: http://www.myget.org  SymbolSource:  http://www.symbolsource.org MAY 8, 2012 | SLIDE 31
  31. 31. BONUS http://bit.ly/mygetforfree MAY 8, 2012 | SLIDE 32
  32. 32. Q&A MAY 8, 2012 | SLIDE 33
  33. 33. THANK YOU FOR JOINING MAY 8, 2012 | SLIDE 34
  • dimitarkapitanov35

    Jun. 12, 2013

NuGet quickly became a very popular package management solution for .NET and has been around for some time now. The introduction of a central package repository and the integrated NuGet tooling suddenly made it a whole lot easier to improve certain ALM processes, proof of which can be found into the increasing rate at which many packages make it to the NuGet Gallery. At the same time, most businesses are struggling how to take optimal benefit from this while trying to avoid a situation commonly known as “dependency hell”. In addition, most are not anticipating or designing for failure by depending directly, which became painfully clear during a recent downtime of the NuGet Gallery. This session will provide you with guidance on how you can use both NuGet and TFS11 to take your development environment to the next level.

Views

Total views

3,064

On Slideshare

0

From embeds

0

Number of embeds

1,126

Actions

Downloads

18

Shares

0

Comments

0

Likes

1

×