O documento discute a evolução da programação assíncrona no .NET. Em 3 frases:
A programação assíncrona está se tornando essencial para aplicativos responsivos e escaláveis, com o C# e VB adicionando suporte nativo a programação assíncrona usando keywords como "async" e "await". O documento explica como a programação assíncrona funciona, mantendo a UI responsiva enquanto operações como downloads ocorrem, e como o .NET fornece suporte para essa abordagem.
O documento discute a linguagem de programação PHP, resumindo suas principais características em menos de 3 frases:
PHP é uma linguagem de script popular usada para desenvolvimento web, com vantagens como fácil aprendizagem e código aberto. A linguagem é influenciada por C e usa tags como <?php ?> para executar scripts PHP em páginas HTML.
O documento descreve a biblioteca de validação Respect\Validation para PHP, que fornece mais de 100 regras de validação de forma fluente. Exemplos mostram como validar emails com diferentes frameworks como Zend, Symfony e Illuminate, e como a biblioteca oferece flexibilidade para customizar mensagens de erro e traduzi-las.
Criando APIs usando o micro-framework RespectIvan Rosolen
O documento apresenta como criar uma API RESTful usando o micro-framework PHP Respect. Ele descreve como instalar as dependências do Respect como Config, Relational e Validation e configurar um projeto de exemplo chamado RestBeer para gerenciar recursos de cerveja. Também mostra como implementar rotas para listar, criar, atualizar e remover cervejas usando validação e mapeamento de objetos relacionais.
O documento apresenta os principais conceitos do MongoDB, incluindo sua estrutura de banco de dados não-relacional baseado em documentos JSON e coleções, além de funcionalidades como queries, indexação, agregação e operações CRUD utilizando o Mongo Shell.
Este documento discute as aplicações da linguagem Tcl e Starkits. Ele explica como scripts podem ser interativos, de alto nível e portáteis. Também descreve a sintaxe básica de Tcl, como listas, arrays, dicionários e namespaces funcionam, e como criar aplicações encapsuladas em Starkits.
O documento discute as limitações de gerar relatórios no PHP e apresenta o JasperReports como uma solução. Ele explica como instalar o JasperReports e usar classes Java no PHP através do JavaBridge, e fornece um exemplo de código PHP que gera um relatório PDF usando dados do banco de dados e parâmetros passados através do JasperReports.
O documento descreve funções em PHP, incluindo sua definição e sintaxe, como passar parâmetros por valor e referência, usar valores padrão e criar funções recursivas. Exemplos demonstram como definir, chamar e usar o retorno de funções.
1. Apresentação sobre testes automatizados com TDD (Test Driven Development) por Augusto Pascutti e Nelson Senna. 2. Explicação dos diferentes níveis de teste e o que é TDD. 3. Demonstração prática de TDD ao desenvolver um teste unitário e implementação para salvar emails em uma newsletter.
O documento discute a linguagem de programação PHP, resumindo suas principais características em menos de 3 frases:
PHP é uma linguagem de script popular usada para desenvolvimento web, com vantagens como fácil aprendizagem e código aberto. A linguagem é influenciada por C e usa tags como <?php ?> para executar scripts PHP em páginas HTML.
O documento descreve a biblioteca de validação Respect\Validation para PHP, que fornece mais de 100 regras de validação de forma fluente. Exemplos mostram como validar emails com diferentes frameworks como Zend, Symfony e Illuminate, e como a biblioteca oferece flexibilidade para customizar mensagens de erro e traduzi-las.
Criando APIs usando o micro-framework RespectIvan Rosolen
O documento apresenta como criar uma API RESTful usando o micro-framework PHP Respect. Ele descreve como instalar as dependências do Respect como Config, Relational e Validation e configurar um projeto de exemplo chamado RestBeer para gerenciar recursos de cerveja. Também mostra como implementar rotas para listar, criar, atualizar e remover cervejas usando validação e mapeamento de objetos relacionais.
O documento apresenta os principais conceitos do MongoDB, incluindo sua estrutura de banco de dados não-relacional baseado em documentos JSON e coleções, além de funcionalidades como queries, indexação, agregação e operações CRUD utilizando o Mongo Shell.
Este documento discute as aplicações da linguagem Tcl e Starkits. Ele explica como scripts podem ser interativos, de alto nível e portáteis. Também descreve a sintaxe básica de Tcl, como listas, arrays, dicionários e namespaces funcionam, e como criar aplicações encapsuladas em Starkits.
O documento discute as limitações de gerar relatórios no PHP e apresenta o JasperReports como uma solução. Ele explica como instalar o JasperReports e usar classes Java no PHP através do JavaBridge, e fornece um exemplo de código PHP que gera um relatório PDF usando dados do banco de dados e parâmetros passados através do JasperReports.
O documento descreve funções em PHP, incluindo sua definição e sintaxe, como passar parâmetros por valor e referência, usar valores padrão e criar funções recursivas. Exemplos demonstram como definir, chamar e usar o retorno de funções.
1. Apresentação sobre testes automatizados com TDD (Test Driven Development) por Augusto Pascutti e Nelson Senna. 2. Explicação dos diferentes níveis de teste e o que é TDD. 3. Demonstração prática de TDD ao desenvolver um teste unitário e implementação para salvar emails em uma newsletter.
O documento resume as principais mudanças na versão 1.9 do Ruby em relação à versão 1.8, incluindo:
1) Mudanças na representação de strings e codificações, como a remoção do $KCODE e a introdução de m17n;
2) Melhorias no desempenho de expressões regulares e símbolos;
3) Alterações na classe Date e nos métodos de hash.
JavaScript pode ser usado de forma funcional. O documento discute como funções podem ser tratadas como valores de primeira classe em JavaScript (podem ser passadas como parâmetros e retornadas de outras funções) e apresenta exemplos de high order functions, closure e partial functions.
O documento descreve diferentes tipos de operadores, variáveis e comandos utilizados em shells do Linux, incluindo operadores aritméticos, relacionais, lógicos e de atribuição, variáveis especiais, expansão de variáveis, redirecionamento de entrada e saída e formatadores para comandos como date e printf.
O documento apresenta Guilherme Blanco, desenvolvedor web com mais de 10 anos de experiência que trabalha para a Yahoo! e contribui para vários projetos de código aberto como Doctrine, Zend Framework e Symfony. Ele também introduz o framework Doctrine 2, que é composto por três principais pacotes - Common, DBAL e ORM - para abstração de banco de dados e mapeamento objeto-relacional no PHP.
Aplicações Web com AJAX - Er Galvão AbbottTchelinux
Este documento apresenta a tecnologia AJAX e seu uso para interação entre elementos de formulário, como entre caixas de seleção de estados e cidades. AJAX permite requisições HTTP assíncronas e manipulação de documentos XML para atualizar partes de páginas web sem recarregá-las completamente.
Implementação em ActionScript 3 do Protocolo IRCJosé Travado
Esta classe tem como objetivo estabelecer comunicação com um servidor IRC, receber e enviar mensagens de acordo com o protocolo IRC e disparar eventos aos listeners conforme o significado das mensagens recebidas.
Evento Front End SP - Organizando o JavascriptMichel Ribeiro
O documento fornece 3 dicas principais para escrever códigos JavaScript melhores:
1) Aprenda bem a linguagem JavaScript e seus conceitos-chave.
2) Aplique padrões como o Module Pattern para organizar e encapsular o código.
3) Use arquiteturas como MVC para separar as preocupações da aplicação.
Além disso, fornece dicas gerais como documentar o código, criar arquivos separados, injetar dependências e realizar testes. O objetivo é ajudar a escrever códigos mais
Apresentação sobre a linguagem de expressão (EL) 2.0, que integra os materiais didáticos do curso DAWJ - Desenvolvimento de Aplicativos Web com Servlet e JavaServer Pages, um dos cursos totalmente a distância oferecidos pelo prof. Antonio Passos. Para mais informações, acesse http://www.antoniopassos.com/.
O documento discute como otimizar aplicações Node para o motor V8. Ele explica como o V8 compila código JavaScript para código de máquina nativo e como o Crankshaft e o TurboFan otimizam esse processo. O documento também lista 12 técnicas que podem prejudicar a otimização, como atribuições em argumentos, vazamentos do arguments e uso de for-in em objetos.
O documento discute React, Flux e arquitetura de aplicações front-end. Aborda problemas atuais da web, como desempenho e complexidade do MVC, e como React e Flux podem ajudar a resolver esses problemas através de componentização, estado unidirecional e ciclo de vida de componentes.
O documento discute funções e classes em PHP, começando com a definição e criação de funções, incluindo o uso de parâmetros e retorno de valores. Em seguida, aborda classes, objetos e a criação de classes Pessoa e Conta com atributos e métodos. Por fim, pede para criar esses arquivos de classe e um programa que instancia objetos das classes.
O documento discute programação assíncrona em C# 5, descrevendo como:
1) A programação assíncrona tornou-se essencial para aplicações escaláveis e responsivas;
2) C# 5 introduz novos recursos como "await" e "async" para simplificar a programação assíncrona;
3) Isso permite manter a interface gráfica responsiva enquanto operações longas ocorrem assincronamente.
Aqui são apresentados conceitos básicos sobre o paradigma web. Simples e rápido.
/**Depois que entrei no mundo Java, começei a procurar por conteúdo na internet para estudar, então me deparei com um ótimo site, http://www.argonavis.com.br, de um grande cara chamado Helder Rocha, que disponibiliza este mesmo conteúdo em seu site também. Obrigado pela ajuda a comunidade.*/
1) O documento apresenta um curso sobre PHP, MySQL e MVC, abordando conceitos como linguagem, framework, banco de dados e arquitetura MVC. 2) É apresentado um exemplo simples de implementação de MVC em PHP sem frameworks. 3) O documento também discute conceitos da linguagem PHP como variáveis, tipos, controle de fluxo e orientação a objetos.
O documento apresenta uma agenda de cursos sobre desenvolvimento web com AJAX e WEB 2.0. No primeiro dia, o curso irá cobrir XMLHttpRequest, API DOM, frameworks AJAX como ExtJS e Mootools e exemplo de aplicações. No segundo dia, os alunos irão finalizar um projeto de aplicação WEB 2.0 iniciado no dia anterior e ter uma conclusão sobre o assunto. O documento também fornece detalhes sobre as tecnologias abordadas no curso.
O documento descreve a plataforma .NET da Microsoft. Resumidamente:
(1) A plataforma .NET é uma iniciativa da Microsoft que visa uma plataforma única para desenvolvimento e execução de sistemas e aplicações; (2) O código é compilado em MSIL e executado na CLR interagindo com o framework .NET; (3) Os principais tipos de compilados .NET são EXE, DLL, ASPX e ASMX.
Este documento fornece uma introdução ao AJAX e como ele pode ser usado em aplicações Java. Ele discute o que é AJAX, como fazer requisições ao servidor usando AJAX e frameworks JavaScript que facilitam o desenvolvimento de aplicações AJAX. Além disso, apresenta como AJAX pode ser usado com Java usando DWR.
O documento descreve o uso da tecnologia AJAX para integrar JSP, Servlets e bancos de dados. Ele explica os conceitos básicos de AJAX e como criar um projeto em Java usando NetBeans para recuperar dinamicamente dados de cidades de um banco de dados MySQL através de um Servlet e exibí-los em uma página JSP usando AJAX.
O documento apresenta uma introdução sobre JavaScript, descrevendo-o como uma linguagem de programação utilizada para criar pequenos programas que realizam ações em páginas web. Em seguida, explica conceitos básicos como estrutura de scripts, uso de funções como document.write(), caixas de diálogo e conversão de variáveis. Por fim, aborda brevemente objetos, eventos e funções.
O documento resume as principais mudanças na versão 1.9 do Ruby em relação à versão 1.8, incluindo:
1) Mudanças na representação de strings e codificações, como a remoção do $KCODE e a introdução de m17n;
2) Melhorias no desempenho de expressões regulares e símbolos;
3) Alterações na classe Date e nos métodos de hash.
JavaScript pode ser usado de forma funcional. O documento discute como funções podem ser tratadas como valores de primeira classe em JavaScript (podem ser passadas como parâmetros e retornadas de outras funções) e apresenta exemplos de high order functions, closure e partial functions.
O documento descreve diferentes tipos de operadores, variáveis e comandos utilizados em shells do Linux, incluindo operadores aritméticos, relacionais, lógicos e de atribuição, variáveis especiais, expansão de variáveis, redirecionamento de entrada e saída e formatadores para comandos como date e printf.
O documento apresenta Guilherme Blanco, desenvolvedor web com mais de 10 anos de experiência que trabalha para a Yahoo! e contribui para vários projetos de código aberto como Doctrine, Zend Framework e Symfony. Ele também introduz o framework Doctrine 2, que é composto por três principais pacotes - Common, DBAL e ORM - para abstração de banco de dados e mapeamento objeto-relacional no PHP.
Aplicações Web com AJAX - Er Galvão AbbottTchelinux
Este documento apresenta a tecnologia AJAX e seu uso para interação entre elementos de formulário, como entre caixas de seleção de estados e cidades. AJAX permite requisições HTTP assíncronas e manipulação de documentos XML para atualizar partes de páginas web sem recarregá-las completamente.
Implementação em ActionScript 3 do Protocolo IRCJosé Travado
Esta classe tem como objetivo estabelecer comunicação com um servidor IRC, receber e enviar mensagens de acordo com o protocolo IRC e disparar eventos aos listeners conforme o significado das mensagens recebidas.
Evento Front End SP - Organizando o JavascriptMichel Ribeiro
O documento fornece 3 dicas principais para escrever códigos JavaScript melhores:
1) Aprenda bem a linguagem JavaScript e seus conceitos-chave.
2) Aplique padrões como o Module Pattern para organizar e encapsular o código.
3) Use arquiteturas como MVC para separar as preocupações da aplicação.
Além disso, fornece dicas gerais como documentar o código, criar arquivos separados, injetar dependências e realizar testes. O objetivo é ajudar a escrever códigos mais
Apresentação sobre a linguagem de expressão (EL) 2.0, que integra os materiais didáticos do curso DAWJ - Desenvolvimento de Aplicativos Web com Servlet e JavaServer Pages, um dos cursos totalmente a distância oferecidos pelo prof. Antonio Passos. Para mais informações, acesse http://www.antoniopassos.com/.
O documento discute como otimizar aplicações Node para o motor V8. Ele explica como o V8 compila código JavaScript para código de máquina nativo e como o Crankshaft e o TurboFan otimizam esse processo. O documento também lista 12 técnicas que podem prejudicar a otimização, como atribuições em argumentos, vazamentos do arguments e uso de for-in em objetos.
O documento discute React, Flux e arquitetura de aplicações front-end. Aborda problemas atuais da web, como desempenho e complexidade do MVC, e como React e Flux podem ajudar a resolver esses problemas através de componentização, estado unidirecional e ciclo de vida de componentes.
O documento discute funções e classes em PHP, começando com a definição e criação de funções, incluindo o uso de parâmetros e retorno de valores. Em seguida, aborda classes, objetos e a criação de classes Pessoa e Conta com atributos e métodos. Por fim, pede para criar esses arquivos de classe e um programa que instancia objetos das classes.
O documento discute programação assíncrona em C# 5, descrevendo como:
1) A programação assíncrona tornou-se essencial para aplicações escaláveis e responsivas;
2) C# 5 introduz novos recursos como "await" e "async" para simplificar a programação assíncrona;
3) Isso permite manter a interface gráfica responsiva enquanto operações longas ocorrem assincronamente.
Aqui são apresentados conceitos básicos sobre o paradigma web. Simples e rápido.
/**Depois que entrei no mundo Java, começei a procurar por conteúdo na internet para estudar, então me deparei com um ótimo site, http://www.argonavis.com.br, de um grande cara chamado Helder Rocha, que disponibiliza este mesmo conteúdo em seu site também. Obrigado pela ajuda a comunidade.*/
1) O documento apresenta um curso sobre PHP, MySQL e MVC, abordando conceitos como linguagem, framework, banco de dados e arquitetura MVC. 2) É apresentado um exemplo simples de implementação de MVC em PHP sem frameworks. 3) O documento também discute conceitos da linguagem PHP como variáveis, tipos, controle de fluxo e orientação a objetos.
O documento apresenta uma agenda de cursos sobre desenvolvimento web com AJAX e WEB 2.0. No primeiro dia, o curso irá cobrir XMLHttpRequest, API DOM, frameworks AJAX como ExtJS e Mootools e exemplo de aplicações. No segundo dia, os alunos irão finalizar um projeto de aplicação WEB 2.0 iniciado no dia anterior e ter uma conclusão sobre o assunto. O documento também fornece detalhes sobre as tecnologias abordadas no curso.
O documento descreve a plataforma .NET da Microsoft. Resumidamente:
(1) A plataforma .NET é uma iniciativa da Microsoft que visa uma plataforma única para desenvolvimento e execução de sistemas e aplicações; (2) O código é compilado em MSIL e executado na CLR interagindo com o framework .NET; (3) Os principais tipos de compilados .NET são EXE, DLL, ASPX e ASMX.
Este documento fornece uma introdução ao AJAX e como ele pode ser usado em aplicações Java. Ele discute o que é AJAX, como fazer requisições ao servidor usando AJAX e frameworks JavaScript que facilitam o desenvolvimento de aplicações AJAX. Além disso, apresenta como AJAX pode ser usado com Java usando DWR.
O documento descreve o uso da tecnologia AJAX para integrar JSP, Servlets e bancos de dados. Ele explica os conceitos básicos de AJAX e como criar um projeto em Java usando NetBeans para recuperar dinamicamente dados de cidades de um banco de dados MySQL através de um Servlet e exibí-los em uma página JSP usando AJAX.
O documento apresenta uma introdução sobre JavaScript, descrevendo-o como uma linguagem de programação utilizada para criar pequenos programas que realizam ações em páginas web. Em seguida, explica conceitos básicos como estrutura de scripts, uso de funções como document.write(), caixas de diálogo e conversão de variáveis. Por fim, aborda brevemente objetos, eventos e funções.
Javaone Brazil 2012: Integrando Ext JS 4 com Java EELoiane Groner
O documento discute a integração do framework Ext JS com Java EE, incluindo prós e contras dos diferentes frameworks e cuidados necessários. Ele também apresenta exemplos de arquitetura para projetos que utilizam Ext JS e Java, além de opções para comunicação entre as tecnologias.
O documento apresenta conceitos sobre PHP e AJAX. Resume os principais pontos sobre: 1) como o AJAX permite enviar e receber dados de um servidor sem recarregar a página usando tecnologias como Javascript, XML e HTTP; 2) o objeto XMLHttpRequest que permite fazer requisições assíncronas; 3) um exemplo prático de um mural de recados interativo usando PHP no servidor e AJAX no cliente.
Palestra sobre persistência de dados no SQLite com Room API apresentada no TDC São Paulo 2017 (19/07/2017). O Room é um dos Architectural Components apresentados pelo Google no Google I/O 2017.
Evolução e futuro do uso de paradigmas no JavaScriptJean Carlo Emer
Uma palestra sobre os paradigmas trazidos por bibliotecas e framework como Backbone.js, Angular.js e React. Conheceremos os principais conceitos por trás de programação imperativa, funcional e reativa. Por fim, teremos uma visão clara do quanto evoluímos e o que ainda está por vir na forma e uso da linguagem.
SOLID Os princípios da linguagem orientada a objetoAlberto Monteiro
Este documento discute os princípios da programação orientada a objetos SOLID em Delphi, Ruby e C#. Os princípios abordados incluem Responsabilidade Única, Aberto/Fechado, Substituição de Liskov e Segregação de Interface. O documento explica cada princípio e discute como ele é aplicado nas diferentes linguagens.
KnockoutJS é uma biblioteca JavaScript que simplifica a criação de interfaces web através do padrão MVVM, permitindo a vinculação declarativa entre elementos da interface e o modelo de dados, atualização automática da interface quando o modelo muda e rastreamento de dependências. O documento apresenta os principais conceitos e funcionalidades da biblioteca como bindings, templates e extensões.
Expressões regulares são usadas para identificar padrões em cadeias de caracteres de forma concisa e flexível. O documento discute os metacaracteres e quantificadores usados em expressões regulares como ponto, colchetes, asterisco, mais, chaves e circunflexo para definir, limitar e ancorar padrões. Também aborda a precedência e se quantificadores são gulosos ou não gulosos.
O documento discute Single Page Applications (SPAs), caracterizando-as como aplicações ricas e responsivas que combinam o melhor da web e do desktop. Detalha as características, vantagens e desvantagens das SPAs, bem como sua arquitetura típica.
O documento descreve o framework JavaScript Knockout.js, que utiliza o padrão MVVM e permite a criação de interfaces dinâmicas através de bindings declarativos e rastreamento de dependências entre propriedades observáveis. O framework é flexível e suporta múltiplos navegadores com tamanho pequeno.
O documento discute mudanças ocorridas em algum aspecto da vida. Inicialmente as coisas eram de um jeito, mas depois mudaram para outro jeito. Agora as coisas são de uma terceira maneira.
O documento apresenta conceitos de programação orientada a objetos em JavaScript, abordando objetos literais, o operador new, herança com prototype e polimorfismo. A agenda inclui introdução à linguagem, dicas e referências para aprendizado.
Em um mundo cada vez mais digital, a segurança da informação tornou-se essencial para proteger dados pessoais e empresariais contra ameaças cibernéticas. Nesta apresentação, abordaremos os principais conceitos e práticas de segurança digital, incluindo o reconhecimento de ameaças comuns, como malware e phishing, e a implementação de medidas de proteção e mitigação para vazamento de senhas.
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...Faga1939
Este artigo tem por objetivo apresentar como ocorreu a evolução do consumo e da produção de energia desde a pré-história até os tempos atuais, bem como propor o futuro da energia requerido para o mundo. Da pré-história até o século XVIII predominou o uso de fontes renováveis de energia como a madeira, o vento e a energia hidráulica. Do século XVIII até a era contemporânea, os combustíveis fósseis predominaram com o carvão e o petróleo, mas seu uso chegará ao fim provavelmente a partir do século XXI para evitar a mudança climática catastrófica global resultante de sua utilização ao emitir gases do efeito estufa responsáveis pelo aquecimento global. Com o fim da era dos combustíveis fósseis virá a era das fontes renováveis de energia quando prevalecerá a utilização da energia hidrelétrica, energia solar, energia eólica, energia das marés, energia das ondas, energia geotérmica, energia da biomassa e energia do hidrogênio. Não existem dúvidas de que as atividades humanas sobre a Terra provocam alterações no meio ambiente em que vivemos. Muitos destes impactos ambientais são provenientes da geração, manuseio e uso da energia com o uso de combustíveis fósseis. A principal razão para a existência desses impactos ambientais reside no fato de que o consumo mundial de energia primária proveniente de fontes não renováveis (petróleo, carvão, gás natural e nuclear) corresponde a aproximadamente 88% do total, cabendo apenas 12% às fontes renováveis. Independentemente das várias soluções que venham a ser adotadas para eliminar ou mitigar as causas do efeito estufa, a mais importante ação é, sem dúvidas, a adoção de medidas que contribuam para a eliminação ou redução do consumo de combustíveis fósseis na produção de energia, bem como para seu uso mais eficiente nos transportes, na indústria, na agropecuária e nas cidades (residências e comércio), haja vista que o uso e a produção de energia são responsáveis por 57% dos gases de estufa emitidos pela atividade humana. Neste sentido, é imprescindível a implantação de um sistema de energia sustentável no mundo. Em um sistema de energia sustentável, a matriz energética mundial só deveria contar com fontes de energia limpa e renováveis (hidroelétrica, solar, eólica, hidrogênio, geotérmica, das marés, das ondas e biomassa), não devendo contar, portanto, com o uso dos combustíveis fósseis (petróleo, carvão e gás natural).
Este certificado confirma que Gabriel de Mattos Faustino concluiu com sucesso um curso de 42 horas de Gestão Estratégica de TI - ITIL na Escola Virtual entre 19 de fevereiro de 2014 a 20 de fevereiro de 2014.
As classes de modelagem podem ser comparadas a moldes ou
formas que definem as características e os comportamentos dos
objetos criados a partir delas. Vale traçar um paralelo com o projeto de
um automóvel. Os engenheiros definem as medidas, a quantidade de
portas, a potência do motor, a localização do estepe, dentre outras
descrições necessárias para a fabricação de um veículo
5. Motivação
• Aplicações cada vez mais conectados
– Mais de latência
– Mais problemas de interface do usuário
responsividade
– Mais problemas de escalabilidade
• A programação assíncrona
– Se tornando a obrigatorio em
resposividade, aplicativos escaláveis
– Puro async APIs, por exemplo, JS e Silverlight
7. Assíncrono resumido
• Sincrono Espera o resultado antes de retornar
– string DownloadString(...);
• Assincrono Retorna imediatamente, chama
• callback com resultado
– void DownloadStringAsync(..., Action<string> callback);
• Beneficios
– UI responsiva: Libera a UI
– Escalabilidade: Thread pode ser reutilizada para outras solicitações
8. Síncrona contra Assíncrona
var data = Baixar(...);
Processar(data);
Baixar Processar
BaixarAsync(... , data => {
Processar (data);
});
BaixarAsync Processar
9. Síncrona contra Assíncrona
var data = DownloadData(...);
Baixar(...);
Processar(data);
ProcessData(data);
Baixar Processar
BaixarAsync(... , data => {
Processar (data);
});
Baixar Processar
11. Como isso funciona?
async Task<XElement> GetRssAsync(string url) {
var client = new WebClient();
var task = client.DownloadStringTaskAsync(url);
var text = await task;
var xml = XElement.Parse(text);
return xml;
}
12. Como isso funciona?
async Task<XElement> GetRssAsync(string url) {
var client = new WebClient();
var task =
client.DownloadStringTaskAsync(url);
var text = await task;
var xml = XElement.Parse(text);
return xml;
} Task<XElement> GetRssAsync(string url) {
var client = new WebClient();
var task = client.DownloadStringTaskAsync(url);
return task.ContinueWith(delegate
{
var text = task.Result;
var xml = XElement.Parse(text);
return xml;
});
}
13. Como isso funciona?
async Task<XElement> Task<XElement> GetRssAsync(string url) {
var $builder =
GetRssAsync(string url) { AsyncTaskMethodBuilder<XElement>.Create();
var client = new WebClient(); $state = 0;
var
var task = TaskAwaiter<string> $a1;
Action $resume = delegate {
client.DownloadStringTaskAsync(url); {
try
var text = await task; if ($state == 1) goto L1;
var xml = XElement.Parse(text); var client = new WebClient();
var task = client.DownloadStringTaskAsync(url);
return xml; $a1 = task.GetAwaiter();
} if ($a1.IsCompleted) goto L1;
$state = 1;
$a1.OnCompleted($resume);
return;
L1: var text = $a1.GetResult();
var xml = XElement.Parse(text);
$builder.SetResult(xml);
}
catch (Exception $ex) { $builder.SetException($ex);
}
};
$resume();
return $builder.Task;
}
14. Como isso funciona?
async Task<XElement> Task<XElement> GetRssAsync(string url) {
var $builder =
GetRssAsync(string url) { AsyncTaskMethodBuilder<XElement>.Create();
var client = new WebClient(); $state = 0;
var
var task = TaskAwaiter<string> $a1;
Action $resume = delegate {
client.DownloadStringTaskAsync(url); {
try
var text = await task; if ($state == 1) goto L1;
var xml = XElement.Parse(text); var client = new WebClient();
var task = client.DownloadStringTaskAsync(url);
return xml; $a1 = task.GetAwaiter();
} if ($a1.IsCompleted) goto L1;
$state = 1;
$a1.OnCompleted($resume);
return;
L1: var text = $a1.GetResult();
var xml = XElement.Parse(text);
$builder.SetResult(xml);
}
catch (Exception $ex) { $builder.SetException($ex);
}
};
$resume();
return $builder.Task;
}