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, May 30, 2007

Microsoft Surface

Microsoft Surface...... Check this out.

posted by tadanderson at 5:26 AM 0 comments

Friday, May 25, 2007

patterns & practices Performance Testing Guidance for Web Applications Guide

The Microsoft Patterns & Practices team released the beta 1 PDF version of the patterns & practices Performance Testing Guidance for Web Applications Guide.

According to the site the guide shows you an end-to-end approach for implementing performance testing. Whether you are new to performance testing, or looking for ways to improve your current performance testing approach, you will find insights that you can tailor for your specific scenarios.

Below is a list of the contents they have in the introduction of the Guide:

Part 1, "Introduction to Performance Testing," gives you a quick overview of the types of performance testing, key concepts, and a set of common terms used in performance testing.

Part II, "Exemplar Performance Testing Approaches," shows you the core activities for performance testing. This section also shows you how to apply performance testing to different environments, including Agile and CMMI.

Part III, "Identify the Test Environment," shows you how to collect information about the project that you'll need for your performance tests. This includes collecting information on system architecture, the physical deployment, user activities, and any relevant batch processes.

Part IV, "Identify Performance Acceptance Criteria," shows you how to figure out your performance testing objectives. You’ll also learn how to get clarity around your various performance requirements, from a performance testing perspective.

Part V, "Plan and Design Tests," shows you how to model the workload and user experience to design more effective performance tests.

Part VI, "Execute Tests," walks you through the main activities of actual performance testing.

Part VII, "Analyze Results and Report," shows you how to organize and present your findings in a way that’s useful.

Part VIII, "Performance Testing Techniques," shows you the core techniques for performing load and stress testing.

Get it here
_

posted by tadanderson at 10:48 AM 0 comments

Wednesday, May 23, 2007

Acropolis Client Framework sessions at TechEd 2007

Check out this post by Ricky Tan for information on the "Acropolis" Client Framework sessions at TechEd 2007.

The site he points to lists 3 sessions. I am not going to relist the info here as it may change.

posted by tadanderson at 8:41 PM 0 comments

Programming Microsoft Composite UI Application Block and Smart Client Software Factory Book on the Way

For some reason I felt compelled to pre-order this book. Although I find the documentation for the Smart Client Software Factory is pretty good, when I was deciphering all the documentation available on the Composite UI Application Block (CAB) I found a lot of contradicting advice. One place tells you to use a certain pattern one way (specifically related to the use of the available built in services), and in the next set of documents it recommends another way of doing it. Some of the Labs available for download completely contradict the help documentation that comes down with CAB install.

We used the CAB to build a Framework similar to the SCSF before it was released. We did a lot of Proof of Concepts (POCs)in order to figure out the best use of the function points we decided to use. We have not built anything with the SCSF but we are looking at it and the Web Client Software Factory (WCSF). I am hoping that this book provides a good path through all the documentation and that it settles some of the contradictions found in the documentation.

About the Book (From the MSDN site... link below)

Hands-on guide to developing smart client applications with CAB and the Smart Client Software Factory

Get hands-on guidance for developing smart client applications using Windows Forms with the Composite UI Application Block (CAB) and the Smart Client Software Factory. Smart clients bridge the gap between thin clients and rich clients—providing the benefits of web applications without sacrificing user experience. However, developing smart clients often requires the skill of an experienced programmer using Microsoft Visual Studio®, Microsoft ASP.NET, and the Microsoft .NET Framework. This book details a simpler, approachable method. With just your fundamental Microsoft Visual Basic® or Microsoft Visual C#® skills, this guide will help you understand the prefabricated classes of CAB and the proven patterns that the Smart Client Software Factory provides. This book offers classroom-tested guidance, hands-on instruction, and a proven building-block approach. Through seven modular lessons, developers of moderate experience with learn how to create functional, robust smart client applications.

Check it out here on MSDN or on Amazon here.

_

posted by tadanderson at 2:52 PM 0 comments

Enterprise Library 3.1 - May 2007 Released

Overview from the MSDN Download Page
The patterns & practices Enterprise Library is a library of application blocks designed to assist developers with common enterprise development challenges. Application blocks are a type of guidance, provided as source code that can be used "as is," extended, or modified by developers to use on enterprise development projects. This release of Enterprise Library includes application blocks for Caching, Cryptography, Data Access, Exception Handling, Logging, Policy Injection, Security and Validation.
-
Tom Hollander's overview of the 3.1 changes can be found here.
-
You can download the Enterprise Library 3.1 version here.
_

