Real World Software Architecture

Real World Software Architecture is dedicated to providing information and experiences from the field of Software Architecture.



Subscribe with RSS or ATOM Add to Google

Links

  • Home Page
  • Real World Software Process Engineering
  • Suggested Reading
  • .NET Dev and Arch Collection
  • SEI Essays on SA
  • Software Architecture
  • Bredemeyer
  • wwisa
  • Product Line Engineering
  • PLEES
  • Software Product Lines
  • MSDN Architecture Center
  • patterns & practices






Monday, May 20, 2013

The Modern Web: Multi-Device Web Development with HTML5, CSS3, and JavaScript Book Review

Although I started with ColdFusion for application development, I did plenty brochureware sites with HTML. I believe the version was HTML 2.0 for IE 2.0. I lived in the browser world for years doing ColdFusion, ASP, and HTML sites. When winforms and Smart Client with web services emerged I changed my religion. Since then I have been avoiding the browser whenever possible since.

For the past couple of years I have used HTML/JavaScript/CSS a lot as a byproduct of building ASP.NET and ASP.NET MVC applications for public consumption. Internal enterprise applications I will still push for using WPF and web services over ASP.NET or ASP.NET MVC, but I lose that battle a lot, especially when the developers have never learned WPF (XAML) and have no interest in learning anything new.

When it comes to Mobile Apps my first choice will always be native applications using Objective-C, XAML with C# or C++, and Java using the ASP.NET Web API for the services. The problem is I am going to end up fighting the same battle with the web developers that don't like learning anything new. They are going to turn to HTML/JavaScript/CSS to build their mobile applications as a mobile web site or hybrid application.

So far I have found HTML5 is no different than any other version with respect to the way its capabilities are implemented and where it belongs when architecting a solution. It is far reaching, but if you want a rich HTML5 UI you will be writing a lot of JavaScript and CSS. It really can't be helped, that has always been the real skin and muscle on the HTML skeleton.

HTML5, JavaScript, and CSS are broad subjects. This book zeros in on what you need to know to build to build multi-device web applications. Below are the chapters in the book to give you an idea of what is covered.

Chapter 1: The Web Platform
Chapter 2: Structure and Semantics
Chapter 3: Device-Responsive CSS
Chapter 4: New Approaches to CSS Layouts
Chapter 5: Modern JavaScript
Chapter 6: Device Apis
Chapter 7: Images and Graphics
Chapter 8: New Forms
Chapter 9: Multimedia
Chapter 10: Web Apps
Chapter 11: The Future
Appendix A: Browser Support as of March 2013
Appendix B: Further Reading

In the beginning of the book the author described the different types of readers he tailored the book to. I fall into the category of wanting a snapshot of what the latest and greatest technologies are available.

The author's description of his book is "this book is a snapshot of current, new, and near-future features in HTML, CSS, JavaScript, and related technologies, with a bias toward those that are best for building sites in the multi-device world." I would say he pulls it off.

The author has a really nice writing style which makes the book an enjoyable read. He covers a ton of topics and covers them deep enough to thoroughly explain how to use them. This book isn't really a reference book, so he does not cover every scenario and provide big tables or lists of APIs. It is a learning book that presents it lessons in the context of multi-device web development.

That is not saying I won't be keeping it handy to refer back to over time. I am just saying there is no reference type content filler. Which is great!!

The code samples are very well organized and usable. Each chapter has a folder and each example has a file.

I highly recommend this book to anyone that wants to get a snapshot of current, new, and near-future features in HTML, CSS, JavaScript, and related technologies in the context of multi-device web development.

The author also has a really good book out on CSS, The Book of CSS . I highly recommend that one too!

The Modern Web: Multi-Device Web Development with HTML5, CSS3, and JavaScript

posted by tadanderson at 1:37 PM 0 comments

Saturday, May 04, 2013

Core Java (9th Edition) , Volume I and Volume II Book Reviews

This review covers both Core Java Volume I--Fundamentals (9th Edition) and Core Java, Volume II--Advanced Features (9th Edition). Both books are part of the Prentice Hall Core Series.

I actually got Volume II first and liked it so much I ordered Volume I. I felt like I was missing the first half of the story. Especially when I downloaded the code and both volumes were included.

These two books take you on quite a journey. The first volume starts off with a great overview and history of Java. It then goes into how to download, install, and configure both the JDK and Eclipse. The authors uses Eclipse throughout both volumes.

The rest of Volume I is dedicate to covering the fundamental concepts of the Java language and the basics of user-interface programming. I have listed the chapters in Volume I below.

