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






Thursday, December 27, 2012

The Core iOS 6 Developer's Cookbook Book Review

I did not look closely at the description of this book before acquiring it. I mistakenly thought it was going to be about the Core Frameworks iOS has to offer. I thought that because I own the previous version of the author's book The iOS 5 Developer's Cookbook: Core Concepts and Essential Recipes for iOS Programmers.

It turns out the lineup is just being restructured and the iOS 5 Developer's Cookbook: Core Concepts and Essential Recipes for iOS Programmers is being broken into two volumes and a tutorial book. This is the first of a 2 volume cookbook set. I think the more appropriate and less confusing title should have been used like The iOS 6 Essentials Developer's Cookbook, or The iOS 6 Fundamentals Developer's Cookbook.

Although it was not what I expected, I thoroughly enjoyed the book and found the all the content valuable.

Like her previous edition, this book is much more than just a cookbook with a bunch of recipes in it. I have used plenty of cookbooks and they are never readable from cover to cover. I usually just familiarize myself with the recipes that are available, read the ones interesting to me at the time, and throw them on the shelf until I need them.

This one is both a great cover to cover read as well as a great reference. The author does a great job of mixing a traditional book with a recipe book. Each chapters contain both background information and recipes. I have listed the chapters below.

1. Gestures and Touches
2. Building and Using Controls
3. Alerting the User
4. Assembling Views and Animations
5. View Constraints
6. Text Entry
7. Working with View Controllers
8. Common Controllers
9. Accessibility
10. Creating and Managing Table Views
11. Collection Views
12. A Taste of Core Data
13. Networking Basics
Appendix. Objective-C Literals

This book definitely lives up to the cookbook title. There is tons of code that comes with it and it is all very well organized and usable. The only thing I didn't like was that the author used HelloWorld.xcodeproj for the project name every time. After you open a few projects you have to go to Finder and the actual folder to reopen a specific one because all your shortcuts are HelloWorld.xcodeproj. Although some of them run slightly different, I do like that the samples are built to run on both the iPad and iPhone, and that they run without the need to tweak them.

This book covers a ton of material, but of course I always would like to see more. The thing I would like to see most in The Advanced iOS 6 Developer's Cookbook is much more coverage of dealing with security on web services and JSON over REST. I am using the NSJSONSerialization class, which the author only lightly touches on in the book and provides a small sample application.

I am not going to ding the book for not providing detailed coverage of dealing with security on web services and JSON over REST because it covers so much already in such great detail. No one is covering web services in enough detail for me, and although several authors have said there are plenty of resources on the web, there aren't. Especially when it comes to samples that also include security. Apple's developer documentation is greatly lacking in this area also. They provide plenty of theory, but no good clean concrete samples. I have finally figured out what I needed to implement by piecing together several examples across several books, web sites, and Apple documentation, but it would be nice to see it covered in one place in depth.

I think this book is great for both the iOS beginner and the experienced developer, but you should know Objective-C first. The author does a great job of explaining complex topics that make it easy to understand while going in-depth enough to completely explain the topic at hand.

This book is an invaluable asset for any iOS developer and I highly recommend it. This book will continue to be within arm's reach every time I open Xcode.

For more book recommendations check out my .NET, iOS, and Java Architecture and Development Book Recommendations for 2013


The Core iOS 6 Developer's Cookbook (4th Edition) (Developer's Library)

posted by tadanderson at 8:27 AM 0 comments

Tuesday, December 25, 2012

Windows 8 Apps with XAML and C# Unleashed Book Review

As with Nathan's book WPF 4 Unleashed this book is a pure pleasure to read. It is in full color, the content is laid out in an easy to read style, the author's writing style makes it easy to read, and the content is all valuable. There is no fluff like you find in a lot of the books written today.

Part I of the book starts out with an awesome chapter on the anatomy of a Windows store app and then has a great chapter introducing XAML. The book is broken down into a total of 5 parts. I have listed them below along with the chapters they contain.

Part I. Getting Started
Chapter 1. Anatomy of a Windows Store App
Chapter 2. Mastering XAML

