October 2008 - Posts
The book Code Leader, written by Patrick Cauldwell, tries to get any leader of a project in any type of role up to speed on the latest technologies, concepts, or decisions that a code leader has to go through, such as build vs. buy, whether TDD practices are practical, or the value of limiting dependencies.
This book does discuss code, but isn't full of code samples because it isn't meant to be a development book; rather, it looks at the practicalities at a higher level to discuss the rational for using or not using a technology or technique. Overall, the book is a quick read, covering several topics and delving into some specifics, but only discussing a few topics in different arenas. For instance, the MVP design pattern is discussed, but this design pattern is the only pattern discussed in the book.
I did find the section on creating unit/integration tests especially useful because the boundaries in my unit tests were a little gray, some being complete unit tests, while some falling under the integration test scenario, and the detailed explanation about this approach. No good application goes without source control, analysis tools (on some occasions), and tracing capabilities, and Patrick discusses each of these with good details about how a project can make the most of these points. He gets pretty detailed about the options that an application can make use of with source control, and brings light to statistical analysis capabilities in the tools on the market.
I would have like to see this book go further with what the book covered. It's a quick read (232 pages) and is generally easy to read, but there are a lot of other important topics that come with software design I wish were included.
ASP.NET AJAX is a popular topic these days, from web service calls to server/client components. There are many facets to this framework, and this book covers the client-side components. The layout of the book is pretty consistent. It delves into the client code, illustrating what the underlying architecture code looks like and operates.
This book was a great instrument into my learning of how to develop client-side components using the new constructs of the ASP.NET AJAX framework. The first six chapters discuss the add-ons that come with the ASP.NET AJAX framework. ASP.NET AJAX provides a lot of add-ons to the existing JavaScript objects (like Array, String, etc.). It extends the concepts available by adding a helper class for performing common tasks (getting or setting the location, getting the bounds of an HTML element, getting or setting the visibility, etc.). The other concepts added are reflection of ASP.NET AJAX components (which makes use of the descriptor block that a component implements). Two other common constructs are events/handlers (including event bubbling) and support for custom exception types (using the Error object).
One of the cornerstones to the ASP.NET AJAX development is the add-on ways to developing ASP.NET AJAX classes, with full support for interfaces, enumerations, and most of the existing class constructs in ASP.NET (defining events, properties, constructors, and methods). Not only does ASP.NET AJAX support classes, it supports inheritance and polymorphism, which following chapters talk about the Sys.Component base class for components, which Sys.UI.Control and Sys.UI.Behavior (control/extender client base classes) inherit from.
The author spends a good time talking about how to perform web service calls through the Sys.Net.WebServiceProxy and accompanying classes. I think there were about six chapters to this effect, which provides a great deal of coverage. These chapters discuss the REST approach to web services and building proxies (a way to call an external web services since ASP.NET AJAX can only call a web service at the local location (a web service cannot directly communicate with an external web server.
I found the chapter on developing a custom extender control very useful; however I was disappointed from the minimal server code in these chapters (and some other ones as well); I would have loved to have seen the server-side equivalent code in example form. The benefit to these chapters is that it covers the ASP.NET AJAX way, along with the AJAX control toolkit client code. Some of the later chapters cover more advanced topics like working with the UpdatePanel in special situations, and using the PageRequestManager.
The drawback to this book is that the author writes in a matter-of-fact way. He doesn't necessarily explain why you would need to use an object or call a method in a specified way, but simply put forth that this is how it's done. This can turn off some readers (it has by some people's review). I must admit that some sections of the book I skipped because I didn't understand the why of how something was done, and turned to other sources. No book is perfect, however.
This book was the first source for learning ASP.NET AJAX, and it has given me a great deal of knowledge into ASP.NET AJAX and how it works. In order to know how anything works requires detailed knowledge of the underlying code, which this book often uses. It is a great resource to turn to when working with ASP.NET AJAX .
On October 25th, I will be speaking at the Central Maryland .NET user group at their code camp. The code camp is hosted at Loyola College Graduate Center and is open to the public. More information about this is at the following link: http://www.cmap-online.org/CodeCamp/. I will be speaking on developing ASP.NET AJAX control/extender development, of which I'm trying to write a book on the subject. So come hear me talk about this highly useful and interesting topic if you are in the area.
The Krypton Toolkit 3.0.6 framework was released and is now available. The Krypton toolkit free version comes with several handy components for developing applications. These controls are built on top of the existing .NET controls to provide additional features to the consumer. For instance, controls support theming like you see in Infragistics and other third-party products. The toolkit is really nice, especially since it's free, in products like open source. Check it out at: http://www.componentfactory.com/
CodeSmith released a series of videos to help understand the features available in CodeSmith 5.0. You can view those videos in the following links:
CodeSmith Projects: http://codesmithtools.com/video/codesmith-projects.html
Schema Explorer: http://codesmithtools.com/video/schemaexplorer.html
CodeSmith library of Videos: http://community.codesmithtools.com/blogs/videotutorials/default.aspx