posted by tadanderson at 9:59 AM 0 comments

Tuesday, May 22, 2007

Vote, Vote, Vote - Enterprise Library 3.1 and Web Client Software Factory 1.1 are coming, and then Web Client Software Factory 2.0.

Geez, updates, updates, updates, and updates. The Pattern and Practices (PnP) team has apparently been working their butts off. I have to say I am very impressed, and I don't say that much.

The interaction between the PnP team and the community has been excellent. If you haven't been voting on the changes you would like to see happen, you should start. Each of the CodePlex sites offer a voting section for the feature we the community would like to see. They even have started the EntLib Contrib project for those ideas for features that will better serve the community as an extension. EntLib Contrib is a community-developed library of extensions to the patterns & practices Enterprise Library. They are definitely listening to the community, and there is still time to have an impact on the Web Client Software Factory 2.0.

To make life a little simpler you can click the links below to vote:

patterns & practices – Enterprise Library

Web Client Software Factory

Web Service Software Factory

Smart Client Guidance


You can check out what is coming in the next release of EL 3.1 here.

The Web Client Software Factory 1.1 is in final testing…. Info here.

_

posted by tadanderson at 2:13 PM 0 comments

Monday, May 21, 2007

Microsoft Enterprise Service Bus (ESB) Guidance (based on BizTalk Server 2006)

The Patterns and Practices team has started an upgrade initiative for the Microsoft Enterprise Service Bus (ESB) Guidance. The Microsoft ESB Guidance is based on BizTalk Server 2006.

You can get a look at the guidance currently available (CTP1) on the CodePlex site here.

According to the site CTP1 will be changed considerably before its final release in September 2007. Should be interesting watching the changes take place.

posted by tadanderson at 11:50 AM 0 comments

ClickOnce Deployment Resource Kit

I have read 2 very good books that cover ClickOnce Deployment. Both are very good overviews of ClickOnce.

