Saturday, June 02, 2007

For those of you in the Baltimore/Washington Area, this may be of interest.

Jeff Barr, the Web Services Evangelist for Amazon Web Services, is someone I know and invited out to Johns Hopkins University - Applied Physics Laboratory (JHU/APL) to give a presentation on Amazon's experience in building out and managing their infrastructure. He was gracious enough to accept and will be giving the presentation as part of the APL Colloquium.  Here are the particulars:

Building a 'Web-Scale Computing' Architecture
Wednesday June 6, 2007, 2:00 - 3:00 PM
Parsons Auditorium, JHU/APL

Jeff Barr will provide the blueprint for 'Web-Scale Computing' - enabling businesses to use Amazon Web Services to build an elastic architecture that can quickly respond to demand. Jeff’s presentation will focus on Amazon Simple Storage Service (Amazon S3), Amazon’s Simple Queue Service, and Amazon Elastic Compute Cloud (Amazon EC2) and will include real-world examples of how these services are being used singly and in combination.

Amazon.com spent 12 years and over $1 billion developing a world-class technology and content platform that powers Amazon web sites for millions of customers every day. Today, Amazon Web Services exposes this technology, through 10 open APIS, allowing developers to build applications leveraging the same robust, scalable, and reliable technology that powers Amazon's business.

The APL Colloquium began in 1947. Held weekly, it is one of the longest standing technical and scientific lecture series in the Washington/Baltimore area. The goal of the Colloquium has been to bring to the Laboratory scientific scholars, technical innovators, industry leaders, government sponsors, and policy makers to inform, educate, and enlighten Laboratory staff on what is currently exciting, relevant, and of value to the work of APL.

You are more than welcome to attend as the Colloquia are open to the public. Visitor Guide/Directions can be found on the APL Colloquium web site. And if you found out about this event from this blog entry, please don't forget to stop by and say hello :-)

Category:: Architecture
6/2/2007 10:49 AM Eastern Daylight Time  |  Comments [1]  |  Disclaimer  |  Permalink   
Sunday, April 15, 2007

"The hard problems in distributed computing are not the problems of how to get things on and off the wire. The hard problems in distributed computing concern dealing with partial failure and the lack of a central resource manager. The hard problems in distributed computing concern insuring adequate performance and dealing with problems of concurrency. The hard problems have to do with differences in memory access paradigms between local and distributed entities. People attempting to write distributed applications quickly discover that they are spending all of their efforts in these areas and not on the communications protocol programming interface.
- A Note on Distributed Computing by Samuel C. Kendall, Jim Waldo, Ann Wollrath and Geoff Wyant

A very good read, and still relevant after 13 years! Thanks for the pointer, Steve.

Category:: Architecture
4/15/2007 9:08 PM Eastern Daylight Time  |  Comments [0]  |  Disclaimer  |  Permalink   
Sunday, December 03, 2006

Be the Software!

J.D. has an entry on how, when working on some type of a R&D project, you go about shortening and getting more bang for the buck with testing user experience models. Key advice is:

... experimented with two techniques:

  1. Build modular slideware for visual walkthroughs of task-based features.
  2. Be the software.

This radically improved customer verification of the user experience and kept our dev team building out the right experience.

Mocking up in slides is nothing new.  The trick was making it efficient and effective:

  1. We prioritized scenarios that were the most risk for user experience.
  2. We created modular slide decks.  Each deck focused on exactly one scenario-based task (and scenarios were outcome based).  Modular slide decks are easier to build, review and update.  Our average deck was around six slides.
  3. Each slide in a deck was a single step in the task from the user's perspective.
  4. Each slide had a visual mock up of what the user would see
  5. To paint some of the bigger stories, we did larger wrapper decks, but only after getting the more fine-grained scenarios right.  Our house was made of stone instead of straw.  In practice, I see a lot of beautiful end-to-end scenarios decks that are too big, too fragile and too make believe.

I've seen a couple of examples of this, but my issue with them was exactly what he called out in (5) i.e. "..beautiful end-to-end scenarios decks that are too big, too fragile and too make believe".  Good advice that is very useful. Check out the full entry.

Category:: Architecture
12/3/2006 12:55 PM Eastern Standard Time  |  Comments [0]  |  Disclaimer  |  Permalink   
Saturday, October 28, 2006

Performance in a SOA, especially in a SOA implemented using Web Services is very important, but folks all too often do not have a common definition of what performance is. In addition, in a majority of the cases, performance is not treated as something that should be engineered into a solution from the ground up.

One of the first things that I do when folks start this particular conversation is to point them to some work that has been done by J.D. Meier and his team over at Microsoft as part of their Perf & Scale work. In particular I point them over to the following:

