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, March 26, 2008

New Microsoft Expression Community Web Site Available

The Microsoft Expression Community Team has done a great job on the new site.

The sections of the new site include:

Microsoft Expression Community News, Blogs, and Events
Microsoft Expression Products
A Gallery
Learn Microsoft Expression
Microsoft Expression Downloads
Microsoft Expression Forums

It is definitely worth spending some time checking out.

posted by tadanderson at 5:54 AM 0 comments

Sunday, March 23, 2008

Welcome back ActiveX (Silverlight the Newest Silver Bullet)

I know I am in the minority here, but I am not at all excited to see the way things are shaping up. ActiveX is making a come back, and I am dreading it.

As an application developer I was one of the first out there on the web. I was building applications for Internet Explorer 1.0 on a MAC Performa using Claris Homepage, that I distributed with a disk because most people didn't have the internet. Then the boom came and off we went into the whirlwind of brochureware sites, crazy online applications, and the birth and death of the Fat Client and dll hell. Then came the browser plug-in movement, and the DHTML movement, during which we promised fat-client on the web and actually thought those technologies would be great for building complex applications found on a mainframe for massive enterprises. Uuhg. What were we thinking?

The last 6 gigs I have been on have had a web and a smart client (RIA using winforms for those that are offended by the old MS language 'Smart Client'). Every time we used what made sense to use. I have found myself watching a world of silver bullet pushers. Meaning, they still believe one is coming and intend to force one to exist. Their environment has been either all applications will be thin client, or all applications use this or that technology, or everyone will use this language. There is no thought going into the individual needs of each project.

This kills morale and productivity by forcing people to make a circle fit into a square all the time. With the next silver bullet, appropriately named Silverlight, I am dreading the day when I watch the silver bullet chasers put out the rule that it will be used on every project no matter what the needs or requirements are of a given project.

Don't get me wrong, I think it has it's place, just like AJAX, ASPX, FLASH, WPF Clients, and Windows Forms. I also like what I am seeing with Silverlight, especially the 2.0 stuff. But I have also been down the ActiveX path and I am having flashbacks of having to implement functionality you aren't allowed to use in a browser environment, and then spending weeks trying to create the work around because we MUST use the new silver bullet.

Getting the context right of a new technology is not easy and it takes some trial and error. Running a proper architectural business cycle promotes the use of proof-of-concepts (POC). With all these new technologies coming out there has never been a time when POC's were more important. But if unforgiving policy is setting the technology required on a project, the POC's don't hold much weight.

Will projects take the time to put Silverlight into the right context? I don't know. But for those of us who do have control over the environment on which we develop for, and there are no MACs or LINUX boxes there, we should be dismissing it, and recognize that it is a great technology for those that don't have the luxury of controlling their environments (those that should be using a browser, because they must).

There are some of us still around developing for the windows platform and I hope MS does not forget that. Smart Client is a dying MS term, I just hope the movement is not dying as well. We don't need AJAX, ASPX, or Silverlight on 80-90% of the applications we are using those technologies on (I am not talking about a worldwide scope, I am talking about the one currently around me), yet the lack of understanding and fear of fat client dll hell keep people using them inappropriately. There still are a lot of places that do not need to limit the user's experience by forcing that experience through a browser.

We keep trying to mold that perfect silver bullet, and the promise of its ability to kill our werewolves keep us buying into them.

At least the new version of ActiveX won't have us developing using the ATL (Active Template Library)…. The ATL experience equated to days of mental root canals….

posted by tadanderson at 8:08 PM 0 comments

Saturday, March 22, 2008

Breaking the Rules: Apple Succeeds By Defying 5 Core Valley Principles

This article makes me want to go work for Apple.

posted by tadanderson at 9:57 AM 0 comments

Friday, March 21, 2008

Has Microsoft Implemented the Software Factory? I think not.

Long ago I started this blog with a rant about a technology, or a promise of one, that really got under my skin.

I guess the real aggravation stemmed from the role of the Software Architect being dismissed by Microsoft. That may not have been their intention, but it was the result of VSTS 2005 Architect Edition. Not only were we dismissed, but the industry standards that I have watched deliver success after success where spit on by the offering of the DSL tools and the dismissal of UML. That is only my opinion. I am not sure if you will find it widely accepted.

