Language Integrated Query (LINQ)
Anders Hejlsberg, Microsoft Technical Fellow, eloquently provided the day's Keynote for the Patterns & Practices Summit. Starting with the problem statement "Data != Objects", Anders introduced the Language Integrated Query (LINQ) Project. Targeted at C# 3.0 and VB 2008, LINQ elevates queries, set operations, and transforms to first-class objects using language syntax and libraries -- no new Common Language Runtime required.
LINQ effectively query enables any .NET-based programming language via a class with methods, which allows the use of standard query operators and lambda expressions. LINQ extends to non-native object-oriented technology defined information sources, specifically relational databases using DLINQ, which implements SQL query operations via ADO.NET, and XML providing XQuery/XPath expressive query capability using XLINQ. "Using System.Query" enables adding integrated query methods to types, and projections allow you to use an anonymous class with query-derived data type(s). For more information, see The LINQ Project over on MSDN.
Evolving to Patterns
Jim Newkirk prefaced his "Evolving to Patterns" presentation with contemporary Architect, Christopher Alexander's quotation: "Each pattern is a three-part rule, which expresses a relation between a certain context, a problem, and a solution." He then noted that there are many ways in which to implement such a solution.
Endorsing the value of Design Patterns as valuable tools for original software development, Jim not only recommended a number of notable texts on the subject, but augmented a veritable litany of patterns with anecdotal and practical evidence.
Integration Baseline Architecture
David Trowbridge, an Architect with Microsoft's Platform Architecture Group and lead author of Integration Patterns introduced the Integration Baseline Architecture (IBA). IBA's executable skeletal system is intended to provide a baseline upon which to design an integrated enterprise architecture. It includes a Reference Implementation for a representative vertical business illustrating a complex integration scenario as opposed to siloed applications.
Re-engineering to Support Workflow Processes
Noting that most any significant system embodies workflow, Billy Hollis, an MSDN Regional Director and MSDN Online columnist, provided a real world re-engineering project. He detailed automation of a pharmaceutical distributor's manual processes to illustrate technologies appropriate to workflow, with the caveat that upon implementation the workflow rules are not necessarily complete.
Billy expressed that work "areas" modeled in software are typically queues and work is persisted in queues. Distinguishing Push vs. Pull queues and stating that queues accept any serialized object, he proceeded from general concepts to implementing flow: A container for rules, some static some dynamic, and an engine to implement them. Distinguishing between the capabilities of MSMQ and ServiceBroker, he enlisted the aid of Microsoft's SQL Server MVP, Fernando Guerrero, to demonstrate the ServiceBroker built into SQL Server 2005, as well as describing the Windows Workflow Foundation and BizTalk Server, which was demonstrated by Michael Woods of the Connected Systems Division.
Ed Lafferty, a Test Lead, and Larry Brader, a Software Development Engineer/Tester, both with Patterns & Practices, addressed Architecture Testing at Design Time. Alluding to post-deployment blues, they promoted design-time validation processes, which allows for mid-course corrections early in the life cycle.
Detailing the architecture stack and artifacts, they demonstrated the Application Integration Baseline. They also discussed formation of a cross-functional Test Team as well as architectural testing processes.
Connected Systems Round Table
Several members of the Patterns & Practices team took the stage while others ran microphones for a discussion of services, solutions, and all other things involved with connected systems. With some assistance, the discussion took several turns including activity versus entity services, using MQSeries with .NET applications, and dealing with issues of polling versus other communication standards.
Harry Pierson from Microsoft's Architecture Strategy Team presented his thoughts on the future of the modern developer and how important the skills of an architect will be to insuring job stability as well as business success. He pointed out how the ever changing face of technology doesn't provide a platform for growth for developers, rather that the ability to adapt to that change is the key to a developer's success.