How we did it:
For any feedback, any questions, any notes or just for chat - feel free to follow us on social networks
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.
David R. Hanson
C Interfaces and Implementations describes how to use interface-based design in the C programming language, and it illustrates this approach by describing 24 interfaces and their implementations in detail. The source code in the book is interleaved with its explanation in an order that best suits understanding the code.
An Introduction to Programming by the Inventor of C++ Preparation for Programming in the Real World The book assumes that you aim eventually to write non-trivial programs, whether for work in software development or in some other technical field. Focus on Fundamental Concepts and Techniques The book explains fundamental concepts and techniques in greater depth than traditional introductions. This approach will give you a solid foundation for writing useful, correct, maintainable, and efficient code. Programming with Today's C++ (C++11 and C++14) The book is an introduction to programming in general, including object-oriented programming and generic programming. It is also a solid introduction to the C++ programming language, one of the most widely used languages for real-world software. The book presents modern C++ programming techniques from the start, introducing the C++ standard library and C++11 and C++14 features to simplify programming tasks. For Beginners—And Anyone Who Wants to Learn Something New The book is primarily designed for people who have never programmed before, and it has been tested with many thousands of first-year university students. It has also been extensively used for self-study. Also, practitioners and advanced students have gained new insight and guidance by seeing how a master approaches the elements of his art. Provides a Broad View The first half of the book covers a wide range of essential concepts, design and programming techniques, language features, and libraries. Those will enable you to write programs involving input, output, computation, and simple graphics. The second half explores more specialized topics (such as text processing, testing, and the C programming language) and provides abundant reference material. Source code and support supplements are available from the author's website.
Andrew Oram, Steve Talbott
makeis one of UNIX's greatest contributions to software development, and this book is the clearest description ofmakeever written. Even the smallest software project typically involves a number of files that depend upon each other in various ways. If you modify one or more source files, you must relink the program after recompiling some, but not necessarily all, of the sources. makegreatly simplifies this process. By recording the relationships between sets of files, make can automatically perform all the necessary updating. For large projects with teams of programmers and multiple releases,makebecomes even more critical. But in order to avoid spending a major portion of your maintenance budget on maintaining theMakefiles, you need a system for handling directories, dependencies, and macro definitions. This book describes all the basic features ofmakeand provides guidelines on meeting the needs of large, modern projects. Some of the issues addressed in the second edition include: Projects covering several directories. Maintaining consistency when building variants of a program. Automatic generation of header file dependencies. Forced rebuilds of existing files. A description of free products that contain major enhancements tomake. Listings of the features that vary between different versions ofmakeand simple ways to test them. More detail and examples on common errors, use of the shell inmake, formal rules of syntax inmake, and support for various utilities.