The one shining hope I had was that the new movement would be used as intended to help produce software factories. What I have seen come out of patterns and practices are not software factories as prescribed by the initial movement. If we look back to the original core piece of what a software factory encapsulates, we should see a software product line embedded within the factory.

What we find with the Microsoft software factories is that they are only a small part of what one would consider a software product line to be. They are code generation frameworks that have no domain specific knowledge at all. A software product line contains core components that support multiple selections of domain specific configurations. They are managed and configured using variability techniques.

The Microsoft software factories are simply plumbing that enables more of the same type of plumbing to be added through code generation.

They do however offer a solution that can enable a product line to be created and then lead into what one might call a software factory. Yet that is several iterations and projects down the road past where a software factory gets you to. I like to think of the Microsoft Software Factories as software factory enablers for certain types of architectures, that fall within the scope of what a Microsoft Software Factory can supply.

Although a little off topic I should mention that a common mistake that I see with them is that they are only squares that a lot of people are trying to make fit into circles, rectangles, and triangles. They are not good for every type of architecture or application. In my experience when they fit the needs of the architecture, they work great for producing a software product line. I have yet to take the software product lines any further to the point where they would be considered software factories.

I don't really know what to expect in the future of the software factory movement. It seems to have taken a path that left the original movement somewhere off in the distance. Like I said above, I think they are cool little tools that offer a great advantage when used correctly, but they should be renamed and redefined.

posted by tadanderson at 8:26 PM 1 comments

Thursday, March 20, 2008

patterns & practices: Documentation Tools CTP Available

The patterns & practices Team has released Documentation Tools.

Summary (from CodePlex)
These are the tools that have been used to create the accompanying documentation for many p&p projects, including the Enterprise Library, Smart Client Software Factory, Web Client Software Factory, and Web Service Software Factory. The tools allow authors to create guidance using Word 2007 and produce documentation in HTML, Help 1.0 (CHM), or Help 2.0 (HxS) format.

Project Overview (from CodePlex)
The patterns & practices: Documentation Tools project includes a Word 2007 template and tools that you can use to convert Word documents to HTML, Help 1.0 (CHM), and Help 2.0 (HxS). It also includes a tool that helps you manage your table of contents for large documentation sets. You can use these tools to create your own documentation guidance or take existing patterns & practices Word documents, modify the content, and then convert the content to your desired output.

The Documentation Tools include three binaries that you can install:
--Content Template. This is a Microsoft Word 2007 add-in and template that provides the p&p Content ribbon bar and pre-defined styles to create and format content.
--Master TOC Tool. This tool allows you to specify one or more Word documents to be converted by the conversion tools.
--Conversion Tool. This tool consists of transforms and Powershell scripts that convert your content (written in the Word template and specified in the Master TOC) to HTML, Help 1.0 (CHM), or Help 2.0 (HxS) format.

Resource Links (from CodePlex)
Overview of the DocTools in PowerPoint
Download the Word 2007 Template (includes custom ribbon bar)
Download the Master TOC Tool and Conversion Tool
Download the overall documentation (includes known issues)
Demo files

Check out the home page of the new project here.

posted by tadanderson at 6:53 PM 0 comments

Sunday, March 16, 2008

Windows Mobile Line of Business Solution Accelerator 2008 Available

Overview (from download site)
The Windows Mobile Line of Business Solution Accelerator is a sample line of business application that showcases the latest design principles and technologies in the mobile space.

Delivering new innovations and development best practices to the Windows Mobile platform with Visual Studio 2008, the .NET Compact Framework 3.5, SQL Server Compact 3.5, a working Supply Chain application, over 5,000 lines of commented code plus over a hundred pages of helpful documentation.

Adapt your App :: Create a single binary that runs unchanged on Windows Mobile Standard or Pro, Portrait or Landscape, Rectangle or Square. No more wasting time building separate executables to accommodate different screen sizes or input methods.

Sync Services for ADO.NET :: Synchronize your data between SQL Server 2008 and SQL Server Compact 3.5 using the new Sync Framework. Keep all your occasionally-connected mobile workers on the same page.

Windows Communication Foundation (WCF) Store and Forward ::Reliably push messages to servers or other devices via Exchange Server 2007. Programmatically notify peer devices that they have new orders waiting for them and need to sync.

MapPoint :: Guide delivery drivers to their customers via either the shortest or quickest route. Integrated mapping means you’ll never get lost again.

