Este post nasceu de um e-mail que respondi a um amigo e acredito que esta possa ser uma dúvida de muitas pessoas, então vamos lá:

A integração Flex + .NET é muito tranquila e você tem várias maneiras de fazer isso:

1) A mais simples delas é via arquivo de texto, utilizando desde simples .TXT até arquivos XML.
Você pode, por exemplo, construir uma página ASPX que ao ser chamada cria um XML dinâmico e você pode fazer essa chamada do Flex. Trabalhar com XML no Flex é uma coisa muito divertida com E4X. Palavras chave para o Flex: HTTPService e URLLoader

2) Utilizando WebServices. Criar WebServices no .NET é uma tarefa muita tranquila de ser feita. Por ser um padrão bem difundido para integração de aplicativos, ele está presente também no Flex. Utilizá-los no Flex também é uma tarefa bem tranquila, dê uma olhada aqui para saber como fazer.

3) Uma forma mais especializada de fazer a comunicação é utilizando um protocolo criado pela Adobe pra comunicação do flashplayer com qualquer linguagem, tipo um webservice, só que bem mais elaborado (lembra bem o WCF). Esse protocolo se chama AMF, existem algumas bibliotecas para .NET como o FluorineFx e WebORB. Eu recomendo dar uma olhada no FluorineFx. Ultimamente todos os projetos que tenho atuado que contam com integração Flex + .NET tenho usado o Fluorine e estou muito satisfeito com ele. Palavras chave para o Flex: RemoteObject

4) Se nada disso atender à sua demanda (duvido muito) você pode partir para uma comunicação mais “baixo nível” apelando para Sockets. Para jogos, por exemplo, que se comunicam com servidores já existentes feito em Java ou C++ é comum a utilização de Sockets. Apesar de ser uma tarefa não tão trivial de ser feita, pois o ideal é ter um certo conhecimento de rede que ajuda muito a entender como funciona essa comunicação, é muito interessante a forma como o Flex (AS3) trabalha com Sockets, vale a pena dar uma olhada.

Recomendo muito que você dê uma olhada nas alternativas 1 e 3 primeiro. 1 para uma comunicação mais simplificada e 3 para algo mais bem elaborado.

Para se ter uma idéia, utilizando a técnica 3, você consegue passar objetos criados por no .NET diretamente para o Flex (obviamente você deverá ter uma classe no Flex com a mesma estrutura criada no .NET).

Você pode estar se perguntando, poxa, mas e por que não utilizar WebServices? Se você tiver que desenvolver o WebService, dê a preferência para o AMF, pois a comunicação é muito mais rápida e você ainda tem a facilidade de passar objetos mais complexos, diferente do WebService que a princípio só dá pra passar tipos mais primitivos. Mas se já tiver os WebServices e for só integrar, de boa, não vamos reinventar a roda, né?