

Note: This article was created based on Flex 2. Minor changes in the description and code may be necessary before it can be applied to Flex 3.
With the advent of the Flex development framework, developers can finally create the rich web-based, platform-independent applications they've always wanted. Such applications typically require data integration, which is necessary for any use case that requires keeping track of users, conducting authentication, or saving a user's data. You can use local data storage, but without the persistence and centralization brought by client-server communication, the application couldn't store large amounts of data, provide data to users regardless of where they log on, or expose the user to a community.
It is unsurprising, then, that the Flex framework actually comes equipped with multiple methods of client-server communication. If you've been looking for a way for your Flex clients to communicate with your .NET back end or for a comparison of the various communication methods, then this is the article for you. This article covers three methods of request/response communication. HTTP services provide a way to retrieve XML and text from static and dynamic server pages. Web services let clients call web methods that return objects. Remoting allows you to call functions on the server, and sending and receiving typed objects both ways. Through the course of this article, you will learn how and when to use each, as well as see a practical comparison of the three.
Flash Player also natively supports other communication mechanisms including raw HTTP requests and socket connections; however, they are outside the scope of this article. This article strictly covers the most common request/response-style communication used in enterprise applications. Other methods may be helpful in specific situations, but also have a variety of drawbacks including different performance and scalability characteristics.
.NET platform, C#, and basic Flex
Denis Sosnovtsev is a rising junior undergraduate Computer Science student at the University of Maryland at College Park. He is currently employed as a software engineering intern at Atellis, a Washington, DC area software engineering firm specializing in the development of rich Internet applications (RIAs).
Alexey Vedernikov is a senior undergraduate student majoring in Computer Science at the University of Maryland, College Park. He is pursuing a software engineering internship at B-Line Medical (Atellis), a software development company located in Washington, DC metro area.