LINQ :: Use the new Language Integrated Query to filter results from Generic Object Collections. Query both your objects and XML using a familiar, SQL-like syntax to boost developer productivity.

Custom Controls :: Capture signatures and dazzle your end-users with 3D and Alpha-blended controls that alter their behavior depending on the platform they’re running on.
Managed Stored Procedures and Triggers :: The pluggable data layer allows you to say goodbye to compiling Dynamic SQL inside your code and fires events to react to INSERT, UPDATE, and DELETE operations.

Notifications and Online Help :: Formerly only supported on Pro, say hello to Popup Notifications and Online Help on Standard. Popup Notifications, also known as “toast,” display an HTML message and then disappear after a pre-determined amount of time. Using Online Help on every screen reduces your applicationtraining costs.
Language Switching and Localization :: Change Language/Regional Settings inside your app and watch text and Online Help speak a different language. Don’t wait until your application is finished to realize that it needs to be world-ready.

Time to Market :: Stop reinventing the wheel and use this Accelerator as the foundation for your next Windows Mobile development effort. If you don’t want to use the whole thing, pick and choose the components that are the best fit for your project.

Find out More ::The first Windows Mobile Line of Business Solution Accelerator has been downloaded tens of thousands of times and has served as the foundation for some of the largest and most important Windows Mobile projects in the world. Visit http://msdn.microsoft.com/windowsmobile to accelerate your career as a Windows Mobile developer.

Get it here.

posted by tadanderson at 7:33 PM 0 comments

Friday, March 14, 2008

Pro WPF in C# 2008: Windows Presentation Foundation with .NET 3.5 Book Review

I have the first edition of this book (Pro WPF: Windows Presentation Foundation in .NET 3.0), so I was hesitant in buying this version. WPF 3.5 did not have major feature upgrades from 3.0. I am glad that I did buy it, but I can’t really recommend doing so for other people with the .NET 3.0 version, only because there is not that much new material.

However, I highly recommend the book if you don’t own the previous edition. I also highly recommend it even if you have the first one and you are like me and pretty much trashed my first edition copy. It has been through several storms and has a lot of notes and ink running all over it. So it is nice to have a new copy to beat the crap out of. I also like having the latest information I am using up to date.

Here is what is new in this release:
--Firefox support for XBAPs.
--Data binding support for LINQ.
--Data binding support for IDataErrorInfo.
--Support for placing interactive controls (such as buttons) inside a RichTextBox control.
--Support for placing 2-D elements on 3-D surfaces.
--An add-in model.

Matthew has added content for all the topics listed above.

Some of the highlights of the book I like:
--His in-depth coverage of printing.
--His Custom Elements chapter.
--The new chapter on Application Add-Ins.
--The chapter on using ClickOnce with WPF.
--Everything is gone into in depth. This is not a brush over the topic book.
--The usability of the code makes the book all that much more valuable.

The book focuses on WPF only. It has a few pages on LINQ, but that is about it as far as the rest of the .NET 3.5 framework goes. In other words, the book does not cover how to best use WPF in relationship to WCF, WF, or LINQ. This does not take anything away from the book because Matthew does not claim that the book does this. I only mention it because his ASP.NET 3.5 book does go into LINQ application integration.

The downloadable code is very well organized and is very usable.

I highly recommend this book to anyone getting into WPF with .NET 3.5.

posted by tadanderson at 1:07 PM 0 comments

Wednesday, March 12, 2008

Download the Software Tools Featured at MIX08

Attendees at MIX08 were provided with copies of developer tools and a fast download location to grab newest copies of the software. Now most of these tools are available for free download!

The list includes:
Expression Studio Beta
Expression Media 2 for MAC
IE 8 Beta
IE 8 Virtual Machines
Expression Blend 2.5 Preview
Deep Zoom Composer
Silverlight Tools Beta 1 for Visual Studio 2008
Silverlight 2 SDK Beta 1
ASP.NET MVC Preview 2
ASP.NET server controls for Silverlight
ASP.NET 3.5 Extensions Preview (December 2007)

A complete list with descriptions and links to the downloads is located here.

posted by tadanderson at 8:58 AM 0 comments

Sparx Systems has released Enterprise Architect (EA) 7.1

SPARX has released Enterprise Architecture 7.1