I find the above work relevant, and highly recommended reading, whether or not you are in the .NET/Microsoft, Java/J2EE, OSS or the Fluffy-Bunny camp.

Category:: Architecture
10/28/2006 3:20 PM Eastern Daylight Time  |  Comments [0]  |  Disclaimer  |  Permalink   
Thursday, October 05, 2006

One of the things I like about the Patterns & Practices Team at Microsoft and especially J.D. Meier is that they/he really takes customer feedback into account. The last time I was at Microsoft, I raised some issues that some of the guidance that they provide was too high-level and that they did not break it up into actionable material.

J.D. and his crew have released a new version of the Guidance Explorer that takes into account this feedback. To paraphrase J.D.  "Guidance Explorer let's you browse the online guidance store (caches locally) and you can create your own views of the guidance (or edit the guidance or create your own using our templates or make your own templates). If you don't like what we did, the source is in codeplex so you can shape it to your own needs."

Here are some links that talk in more detail about it:

Very nice work!

Category:: Architecture
10/5/2006 9:34 PM Eastern Daylight Time  |  Comments [0]  |  Disclaimer  |  Permalink   
Saturday, June 25, 2005

Two books that I am currently reading are “Expert .NET Delivery using NAnt and CruiseControl.NET” from Apress and “Ship It! A practical guide to successful software projects”  from the Pragmatic Programmer books series.

I am enjoying both immensely.  I’ve already used the suggestions and recommendations in “Expert .NET Delivery” to improve and fine tune my NAnt scripts and will be moving on to CruiseControl.NET next.  “Ship It!” is in the style of the other Pragmatic books and is an easy and focused read.  I finished it in two days and have already gained a wealth of insight that I can apply immediately.  Highly recommended if you want to streamline your software development life!

Category:: Architecture
6/25/2005 10:07 PM Eastern Daylight Time  |  Comments [2]  |  Disclaimer  |  Permalink   
Sunday, June 12, 2005

Ever since I read the Pragmatic Programmer series of books, I have been a fan of automation. So the build process is one that I have tried to automate to the extent possible. The tool of choice for me in this case has been NAnt. At a high level, my build process consist of the following:

  • Clean up the existing directory structure
  • Prepare the directory structure
  • Get the source from my Source Control Provider
  • Build the solution
  • Run Unit Tests
  • and more...
Since the NAnt configuration file has to be manually coded, one of the challenges I was facing was to make sure that all of the details and dependencies of a multi-project Visual Studio solution were taken into account when I did the build and compile of the solution. In the past I've done the hand coding, or used Slingshot. But recently I've been using the <solution> task in NAnt and really like it.
In short, this particular NAnt task reads a VS.NET solution file, figures out all of the various project dependencies and does the build. Very nice.
Here is an example:

<
target name="build" description="Build the solution" depends="init">
    <solution configuration="${solution.config}" 
              solutionfile
="${code.dir}\MySolution.sln" 
              outputdir
="${stage.dir}\bin">
        <
excludeprojects>
            <
include name="${code.dir}\FirstProject\FirstProject.csproj"/>
            <include name="${code.dir}\AnotherProject\AnotherProject.csproj"/>
        </excludeprojects>
        <webmap>
            <map url=http://localhost/AnotherProject/Another.csproj 
                 path="${code.dir}\AnotherProject\AnotherProject.csproj"/>
        </webmap>
    </
solution>
</target>
Category:: Architecture
6/12/2005 4:39 PM Eastern Daylight Time  |  Comments [0]  |  Disclaimer  |  Permalink   
Friday, October 08, 2004

I was fortunate enough to spend the last three days at the Patterns & Practices Summit which was held at the Microsoft Technology Center in Reston, VA. 

In a word, Awesome!

We had a great lineup of speakers such as:

On top of all of those there were also various keynotes, the most memorable of which was by Sandy Khaund on where the PAG is going.  I would also be remiss if I did not mention that the man who helped to coordinate this from the local side was none other than our own Developer Community Champion, Geoff Snowman. Excellent job all around.
 
Beyond the pure technical knowledge that was imparted, it was also a chance to connect in person with people who I had, in some cases, "met" only online. The other great thing was the ability to leverage their knowledge. Chris Kinsman helped me solve a configuration issue that I had been having with Log4Net and Jim Newkirk was a great source of information on some things I am currently looking at regarding Unit Testing, Daily Builds and more.  Tom Hollander as ever was patient in taking some of the "feedback" I have regarding some of the deployment scenarios for the Enterprise Library :-)
 
All in all, a great, great event and I have to give big kudos to both Sandy and Keith for putting this together!
 
 
Category:: Architecture
10/8/2004 7:08 PM Eastern Daylight Time  |  Comments [2]  |  Disclaimer  |  Permalink   
Wednesday, July 07, 2004

