We need you!

We're working hard on the next version of Developer Fusion. Let us know what you think we should be up to!

Members

Technology Zones

Articles

Hosted By

MaximumASP

Info

Rated
Read 7,334 times

Contents

Related Categories

Developing Application Frameworks in .NET - Customer Reviews

Book Cover Apress
Xin Chen
1590592883

Customer Reviews

A4Z4KNZ4CJCYH said
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.

A282XXO5L4OEOU said
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


type="TestConcreteFactory.ConcreteProductFactory,TestConcreteFactory"/>
to

type="TestConcreteFactory.ConcreteProductFactory,TestConcreteFactory"/>

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.

AGKJVPBWFOBNZ said
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.

AG35NEEFCMQVR said
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.

A28L9XQ32DNAB2 said
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.

Comments