Part II. Building an App
Chapter 3. Sizing, Positioning, and Transforming Elements
Chapter 4. Layout
Chapter 5. Interactivity
Chapter 6. Handling Input: Touch, Mouse, Pen, and Keyboard
Chapter 7. App Model

Part III. Understanding Controls
Chapter 8. Content Controls
Chapter 9. Items Controls
Chapter 10. Text
Chapter 11. Images
Chapter 12. Audio and Video
Chapter 13. Other Controls

Part IV. Leveraging the Richness of XAML
Chapter 14. Vector Graphics
Chapter 15. Animation
Chapter 16. Styles, Templates, and Visual States

Part V. Exploiting Windows 8
Chapter 17. Data Binding
Chapter 18. Data
Chapter 19. Charms
Chapter 20. Extensions
Chapter 21. Sensors and Other Devices

Part VI. Advanced Topics
Chapter 22. Thinking Outside the App: Live Tiles, Toast Notifications, and the Lock Screen

In Part II there are a lot of things that are specific to Windows 8 apps that developers are going to need to learn. The book does a great job of covering all of these. The first three chapters in this section cover interactivity, sizing, positioning, transforming elements, and layout, which now can be full-screen landscape, full-screen portrait, filled, and snapped.

Chapter 6 is a very important chapter for developers that are needed to touch to get a firm grasp on. It covers touch, mouse, pen, and keyboard input. Developers need to understand the differences between the way pen digitizer works compared to a stylus that uses a capacitive touch screen. This chapter covers all the details that you need to know to get a firm grasp on the differences. This chapter also covers the basic Windows 8 gestures including tapped, right tapped, holding, and crossline.

Chapter 7 the app model is also very important chapter in part two. This chapter covers the lifecycle of an application from launching to suspending to resuming to killing and terminating. It also covers how applications interact with the Windows store. One of the topics developers are going to want to learn is how to support a free trial, and later how enable a full license of their application to be purchased.

Part III is all about controls, images, audio, and video. The controls covered include Button , HyperlinkButton , RepeatButton , ToggleButton , CheckBox , RadioButton , ToolTip , AppBar, Items Panels , ComboBox , ListBox , ListView , GridView , FlipView , SemanticZoom , TextBlock , RichTextBlock , TextBox , RichEditBox , and PasswordBox. The chapter on images not only covers the Image Elelment but includes coverage on encoding and decoding images. The chapter on audio and video include coverage of playback, capture, and transcoding. There is a ton of material covered in part three!!!

Part IV digs deep into XAML capabilities. Chapter 14 covers vector graphics which included shapes, geometries, and brushes. Chapter 15 covers animation which includes theme transitions and animations, custom animations, custom keyframe animations, easing functions, and manual animations. The title of Chapter 16 Styles, Templates, and Visual States some up exactly what that chapters about.

Part V covers a ton of information on how your application will integrate with the Windows 8 environment. It covers where you get your data from, how to integrate with charms, and how to implement extensions. Chapter 21 covers the accelerometer, qyrometer, inclinometer, compass, light sensor, orientation, location, and proximity.

The one topic I would have liked to have seen more on in Part V is using SQLite. So far all the books that I have read on Windows 8 Apps tell you that it's available, but they don't explain how to use it. The apps I am working on are going to need a robust local data cache, and App Data and User Data are not going to be able to handle it.

The last chapter of the book covers Live Tiles, Toast Notifications, and the Lock Screen. As Windows 8 developers you are going to want to know how to use these features.

There really is not a chapter in this book that should be skipped. Every chapter contains a wealth of valuable information for those looking to get into Windows 8 development.

The author's writing style is very clean and easy to understand making the book an enjoyable read.

The code samples are well organized, very usable and work as downloaded. I mention the work as download because lately I have been downloads some author's code samples and the time it takes to get them to work is more than they are worth.

Over all this is an awesome book. It is a must have for any Windows 8 developer of any level.

For more book recommendations check out my .NET, iOS, and Java Architecture and Development Book Recommendations for 2013


Windows 8 Apps with XAML and C# Unleashed