Building on the application patterns presented in Enterprise Solution Patterns Using Microsoft .NET, this guide applies patterns to solve integration problems within the enterprise.

The design concepts in this guide include implementations on the Microsoft platform that use BizTalk Server 2004, Host Integration Server 2004, ASP.NET, Visual Studio, Visio 2003 and the .NET Framework.

The scenario is an online bill payment application in the banking industry. To meet the needs of this scenario, the team used a pattern-based approach to build and validate a baseline architecture. Because a well-designed architecture must be traceable to the needs of the business, the guide also includes a set of artifacts that trace from high-level business processes down to code.

Online @
Integration Patterns

Should be available for download as PDF soon.

UPDATE: PDF is now available

Category:: Architecture
7/7/2004 10:41 PM Eastern Daylight Time  |  Comments [0]  |  Disclaimer  |  Permalink   
Tuesday, July 06, 2004

patterns & practices Live: Integration Patterns - Level 200
http://go.microsoft.com/fwlink/?LinkId=31149
July 8, 2004, 11:00 AM - 12:30 PM Pacific Time
Gregor Hohpe, Senior Architect, ThoughtWorks, Inc

Today's business applications rarely live in isolation. Users and customers expect instant access to data and functions that may be spread across multiple independent systems. Therefore, these disparate systems have to be integrated to allow a coordinated flow of data and functionality across the enterprise. Despite advances in EAI and Web Services tools, creating robust integration solutions is not without pitfalls. For example, the asynchronous nature of most message-based integration solutions is different from the synchronous world of application development and requires architects and developers to adopt new design, development and testing strategies. This webcast shows how design patterns can help developers build successful integration solutions. The patterns have been harvested from years of actual integration projects using messaging, Web Services and EAI tools.

 

Category:: Architecture
7/6/2004 9:57 PM Eastern Daylight Time  |  Comments [0]  |  Disclaimer  |  Permalink   
Friday, June 25, 2004
Monday, June 14, 2004

Per David Hill:

The Smart Client Architecture Guide is now live on MSDN

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag/html/scag.asp

The performance chapter is being completed as we speak and should be posted in a week or so. We decided to put the rest of the guide out there since it has generated a lot of interest. Feedback welcome!

 

Category:: Architecture
6/14/2004 1:55 PM Eastern Daylight Time  |  Comments [0]  |  Disclaimer  |  Permalink   
Sunday, June 13, 2004

Implement Presentation Workflow with the User Interface Process Application Block – Level 400
http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032252968&Culture=en-US
June 15, 2004, 1:00PM-2:30PM Pacific Time
Brian Noyes, Principal Software Architect, IDesign, Inc

The User Interface Process (UIP) application block provides a rich framework for developing stateful, process-oriented user interfaces, either for Web or windows applications. It allows you to decouple the views of your application using and implementation of the Model-View-Controller pattern provided by the application block. Ideal for applications such as shopping carts, registration, questionnaires, online quizzes, and other single flow or multi-path information gathering applications, the UIP is a complex framework that is very easy to use. This webcast will step through the architecture and capabilities of the UIP application block and demonstrate when and how to employ it for both web and windows applications.

patterns & practices Live: Testing Blocks - Level 200
http://go.microsoft.com/fwlink/?linkid=29308
June 17, 2004, 11:00 AM - 12:30 PM Pacific Time
Larry Brader, Test Lead, Microsoft Corporation

Blocks have been gaining momentum as their values to developers are realized, but in reality development is only half the equation to shipping a product. The other side is that of Test. In this Webcast we will drill down and examine how to test blocks.

