Tech Ed is around the corner. I wanted to provide you an update on the distributed systems portion of Connected Systems Infrastructure track.
The track will be kicked off with a strategic briefing on Microsoft’s connected systems strategy by Charles Fitzgerald. The concept of the office has morphed over the course of the past ten years. Information Workers require connectivity to their corporate services and data while they work and socialize in coffee shops, airports, their homes, on trains, or wherever they may be. Virtual Private Networks are no longer sufficient for facilitating access to critical systems and can often hinder productivity in this faced paced world. People need and want secure, direct access to file-servers, email systems, internal and partner systems through smart client applications and devices. Paralleled with this is the need to connect business partners regardless of geography or bandwidth limitations and for those business partners to be able to establish electronic trust relationships. Foreseeing this demand, Microsoft has been investing in the platform with comprehensive tooling and guidance to enable our customers to build, deploy, maintain, and enhance powerful systems that take advantage of this new age of universal network connectivity. Charles will be discussing these and other industry movements while disclosing Microsoft’s strategy to enable our customer’s to build The Application of the Future.
The Business Process Integration team and the Distributed Systems Group have joined forces this year to educate our customers on Microsoft’s Connected Systems products and technologies. The track is segmented into two virtual tracks. The Distributed Systems (DSG) virtual track which focuses on building applications with the core technologies on the .NET Framework with a special focus on Web services technologies and the Business Process Integration (BPI) virtual track which covers our Host Integration Server, BizTalk Server, and Commerce Server products. For information on the BPI virtual track, see Scott Woodgate’s blog entry here.
The CSI/DSG virtual track is 100% solutions focused and will provide critical training based on best practices for architects, developers and IT Operators. We have an exceptional line-up of internal and external speakers communicating our roadmap and covering the basics to advanced topics for building connected systems following service-oriented design concepts on the .NET Framework today.
Connected Systems Infrastructure Track
Abstract: Connected Systems are becoming pervasive as a result of current economic and technological drivers for companies to be more agile, drive down costs, and integrate heterogeneous, globally dispersed systems. New applications no longer live in single process or machine silos. Applications need to be designed to be a part of a connected network of services to build systems that span multiple machines and reach beyond corporate firewalls. Also, in order to increase an organization's agility when responding to market and changing strategic requirements, the information flow between services that carry out these business operations must be streamlined.
The Connected Systems Infrastructure track is designed to help you understand how to design, implement, secure, deploy, and manage connected systems on the Microsoft platform for automating your companies information flow to achieve streamlined operations and greater levels of business agility. Architects, Developers, and IT Operators will learn about our existing and next generation distributed systems technologies for building Connected Systems covering the Windows Server System, Visual Studio .NET and the .NET Framework (ASP.NET, MSMQ, .NET Remoting, Enterprise Services, WSE), business process management with BizTalk Server, integration of IBM mainframe and midrange systems with Host Integration Server, integration of retail systems with Commerce Server, and our unified messaging infrastructure for Longhorn, Indigo.
Title: Connected Systems: Applications of the Future
Speaker: Charles Fitzgerald
Date/Time: Monday, June 6 3:15 PM - 4:30 PM Room: N 310 A
Abstract: Connected systems are the new application in a service-oriented world. They connect people, information, systems and devices amidst dynamic business conditions. This general session highlights how businesses today are using Web services to adapt to change, accelerate business results and amplify the impact of their people. Learn how other companies are using the latest Microsoft platform software to drive their business and understand the broad Microsoft strategy for connected systems. Understand what connected systems mean for developers, architects, IT professionals and information workers and understand the key enablers for connected systems, including Web services, smart clients, identity management and data management and analysis.
CSI/DSG Breakout Sessions:
Mon, June 6 10:45 AM - 12:00 PM Room: S 220 E
Connected Systems technologies and the .NET Framework, When to use What?
Microsoft offers a variety of programming models that you can use to build connected applications: System.Messaging, Enterprise Services, .NET Remoting, ASP.NET Web Services, and WSE (to name a few). In this talk, you will learn how to choose the right programming model for your scenarios. We will present clear and simple guidance you can use to make these choices. We’ll explain the tradeoffs the guidance embody, in areas ranging from ease-of-use and manageability to versioning, performance, and reach. Rather than just telling you what to use, we intend that you’ll come away from the understanding why we offer this guidance and when it applies to you.
Mon, June 6 1:30 PM - 2:45 PM Room: S 220 E
Introduction to Web Services
Web services are becoming the foundation for building distributed applications. This session explains the fundamental concepts of Web services and explores the .NET Framework’s Web services platform. You will learn the key components of the Web services architecture and the steps for creating and consuming Web services using Visual Studio .NET.
Mon, June 6 3:15 PM - 4:30 PM Room: S 210 B
Programming with System.Net v2.0: API’s You Need to Quickly Build Robust Network Applications
Learn the System.NET classes in v2.0 of the .NET Framework that enable application developers to take advantage of the latest improvements in Windows networking. Drill into specific networking API's for the new features coming down the pipe for email, Web support, security and network awareness. Learn how to build your own Web server with the new HTTP Listener, how to access remote file systems with FTP, about the improvements securing socket communication, and about SMTP for email communication.
Mon, June 6 5:00 PM - 6:15 PM Room: S 220 E
Making sense of Web Services and Microsoft’s Roadmap
Web services walk with a slew of acronyms, specifications, and new vocabulary that can make ones head spin. Regardless of whether you are a Web, Client, Office, VB, or C# developer, this new wave of technology is a must have in your toolset. This session takes a step back and helps you decipher the core concepts behind Web Services Architecture and how these technologies empower you to build Connected Systems. You will walk away from this session with a clear understanding of the Web services protocols and Microsoft’s plans for implementation.
Tues, June 7 10:45 AM - 12:00 PM Room: N 310 A
What's New for Web Services Developers in Visual Studio 2005 and the .NET Framework 2.0
ASP.NET Web services (AKA, ASMX) allow you to build interoperable service endpoints quickly and easily through a declarative programming model. Discover how the .NET Framework 2.0 supports interoperability across heterogeneous systems by providing rich support for the WS-I Basic Profile across the underlying infrastructure and tools. Learn how the .NET Framework 2.0 expands the supporting infrastructure for Web services by providing a flexible hosting model and network-related metadata. Learn how the .NET Framework 2.0 provides custom serialization and type generation by exposing extensibility points to developers for a higher degree of control.
Tues, June 7 1:30 PM - 2:45 PM Room: S 310 G
Beyond the Wizards – A Practical Approach to Web Services Security with WSE
Early adopters of Web services technology relied on SSL as a fallback implementation for security, handling message integrity and privacy. But securing Web services is a multi-faceted problem that requires the implementation of sound IT infrastructure and secured communications across all boundaries - which should include the employment of emerging Web services standards and the appropriate .NET architecture. This session will explain the purpose of WS-Security and how the standards authentication, message integrity and encryption together overcome the limitations of SSL. You’ll learn how WSE 2.0 simplifies the process of securing Web services in a standards-based and interoperable way, how WS-SecurityPolicy configuration reduces the amount of code necessary to realize this goal. Demonstrations will show you how to how to customize WSE 2.0 wizard output as needed to produce a practical solution leveraging the core elements of the WS-Security standard to pass security tokens, authenticate callers, enforce security policies, and ensure the integrity and confidentiality of messages.
Michele Leroux Bustamante
Tues, June 7 3:15 PM - 4:30 PM Room: S 220 E
What's new in Web Services Enhancements (WSE) 3.0?
WSE 2.0 considerably simplified the development and deployment of secure Web services by enabling developers to add message level security to applications built on the principles of service-orientation and the emerging Web Services (WS-*) specifications. This session details the WSE 3.0 release which adds significant new functionality including, enabling the ASMX programming model over multiple transports (e.g. http, tcp), substantially improved security policy to enable common security messaging scenarios, MTOM for message attachments, interoperability with Indigo and conformance to the latest WS specifications. Based around the themes of Visual Studio 2005 integration, cross platform interoperability and standards support, WSE 3.0 release continues to provide a productive and easy to use platform for developing secure web services today.
Tues, June 7 5:00 PM - 6:15 PM Room: S 210 E
Not Really Complicated Asynchronous Messaging Techniques and Technologies
Asynchronous messaging is as powerful as it is difficult. Part of the difficulty is that while they are good tools in the Windows platform today, Windows has a tendency to hide them quite well. The fast and reliable asynchronous messaging technology MSMQ ships with every copy of Windows (including Windows XP Home) and is yet largely ignored by developers. The “Web Service Enhancements” (WSE) extension for ASP.NET Web Services do an great job at providing transport-independent, asynchronous messaging support, but that again seems to be a toolset for the gurus. Communicating asynchronously opens up great possibilities to make applications run faster, make them more responsive and to dramatically increase data throughput. In this session you will learn that writing programs that have asynchronous conversations with each other instead of working in a sequential ping-pong fashion isn’t all that difficult and you will see that your programs don’t need to look entirely awkward if you embrace this style of shaping applications.
Wed, June 8 8:30 AM - 9:45 AM Room: N 310 A
Top ten hands-on tips and tricks for implementing ASP.NET Web Services
With any software, there's the theory and the practice. ASP.NET Web services have been around for almost 5 years now and a lot of lessons have been learned about how to use it effectively. This talk presents concrete tips for building applications that expose services and the clients that consume them. Topics include how to handle complex data types, including results from database queries, the share types across multiple services, how to control the details of your service contract from code without writing WSDL, how to stream data in and out of a service and more. This is a must attend talk for anyone struggling with tough ASMX issues.
Wed, June 8 10:15 AM - 11:30 AM Room: S 210 E
Metadata Soup: Contracts, Models, and Types
The web service wave of technologies have made machine-readable descriptions of code and deployed systems both more widespread and more useful. This session looks at the myriad ways to describe and model distributed systems and services. Topics to be covered include contract-first development, validation and testing, code generation techniques, and the usual gang of three and four letter acronyms: WSDL, ASMX, SDM, XSD, XML, WMI, IMS, MDF and (yes) RDF.
Wed, June 8 2:00 PM - 3:15 PM Room: N 310 H
If you write distributed applications, you use serialization (although you may not know it). This talk will focus on the internal workings of the serialization engines that ship in the .Net Framework and what techniques you can use to get the best results for your applications.
Wed, June 8 3:45 PM - 5:00 PM Room: S 320 G
Versioning services and contracts on the .NET Framework
As Web services continue to become the backbone of our connected systems, developers must plan for the profound ways the messages and their contracts will evolve. Failure to plan for this unavoidable evolution will result in increased maintenance and support costs over the life of the system. Unfortunately, there are a few issues with the .NET Framework 1.x that prevent the implementation of a robust versioning strategy for Web services. After briefly going over these issues, this session will cover the changes in the .NET Framework 2.0 that address these issues. We'll also discuss the goals and rationale behind a solid versioning strategy and things developers can do now in 1.x and in 2.0 to make their versioning transition to Indigo smoother.
Dev and Arch
Wed, June 8 5:30 PM - 6:45 PM Room: N 310 A
Web Services Interoperability
Web Services offer a vision of interoperability between multiple platforms, applications and vendors. But what is the reality? What are the tips and tricks for developing seamless Web Services between Microsoft .NET, IBM WebSphere and BEA WebLogic? How are vendors contributing to the WS-* process, and what does this mean to you? In this session we’ll be answering these questions and more – showing the promise of interoperability using Web Services and discussing best practices for implementing these in your own applications.
Simon Guest; Gurpreet Pall
Thurs, June 9 8:30 AM - 9:45 AM Room: N 220 A
Troubleshooting Connected Systems on the .NET Framework
This talk will walk you through the best tips and tricks for monitoring what your ASMX, ES, and MSMQ app is – or isn’t quite – doing after deployment, and how to use this information for fine-tuning it. You’ll learn the approaches that help you control what’s happening in your datacenter, and also get some insights into how Indigo is approaching the configuration, troubleshooting and monitoring problem space.
Shy Cohen; Richard Turner
Dev, IT Pro
Thurs, June 9 10:15 AM - 11:30 AM Room: S 220 E
Introducing System.Transactions and new Features
.NET 1.1 offered developers two transactional programming models: explicit local transaction management or declarative use of the DTC via Enterprise Services. Both models have their advantages: the first is straightforward and the second supports distribution and integration with Enterprise Services. However, both have disadvantages and neither one is superior to the other in every respect. Version 2.0 of the .NET framework introduces an exciting new transactional programming model available in the System.Transactions namespace which offers the advantages of both models while separating the programming model from the transaction management, and even enabling distribution without changes to the application code. This talk starts by briefly describing the traditional programming models and the motivation for the new model, then presenting System.Transactions, its features and its promoting capabilities, and some advance features such as concurrency management and cloning.
Thurs, June 9 1:30 PM - 2:45 PM Room: S 210 B
Retry, Abort, Cancel? Appropriate Handling of Transaction Failures in Connected Systems Application Code.
Transaction technology solely exists for a single reason: Stuff happens to fail every so often. However, while transaction technology has been around for quite a while and an increasing number of people is “seeing the light”, many applications are not doing a particularly good job at dealing with transactions that actually do fail. In fact, most applications that use transactions have no mechanism to figure out whether a transaction has actually failed and if they do, the often resort to punting the problem to the user instead of making any effort to fix these issues automatically. Especially with distributed transactions, a transaction might indeed fail several seconds or minutes after any user-level code has executed and the program has forgotten about the fact that the transaction has ever executed. In this session you will learn about many reasons for why transactions might fail, we will look at bullet-proof techniques to learn about the outcome of transactions and about how to act on that information and you will also learn about techniques that make it embarrassingly easy to deal with and automatically recover from temporary causes for transaction failures such as high lock contention and deadlocks.
Thurs, June 9 3:15 PM - 4:30 PM Room: S 320 G
My Home is my Castle: Hosting Applications - Why you care about Threads, AppDomains, and Processes
Is a console app not enough for my 24/7 app? Some think that implementing and testing core code is enough for running today's modern applications. A good process model and hosting environment is a fundamental base for reliable, secure, and robust applications. Windows and .NET provide a number of choices for hosting including Enterprise Services/COM+, ASMX/IIS, MSMQ, SQL Server, or a custom application like a Windows Service. In this session we will investigate the advantages and disadvantages of each process model and give guidance on which of them is the best choice for your problem. We will talk about reliability, monitoring, security and other core topics impacted by your choice of hosting models. In essence, we talk about threads, application domains, and processes - and why you should care. Because there is more to a successful application than just '.EXE'.
Fri, June 10 9:00 AM - 10:15 AM Room: N 310 H
Designing Connected Applications with the .NET Framework and an eye on the future.
Ask yourself a question. Are you or have you considered building applications with WebMethods, WSE, .NET Remoting, Enterprise Services, and/or System.Messaging? If you answered yes, take our word for it, someday you’ll want to be building those same sorts of applications with Indigo. You need some advice today to smooth the transition between now and then. Fortunately, there is this talk, and that’s what it’s about. We talk about the ideas that motivate Indigo, and how you can apply them to your existing designs. We talk about architectural and development practices that are salutary in any case, but will be particularly beneficial when you decide to co-exist with and/or evolve to Indigo.
Fri, June 10 10:45 AM - 12:00 PM Room: N 220 A
Building Distributed Applications Today with an Eye on the Future
Are you, or have you considered building applications with ASMX, WSE, .NET Remoting, Enterprise Services, and/or System.Messaging? If your answer is yes, take our word for it, someday you'll want to be building those same sorts of applications with Indigo. You need some advice today to smooth the transition between now and then. In this session, we discuss the ideas that motivate Indigo, and how you can apply them to your existing designs. We talk about architectural and development practices that are salutary in any case, but will be particularly beneficial when you decide to co-exist with and/or evolve to Indigo.
Fri, June 10 1:00 PM - 2:15 PM Room: N 220 A
Optimizing Scalability, Performance and Availability with Systems Built on the .NET Framework
Creating and operating distributed and service-oriented applications provides new challenges for scalability, performance and availability. In this session, you will learn the performance and scalability implications of technologies like ASP.NET Web Services, .NET Remoting, Enterprise Services, MSMQ, and the Web Services Enhancements (WSE). This session helps you to gauge the differences in performance and scalability between certain technologies and to establish a strong technical foundation for your own applications. In addition to this, you will also learn how you can take advantage of availability- and throughput-increasing features which are built right into the Windows Server operating system. Or did you know that creating a failover and load-balancing cluster with Windows Server System takes only about 15 mouse clicks without the need for special hardware?
Cabana: The Cabana enables attendees to socialize and have whiteboard discussions with the experts. After all of the talks, speakers will be available in the Cabana areas to have drill-down discussion on topics covered in their talk or topics of customer’s choice.
Pavilion Presence: The DSG virtual track will have two booths at the event
Station # 33 .NET Framework: WSE, ASMX, MSMQ, Enterprise Services, and .NET Remoting
Abstract: Looking to build mission critical applications and services today? Come and get your questions answered on the options you can use to build, deploy and manage connected applications and services today using ASMX, WSE, MSMQ, Enterprise Services, and .NET Remoting.
Station # 35 .NET Framework: Indigo
Abstract: What is “Indigo” and how does it impact the way you think about connected systems development today and in the future? Come and learn how ASMX, WSE, MSMQ, Enterprise Services, and .NET Remoting are unified as a unified framework for building interoperable, secure, reliable, and transacted services on the .NET Framework in the “Longhorn” timeframe.
Hands on Labs:
CSI14 Web Services Enhancements v2.0: Security and Policy
Learn how to secure Web services without writing code, how to author security policies, and how to leverage the WSE programming model to secure you Web services. Learn how to write your own authorization models and how to sign and encrypt message parts using WS-Security. For extra credit, learn how to negotiate down to a Security Context Token for lighter conversations between two established parties.
CSI15 Hello world with the Indigo Programming Model
This lab provides you with an introduction to Indigo, Microsoft’s next generation connected system development tool. Learn how easy it will be to build a simple service-oriented application. Explore how to implement and version data contracts and one-way messaging.
CSI16 Using System.Transaction to Write Reliable Applications
This lab shows you how to use System.Transaction to improve the reliability of any type of application. Learn how to keep in-memory collection classes (like hashtable) in an always consistent state, across faults and errors. See how different types of resources, such as collection classes, database and remote components, easily integrate within a transaction to ensure consistency across all these resources.
CSI17 Creating a Transacted Resource Using System.Transaction
In this lab, learn how to write a simple in-memory resource manager that integrates with System.Transaction. Learn how to enlist your resource manager with the Lightweight Transaction Manager, and how to react to commit and abort notifications.
CSI18 Queued Applications with System.Messaging
This lab teaches you how to use System.Messaging to perform various Message Queuing tasks. Learn how to create and use a queue, as well as how to do transactional, secure and HTTP Messaging.
CSI19 Using .NET Remoting
Learn how to create and consume .NET Remoting clients and servers using Visual Studio 2005 and .NET Framework 2.0. In addition to the basic of .NET Remoting, the new features in .NET Remoting for .NET Framework 2.0 will be utilized, including the secure TcpChannel and the new IpcChannel for same-box communications. This lab is a must for existing .NET Remoting developers looking for features to improve their existing .NET Remoting applications.
CSI20 How to Use Enterprise Services through the .NET Framework
This lab introduces you to Enterprise Services, which makes COM+ services available to your .NET applications. In this exercise, create a class library and console test application using Visual Basics .NET or Visual C#. Further, the exercise shows you how to use Transaction, Object Pooling, and Just-in-Time Activation services of COM+.
CSI21 Creating and Using Web Services with Visual Basic or C# Using Visual Studio 2005 and the .NET Framework 2.0
This lab shows you how to create your first Web service and then extend it to use complex data types using Visual Studio .NET and perform initial testing of the Web service. Also, learn how to create simple and asynchronous client applications using Visual Studio.
CSI22 Web Services Enhancements v2.0 Messaging
Learn how to incorporate WS-Addressing and the use of intermediaries in your Web services applications using WSE's lightweight messaging infrastructure. Learn how to do basic one-way and request/response messaging with the messaging APIs over multiple transports. For extra credit, learn how to build your own peer to peer instant messaging program.
Birds of a Feather Sessions:
BOF020 Contract-First Web Services: Step-by-Step
Day/Time: Tuesday, June 7 7:45 PM - 8:45 PM Room: S 321
Speaker(s): Aaron Skonnard
Session Type(s): Birds of a Feather
Join Tim Ewald and Aaron Skonnard for an engaging discussion on the merits of contract-first development techniques using ASMX and WSE today. We discuss the various concepts and issues surrounding contract-first development, the motivation for using it (revolving primarily around increased interoperability and simplified versioning), and the current tool situation. Then we cover practical step-by-step techniques for employing contract-first development using today's tools including those found in the .NET Framework, Visual Studio .NET (including Whitehorse), and those provided by third-parties such as WSCF, which fill the remaining voids. A hybrid technique is also presented that offers a nice compromise between interop and productivity given the current tool situation.
BOF030 Preparing for Indigo
Day/Time: Tuesday, June 7 9:00 PM - 10:00 PM Room: S 321
Speaker(s): Juval Lowy
Indigo is the next generation application connectivity and services from Microsoft, superseding the variety of .NET connectivity solutions available today: ASMX Web services, Remoting and Enterprise Services. Since the .NET debut some five years ago, all three technologies have been inundated in either hype or misconceptions. Come discuss with Juval Lowy, a software legend and Indigo insider, how to best prepare for Indigo, and what Indigo means for your career, business, and the industry as a whole.
BOF032 Migrating ASMX to Indigo
Day/Time: Wednesday, June 8 6:30 PM - 7:30 PM Room: Track Cabana 02
This session hones in on the Indigo migration story, focusing primarily on the technical details of moving your existing ASMX code-base forward. We also look at where WSE 2.0 and WSE 3.0 fit into the overall migration picture, and provide guidance on how to best position today's systems for the future of Indigo.