posted by tadanderson at 12:42 PM 0 comments

Tuesday, December 18, 2012

Sparx Systems releases Enterprise Architect 10

Sparx has release a new version of Enterprise Architect. This tool is by far the best software engineering tool available on the market today. I have been using it as my primary tool for Enterprise and Software Architecture for years now. If you have never checked it out, now is as good as time as any. Below is some of the information about the product along with links to more information.

Enterprise Architect 10
Enterprise Architect 10 provides powerful new tools for user interface simulation, impact analysis, improved model documentation, enhanced project management and much more. New tools and technologies include SysML 1.3, GML, Document Fragments and Profile Helpers for extending UML.

Enterprise Architect 10 Release Highlights:
  • User Interface: Designed to improve productivity
  • Diagramming: Superior visualization and traceability
  • New Modeling Technologies: SysML 1.3 and GML
  • Simulation: Bring User Interface designs to life!
  • Execution Analysis & Profiling: Understand your code
  • Project Management: Better managed resources
  • Reporting & Documentation: Powerful modular templates
  • And much more ...

Enterprise Architect 10 is a collaborative modeling, design and management platform based on UML 2.4.1 and related standards. Agile, intuitive and extensible with fully integrated, powerful domain specific high-end features at a fraction of the cost of many competitors. An enterprise wide solution for visualizing, analyzing, modeling, testing and maintaining a wide range of systems, software, processes and architectures. Team based, with a proven track record and over 300,000 users worldwide; Enterprise Architect is the scalable, standards compliant toolset that is perfect for your next project.

Here is a comprehensive list of all it's features in the current release.

To learn more check out the Resources & Tutorials available.

To try it, just go download it here.

posted by tadanderson at 5:36 PM 0 comments

Visual Studio Team Foundation Server 2012: Adopting Agile Software Practices Book Review

I own the first two versions of this book and was looking forward to the third version. There was a lot of change between the first and second editions, but this third edition does not have that much new material. The authors let you know in the preface that the major update to this version of the book is that it has been updated for Visual Studio 2012. My personal preference is to always have the latest edition.

I would say if you want to get familiar with doing Scrum with TFS this is the book you want. It really does not cover the other templates at all. I am not saying that is bad, but when I read the second edition of the book it is not what I expected or wanted. I already had read enough on Scrum to last me a lifetime. I wanted to see more on the other templates.

All that said, if you have not had the opportunity to get familiar with Scrum this is a great place to get started, especially if you use TFS.

The book starts out with an introduction to agile, Scrum, and Visual Studio. It then digs into Scrum and TFS with chapters on Product Ownership, Running the Sprint, Architecture, Development, Build and Lab, Test, Lessons Learned at Microsoft Developer Division, and Continuous Feedback.

My favorite chapters are Development, Build and Lab, and Test. The author did a great job of showing all the different features available in TFS and Visual Studio that enable continuous integration, automating testing, and detecting programming errors early. The chapters go into enough detail to give you a really good understanding of the tools available and when to use them.

The architecture chapter did a good job of showing how to take advantage of the tools in Visual Studio for reverse engineering existing applications. It does not however show you how to use them to architect an application. Instead the author plays the "Emerging Architecture" trump card, and writes it off to it not being needed in agile processes. I guess this is ok, because the tools in Visual Studio are not ready for prime time when it comes to designing an Architecture. They are however awesome for reverse engineering an application, especially with the new Code Maps. I wholly disagree with the "Emerging Architecture" agile approach and believe it contributes to most of the messes that come out of teams claiming to be agile, but I won't ding the book for it since it is after all what agile prescribes.

Personally I think the book should have been titled "Developing with Visual Studio and TFS using the Scrum Template". That is not a bad thing if that is what you want. The book is well written and an easy read. I think is does what it sets out to do and it does it well. It is a top notch book.

I highly recommend it to anyone looking to learn Scrum and wants to use the TFS toolset to enable your team to accomplish your mission. I liked the book enough to get the third version even though I knew there were not that many changes. If you are using TFS and the Scrum template this is the book you must have on your shelf.