[Editor's note:  Looks like someone is taking a shortcut in the description here.. I assume that the webcast is on how the Application Blocks are tested. Sandy recently blogged [1] about the new guidance that the PAG folks are putting together on this and the related GotDotNet workspace..]

patterns & practices Live: Test Driven Development – Level 200
Ah, the on demand version of this past webcast by Jim Newkirk is now available! [2]

[1] http://blogs.msdn.com/sandyk/archive/2004/06/11/153581.aspx
[2] http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032254189&Culture=en-US

 

Category:: Architecture
6/13/2004 4:31 PM Eastern Daylight Time  |  Comments [0]  |  Disclaimer  |  Permalink   
Monday, June 07, 2004

patterns & practices Live: Enterprise Software Architects - Level 200
http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032252958&Culture=en-US
June 10, 2004, 11:00 AM - 12:30 PM Pacific Time
Craig Utley, Partner, Enterprise Software Architects

This webcast will focus on the patterns work going on at Microsoft designed to help developers reap the benefits of pattern-based development. It will give you a sneak peak at some third-party training resources that will help your development teams adopt these proven techniques in your development organization.

 

Category:: Architecture
6/7/2004 12:00 AM Eastern Daylight Time  |  Comments [0]  |  Disclaimer  |  Permalink   
Wednesday, May 19, 2004

Ah.. It is finally up! New site features include:

  • Redesign of site navigation allowing you to locate patterns & practices titles by viewpoint, guidance type, or audience, and the ability to locate a title in the all releases list alphabetically. 
  • Ability to search exclusively within the patterns & practices site.
  • Enhanced community page including a new GotDotNet workspaces page with individual links to each of the patterns & practices workspaces.
  • New Case Studies page for highlighting customers that are succeeding with patterns & practices.
  • New Events page showing upcoming events where patterns & practices will be participating, upcoming webcasts, as well as all archived webcasts.
And of course you can FINALLY and EASILY find all of the .NET Application Blocks via a direct link from the home page. Direct link to them @ http://www.microsoft.com/resources/practices/code.mspx

The main site can be found @ http://microsoft.com/practices
 
Check it out!
 
Category:: Architecture
5/19/2004 9:12 PM Eastern Daylight Time  |  Comments [4]  |  Disclaimer  |  Permalink   
Saturday, May 15, 2004

Moving to SOA: Practical approaches in Healthcare Level 200
http://go.microsoft.com/fwlink/?linkid=24686
May 18, 2004, 11:00 AM - 12:30 PM Pacific Time
Tim Gruver, Architect Evangelist, Microsoft Corporation

This webcast will focus on practical approaches for migrating to an SOA, while considering the unique challenges of the healthcare industry and government standards.

  
patterns & practices Live: User Interface Process Block Version 2 Level 200
http://go.microsoft.com/fwlink/?linkid=27714
May 20, 2004, 11:00 AM - 12:30 PM Pacific Time
Scott Densmore, SDE, Microsoft Corporation

The User Interface Process (UIP) Application Block, version 2, provides an extensible framework to simplify the process of separating business logic code from the user interface. This webcast will examine using the block to write complex user interface navigation and workflow processes that can be reused in multiple scenarios and extended as your application evolves. UIP Version 2 provides support for both Web Forms and Smart Clients.

[Now Playing: Yaara Yaara - Hum Tum]

Category:: Architecture
5/15/2004 1:16 PM Eastern Daylight Time  |  Comments [0]  |  Disclaimer  |  Permalink   
Thursday, May 13, 2004

This MSDN TV episode is related to the newest release from the patterns & practices team. The topics discussed are memory management, COM Interop and the Dispose pattern.

Check it out @
http://www.microsoft.com/downloads/details.aspx?familyid=9b973ffd-fa90-4ec4-ae05-20f004637e1c

BTW, you can find the online version and a PDF download @
http://msdn.microsoft.com/perf

[Now Playing: The Medley - Mujhse Dosti Karoge]

Category:: Architecture
5/13/2004 3:44 PM Eastern Daylight Time  |  Comments [0]  |  Disclaimer  |  Permalink   
Thursday, May 06, 2004

Integration Patterns from the PAG introduces patterns in the context of the Global Bank integration scenario. This patterns catalog is organized to help you locate the right combination of patterns to apply when solving your integration problem. In addition, the guide introduces a visual model that describes a language of patterns and their relationships.

Note: This preview release is an early look at Integration Patterns to obtain your feedback on the content. This release includes only the first four chapters and the 10 patterns that the chapters discuss. Chapter 5 through Chapter 9 and the remaining patterns will be released within one to two months.
 

[Now Playing: The Medley - Mujhse Dosti Karoge]

Category:: Architecture
5/6/2004 9:29 AM Eastern Daylight Time  |  Comments [0]  |  Disclaimer  |  Permalink   
Wednesday, May 05, 2004

Improving .NET Application Performance and Scalability from the PAG  is now available as a PDF download.

Go get it NOW @
http://www.microsoft.com/downloads/details.aspx?familyid=8a2e454d-f30e-4e72-b531-75384a0f1c47

UPDATE: Online version can be found @ http://msdn.microsoft.com/perf 

[Now Playing: Laila Laila - Samay]

Category:: Architecture
5/5/2004 12:21 PM Eastern Daylight Time  |  Comments [0]  |  Disclaimer  |  Permalink   
Monday, May 03, 2004

Architecting and Building Smart Client Solutions: The Future of Application Development Level 200
http://go.microsoft.com/fwlink/?linkid=27649
May 04, 2004, 11:00 AM - 12:30 PM Pacific Time
Tim Huckaby, CEO, InterKnowlolgy

In Spring of 2003, Tim Huckaby was tasked by Microsoft Norway to develop and deliver a keynote-level "Architecting and Building Smart Client Applications" presentation for the Visual Studio .NET 2003 launch in Oslo. In performing the research to put together the content and demos necessary for a great presentation, Tim discovered multiple instances of inconsistent messaging in smart client application development that still exist today. Even today, Microsoft has multiple conflicting definitions of what a smart client application is, and there are still some very distinct and differing "siloed" opinions of smart client applications within the Microsoft Product Groups. Developers won't want to miss this webcast's demonstrations, which will help demystify these inconsistencies and narrow the definition of a smart client application.

Patterns & Practices Live: .Net Enterprise Solution Patterns Level 200
http://go.microsoft.com/fwlink/?linkid=27657
May 06, 2004, 11:00 AM - 12:30 PM Pacific Time
Robert C. Martin, President, Object Mentor Inc

This webcast presents an overview of the .Net Enterprise Solution Patterns. The concept of patterns will be introduced, and a selected group of patterns will be discussed in depth.

 

Category:: Architecture
5/3/2004 12:19 AM Eastern Daylight Time  |  Comments [0]  |  Disclaimer  |  Permalink   
Friday, April 30, 2004

Issue 3 is out @
http://msdn.microsoft.com/architecture/community/newsletter/default.aspx

"... this newsletter will keep you informed of all that's new on the MSDN Architecture Center as well as upcoming events. We'll continue to bring you features and profiles from Microsoft architecture community, plus a new feature added this issue called "Contemplating Architecture." This feature offers opinions and perspectives from Microsoft architects and members of the Microsoft Architecture Advisory board."

[Now Playing: Ruk Ja O Dil Deewane - Dilwale Dulhania Le Jayenge]

Category:: Architecture
4/30/2004 10:05 PM Eastern Daylight Time  |  Comments [0]  |  Disclaimer  |  Permalink   
Wednesday, April 28, 2004

Patterns & Practices Guide on "Improving .NET Application Performance and Scalability" is now LIVE!

This guide provides end-to-end guidance for managing performance and scalability throughout your application life cycle to reduce risk and lower total cost of ownership. It provides a framework that organizes performance into a handful of prioritized categories where your choices heavily impact performance and scalability success. The logical units of the framework help integrate performance throughout your application life cycle. Information is segmented by roles, including architects, developers, testers, and administrators, to make it more relevant and actionable. This guide provides processes and actionable steps for modeling performance, measuring, testing, and tuning your applications. Expert guidance is also provided for improving the performance of managed code, ASP.NET, Enterprise Services, Web services, Remoting, ADO.NET, XML, and SQL Server.

Check it out @
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag/html/scalenet.asp

Congrats to J.D. Meier, Srinath Vasireddy, Ashish Babbar, and Alex Mackman as well as all of the Microsoft and external reviewers who contributed to this guide!

Do I even need to mention that this amazing tome is put out by the MS PAG? *

* Promote the PAG week continues .... :-)

