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






Sunday, December 21, 2008

New Learning Resources for the Software and System Architect

There are a lot of new learning resources available for the Software and System Architect. I have gathered some of the best together below.

You can check these blogs out for my past lists, which include more papers than this one.
Software Architecture Links: ABC, QAWs, ADD, ATAM, CBAM, ARID, and Books
Documenting Software Architectures: 4+1, Views and Beyond, Viewpoints and Perspectives, and Book Links

New Published Books and Papers




patterns & practices Application Architecture Guide 2.0 (THE BOOK)



An overview of the patterns & practices App Arch Guide 2.0 project in PDF form.

The Rich Client Architecture Pocket Guide provides an overview and prescriptive guidance for designing rich client applications on the .NET platform.

The Web Architecture Pocket Guide provides an overview and prescriptive guidance for designing Web applications on the .NET platform.

The RIA Architecture Pocket Guide provides an overview and prescriptive guidance for designing RIA applications on the .NET platform.

The Service Architecture Pocket Guide provides an overview and prescriptive guidance for designing services on the .NET platform.

Original Visios for the larger diagrams in the Application Architecture Guide version 2.0. If you would like any of the others in the guide, please request them.

Presentations that were given at the SOAPL - 07 workshop.

The Method-Framework for Engineering System Architectures

Proceedings of the International Workshop on the Foundations of Service-Oriented Architecture (FSOA 2007)

Proceedings of the First Workshop on Service-Oriented Architectures and Product Lines

Models for Evaluating and Improving Architecture Competence



New Books soon to be available

posted by tadanderson at 10:14 AM 0 comments

Friday, December 19, 2008

Silverlight 2 DataGrid December 2008 Release

Microsoft has released an updated version of the Silverlight 2 DataGrid.

Overview (from MSDN site)

This version of the DataGrid contains the following improvements over the version that was released in the Silverlight 2 SDK:
--Almost 30 bugs have been fixed.
--Rows containing focus no longer disappear when the ItemsSource changes
--Selection is now preserved when sorting
--ComboBox and other controls opening a popup no longer end editing mode for the DataGrid
--Buttons outside the DataGrid work as expected when they are clicked while the DataGrid is in editing mode
--Improved FrozenColumn behavior.
--Improved cell currency.
--Selection is updated at the time when the CurrentCellChanged event is raised

Get it here

posted by tadanderson at 1:46 PM 0 comments

Thursday, December 18, 2008

Entity Framework 1.0 Error Unable to update the EntitySet XXXXXX because it has a DefiningQuery and no DeleteFunction element exists

Unable to update the EntitySet XXXX because it has a DefiningQuery and no <DeleteFunction> element exists in the <ModificationFunctionMapping> element to support the current operation" is one of the errors you will eventually run into with the ADO.NET Entity Framework 1.0.

This error is caused by the resulting SSDL that is generated when mapping a table with no primary key.  Adding a primary key causes an error with the association mapping, so that isn't a good option.  I saw some posts on modifying the generated SSDL, but did not want to mess with that every time I had to update the model.  There are different approaches to addressing the problem.  I have listed some of the links I referred to below. 

I am posting this because I didn't follow any of them.  I added an ADO.NET connection to my data access layer and simply went around the association maps found in the generated EDMX. 

I can do this because I am doing a proof of concept that includes EF, which means I am simply testing is value as a tool.  Right now EF is failing as a production worthy tool.  They have a lot to fix in the next release. 

Blogs and forums on the issue:
EF - Generate with No Table Key
MSDN Forum Post
CRUD operations in Siverlight using ADO.NET Data Service
Ado.Net Entity Framework Many to Many Relationships
DefiningQuery Element (EntityContainer SSDL)

posted by tadanderson at 7:43 PM 0 comments

Environmental Constraints, Business Requirements, and Implementation Details

Environmental constraints often play a big part in an application's architecture. Although we like to pretend the slate is wide open with possibilities for implementing users requests, it would be naïve to ignore the technical, political, and user environment constraints always present on any decent size project.

If you cannot communicate those constraints effectively you are doing the users a disservice. It is usually the harder road to take, which is not uncommon, doing the right thing always takes much more of an effort. The excuses to do the wrong thing we hear quite often are that "we do not say no to the user", or "the user is always right", or "it is a business requirement".

If I am not careful, the perception I often end up with of the architect, analyst, developer, or project manager that always gives into user requests that violate environmental constraints is that they are lazy, or just "Yes" men or women. Usual it is just plain old lack of experience.

