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






Wednesday, June 20, 2012

Visualizing Data with Microsoft Power View Book Review

This is a very cool way to learn Power View. The book contains step by step instructions that show you how to take advantage of all Power View features, and the accompanying DVD contains a video of the instructions being implemented.

There are 4 hours 48 minutes and 56 seconds of video included on the DVD. They show you how to implement the learn by doing sections of the book. Although I have an environment built for implementing the samples, the videos are great for people that don't have the resources to put one in place.

While on the topic of putting an environment in place I'll mention that Appendix B shows you how to set one up with evaluation software. If you have the hardware available, I would definitely recommend setting it up. If you have an MSDN license I would recommend setting it up with non-evaluation software so you can have it for future proof of concepts and book exercises.

The book is broken down into two parts. The first is for the Power View end user. It covers how to use the Power View report authoring tools. Part two describes the process for creating a Tabular BI Semantic Model.

Part 1: Using Power View
Getting Started
The Table Visualization
Additional Visualization
Charting
Bringing Your Data to Life
Sharing Reports

Part 2: Creating a BI Semantic Model (BISM)
BISM: Getting Started
Basic BI Semantic Model Design
BI Semantic Model: Additional Model Features
Using DAX Expressions
Deploying Tabular BI Semantic Model

Appendixes
Installing and Configuring the Sample Data
Creating a Virtual Learning Environment

One of the things I really like about this book is that it uses examples that mirror real world scenarios. They are large enough to show the powerful features of Power View and PowerPivot, yet simple enough that you get lost in the business logic.

They also go deep into topics. They include an entire chapter on using the Data Analysis Expressions (DAX) language, and that chapter is accompanied by seven videos for a total of 45 minutes of coverage.

All the examples created in the book are available for download. They come with detailed instructions for implementing and configuring them. They were all easy to implement and worked very well.

This book covers everything you need to know to get started with Power View and creating BI Semantic Models. If you buy one book on Power View make it this one. The book is absolutely worth the price and the videos make the buy a steal.

Visualizing Data with Microsoft Power View

posted by tadanderson at 9:05 AM 0 comments links to this post

Sunday, June 10, 2012

Architecting Mobile Solutions for the Enterprise Book Review

I was thrown onto a mobile project a few months ago and admittedly needed to catch up fast. My primary development environment is Microsoft's .NET and although I had been keeping up with Windows Phone, I had not been keeping up with mobile as a whole. I would go as far to say keeping up with Windows Phone was not keeping up with the mobile world at all. Luckily this book is a smorgasbord of mobile information. I purchased and printed the Rough Cuts version as soon as it came out. This book saved me tons of time getting up to speed with the latest information on the mobile world.

The first thing we were tasked with was creating a mobile strategy based on our current business processes and their needs. Luckily this book starts off with a chapter on that. It really helped shape the direction we took by painting a realistic view of today's mobile world. It is a world of tradeoffs and understanding your business needs and requirements before blindly giving marching orders is a must.

It is not a choice between better technologies, or native applications versus mobile web applications, it is about knowing where you want to go and then choosing the tools and resources you need to get you there. There are no silver bullets and anyone who tells you one way, or one platform, will meet all yours needs, is lost and heading down a road to a dead-end.

I had developed on Pocket PC, Windows Mobile 2003, 5, 6, 7, 7.1 and played with Android and iOS, but have never had to mobilize a web site. I have honestly been doing my best to ignore HTML5, CSS, and jQuery. I simply cannot stand any browser development and find it unjustifiable unless it is for the open public. Too bad for me that was exactly what we were doing for the first phase of the project, mobilizing our public web site to increase usability.

We decided to go with MVC 4 and take advantage of the new mobile features. I quickly found that the Microsoft mobile browser detection using HttpCapabilitiesBase.IsMobileDevice Property absolutely sucks and that jQuery Mobile also has a few bugs on the different devices. We are not building a separate page for each device; we are attempting to address them all with jQuery Mobile.

This book does not pull punches and it gave me a realistic expectation of what mobilizing the public web site would take. Basically it is just the same situations that browsers have caused since there was more than two.

Expect to develop customizations for the different browsers just like you're back in the early 2000s. If you really want to take advantage of the different devices using the web, expect to develop different solutions for each device using server-side device detection. The book shows you how to take advantage of the best device detection repositories available. jQuery Mobile is not a silver bullet either. The book does a great job of outlining its features and also covering its disadvantages.

The book is broken down into three parts: Going Mobile, Mobile Sites, and Mobile Applications. The chapters are listed below.

Going Mobile
Pillars of a Mobile Strategy
Mobile Sites vs. Native Applications

Mobile Sites
Mobile Architecture
Building Mobile Websites
HTML5 and jQuery Mobile
Developing Responsive Mobile Sites

