Visual Studio 2010 Best Practices

Visual Studio 2010 Best Practices
eBook: $23.99
Formats: PDF, PacktLib, ePub and Mobi formats
save 15%!
Print + free eBook + free PacktLib access to the book: $63.98    Print cover: $39.99
save 6%!
Free Shipping!
UK, US, Europe and selected countries in Asia.
Also available on:
Table of Contents
Sample Chapters
  • This book and e-book detail a large breadth of recommended practices in Visual Studio
  • Consolidated reference of varied practices including background and detailed implementations, great for inexperienced and experience developers alike.
  • A guidelines-based set of practices for all aspects of software development from architecture to specific technologies to deployment.

Book Details

Language : English
Paperback : 280 pages [ 235mm x 191mm ]
Release Date : August 2012
ISBN : 1849687161
ISBN 13 : 9781849687164
Author(s) : Peter Ritchie
Topics and Technologies : All Books, Application Development, Enterprise, Microsoft

Table of Contents

Chapter 1: Working with Best Practices
Chapter 2: Source Code Control Practices
Chapter 3: Low-level C# Practices
Chapter 4: Architectural Practices
Chapter 5: Recommended Practices for Deployment
Chapter 6: Automated Testing Practices
Chapter 7: Optimizing Visual Studio
Chapter 8: Parallelization Practices
Chapter 9: Distributed Applications
Chapter 10: Web Service Recommended Practices
  • Chapter 1: Working with Best Practices
    • Recommended practices
    • Intransitive "best" practices
    • Benefits of using practices
      • Avoiding pragmatic re-use
      • Reducing technical debt
    • Not invented here syndrome
    • Beyond practices
      • Using katas
      • Reaching kaizen
      • Aspects of a practice
      • Evaluating practices
      • Documenting practices
        • Geographic distribution
        • Team size
        • Regulatory compliance
        • Domain complexity
        • Organizational distribution
        • Technical complexity
        • Organizational complexity
        • Enterprise discipline
        • Life-cycle scope
        • Paradigm
        • Categorization
        • In this book
      • Evolving practices—a collaborative effort
    • Axiomatic practices
    • Patterns
    • Why practices?
      • An empirical and not a defined process
      • Cross-cutting concerns
      • Focus on the value
    • The power of mantras
    • Summary
    • Chapter 2: Source Code Control Practices
      • Terminology
        • Repository
        • SCC
        • Edit/merge/commit
        • Lock/edit/check-in
        • Trunk
        • Branch
        • Fork
        • Merge
        • Check-out
        • Check-in
        • Changeset
        • Lock
        • Commit
        • Push
        • Pull
        • Tag/label
        • Shelving/shelvesets
      • Principles
      • Recommended SCC software evaluation criteria
        • Workflow model
        • Total cost of ownership
        • Integration options
        • Team dynamics and location
        • Self or third-party hosting
        • Authentication
      • Organizing for source code control
        • Organizing directory structures
        • Solution structure
        • Continuous integration
      • Branching strategies
        • Isolation
        • Ad hoc isolation
        • Testing isolation
        • Release isolation
        • Feature isolation
        • Team isolation
      • Commit (check-in) practices
        • Merge remote changes before commit
        • Commit frequently
        • Atomic commits
      • Occasionally connected source control
      • Distributed source control
      • Summary
      • Chapter 3: Low-level C# Practices
        • Working with generics
          • Limits of generics
        • Writing sequence and iterator members
        • Working with lambdas
        • Working with extension methods
        • Exception handling
          • Exceptions to the exception practices
        • Summary
        • Chapter 4: Architectural Practices
          • Terms
          • Decoupling
            • Command Query Separation
            • Data Transfer Objects (DTO)
            • Single responsibility
            • Layering
          • Data-based applications
            • Object Relational Mappers (ORMs)
            • NoSQL
            • Document databases
            • Pulling it all together
          • Distributed architecture
            • Messaging
            • Data synchronization and events
              • DTOs Revisited
          • Summary
          • Chapter 5: Recommended Practices for Deployment
            • Working with installers
            • Working with Windows Installer
              • Uninstalling
            • Visual Studio Setup and Deployment projects
              • Setup Wizard
              • Setup Project
              • Web Setup Project
              • Merge Module Project
              • CAB Project
                • File System
                • File types
                • User interface
                • Launch conditions
              • Custom actions
              • Drawbacks of Setup and Deployment Project
            • ClickOnce
            • Windows Installer XML (WiX)
              • Include files
              • Fragments
              • Migrating from Setup and Deployment projects
              • Integrating into Visual Studio
                • Setup Project
                • Merge Module Project
                • Setup Library Project
                • Bootstrapper Project
                • C# Custom Action Project
                • C++ Custom Action Project
              • Continuous integration
            • Silent installations
            • Testing
            • Summary
            • Chapter 6: Automated Testing Practices
              • First principles
                • Related terms
                • Test-driven development
                • Red, Green, Refactor
                  • I'm not a tester
                • Why automated?
                • Benefits
                  • Continuous verification
                  • Documentation
                  • Caveats
                • Aspects of good tests
                  • Repeatable
                  • Independent
                  • Verifies one thing
                  • Simple
                  • Readable
                  • Fast
                  • Reliable
                  • Informative
              • Test naming
              • Separate test projects or not?
              • Test styles
                • Arrange, Act, Assert
                • Given, When, Then
                • Test types
                  • State-based testing
                  • Interaction testing
              • Object-orientation and tests
              • Fluent interfaces revisited
              • Mocking
                • Isolation frameworks
              • Methodologies
                • TDD
                • BDD
              • Test coverage
              • Continuous testing
              • Round-tripping requirements and acceptance
              • Summary
              • Chapter 7: Optimizing Visual Studio
                • Visual Studio efficiency through configuration
                  • Recommended computer specifications
                    • Multi-monitor
                  • Organizing projects
                  • Organizing windows
                    • Auto-hiding
                  • Toolbars
                  • Exceptional features
                  • Exporting/backing up your custom look and feel
                  • Add-ins and extensions
                    • Productivity Power Tools
                    • Resharper
                • Visual Studio efficiency through usage
                  • Using the keyboard over the mouse
                  • Dividing up solutions
                  • Macros
                    • Advanced search/replace
                  • Playing nice with source code control
                    • Tracked file in project/solution
                  • Continuous integration
                    • Tests
                    • Build
                • Summary
                • Chapter 8: Parallelization Practices
                  • Principles
                    • Threading primitives
                    • Threading caveats
                    • Other terminologies
                  • Threads
                  • Thread synchronization
                    • Thread safety
                      • Minding your invariants
                    • Thread synchronization and locking
                      • Locking
                      • Lock-free synchronization
                      • Advanced synchronization
                  • Asynchronous operations
                    • Asynchronous Design Pattern
                    • Event-based Asynchronous Pattern
                  • Division of labor
                  • Task Parallel Library
                    • Tasks
                    • Execution
                    • Parallelization
                    • Working with Asynchronous Design Pattern
                    • Continuations
                  • Visual Studio 2012 asynchronous programming
                    • The Task-based Asynchronous Pattern
                  • Reactive Extensions
                  • Summary
                  • Chapter 9: Distributed Applications
                    • Seeking scalability
                    • Design options
                      • Communicating via a database
                      • Messaging pattern
                        • Message queues
                        • Command-query separation
                        • Message bus
                        • Service bus
                    • Cloud
                      • Infrastructure as a Service
                      • Platform as a Service
                      • Software as a Service
                    • TCP/UDP
                    • Debugging
                    • Logging
                      • What to log
                    • Health monitoring
                      • Proactive monitoring
                    • Summary
                    • Chapter 10: Web Service Recommended Practices
                      • Implementing WCF services
                        • Editing configuration
                        • Hosting
                          • Hosting WCF services in IIS
                          • Windows service WCF self-hosting
                          • WCF self-hosted
                        • Manual testing
                        • Authentication and authorization
                        • Different transport options
                      • ASP.NET Web Services
                        • Authentication and authorization
                      • Summary

                      Peter Ritchie

                      Peter Ritchie is a software development consultant. Peter is president of Peter Ritchie Inc. Software Consulting Co., a software consulting company in Canada's National Capital Region specializing in Windows-based software development management, process, and implementation consulting. Peter has worked with such clients as Mitel, Nortel, Passport Canada, and Innvapost from mentoring to architecture to implementation. Peter has considerable experience building software development teams and working with startups towards agile software development. Peter's range of experience ranges from designing and implementing simple standalone applications to architecting distributed n-tier applications spanning dozens of computers; from C++ to C#. Peter is active in the software development community attending and speaking at various events as well as authoring various works including Refactoring with Microsoft Visual Studio 2010.

                      Code Downloads

                      Download the code and support files for this book.

                      Submit Errata

                      Please let us know if you have found any errors not listed on this list by completing our errata submission form. Our editors will check them and add them to this list. Thank you.

                      Sample chapters

                      You can view our sample chapters and prefaces of this title on PacktLib or download sample chapters in PDF format.

                      Frequently bought together

                      Visual Studio 2010 Best Practices +    Scratch Cookbook =
                      50% Off
                      the second eBook
                      Price for both: $37.50

                      Buy both these recommended eBooks together and get 50% off the cheapest eBook.

                      What you will learn from this book

                      • Learning source code control
                      • Practices for advanced C# syntax
                      • Asynchronous programming in C#
                      • Learn tips for architecting decoupled systems
                      • Practices for designing multi-threaded and parallel systems
                      • Practices for designing distributed systems
                      • Learn better ways of developing web services with WCF
                      • Learn faster ways to design automated tests
                      • Tips and tricks to test complex systems
                      • Understanding proven ways of deploying software systems in Windows

                      In Detail

                      When you are developing on the Microsoft platform, Visual Studio 2010 offers you a range of powerful tools and makes the whole process easier and faster. After learning it, if you are think that you can sit back and relax, you cannot be further away from truth. To beat the crowd, you need to be better than others, learn tips and tricks that other don’t know yet. This book is a compilation of the best practices of programming with Visual Studio.

                      Visual Studio 2010 best practices will take you through the practices that you need to master programming with .NET Framework. The book goes on to detail several practices involving many aspects of software development with Visual Studio. These practices include debugging and exception handling and design. It details building and maintaining a recommended practices library and the criteria by which to document recommended practices.

                      The book begins with practices on source code control (SCC). It includes different types of SCC and discusses how to choose them based on different scenarios. Advanced syntax in C# is then covered with practices covering generics, iterator methods, lambdas, and closures.

                      The next set of practices focus on deployment as well as creating MSI deployments with Windows Installer XML (WiX)—including Windows applications and services. The book then takes you through practices for developing with WCF and Web Service.

                      The software development lifecycle is completed with practices on testing like project structure, naming, and the different types of automated tests. Topics like test coverage, continuous testing and deployment, and mocking are included. Although this book uses Visual Studio as example, you can use these practices with any IDE.


                      It will be a step-by-step tutorial that will discuss best practices. The book is structured in such a way that it can be read both from start to end or can dipped into.

                      Who this book is for

                      .Net developers using Visual Studio for programming will find this book useful. If you are developing your application with C#, you will find better ways to do things with Visual Studio.

                      You should know basics of development with .Net Framework and need working knowledge on VIsual Studio

                      Code Download and Errata
                      Packt Anytime, Anywhere
                      Register Books
                      Print Upgrades
                      eBook Downloads
                      Video Support
                      Contact Us
                      Awards Voting Nominations Previous Winners
                      Judges Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software
                      Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software