Volume I
Chapter 1. An Introduction to Java
Chapter 2. The Java Programming Environment
Chapter 3. Fundamental Programming Structures in Java
Chapter 4. Objects and Classes
Chapter 5. Inheritance
Chapter 6. Interfaces and Inner Classes
Chapter 7. Graphics Programming
Chapter 8. Event Handling
Chapter 9. User Interface Components with Swing
Chapter 10. Deploying Applications and Applets
Chapter 11. Exceptions, Assertions, Logging, and Debugging
Chapter 12. Generic Programming
Chapter 13. Collections
Chapter 14. Multithreading
Appendix A. Java Keywords

As you can see the first volume covers a ton of topics. They are all covered in depth and without filler. It is amazing that in these two huge books the authors' no nonsense approach uses no blather to fill up pages with unneeded war stories and his personal views on how the language could be better. I mention that because I recently tossed a book on the pile of books I regret buying that was all filler.

Volume II picks up where Volume I left off and continues into enterprise features and advanced user-interface programming. The topics are covered in great detail, but the authors' writing styles make the topics easy to understand, and a pleasure to read.

Volume II
Chapter 1. Streams and Files
Chapter 2. XML
Chapter 3. Networking
Chapter 4. Database Programming
Chapter 5. Internationalization
Chapter 6. Advanced Swing
Chapter 7. Advanced AWT
Chapter 8. JavaBeans Components
Chapter 9. Security
Chapter 10. Scripting, Compiling, and Annotation Processing
Chapter 11. Distributed Objects
Chapter 12. Native Methods

The authors also have a support site that has a List of Frequently Asked Questions, a bug list (Errata), and the downloadable code.

The downloadable code is organized by volume and chapter. Each chapter has its own folder and each example in the chapter also has its own folder. The best part about it is it just runs. Lately that hasn't been the case with a few book I have purchased.

The code along with the in-depth and clear explanations of the topics at hand provide the ultimate Java learning tools.

There are a total of 2092 pages of pure Java learning material. The authors' writing styles make these a good cover to cover read for the beginner that needs to cover everything, but they very well organized and make great references.

I highly recommend these books to beginners as well as advanced developers. When I am coding Java, these two books will definitely be by my side.

Core Java Volume I--Fundamentals (9th Edition)










Core Java, Volume II--Advanced Features (9th Edition)

posted by tadanderson at 4:08 PM 0 comments

Wednesday, May 01, 2013

C# 5.0 Unleashed Book Review

In this version of the book the author still starts off by answering the question, "Why do we need another C# book?". I was asking myself that very question when I turned to the introduction of C# 4.0 Unleased which was the first version of this book I read. He says "In short, what sets this book apart from many others is its in-depth coverage of how things work."

As far as C# 5.0 books go, I have read C# 5.0 in a Nutshell: The Definitive Reference, Pro C# 2012 and the .NET 4.5 Platform, Essential C# 5.0, and CLR via C# (Dev-Pro) . All very good books, very good!!! C# 5.0 Unleashed belongs on the shelf with them. The author does indeed break down the C# language in a unique and very enjoyable way.

The book starts out with a great overview of the .NET Framework and history of C#. The author breaks the history down by versions. The first two chapters will catch all those new to C# development up with the C# progression a lot of us lived through.

After that the author has two detailed chapters on .NET development and the C# language essentials. He then continues the rest of the book digging into all of the details of the C# language. I have listed the chapters below to give you an idea of how much is covered.

Chapter 1. Introducing the .NET Platform
Chapter 2. Introducing the C# Programming Language
Chapter 3. Getting Started with .NET Development Using C#
Chapter 4. Language Essentials
Chapter 5. Expressions and Operators
Chapter 6. A Primer on Types and Objects
Chapter 7. Simple Control Flow
Chapter 8. Basics of Exceptions and Resource Management
Chapter 9. Introducing Types
Chapter 10. Methods
Chapter 11. Fields, Properties, and Indexers
Chapter 12. Constructors and Finalizers
Chapter 13. Operator Overloading and Conversions
Chapter 14. Object-Oriented Programming
Chapter 15. Generic Types and Methods
Chapter 16. Collection Types
Chapter 17. Delegates
Chapter 18. Events
Chapter 19. Language Integrated Query Essentials
Chapter 20. Language Integrated Query Internals
Chapter 21. Reflection
Chapter 22. Dynamic Programming
Chapter 23. Exceptions
Chapter 24. Namespaces
Chapter 25. Assemblies and Application Domains
Chapter 26. Base Class Library Essentials
Chapter 27. Diagnostics and Instrumentation
Chapter 28. Working with I/O
Chapter 29. Threading and Synchronization
Chapter 30. Task Parallelism and Data Parallelism
Chapter 31. Asynchronous Programming
Chapter 32. Introduction to Windows Runtime