[Now Playing: Humko Humise Chura Lo - Mohabbatein]

Category:: Architecture
4/28/2004 11:08 PM Eastern Daylight Time  |  Comments [0]  |  Disclaimer  |  Permalink   
Sunday, April 25, 2004

[NOTE: For my non-US readers, Tylenol is a very popular medicine that is taken for headache and fever relief in the US]

I am an unabashed fan of the PAG!

For those who do not know the acronym, the PAG is the Platform Architecture Guidance Group at Microsoft. They are the folks who put out the Patterns & Practices series of books as well the .NET Application Blocks among other things. In a sentence, these are the folks who provide you with the tools and information that demonstrate and document the best practices for implementing the current shipping technology.

Best Practices for Current, Shipping Technology. This is an important distinction.

In a lot of ways the Product Teams at Microsoft live a Rev ahead. They are already working on the next generation (and the one after) of the current technology. When speaking with them the focus often is on what is coming and not on what is currently here. While that is very cool and exciting, it does not address the working concerns of the current technology implementers.

Pop open the latest issue of MSDN Magazine or any of the other .NET trade rags. What do you find these days? Coverage of Visual Studio .NET 2005! Generics in C# 2.0! The magic and the wonder that is Longhorn! Yet these technologies are at best more than a year out. Are you deploying PRODUCTION apps on this technology? Is any Enterprise (other than ones that Microsoft directly supports via its Early Adopter Programs) implementing this technology NOW? The answer is NO! The pain points and the headaches that Enterprises are experiencing are with the current shipping 1.0 or 1.1 .NET Technologies… Heck, many folks are only now thinking of moving to .NET (More on this later..). They have little to no interest in alpha/beta technologies. They have issues that need to be addressed now.

