O documento discute as vantagens e desvantagens de várias técnicas de conexão persistente entre servidores e clientes, incluindo SignalR, que permite comunicação em tempo real na web. SignalR usa vários protocolos como WebSockets e polling de longa duração para fornecer conexões persistentes independentemente do navegador. O documento também fornece links para recursos adicionais sobre SignalR.
Apostila desenvolvimento aplicações comerciais com C#Vinicius Vieira
Para mais artigos acesse: http://helpdev.com.br/
Essa é uma apostila que montei para a ministração de um curso, tentei escrever de uma forma simples os principais conceitos envolvidos no desenvolvimento de aplicações com .net framework e Microsoft C#, passando desde tópico mais básicos até de forma introdutória alguns recursos mais avançados. Também é comentado sobre o paradigma da orientação a objetos e os principais recursos da IDE Microsoft Visual Studio 2010.
Esta palestras visa apresentar como é possível realizar interoperabilidade entre Java e .NET usando mono e ikvm. Apresentação de exemplo práticos de como usar um código java dentro de C# ou mesmo estender as funcionalidades do java no C#
Palestra sobre C# 6.0 e o Visual Studio 2015 realizada em 21/02/2015.
Tópicos apresentados:
- Visual Studio 2015 e C# 6.0
- Using Static
- O operador nameof
- Um novo tipo de atalho no VS 2015
- Auto-Property Initializers
- Inicialização de propriedades somente leitura a partir de um construtor
- Expression-bodied Members
- Debug de expressões lambda
- Inicialização de instâncias do tipo Dictionary
- Exception Filters
- A nova versão do utilitário NuGet
- Implementação de construtores sem parâmetros em structs
- String Interpolation
- Chamadas assíncronas em blocos catch e finally
- Null-conditional operator
- Null-conditional operator e delegates
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...Daniel Makiyama
Slides de curso de Férias ministrado na FEI em 07/2014. 20 horas de pura introdução ao mundo do entity framework code first e Asp.Net MVC 5 com o Visual Studio Express 2013
O crescimento do mercado mobile e a necessidade de prover acesso a serviços existentes para desenvolvedores terceiros popularizaram o uso e disponibilização de APIs REST públicas. Com isso, pontos como escalabilidade, versionamento, desacoplamento e encapsulamento tornaram-se centrais no projeto de APIs. Nesta palestra será apresentado o conceito de APIs Hypermedia e como seu uso ajuda no projeto e implementação de APIs mais flexíveis.
Apostila desenvolvimento aplicações comerciais com C#Vinicius Vieira
Para mais artigos acesse: http://helpdev.com.br/
Essa é uma apostila que montei para a ministração de um curso, tentei escrever de uma forma simples os principais conceitos envolvidos no desenvolvimento de aplicações com .net framework e Microsoft C#, passando desde tópico mais básicos até de forma introdutória alguns recursos mais avançados. Também é comentado sobre o paradigma da orientação a objetos e os principais recursos da IDE Microsoft Visual Studio 2010.
Esta palestras visa apresentar como é possível realizar interoperabilidade entre Java e .NET usando mono e ikvm. Apresentação de exemplo práticos de como usar um código java dentro de C# ou mesmo estender as funcionalidades do java no C#
Palestra sobre C# 6.0 e o Visual Studio 2015 realizada em 21/02/2015.
Tópicos apresentados:
- Visual Studio 2015 e C# 6.0
- Using Static
- O operador nameof
- Um novo tipo de atalho no VS 2015
- Auto-Property Initializers
- Inicialização de propriedades somente leitura a partir de um construtor
- Expression-bodied Members
- Debug de expressões lambda
- Inicialização de instâncias do tipo Dictionary
- Exception Filters
- A nova versão do utilitário NuGet
- Implementação de construtores sem parâmetros em structs
- String Interpolation
- Chamadas assíncronas em blocos catch e finally
- Null-conditional operator
- Null-conditional operator e delegates
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...Daniel Makiyama
Slides de curso de Férias ministrado na FEI em 07/2014. 20 horas de pura introdução ao mundo do entity framework code first e Asp.Net MVC 5 com o Visual Studio Express 2013
O crescimento do mercado mobile e a necessidade de prover acesso a serviços existentes para desenvolvedores terceiros popularizaram o uso e disponibilização de APIs REST públicas. Com isso, pontos como escalabilidade, versionamento, desacoplamento e encapsulamento tornaram-se centrais no projeto de APIs. Nesta palestra será apresentado o conceito de APIs Hypermedia e como seu uso ajuda no projeto e implementação de APIs mais flexíveis.
AngularJS tem atraído muita atenção ultimamente e a maioria das aplicações utilizando Angular necessitam comunicar-se por meio de uma API REST. A plataforma Java EE com sua robustez e o seu avançado suporte a REST é uma das melhoras soluções atuais para suportar todos os requisitos de uma API REST backend para aplicações baseadas em HTML5 e AngularJS. Esta palestra abordará como construir uma aplicação em Angular utilizando tecnologias backend Java EE, como JAX-RS, WebSockets, JSON-P e CDI. Ao final desta sessão, você vai entender os benefícios no uso destas tecnologias, bem como padrões e boas práticas aplicadas neste modelo de desenvolvimento. Os tópicos abordados incluem: Javascript, HTML5, AngularJS, algumas API's Java EE (JAX-RS, WebSockets, JSON-P, CDI).
PyData - Consumindo e publicando web APIs com PythonBruno Rocha
Apresentado no auditório da NuBank em São Paulo dia 28 de Março de 2017 - PyData Meetup.
- O que são Web APIs
- Consumindo web APIs com Python
- O que fazer com os dados?
- Publicando web APIs com Python.
http://github.com/rochacbruno/flasgger
Existem muitas possibilidades de inovar no seguimento de lojas físicas, que tem em sua maioria uma tecnologia mais antiga.
Essa palestra conta a história do desenvolvimento de um produto para atender esse mercado do mundo físico e é focada nas decisões técnicas que impactaram a visão de negócio diretamente, fazendo um comparativo das tecnologias que levaram a essas decisões (escolha do React, React Native, Electron e libs auxiliares).
Hoje o produto roda em Android, iOS, Windows e web, compartilhando a maior parte do código-fonte, permitindo entregar features multi-plataforma de forma ágil.
Beyond Ruby with NodeJS - RubyConf Brasil 2010Emerson Macedo
Nessa apresentação eu descrevo o quanto eu gosto do Ruby e do Rails, mas onde ele pode não ser a melhor opção. NodeJS é uma tecnologia de certa forma recente, mas que pode cobrir algumas lacunas que o Ruby e Rails não fazem tão bem.
O AngularJS tem atraído muita atenção dos desenvolvedores, e a maioria das aplicações utilizando esse framework open source necessitam se comunicar por meio de APIs web. A plataforma Java EE, com sua robustez e suporte avançado a REST, é uma das melhoras soluções atuais para suportar todos os requisitos de uma API REST de backend para aplicações baseadas em HTML5 e AngularJS.
Esta palestra abordará como construir uma aplicação em AngularJS utilizando tecnologias backend Java EE, incluindo JAX-RS, WebSockets, JSON-P e CDI. Ao final você vai entender os benefícios do uso destas tecnologias, bem como padrões e boas práticas aplicadas nesse modelo de desenvolvimento. Os tópicos abordados incluem JavaScript, HTML5, AngularJS e várias APIs do Java EE.
O AngularJS tem atraído muita atenção dos desenvolvedores, e a maioria das aplicações utilizando esse framework open source necessitam se comunicar por meio de APIs web. A plataforma Java EE, com sua robustez e suporte avançado a REST, é uma das melhoras soluções atuais para suportar todos os requisitos de uma API REST de backend para aplicações baseadas em HTML5 e AngularJS.
Esta palestra abordará como construir uma aplicação em AngularJS utilizando tecnologias backend Java EE, incluindo JAX-RS, WebSockets, JSON-P e CDI. Ao final você vai entender os benefícios do uso destas tecnologias, bem como padrões e boas práticas aplicadas nesse modelo de desenvolvimento. Os tópicos abordados incluem JavaScript, HTML5, AngularJS e várias APIs do Java EE.
Última aula do curso de Python, aqui mostramos de forma superficial como fazer a integração do Django com Adobe Flex, como utilizar o módulo do PagSeguro, PyGame e como integrar sua aplicação com o Apache
Clean Architecture Essentials - Stockholm Software CraftsmanshipIvan Paulovich
About the talk:
Software Architecture is not about picking frameworks then gluing the pieces together! Let's dig into a software implementation designed to support the use cases, we will learn how to make the use cases a standalone component and see how a good architecture allows major decisions to be deferred. We will discuss component coupling and cohesion during the development timeline. Is your application architecture a Web Application? Are your tests taking too long to run? You will learn how to make the delivery mechanism an irrelevant and testable detail.
About the speaker:
Ivan Paulovich is an Agile .NET developer that enjoy solutions based on use cases and decoupled from technology details. Active on GitHub he supports OSS about Domain-Driven Design, TDD, Event Sourcing, CQRS, SOLID and Microservices. Microsoft MVP Reconnect. Checkout @ivanpaulovich on GitHub.
Software Architecture is not about picking frameworks and then gluing the pieces together! Let's dig into a software implementation designed to support the use cases, we will learn how to make the use cases a standalone component and see how a good architecture allows major decisions to be deferred. We will discuss component coupling and cohesion during the development timeline. Is your application architecture a Web API? Are your tests taking too long to run? You will learn how to make the delivery mechanism an irrelevant and testable detail.
Como uma aplicação baseada em fluxo de dados pode ampliar a segurança em crec...Ivan Paulovich
Investiga uma solução tecnológica para ampliar a segurança em creches e instituições de educação infantil. Realiza uma pesquisa de mercado sobre a sensação de segurança dos usuários dessas instituições. Avalia um sistema de armazenamento baseado em fluxo de dados (Kafka), propõe uma arquitetura baseada em Event Sourcing, CQRS e Domain-Driven-Design (DDD) e sugere uma implementação seguindo os princípios do desenvolvimento de microsserviços usando C# e ASP.NET Core.
Como uma aplicação baseada em fluxo de dados pode ampliar a segurança em crechesIvan Paulovich
Investiga uma solução tecnológica para ampliar a segurança em creches e instituições de educação infantil. Realiza uma pesquisa de mercado sobre a sensação de segurança dos usuários dessas instituições. Avalia um sistema de armazenamento baseado em fluxo de dados (Kafka), propõe uma arquitetura baseada em Event Sourcing, CQRS e Domain-Driven-Design (DDD) e sugere uma implementação seguindo os princípios do desenvolvimento de microsserviços usando C# e ASP.NET Core.
Domain-Driven-Design com implementação de Aggregates + Event Sourcing + CQRS + Optimistic Concurrency.
A técnica de Event Sourcing é usada como ferramenta de auditoria das modificações do conteúdo do Blog.
A fonte dos dados são os Domain Events registrados no Kafka e para permitir consultas de alta performance foi criado um banco de dados MongoDB com o 'último estado já processado dos eventos'.
Há um microsserviço auxiliar de autenticação. Tudo isso foi implementado em .NET Core/Standard 2.0 compatível com Docker!
Utilize o vso e publique imagens docker Global Azure Bootcamp - BHIvan Paulovich
Como utilizar o Visual Studio Online para realizar a Integração Contínua, Entrega Contínua e Implantação Contínua (CI/CD) e utilizando a infra do Azure, Docker e .NET Core.
Veja os scripts e códigos no GitHub https://github.com/ivanpaulovich/azure-bootcamp
15. Prós
Sem atraso nas respostas
Múltiplos requests
Contras
Baixa carga no servidor
Existem técnicas mais rápidas
Suportado por vários Browsers
16.
17. Prós
Suportado por vários Browsers
Contras
Contras Problemas com peculiaridades de
cada Browser.
Muito difícil de tratar os erros
18.
19. Prós
Conexão persistente.
Não necessidta de um protocolo especial
implementado no servidor.
Contras
Nâo é suportado pelo Internet Explorer.
Trabalha apenas na direção:
Server > Client.
20.
21. Prós
Conexão persistente nas duas direções.
Melhor performance.
Contras
Requer protocolo WEB SOCKET IE 10 e demais
browsers (versões atualizadas)
Requer protocolo WEB SOCKET no Servidor (IIS8)
28. Aplicação .NET (Server Side)
HUB API
API de Conexão Persistente
Transportes
HTML5 Comet
Web Sockets
Server Sent Events
Forever Frame
Ajax Long Polling
Browser (Client Side)
HUB API
API de Conexão Persistente
Transportes
Browser (Client Side)
HUB API
API de Conexão Persistente
Transportes
Browser (Client Side)
HUB API
API de Conexão Persistente
Transportes
Servidor
Clientes
35. PUBLIC CLASS SHAPEHUB : HUB
{
//
// RECEBE MENSAGENS DO CLIENTE
//
PUBLIC VOID MOVESHAPE(INT X, INT Y)
{
//
// ENVIA MENSAGENS PARA O CLIENTE
//
THIS.CLIENTS.OTHERS.UPDATESHAPE(X, Y);
}
}
Simples definição do Hub
Implementação dos
métodos
Uso intensivo de Anonymous
Methods
36. <SCRIPT TYPE="TEXT/JAVASCRIPT">
$(FUNCTION () {
VAR SHAPE = $("#SHAPE");
$.CONNECTION.HUB.START().DONE(FUNCTION () {
SHAPE.DRAGGABLE({
DRAG: FUNCTION () {
// ENVIA A NOVA POSIÇÃO PARA O SERVIDOR
$.CONNECTION.SHAPEHUB.SERVER.MOVESHAPE(
SHAPE.POSITION().LEFT,
SHAPE.POSITION().TOP);
}
});
});
// RECEBE AS MENSAGENS DO SERVIDOR
$.CONNECTION.SHAPEHUB.CLIENT.UPDATESHAPE = FUNCTION (X, Y) {
SHAPE.ANIMATE({ LEFT: X, TOP: Y }, { QUEUE: FALSE });
}
});
</SCRIPT>
Implementação dos
métodos no cliente “.client”
Pode chamar métodos no
servidor “.server”
46. MANTENHA CONTATO NO WWW.100LOOP.COM
ANDRÉ PAULOVICH PAULOVICH@100LOOP.COM
IVAN PAULOVICH - IVAN@100LOOP.COM
Notas do Editor
Regular http:A client requests a webpage from a server.The server calculates the responseThe server sends the response to the client.Referência:http://stackoverflow.com/questions/11077857/what-are-long-polling-websockets-server-sent-events-sse-and-comet
AJAX Polling:A client requests a webpage from a server using regular http (see http above).The requested webpage executes javascript which requests a file from the server at regular intervals (e.g. 0.5 seconds).The server calculates each response and sends it back, just like normal http traffic.
AJAX Long-Polling:A client requests a webpage from a server using regular http (see http above).The requested webpage executes javascript which requests a file from the server.The server does not immediately respond with the requested information but waits until there's new information available.When there's new information available, the server responds with the new information.The client receives the new information and immediately sends another request to the server, re-starting the process.
HTML5 Server Sent Events (SSE) / EventSource:A client requests a webpage from a server using regular http (see http above).The requested webpage executes javascript which opens a connection to the server.The server sends an event to the client when there's new information available.real-time traffic from server to client, mostly that's what you'll needyou'll want to use a server that has an event loopnot possible to connect with a server from another domainIf you want to read more, I found thse (article), (article), (article), (tutorial) very useful.
HTML5 Server Sent Events (SSE) / EventSource:A client requests a webpage from a server using regular http (see http above).The requested webpage executes javascript which opens a connection to the server.The server sends an event to the client when there's new information available.real-time traffic from server to client, mostly that's what you'll needyou'll want to use a server that has an event loopnot possible to connect with a server from another domainIf you want to read more, I found thse (article), (article), (article), (tutorial) very useful.
HTML5 Websockets:A client requests a webpage from a server using regular http (see http above).The requested webpage executes javascript which opens a connection with the server.The server and the client can now send each other messages when new data (on either side) is available.real-time traffic from the server to the client and from the client to the serveryou'll want to use a server that has an event loopwith WebSockets it is possible to connect with a server from another domain.It is also possible to use a third party hosted websocket server, for example Pusher or others. This way you'll only have to implement the client side, which is very easy!If you want to read more, I found thse (article), (article) (tutorial) very useful.