He has included a ton of diagrams that provide a visualization of the topic he is covering. The diagrams really help to speed up the learning process. They really help with the chapters on LINQ.

The author also includes tons of sidebars that are interesting and helpful. A few examples include "No PIA", "The Origin of the Name C#", "The Story of a Guy Called Jim... Or How the Dynamic Language Runtime was Born", "On Backward Compatibility and Keyword Reuse", "Functions are Data!", "Functional Techniques in C#: Currying", "Where does the Name Lambda Come From?", and "Don't Repeat Mistakes".

Some of my favorite sections of the book are ""The Evolution of C#", "Life Without LINQ", "Query Expression Syntax", "Co- and Contravariance", "DLR Internals", "The Holy System Root Namespaces", and "Classes Versus Structs".

The downloadable code for the previous versions of the book were in one solution. There was one project per chapter which makes it very easy to find the sample and use it while reading the book. At the time I am writing this review there is no download available. I pinged the author through his blog site, but the email came back as undeliverable. I am assuming it will be posted in the near future in the same easy to use format.

One bummer about this version of the book is that it no longer continues the theme of marking things by .NET version. In previous versions the author included an icon indicating which version of C# included the feature he is going to cover. This helped in an environment that ranges from 1.1 to 4.0. When I find myself in 2.0 code, and I am trying to use a feature I am used to having available since 3.0, I could take a quick look to see if I am nuts, or it is just missing because of the version I am using.

The bummer is cancelled out by the fact that when you buy the book you also get a code that allows you to download the .pdf, .epub, and .mobi versions of the book. It is nice to have access to the book everywhere I go without having to lug the 5lb tome around.

Pure is the one word I would use to describe this book. It is purely about the C# language. It briefly covers the Framework libraries that are available in the beginning of the book during the introduction, but then it is all about C# 5.0. 1700 pages of C# nirvana!!!

All in all I highly recommend this book. It is good for both the beginner and the advanced developers.

C# 5.0 Unleashed

posted by tadanderson at 9:59 AM 0 comments

Previous Posts

  • DevOps: A Software Architect's Perspective Book Re...
  • Scaled Agile Framework (SAFe) LiveLessons Video Se...
  • Bulletproof Android: Practical Advice for Building...
  • Swift for Programmers Book Review
  • Security in Computing (5th Edition) Book Review
  • Swift in 24 Hours, Sams Teach Yourself Book Review
  • Sparx Systems Releases Enterprise Architect 12
  • Learning Swift Programming Book Review
  • Android Security Internals: An In-Depth Guide to A...
  • Adaptive Code via C#: Agile coding with design pat...



Archives

  • December 2005
  • January 2006
  • February 2006
  • March 2006
  • April 2006
  • June 2006
  • August 2006
  • October 2006
  • November 2006
  • December 2006
  • January 2007
  • February 2007
  • March 2007
  • April 2007
  • May 2007
  • June 2007
  • July 2007
  • August 2007
  • September 2007
  • October 2007
  • November 2007
  • December 2007
  • January 2008
  • February 2008
  • March 2008
  • April 2008
  • May 2008
  • June 2008
  • July 2008
  • August 2008
  • September 2008
  • October 2008
  • December 2008
  • January 2009
  • February 2009
  • March 2009
  • April 2009
  • May 2009
  • June 2009
  • July 2009
  • August 2009
  • September 2009
  • October 2009
  • November 2009
  • December 2009
  • January 2010
  • February 2010
  • March 2010
  • April 2010
  • May 2010
  • June 2010
  • August 2010
  • September 2010
  • October 2010
  • November 2010
  • December 2010
  • January 2011
  • February 2011
  • March 2011
  • April 2011
  • May 2011
  • June 2011
  • July 2011
  • August 2011
  • September 2011
  • October 2011
  • November 2011
  • December 2011
  • January 2012
  • February 2012
  • March 2012
  • April 2012
  • May 2012
  • June 2012
  • July 2012
  • August 2012
  • September 2012
  • October 2012
  • November 2012
  • December 2012
  • January 2013
  • February 2013
  • March 2013
  • April 2013
  • May 2013
  • June 2013
  • July 2013
  • August 2013
  • September 2013
  • October 2013
  • November 2013
  • December 2013
  • January 2014
  • February 2014
  • March 2014
  • April 2014
  • May 2014
  • June 2014
  • July 2014
  • August 2014
  • September 2014
  • October 2014
  • December 2014
  • February 2015
  • March 2015
  • April 2015
  • June 2015
  • July 2015
  • September 2015

Powered by Blogger