To tell the difference between a Business Requirement and an Implementation Detail requires experience. Often times experience can only be gained through proof of concepts, especially in today's world of ever changing technologies.

A recent example was a request we had for ad-hoc reports to be implemented on an architecture we were putting together. The user requirements were completely lacking for the reports, so the conclusion the analyst team reached was they will deliver ad-hoc reports. They sold it to upper management as a business requirement. The technical solution would be easy to implement using SSRS Report Modeler and Report Builder.

The problem with what they sold was that the environment constraints they will be delivering into will make the mission practically impossible to deliver. An easy solution if you ignore your environment. I can stay in the water for days in 4 feet of water, that is a different story in 12 ft of water.

Political, security, and technical constraints will drag the initiative under. We warned them several times that they should not go down the ad-hoc reporting path, but to no avail. We told them just to do it the hard way and meet with the users and gather the business requirements for the reports. The answer was no, this is now a business requirement.

The one major downfall of the analyst team was they refused to accept that the reports were the business requirement, not the ad-hoc reports. Using the ad-hoc tools is an implementation detail, and an implementation detail should never be considered a business requirement.

The system I am referring to has one of the smallest sets of reporting business requirements I have come across in a very long time, and it will end up being one of the most complex and confusing implementations I have ever seen. How do I know? It is that experience thing I mentioned earlier. It is not that I am smarter than anyone else, it is just that I have seen it tried before and fail to happen in this environment several times.

posted by tadanderson at 10:41 AM 0 comments

Tuesday, December 16, 2008

Pro Silverlight 2 in C# 2008 Book Review

Matthew has hit the mark again!!! This is a great resource for any level of Silverlight experience. He starts out with an introduction that covers the Visual Studio Silverlight environment. The introduction really helps those who have no experience get rolling right away.

Matthew does a great job of covering every feature of Silverlight in great detail, but more importantly he covers every feature left out of Silverlight in detail. He covers the limitations and also how to get the most get the most out of what is there to make up the difference. His chapter on data binding does a great job of pushing the features that are included to there limit, which helps make up for the lack of ADO.NET and a lot of other missing binding features.

He covers every out of the box element in detail and includes a nice reference for where the element can be found in the book. He also covers styles and templates, brushes and transforms, shapes and geometries, animation, and layout containers.

The book also covers networking, multithreading, isolated storage, browser integration, media and deep zoom, wcf services, the application model, and dependency properties and routed events.

The book is very readable for those that like to read cover to cover, but it also makes a great reference.

The downloadable code is very usable and very complete. Below is a screenshot of the Elements chapter's sample code running.


Click here to see larger image.

All in all, if you are interested in Silverlight, this is a must have.

posted by tadanderson at 7:14 AM 0 comments

Thursday, December 04, 2008

Microsoft .NET Architecting Applications for the Enterprise Book Review

This book does a great job of putting architecture into a view that .NET developers and architects can relate to.

The book covers design principles and patterns, and then relates them to each layer of a traditional layered system.  It includes business, services, data access, and presentation layers.  The authors include several different patterns for each layer and discuss the pros and cons of each.

The book focuses on the technical aspects of .NET architecture.  It does not cover the soft skills need to be an architect, or cover the customer facing skills need to communicate with the business stakeholders.  You won't find much on process either, just an overview.  These missing topics have not taken away from the book, they have made it a stronger book.  There are plenty of resources on how to execute the soft skills and architecture process.  This book concentrates on how to communicate with the development team through solid design and well known patterns and principles.

This is a must read for all architects, no matter what your skill set is.

A .NET developer looking to move into architecture should make this book their first stop on a long journey.  This will definitely get you off to a very strong start.

This book will not leave my side...  until the 2nd edition...

posted by tadanderson at 6:14 AM 0 comments

Framework Design Guidelines (2nd Edition) Book Review

If you are doing .NET development, you must have this book by your side.  It is a great reference and it is very readable.  It is great to just flip through and pick out a topic or to read from start to finish.

The knowledge the notes included by industry leaders provide great insight into the 'why' of the decision to do what they did.  They also point out the mistakes made in the framework design that often lead to confusion when using the framework.

It stands as our coding standard on our team for framework development.  It gives our team a solid base of information to refer to, especially when arguing about religious issues and doing code reviews.

The CD includes classes (videos) that teach every chapter of the book.  It is like getting a complete college course for the price of a book.

If you don't have this on your shelf or in your backpack, do not bother interviewing for my team.

posted by tadanderson at 6:13 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