I haven't been doing a lot of blog posting or work on my own personal projects this past couple of weeks because I've been spending my time reading. I read the majority of WCF Programming, and have almost finished Release It.
Programming WCF Services is pretty much what you would expect from a book with this kind of title. Lots of code examples of WCF. Pretty dry and boring, but still the book goes into more depth than a lot of books on the topic. The plethora of code is also very handy as a reference guide. Overall I would recommend the book if you intend on doing any in depth WCF programming. I do wish the book would have covered how to build better services: service contracts, data contracts, faults. I suppose those topics are more general than WCF. My rating: 4 out of 5 stars.
Release It!: Design and Deploy Production Ready Software is the best book I've read in a long time. There's only a couple lines of code in the entire book, yet the book provides excellent insight into design and architecture decisions for building and running robust, scalable, enterprise software. If there's one take-away from this book, its design your systems to be loosely coupled, don't let a failure in a downstream service or application force your application to fail - build your software to be cynical.
Use timeouts! Make services asynchronous. Pay special attention to external integration points: services, networks, databases. Apply circuit breakers at external integration points. Manage your resources wisely: bandwidth, CPU, and RAM are only so cheap, especially for large enterprise applications in a large farm. Pay attention to your software once it goes live, don't throw it over the wall to IT.
Build in monitoring and logging from the beginning, this could mean the difference between 10 minutes of down time and a days worth of down time. Make your logging messages clear, so that IT can understand them. Your customer facing software is your company, if your software performs poorly or malfunctions, it reflects poorly on your company, which ultimately shows up as lost revenue.
Again, Release It is an excellent book. Go get a copy! My rating: 5 out of 5 stars.
Unfortunately I've read the entire book in less than a week, and here I am without a book to replace it with. My company was nice enough to give me an Amazon gift certificate, just for doing my job, so I decided to stock up so I wouldn't be without a book again, for a little while anyway. I just ordered what I would consider to be "the essentials", since they are so often referred to:
- Patterns of Enterprise Application Architecture
- Refactoring to Patterns
- Test Driven Development: By Example