Visual Studio Team Foundation Server 2012: Adopting Agile Software Practices: From Backlog to Continuous Feedback (3rd Edition)


For more book recommendations check out my .NET, iOS, and Java Architecture and Development Book Recommendations for 2013

posted by tadanderson at 12:05 PM 0 comments

.NET, iOS, and Java Architecture and Development Book Recommendations for 2013

Another year has gone by. Merry X-mas and Happy New Year everyone. It is time to update my book recommendation blog.

This year's list will have a few new book topics added to list. I have ventured in iOS, Java, Android and Windows Store development, so along with all the usual Microsoft topics you will find recommendations for those topics as well.

There have been a ton of books come out this year both good and bad. Be sure to check out the Shiny Turds book section which lists books that do not Cut the Mustard *-Do not Buy-* section. It is the last in the list. 

These are all books I have read or have on pre-order (based on previous editions) and plan to use when they are released in the very near future.  I have reviewed a lot of them here on this blog and on Amazon.

Software Process Engineering


Product Line Engineering


Enterprise and Software Architecture


SOA: Service Oriented Architecture


XCode, iOS, C, and Objective-C


Coding Guidelines


Java and Android


Patterns


OOAD


Brownfield Development


Performance and Scalability


Security


.NET 4.5, Windows Store Development, and TFS


.NET 4.0 and VSTS 2010


SharePoint


HTML5, ASP.NET, AJAX, MVC, and Silverlight


SQL Server and T-SQL


Shiny Turds Books that do not Cut the Mustard *-Do not Buy-*

posted by tadanderson at 9:59 AM 0 comments

Monday, December 17, 2012

iOS SDK Development Book Review

This book a no nonsense approach to learning the key points of Objective-C and iOS at the speed of light. It is a fast paced sprint through tons of hands on examples.

The books starts off with a nice introduction to Xcode by building a small twitter application using the new iOS 6 Social framework. The twitter application is used as the example in the first 3 chapters and then the rest of the book builds a recipe application.

I have listed the chapters below to give you an idea of the topics covered throughout the book.

Tweetings, and Welcome to iOS 6
Programming for iOS
Asynchronicity and Concurrency
View Controllers
Table Views
Storyboards and Container Controllers
Documents and iCloud
Drawing and Animating
Testing and Fixing Apps
The App Store and Beyond
Wait! I Forgot (Or Never Learned) C!

To me this is not a reference book, but rather a great cover to cover read. There are a lot of books that I don't get far with that are hands on building of an application from start to finish, but this one really kept my interest. The applications being built are at the perfect level of complexity to introduce a ton of topics, but do not bog you down with a bunch of domain knowledge. I hate the books like this that spend 50% of the book explaining the non-technical what and why of what you're building.

I found the chapter on storyboards very cool. The authors take the recipe application built using a pre-iOS mindset using nibs up to this point in the book, and converts it to a storyboard application. They reuse all the view controllers built so far. This is a great chapter for showing the power of the MVC pattern used throughout iOS development.

The chapter on Documents and iCloud does a great job of introducing persistence by implementing the NSCoding protocol. There is no Core Data coverage in this chapter or the rest of the book. I also could not get the iCloud samples from this chapter to run, but I did not spend much time on trying to get it to work.

The chapter on testing provides a nice introduction to unit testing, debugging, and performance testing using Instruments.

I think a reader should have some experience with C or Objective-C before reading this book. Like I said above the authors have a very no-nonsense approach. But I would recommend a little more experience than what the author's put into the Wait! I Forgot (Or Never Learned) C! appendix. C in 7 pages is a bit to no-nonsense!

Over all I found the book a really enjoyable read. I definitely recommend it to anyone that wants to learn iOS through a hands on experience. This book will give you a great foundation to start building on.

iOS SDK Development


For more book recommendations check out my .NET, iOS, and Java Architecture and Development Book Recommendations for 2013

posted by tadanderson at 12:55 PM 0 comments

Monday, December 10, 2012

Microsoft Visual Studio 2012 Unleashed Book Review