This is where the PAG comes in. They produce the prescription that solves the headaches that Enterprises have RIGHT NOW! They produce the best practices and architecture guidelines that showcase Microsoft technology as being seriously Enterprise ready. Here is a sampling:

  • Application Architecture for .NET
  • Building Secure ASP.NET Applications
  • Enterprise Solution Patterns for .NET
  • Improving Web Application Security
  • Microsoft Exchange 2000 Server Operations Guide
  • .NET Application Blocks
  • Microsoft SQL Server 2000 High Availability Series
  • Shadowfax SOA Reference Application
  • and more…. @ http://www.microsoft.com/resources/practices/

I personally don't think that they get the credit or visibility they truly deserve. The reason of course is that they are not out in front talking about and playing with cool tools and sexy technologies. They are the people who provide the basic blocking and tackling that allows the Quarterback to be a shining star. They do what they do so OTHERS can get the work done. And in that goal, they are immensely successful.

I've been meaning to write about this for some time, but this came up front and center for me very recently. I am currently in the midst of an Architecture consulting gig with a firm that is moving to .NET. I've done this sort of thing before (first time about 2 years ago), when I was the Architect/Technical Lead tasked with implementing .NET for the Fortune 500 Enterprise I was then working at. At that time, a lot of the practices that were implemented were a direct result of my personal knowledge of .NET from working with it from the early beta phases and knowing the right people to ping at Microsoft to get advice on particular issues that I needed help with. What is different now is the breath and depth of material I can tap into from the PAG that make mine and my client's life so much easier. I don't think a day has gone by when we have not reviewed some best practice or implemented something that came out of the PAG. The resources the PAG has provided has allowed my client to have the comfort factor that we are doing the right things with .NET Technologies.

So Kudos and Thank You to Sandy, Shaun, JD, Tom, Ron, Ed, David and the many more folks at PAG.

If you take away one thing from this entry, it is that when you run into issues or need guidance on current technologies, do go over to the PAG site @ http://www.microsoft.com/resources/practices/ and browse over their offerings. I would not be surprised if you come away with answers or pointers to answers that heal YOUR pain!

[Now Playing: Ek Pal Ka Jeena - Kaho Naa Pyar Hai]

Category:: Architecture
4/25/2004 11:13 PM Eastern Daylight Time  |  Comments [4]  |  Disclaimer  |  Permalink   

[Changed my mind just this once, about Longhorn stuff. Only because it is from my favorite people @ the PAG]

The Developer Guide to Migration and Interoperability in "Longhorn" is a patterns & practices "Emerging Practice" that provides developers with a roadmap for how to start preparing for Longhorn today. It addresses these issues from two main vantage points. First, from an architectural perspective, it looks at considerations and decisions that are optimal for establishing an infrastructure for Longhorn applications. Second, from a development perspective, it delves into low-level coding recommendations for when and how to interoperate and/or migrate existing code. These recommendations include new best practices around managed/unmanaged code integration that are relevant to all mixed mode development. The recommendations also include deep discussion on the presentation layer, in terms of migration and interoperability, of Win32, ActiveX, and Windows Forms with the new presentation capabilities in Longhorn. 

Check it out @
http://msdn.microsoft.com/longhorn/understanding/books/migrationguide/

[Now Playing: Tujhe Yaad Na Meri Aayee - Kuch Kuch Hota Hai]

Category:: Architecture
4/25/2004 10:54 PM Eastern Daylight Time  |  Comments [0]  |  Disclaimer  |  Permalink   
Sunday, April 18, 2004

Architecting and Building Smart Client Solutions: The Future of Application Development - Level 200 [1]
April 22, 2004, 9:00 AM - 10:30 AM Pacific Time
Tim Huckaby, CEO, InterKnowlolgy

In Spring of 2003, Tim Huckaby was tasked by Microsoft® Norway to develop and deliver a keynote level "Architecting and Building Smart Client Applications" presentation for the Microsoft® Visual Studio® .NET 2003 launch in Oslo. In performing the research to put together the content and demos necessary for a great presentation, Tim discovered multiple instances of inconsistent messaging in smart client application development that still exists today. Even today, Microsoft has multiple conflicting definitions of what a smart client application is and there are still some very distinct and differing "siloed" opinions of smart client applications within the Microsoft Product Groups. Developers won't want to miss this webcasts demonstrations that will help demystify these inconsistencies and narrow the definition of what a smart client application is.

  
Patterns & Practices Live: P&P Update - Level 200 [2]
April 22, 2004, 11:00 AM - 12:30 PM Pacific Time
Sandy Khaund, Group Product Manager, Microsoft Corporation

This webcast will be a patterns & practices Spring 2004 Update. This is a follow-up to the October 2003 webcast about patterns & practices, the library of guidance and code to help build sound solutions for the .NET Framework. In this webcast, we will provide an overview of the upcoming deliverables provided by patterns & practices (Shadowfax, Performance & Scalability, Integration Patterns) and give you a preview of other activities that the team will be pursuing in the months ahead.

