Sunday, January 28, 2007

 
(Selling More, By Having An Adaptive Enterprise System, An XYZ Company Story)

Section 9: Recommended Books for Enterprise Software Developers\Architects

Section Contents (Book Lists)

A) C# Programming Books
B) .NET Application Framework Books
C) Data Modeling and Entity Relationship Modeling
D) Refactoring (Improving Legacy Software In Controlled Steps
E) Software Patterns

Recommendation: I've listed the books in the order I think they should be read in each of the book lists below, but also consider checking out other peoples views of them on Amazon.com, where you can also buy most of them second-hand at considerable cost savings.

A) C# Programming Books

1) Windows Forms Programming in C#, by Chris Sells, Addison Wesley, ISBN 032111608. Excellent book covering the building of Rich Clients via Windows Forms on .NET. If you've done any Windows Form programming on Windows 32 with other languages such as Delphi, you will find it a relatively easy transition to .NET with this book.

2) C# Complete, Sybex, ISBN 0782142036. A good book for the money, ($20 new on Amazon with S&H or $10 second-hand). Collection of chapters from other .NET books that, as a whole seem to make a complete and relatively consistent book. I found it provided an enjoyable read on additional topics not covered by 'Windows Forms Programming in C#.'

3) Professional C# 2nd Edition, by Robinson, Allen, Comes, Glynn, Greevoss, Harvey, Nagel, Skinner, and Watson, Wrox, ISBN 1861007043. This large book has value to me in being a supplementary reference to the other two books listed above. It covers a broader range of topics in more depth.

B) .NET Application Frameworks Books

1) Expert C# Business Objects by Rockford Lhotka, Apress, ISBN 1590593448. An excellent book explaining and illustrating how one might create a basic framework in .NET with a discussion of the reasons behind the selections made. Features source code and base classes to build intelligent business objects that move across the network as appropriate to either fetch\save data or bind directly to WinForms\WebForms. Also, there is an online forum of active users of the framework. This book plus support from forum will help you implement an initial usable, albeit, basic framework.

2) Developing Application Frameworks in .NET by Xin Chen, Apress, ISBN 1590592883. Good book that covers services that you might typical want in an application framework, such as Class Factories, Caching, Configuration, Event Notification, Windows Services, Message Queue Services, Authorization\Authentication, Crytography, and Document\ Workflow. Mr. Chen provides explanations of the technology behind the services and basic implementations of each in C#.

3) .NET Enterprise Development in C#, by Matthew Reynolds and Karli Watson, Wrox, ISBN 1861005911. This book had value to me in thinking about how to organize Enterprise Applications, but have not spent as much time working with it as the other two above.

C) Data Modeling and Entity-Relationship Modeling

1) The Data Model Resource Book, Revised Edition, Volume 1, A Library of Universal Data Models for All Enterprises, by Len Silverston, John Wiley & Sons, Inc. ISBN: 0-471-38023-7. Excellent book for those who have a bit of data modeling experience. Offers "universal models" for People and Organizations (with treatment of the Party concept), Products, Ordering, Shipments, Work Effort, Invoicing, Accounting, and Human Resources.

2) The Data Model Resource Book, Revised Edition, Volume 2, A Library of Universal Data Models by Industry Type, by Len Silverston, John Wiley & Sons, Inc. ISBN: 0-471-38023-7. Good book that provides a follow-up to the book listed above, this volume’s emphasis is on specific industries: Manufacturing, Telecommunications, Health Care, Insurance, Financial Services, Professional Services, Travel, and e-Commerce.

3) Data Model Patterns Conventions of Thought, by David C. Hay, Dorset House Publishing, ISBN: 0-932633-29-3. A book that gets a variety of reviews on Amazon, and which is a bit more abstract then the two listed above. But it was worth it to me, as having spotted similar patterns in many database developments I’ve done over the last 15 years it was interesting to see a specialist in the field treat them with even more abstraction then I ever considered. Overall, I found the book rather thought provoking.

D) Refactoring (Improving Legacy Software In Controlled Steps)

1) Refactoring: Improving the Design of Existing Code, by Martin Fowler, 1999. Does for the improvement of legacy code what Design Patterns did for software engineering. Fowler et al present a catalog of methods for restructuring (refactoring) existing\legacy code to make it more manageable\maintainable going forward. Many software companies have begun to build support for refactoring directly into their development environments. This book is a definite must buy on this subject.

2) Refactoring to Patterns, by Joshua Kerievsky, Addison-Wesley, 2005. This book is about the marriage of two of the most important advances in software development in the past decade; software patterns (common solutions to typical software patterns) and refactoring (improving legacy code in controlled steps), and weaves them both together into a pragmatic presentation. This may prove a good follow-on book to the one listed above if you find this topic of interest.

E) Software Patterns

1) Design Patterns: Elements of Reusable Object-Oriented Software; Erich Gamma et al; Addison-Wesley Professional; 1995. This is the original classic on Software Patterns. It describes 20+ common software patterns that are often used in many software systems today. If the topic of software patterns is new to you, this book may prove a slow read at first, or be a book your need to read twice for full comprehension. However, if your experience is anything like mine, you will find the effort well worth it. The names given to the software patterns the book identifies have become common language in software development circles.

2) Pattern-Oriented Software Architecture - A System of Patterns; Frank Buschmann et al; Wiley; 1996. This book not only provides descriptions of software patterns for specific problems, but also entire architectural solutions representing many common system constructions, such as microkernels (portable operating systems), layers (used in network communications), and pipes and filters (document translation and handling). I found the book more readable then Design Patterns (mentioned above), but unfortunately, as it references that book quite a bit, you will probably want to read it. Actually, reading Design Patterns will help you with just about any related book on the subject of software patterns, as they all refer to it.

3) Analysis Patterns: Reusable Object Models: by Martin Fowler; Addison Wesley; 1997. A further exploration of software patterns, but this time, with more of a concentration on common business domains such as Party, Organization Hierarchies\Structures, Responsibilities, Observations and Measurements, Finance, and Accounting. I also found this a very readable book.

Comments: Post a Comment

<< Home

This page is powered by Blogger. Isn't yours?