How we did it:
For any feedback, any questions, any notes or just for chat - feel free to follow us on social networks
Michael C. Feathers
The average book on Agile software development describes a fairyland of greenfield projects, with wall-to-wall tests that run after every few edits, and clean & simple source code.
The average software project, in our industry, was written under some aspect of code-and-fix, and without automated unit tests. And we can't just throw this code away; it represents a significant effort debugging and maintaining. It contains many latent requirements decisions. Just as Agile processes are incremental, Agile adoption must be incremental too. No more throwing away code just because it looked at us funny.
Mike begins his book with a very diplomatic definition of "Legacy". I'l skip ahead to the undiplomatic version: Legacy code is code without unit tests.
Before cleaning that code up, and before adding new features and removing bugs, such code must be de-legacified. It needs unit tests.
To add unit tests, you must change the code. To change the code, you need unit tests to show how safe your change was.
The core of the book is a cookbook of recipes to conduct various careful attacks. Each presents a particular problem, and a relatively safe way to migrate the code towards tests.
Code undergoing this migration will begin to experience the benefits of unit tests, and these benefits will incrementally make new tests easier to write. These efforts will make aspects of a legacy codebase easy to change.
It's an unfortunate commentary on the state of our programming industry how much we need this book.
The first edition of this book was released at the 2001 Tech-Ed conference in Atlanta, Georgia. At that time, the .NET platform was still a beta product, and in many ways, so was this book. This is not to say that the early editions of this text did not have merit—after all, the book was a 2002 Jolt Award finalist and it won the 2003 Referenceware Excellence Award. However, over the years that author Andrew Troelsen spent working with the common language runtime (CLR), he gained a much deeper understanding of the .NET platform and the subtleties of the C# programming language, and he feels that this fifth edition of the book is as close to a “final release” as he’s come yet. This new edition has been comprehensively revised and rewritten to make it accurately reflect the C# 4 language specification for the .NET 4 platform. You’ll find new chapters covering the important concepts of dynamic lookups, named and optional arguments, Parallel LINQ (PLINQ), improved COM interop, and variance for generics. If you’re checking out this book for the first time, do understand that it's targeted at experienced software professionals and/or graduate students of computer science (so don't expect three chapters on iteration or decision constructs!). The mission of this text is to provide you with a rock-solid foundation in the C# programming language and the core aspects of the .NET platform (assemblies, remoting, Windows Forms, Web Forms, ADO.NET, XML web services, etc.). Once you digest the information presented in these 25 chapters, you’ll be in a perfect position to apply this knowledge to your specific programming assignments, and you’ll be well equipped to explore the .NET universe on your own terms. What you’ll learn Be the first to understand the .NET 4 platform and Visual C# 2010. Discover the ins and outs of the leading .NET technology. Learn from an award-winning author who has been teaching the .NET world since version 1.0. Find complete coverage of the WPF, WCF, and WF foundations that support the core .NET platform. Who this book is for This book is for anyone with some software development experience who is interested in the new .NET Framework 4 and the C# language. Whether you are moving to .NET for the first time or are already writing applications on .NET 2.0 or .NET 3.5, this book will provide you with a comprehensive grounding in the new technology and serve as a complete reference throughout your coding career. Table of Contents The Philosophy of NET Building C# Applications Core C# Programming Constructs, Part I Core C# Programming Constructs, Part II Defining Encapsulated Class Types Understanding Inheritance and Polymorphism Understanding Structured Exception Handling Understanding Object Lifetime Working with Interfaces Understanding Generics Delegates, Events, and Lambdas Advanced C# Language Features LINQ to Objects Configuring NET Assemblies Type Reflection, Late Binding, and Attribute-Based Prog Processes, AppDomains, and Object Contexts Understanding CIL and the Role of Dynamic Assemblies Dynamic Types and the Dynamic Language Runtime Multithreaded and Parallel Programming File I/O and Object Serialization ADO.NET Part I: The Connected Layer ADO.NET Part II: The Disconnected Layer ADO.NET Part III: The Entity Framework Introducing LINQ to XML Introducing Windows Communication Foundation Introducing Windows Workflow Foundation 40 Introducing Windows Presentation Foundation and XAML Programming with WPF Controls WPF Graphics Rendering Services WPF Resources, Animations, and Styles WPF Control Templates and UserControls Building ASP.NET Web Pages ASP.NET Web Controls, Master Pages and Theme ASP.NET State Management Techniques
Offers application debugging techniques for Microsoft .NET Framework and Windows, covering topics such as exception monitoring, crash handlers, and multithreaded deadlocks.
MSBuild is more than just a list of source files; it is a declarative programming language, and with the new features in the .Net 4.0 engine, a rather expressive language to boot. This book explores the Microsoft Build Engine used by C#, VB.Net, F# and C++ projects-the 4.0 version shipped with Visual Studio 2010-in depth and in a very practical way, full of examples not covered in the reference material (or in the other book on MSBuild). Inside you'll find: How to unify all your projects How to add help to your build How to simulate loops and data joins How to use inline C# code in project files How to enhance logging ...and over 90 additional tips and tricks, and including some extensive walkthroughs of more advanced topics, like dealing with huge projects and rolling your own tool integrations right in the IDE. You can further explore the content with code samples on the Web. So if you've ever found yourself wondering how to get MSBuild to... Perform some simple arithmetic, or a string replacement (see trick #9) Find a subset of files using a complex expression (see trick #11) Specify the folder where MSBuild.exe resides (see trick #6) Fail the build when your custom task shows an error but the build still succeeds (see trick #2) Get you a list of all the referenced assemblies in your project (see trick #72) Get Visual Studio to stop ignoring your customizations (see trick #82) Search for your customizations, without having to hardcode paths (see trick #16) Allow almost any property to be tweaked (see trick #45) Do something that seems too complex for AfterBuild (see trick #23) Extract the branch name from a path (see trick #99) And don't be put off if you're brand new to MSBuild. If you've ever so much as peeked at the XML in a C# project file, you'll be well served by this book. You'll start from first principals and the most basic mechanisms of MSBuild and the structure of an MSBuild file will be explained. Each trick is small and digestible and presented in a way that you can try out new techniques with just a few lines of MSBuild in a text file. Most of the tricks are things you can copy directly into your own build files and use that day. While many of the tricks stand on their own, the more complex ones are broken down and presented in sequences that progressively build on one another. You won't need any other book on MSBuild! But if you happen to have the other one, MSBuild Trickery will take you far beyond a reference book, providing practical guidance and preparing you for all of those truly unique gotchas that appear when the build runs. With a foreword by Dan Moseley, Microsoft Senior Development Lead for Visual Studio Project & Build.
Visual Studio is a development IDE created by Microsoft to enable easier development for Microsoft programming languages as well as development technologies. It has been the most popular IDE for working with Microsoft development products for the past 10 years. Extensibility is a key feature of Visual Studio. There have not been many books written on this aspect of Visual Studio. Visual Studio Extensibility (VSX) can be considered a hard topic to learn for many developers in comparison with most .NET related topics. Also, its APIs are very complex and not very well written. Some may refer to these APIs as dirty because they do not have good structure, naming convention, or consistency. Visual Studio is now 10 years old. It was created during the COM days for COM programming but later migrated to .NET. However, Visual Studio still relies heavily on COM programming. It was revamped when moving to the .NET platform but still contains its COM nature; this fact is what makes it harder for .NET developers to work with VSX. Because it is an older product built on two technologies, it has produced inconsistency in code. Although there are problems with the current version of VSX, the future looks bright for it. The many different teams working on the software have been moved into one umbrella group known as the Visual Studio Ecosystem team. Throughout the past 10 years Visual Studio has continued to grow and new extensibility features have been added. Learning all of the options with their different purposes and implementations is not easy. Many extensibility features are broad topics such as add–ins, macros, and the new domain–specific language tools in Visual Studio. Learning these topics can be difficult because they are not closely related to general .NET programming topics. This book is for .NET developers who are interested in extending Visual Studio as their development tool. In order to understand the book you must know the following material well: Object–oriented programming (OOP), the .NET Framework and .NET programming, C# or Visual Basic languages, some familiarity with C++, some familiarity with XML and its related topics, and Visual Studio structure and usage. A familiarity with COM programming and different .NET technologies is helpful. The aims of this book are to: Provide an overview of all aspects of VSX Enable readers to know where/when to use extensibility Familiarize readers with VS Extensibility in detail Show readers the first steps and let them learn through their own experiences Use examples, sample code, and case studies to demonstrate things in such a way that helps readers understand the concepts Avoid bothering readers with long discussions and useless code samples In order to use this book, and get the most out of it, there are some technical requirements. You must have the following two packages installed on your machine to be able to read/understand the chapters and test code samples: Visual Studio 2008 Team System Edition (or other commercial editions) Visual Studio 2008 SDK 1.0 (or its newer versions) You will need to buy Visual Studio 2008 to register for an evaluation version. The Free Express editions of Visual Studio do not support the extensibility options. The Visual Studio SDK is needed in order to read some of the chapters in the book and can be downloaded as a free package. The operating system doesn t matter for the content of the book, but all code was written with Visual Studio 2008 Team System Edition in Windows Vista x86. Chapters 1, 2, and 3 will give you an introduction to the basic concepts you need to understand before you can move on to the rest of the book. Chapter 4 discusses the automation model, which is an important prerequisite for many of the chapters in the book that focus on add–ins, macros, and VSPackages. Chapters 5–14 will utilize add–ins in a case study to learn about the main responsibilities of the automation model and some of the more common techniques used in VSX development. Each of the following chapters is dedicated to a specific extensibility option; they are independent of one another and you can read them in any order. It is important to read chapters 4–14 before you begin reading about the specific extensibility options. Chapter 5 contains a walk–through of the Add–in Wizard and describes its steps. Chapter 6 will show you the anatomy of add–ins and explain how to create add–ins and how they work. Chapter 7 discusses how to manipulate solutions, projects, and project items via your code to build add–ins. Chapter 8 shows you how to deal with documents and code editors in your add–ins. Chapter 9 explains how to work with programming codes and how to manipulate their elements. Chapter 10 describes some ways to work with user interface elements, Windows Forms, and controls via code in your add–ins. Chapter 11 discusses the Tools Options page and uses add–ins as the case study to show you how to create your own Tools Options pages. Chapter 12 teaches you how to debug and test your add–ins. Chapter 13 shows you how to deploy your add–ins. Chapter 14 completes the discussion about add–ins by talk about resources and localization of add–ins. Chapter 15 discusses a new feature in VS 2008: the Visual Studio Shell. Chapter 16 talks about domain–specific language tools; you will learn how to build them and see a quick overview of DSL tools. Chapter 17 discusses debugging and how to extend debugging features. Chapter 18 talks about VSPackages as a way to extend VS functionality and add something new to its existing packages. Chapter 19 teaches you what a code snippet is and how to write and manage code snippets in Visual Studio to make your coding process easier. Chapter 20 talks about VS project templates and starter kits and how to write your own project templates. Chapter 21 focuses on MSBuild and writing custom builds for Visual Studio and .NET applications. Chapter 22 discusses Visual Studio macros in detail and explains how to build a Visual Studio macro. Keyvan Nayyeri is a software architect and developer. He has a Bachelor of Science degree in applied mathematics. His main focus is on Microsoft development technologies and their related markup languages. Nayyeri is also a team leader and developer for several .NET open–source projects; this includes writing code for special purposes. He holds an MVP award for Comunnity Server. He recently co–authored Wrox Professional Community Server (2007).
If you want to speed up the development of your .NET applications, you're ready for C# design patterns -- elegant, accepted and proven ways to tackle common programming problems. This practical guide offers you a clear introduction to the classic object-oriented design patterns, and explains how to use the latest features of C# 3.0 to code them. C# Design Patterns draws on new C# 3.0 language and .NET 3.5 framework features to implement the 23 foundational patterns known to working developers. You get plenty of case studies that reveal how each pattern is used in practice, and an insightful comparison of patterns and where they would be best used or combined. This well-organized and illustrated book includes: An explanation of design patterns and why they're used, with tables and guidelines to help you choose one pattern over another Illustrated coverage of each classic Creational, Structural, and Behavioral design pattern, including its representation in UML and the roles of its various players C# 3.0 features introduced by example and summarized in sidebars for easy reference Examples of each pattern at work in a real .NET 3.5 program available for download from O'Reilly and the author's companion web site Quizzes and exercises to test your understanding of the material. With C# 3.0 Design Patterns, you learn to make code correct, extensible and efficient to save time up front and eliminate problems later. If your business relies on efficient application development and quality code, you need C# Design Patterns.
Antonio Cisternino, Adam Granicz, Don Syme
In this book, the world's foremost experts in F# show you how to program in F# the way they do. Written by F#'s inventor and two major contributors to its development, Expert F# is the authoritative, comprehensive, and in-depth guide to the language and its use. Designed to help others become experts, the first part of the book quickly yet carefully describes the F# language. The second part then carefully shows how to elegantly use F# for a wide variety of practical programming tasks. This comprehensive reference of F# concepts, syntax, and features offers a treasury of expert techniques.
Mickey Gousset, Brian Keller, Ajoy Krishnamoorthy, Martin Woodward
Get up to speed on Application Lifecycle Management (ALM) with Visual Studio 2010 through a combination of hands-on instruction and deep-dives. Microsoft has packed a lot of brand new testing and modeling tools into Visual Studio 2010, tools that previously were available only to Microsoft internal development teams. Developers will appreciate the focus on practical implementation techniques and best practices. A team of Microsoft insiders provides a nuts-and-bolts approach. This Wrox guide is designed as both a step-by-step guide and a reference for modeling, designing, and coordinating software development solutions at every level using Visual Studio 2010 and Visual Studio Team Foundation Server 2010. Visual Studio 2010 offers a complete lifecycle management system that covers modeling, testing, code analysis, collaboration, build and deployment tools.
Create rich, flexible, and maintainable line-of-business applications with the MVVM design pattern Simplify and improve business application development by applying the MVVM pattern to Windows Presentation Foundation (WPF) and Microsoft(R) Silverlight(R) 4. With this hands-on guide, you'll use MVVM with data binding, commands, and behaviors to create user interfaces loosely coupled to business logic. MVVM is ideal for .NET developers working with WPF and Silverlight--whether or not you have experience building enterprise applications. Discover how to: Dive deep into MVVM--and learn how it differs from other UI design patterns Build a simple Customer Relationship Management application you can adapt for your own projects Implement MVVM to maintain separation between UI declarative syntax and presentation logic code Create a Domain Model to define your application's business context Write dynamic code for the data access layer with the Microsoft Entity Framework and NHibernate Enforce complex data-validation scenarios using Windows Workflow Foundation 4 Implement MVVM using frameworks and toolkits such as Microsoft Prism Get code samples on the web For system requirements, see the Introduction.
Microsoft's Windows Presentation Foundation (WPF) provides you with a development framework for building high-quality user experiences for the Windows operating system. It blends together rich content from a wide range of sources and allows you unparalleled access to the processing power of your Windows computer. Pro WPF 4.5 in C# provides a thorough, authoritative guide to how WPF really works. Packed with no-nonsense examples and practical advice you'll learn everything you need to know in order to use WPF in a professional setting. The book begins by building a firm foundation of elementary concepts, using your existing C# skills as a frame of reference, before moving on to discuss advanced concepts and demonstrate them in a hands-on way that emphasizes the time and effort savings that can be gained. What you’ll learn Understand the fundamentals of WPF programming from XAML to controls and data flow. Develop realistic application scenarios to see navigation, localization and deployment in action. Explore the advanced user interface controls that WPF provides. Learn to manage documents from within WPF: Text layout, printing, and document packaging are all covered. Use graphics and multimedia to add punch to your applications Who this book is for This book is designed for developers encountering WPF for the first time in their professional lives. A working knowledge of C# and the basic architecture of .NET is helpful to follow the examples easily, but all concepts will be explained from the ground up.
Takes programmers through the complete process of developing a professional quality game, covering a range of topics such as the key "gotcha" issues that could trip up even a veteran programmer, game interface design, game audio, and game engine technology.
This new edition of Pro C# 5.0 and the .NET 4.5 Platform has been completely revised and rewritten to reflect the latest changes to the C# language specification and new advances in the .NET Framework. You'll find new chapters covering all the important new features that make .NET 4.5 the most comprehensive release yet, including: .NET APIs for Windows 8 style UI apps An improved Managed Extensibility Framework (MEF) New asynchronous task-based model for async operations How HTML5 support is being wrapped into C# web applications New programming interfaces for HTTP applications, including improved IPv6 support Expanded WPF, WCF and WF libraries giving C# more power than ever before This comes on top of award winning coverage of core C# features, both old and new, that have made the previous editions of this book so popular (you'll find everything from generics to pLINQ covered here). The mission of this text is to provide you with a rock-solid foundation in the C# programming language and the core aspects of the .NET platform (assemblies, remoting, Windows Forms, Web Forms, ADO.NET, XML web services, etc.). Once you digest the information presented in these 25 chapters, you’ll be in a perfect position to apply this knowledge to your specific programming assignments, and you’ll be well equipped to explore the .NET universe on your own terms. What you’ll learn Be the first to understand the .NET 4.5 platform and Visual C# 2012. Discover the ins and outs of the leading .NET technology. Learn from an award-winning author who has been teaching the .NET world since version 1.0. Find complete coverage of XAML, .NET 4.5 and Visual Studio 12 together with discussion of the new Windows Runtime. Who this book is for If you’re checking out this book for the first time, do understand that it's targeted at experienced software professionals or graduate students of computer science (so don't expect three chapters on iteration or decision constructs!). It is perfect for anyone who is interested in the new .NET Framework 4.5 and the C# language. Whether you are moving to .NET for the first time or are already writing applications using previous .NET versions, this book will provide you with a comprehensive grounding in the new technology and serve as a complete reference throughout your coding career. Table of Contents1. The Philosophy of .NET 2. A Survey of .NET Development Tools 3. Core C# Programming Constructs Part I 4. Core C# Programming Constructs Part II 5. Encapsulation 6. Inheritance and Polymorphism 7. Structured Exception Handling 8. Working with Interfaces 9. Generics and Collections 10. Delegates, Events and Lambda Expressions 11. Advanced C# Language Features 12. LINQ to Objects 13. Understanding Object Lifetime 14. Building and Configuring Class Libraries 15. Reflection, Dynamic Loading, Late Binding, and Attributes 16. The Dynamic Language Runtime 17. Processes and AppDomains 18. CIL and the Role of Dynamic Assemblies 19. Multithreaded and Asynchronous Programming 20. Working with I/O Services and Object Serialization 21. ADO.NET Part I: The Connected Layer 22. ADO.NET Part II: The Disconnected Layer 23. ADO.NET Part III: The Entity Framework 24. LINQ to XML 25. Windows Communication Foundation 26. Windows Workflow Foundation 27. Introducing WPF and XAML 28. The WPF Control Programming Model 29. WPF Graphical Render Services 30. WPF Resources, Animations and Styles 31. WPF Control Templates 32. Introducing ASP.NET Web Forms 33. ASP.NET Web Controls, Master Pages and Themes 34. State Management Techniques
Jarrett Webb, James Ashley
Beginning Kinect Programming with the Microsoft Kinect SDK gets you up and running developing Kinect applications for your PC using Microsoft tools and the official SDK. You will have a working Kinect program by the end of the first chapter! The following chapters will open up the secrets of three-dimensional vision, skeleton tracking, audio through the Kinect, and more. Examples illustrate the concepts in the form of simple games that react to your body movements. The result is a fun read that helps you learn one of the hottest technologies out there today. Beginning Kinect Programming with the Microsoft Kinect SDK also provides building blocks and ideas for mashing up the Kinect with other technologies to create art, interactive games, 3D models and enhanced office automation. You'll learn the fundamental code basic to almost all Kinect applications. You'll learn to integrate that code with other tools and manipulate data to create amazing Kinect applications. Beginning Kinect Programming with the Microsoft Kinect SDK is your gateway into the exciting world of three-dimensional, real-time computer interaction. Helps you create a proper development environment for Kinect applications. Covers the basics of three-dimensional vision, skeleton tracking, gesture recognition, and audio Provides fun examples that keep you engaged and learning What you’ll learn Create a proper development environment Work with data streams from the Kinect sensor Use skeleton-tracking for interactive applications Build speech-aware applications Develop simple, Kinect-based games for the PC Learn the underlying math involved in three-dimensional programming Who this book is for Beginning Kinect Programming with the Microsoft Kinect SDK is for Microsoft developers who want to learn to program for the newest and coolest Microsoft input device. The book assumes familiarity, but not expertise, with WPF and C#. Developers will be able to use their current knowledge and experience with the Microsoft stack to build new types of applications that have never been possible before. Most of all, this book is for developers who want to go beyond simply creating data-entry applications and recapture the fun of creating software. Table of Contents Getting Started with Kinect Application Fundamentals Depth Image Processing Kinect Skeletons Advanced Skeleton Tracking Kinect Gestures Speech Beyond the Basics
Nick Randolph, David Gardner, Chris Anderson, Michael Minutillo
A must-have guide that covers all the new features of Visual Studio 2010 Visual Studio allows you to create and manage programming projects for the Windows platform, and the new 2010 version has undergone a major overhaul comprised of significant changes. Written by an author team of veteran programmers and developers, Professional Visual Studio 2010 gets you quickly up to speed on what you can expect from the newest version of Visual Studio. This book's first section is dedicated to familiarizing you with the core aspects of Visual Studio 2010. Everything you need is contained in the first five chapters, from the IDE structure and layout to the various options and settings you can change to make the user interface synchronize with your own way of doing things. From there, the remainder of the book is broken into 11 parts: Getting Started: In this part, you learn how to take control of your projects and organize them in ways that work with your own style. Digging Deeper: Though the many graphical components of Visual Studio that make a programmer's job easier are discussed in many places throughout this book, you often need help when you're in the process of actually writing code. This part deals with features that support the coding of applications such as IntelliSense, code refactoring, and creating and running unit tests In the latest version of the .NET framework, enhancements were added to support dynamic languages and move towards feature parity between the two primary .NET languages, C# and VB. This part covers changes to these languages, as well as looking at a range of features that will help you write better and more consistent code. Rich Client and Web Applications: For support building everything from Office add-ins to cloud applications, Visual Studio enables you to develop applications for a wide range of platforms. These two parts cover the application platforms that are supported within Visual Studio 2010, including ASP.NET and Office, WPF, Silverlight 2 and ASP.NET MVC. Data: A large proportion of applications use some form of data storage. Visual Studio 2010 and the .NET Framework include strong support for working with databases and other data sources. This part examines how to use DataSets, the Visual Database Tools, LINQ, Synchronization Services and ADO.NET Entity Framework to build applications that work with data. It also shows you how you can then present this data using Reporting. Application Services: Through the course of building an application you are likely to require access to services that may or may not reside within your organization. This part covers core technologies such as WCF, WF, Synchronization Services and WCF RIA services that you can use to connect to these services. Configuration and Internationalization: The built-in support for configuration files allows you to adjust the way an application functions on the fly without having to rebuild it. Furthermore, resource files can be used to both access static data and easily localize an application into foreign languages and cultures. This part of the book shows how to use .NET configuration and resource files. Debugging: Application debugging is one of the more challenging tasks developers have to tackle, but correct use of the Visual Studio 2010 debugging features will help you analyze the state of the application and determine the cause of any bugs. This part examines the rich debugging support provided by the IDE. Build and Deployment: In addition to discussing how to build your solutions effectively and getting applications into the hands of your end users, this part also deals with the process of upgrading your projects from previous versions. Customizing and Extending Visual Studio: If the functionality found in the previous part isn't enough to help you in your coding efforts, Microsoft has made Visual Studio 2010 even more extensible. This part covers the automation model, how to write add-ins and macros, and then how to use a new extensibility framework, MEF, to extend Visual Studio 2010. Visual Studio Ultimate: The final part of the book examines the additional features only available in the Premium and Ultimate versions of Visual Studio 2010. In addition, you'll also learn how the Team Foundation Server provides an essential tool for managing software projects. Though this breakdown of the Visual Studio feature set provides the most logical and easily understood set of topics, you may need to look for specific functions that will aid you in a particular activity. To address this need, references to appropriate chapters are provided whenever a feature is covered in more detail elsewhere in the book. Professional Visual Studio 2010 is for all developers new to Visual Studio as well as those programmers who have some experience but want to learn about features they may have previously overlooked. If you are familiar with the way previous versions of Visual Studio worked, you may want to skim over Part I, which deals with the basic constructs that make up the user interface, and move on to the remainder of the book where the new features found in Visual Studio 2010 are discussed in detail. While you may be familiar with most of Part I, it is worth reading this section in case there are features of Visual Studio 2010 that you haven't seen or used before. If you're just starting out, you'll greatly benefit from the first part, where basic concepts are explained and you're introduced to the user interface and how to customize it to suit your own style.
Sean Kean, Jonathan Hall, Phoenix Perry
Meet the Kinect introduces the exciting world of volumetric computing using the Microsoft Kinect. You'll learn to write scripts and software enabling the use of the Kinect as an input device. Interact directly with your computer through physical motion. The Kinect will read and track body movements, and is the bridge between the physical reality in which you exist and the virtual world created by your software. Microsoft’s Kinect was released in fall 2010 to become the fastest-selling electronic device ever. For the first time, we have an inexpensive, three-dimensional sensor enabling direct interaction between human and computer, between the physical world and the virtual. The Kinect has been enthusiastically adopted by a growing culture of enthusiasts, who put it to work in creating technology-based art projects, three-dimensional scanners, adaptive devices for sight-impaired individuals, new ways of interacting with PCs, and even profitable business opportunities. Meet the Kinect is the resource to get you started in mastering the Kinect and the exciting possibilities it brings. You’ll learn about the Kinect hardware and what it can do. You’ll install drivers and learn to download and run the growing amount of Kinect software freely available on the Internet. From there, you’ll move into writing code using some of the more popular frameworks and APIs, including the official Microsoft API and the language known as Processing that is popular in the art and creative world. Along the way, you’ll learn principles and terminology. Volumetric computing didn’t begin with the Kinect. The field is decades old—if you’ve ever had an MRI, for example, you have benefitted from volumetric computing technology. Meet the Kinect goes beyond just the one device to impart the principles and terminology underlying the exciting field of volumetric computing that is now wide-open and accessible to the average person. What you’ll learn Install drivers to connect your Kinect to your PC, whether running Windows or Mac OSX Download and run the growing body of software freely available via the Internet Write scripts in the popular Processing language Take advantage of Microsoft’s Kinect SDK for Windows Choose a software development environment that suits your needs Grasp principles and terminology underlying the Kinect technology Who this book is for Meet the Kinect is aimed at technology enthusiasts, including programmers, artists, and entrepreneurs who are fascinated by the possibilities arising from the direct, human-computer interaction enabled by the Microsoft Kinect. The book is for anyone who wants to take advantage of the growing body of software for the Kinect, and for those who wish to write their own programs and scripts involving the Kinect as an input device. Table of Contents Getting Started Behind the Technology Applications in the Wild Scripting the Kinect Many Ways to Kinect Application Development with PrimeSense's NITE Framework Application Development with the Beckon Framework Application Development with Microsoft's Windows/XBOX Framework Volumetric Display Techniques Where to Go From Here?
Karl Eugene Wiegers
Written in a remarkably clear style, Creating a Software Engineering Culture presents a comprehensive approach to improving the quality and effectiveness of the software development process. In twenty chapters spread over six parts, Wiegers promotes the tactical changes required to support process improvement and high-quality software development. Throughout the text, Wiegers identifies scores of culture builders and culture killers, and he offers a wealth of references to resources for the software engineer, including seminars, conferences, publications, videos, and on-line information. With case studies on process improvement and software metrics programs and an entire Part on action planning (called "What to Do on Monday"), this practical book guides the reader in applying the concepts to real life. Topics include software culture concepts, team behaviors, the five dimensions of a software project, recognizing achievements, optimizing customer involvement, the project champion model, tools for sharing the vision, requirements traceability matrices, the capability maturity model, action planning, testing, inspections, metrics-based project estimation, the cost of quality, and much more!