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.
Ralph Johnson, Erich Gamma, John Vlissides, Richard Helm
Capturing a wealth of experience about the design of object-oriented software, four top-notch designers present a catalog of simple and succinct solutions to commonly occurring design problems. Previously undocumented, these 23 patterns allow designers to create more flexible, elegant, and ultimately reusable designs without having to rediscover the design solutions themselves. The authors begin by describing what patterns are and how they can help you design object-oriented software. They then go on to systematically name, explain, evaluate, and catalog recurring designs in object-oriented systems. With Design Patterns as your guide, you will learn how these important patterns fit into the software development process, and how you can leverage them to solve your own design problems most efficiently. Each pattern describes the circumstances in which it is applicable, when it can be applied in view of other design constraints, and the consequences and trade-offs of using the pattern within a larger design. All patterns are compiled from real systems and are based on real-world examples. Each pattern also includes code that demonstrates how it may be implemented in object-oriented programming languages like C++ or Smalltalk. 0201633612B07092001
Features the best practices in the art and science of constructing software--topics include design, applying good techniques to construction, eliminating errors, planning, managing construction activities, and relating personal character to superior software. Original. (Intermediate)
Martin Fowler, Kent Beck
Users can dramatically improve the design, performance, and manageability of object-oriented code without altering its interfaces or behavior. "Refactoring" shows users exactly how to spot the best opportunities for refactoring and exactly how to do it, step by step.
Kerievsky lays the foundation for maximizing the use of design patterns by helping the reader view them in the context of refactorings. He ties together two of the most popular methods in software engineering today--refactoring and design patterns--as he helps the experienced developer create more robust software.
.NET 3.5 is Microsoft’s largest development software launch since .NET 2.0 and (unlike .NET 3.0) completely replaces all previous .NET versions. A new version of Visual Studio – Visual Studio ‘Orcas’ is being created for the new Framework together with new versions of both the C# and Visual Basic languages. This book deals with this new C# language and provides developers with a complete treatise on the new technology – explaining the importance of all the new features (lambda expressions, LINQ, ASP.NET AJAX, WPF everywhere) and how they integrate into the framework of the previous .NET versions. It is a comprehensively revised and updated version of the author’s previous award-winning titles.
"Learn how to create next-generation client interfaces with Windows legend Charles Petzold. Get the definitive guide to the Windows Presentation Foundation (WPF), the new client programming interface for the Microsoft .NET Framework 3.0 and Windows Vista. Award-winning author Charles Petzold teaches you how to combine C# code and the Extensible Application Markup Language (XAML) to develop applications for the WPF. You'll get expert guidance and hundreds of practical, hands-on examples--giving you the skills you need to exploit the new interface and graphics capabilities for Windows Vista."--Publisher's website.
Silverlight 4 has the potential to revolutionize the way we build business applications. With its flexibility, web deployment, cross-platform capabilities, rich .NET language support on the client, rich user interface control set, small runtime, and more, it comes close to the perfect platform in which to build business applications. It’s a very powerful technology, and despite its youth, it’s moving forward at a rapid pace and is gaining widespread adoption. This book will guide you through the process of designing and developing enterprise-strength business applications in Silverlight 4 and C#. You will learn how to take advantage of the power of Silverlight to develop rich and robust business applications, from getting started to deployment, and everything in between. In particular, this book will serve developers who want to learn how to design business applications, and introduce the patterns to use, the issues that you’ll face, and how to resolve them. Chris Anderson, who has been building line-of-business applications for years, demonstrates his experience through a candid presentation of how to tackle real-life issues, rather than just avoid them. Developers will benefit from his hard-won expertise through business application design patterns that he shares throughout the book. With this book in hand, you will Create a fully functional business application in Silverlight Discover how to satisfy all of the general requirements that most business applications need Develop a business application framework
Nick Randolph, Christopher Fairbairn
Foundation Expression Blend 4 with Silverlight takes you through your first steps in creating rich Internet applications (RIAs) using the latest release of Microsoft’s technology. You’ll explore features such as custom user controls that you can reuse throughout your projects and the media element that allows you to easily add sound and video to your applications. Silverlight 4 enables you to rapidly develop compelling, cross-platform RIAs using the extensive .NET 4 libraries, the powerful, design friendly Blend 4 integrated development environment (IDE), and an enhanced workflow that allows designers and developers to work on the same set of files at the same time. At the end, you’ll put everything you have learned together to create a sample Silverlight 4 website. Whether you’re an experienced .NET or web developer, or you’re just starting out, this book will provide you with all you need to create RIAs with Expression Blend 4. Develop stunning RIAs in a short time using Blend 4 and Silverlight 4. Learn basic object-oriented programming principles. Get familiar with the Blend 4 development environment. What you’ll learn Learn the Blend 4 and Visual Studio 2010 IDEs. Learn how to create stunning animations using Silverlight 4 Storyboards and incorporate video and sound into your RIAs with the Silverlight MediaElement. Learn how to develop quickly and efficiently using Silverlight 4’s reusable resources such as UserControls, ControlTemplates and DataTemplates. Learn about the Visual State Manager and the State panel in Blend 4 to easily add MouseEnter and MouseLeave states to your UserControls. Put everything you have learned together to create a sample Silverlight 4 website. Who this book is for Web designers and developers wanting to learn Expression Blend 4 from the ground up. Those who have a background in the development of RIAs and want to learn this new technology. Table of Contents Setting Up the Silverlight Development Environment The Blend Integrated Development Environment C#, XAML, and Object-Oriented Programming Layout Controls: Including the New Silverlight 4 Controls: Viewbox, RichTextBox, FlowDirection Property, and Improved Data Binding Timed Storyboards: Creating a Newton Cradle Application Using VSM and Blend 4’s State Panel to Create a Silverlight Media Player Behaviors in Silverlight The Silverlight MediaElement: Create a Video Player with a Custom UserControl, XML De-serialization, and Behaviors Events and EventHandlers Classes and Interfaces Styles, Control Templates, and Custom UserControls Writing a Custom Content Panel Writing a Silverlight 4 Out-Of-Browser Application with Elevated Trust and the New Silverlight 4 COM API Creating a Photobooth Application with the Silverlight 4 Webcam API MVVM: Model-View-ViewModel SketchFlow Prototyping New Features of Silverlight 4
Jonathan Marbutt, Robb Schiefer
Silverlight has revolutionized development using Microsoft technologies. It is an excellent tool for mobile application development. The XAML-based markup and familiar C# code are the perfect combination for building apps efficiently and with minimum hassle. Packed full of recipes containing comprehensive instructions for the tasks required to build modern compelling smartphone apps using Silverlight. Starting with application design and architecture, you will quickly move on to more technical features and APIs you can implement to make your app stand out. You will use the Camera API to scan barcode, location services to pinpoint the user’s GPS coordinates and accelerometer to provide feedback based on movement of the phone. All of these features can be provided in a slick user interface through the power of Silverlight. Animations, behaviors and XAML provide all you need and more.
Jennifer Greene, Andrew Stellman
Head First C# is a complete learning experience for learning how to program with C#, XAML, the .NET Framework, and Visual Studio. Fun and highly visual, this introduction to C# is designed to keep you engaged and entertained from first page to last. You’ll build a fully functional video game in the opening chapter, and then learn how to use classes and object-oriented programming, draw graphics and animation, and query data with LINQ and serialize it to files. And you'll do it all by creating games, solving puzzles, and doing hands-on projects. By the time you're done, you'll be a solid C# programmer—and you'll have a great time along the way! Create a fun arcade game in the first chapter, and build games and other projects throughout the bookLearn how to use XAML to design attractive and interactive pages and windowsBuild modern Windows Store apps using the latest Microsoft technologyLearn WPF (Windows Presentation Foundation) using the downloadable WPF Learner's GuideUsing the Model-View-ViewModel (MVVM) pattern to create robust architectureBuild a bonus Windows Phone project and run it in the Visual Studio Windows Phone emulator Projects in the book work with all editions of Visual Studio, including the free Express editions.
This 88-page primer unveils the key features of Microsoft's eagerly anticipated Windows 8 operating system. Windows 8 contains the revolutionary Metro application framework for building dynamic and responsive touch-enabled applications that target both desktops and mobile devices. With the official release of Windows 8 looming ever closer, experienced author Adam Freeman invites you to take a crash course in Metro development. Using XAML and C#, he ensures you understand the changes that are being made to Windows development practices and puts you on the right course to creating innovative and elegant applications for this latest evolution of the world’s most successful operating system. What you’ll learn Create and configure Metro applications Implement a touch-enabled user interface Store data and application state using the Metro persistence model Access remote data using Metro networking Package and deploy your Metro application to the app store Who this book is for This book is for early-adopters of the Windows 8 operating system working with the Consumer Preview in order to be ahead of the curve in understanding the new ways of working that the operating system introduces. Table of Contents Creating the UI Responding to the User Storage and Persistence NetworkingPackaging and Deployment These chapters are supported by a substantial stand alone code sample.