This is the book for anyone looking to get started with Visual Studio 2012 Professional. Over the years Visual Studio has become a sizable integrated development environment. The Ultimate version combined with Team Foundation Server (TFS) is a beast. This book only covers the Professional Edition functionality. No TFS, UML, Coded UI tests, profiling, Web testing, load testing, or layer diagrams and it is a whopping 1149 pages.

I think it was a good idea to only cover the Professional Edition features. Most of our developers use the Professional Edition. We only give the Ultimate Edition to our Enterprise and Software Architects. There are whole books just dedicated to covering TFS and the Ultimate Edition features already, and it allowed the authors to really dig into the programming tools offered by the Professional version.

The book is also not a language book, so don't expect to be taught C# or VB.NET. They do have one chapter on the VB and C# .NET languages. It's pretty much a language primer/syntax overview chapter. For those coming from Java, Objective-C, or C++ this chapter would probably be enough to get you up and running for the rest of the book.

So there are no Ultimate version tools covered, it is not a language guide, and it also does not cover the TFS functionality, that seems like an awful lot for a 1149 page to not be about. Below is the table of contents and it lays out what the book is about!

Part I An Introduction to Visual Studio 2012
1 A Quick Tour of Visual Studio 2012
2 The Visual Studio IDE
3 The .NET Languages

Part II An In-Depth Look at the IDE
4 Solutions and Projects
5 Browsers and Explorers
6 Introducing the Editors and Designers
7 The .NET Community: Interacting Online

Part III Writing and Working with Code
8 Working with Visual Studio’s Productivity Aids
9 Testing Code
10 Refactoring Code
11 Debugging Code
12 Deploying Code

Part IV Extending Visual Studio
13 Introducing the Object Automation Model
14 Writing Add-Ins and Wizards
15 Extending the Code Editor Using Managed Extensibility Framework

Part V Creating Enterprise Applications
16 Creating ASP.NET Form-Based Applications
17 Building Web Sites with Razor and ASP.NET MVC
18 Building Windows Forms Applications
19 Creating Richer, Smarter User Interfaces
20 Working with Databases
21 Service-Oriented Applications
22 Embedding Workflow in Your Applications
23 Developing Office Business Applications
24 Developing Applications in the Cloud with Windows Azure
25 Writing Windows Store Applications Using the Windows Runtime Library

The first three parts of the book concentrate on code level features and tasks that are possible with Visual Studio 2012. It covers all the navigation windows found in Visual Studio 2012, it takes an in-depth look at all the solutions and project types, it covers the editors and designers, how to take advantage of community connection tools, and how to test, refactor, debug, and deploy code.

Part IV covers automation customization and extending Visual Studio 2012. They do a really good job of introducing the capabilities of by implementing a sample add-on.

When I first saw Part V Creating Enterprise Applications it raised a red flag with me at first. I have seen a lot of books that go through the core of what they are trying to teach and then tack on a bunch of general chapters at the end that aren't deep enough to have any meaning. What made these chapters great is that they stuck to the book's tools context. Even though they went deep into creating and coding certain types of applications, they still stuck to the context of the book which is tools centric.

The book does not contain the Visual Studio 2012 Update 1 features like Code Map and the new SharePoint debugging tools. Visual Studio 2012 Update 1 came out well after the book published.

At the time I'm writing this review there are no code samples ready for download. I did notice that the authors had code downloads available for their Visual Studio 2010 unleashed version so I'm hopeful they will soon be coming.

Overall I thought the authors did a great job. They cover a ton of topics and then go really deep on every topic. I would say that if you are a developer and you're looking to get into.net this is an absolute must have booked for learning the ins and outs of Visual Studio 2012. Visual Studio 2012 has some really great productivity tools and if you're not taking advantage of those tools are really wasting a lot of your time, and your customers time or your employer's time.

I think this book should be part of every .NET developer's library. It will definitely be staying by my side to use as a reference.

Microsoft Visual Studio 2012 Unleashed (2nd Edition)


For more book recommendations check out my .NET, iOS, and Java Architecture and Development Book Recommendations for 2013

posted by tadanderson at 4:17 PM 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