Developing Application Frameworks in .NET
| |||||||||||||||||||||||||||||
|
| |||||||||||||||||||||||||||||
| Sort customer reviews by: | |||||||||||||||||||||||||||||
|
Show All Reviews on Page
Hide All Reviews on Page
| |||||||||||||||||||||||||||||
| Developing Application Frameworks in .NET | |||||||||||||||||||||||||||||
|
Application frameworks are absolutely vital in the development of every large application by providing common services that are used repeatedly throughout the application. These services can also be shared by multiple domain-specific applications, and hence reduce the time and cost of development. Application framework also controls the flow of the application, such as how objects are instantiated inside the application, and how developers can customize and extend the framework to fit a specific need for their application. |
|||||||||||||||||||||||||||||
|
Application frameworks, which provide a base of common services on which applications are built, offer the benefits of extensibility, modularity, and reusability of both code and design to your applications. This book explains what frameworks are and how they fit into applications, and offers many object-oriented techniques used in application frameworks. This book also shows readers how actually to develop application frameworks through a concrete framework example called Simplified Application Framework (SAF). The SAF framework was developed by Xin Chen in C#. It consists of common services needed by many applications, such as a class factory service, configuration service, event notification service, security service, and transaction service. The book goes into detail on each of these services to explain its benefits, as well as its design and implementation in C#. Through a discussion of each service, readers will also learn about many advanced .NET techniques employed by the framework, such as .NET remoting, reflection, custom attributes, multithreading, and Serviced Component. Many of the services discussed in the book also use design patterns as their blueprints. The book discusses these design patterns in depth and shows how to implement them in a real-world scenario. Accompanying the book are the complete source code of the sample framework and sample executable projects (downloadable via the Internet), allowing readers to actually test out each framework service/component of SAF and learn about the development of frameworks, .NET technologies, and design patterns in a more interactive fashion. Special Note! This book covers .NET 1.0 and .NET 1.1. and assumes knowledge of .NET Framework and C#. |
|||||||||||||||||||||||||||||
| Reader Reviews 1 - 11 of 11 | |||||||||||||||||||||||||||||
| Review Date |
Review Rating(5 High) |
Review Helpful to: |
Customer Review | Reviewer Info |
Permanent Link |
||||||||||||||||||||||||
| Reader Reviews Below Sorted by Newest First | |||||||||||||||||||||||||||||
| 04-09-07 | 5 | 1\1 |
| Reviewer | Permalink | ||||||||||||||||||||||||
|
This is not only helpfull for architects, but for programmers responsible for planning and scoping projects in general. The writing is to the point, and provides very solid foundations for writing high level framework strategies. The only thing lacking would be that I think it is geared toward 1.1 framework, would be great to see how 2.0 could enhance this. The frameworks in the book are great starting points which can be enhanced based on your own business requirements.
(Review Data Last Updated: 2008-09-24 04:59:28 EST)
|
|||||||||||||||||||||||||||||
| 04-08-07 | 5 | 1\1 |
| Reviewer | Permalink | ||||||||||||||||||||||||
|
This is not only helpfull for architects, but for programmers responsible for planning and scoping projects in general. The writing is to the point, and provides very solid foundations for writing high level framework strategies. The only thing lacking would be that I think it is geared toward 1.1 framework, would be great to see how 2.0 could enhance this. The frameworks in the book are great starting points which can be enhanced based on your own business requirements.
(Review Data Last Updated: 2008-10-08 04:50:19 EST)
|
|||||||||||||||||||||||||||||
| 02-14-07 | 4 | (NA) |
| Reviewer | Permalink | ||||||||||||||||||||||||
|
The problem with this book is that SAF, the sample framework, is a toy just for demonstration purpose. The book gives insight on why and how to construct a framework, very good in this aspect, but it doesn't give you a real framework you can adapt or use.
What's is the point of writing your own framework from the base, if frameworks are supposed to be so generic that can be used in disparate applications, a framework written by a real expert would be good for you too, or at least an excellent starting point. I think a really useful thing would be a open source project, community supporting and a book. Lhotka does something like that, but his framework is focused in implement a configurable dataset, very good, but frameworks have lots more aspects. This book teach the basic well, .net technologies, gof patterns with examples. A must read for beginners, not very useful for more advanced people. (Review Data Last Updated: 2007-07-11 21:44:31 EST)
|
|||||||||||||||||||||||||||||
| 11-14-06 | 3 | 1\1 |
| Reviewer | Permalink | ||||||||||||||||||||||||
|
I have been developing application frameworks for several years. This book is a good read about them. It covers many of the issues related to application frameworks including class factories, configuration and security. Each chapter contains information about the 'theory' related to these topics and information about the .Net implementation. I learned about .Net classes I was not aware of.
Although I recommend reading the book, I want to warn potential readers about two issues: - The book ignores some aspects of application frameworks. Missing for example is logging, which is very important in practice. Users of your framework will want to monitor it and logging will be an issue you have to deal with. - Sometimes the author is more concerned with showing a clever implementation than a practical one. I find the hierarchical cache interesting but in practice there are bigger issues: how efficient is the cache (creating the xml document seems a performance killer), how are cached elements evicted (this brings issues about timing and locking that are ignored in the book), etc. Similarly, I have rarely seen the need for all the configuration-based customization that the author shows. I would have appreciated if each chapter discussed the goals of the implementation (e.g., performance vs. ease of use) and its trade-offs. I recommend the book but think twice about your goals before copying the implementation. (Review Data Last Updated: 2007-07-11 21:44:31 EST)
|
|||||||||||||||||||||||||||||
| 07-17-06 | 4 | 3\3 |
| Reviewer | Permalink | ||||||||||||||||||||||||
|
As one would say that mere coders think in terms of ad-hoc one time solutions while developers and software engineers think how to incorporate these best practices in the form of an application framework. Xin Chen has done a good job explaining big picture thinking i.e. how a set of libraries or classes that are used to implement the standard structure of an application are made to collaborate in the form of a reusable framework.
I'm personally a big fan of application frameworks which provide extensibility along with good foundation support for example Rocky Lhotka's CSLA (Component-based Scalable Logical Architecture). Xin Chen does the similar job building one chapter at a time. He is walking the reader through step by step building of the framework and keeping the big picture in sight. The book is divided into 15 chapters in which Xin elaborates on application frameworks, dissect them, discusses class factories, caching, configuration, windows services, message queuing, authorization, authentication, cryptography, transaction, document layer and work flow services. The author has high degree of familiarity with GOF design patterns so reader will see the degree of reusability and patterns & practices in action. Application event logging and exception handling is an inherent part of any application framework however I was disappointed to see not much discussion about it in the book. Also, during the discussion of real world business problems, author did not discuss rules engines or provide guidance about integrating dynamic logic into your framework which I strongly feel should be an integral part of an enterprise level architecture. The current business models as we know them thrive on change and we cannot isolate development designs from user's needs. Having said that, if you are looking to build a large amount of reusable code into a framework to save development time for yourself and fellow colleagues / developers, this book will provide you enough good pointers for this purpose. Author recognizes that the frameworks cannot be built in the air and hence provided us with concrete examples. I'll also recommend reading "GOF Design Patterns", Rocky Lhotka's "CSLA.NET 2.0 (Expert C# Business Objects)" and "Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries" along with this if you are serious about developing application frameworks for your enterprise. (Review Data Last Updated: 2007-07-11 21:44:31 EST)
|
|||||||||||||||||||||||||||||
| 06-27-06 | 5 | (NA) |
| Reviewer | Permalink | ||||||||||||||||||||||||
|
Developing Application Frameworks in .NET is a valuable resource for mid to senior level developers or architects. It presents fundamental concepts when designing and building frameworks for the middle tier for an IT based enterprise solution. Not only does it solidify the reader with strong concepts, it also introduces and explains fundamental Microsoft C#.NET technologies needed for implementation.
(Review Data Last Updated: 2007-07-11 21:44:31 EST)
|
|||||||||||||||||||||||||||||
| 12-16-05 | 5 | 2\2 |
| Reviewer | Permalink | ||||||||||||||||||||||||
|
Xin Chen's experience with realworld scenarios is evident in the way he has structured the SAF blocks.
I have used the Windows Services block (including the Configuration block) and the Workflow block at a client project, and was amazed at how easy it was to customize the block to my particular requirements. I guess what most people have to realise, is to treat these blocks as a starting point for your application rather than an enterprise ready block of code. This helps keep your mind open to analyzing the blocks and modifying them as appropriate. I will be definitely basing more of my projects on his blocks because it appeals to me on 2 levels: 1. It is built on simplicity and therefore easily digestable (very helpful if you are working on a project with tight deadlines). 2. It is easily extendible and manageable because of point 1. The only suggestion I have is, that Mr Chen should start an Open Source project to keep the SAF updated. (Review Data Last Updated: 2007-07-11 21:44:31 EST)
|
|||||||||||||||||||||||||||||
| 07-28-05 | 4 | 13\14 |
| Reviewer | Permalink | ||||||||||||||||||||||||
|
This book is great for architects, though some of his designs i wasn't, personally, comfortable with!
Anyway, the author sets the groundwork in `how to' on building frameworks. First few chapters are excellent insight on why we need frameworks and talks about different useful strategies. But i did find couple of places where i had to refactor it for better usability... - Class Factories: i was really uncomfortable the way Class factories were implemented in this book by the author. For e.g. he expects the developer to provide string based value...which i personally feel is error prone... Instead of calling pf = (ProductFactory)SAF.ClassFactory.GetFactory("ProductFactory-A "); i feel you should rather pass pf = (ProductFactory)SAF.ClassFactory.GetFactory(typeof (ProductFactory)); now on the server side, whatever is the current implementation of the abstract class ProductFactory is available, it would be passed back to the client...so the configuration file would change from to all the server has to do is use FullName property on the type just passed to it and look into the configuration file for it. this way, developers don't have to look around for what concrete implementation is available.. [Only drawback is that we would only have one concrete implementation available, but u r not restricted to extend it by passing additional parameters] - Caching: Caching design in this book is one of the best designs I have ever seen. The author uses XML to store the cached objects in hierarchical structure. It solved almost all of my caching problems, like breadcrumbs on web-pages, which became part of our web framework now, user preferences, organization preferences [user can belong to multiple orgs] was also solved by this design. But there was one very important thing that the author didn't mention was expiring stale objects in cache collection. The easiest way to expire data is to calculate its ideal time. We could create another thread, which would interrogate each object in the cache collection for its ideal time and it would expire the least used object from the cache immediately. Furthermore, every time an object is retrieved from the cache, we timestamp it with the latest time. This would keep the cache from consuming insane amount of memory on the server. I really liked other chapters too, - Windows Service - though I rather deploy my objects in Component Services - MSMQ - MSMQ is very useful but highly under-credited. This chapter definitely gives us more insight on how to leverage MSMQ in enterprise systems. - Authorization/Authentication - I would say pretty good content - Transaction - depends upon architecture of a project. If all the data intensive tasks are done in one stored procedures, then we really don't need to use Transaction services & simply rely on DB transactions, but if you have individual objects do individual data related tasks then Transactions offered by Enterprise Services are really helpful. Nevertheless, I strongly recommend this book for all software guys. (Review Data Last Updated: 2006-07-07 08:54:11 EST)
|
|||||||||||||||||||||||||||||
| 11-17-04 | 5 | 12\14 |
| Reviewer | Permalink | ||||||||||||||||||||||||
|
This book really sheds light on many of the Classic Gang of Four Design Patterns and provides real world, meaningful examples to demonstrate them.
If you have ever wanted to know how to use proper object oriented techniques in .NET, this book is for you. The book provides some very interesting approaches on extensible, practicle, and reusable code, and the samples are right on par with the typical functionality that an application framework should provide. It is also a very clean and easy to read book, and is organized very well. (Review Data Last Updated: 2006-07-07 08:54:11 EST)
|
|||||||||||||||||||||||||||||
| 06-22-04 | 4 | 12\29 |
| Reviewer | Permalink | ||||||||||||||||||||||||
|
You know, I was going through this book for several chapters before it struck me. Xin Chen has provided us with something analogous to Eclipse. But whereas Eclipse is coded in Java, and is meant for Java developers, he has given us a corresponding framework in .NET! Perhaps unwittingly, for the book's index has no entry for Eclipse. I bring this up because more of you should be familiar with Eclipse, even if you are a .NET programmer and have never actually used Eclipse. Whereas Chen's Simplified Application Framework is likely to be totally new to you.
But you should be aware that Eclipse has garnered very favourable mindshare and usage in the Java community. In Java, it provides a real life validation of the entire framework approach. Which is encouraging here. For surely .NET needs a similar framework atop it. So the conceptual basis for this book is secure. So how is the SAF? From the book's description, it seems not to have as rich a feature set as Eclipse. But IBM spent several $million in its development, before throwing it to open source. Whereupon, many other programmers also built it up. For SAF, it is still early days. SAF seems to be mostly (entirely?) Chen's own effort. Very commendable for one person. (Review Data Last Updated: 2006-07-07 08:54:11 EST)
|
|||||||||||||||||||||||||||||
| 06-17-04 | 5 | 16\23 |
| Reviewer | Permalink | ||||||||||||||||||||||||
|
Finally a book that not only explains the theory and design decisions behind putting together a framework, but also supplies a fully functioning framework for you to start with. THANK YOU SO MUCH!!!
On a side note... the editor should be flogged because of the numerous grammatical errors. (Review Data Last Updated: 2006-07-07 08:54:11 EST)
|
|||||||||||||||||||||||||||||
| Reader Reviews 1 - 11 of 11 | |||||||||||||||||||||||||||||
| All Books | Arts | Biography | Click Here For An A-Z Index Of All 213 Best-Seller Subjects | Business | Children's | Comics | ||||||
| Computers | Cooking | Engineering | Entertainment | Health | History | Home | Horror | Humor | Law | Fiction | Medicine | Mystery |
| Nonfiction | Outdoors | Parenting | Professional | Reference | Religion | Romance | Science | Sci-Fi | Sports | Teens | Travel | |