[1] http://go.microsoft.com/fwlink/?linkid=25881
[2] http://go.microsoft.com/fwlink/?linkid=25880

[Now Playing: O Haseena Zulfon Wali - Dil Vil Pyar Vyar]

Category:: Architecture
4/18/2004 11:46 PM Eastern Daylight Time  |  Comments [0]  |  Disclaimer  |  Permalink   

I am in the process of architecting a thick client distributed application that also has application integration business requirements. Looking through the various Distributed Systems Patterns in the Patterns & Practices "Enterprise Solution Patterns using Microsoft .NET v 2.0", the Data Transfer Object (DTO) Pattern maps very well into the path that we have chosen (WinForms <--> WS <--> Biz/Data).

While I was initially looking at implementing the DTO using a typed DataSet, I am concerned with the potential performance hit (Instantiation/ Filling/ Serialization/ Deserialization) when using a DataSet. Also, in this particular use case, the interaction is with a single table. The recommended alternative for better performance in this case is to use a DataReader with strongly typed objects. The implementation of which is supposedly documented in "Implementing DTO in .NET with Serialized Objects". 

But while this is referenced multiple times as a Related Pattern, I can't seem to find it in the book. Is this missing or is it in some other corner of the book that I have not perused as of yet?

[Now Playing: Jaage Jaage - Mere Yaar Ki Shaadi Hai]

Category:: Architecture
4/18/2004 8:33 PM Eastern Daylight Time  |  Comments [1]  |  Disclaimer  |  Permalink   
Thursday, April 15, 2004

Keith Pleas just blogged that the Microsoft Architecture Center has an RSS feed. Subscribed!  You can find it @ http://msdn.microsoft.com/architecture/rss.xml

BTW, Keith is one of the main people on the GAPP (Guidance About Patterns & Practices) Team, a team of third-party subject matter experts that work closely with the PAG (Prescriptive Architecture Guidance) team to create material that promotes and enhances PAG’s Patterns & Practices titles. He is also the guy putting together the Patterns & Practices Summit.

You can find out more about the GAPP in the following On Demand Webcast @
http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032249518&Culture=en-US

More info on the Patterns & Practices Summit @
http://www.pnpsummit.com/

Keith's blog can be found @ http://weblogs.asp.net/kpleas/

[Now Playing: Pehle Kabhi Na Mera Haal - Baghban]

Category:: Architecture
4/15/2004 10:41 PM Eastern Daylight Time  |  Comments [0]  |  Disclaimer  |  Permalink   
Saturday, April 10, 2004

Design and Architecture for .NET Applications - Level 300
http://go.microsoft.com/fwlink/?linkid=25743
April 13, 2004, 11:00 AM - 12:30 PM Pacific Time
Rockford Lhotka, Technology Evangelist and CEO, Magenic Technologies

There are many ways to architect a .NET application. Based on Magenic's architecture experience with .NET at numerous clients, learn which ways work best for Web and Microsoft Windows development. Discover when to use object-oriented designs, and when to use data-centric designs. Find out when to use and not to use Enterprise Services, Remoting, Web services, and other key .NET technologies.

Patterns & Practices Live: Powered by LogicLibrary Logidex - Level 200
http://go.microsoft.com/fwlink/?linkid=25875

April 15, 2004, 11:00 AM - 12:30 PM Pacific Time
Brent Carlson, Vice President of Technology and Co-founder, LogicLibrary

Patterns offer proven solutions to recurring application architecture, design, and implementation problems within a particular context. The Microsoft(r) Platform Architectural Guidance (PAG) Group has developed a number of patterns and best practices for use by architects and developers as they design and build enterprise solutions. The MSDN Logidex .NET Library, powered by LogicLibrary Logidex, provides fast, easy access to the PAG patterns and practices on MSDN. This webcast will use the .NET PetShop reference application to introduce participants to the text and model-based search capabilities of Logidex and to the content of the Logidex .NET Library, showing how the various components of this application are related to PAG-provided patterns and application blocks and to core .NET Framework capabilities.

[Now Playing: Saanwali Si Ek Ladki - Mujhse Dosti Karoge]

Category:: Architecture
4/10/2004 3:40 PM Eastern Daylight Time  |  Comments [0]  |  Disclaimer  |  Permalink   
Friday, April 09, 2004

The Microsoft Patterns & Practices Group has released Version 2.0 of the User Interface Process Application Block.

Overview

The User Interface Process Block V2 or UIP V2 is the next version of one of the most popular application blocks. This block is a reusable code component that builds on the capabilities of the Microsoft .NET Framework to help you separate your business logic code from the user interface. The UIP Application Block is based on the model-view-controller (MVC) pattern. You can use the block to write complex user interface navigation and workflow processes that can be reused in multiple scenarios and extended as your application evolves.

