Archive | Books RSS feed for this section

Test-Drive ASP.NET MVC

11 Apr

ASP.NET MVC 2.0 is C# on the web done right. No more fiddling around with Viewstate, IsPostBack(), and drag-and-drop coding. Microsoft has addressed the shortcomings of ASP.NET and created a framework that goes toe-to-toe with other popular web frameworks such as Ruby on Rails. Programming in C# is fun again!

This book uses a test-driven development (TDD) approach to the features of ASP.NET MVC. You’ll get hands-on experience building and deploying a time-management web application from start to finish. From building your first page, to data access, to integrating with web services such as, Test-Drive ASP.NET MVC guides you step by step. You’ll come away with a complete understanding of web services and data access, and you’ll learn how to test each component so that your code is bug-free and maintainable from the start. You’ll see how to handle security, logging, and error handling. Then, you’ll protect your site with ASP.NET MVC’s advanced security features.

Software isn’t useful until it’s deployed into production. We’ll cover automated deployment using MSBuild, a build tool product that can help you get your site online, repeatably and reliably. Throughout, you’ll work with open source projects that complement ASP.NET MVC, including NHibernate, MVCContrib, and Castle Windsor Container. These tools speed up developing database components, architecture layers, and testing your code.

As you build and deploy your application, you’ll not only learn the framework itself, but also gain valuable experience with the test-first methodology, driving your application development through small and measurable incremental improvements.

Debug It!

7 Feb

Debug It! will equip you with the tools, techniques, and approaches to help you tackle any bug with confidence. These secrets of professional debugging illuminate every stage of the bug life cycle, from constructing software that makes debugging easy; through bug detection, reproduction, and diagnosis; to rolling out your eventual fix.

Whether you’re writing Java or assembly language, targeting servers or embedded micro- controllers, or using agile or traditional approaches, the same basic bug-fixing principles apply.

You’ll learn an empirical approach that leverages your software’s unique ability to show you what’s really happening, the importance of finding a reliable and convenient means of reproducing a bug, and how to avoid common pitfalls. You’ll see how to use commonly available tools to automatically detect problems before they’re reported by customers. You’ll construct “self-debugging” software that automatically provides access to crucial internal information and identifies the broken assumptions that lead to bugs.

Tribal Leadership: Leveraging Natural Groups to Build a Thriving Organization

7 Jan

To all those wondering “Why?” and “How?” certain organizations are more productive than their peers, Logan, King and Fischer-Wright have some concrete answers. In their landmark book, “Tribal Leadership”, they explore the essence of organizational culture. What they have uncovered is a dynamic at least 15,000 years in the making, and at the heart of all human organizations: the tribe. We operate in a “tribe”-a group of 20 to 150 people- in which important decisions are made and productivity is determined. Larger organizations are “tribes of tribes”. Five stages describe the evolution of the tribe, from savage and dysfunctional to innovative and powerfully inspirational. What sets this work apart is its practical advice on both identifying the stage of the tribe and the means to advance to the next stage. Laced with real-life examples, the book is eminently readable. There is no doubt it will transform the reader, no matter where their own tribe finds itself. They will understand the difference between leading and commanding.

Delivering Happiness: A Path to Profits, Passion, and Purpose

11 Dec

The visionary CEO of Zappos explains how an emphasis on corporate culture can lead to unprecedented success.

Pay new employees $2000 to quit. Make customer service the entire company, not just a department. Focus on company culture as the #1 priority. Apply research from the science of happiness to running a business. Help employees grow both personally and professionally. Seek to change the world. Oh, and make money too.

Sound crazy? It’s all standard operating procedure at, the online retailer that’s doing over $1 billion in gross merchandise sales every year.

In 1999, Tony Hsieh (pronounced Shay) sold LinkExchange, the company he co-founded, to Microsoft for $265 million. He then joined Zappos as an adviser and investor, and eventually became CEO.

In 2009, Zappos was listed as one of Fortune magazine’s top 25 companies to work for, and was acquired by Amazon later that year in a deal valued at over $1.2 billion on the day of closing.

In his first book, Tony shares the different business lessons he learned in life, from a lemonade stand and pizza business through LinkExchange, Zappos, and more. Ultimately, he shows how using happiness as a framework can produce profits, passion, and purpose both in business and in life. (edited by author)

Pomodoro Technique Illustrated: The Easy Way to Do More in Less Time

28 Oct

Do you ever look at the clock and wonder where the day went? You spent all this time at work and didn’t come close to getting everything done. Tomorrow, try something new. Use the Pomodoro Technique, originally developed by Francesco Cirillo, to work in focused sprints throughout the day. In Pomodoro Technique Illustrated, Staffan Nöteberg shows you how to organize your work to accomplish more in less time. There’s no need for expensive software or fancy planners. You can get started with nothing more than a piece of paper, a pencil, and a kitchen timer.