Some of the cooler features added to EA 7.1 are listed below (from SPARX site):

  • Rich Notes support
    • Added formatting such as Bold, Italic, Underline and Lists to Notes.
    • Formatting rendered to diagrams, element list and search view.
    • Formatting included in generated HTML and RTF reports.
    • Formatting is stored as simplified HTML markup for portability and ease of use.
    • Automation interfaces added to retrieve notes as plain text, HTML markup or RTF
  • Model Merge based on Baselines
    • Merge changes from saved baselines into current model package.
    • Single item, batch item and full restore supported using merge functions.
    • Many improvements to speed and capability of baseline comparison functionality.
    • Ability to load, compare and merge with baselines stored in other models (.EAP or DBMS repository), for the same package based on GUID.
    • Ability to load, compare and merge with an external file
    • Added functions to automation interface to run comparison or merge with baseline.
    • Expanded differences reported in model comparison.
    • Improved keyboard navigation of Baseline dialogs
    • New options to show and hide relevant results from compare
  • Model Views Window
    • New dockable window containing custom sets of model elements and diagrams
    • Use inbuilt or new searches to define new views of your model.
    • Create custom views for specific diagram or element types
    • Create special views based on specific "favorites" within a model
    • Views may be shared with other users of the same model (Model Views), or set as private (My Views)
    • Easily export views from one model and import into other models.
    • MDG Technology defined views may also be loaded when a profile is activated in a model.
  • RTF Documentation
    • New Master Document (stereotyped package) element - generate and link multiple
    • Model Documents in one action
    • New Documentation toolbar linked to new "Model Document" diagram type
    • Link different RTF templates to Model Document elements (using tagged value) for complete control of final output
    • New context menu commands for bulk generation of RTF Resource Documents (in the Resource View).
    • New options to split large diagrams across multiple report pages.
    • Model Document elements may now refer directly to a named element search (tagged value) as the source of the elements they will document.
    • Redesigned RTF generation dialog to make various options more visible.
    • Improved context menu in RTF template editor for Package.Element section.
    • Improved handling of hyperlinks from linked documents in RTF report.
    • Improved diagrams only report to handle option for inverted metafile text.
    • Improved handling of missing ole interfaces referenced from linked documents generated in RTF report.

You can check out a complete list of the new features in 7.1 and download it here.

posted by tadanderson at 8:42 AM 0 comments

Monday, March 10, 2008

Windows SDK for Windows Server 2008 and .NET Framework 3.5 Available

Overview (from download site)
The Windows SDK for Windows Server® 2008 and .NET Framework 3.5 provides the documentation, samples, header files, libraries, and tools (including C++ compilers) that you need to develop applications to run on Windows Server 2008 and the .NET Framework 3.5. To build and run .NET Framework applications, you must have the corresponding version of the .NET Framework installed. This SDK is compatible with Visual Studio® 2008, including Visual Studio Express Editions, which are available free of charge.

Please see the Release Notes for the full list of supported platforms, compilers, and Visual Studio versions and any late breaking issues, including installing the SDK to a custom location. For detailed information about the content in this SDK, including a desription of new content, please see the Getting Started section in the documentation.

Get it here

posted by tadanderson at 6:06 PM 0 comments

Thursday, March 06, 2008

MIX08 Sessions

The MIX08 sessions are now available from here.

Some of the available sessions include:
Building Rich Internet Applications Using Microsoft Silverlight 2, Part 1
Building Rich Internet Applications Using Microsoft Silverlight 2, Part 2
Developing Data Driven Applications Using ASP.NET Dynamic Data Controls
Silverlight and Advertising
RESTful Data Services with the ADO.NET Data Services Framework
Creating a RESTful API with Windows Communication Foundation
Web 2.0 and Beyond: What Is the Business Reality?
Encoding Video for Microsoft Silverlight
Working with Data and Web Services in Microsoft Silverlight 2
Internationalizing XAML Applications in Windows Presentation Foundation and Microsoft Silverlight
Mobile Devices and Microsoft Silverlight: A Primer on the New Technology
Welcome to Internet Explorer 8

posted by tadanderson at 7:14 PM 0 comments

Wednesday, March 05, 2008

ASP.NET 3.5 MVC Preview 2 Available for Download

Microsoft has made ASP.NET MVC Preview 2 Available for Download.

Overview (from download site)
The ASP.NET MVC Preview 2 provides an early look at an upcoming framework for building ASP.NET web applications using the Model-View-Controller pattern.

