O padrão Event-based Asynchronous Pattern (EAP) corresponde a uma evolução do padrão IAsyncResult Pattern ou Asynchronous Programming Model (APM) para programação assíncrona na plataforma .NET.
O documento apresenta os principais conceitos do modelo de programação assíncrona (APM), incluindo como implementar operações assíncronas usando os métodos Begin/End e as propriedades relacionadas como AsyncState, AsyncWaitHandle, CompletedSynchronously e IsCompleted. Referências adicionais sobre APM são fornecidas no final.
Invocação Remota de Procedimentos (RPC)elliando dias
O documento descreve o modelo de programação cliente-servidor RPC (Invocação Remota de Procedimentos). Ele explica como definir interfaces RPC, gerar stubs, implementar código de servidor e cliente, e compilar e executar um programa RPC simples "Olá Mundo".
O documento apresenta um exemplo de código Java que demonstra o clone de objetos. Nele, um objeto é clonado usando o método clone() e é mostrado que o objeto clonado possui referência diferente do objeto original, indicando que se trata de objetos distintos.
Stored Procedures com PostgreSQL: porque usar.Atmos Maciel
Nesta apresentação é levantado uma discussão a respeito do uso de functions dentro do banco de dados utilizando o PostgreSQL, abordando de forma sucinta os pós e consequentemente os contras, ao se decidir usar essa prática.
1) O documento descreve os principais recursos do PowerShell, incluindo a execução de comandos, criação de funções e scripts, uso de parâmetros e variáveis.
2) É possível criar variáveis de diferentes tipos e escopos, além de variáveis de ambiente.
3) O PowerShell suporta estruturas condicionais como if/else e switch para tomar decisões durante a execução.
[1] O documento descreve estruturas condicionais e de repetição em C++, como IF/ELSE, SWITCH, FOR e WHILE.
[2] Inclui exemplos de código para demonstrar o uso dessas estruturas, como contagens e tomadas de decisão baseadas em entradas do usuário.
[3] O blog discute essas estruturas como forma de controlar fluxos de programação e definir caminhos diferentes com base em condições avaliadas.
Tornado mais do que um framework bonitinhoMarcel Nicolay
Palestra feita no Mutirão PyCursos 2013, ela tem como objetivo introduzir os aspectos do non-blocking I/O aplicados ao desenvolvimento web e mostrar como o Tornado pode lhe ajudar a construir soluções mais completas.
O Tornado é um framework web non-blocking escrito para lidar com milhares de conexões simultâneas. Iremos conhecer as camadas mais baixas do framework (ioloop, iostream, stack_context, gen, timers, ...) entender como elas funcionam e como podemos utilizá-las.
1. O documento discute tópicos sobre concorrência e paralelismo em Java, incluindo criação e controle de threads, acesso exclusivo, ciclo de vida de aplicações, variáveis atômicas e travas.
2. É introduzido o framework Fork/Join, que permite paralelizar tarefas recursivas usando a estratégia "dividir para conquistar" em CPUs multi-core.
3. São explicados conceitos como work stealing, onde threads roubam tarefas de outras filas para executar, melhorando a performance.
O documento apresenta os principais conceitos do modelo de programação assíncrona (APM), incluindo como implementar operações assíncronas usando os métodos Begin/End e as propriedades relacionadas como AsyncState, AsyncWaitHandle, CompletedSynchronously e IsCompleted. Referências adicionais sobre APM são fornecidas no final.
Invocação Remota de Procedimentos (RPC)elliando dias
O documento descreve o modelo de programação cliente-servidor RPC (Invocação Remota de Procedimentos). Ele explica como definir interfaces RPC, gerar stubs, implementar código de servidor e cliente, e compilar e executar um programa RPC simples "Olá Mundo".
O documento apresenta um exemplo de código Java que demonstra o clone de objetos. Nele, um objeto é clonado usando o método clone() e é mostrado que o objeto clonado possui referência diferente do objeto original, indicando que se trata de objetos distintos.
Stored Procedures com PostgreSQL: porque usar.Atmos Maciel
Nesta apresentação é levantado uma discussão a respeito do uso de functions dentro do banco de dados utilizando o PostgreSQL, abordando de forma sucinta os pós e consequentemente os contras, ao se decidir usar essa prática.
1) O documento descreve os principais recursos do PowerShell, incluindo a execução de comandos, criação de funções e scripts, uso de parâmetros e variáveis.
2) É possível criar variáveis de diferentes tipos e escopos, além de variáveis de ambiente.
3) O PowerShell suporta estruturas condicionais como if/else e switch para tomar decisões durante a execução.
[1] O documento descreve estruturas condicionais e de repetição em C++, como IF/ELSE, SWITCH, FOR e WHILE.
[2] Inclui exemplos de código para demonstrar o uso dessas estruturas, como contagens e tomadas de decisão baseadas em entradas do usuário.
[3] O blog discute essas estruturas como forma de controlar fluxos de programação e definir caminhos diferentes com base em condições avaliadas.
Tornado mais do que um framework bonitinhoMarcel Nicolay
Palestra feita no Mutirão PyCursos 2013, ela tem como objetivo introduzir os aspectos do non-blocking I/O aplicados ao desenvolvimento web e mostrar como o Tornado pode lhe ajudar a construir soluções mais completas.
O Tornado é um framework web non-blocking escrito para lidar com milhares de conexões simultâneas. Iremos conhecer as camadas mais baixas do framework (ioloop, iostream, stack_context, gen, timers, ...) entender como elas funcionam e como podemos utilizá-las.
1. O documento discute tópicos sobre concorrência e paralelismo em Java, incluindo criação e controle de threads, acesso exclusivo, ciclo de vida de aplicações, variáveis atômicas e travas.
2. É introduzido o framework Fork/Join, que permite paralelizar tarefas recursivas usando a estratégia "dividir para conquistar" em CPUs multi-core.
3. São explicados conceitos como work stealing, onde threads roubam tarefas de outras filas para executar, melhorando a performance.
1) O documento discute técnicas de teste de software, especificamente o uso de mocks para isolar unidades de teste e tornar os testes menos frágeis.
2) Vários problemas em testes são identificados, como testes com muitas dependências, testes frágeis e escondidos, e propostas de como mocks podem ajudar a resolver esses problemas.
3) Diferentes estilos de teste, como behavior driven development, são apresentados como forma de criar testes mais declarativos.
O documento descreve o padrão de projeto Command. Ele encapsula solicitações como objetos comando que contêm toda a informação necessária para executar uma ação ou acionar um objeto. Um invocador pode executar diferentes comandos sem saber o que eles realmente fazem. Isso permite parametrizar clientes, enfileirar comandos e desfazer ações.
O documento discute TDD (Desenvolvimento Guiado por Testes) em C++, abordando verificação de estado através de testes de unidade e verificação de comportamento usando mocks. É apresentado o framework Yaffut para execução de testes e o HippoMocks para criação automática de mocks, facilitando a simulação de objetos em testes.
O documento discute TDD (Desenvolvimento Guiado por Testes) em C++, abordando verificação de estado através de testes de unidade e verificação de comportamento usando mocks. É apresentado o framework Yaffut para execução de testes e o HippoMocks para criação automática de mocks, facilitando a simulação de objetos em testes.
O documento explica os principais conceitos e ferramentas para acesso a bancos de dados relacionais usando JDBC no Java, incluindo interfaces como Connection e Statement, PreparedStatement, CallableStatement, transações, isolamento de transações e tipos de ResultSets.
The Developer's Conference (TDC) 2013 - São Paulo: Programação assíncrona com...Rogério Moraes de Carvalho
1) O documento discute programação assíncrona com C# e .NET Framework 4.5 usando o padrão Task-based Asynchronous Pattern (TAP).
2) Apresenta três demos mostrando TAP, async e await, cancelamento e progresso.
3) Fornece links para documentação sobre TAP, implementação e consumo de padrões assíncronos.
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.
RMI permite que objetos Java se comuniquem através de uma rede, permitindo que métodos sejam chamados remotamente em outros computadores. Um exemplo é um sistema bancário onde terminais podem requisitar informações de clientes de um servidor central. RMI encapsula as requisições em objetos stub e skeleton para codificar e decodificar parâmetros e retornos entre cliente e servidor.
Zope é um sistema de gerenciamento de conteúdo e aplicações web open source que permite desenvolvimento rápido de sites dinâmicos através de ferramentas como DTML, Python e bancos de dados relacionais. Ele oferece funcionalidades como versionamento, controle de acesso e persistência automática de objetos. Zope também possui integração com padrões como XML-RPC e SOAP, permitindo acesso remoto a objetos Zope através de linguagens como Java e Python.
O documento discute programação reativa e como o RxJS pode ser usado para criar códigos não bloqueantes e reativos. Explica como observáveis permitem cancelar requisições e lidar com streams de dados de forma flexível, ao contrário de callbacks e promises. Também mostra como operadores como switchMap, debounceTime e distinctUntilChanged podem ser usados para manipular observáveis de forma reativa.
O documento discute conceitos avançados de PHP orientado a objetos (OOP) em 3 frases:
1) Apresenta técnicas de tratamento de erros como exceptions, error_log() e debug_backtrace();
2) Discute serialização e desserialização para armazenar e recuperar objetos;
3) Propõe um projeto de leitor RSS que aplica o modelo three-tier e OOP em PHP.
O documento discute frameworks e implementações para execução concorrente de tarefas em Java, incluindo Executors, ExecutorService, ThreadPoolExecutor, CompletionService e CompletableFuture. Ele explica como submeter tarefas para execução, obter resultados e controlar a finalização de threads.
Já parou para pensar em como/por que você está respirando agora? Para muitos essa atividade é tão banal que não fazem idéia do trabalho que seu corpo tem para coordenar e executar várias ações para a simples atividade de respirar. Nesta palestra pretendo falar um pouco sobre alguns desafios vividos durante 2 anos de desenvolvimento e aperfeiçoamento de um simulador virtual de ventilação mecânica voltado para ensino na área da saúde, o xlung.
O documento discute o uso de coleções em ambientes concorrentes em Java, abordando: 1) Coleções imutáveis que podem ser usadas sem travas; 2) Coleções sincronizadas que fornecem acesso thread-safe; 3) Algoritmos concorrentes do pacote java.util.concurrent que reduzem o uso de travamento.
O documento apresenta um módulo de treinamento em ASP.NET e C#, abordando tópicos como declaração de variáveis, tipos de dados, operadores, lógica de controle, arrays, métodos e tratamento de exceções.
Este documento apresenta conceitos sobre SQL e stored procedures. Inicialmente descreve um exemplo de programa em Pascal que usa SQL embutido para selecionar e imprimir informações de um empregado. Em seguida, explica o conceito de cursor para permitir que linguagens de programação processem tuplas retornadas por consultas SQL. Por fim, apresenta detalhes sobre como criar e usar stored procedures em SQL/PSM e PL/SQL.
O documento discute interfaces em Java. Uma interface define métodos que classes implementadoras devem implementar, permitindo desacoplamento e reuso de código. Exemplos mostram interfaces para elementos gráficos e tipos de pagamento sendo implementadas por classes específicas.
O documento discute recursão em Prolog, apresentando:
1) Uma explicação de como a recursão funciona, com cada chamada à regra criando uma nova cópia com variáveis únicas;
2) Um exemplo detalhado mostrando como escrever um predicado recursivo para encontrar objetos aninhados;
3) Como a recursão é executada passo a passo em diferentes níveis através da unificação de variáveis entre as regras.
O documento resume conceitos básicos de PHP, incluindo sintaxe, variáveis, arrays, estruturas de controle, funções e inclusão de arquivos. É apresentado o uso de comentários, variáveis, tipos booleanos, operadores, arrays, estruturas de repetição e controle como if/else e foreach, além de funções built-in e inclusão de arquivos.
O padrão Task-based Asynchronous Pattern (TAP) corresponde a uma evolução do padrão Event-based Asynchronous Pattern (EAP) para programação assíncrona na plataforma .NET.
O suporte a funções assíncronas será incorporado à linguagem C# na versão 5. Para isto, serão introduzidas duas novas palavras-chaves na linguagem: async e await.
A evolução da linguagem C#
Linguagem C# 1.0 – Sistema de tipos
Linguagem C# 1.0 – Memória e instruções
Linguagem C# 1.0 – Herança e membros de classe
Linguagem C# 1.0 – Atributos e outros recursos
Principais novidades da linguagem C# 2.0 – Generics e Iterators
Principais novidades da linguagem C# 2.0 – Tipos parciais e anuláveis
Principais novidades da linguagem C# 2.0 – Métodos anônimos e ::
Principais novidades da linguagem C# 2.0 – Classes estáticas e mais
Principais novidades da linguagem C# 3.0 – Principais inovações
Principais novidades da linguagem C# 3.0 – LINQ
Principais novidades da linguagem C# 4.0 – Parâmetros opcionais e nomeados
Principais novidades da linguagem C# 4.0 – Interoperabilidade com COM
Principais novidades da linguagem C# 4.0 – Objetos com tipagem dinâmica
Principais novidades da linguagem C# 4.0 – Covariância e contravariância
Principais novidades da linguagem C# 5 – Task-based Asynchronous Pattern (TAP)
Principais novidades da linguagem C# 5 – Versão assíncrona via TAP
Principais novidades da linguagem C# 5 – Funções assíncronas
Principais novidades da linguagem C# 5 – Windows Runtime
Principais novidades da linguagem C# 5 – async e await
Demo – Explorando as novidades da linguagem C# 5
Projeto Roslyn – Compilador como um serviço
Principais novidades do projeto Roslyn – Compiler-as-a-Service (CaaS)
Principais novidades do projeto Roslyn – APIs para o CaaS
Community Technology Preview – Microsoft “Roslyn” CTP
A linguagem C# está em evolução constante – Resumo
1) O documento discute técnicas de teste de software, especificamente o uso de mocks para isolar unidades de teste e tornar os testes menos frágeis.
2) Vários problemas em testes são identificados, como testes com muitas dependências, testes frágeis e escondidos, e propostas de como mocks podem ajudar a resolver esses problemas.
3) Diferentes estilos de teste, como behavior driven development, são apresentados como forma de criar testes mais declarativos.
O documento descreve o padrão de projeto Command. Ele encapsula solicitações como objetos comando que contêm toda a informação necessária para executar uma ação ou acionar um objeto. Um invocador pode executar diferentes comandos sem saber o que eles realmente fazem. Isso permite parametrizar clientes, enfileirar comandos e desfazer ações.
O documento discute TDD (Desenvolvimento Guiado por Testes) em C++, abordando verificação de estado através de testes de unidade e verificação de comportamento usando mocks. É apresentado o framework Yaffut para execução de testes e o HippoMocks para criação automática de mocks, facilitando a simulação de objetos em testes.
O documento discute TDD (Desenvolvimento Guiado por Testes) em C++, abordando verificação de estado através de testes de unidade e verificação de comportamento usando mocks. É apresentado o framework Yaffut para execução de testes e o HippoMocks para criação automática de mocks, facilitando a simulação de objetos em testes.
O documento explica os principais conceitos e ferramentas para acesso a bancos de dados relacionais usando JDBC no Java, incluindo interfaces como Connection e Statement, PreparedStatement, CallableStatement, transações, isolamento de transações e tipos de ResultSets.
The Developer's Conference (TDC) 2013 - São Paulo: Programação assíncrona com...Rogério Moraes de Carvalho
1) O documento discute programação assíncrona com C# e .NET Framework 4.5 usando o padrão Task-based Asynchronous Pattern (TAP).
2) Apresenta três demos mostrando TAP, async e await, cancelamento e progresso.
3) Fornece links para documentação sobre TAP, implementação e consumo de padrões assíncronos.
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.
RMI permite que objetos Java se comuniquem através de uma rede, permitindo que métodos sejam chamados remotamente em outros computadores. Um exemplo é um sistema bancário onde terminais podem requisitar informações de clientes de um servidor central. RMI encapsula as requisições em objetos stub e skeleton para codificar e decodificar parâmetros e retornos entre cliente e servidor.
Zope é um sistema de gerenciamento de conteúdo e aplicações web open source que permite desenvolvimento rápido de sites dinâmicos através de ferramentas como DTML, Python e bancos de dados relacionais. Ele oferece funcionalidades como versionamento, controle de acesso e persistência automática de objetos. Zope também possui integração com padrões como XML-RPC e SOAP, permitindo acesso remoto a objetos Zope através de linguagens como Java e Python.
O documento discute programação reativa e como o RxJS pode ser usado para criar códigos não bloqueantes e reativos. Explica como observáveis permitem cancelar requisições e lidar com streams de dados de forma flexível, ao contrário de callbacks e promises. Também mostra como operadores como switchMap, debounceTime e distinctUntilChanged podem ser usados para manipular observáveis de forma reativa.
O documento discute conceitos avançados de PHP orientado a objetos (OOP) em 3 frases:
1) Apresenta técnicas de tratamento de erros como exceptions, error_log() e debug_backtrace();
2) Discute serialização e desserialização para armazenar e recuperar objetos;
3) Propõe um projeto de leitor RSS que aplica o modelo three-tier e OOP em PHP.
O documento discute frameworks e implementações para execução concorrente de tarefas em Java, incluindo Executors, ExecutorService, ThreadPoolExecutor, CompletionService e CompletableFuture. Ele explica como submeter tarefas para execução, obter resultados e controlar a finalização de threads.
Já parou para pensar em como/por que você está respirando agora? Para muitos essa atividade é tão banal que não fazem idéia do trabalho que seu corpo tem para coordenar e executar várias ações para a simples atividade de respirar. Nesta palestra pretendo falar um pouco sobre alguns desafios vividos durante 2 anos de desenvolvimento e aperfeiçoamento de um simulador virtual de ventilação mecânica voltado para ensino na área da saúde, o xlung.
O documento discute o uso de coleções em ambientes concorrentes em Java, abordando: 1) Coleções imutáveis que podem ser usadas sem travas; 2) Coleções sincronizadas que fornecem acesso thread-safe; 3) Algoritmos concorrentes do pacote java.util.concurrent que reduzem o uso de travamento.
O documento apresenta um módulo de treinamento em ASP.NET e C#, abordando tópicos como declaração de variáveis, tipos de dados, operadores, lógica de controle, arrays, métodos e tratamento de exceções.
Este documento apresenta conceitos sobre SQL e stored procedures. Inicialmente descreve um exemplo de programa em Pascal que usa SQL embutido para selecionar e imprimir informações de um empregado. Em seguida, explica o conceito de cursor para permitir que linguagens de programação processem tuplas retornadas por consultas SQL. Por fim, apresenta detalhes sobre como criar e usar stored procedures em SQL/PSM e PL/SQL.
O documento discute interfaces em Java. Uma interface define métodos que classes implementadoras devem implementar, permitindo desacoplamento e reuso de código. Exemplos mostram interfaces para elementos gráficos e tipos de pagamento sendo implementadas por classes específicas.
O documento discute recursão em Prolog, apresentando:
1) Uma explicação de como a recursão funciona, com cada chamada à regra criando uma nova cópia com variáveis únicas;
2) Um exemplo detalhado mostrando como escrever um predicado recursivo para encontrar objetos aninhados;
3) Como a recursão é executada passo a passo em diferentes níveis através da unificação de variáveis entre as regras.
O documento resume conceitos básicos de PHP, incluindo sintaxe, variáveis, arrays, estruturas de controle, funções e inclusão de arquivos. É apresentado o uso de comentários, variáveis, tipos booleanos, operadores, arrays, estruturas de repetição e controle como if/else e foreach, além de funções built-in e inclusão de arquivos.
O padrão Task-based Asynchronous Pattern (TAP) corresponde a uma evolução do padrão Event-based Asynchronous Pattern (EAP) para programação assíncrona na plataforma .NET.
O suporte a funções assíncronas será incorporado à linguagem C# na versão 5. Para isto, serão introduzidas duas novas palavras-chaves na linguagem: async e await.
A evolução da linguagem C#
Linguagem C# 1.0 – Sistema de tipos
Linguagem C# 1.0 – Memória e instruções
Linguagem C# 1.0 – Herança e membros de classe
Linguagem C# 1.0 – Atributos e outros recursos
Principais novidades da linguagem C# 2.0 – Generics e Iterators
Principais novidades da linguagem C# 2.0 – Tipos parciais e anuláveis
Principais novidades da linguagem C# 2.0 – Métodos anônimos e ::
Principais novidades da linguagem C# 2.0 – Classes estáticas e mais
Principais novidades da linguagem C# 3.0 – Principais inovações
Principais novidades da linguagem C# 3.0 – LINQ
Principais novidades da linguagem C# 4.0 – Parâmetros opcionais e nomeados
Principais novidades da linguagem C# 4.0 – Interoperabilidade com COM
Principais novidades da linguagem C# 4.0 – Objetos com tipagem dinâmica
Principais novidades da linguagem C# 4.0 – Covariância e contravariância
Principais novidades da linguagem C# 5 – Task-based Asynchronous Pattern (TAP)
Principais novidades da linguagem C# 5 – Versão assíncrona via TAP
Principais novidades da linguagem C# 5 – Funções assíncronas
Principais novidades da linguagem C# 5 – Windows Runtime
Principais novidades da linguagem C# 5 – async e await
Demo – Explorando as novidades da linguagem C# 5
Projeto Roslyn – Compilador como um serviço
Principais novidades do projeto Roslyn – Compiler-as-a-Service (CaaS)
Principais novidades do projeto Roslyn – APIs para o CaaS
Community Technology Preview – Microsoft “Roslyn” CTP
A linguagem C# está em evolução constante – Resumo
TDC 2012 Goiânia: Trilha Windows Phone / Windows 8 - Desenvolvimento de apps ...Rogério Moraes de Carvalho
Nesta palestra, eu apresentei informações de como usar os seus conhecimentos de desenvolvimento Web para construir apps para publicação na nova Windows Store do Windows 8 usando HTML5, CSS3 e JavaScript. Eu abordei os seguintes tópicos:
Windows Cliente: Evolução
Windows 8
Microsoft Surface
Demo – Windows 8
Windows Store apps
Linguagens suportadas
Windows Runtime (WinRT)
Ferramentas
Licença de desenvolvedor
Demo – Licença
Projetos JavaScript
Demo – Projeto JavaScript
Links úteis
O documento discute as principais características da linguagem JavaScript e ECMAScript, incluindo sua história, conceitos, orientação a objetos, e novidades da ECMAScript 5. Ele também aborda tópicos como usos comuns de JavaScript, objetos pré-definidos, operadores, instruções de controle de fluxo e tratamento de erros.
No dia 27 de março de 2013, das 10h15 às 11h30, eu apresentei a palestra "Suporte a padrões Web no Internet Explorer 10 e outros browsers, em múltiplas plataformas e em múltiplos dispositivos" no evento MVP Virtual Conference 2013.
Na palestra, eu mostrei o suporte a alguns dos principais recursos de HTML5, CSS3 e JavaScript nas versões mais recentes dos principais browsers (Internet Explorer, Chrome, Firefox, Safari e Opera), em múltiplas plataformas (Windows 8, Mac OS X Mountain Lion, Ubuntu Linux) e em múltiplos dispositivos (desktops, notebooks, ultrabooks, netbooks, smartphones e tablets).
HTML5 + CSS3 em múltiplos browsers, em múltiplas plataformas e em múltiplos d...Rogério Moraes de Carvalho
O documento apresenta os recursos HTML5, CSS3 e suporte multiplataforma, com demonstrações de elementos semânticos como header e article em HTML5, seletores e efeitos como sombra e transição em CSS3, e compatibilidade em múltiplos browsers, sistemas e dispositivos.
The Developer's Conference (TDC) 2013 - Florianópolis: HTML5 + CSS3 em múlti...Rogério Moraes de Carvalho
O documento discute as novas tecnologias HTML5 e CSS3, demonstrando como elas fornecem recursos semânticos, seletores e propriedades avançadas para melhorar a formatação e suporte multiplataforma em múltiplos navegadores e dispositivos.
MVP Virtual Conference (MVP V-Conf) 2015: Executando ASP.NET MVC 6 no Mac OS ...Rogério Moraes de Carvalho
O MVP Virtual Conference (MVP V-Conf) é um novo evento virtual de dois dias apresentado por especialistas em tecnologia independentes que utilizam tecnologias da Microsoft diariamente. Conecte-se e veja o que a comunidade de usuários avançados está dizendo sobre o mundo de possibilidades mobile-first, cloud-first com tecnologias Microsoft reestruturadas.
Seguem as 5 trilhas do evento:
- IT Pro Track (English)
- Developer Track (English)
- Consumer Track (English)
- LATAM Track (Spanish)
- Brazil Track (Portuguese)
Na minha palestra, eu apresentei informações sobre como executar ASP.NET MVC 6 no Mac OS X e no Linux. A ideia foi apresentar um passo a passo de como configurar os sistemas operacionais Mac OS X e Linux para desenvolvimento de aplicações ASP.NET MVC 6, e ASP.NET 5 em geral.
Eu apresentei os seguintes tópicos na minha palestra:
- .NET no Linux e no Mac OS X
- ASP.NET 5 e ASP.NET MVC 6
- Visual Studio Code
- Linha de produtos Visual Studio 2015
- Ambientes de desenvolvimento
- Tecnologia de contêiner
- Suporte atual em Linux e Mac OS X
- Demonstração e recursos adicionais
TechEd Brasil 2011: DEV 303 - Atualizando suas habilidades de programação com...Rogério Moraes de Carvalho
O documento discute as principais atualizações e novidades das versões da linguagem de programação C#, desde a versão 1.0 até a versão 5 e o projeto Roslyn. O texto descreve recursos como generics, LINQ, programação assíncrona com async e await, e o novo modelo de compilador do .NET chamado Compiler as a Service.
SQLSaturday #253 | Brasília 2013 - Mapeamento Objeto-Relacional com o Entity ...Rogério Moraes de Carvalho
Este documento discute o mapeamento objeto-relacional com o Entity Framework. Apresenta as principais características do Entity Framework 5 e demonstra suas abordagens de desenvolvimento, incluindo Database First, Model First e Code First. Também fornece uma visão geral das novidades esperadas para o Entity Framework 6.
Nesta palestra, eu apresentei um resumo das principais novas características e melhorias do .NET Framework 4.5 para desenvolvedores da plataforma .NET. Eu abordei os seguintes tópicos:
O .NET Framework
.NET Framework: Versões
Linguagem C#: Versões
Suporte a async & await
Biblioteca de classes portátil
.NET para Windows Store apps
Entity Framework 5
ASP.NET Web Forms 4.5
ASP.NET MVC 4
Windows Communication Foundation (WCF) 4.5
Windows Presentation Foundation (WPF) 4.5
Windows Workflow Foundation (WF) 4.5
Melhorias na Base Class Library
Links úteis
Informações sobre as seguintes linguagens de programação: C, C++, Objective-C, Java, JavaScript, Ruby, PHP e C#. Exposição de algumas aplicações destas linguagens em desenvolvimento: de sistemas operacionais (sistemas baseados em UNIX e Windows), desktop (Windows, Mac OS X e Linux), Web (do lado do servidor e do lado do cliente), para smartphones e tablets (Android, iOS, Windows Phone, Windows Store apps), para a nuvem (Amazon Web Services, Windows Azure, Google App Engine), de jogos para múltiplas plataformas, etc.
O documento descreve a evolução da linguagem C# ao longo de suas versões, desde a versão 1.0 em 2002 até a versão mais recente no projeto Roslyn. As principais novidades incluem: suporte a generics, LINQ, parâmetros opcionais, tipos dinâmicos, programação assíncrona e novas APIs no compilador Roslyn.
O documento apresenta as principais características da Plataforma de compiladores .NET ("Roslyn"), C# 6 e Visual Studio "14": 1) O projeto "Roslyn" é a nova implementação dos compiladores C# e Visual Basic feita em C# e Visual Basic com APIs públicas; 2) C# 6 introduz novos recursos como construtores primários, propriedades automáticas e expressões nameof; 3) Visual Studio "14" integra o "Roslyn" e traz melhorias na depuração e refatoração.
The Developer’s Conference (TDC) 2015 Florianópolis: O Entity Framework 7 na ...Rogério Moraes de Carvalho
O documento discute o Entity Framework 7, incluindo: (1) O que é o EF7 e como ele fornece uma experiência semelhante ao EF anterior mas é mais leve; (2) A evolução do EF das versões anteriores para o EF7; (3) As novas plataformas e fontes de dados suportadas pelo EF7.
TechEd Brasil 2011: WEB 302 - Presente e futuro da linguagem de programação J...Rogério Moraes de Carvalho
Nesta palestra, eu apresentei uma introdução à linguagem de programação <strong>JavaScript</strong>, sua evolução, sua padronização de acordo com a especificação <strong>ECMA-262</strong> (linguagem <strong>ECMAScript</strong>), principais usos da linguagem, alguns dos principais conceitos da linguagem, programação orientada a objetos com JavaScript e algumas das novidades da <strong>ECMAScript 5</strong>. Além disto, eu também apresentei estatísticas de uso dos 5 principais browsers da atualidade e o suporte dos principais browsers do mercado ao ECMAScript 5.
Programação assíncrona com C# 5 no Visual Studio 2013 [MVP ShowCast 2013 - DE...Rogério Moraes de Carvalho
O documento apresenta uma sessão sobre programação assíncrona com C# 5 no Visual Studio 2013. A agenda inclui padrões assíncronos no .NET Framework 4.5.1, o padrão Task-based Asynchronous Pattern (TAP) e os operadores async e await. Duas demonstrações são apresentadas, cobrindo TAP, async e await, além de cancelamento e progresso.
O documento apresenta uma palestra sobre as novas tecnologias .NET Core, ASP.NET Core e Entity Framework Core. Aborda os principais conceitos como arquitetura modular e multiplataforma destas tecnologias, ferramentas como .NET Core CLI e Visual Studio Code, além de recursos como Entity Framework Code First e ASP.NET Core MVC.
No dia 28 de novembro de 2012, eu apresentei a palestra "Desenvolvimento para dispositivos móveis - iOS, Android, Windows Phone, Windows 8 e Firefox OS". A palestra foi escolhida democraticamente, dentre várias opções disponíveis, numa votação entre os alunos da instituição. O objetivo principal da minha apresentação foi dar uma visão geral das principais plataformas de desenvolvimento para dispositivos móveis disponíveis no mercado atualmente, além de uma com potencial: Firefox OS.
O documento discute erros e casos excepcionais em Java, incluindo conceitos, representação, criação, detecção e tratamento. Aborda exceções Java, asserções Java e boas práticas, incluindo segurança.
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.
Akka - Uma plataforma para o desenvolvimento de sistemas concorrentes e distr...Daniel Sobral
Apresentação sobre programação de sistemas concorrentes usando Akka, em Java e Scala, apresentada na QConSP 2011.
Ementa:
Conheça Akka, uma plataforma para o JVM para desenvolvimento de sistemas concorrentes e/ou distribuídos através do paradigma de Atores.
Descreveremos o paradigma de atores, suas vantagens e desvantagens, e mostraremos exemplos da API em Java e em Scala, com execução local e distribuída, memória transacional e tolerância a falhas.
O documento resume alguns padrões de projeto comumente usados na programação de jogos, como Command, Flyweight, Observer, Prototype, States e Singleton. Ele também discute brevemente outros padrões como Double Buffer, Game Loop, Update Method e Component e fornece referências adicionais sobre design de jogos.
O documento fornece diretrizes sobre melhores práticas para classes, métodos, exceções e uso de strings e coleções em Java. As principais diretrizes incluem: (1) dar acesso restrito às classes e variáveis, (2) preferir composição à herança, (3) validar parâmetros, documentar métodos e tratar exceções adequadamente, (4) evitar uso desnecessário de null e strings imutáveis.
O documento discute técnicas para trabalhar com JSON no Android, incluindo bibliotecas como GSON, Jackson e implementações padrão. Também aborda tópicos como cache, performance e debug de aplicativos.
Workshop de introdução ao rápida a linguagem JavaScript, a plataforma Node.js e o framework Socket.IO.
Nesta talk é apresentado suas principais características, de forma prática, contando um exercício sobre orientação a objetos com javascript e um exercício sobre criação de um microblog realtime usando Socket.IO.
Palestra sobre Javascript realizada no primeiro ciclo do Plano de Geração de Conhecimento realizado em outubro de 2013, no LEMAF - Universidade Federal de Lavras.
O Plano de geração de conhecimento é um trabalho realizado para tutoria de desenvolvedores com estagiários no estudo de tecnologias, com o objetivo de disseminação de conhecimento.
Palestra ministrada por Fernando Simeone, Carlos Eduardo Chessi Melo, Eduardo Assis da Silva e José Henrique Santos Andrade .
### Atualização 20/02/2015
Palestra melhorada, com algumas correções. Reapresentada por Fernando Simeone e Carlos Eduardo Chessi Melo na SETI (Semana de Tecnologia da Informação) na Universidade Federal de Lavras.
AspectJ — Programação orientada a aspectos em Javaelliando dias
O documento discute a programação orientada a aspectos (AOP) usando AspectJ para melhorar a modularidade de um sistema de saúde distribuído. A implementação original tinha código entrelaçado e espalhado relacionado à distribuição. Com AspectJ, aspectos de distribuição encapsularam essa preocupação transversal, separando-a do código de negócios e tornando o sistema mais extensível e reutilizável.
Javascript não é só um linguagem de apoio a web, ela é muito mais do que isso, ela pode ser utilizada muito bem no lugar de tantas outras, desde que você saiba o verdadeiro potencial dela. Nesta apresentação eu coloco vários atributos introduzidos e possibilitados no ECMA5.
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.
TDC2016POA | Trilha Android - Testes no Androidtdc-globalcode
O documento discute testes no Android, abordando conceitos como mocks, frameworks de teste, organização de testes e como testar dependências externas. Ele também fornece dicas sobre por onde começar a escrever testes e como garantir uma execução tranquila.
TDC2016POA | Trilha Android - Testes no Androidtdc-globalcode
O documento discute conceitos e práticas de testes no Android, incluindo: 1) razões para escrever testes como garantir funcionamento e documentar comportamento; 2) tipos de testes como unitários e de interface do usuário; 3) ferramentas para testes como JUnit, Espresso e Mockito.
O documento descreve as características da programação orientada a objetos em Objective-C, incluindo a definição de classes, encapsulamento, herança, ciclo de vida de objetos e a classe NSString. É explicado como definir propriedades, getters e setters e como enviar mensagens entre objetos.
Como ser programador durante o dia e mesmo assim dormir bem à noiteComunidade NetPonto
O documento apresenta exemplos de logs de uma aplicação SVN que registam as ações dos utilizadores no repositório. São apresentadas duas formas de fazer logging: de forma errada, apenas registando mensagens de erro, e de forma correta, usando uma biblioteca de logging estruturada e gravando logs de diferentes níveis. É explicado como a instrumentação e testes automatizados ajudam a detetar e corrigir problemas mais rapidamente.
1) O documento descreve a tecnologia AJAX e como é implementada no framework ASP.NET AJAX.
2) AJAX permite atualizações assíncronas de páginas web para melhorar a experiência do utilizador.
3) O framework ASP.NET AJAX facilita o desenvolvimento de aplicações AJAX utilizando controlos como UpdatePanel.
O documento discute conceitos avançados de JavaScript, incluindo:
1) Variáveis e referências, como variáveis podem referenciar objetos, arrays e valores primitivos;
2) Objetos, como representam conjuntos de propriedades e métodos, e podem ser usados para representar dados;
3) Funções, incluindo funções anônimas, argumentos, invocação com call e apply.
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.*/
O documento discute criação de scripts CLI em PHP, abordando tópicos como:
1) Lidar com argumentos, streams e roteamento de comandos;
2) Gerenciar início e término de robôs usando pcntl ou pthreads;
3) Criar códigos reutilizáveis em diferentes ambientes.
O documento discute técnicas de teste de software, como o desenvolvimento guiado por testes (TDD) e o uso de frameworks de mock como o Mockito. Ele explica como criar mocks e espiões para isolar unidades de teste e validar comportamentos. Também aborda ferramentas do Spring para testar controllers e simular requisições HTTP.
Semelhante a Event-based Asynchronous Pattern (EAP) (20)
Na palestra "Docker com ASP.NET Core e Hospedagem no Azure", eu apresentei uma visão geral sobre contêineres, o Docker, o ASP.NET Core, Docker em contêineres Windows, Suporte a Dcoker no Azure, Visual Studio 2017 & Docker e Recursos para estudo.
Na minha palestra, eu apresentei as iniciativas da Microsoft para levar a plataforma de desenvolvimento Web ASP.NET para múltiplas plataformas, incluindo Linux e macOS, além do Windows. O novo .NET Core multiplataforma com suas ferramentas de linha de commando (.NET Core CLI), o novo padrão .NET Platform Standard e como funciona o .NET Core da codificação à execução. Eu abordei o ASP.NET Core, uma nova implementação da tecnologia de desenvolvimento Web ASP.NET para ser multiplataforma, muito mais rápida, leve e modular. Finalmente, eu apresentei uma série de Recursos para estudo.
1. O documento discute tecnologias relacionadas a XML e seu uso no SQL Server, incluindo noções básicas de XML, XPath, XQuery, XSLT, SVG, MathML e XML Schema.
2. É apresentado o suporte nativo do SQL Server para armazenamento e processamento de dados XML, incluindo o tipo de dado xml e XML Schema Collections.
3. São demonstrados exemplos de uso de XQuery para consultar dados XML armazenados e métodos do tipo xml no SQL Server.
A versão final (RTM) do novo framework .NET Core 1.0 foi lançada em 27 de junho de 2016. Veja os recursos do .NET Core 1.0 para desenvolver aplicações web com ASP.NET Core, aplicações Console e aplicações para Universal Windows Platform (UWP). Desenvolva no seu sistema operacional predileto: Windows, Mac OS X ou Linux. E veja qual a relação existe entre o novo framework .NET Core multiplataforma e o .NET Framework tradicional para Windows.
A versão final (RTM) do ASP.NET Core 1.0 também foi lançada em 27 de junho de 2016. Veja os recursos do ASP.NET Core 1.0 para desenvolver aplicações web com ASP.NET Core MVC e serviços web com ASP.NET Core Web API no seu sistema operacional predileto: Windows, Mac OS X ou Linux. Além disso, veja aplicações web ASP.NET Core 1.0 executando em servidores Windows, Linux e contêineres Docker. E veja qual a relação existe entre as novas aplicações ASP.NET Core e as anteriores: aplicações ASP.NET tradicionais, incluindo: ASP.NET Web Forms, ASP.NET MVC e ASP.NET Web Pages.
A versão final (RTM) do novo framework .NET Core 1.0 foi lançada em 27 de junho de 2016. Veja os recursos do .NET Core 1.0 para desenvolver aplicações web com ASP.NET Core, aplicações Console e aplicações para Universal Windows Platform (UWP). Desenvolva no seu sistema operacional predileto: Windows, Mac OS X ou Linux. E veja qual a relação existe entre o novo framework .NET Core multiplataforma e o .NET Framework tradicional para Windows.
A versão final (RTM) do ASP.NET Core 1.0 também foi lançada em 27 de junho de 2016. Veja os recursos do ASP.NET Core 1.0 para desenvolver aplicações web com ASP.NET Core MVC e serviços web com ASP.NET Core Web API no seu sistema operacional predileto: Windows, Mac OS X ou Linux. Além disso, veja aplicações web ASP.NET Core 1.0 executando em servidores Windows, Linux e contêineres Docker. E veja qual a relação existe entre as novas aplicações ASP.NET Core e as anteriores: aplicações ASP.NET tradicionais, incluindo: ASP.NET Web Forms, ASP.NET MVC e ASP.NET Web Pages.
Há pouco mais de um ano, o time de projeto da C# 7 na Microsoft está planejando, debatendo, experimentando e testando as ideias dos próximos recursos a serem incorporados na próxima versão da linguagem. A palestra tem como objetivo explorar o que esperar de um futuro próximo da linguagem.
Hoje, dia 21 de maio de 2016, eu apresentei a palestra: Um novo .NET multiplataforma:
ASP.NET Core, .NET Core e Entity Framework Core. As informações foram atualizadas com informações dos recém-lançados: ASP.NET Core RC2, .NET Core RC2 e Entity Framework Core RC2. A tão esperada versão Release Candidate 2 (RC2) foi liberada há apenas 5 dias: no dia 16 de maio de 2016. A versão final (RTM) está planejada para ser liberada até o final de junho de 2016.
Os anúncios do ASP.NET Core RC2, .NET Core RC2, Entity Framework Core RC2 e .NET Core SDK Preview 1 podem ser lidos em dois posts no blog do time de engenheiros .NET da Microsoft, em inglês: Announcing .NET Core RC2 and .NET Core SDK Preview 1 e Announcing Entity Framework Core RC2.
Eu apresentarei a palestra “ASP.NET Core, .NET Core e EF Core: multiplataforma e otimizados para a nuvem” na edição de Brasília. Veja nesta palestra, as novidades mais recentes das novas plataformas de desenvolvimento multiplataforma da Microsoft:
- ASP.NET Core 1.0 (anteriormente chamado de ASP.NET Core 5), que é o novo framework de desenvolvimento web multiplataforma da Microsoft que contém o ASP.NET Core MVC (anteriormente chamado de ASP.NET MVC 6) que, agora, está integrado com o ASP.NET Core Web API.
- .NET Core 1.0 (anteriormente chamado de .NET Core 5), novo framework de uso geral que contém um subconjunto do .NET Framework e outras APIs únicas.
- Entity Framework Core 1.0 (anteriormente chamado de Entity Framework 7), que é o novo framework de mapeamento objeto relacional da Microsoft e não somente isso, pois há extensões para suporta acesso a bancos de dados NoSQL, dentre outros paradigmas de acesso a dados.
Agenda:
- Debate inicial
- Suas experiências: XML e SQL Server
- XML e tecnologias relacionadas
- O que é XML?
- XML bem-formado
- XML Schema e XML válido
- XPath e XQuery
- Algumas aplicações de XML
- Suporte XML no SQL Server
- Tipo de dado XML nativo
- XML Schema Collections
- Métodos do tipo de dados XML
- Cláusula FOR XML
- Debate final
- Minhas experiências: XML e SQL Server
Agenda:
- Plataforma de compiladores .NET & Visual Studio 2015
- Plataforma de compiladores .NET (“Roslyn”)
- Evolução do projeto “Roslyn”
- Linha de produtos comerciais do Visual Studio 2015
- Linha de produtos gratuitos do Visual Studio 2015
- Visual Studio Online e Visual Studio Code
- Visual Studio 2015 RTM
- Novidades da linguagem de programação C# 6
- Construtores primários (C# 7)
- Avanços em propriedades automáticas
- Atribuição de propriedades automáticas somente com get no construtor
- using estático
- await em blocos catch e finally
- Filtros de exceção
- Operadores nulos-condicionais
- Expressões nameof
- Expressões de declaração (C# 7)
- Expressões de corpo em membros de função
- Iniciadores de índice
- Literais binários e separadores de dígitos (C# 7)
- Interpolação de strings
- Ferramentas e documentação
- Recursos adicionais
Palestra "Plataforma de compiladores .NET, C# 6 e Visual Studio 2015" apresentada no dia 25 de abril de 2015 no evento Global Azure Bootcamp 2015 da Microsoft.
O documento discute o mapeamento objeto-relacional com o Entity Framework, incluindo suas características, abordagens de desenvolvimento, novidades da versão 5 e o que esperar da versão 6.
O documento discute padrões web multiplataforma como HTML5, CSS3 e JavaScript, suporte a múltiplas plataformas no Windows Azure para hospedagem de aplicações, e padrões de interoperabilidade no Windows Server 2012 e IIS 8.
C# está em constante evolução para melhor atender às necessidades dos desenvolvedores. As principais atualizações incluem: suporte a generics, LINQ, programação assíncrona, tipos dinâmicos e interoperabilidade melhorada. O projeto Roslyn da Microsoft visa tornar os compiladores C# e VB abertos através de APIs, permitindo novas funcionalidades como refatoração de código e meta-programação.
8. public delegate void AsyncCompletedEventHandler(
object sender,
AsyncCompletedEventArgs e
)
8
9. Membro Descrição
Propriedade booleana que indica quando uma
Cancelled { get; }
operação assíncrona foi cancelada
Propriedade do tipo Exception que pode
Error { get; } retornar informações do erro que ocorreu
durante uma operação assíncrona
Propriedade do tipo object que retorna um
UserSate { get; }
identificador único de uma tarefa assíncrona
Método para lançar uma exceção fornecida pelo
RaiseExceptionIfNeccessary
usuário se uma operação assíncrona falhar
9