You have so much you need to accomplish today. Your list is a mile long and you find yourself getting interrupted every other minute. You’d like to tell everyone to leave you alone, but most of the interruptions are coming from you! You think of a phone call you need to make or a web site you need to check and before you know it you’re answering email, checking Twitter, and finding a million other things to occupy your time.You need to focus—-really focus.

The Pomodoro Technique puts you back in charge of your day. You’ll apply successful techniques from software engineering to identify what you should be doing today and to help you achieve your goals. Your mind won’t wander when it is fully engaged in short bursts of focused activity.

Learn to work less and accomplish more using nothing more than paper, pencil, and a simple kitchen timer.

Set the timer and start on your next Pomodoro. When the bell rings take a break. This personal approach to timeboxing is at the core of the Pomodoro technique and this book is filled with advice on how get started and how to tailor it to your own needs.

Go to Amazon

Patterns of Enterprise Application Architecture

19 Oct

The practice of enterprise application development has benefited from the emergence of many new enabling technologies. Multi-tiered object-oriented platforms, such as Java and .NET, have become commonplace. These new tools and technologies are capable of building powerful applications, but they are not easily implemented. Common failures in enterprise applications often occur because their developers do not understand the architectural lessons that experienced object developers have learned. Patterns of Enterprise Application Architecture is written in direct response to the stiff challenges that face enterprise application developers. The author, noted object-oriented designer Martin Fowler, noticed that despite changes in technology–from Smalltalk to CORBA to Java to .NET–the same basic design ideas can be adapted and applied to solve common problems. With the help of an expert group of contributors, Martin distills over forty recurring solutions into patterns. The result is an indispensable handbook of solutions that are applicable to any enterprise application platform. This book is actually two books in one. The first section is a short tutorial on developing enterprise applications, which you can read from start to finish to understand the scope of the book’s lessons. The next section, the bulk of the book, is a detailed reference to the patterns themselves. Each pattern provides usage and implementation information, as well as detailed code examples in Java or C#. The entire book is also richly illustrated with UML diagrams to further explain the concepts. Armed with this book, you will have the knowledge necessary to make important architectural decisions about building an enterprise application and the proven patterns for use when building them. The topics covered include:

  • Dividing an enterprise application into layers
  • The major approaches to organizing business logic
  • An in-depth treatment of mapping between objects and relational databases
  • Using Model-View-Controller to organize a Web presentation
  • Handling concurrency for data that spans multiple transactions
  • Designing distributed object interfaces
  • Go to Amazon

    NHibernate 2.x Beginner’s Guide

    16 Sep

    NHibernate is an open source object-relational mapper, or simply put, a way to retrieve data from your database into standard .NET objects. Quite often we spend hours designing the database, only to go back and re-design a mechanism to access that data and then optimize that mechanism. This book will save you time on your project, providing all the information along with concrete examples about the use and optimization of NHibernate.

    Connecting to a database to retrieve data is a major part of nearly every project, from websites to desktop applications to distributed applications. Using the techniques presented in this book, you can access data in your own database with little or no code.

    This book covers the use of NHibernate from a first glance at retrieving data and developing access layers to more advanced topics such as optimization and Security and Membership providers. It will show you how to connect to multiple databases and speed up your web applications using strong caching tools. We also discuss the use of third-party tools for code generation and other tricks to make your development smoother, quicker, and more effective.

    This easy-to-follow guide will show you how to connect the NHibernate object-relational mapper to your projects to create a rich, efficient, object-oriented data access layer with little or no additional work

    What you will learn from this book

    • Use NHibernate to retrieve and store data in your database
    • Develop an efficient, robust data access layer with little or no code
    • Design or modify your database for high performance
    • Connect to multiple databases or database backends with simple code
    • Implement base classes to provide basic functionality for all database objects
    • Improve the performance of your data retrieval methods with proven open source technology
    • Make web applications faster using strong caching strategies such as memcached
    • Simplify data storage and display using built-in .NET data controls with NHibernate
    • Using NHibernate to control application security using Membership and Role providers and .NET security controls

    Go to Amazon

    Ship It!: A Practical Guide to Successful Software Projects

    23 Aug

    Many software projects run into trouble, and many never ship at all. Others run like well-oiled machines. This book shows you the basics of how to get your project well on the road to success.

    Ship It! bucks current fashion trends and marketing hype; instead, you’ll find page after page of solid advice, all tried and tested in the real world: a collection of tips that show you what tools a successful team has to use, and how to use them well. You’ll get quick, easy-to-follow advice on modern techniques and when they should be applied.

    Few of the ideas presented here are controversial or extreme; most experienced programmers will agree that this stuff works. Yet 50 to 70 percent of all project teams in the U.S. aren’t able to use even these simple, well-accepted practices effectively. This book will help you get started.

    Ship It! begins by introducing the common technical infrastructure that every project needs. Readers can choose from a variety of recommended technologies according to their skills and budgets to get the job done. The next section outlines the necessary steps to get software out the door reliably, using well-accepted, easy-to-adopt, best-of-breed practices that really work.


    • Use the right tools to guide and protect your project, and tame those that can hurt you
    • Effectively manage features and issues to keep both users and managers happy
    • Improve everyone’s communication and collaboration using simple techniques
    • Recognize how great developers and great managers work in concert—and how to fix it when they don’t
    • Know how to answer the Frequently Asked Questions and fix the common problems that everyone faces on modern projects

    Finally, and most importantly, Ship It! presents common problems and danger signs that arise and offers real-world advice on how to solve them, in the widely-accepted form of a FAQ (Frequently Asked Questions).

    Some popular methodologies are based on academic theory or one-off, lucky projects. The practices, ideas, and tools presented here were born in the real world, and represent the best of modern software development techniques with a few novel twists and helpful insights.

    This book is suitable for anyone interested in applying pragmatic principles to modern software development.

    This book is for you if:

    • You’re frustrated at lack of progress on your project.
    • You want to make yourself and your team more valuable.
    • You’ve looked at methodologies such as Extreme Programming (XP) and felt they were too, well, extreme.
    • You’ve looked at the Rational Unified Process (RUP) or CMM/I methods and cringed at the learning curve and costs.
    • You need to get software out the door without excuses

    In short, you need this book if you want to Ship It!.

    Go to Amazon

    Extreme Programming Explained: Embrace Change

    8 Aug

    Software development projects can be fun, productive, and even daring. Yet they can consistently deliver value to a business and remain under control.

    Extreme Programming (XP) was conceived and developed to address the specific needs of software development conducted by small teams in the face of vague and changing requirements. This new lightweight methodology challenges many conventional tenets, including the long-held assumption that the cost of changing a piece of software necessarily rises dramatically over the course of time. XP recognizes that projects have to work to achieve this reduction in cost and exploit the savings once they have been earned.

    Fundamentals of XP include:

    • Distinguishing between the decisions to be made by business interests and those to be made by project stakeholders.
    • Writing unit tests before programming and keeping all of the tests running at all times.
    • Integrating and testing the whole system–several times a day.
    • Producing all software in pairs, two programmers at one screen.
    • Starting projects with a simple design that constantly evolves to add needed flexibility and remove unneeded complexity.
    • Putting a minimal system into production quickly and growing it in whatever directions prove most valuable.

    Why is XP so controversial? Some sacred cows don’t make the cut in XP:

    • Don’t force team members to specialize and become analysts, architects, programmers, testers, and integrators–every XP programmer participates in all of these critical activities every day.
    • Don’t conduct complete up-front analysis and design–an XP project starts with a quick analysis of the entire system, and XP programmers continue to make analysis and design decisions throughout development.
    • Develop infrastructure and frameworks as you develop your application, not up-front–delivering business value is the heartbeat that drives XP projects.
    • Don’t write and maintain implementation documentation–communication in XP projects occurs face-to-face, or through efficient tests and carefully written code.

    You may love XP, or you may hate it, but Extreme Programming Explained will force you to take a fresh look at how you develop software.

    Go to Amazon

    The Pragmatic Programmer: From Journeyman to Master

    7 Aug

    Straight from the programming trenches, The Pragmatic Programmer: From Journeyman to Master cuts through the increasing specialization and technicalities of modern software development to examine the core process—what do you do, as an individual and as a team, if you want to create software that’s easy to work with and good for your users.

    This is the title that got us started in the book business. It’s published by Addison-Wesley, but we’re offering for sale here simply because people come looking for it.

    Read this book, and you’ll learn how to:

    • Fight software rot.
    • Catalyze change.
    • Avoid the trap of duplicating knowledge.
    • Write flexible, dynamic and adaptable code.
    • Harness the power of basic tools.
    • Avoid programming by coincidence.
    • Bullet-proof your code with contracts, assertions and exceptions.
    • Capture real requirements.
    • Keep formal tools in their place.
    • Test ruthlessly and effectively.
    • Delight your users.
    • Build teams of pragmatic programmers.
    • Take responsibility for your work and career.
    • Make your developments more precise with automation.

    Go to Amazon