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)
Adam Freeman, Steven Sanderson
The ASP.NET MVC 3 Framework is the latest evolution of Microsoft’s ASP.NET web platform. It provides a high-productivity programming model that promotes cleaner code architecture, test-driven development, and powerful extensibility, combined with all the benefits of ASP.NET 4. In this third edition, the core model-view-controller (MVC) architectural concepts are not simply explained or discussed in isolation, but are demonstrated in action. You’ll work through an extended tutorial to create a working e-commerce web application that combines ASP.NET MVC with the latest C# language features and unit-testing best practices. By gaining this invaluable, practical experience, you’ll discover MVC’s strengths and weaknesses for yourself—and put your best-learned theory into practice. The book's authors Steve Sanderson and Adam Freeman have both watched the growth of ASP.NET MVC since its first release. Steve is a well-known blogger on the MVC Framework and a member of the Microsoft Web Platform and Tools team. Adam started designing and building web applications 15 years ago and has been responsible for some of the world's largest and most ambitious projects. You can be sure you are in safe hands. What you’ll learn Gain a solid architectural understanding of ASP.NET MVC 3, including basic MVC Explore the entire ASP.NET MVC Framework See how MVC and test-driven development work in action Capitalize on your existing knowledge quickly and easily through comparison of features in classic ASP.NET to those in ASP.NET MVC Learn about the latest security and deployment issues, including those related to IIS 7 Who this book is for This book is for web developers with a basic knowledge of ASP.NET and C# who want (or need) to start using the new ASP.NET MVC 3 Framework. Table of ContentsPart 1 1. The Big Idea 2. Getting Ready 3. Your First MVC Application 4. The MVC Pattern 5. Essential Language Features 6. Essential Tools for MVC 7. SportsStore I – A Real Application 8. SportsStore II – Navigation & Cart 9. SportsStore III - Administration Part 2 10. Overview of MVC projects 11. URLs, Routing & Areas 12. Controllers & Actions 13. Filters 14. Controller Extensibility 15. Views 16. Model Templates 17. Model Binding 18. Model Validation 19. Unobtrusive Ajax 20. jQuery Part 3. 21. Security 22. Authentication & Authorization 23. Deployment
Joe Kaplan, Ryan Dunn
The first book on programming to directory services using .NET, one of the least-understood aspects of .NET application development.
The unique, visual format of Illustrated C# 2008 has been specially created by author and teacher of development methods, Daniel Solis. The concise text, use of tables to clarify language features, frequent figures and diagrams, as well as focused code samples all combine to create a unique approach that will help you understand and get to work with C# fast. It was while teaching numerous seminars on various programming languages that the author realized the immense power that diagrams have in explaining programming language concepts. Most people learn quicker and retain information better when the material is presented in a clean, simple, visual format. To achieve this result in his book, Solis uses concise text and bulleted lists, tables to clarify and summarize language features, as well as his renowned and ubiquitous figures and diagrams. Each language feature is illustrated with a concise and focused code sample for complete clarity. Following an overview of the .NET platform and the role played by C#, you’ll soon move into exploring the C# language in its entirety, including all the new C# 2008 features right down to the most complex topics involved in C#. If you’re a C++ or VB programmer migrating to C# 2008, this book will be invaluable; the unique visual approach offers a far from lightweight treatment of C# 2008, so even the most experienced programmers will come away with a deeper understanding of the C# language. What you’ll learn Details of the C# 2008 language presented in a clear, concise treatment New features in the latest version of .NET, in the author’s unique visual style How C# differs from and is similar to other programming languages, aiding migrating C++ and VB programmers who already know how languages work Who this book is for Visual Basic programmers interested in moving to C# C++ programmers interested in moving to C# Novice programmers interested in learning C# Students in introductory programming classes learning C#
Jeffrey Palermo, Ben Scheirman, Jimmy Bogard, Matthew Hinze, Eric Hexter
Featuring full coverage of new version 2 features, this book helps readers use developer-oriented upgrades like "Areas" to break a large project into smaller pieces and explore the new data handling tools.
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
EXAM PREP GUIDE Ace your preparation for the skills measured by MCTS Exam 70-516 - and on the job - with this official Microsoft study guide. Work at your own pace through a series of lessons and reviews that fully cover each exam objective. Then, reinforce and apply what you've learned through real-world case scenarios and practice exercises. Maximize your performance on the exam by mastering the skills and experience measured by these objectives: Modeling data Managing connections and context Querying data Manipulating data Developing and deploying reliable applications PRACTICE TESTS Assess your skills with practice tests. You can work through hundreds of questions using multiple testing modes to meet your specific learning needs. You get detailed explanations for right and wrong answers--including a customized learning path that describes how and where to focus your studies. For customers who purchase an ebook version of this title, instructions for downloading the CD files can be found in the ebook.