The ASP.NET MVC Preview 2 release provides a new Model-View-Controller (MVC) framework on top of the existing ASP.NET 3.5 runtime. This means that developers can take advantage of the MVC design patterns to create their Web Applications which includes the ability to achieve and maintain a clear separation of concerns (the UI or view from the business and application logic and backend data), as well as facilitate test driven development (TDD). The ASP.NET MVC framework defines a specific pattern to the Web Application folder structure and provides a controller base-class to handle and process requests for “actions”. Developers can take advantage of the specific Visual Studio 2008 MVC templates within this release to create their Web applications, which includes the ability to select a specific Unit Test structure to accompany their Web Application development.

The MVC framework is fully extensible at all points, allowing developers to create sophisticated structures that meet their needs, including for example Dependency Injection (DI) techniques, new view rendering engines or specialized controllers.

As the ASP.NET MVC framework is built on ASP.NET 3.5, developers can take advantage of many existing ASP.NET 3.5 features, such as localization, authorization, Profile etc.

Get it here.

posted by tadanderson at 1:14 PM 0 comments

Visual Studio 2008 tooling for Microsoft Silverlight 2 Beta 1 Available

Overview (from Download site)
This package is an add-on to the RTM release of Visual Studio 2008 to provide tooling for Microsoft Silverlight 2 Beta 1. It provides a Silverlight project system for developing Silverlight applications using C# or Visual Basic.

This download will install the following:
--Silverlight 2 Beta 1
--Silverlight 2 SDK Beta 1
--KB949325 for Visual Studio 2008
--Silverlight Tools Beta 1 for Visual Studio 2008

Silverlight Tools Beta 1 for Visual Studio 2008 includes:
--Visual Basic and C# Project templates
--Intellisense and code generators for XAML
--Debugging of Silverlight applications
--Web reference support
--Integration with Expression Blend

Get it here.

posted by tadanderson at 12:35 PM 0 comments

Microsoft Expression Blend 2.5 and Studio 2.0 Downloads Available

Microsoft has made Expression Blend 2.5 Preview and Expression Studio 2.0 Beta downloads available.

Microsoft is also offering a new Expression Professional Subscription, a new premium offering targeted at professional designers which complements the existing MSDN subscriptions for developers.

You can read about Expression Blend 2.5 and Expression Studio 2.0 and the Expression Professional Subscription here.

You can download Expression Studio 2.0 here.

You can download Expression Blend 2.5 here.

posted by tadanderson at 11:47 AM 0 comments

Tuesday, March 04, 2008

Source Code Outliner PowerToy for Visual Studio 2008

Overview from CodePlex
The Source Outliner PowerToy is a Visual Studio 2008 extension that provides a tree view of your source code's types and members and lets you quickly navigate to them with filtering inside the editor.

The Source Code Outliner PowerToy was created as a package using the Visual Studio SDK for Visual Studio 2008.

Get it here

posted by tadanderson at 2:01 PM 0 comments

Saturday, March 01, 2008

Essential Windows Communication Foundation (WCF): For .NET Framework 3.5 Book Review

If you are going to get into Windows Communication Foundation (WCF) with .NET Framework 3.5, you will want this book by your side.

The authors do a great job of covering all the basics and then go in depth on each major WCF topic offering a chapter on each. They cover all the new .NET 3.5 topics thoroughly and in depth.

They have an entire chapter on Workflow Services, which is new to .NET 3.5. They do a great job of explaining it from a WF viewpoint and a WCF viewpoint.

They also have go into depth on using WCF for web (AJAX Integration, JSON, WebOperationContext, WebScriptServiceHost, WebScriptServiceHostFactory, RSS, ATOM) programming.

One of the things I really like about this book is they way the authors summarized topics with tables. They make comparing options, which there are a lot with WCF, easier to pick.

I know the big thing with WCF is that it brings a lot of different technologies together under one umbrella, but you still have to make choices on what to use and then how to use it. The umbrella does not make the choices any less confusing unless you have a good guide for making those choices. This book accomplishes that completely.

An example can be found by going to the Amazon page that allows you to search the book, and searching on "Supported Features of Each Binding". Click page on page 117 and then check out the next page also.

This book is very well organized, it is in depth, and the writing styles make it an easy read.

There is no code to download yet, but I contact one of the authors and they said it is on the way.

I highly recommend spending some time with this book before jumping head first into WCF. Using this book as a guide to help you make decisions about which path to take will make using WCF a pleasure.

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