They are:
Smart Client Deployment with ClickOnce: Deploying Windows Forms Applications with ClickOnce (Microsoft .NET Development Series) by Brian Noyes
And
Deploying .NET Applications: Learning MSBuild and ClickOnce (Expert's Voice in .Net) by Sayed Y. Hashimi and Sayed Ibrahim Hashimi

ClickOnce Deployment Resource Kit
If however you do not what to spend the $30.00 to by the books, you should check out the ClickOnce Deployment Resource Kit found on the CodePlex Smart Client Software Factory home page. I thought I would point it out, because I have been overlooking it until last night, and thought that others have done the same.

There is a paper is written by Brian Noyes, the author of the first book listed above, included with the download. The ClickOnce Deployment Resource Kit also includes 2 code projects, the ClickOnce Deployment Repository and the Manifest Manager Utility.

The topics covered in the paper are:
ClickOnce Deployment Modes
ClickOnce Update Options
ClickOnce Publishing Process
Publishing Scenarios
ClickOnce Deployment Architecture
Deploying for Multiple Groups
Handling High Deployment Server Load
Implementing a Custom ClickOnce Server File Repository
Deployment Activities
How to: Publish an Initial Version of a Composite UI Application Block Application
How to: Deploy an Initial Version of a Composite UI Application Block Application
How to: Publish an Updated Version of a Composite UI Application Block Application
How to: Deploy an Updated Version of a Composite UI Application Block Application
How to: Move an Application to a Different Server
How to: Add On-Demand Programmatic Update to an Application
How to: Publish Two Different Versions of an Application for Two Different Groups
How to: Restrict Access to Different Versions Based on User Role
How to: Apply New Module Updates at a Future Time in a Composite UI Application Block Application

If the paper doesn't give enough detail, I would suggest buying Brian's book.

The ClickOnce Deployment Resource Kit can be downloaded from this page, or directly by clicking here.

Just an FYI.... the kit's information is included in the SCSF download. They have integrated the information into the help documentation that is found in the paper mentioned above, but it is not as print friendly.

_

posted by tadanderson at 9:10 AM 1 comments

Sunday, May 20, 2007

Windows Server 2008 Scenario Voting

This is an excellent way of getting feedback about what Microsoft customers want to see in Windows Server 2008. The surveys are very thorough and put together in a very easy to use format. The surveys give a lot of insight into the tools being considered for Windows Server 2008.

Hats off to the team responsible for this.

Here is some info from the scenario survey site:

The Windows Team invites you to participate in making Windows Server 2008 the best server operating system ever released by Microsoft. Now you can take part in the evolution of Windows Server 2008 by testing the featured scenarios with each milestone build and providing feedback. Not only will this give you valuable insight into the product, but you can also influence it through direct input into the Windows Server product teams.

Scenario Voting provides a featured list of Windows Server 2008 scenarios for you to evaluate in the latest build. Exploring this site and trying these scenarios will introduce you to the exciting functionality and potential for Windows Server 2008. Your feedback will also provide valuable information for our product teams so they can further enhance the experience for everyone

Check it out here.

_

posted by tadanderson at 4:30 AM 0 comments

Saturday, May 19, 2007

Smart Client Software Factory (SCSF) v2 Released (May 2007)!!!!

The Smart Client Software Factory v2, which includes Windows Presentation Foundation (WPF) interoperability CAB extensions and View with presenter recipe, is available for download from here. According to David Hayden it also includes Enterprise Library 3.1.

According to this blog, this release includes:
-- Windows Presentation Foundation interoperability CAB extensions and View with presenter recipe
-- Offline application blocks and recipes; the application blocks support asynchronous calls to WCF web services.
-- Richer ClickOnce Deployment capabilities
-- Enhanced guidance packages which includes code generation Visual Basic .NET 2005
-- Improved installation with a new dependency checker

You can find installation steps here and a Getting Started with the Smart Client Software Factory Guide here.

posted by tadanderson at 9:22 PM 0 comments

Friday, May 18, 2007

Microsoft Popfly

Overview from the Microsoft Popfly site:

Popfly is the fun, easy way to build and share mashups, gadgets, Web pages, and applications. Popfly consists of two parts:

1- Popfly Creator is a set of online visual tools for building Web pages and mashups.

2- Popfly Space is an online community of creators where you can host, share, rate, comment and even remix creations from other Popfly users.

The list of features:

Mashup Creator

Blocks
Blocks enable Popfly users to do things like get their photos from Live Spaces or Flickr and visually display them using Silverlight blocks like a slideshow or an interactive photo carousel, all without writing code. Underneath the covers, blocks are just chunks of code that wrap complex operations, like retrieving data from a Web site or displaying an animated slideshow so that others can easily reuse that block.

Design Surface
The interactive design surface enables you to drag and drop blocks and connect them together to build your application.

Integrated Tutorials
The mashup creator also includes a right pane with integrated text and video tutorials to help walk you through creating your first application.

Fully Customizable HTML
Advanced users who want to fully control the rendered HTML can switch to the custom HTML view that provides you the ability to create any custom HTML, CSS, or JavaScript code you want. Think of it as your free area to experiment on the Web.

Web Page Creator

Visually Design Your Page
Visually design your Web page without writing code using the same technology that powers the Microsoft Office Live Web Designer.

Custom Themes, Styles, and Colors
Choose from over 150 different themes, 10 styles, and 30 unique color themes for a unique visual design.

Embed Mashups
Go beyond the traditional static Web page hosting offered today and embed mashups, gadgets, and other dynamic content built by you or the Popfly community directly into your site.

Popfly Space

Connect with Creators
Popfly is a social network that enables you to connect with other creators. Using Popfly, you can add your favorite creators as friends and keep track of their latest projects.

Rate, Remix and Embed Everywhere
Popfly lets your rate and Rip (copy) someone else's project which creates a personal copy of the project for you. You can also embed your project on some of the most popular blogging services on the Web, including TypePad, Windows Live Spaces and others. You can even save your project as a Windows Sidebar Gadget that can run on the Windows Vista Sidebar.

Share Visual Studio Express Projects
Advanced users can install the Popfly Explorer plug-in which enables you to upload and share projects built with Visual Studio Express to the world.

Getting Popfly

When you go to the home page or sign up for the wait list you get an email containing the following:

Greetings!

We have received your request for an invitation to Popfly. We will e-mail your invitation when we send out our next batch of invites. If you have any further questions about Popfly, you can reach the Popfly team at our Popfly User Feedback address: suf@microsoft.com

Cheers,
The Popfly Team


I will post more about the Popfly experience when I receive the invite.

Make sure you watch the Popfly screencast on the home page.

Check out Popfly here.

_

posted by tadanderson at 11:23 AM 0 comments

A New Software Product Lines Community Wiki to Keep your Eye on.

A new Software Product Lines Community Wiki site has been set up, where contributors can submit patterns of variation mechanism usage.

The site is the brain child of the participants of a one-day workshop entitled “Managing Variability for Software Product Lines: Working With Variability Mechanisms” that was held in conjunction with the 2006 Software Product Line Conference on August 21, 2006 in Baltimore, USA.

The workshop's goal was to begin to fill the void between variability requirements visible to those who deal with features and other product-level concerns, and the variation mechanisms visible to creators and consumers of a product line’s core assets.

The workshop participants wanted to begin to codify a body of knowledge for the informed and purposeful selection of variation mechanisms to use in a software product line’s core assets. They decide to start the Software Product Lines community Wiki.

You can find the "Managing Variability- Working With Variability Mechanisms" (IESE-Report No 152.06/E Version 1.0) paper here.

There also other papers from the 2006 Software Product Line Conference available here.

You can find the new Software Product Lines community Wiki site here. Keep in mind that the site is brand new and doesn't really contain much, if any, useful information yet. But I have high hopes for it. The Second Workshop on Managing Variability for Software Product Lines: Working With Variation Mechanisms (SPLC 2007) has put out the request for papers (here), and one of the options for submission is to submit your variation mechanism pattern to the Wiki site.

posted by tadanderson at 8:17 AM 0 comments

Thursday, May 17, 2007

Take a break with Spinal Tap

Spinal Tap will be playing London's Wembley on 07-07-2007.

Take a 5 minute break and watch the Spinal Tap member update here. It is definitely worth checking out.

What or Who is Spinal Tap..... Here.

This is Spinal Tap.... Here.

All Amps should go to 11 ... Here.

11 video ... Here

Remembering the Dead ... Here
_

posted by tadanderson at 11:23 AM 0 comments

Friday, May 11, 2007

Internet Explorer Developer Toolbar Version 1 Released

Overview from the MSDN Download site:

The Internet Explorer Developer Toolbar provides several features for exploring and understanding Web pages. These features enable you to:

- Explore and modify the document object model (DOM) of a Web page.
- Locate and select specific elements on a Web page through a variety of techniques.
- Selectively disable Internet Explorer settings.
- View HTML object class names, ID's, and details such as link paths, tab index values, and access keys.
- Outline tables, table cells, images, or selected tags.
- Validate HTML, CSS, WAI, and RSS web feed links.
- Display image dimensions, file sizes, path information, and alternate (ALT) text.
- Immediately resize the browser window to a new resolution.
- Selectively clear the browser cache and saved cookies. Choose from all objects or those associated with a given domain.
- Display a fully featured design ruler to help accurately align and measure objects on your pages.
- Find the style rules used to set specific style values on an element.
- View the formatted and syntax colored source of HTML and CSS.

The Developer Toolbar can be pinned to the Internet Explorer browser window or floated separately.

Download it here and see what it does here.
_

posted by tadanderson at 1:48 PM 0 comments

Smart Client Software Factory v2- Windows Presentation Foundation (WPF) Smartpart Support.



Last week I download and fired up the SCSF Drop 10 Alpha. It is pretty sweet. It comes with a WPF Quickstart - Quickstarts.WPFIntegration.sln.

When you run this you get the application shown in the following screen shot:





The smartpart is XAML. Shown below:



There are already 2 blogs that talk about some of the technical details of the WPF Smartparts.

They are here:
WPF Support in SCSF
WPF Support in Smart Client Software Factory v2

posted by tadanderson at 8:11 AM 0 comments

Wednesday, May 09, 2007

Pattern-Oriented Software Architecture: A Pattern Language for Distributed Computing (POSA4)

This is a great book. It pulls together 114 patterns and shows how to use them in the context of distributed software architectures. It also claims to reference 150 patterns in other publications.

The authors did a great job of creating a language composed of patterns for distributed software architectures.

The book does not go into the details of the pattern's implementations, so you should already be familiar with the patterns, or be prepared to spend some time researching. They do provide brief descriptions and a model for each pattern included in the language. If you need to research a pattern a little more, that shouldn't be a problem because they have included an excellent References section that contains sources for all the patterns original resources and they do a great job pointing to them throughout the text.

The book's best attribute is in how they show the relationships between the patterns. At the beginning of each section they include an introduction to a problem area that ties all the patterns in that section together.

They have broken the language up into the following sections:
From Mud To Structure
Distribution Infrastructure
Event Demultiplexing and Dispatching
Interface Partitioning
Component Partitioning
Application Control
Concurrency
Synchronization
Object Interaction
Adaptation and Extension
Modal Behavior
Resource Management
Database Access

Although the book is a pattern language for distributed software architectures, the patterns are definitely usable in other contexts.

I used the search on this page to check out the internals of the book before buying it. You can also get some sample chapters here.

Every Software Architect should own a copy of this book. It is a wealth of information. If you have a Software Architect working for you, you should make this mandatory reading in order for them to keep their job.
_

posted by tadanderson at 10:12 AM 0 comments

Thursday, May 03, 2007

Five New Silverlight Presentations from MIX Available

Five Silverlight presentations from MIX have been posted to the Silverlight Video section of the Mircosoft Silverlight web site.

There are dozens of videos for Silverlight designers and developers, from the novice to the professional.

Check out the 5 new ones here.

Here is more from MIX 07.
_

posted by tadanderson at 5:53 PM 0 comments

Microsoft ASP.NET Futures (May 2007) Available for Download

The ASP.NET Futures is now available for download. They have wrapped a ton of tools into this download.

The Overview from the MSDN site:

The Microsoft ASP.NET Futures May 2007 (“Futures”) release contains an early developer preview of features providing a wide range of new functionality for both ASP.NET and Silverlight™. The functionality in the Futures release includes early experimental versions of features currently being considered for future versions of ASP.NET and the .NET Framework. The Futures releases assume prior knowledge of the core features of ASP.NET including the previous ASP.NET AJAX Futures January CTP.

Features in this release include ASP.NET Silverlight server controls, new functionality for ASP.NET AJAX Extensions, dynamic data controls, enhancements to dynamic languages, and more.

Get it here.

_

posted by tadanderson at 10:34 AM 0 comments

Wednesday, May 02, 2007

The 5 year old Customer- La La La La La La {with fingers in ears}

A few months ago I wrote this blog about the cost of ignoring known requirements that will be coming in future iterations. One of our current clients still refuses to listen to that logic even though we have repeatedly had to redo work because we are not allowed to think about or discuss anything that is not suppose to be developed today.

Last fall we built a web version of a smart client application for the preparation of home users. The week we were to deliver it, the client decided they didn't want to implement it because there were very few home users at that time. They insisted we trash the project. Make it disappear so it didn't look like we spent time on it. In the next few weeks we will begin to build it again, but this time against an architecture that has been completely reworked thanks to the Programmer from Hades we employed. Of course that programmer was only allowed to do their damage because of the same client insisting they could manage them.

Although our team works a lot of overtime trying to keep this project a success, in reality it isn't. Our company is being paid about 2/3 of what we have spent keeping this project alive and well, and the client has wasted a least 50% of their spent budget on rework because of their lack of development experience and poor choices based on the fact that they perceive themselves capable of making the right choices.

We recently got another La La La La La La {with fingers in ears} session. Where we were told to stop wasting their time and money by planning. We should never be planning, we should always just be developing. We were planning an architecture to help fulfill the next iteration's requirements. Without it, we will in essence need to rebuild the application a third time.

So why are we sticking with it? Our sales guys have mistaken a dangling carrot for a dangling gold bar. They believe that some day the client will begin to listen to people who develop software for a living, instead of pretending that they have the experience needed to make the right decisions.

Do I think it will change? Nope. I used to be associated with a company that would go into organizations and clean house for them. Part of the assessments they did of individuals resulted in a rating of trainability based on several criteria. Being non-trainable meant they were not capable of change and they were marked for elimination. I am afraid we are dealing with some very untrainable folks.

Could we bring this client down the hard way? We definitely could try, but I don't believe it is within the scope of my responsibility and I would be doing the same thing the client is doing. I would be making decisions that I may not be qualified to make. I develop software, I am not a salesman, I don't run companies, I don't manage my client, and I certainly have the opportunity to simply leave the project if I don't like the way the powers that be are running it.

So how do we cope with the stupidity and the angry outburst from the client? This book definitely helped. If you have read the book, you will understand the statement that we are dealing with one that falls into the category of incompetent and certified (More here from Bob). It also helps to keep it all in a bigger perspective. If done right or wrong, in 10 years none of it will matter anyway.

It amazes me that some months, if we just didn't do any work at all for the entire month, we would be 6 weeks ahead of where we ended up after working all month. Go figure….

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