Mobile Applications
Patterns of Mobile Application Development
Developing for iOS
Developing for Android
Developing for Windows Phone
Developing with PhoneGap

The Mobile Application section covers building native applications. It first introduces functional patterns common to all devices. Understanding these is essential and anyone who has never done mobile development before should take the time to understand them.

iOS, Android, Windows Phone, and PhoneGap are given equal treatment in the Mobile Application section. In the iOS section the author also does a great job of not only introducing the iOS development environment, but also introducing MonoTouch. MonoTouch is a commercial framework that allows you to use C# to write iOS applications.

The PhoneGap chapter starts off with an overview of the virtual machine approach versus the shell approach, which are the two main paradigms for cross-platform development. In the overview of the virtual machine approach the author introduces Titanium Mobile and Flash builder. I like that the author is honest about the difficulties the come with using PhoneGap and that he doesn't try to sell it a as a silver bullet, but rather just another possible solution that comes with its own set of problems.

The Mobile Application section gives you enough information to get started down the path of learning the covered technologies. You won't come away a master iOS, Android, or Windows Phone developer, but you will come away understanding what each technology has to offer and a understanding of the challenges you must overcome with each.

The thing I found I liked best about this book is that it is not Microsoft centric, even though it is branded Microsoft Press. Yes he covers Microsoft tools, but definitely gives other technologies just as much attention, if not more.

The downloadable code is very well organized and usable. The author has also put up a companion site to show how the different types of browser detection tools work.

A mobile strategy is a balancing act. The book is a great place to get most of the information you need to make the right decisions about your mobile strategy. All in all I highly recommend this book to anyone looking at moving into the world of mobile development.

Architecting Mobile Solutions for the Enterprise

posted by tadanderson at 1:32 PM 0 comments links to this post

Monday, June 04, 2012

Head First C Book Review

I wanted a refresher on C in order to get the basics back for coding Objective-C. I tried several of the older books I had but because I have used it in the distance past and therefore understood most of what I was looking at I was having trouble focusing. The books couldn't keep my attention.

I have read Head First Design Patterns. Because of the unique style in which the Head First books are written I found it kept my attention even though I had a lot of experience with patterns. When I saw Head First C I was hoping it could do the same for me, and it definitely did!!!

The book is for beginners, or someone who wants to be reintroduced to the basics. I thought it's coverage was good enough to give a reader a solid start down the path of C.

I have the summary table of content below:

Getting Started with C: Diving in
Memory and Pointers: What are you pointing at?
Strings: String theory
Creating Small Tools: Do one thing and do it well
Using Multiple Source Files: Break it down, build it up
C Lab 1: Arduino
Structs, Unions, and Bitfields: Rolling your own structures
Data Structures and Dynamic Memory: Building bridges
Advanced Functions: Turn your functions up to 11
Static and Dynamic Libraries: Hot-swappable code
C Lab 2: OpenCV
Processes and System Calls: Breaking boundaries
Interprocess Communication: It’s good to talk
Sockets and Networking: There’s no place like 127.0.0.1
Threads: It’s a parallel world
C Lab 3: Blasteroids
Leftovers: The top ten things (we didn’t cover)
C Topics: Revision roundup

There is no code download for the book. This is ok since the samples are pretty small throughout the book. Most of the time you don't need to run the code because the book is tailored to keep you working in the book doing exercises and puzzles. The only time I really missed the code was when it came to the last lab, Blasteroids, which was a takeoff of the old Atari Asteroids game.

The Labs were a bit too far out there to do, but that didn't take away from the book. The first lab required an Arduino board, which looked like fun, but I don't have one. I might get one though. They are only $22.00 on Amazon.

The second lab was to download OpenCV, play with it, and then learn it. It also looks interesting, but unless I find a use for it, I won't be able to justify the time to learn it.

Like I said above, not doing the labs didn't really take anything away from the book. I do however believe that if you used this book in the class room, these labs would prove to be fun and I think the students would really get into them. They would definitely be worth putting in place in a classroom.

Over all this book really accomplished what I needed it too. It kept me engaged throughout and allowed me to get the basics back in my tool belt. I got through the last two thirds of it while on vacation. Long flights and long layovers helped. Plus when we were not diving we were relaxing and reading.

All in all I highly recommend this book to anyone who what to get into C programming or Objective-C programming. It is also the only way to go if you have to dust off the cobwebs and re-learn it like I did.

Head First C

posted by tadanderson at 11:05 AM 0 comments links to this post

Previous Posts

  • Apple Blows it Again 16GB and a Touch-me Bar - Yip...
  • The Ransomware that was once the worst PC Virus/Tr...
  • Windows 10 Review
  • 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



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
  • September 2016
  • October 2016

Powered by Blogger