The following features are in the first version of UIP and continue to be part of UIP version 2.

  • Web session resume
  • Web session transfer
  • Reuse of code between application types
  • Development of discrete tasks
  • Storage of state in state persistence providers

The following features are new to UIP version 2:

  • Expanded navigation management
  • Additional state persistence providers
  • Layout managers
  • Enable back-button support
  • Usability enhancements
  • Support for Smart Client Applications, including state persistence using isolated storage
  • New views supported: hosted controls, wizards, and floating windows
  • A number of fixes and enhancements to V1.
 
 
I have updated my complete list of Application Blocks @
http://cyberforge.com/weblog/aniltj/articles/217.aspx
 
Category:: Architecture
4/9/2004 7:10 PM Eastern Daylight Time  |  Comments [0]  |  Disclaimer  |  Permalink   
Tuesday, April 06, 2004

Per Srinath, the Microsoft Patterns & Practices Group has released three chapters (pre-alpha) of the Smart Client Architecture Guide [1]

The chapters are:

  1. Introduction
  2. Offline
  3. Multithreading
This is an opportunity to review and provide input into this guide. Take advantage of it.
 
 
 
Category:: Architecture
4/6/2004 10:39 PM Eastern Daylight Time  |  Comments [0]  |  Disclaimer  |  Permalink   
Monday, March 22, 2004

The Webcast will be held on April 8, 2004, from 11:00 AM to 12:30 PM Pacific Time (GMT-8, US & Canada). It will be led by Jim Newkirk, Development Lead at Microsoft Corporation and co-author of the book Test Driven Development in .NET.
[testdriven.com]

Here is the official blurb:

In Kent Beck's book titled "Test-Driven Development, By Example" he defines Test-Driven Development (TDD) as driving software development with automated tests. He goes further by stating that TDD is governed by two simple rules: Write new code only if an automated test has failed and eliminate duplication. The implications of these two simple rules can proffer a profound change to the way that software is written. Most of the literature to date has bundled TDD along with Extreme Programming (XP). However, the benefits of using TDD are not limited to XP, and can be realized in any programming methodology. This webcast will provide an introduction into TDD, demonstrating how it works and what benefits it provides when used with Microsoft® .NET. The examples shown will use Visual C#® and NUnit.

This is a Patterns & Practices Group Level 400 Webcast. The link to register can be found @ http://go.microsoft.com/fwlink/?LinkId=25871

Category:: Architecture
3/22/2004 8:02 PM Eastern Daylight Time  |  Comments [0]  |  Disclaimer  |  Permalink   
Thursday, March 11, 2004

Maxim Karpov has a weblog @ http://ipattern.com/simpleblog/ in which he discusses .NET Design Patterns, Best Practices and More. Subscribed!

He also has a recent article in which he implements a wrapper class that uses the Abstract Factory Pattern to implement various Crypto Functions [1]

[1] http://ipattern.com/simpleblog/PermLink.aspx?entryid=19

Category:: Architecture
3/11/2004 9:49 AM Eastern Standard Time  |  Comments [0]  |  Disclaimer  |  Permalink   
Tuesday, March 02, 2004

Sandy Khaund, of the MS PAG, is asking for input into the current and future direction of the .NET Application Blocks on his weblog.  Here is a chance to make your views known [1].

[1] http://blogs.msdn.com/sandyk/archive/2004/03/02/82914.aspx

[Now Playing: Sharara - Mere Yaar Ki Shaadi Hai]

Category:: Architecture
3/2/2004 11:10 PM Eastern Standard Time  |  Comments [0]  |  Disclaimer  |  Permalink   

The Offline Application Block, which is intended to serve as an architectural model for developers who want to add offline capabilities to their smart client applications is now available from the MS PAG [1].

The block demonstrates how to:

  • Detect the presence or absence of network connectivity.
  • Cache the required data so that the application can continue to function even when the network connection is not available.
  • Synchronize the client application state and/or data with the server when the network connection becomes available.

I have added the Offline Block to my complete list of .NET Application Blocks [2]

[1] http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag/html/offline.asp
[2] http://cyberforge.com/weblog/aniltj/articles/217.aspx

[Now Playing: Mere Khwabon Main - Dilwale Dulhania Le Jayenge]

Category:: Architecture
3/2/2004 10:55 AM Eastern Standard Time  |  Comments [0]  |  Disclaimer  |  Permalink   
Sunday, February 22, 2004

The Microsoft Architecture Update is a newsletter for business, applications, infrastructure, and technology architects with essential information on current publications, events, and discussions. It is published every other month via email.

The current issue (February 13, 2004) [1] has the following topics: