logo
  • Home
  • Acerca
  • Autores
  • Faq
  • Rede
  Twitter   Feed-me! RSS!
Ago 27

Flex, Grails e BlazeDS

Escrito por DanielPedrinha em 1, 2.0, AR, back, BI, Blazeds, blog, C#, configuração, Exemplos, Flex, IE, instalação, Java, lite, O, on, rails, Ria’s Geral, S+S, Tutorial @ 08 27th, 2011 | via http://www.flexbrasilia.com.br/ | Sem comentários
DanielPedrinha
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Bom, como sou basicamente um programador Flex, preciso de coisas que facilitem minha vida com relação ao back-end. Conheci o Grails e estou gostando bastante da praticidae. Já havia tentado trabalhar com Java outras vezes mas desisti antes de começar a produzir só pela complexidade dos ambientes. Até que o Grails apareceu pra resolver esse [...]

(Read more…)

Ago 19

Oportunidade de trabalho Adobe Flex/Java – Rio de Janeiro

Escrito por Stefan Horochovec em Adobe, Adobe Flex, análise, AR, back, C#, Desenvolvimento, Desenvolvimento de Software, Flex, Flex 4, for, Hibernate, IE, if, int, Java, JSF, O, on, Pessoal, Projetos, prova, referencia, RIA, Ria’s Geral, S+S, Software, Tema, UML, XP @ 08 19th, 2011 | via http://www.horochovec.com.br/blog | Sem comentários
Stefan Horochovec
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Olá pessoal, que tal trabalhar com Adobe Flex e Java na cidade maravilhosa?

A Avanti Prima Engenharia está com oportunidades para trabalho com Adobe Flex/Java no Rio de Janeiro.

Segue abaixo informações sobre a vaga:

Experiência Exigida

  • Experiência mínima comprovada de 3 anos no desenvolvimento de software na linguagem Adobe Flex, preferencialmente integrando com Java;
  • Experiência em análise e modelagem de sistemas, utilizando UML;
  • Conhecimento de padrões de projetos orientados a objetos;
  • Conhecimento em Hibernate, JSF (front-end), EJB (back-end).
  • Conhecimento em especificação de casos de uso;

Interessados, enviar seus CV para: stefan.horochovec@avantiprima.com.br ou para eric.sander@avantiprima.com.br

Jul 29

ClickCountTrigger para Silverlight no Expression Gallery

Escrito por Kelps Sousa em .NET, 1, 2.0, 3.5, 4, 6, action, AR, back, Behavior, Behaviors, Blend, blog, botão, bug, C#, codeplex, código, configuração, control, event, Evento, exemplo, expression, Expression Blend, Expression Gallery, for, full screen, FullScreen, galeria, Google, IE, if, image, int, library, live, map, mg, Microsoft, News, O, on, padrão, print, RIA, Ria’s Geral, S+S, screen, silverlight, Silverlight 4, site, UI, XAML, XML, XP @ 07 29th, 2011 | via http://kelps-sousa.blogspot.com/ | Sem comentários
Kelps Sousa
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

double-click-icon

Acabei de publicar uma nova trigger no Expression Gallery, chamada ClickCountTrigger.

Esta trigger serve para simplificar nossa vida quando queremos implementar duplo click em Silverlight, já que a plataforma não fornece uma implementação nativa desse evento. Decidi fazer a trigger de forma genérica e por isso implementei como click count ao invés de double click. Sendo assim, tornei possível que essa trigger seja utilizada para adicionar cliques triplos, quaduplos ou até mais em aplicações Silverlight. Eu não consigo imaginar situações onde mais do que 3 cliques façam algum sentido, mas a minha imaginação não deve limitar a sua Winking smile.

Para configurar a trigger no Expression Blend, basta escolher um controle que deverá ter algum comportamento ao receber um duplo click, adicionar uma Action a ele e depois mudar a trigger padrão dessa Action para ClickCountTrigger e configurar quantos cliques disparam a ação. Abaixo temos alguns prints mostrando a trigger configurada em um botão, em conjunto com a Action ToggleFullScreenAction. Este exemplo é do código do live sample que está na página da trigger na galeria.

Action aplicada no botão

Action ToggleFullScreenAction configurada em um Button

Janela de propriedades da Action, mostrando sua configuração e a da trigger.

Propriedades da trigger ClickCountTrigger e da action de fullscreen

Configuração da trigger e action no xaml

<Button Content="Double-Click to Toggle Full Screen">    <i:Interaction.Triggers>        <cnzk:ClickCountTrigger ClickCount="2">            <cnzk:ToggleFullScreenAction />        cnzk:ClickCountTrigger>    i:Interaction.Triggers>Button>

Declaração no xaml dos namespaces necessários para utilizar tanto a trigger quanto a action:

xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"xmlns:cnzk="http://schemas.cnzk.com.br/library"

Se você utilizar algumas das minhas behaviors, triggers ou actions publicadas no Expression Gallery e tiver algum tipo de feedback ou bug para reportar, pode postar um comentário aqui no blog ou na página do projeto no codeplex.

Espero que esta trigger seja útil para vocês, pois pra mim ela já está sendo.



Jul 28

Estratégia para lidar com callbacks assíncronos em Silverlight

Escrito por Kelps Sousa em .NET, 1, 4, 6, action, AR, back, BI, blog, C#, class, classe, código, dados, demo, Desenvolvedor, desenvolvedores, Desenvolvimento, Download, err, erro, error, event, Evento, Eventos, exemplo, for, framework, gc, Google, html, IE, if, int, LOB, lógica, map, mg, MSDN, NaN, News, O, on, problema, Projetos, pt, RIA, Ria’s Geral, RoR, S+S, silverlight, Silverlight 4, string, tag, TAT, Tutorial, Twitter, UI, Ved, web, Web Service, web services, WebClient, XP @ 07 28th, 2011 | via http://kelps-sousa.blogspot.com/ | Sem comentários
Kelps Sousa
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Recentemente, conversando com alguns desenvolvedores no trabalho e verificando algumas perguntas publicadas nos fóruns do MSDN, eu notei que ainda há uma dificuldade muito grande tanto de compreensão quanto de implementação para trabalhar com métodos assincronos. Isso se torna um problema particularmente importante em aplicações Silverlight pois todas as chamadas a web services, RIA services, web requests, etc são obrigatoriamente feitos de forma assincrona, não havendo opções para executar essas mesmas operações da forma sincrona e linear ? qual a maioria dos desenvolvedores está acostumada.

Acontece que desenvolvimento assincrono não é difícil e, depois que você aprende e se acostuma, você acaba percebendo que suas aplicações passam a funcionar muito melhor. Sim, não vou argumentar aqui contra o fato de que é necessário se acostumar e que começo seja realmente algo estranho, mas posso garantir que demora pouco tempo para se acostumar e os benefícios são muitos.

Há muitas abordagens e estratégias possíveis para desenvolvimento assíncrono e eu vou apresentar aqui uma delas que é bem simples e que eu usei em praticamente todos os projetos Silverlight em dos quais participei. Essa abordagem não envolve o uso de nenhum framework ou biblioteca externa e pode ser utilizada tranquilamente também em projetos que não sejam Silverlight.

Digamos que você precisa obter o html de uma página web por algum motivo. Uma forma de fazer isso seria criando uma nova instância de WebClient, assinando o evento DownloadStringCompleted e depois chamando o método DownloadString passando a url. Ok, não é difícil, mas é um código repetitivo que poderia facilmente ser reaproveitado ao invés de ser copiado por toda sua aplicação em todo lugar onde você precisar fazer download de uma página. O que eu costumo fazer para esse tipo de chamada é criar um método estático em uma classe utilitária e simplesmente chamar esse método passando, nesse caso, minha url e um ponteiro de callback. É mais fácil mostrar:

public static void HttpGet(string url, Action<string, Exception> callback)     if (!string.IsNullOrWhiteSpace(url))         var client = new WebClient();        client.DownloadStringCompleted += (sender, e) =>             if (callback != null)                 callback(e.Result, e.Error);

        };        client.DownloadStringAsync(new Uri(url));    }}

Quais são as vantagens desse método:

  • para executá-lo não é necessário instanciar nenhuma classe
  • é facil de reutilizar
  • permite que a lógica da minha aplicação fique um pouco mais simples, já que não me obriga a assinar nenhum evento no meu código

Para executar esse método, eu posso usar 2 abordagens.

Abordagem 1 – Delegar o retorno para outro método. Nessa abordagem eu chamo o método HttpGet passando a url desejada e o ponteiro de um método que será executado quando o request for concluído.

private void LoadData()     HttpGet("http://kelps.net", DataLoaded);

private void DataLoaded(string data, Exception error)     if (error == null)         //utiliza os dados retornados na variável "data"

}

Abordagem 2 – Utilizar uma expressão lambda para criar um método anônimo inline no meu código, ao invés de criar uma função separada apenas para processar os dados retornados.

HttpGet("http://twitter.com/kelps", (data, error) =>     if (error == null)         //utiliza os dados retornados na variável "data"

});

A única diferença de funcionamento entre as 2 abordagens acima é que na segunda seria possível utilizar variáveis que estiverem no mesmo escopo da chamada que está sendo feita, ao passo que na primeira seria necessário que essas variáveis fossem globais da classe para que isso funcione. Nos projetos em que trabalho eu costumo utilizar ambas as abordagens, de acordo com o que faz mais sentido em cada situação. Expressões lambda são bem concisas e compactas, mas são claras para qualquer desenvolvedor.

Este foi apenas um pequeno exemplo de como trabalhar com chamadas assincronas sem ficar se perdendo com assinaturas e liberação de eventos. Há outras formas mais complexas e robustas de lidar com isso mas a minha intenção hoje era simplesmente mostrar como dá pra trabalhar de forma simples com código assíncrono, mesmo sem utilizar nenhuma biblioteca externa.



Jul 27

Windows Phone SDK 7.1 Beta 2 Refresh disponível para desenvolvedores

Escrito por Kelps Sousa em .NET, 1, 2.0, 3.5, 4, 6, AR, back, Beta, BI, blog, C#, Desenvolvedor, desenvolvedores, Download, Geral, Google, if, int, map, mg, News, O, on, prova, refresh, Release Candidate, RIA, Ria’s Geral, RTM, S+S, SDK, Tema, UI, Vários, Ved, window, windows @ 07 27th, 2011 | via http://kelps-sousa.blogspot.com/ | Sem comentários
Kelps Sousa
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Quem está participando do beta do Windows Phone Mango para desenvolvedores recebeu uma agradável notícia hoje: Foi disponibilizada uma atualização para os aparelhos com um build mais recente do sistema operacional.

O novo build é o 7712, não o 7720, que é a versão RTM. Foi necessário que usássemos essa versão anterior pois é a versão que é compativel com a atualização do SDK e do Zune que estão sendo disponibilizadas neste refresh.

Está previsto que até o final de agosto O Marketplace será aberto para começarmos a publicar aplicações que funcionarão apenas em aparelhos com Windows Phone 7.5, o que nos dará uma chance de testar bem nossas aplicações em vários aparelhos de desenvolvedores antes que esta versão do SO esteja disponível para o público geral. Isso é interessante pois significa que quando a nova versão do SO estiver disponível para o público já haverá várias aplicações no Marketplace tirando proveito das novas capacidades do sistema operacional. Esta atualização de agosto provavelmente virá junto com uma versão RC (Release Candidate) do SDK.

Se você é um desenvolvedor cadastrado no Marketplace, tem um aparelho com Windows Phone e está participando do Beta do Windows Phone Mango, vá agora mesmo ao Connect e instale este refresh, mas não se esqueça de fazer backup dos backups dos seus backups antes de fazer isso, para garantir que você conseguirá voltar o seu telefone para a versão normal quando a versão RTM estiver disponível pois não será possível ir da versão beta diretamente para a versão RTM do WP7.

PS.: Quando você instalar o novo SDK ele vai aparecer como sendo RC na janela de adicionar e remover programas do Windows, mas na verdade esta ainda não é a versão RC do SDK.



Jun 17

Novidades da versão Mango – Parte 2

Escrito por Alexandre Tadashi em .NET, 1, 2.0, 3.5, 4, 6, abas, análise, Análises, api, Aplicativos, app, AR, auto, back, bar, Beta, BI, bing, botão, bug, busca, C#, carregar, class, classe, cliente, código, collection, control, Controles, Curso, Cursos, dados, Debug, demo, Desenvolvedor, desenvolvedores, Desenvolvimento, Dica, Diversos, Documentação, DRE, email, err, event, Evento, Eventos, exemplo, Ferramenta, flash, Flex, fonte, for, Formação, fundo, game, garbage, geo, Geral, Gráfico, Gravação, ide, IE, if, image, imagens, int, jogo, Jogos, linq, Linq to Sql, lista, live, map, maps, Melhores Práticas, menu, mg, Microsoft, mobile, monitor, Monitoramento, NaN, O, on, online, Outros, player, processo, produtividade, prova, pt, RIA, Ria’s Geral, S+S, serviço, Serviços, silverlight, Silverlight 4, SmartPhone, socket, Storyboard, Sun, tag, TAT, Tema, UI, Ved, Vídeo, Videobrush, Vídeos, Visual Studio, web, WebCam, window, windows, XAML, XP, zend @ 06 17th, 2011 | via http://alexandretadashi.net/ | Sem comentários
Alexandre Tadashi
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Sockets

Através do namespace System.Net.Sockets, o Windows Phone provê suporte a uma implementação gerenciada de sockets, permitindo que desenvolvedores possam ter um controle rigoroso ao acesso a redes, com esse recurso temos disponível um conjunto de API’s de alto nível, permitindo que o desenvolvedor crie aplicativos que interagem com um cliente utilizando de serviços existentes de TCP.

Existem muitas funcionalidades onde esse recurso pode ser utilizado, como pode exemplo, para criar aplicativos de FTP, e-mail e Chat, com sockets é possível criar aplicativos mais sofisticados e ricos, podendo utilizar de TCP (Transmission Control Protocol) ou UDP (User Datagram Protocol).

Câmera e fotos

Existem duas formas de acessar a câmera no Windows Phone, através das API´s do próprio sistema operacional ou através dos recursos já existentes do Silverlight 4, com as APIs do Windows Phone você tem imagens de alta resolução, além de controle do auto foco, acesso ao modo do flash, entre outros recursos, já com os recursos do Silverlight 4 webcam API, você tem facilidade de gravar vídeos e áudios em arquivos, se você já possui códigos em alguma aplicação Silverlight, você poderá aproveita-los com poucas ou nenhuma modificação quanto ao acesso a webcam.

É possível ter um controle bem flexível da câmera fotográfica do smartphone, através do Windows Phone podemos ter um controle do auto foco da câmera, gerenciar o flash utilizado, acionar a captura da imagem, além de uma série de eventos que podemos utilizar através do Microsoft.Devices.PhotoCamera, no código XAML a representação da câmera pode ser feito através do recurso VideoBrush do Silverlight.

Push Notitications e Live Tiles

Notifications é um poderoso recurso que o Windows Phone implementou de maneira bem interessante, com ele podemos enviar e receber informações para o Windows Phone 7, essas mensagens são enviadas para um serviço da Microsoft, e o serviço online envia para o smartphone, podendo receber a mensagem em seu projeto. Você poderá obter a mensagem recebida e manipular as informações, existem três tipos de Notifications, o tipo RAW, Toast e Tile, resumidamente o primeiro permite receber informações diretamente em sua aplicação, o segundo permite receber um aviso no topo da tela do Windows Phone, a aplicação receberá a notificação mesmo que a sua aplicação não esteja em execução no momento. Já o tipo Tile, é uma notificação nos Tiles que ficam na tela principal do Windows Phone e pode ser acionado quando apertamos o botão Start do aparelho. Na versão Mango, temos mais recursos disponíveis para essas notificações, a notificação do tipo Toast agora pode receber um determinado link que vai para determinado local em sua aplicação e ainda pode passar parâmetros que você pode utilizar para ler e realizar alguma tarefa, dando mais poder para as notificações no Windows Phone, as notificações do tipo Tile também foram incrementadas, agora é possível utilizar um Tile com dois lados e que mude periodicamente ou ainda ter tiles secundários para a mesma aplicação.

img27763

Figura 1. Fundo do Tile

Profiler

Performance é um dos assuntos mais importantes quando estamos criando aplicativos em geral, principalmente quando a aplicação vai ser executada em dispositivos com recursos limitados, como é o caso de smartphones, com a versão Mango temos agora uma ferramenta que analisa o perfil da sua aplicação, possibilitando analisar e medir através de gráficos , diversos recursos utilizados.

A ferramenta é totalmente integrada com o Visual Studio, para iniciar o uso do recurso , basta carregar a sua aplicação e no menu Debug, localizar e clicar na opção “Start Windows Phone Performance Analysis”, Figura 2, e clicar em Launch Application, em seguida você executa a rotina que deseja monitorar em seu aplicativo e clica em Stop Profiling, um arquivo com extensão SAP será criado, a cada processo de analise, um arquivo é criado, e você poderá manter um histórico para futuras analises de melhorias. Dentre as informações que a ferramenta apresenta, estão os frame rates, que são os números de renderização da tela do telefone, expressada em frames por segundo (fps), a porcentagem de uso da CPU do telefone, o uso da memória do aplicativo medido em megabytes, a utilização de Storyboards e imagens carregadas, por fim temos um indicativo de quando os eventos do garbage collections foram acionados durante o monitoramento. Se você selecionar um determinado período, o Visual Studio apresentará informações detalhadas sobre diversos pontos do aplicativo.

img24163

Figura 2. Performance Analysis

img26173

Figura 3. Analise detalhada da aplicação

Emulador

O emulador também sofreu algumas melhorias, duas delas são muito interessantes , como a possibilidade de testar no emulador os sensores de acelerômetro, Figura 4, e localização. Agora podemos simular através do emulador a leitura desses sensores, não precisando ter um equipamento físico para poder criar uma aplicação, basta você utilizar o mouse que o emulador vai responder conforme a ação esperada pelo aparelho real. No caso da utilização de recursos de localização, você ainda conta com uma barra de ferramentas com controles de busca, inclusão de indicativos de localização e gravação da localização, o emulador ainda contém alguns outros recursos que talvez sejam disponibilizados na versão final, como a possibilidade de adicionar gravações referente as simulações.

img10650

Figura 4. Emulador

Device Status

O namespace Microsoft.Phone.Info fornece informações sobre o equipamento, na versão anterior, era utilizado a classe DeviceExtendedProperties para obter alguns dados sobre o equipamento, na versão Mango essa tarefa passa a ser realizada por DeviceStatus, você pode obter informações como o total de memória, a versão do hardware e o nome do fabricante do equipamento. Através do PowerSource, podemos verificar se o dispositivo está funcionando com bateria ou conectado a uma fonte de alimentação externa. Outro recurso disponível é a possibilidade de verificar se existe ou não um teclado físico no smartphone através da propriedade IsKeyboardPresent.

Local Database

Existem dois tipos de persistências no Windows Phone 7, o Transient Data e o Persistent Data, você pode manipular informações através de Isolated Storage, um recurso que permite registrar e recuperar informações no próprio aparelho, essa forma de persistência de dados é chamada de “Persistent Data”, ou armazenar informações na memória, Transient Data, sua aplicação pode manipular esses dados conforme o seu ciclo de vida, porém na versão mango uma nova forma de Persistent Data foi adicionada, o local Database.

Agora temos a possibilidade de utilizar uma base de dados local em uma aplicação, antes da disponibilização das ferramentas betas da versão mango para desenvolvedores e da documentação oficial, falava-se que uma versão do SQL CE estaria disponível para ser utilizada, porém em sua documentação oficial a base de dados é citada somente como local database, uma versão própria do Windows Phone, um grande diferencial de produtividade está no suporte ao LINQ to SQL para operações em base de dados.

O local database permite armazenar dados relacionais dentro de um ambiente residente no Isolated Storage, por estar dentro do Isolated Storage, ele somente pode ser acessado pela aplicação correspondente, e roda somente no processo do aplicativo, não sendo executada com um serviço continuo, a manipulação de dados locais são acessados apenas através de LINQ to SQL, não tendo suporte ao Transact-SQL.

Launchers and Choosers

Os Launchers e Choosers são APIs que acessam alguns recursos do sistema operacional, eles disponibilizam recursos complexos deixando transparentes para que o desenvolvedor através de API´s, os Launchers são tarefas que somente são iniciadas pela sua aplicação, teoricamente, você não tem nenhum tipo de retorno da API, somente você pode inicia-los , passando os parâmetros que ela vai utilizar para realizar a tarefa. Já os Chooser também iniciam uma tarefa, mas a principal diferença é que os Choosers retornam algum dado que você poderá trabalhar em sua aplicação, um exemplo seria o EmailAddressChooserTask, com ele podemos apresentar ao usuário a lista de e-mails cadastrados no aparelho, quando um e-mail é selecionado, podemos obter essa informação e utilizar para enviar um e-mail através de um Launcher chamado EmailComposeTask, que não retorna nenhuma informação,dessa forma algumas tarefas que poderiam ser bem complexas são facilitas com os Launchers e Choosers. Na versão Mango temos novos Launchers and Choosers adicionados as API´s são eles:

Address Chooser Task : Inicia a lista de contatos da aplicação e permite a seleção.

Game Invite Task : API utilizada em jogos aprovados no Xbox Live que permite convidar jogadores para uma partida multi-player em um Game.

Save Ringtone Task : Permite gravar um arquivo MP3 ou WMA na lista de ringtones do sistema operacional.

Bing Maps Task : Inicia o Bing Maps, permitindo setar a propriedade center com uma posição geográfica.

Bing Maps Directions Task : Inicia o Bing Maps permitindo informar e receber informações sobre dois pontos.

Conclusão

O Windows Phone 7 chegou trazendo uma nova plataforma de desenvolvimento para dispositivos móveis, a Microsoft utilizou o que existe de mais moderno para criar o seu sistema operacional, dando suporte as melhores práticas de desenvolvimento e integração com aplicativos, a versão Mango contém mais de 500 novos recursos e confirma o investimento da Microsoft em sua plataforma mobile.

Jun 17

Novidades da versão Mango – Parte 1

Escrito por Alexandre Tadashi em .NET, 1, 2.0, 3.5, 4, 6, Air, api, Aplicativos, AR, arte, Artigo, audio, auto, back, Banco de Dados, Beta, BI, bing, Blend, botão, browser, busca, C#, código, control, Controles, Curso, Cursos, dados, demo, Desenvolvedor, desenvolvedores, Desenvolvimento, developer, Dica, Diversos, Download, DRE, empresas, err, event, Evento, Eventos, Excel, exemplo, Exemplos, explorer, expression, Expression Blend, facebook, Ferramenta, for, framework, Geral, html, html5, ide, IE, if, image, imagens, int, interface, internet, library, linkedin, lista, Livro, mg, Microsoft, MIX, mobile, monitor, motion, movimento, MSDN, mudanças, NaN, novidade, Novidades, O, on, Outros, Partilha, processo, progress, Redes Sociais, rest, RIA, Ria’s Geral, S+S, serviço, silverlight, Silverlight 4, SmartPhone, Software, TAT, Tecnologia, Tema, tool, Twitter, UI, UX, Ved, Vídeo, Vídeos, Visual Studio, Visual Studio 2010, vs, window, windows, Xna, XP @ 06 17th, 2011 | via http://alexandretadashi.net/ | Sem comentários
Alexandre Tadashi
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

imageÉ grande a expectativa pelos desenvolvedores .net para a chegada e comercialização do Windows Phone no Brasil, a plataforma chega bem completa e robusta, atendendo diversas necessidades dos usuários e desenvolvedore e permitindo a criação de aplicativos utilizando as mais modernas tecnologias Microsoft.
Apresentada no evento MIX 11 da Microsoft, a versão com o codinome Mango, chegou com mais de 500 novidades, são tantos recursos que não é possível cobri-los em um único artigo, podemos destacar algumas melhorias como sendo essenciais para o crescimento da plataforma, como o suporte a multitarefa, a atualização da versão do Silverlight para o Silverlight 4 e a atualização do Browser para a versão do Internet Explorer 9 com suporte ao HTML5, essas são sem dúvidas grandes mudanças tanto para o desenvolvedor como para o usuário.

Para os desenvolvedores foram diversas melhorias e para os usuários não foi diferente, houve uma melhor integração com o Skydrive, possibilitando compartilhar fotos por e-mail e SMS, podemos também compartilhar vídeos realizando o upload em background, navegar pelas pastas no Skydrive, realizar pesquisas de conteúdo, entre diversos outros recursos de integração com esse excelente serviço da Microsoft.

Outro recurso interessante é o Bing Vision, que é uma ferramenta que usa a câmera do telefone para reconhecer imagens, por exemplo, ao focar a capa de um determinado livro ele apresenta uma lista de resultados onde o livro é citado, já o Bing Áudio, é um mecanismo inteligente de busca de áudio, ele pode até reconhecer uma música que está sendo tocada e apresentar resultados sobre a música, esses são somente alguns exemplos, mas houve melhorias e atualizações em diversos HUBs, sensores e recursos do sistema operacional, além de uma forte integração com redes sociais como facebook, twitter e linkedIn.

As ferramentas de desenvolvimento para a versão Mango já estão disponíveis para download em versão Beta, muitas informações e recursos podem ficar diferentes na versão final, mas geralmente são mudanças pequenas. Com as ferramentas já é possível criar e testar todo o aplicativo com o Visual Studio 2010 e utilizar todo o poder do emulador que está integrado totalmente com o Expression Blend for Windows Phone ou com o Visual Studio 2010.

Download: Windows Phone Developer Tools 7.1 Beta tools

Os programadores Visual Basic .net agora podem criar aplicativos para o Windows Phone tanto em Silverlight como no XNA Framework, o Visual Basic é totalmente integrado com o Windows Phone Developers Tools 7.1 Beta, não sendo necessário instalar nenhuma ferramenta a parte. No Mango houve melhorias internas no sistema operacional que resultou em uma melhor performance na execução dos aplicativos em geral, alguns recursos agora rodam em threads background, deixando a interface do usuário com uma resposta mais rápida, essas melhorias são refletidas em sua aplicação e você não precisa codificar nada para usar desses benefícios, além dessas melhorias internas ouve também a inclusão de recursos essenciais para a criação de aplicações, como o suporte a OData e a inclusão de um banco de dados local.

O Windows Phone Marketplace também está em constante crescimento, com poucos meses de lançamento, a loja de aplicativos do Windows Phone 7 é constantemente atualizada com dezenas de novos aplicativos, o número de desenvolvedores e aplicativos podem aumentar significativamente com está atualização com codinome Mango, é previsto que o Marketplace esteja disponível para que os usuários possam comprar aplicativos em um total de 35 países, inclusive o Brasil e com suporte a 16 novas línguas, contando com o Português do Brasil.

Se você é um desenvolvedor da plataforma Microsoft .net e ainda não começou a desenvolver para o Windows Phone, é importante saber que a curva de aprendizado não é muito grande, principalmente se você já tem conhecimento na plataforma Silverlight ou XNA, o Windows Phone pode se tornar competitivo nos próximos anos, principalmente com a entrada e comercialização de equipamentos pelas operadoras no Brasil, somado com a recente parceria com a Nokia, umas das mais importantes empresas do setor, e a compra do Skype pela Microsoft, que vai trazer esse aguardado software para a plataforma .net, além de novas parcerias com fabricantes, tudo isso está fortalecendo a tecnologia mais recente da plataforma mobile da Microsoft.

Modelo de execução – Estado dormant

Houve uma pequena modificação no modelo de execução de aplicativos no Windows Phone Mango, nesta versão temos um novo estado da aplicação chamado dormant, para entendê-lo, vamos relembrar como funciona o ciclo de vida de uma aplicação no Windows Phone, temos quatro eventos que são acionados como apoio durante o uso do aplicativo, são eles, launching, closing, activated e deactivated, e junto com esses eventos podemos ter dois estado da aplicação, running e tombstoned, e para auxiliar com a manipulação de estados podemos utilizar os métodos OnNavigatedTo e OnNavigatedFrom. Quando você inicia uma aplicação, por exemplo, através do botão Start clicando em algum Tile, automaticamente uma nova instância do aplicativo será criada na memória, neste momento o evento Launching é acionado, ou seja, sempre que uma nova instância é criado, o evento Launching será chamado, neste evento temos que evitar a utilização de códigos que possam ser demorados e atrapalhar a experiência de uso do usuário da aplicação, além de que o Windows Phone Marketplace também informa limites de tempo para que a sua aplicação inicie. Após o evento Launching ser acionado, a sua aplicação entra em um estado chamado Running, neste momento sua aplicação está em execução e você poderá realizar tarefas e o usuário poderá navegar em sua aplicação. Neste momento se o usuário apertar o botão Start, por exemplo, ele estará acionando um evento chamado Deactivated e sua aplicação deverá salvar qualquer estado do aplicativo que você deseja restaurar caso o usuário retorne para sua aplicação através do botão Back, é neste ponto que houve um mudança com a versão Mango, agora existem dois
estados utilizados neste processo, o dormant e o tombstoned, sua aplicação entre em estado dormant antes de entrar em tombstoned, o que não acontecia na versão anterior, onde o aplicativo entrava direto em tombstoned. Quando o usuário navega para fora da sua aplicação , o Windows Phone coloca o aplicativo no estado dormant, neste momento todo o processamento, ou seja, todas as threads, são paradas, mas a aplicação ainda está na memória do aplicativo, este estado permite retornar a aplicação utilizando o máximo de performance, pois não é necessário recriar qualquer estado pois todos foram preservados. Se um aplicativo está no estado dormant e o usuário iniciar outro aplicativo, o sistema operacional vai verificar se esse novo aplicativo iniciado precisa utilizar mais memória do que o device disponibiliza como livre no momento,se isso ocorrer, a sua aplicação poderá ser escolhida para sair do estado dormant e entrar no estado tombstoned.

Mais informações : http://msdn.microsoft.com/en-us/library/ff817008(v=vs.92).aspx

Background Agents

Com os Background Agents podemos realizar algumas tarefas mesmo que a aplicação não esteja em execução, existem duas formas de realizar esse agendamento de tarefas, através de scheduled notifications ou scheduled tasks.

Uma scheduled notification é um aviso, que pode ser do tipo Alarm ou Reminder, o tipo Alarm permite que você especifique um arquivo de som para tocar quando a notificação é acionada, o tipo Reminder, você pode especificar uma URI para sua aplicação, quando o usuário clicar na notificação, a aplicação será executada e a URI será passado com parâmetro.

Já um Scheduled Task permite que você execute uma tarefa em background, mesmo quando a aplicação não está sendo executada, cada aplicação pode ter um único agente, que será registrando em sua aplicação e você pode especificar o tipo de scheduled que será executado, existem dois tipos, o PeriodicTask e o ResourceIntensiveTask, o primeiro é indicado para tarefas onde o tempo de execução será curto, como por exemplo, armazenar uma pequena quantidade de dados, e pode ser utilizado regularmente, já o ResourceIntensiveTask, tem sua utilização mais rara, pode ser utilizado para tarefas mais demoradas e que utilizam mais dos recursos do smartphone, com por exemplo a sincronização de um grande volume de dados.

File Transfers

Na versão mango temos disponíveis algumas APIs para a manipulação de uploads e downloads de arquivos no Windows Phone, esses arquivos podem ser enfileirados e executados em segundo plano (background), o Windows Phone fornece meios de verificar o status da transferência dos arquivos e ainda fornece meios de monitorar o progresso do download ou upload.

Áudio Background

Tocar um arquivo de som rodando em background, mesmo que a aplicação não esteja em foreground, se tornou uma tarefa fácil e gerenciada pelo sistema operacional, o suporte ao áudio em background é fornecido pelo namespace Microsoft.Phone.BackgroundAudio, com ele é possível acionar uma música e mesmo que o usuário inicie outros aplicativos, a música continuará em execução e o usuário ainda terá o acesso aos controles de aumentar e diminuir o volume.

Mais informações: http://msdn.microsoft.com/en-us/library/hh202978(v=vs.92).aspx

Sensores

Os smartphones estão ficando cada vez mais sofisticados e uma série de sensores estão sendo disponibilizados com esses modernos aparelhos, na versão mango temos disponível além do conhecido acelerômetro, mais dois sensores igualmente importantes, como a bússola e o giroscópio.

A bússola permite obter o ângulo pelo qual o smartphone é girado em relação ao polo magnético da terra, sua aplicação pode realizar a leitura dessas forças magnéticas e utilizar para realizar alguma ação, o sensor bussola não é um item considerado obrigatório para os fabricantes de equipamentos utilizarem com o Windows Phone, portanto se a sua aplicação for utilizar o recurso , ele precisa informa-lo e ainda verificar se o recurso está presente através de recursos do sistema operacional. Eventualmente a bussola pode ficar descalibrada, os smartphones com o sensor possuem recursos para a calibração da bussola, onde um movimento em formado de infinito é realizado.

O Giroscópio é outro sensor disponível para o desenvolvedor utilizar em suas aplicações, com ele podemos medir a velocidade de rotação do smartphone dos eixos X, Y e X. Todos os equipamentos com Windows Phone possuem o acelerômetro como sensor obrigatório, o acelerômetro consegue medir a aceleração do smartphone em movimentos mais intensos, no caso de uma simples e leve rotação de eixos, esses valores não podem ser lidos através do acelerômetro, já com o giroscópio é possível obter os valores quanto a velocidade de rotação do celular.

Juntos, o giroscópio, acelerômetro e a bussola, forma um conjunto completo que pode ser utilizado para formar um sofisticado sensor de movimentos, para simplificar essa integração, a versão Mango disponibiliza através do Microsoft.Devices.Sensors.Motion, um conjunto de recursos que facilitam a leitura dos resultados gerados pelos sensores para que você possa utilizar em sua aplicação.

continua…

Jun 8

Java + JPA + Hibernate + DAO Genérico

Escrito por SamuelFacchinello em 1, 2.0, 3.5, 4, 6, action, Adobe, Adobe Flex, AR, back, Banco de Dados, blog, Blogs, break, busca, C#, catch, class, classe, dados, err, erro, exemplo, finally, Flex, for, framework, Google, Hibernate, html, IE, if, int, Java, JPA, lista, mg, O, on, print, procura, Projetos, pt, reference, RIA, Ria’s Geral, S+S, Spring, string, super(), TAT, Teste, try, UI, update, validação @ 06 8th, 2011 | via http://desenvolvendoemflex.blogspot.com/ | Sem comentários
SamuelFacchinello
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Olá, hoje vou mostrar como fazer um DAO Genérico no Java (contendo SaveOrUpdate, Remove, FindAll, FindByID) que pode ser usado por todos os DAOs. Facilitando a criação de novos projetos, podendo ser usado com a integração com o Adobe Flex através do RemoteObject.

Isto é para quem não quer usar nenhuma espécie de Framework (ex: Spring, que faz isso de uma forma mais genérica).

Primeiramente criei minha classe contendo todos os métodos (save, update, delete, find), para minha classe ficar “genérica” ao invés de receber as entidades específicas, recebe Object (pode passar as Entidades que o java consegue reconhecer). Após criar esta classe contendo os métodos, é só criar os DAOs extendendo da classe genérica, com isso já terá todos os métodos implementados. Podendo fazer validações específicas para cada DAO.

Vamos a prática:

Este é minha classe genérica contendo todos os métodos.
GenericDAO.java
Leia mais…

Jun 1

Como analisar/debugar o retorno AMF pelo FireFox

Escrito por Daniel Schmitz em 1, 2.0, 4, 6, AMF, AR, back, BI, botão, bug, C#, dados, Debug, Desenvolvedor, err, erro, error, exemplo, explorer, firefox, Flex, for, IE, image, int, Java, lite, mg, O, on, Pessoal, PHP, pt, Ria’s Geral, RoR, S+S, server, servidor, super(), Tutorial, UI, Ved, XP, zend, zendAMF @ 06 1st, 2011 | via http://flex.etc.br | Sem comentários
Daniel Schmitz
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Pessoal, tenho recebido muitas dúvidas de como analizar o retorno AMF do java/php, causando principalmente aquele erro “Server Fault”.

Algo OBRIGATÓRIO que todo desenvolvedor deve conhecer é uma forma de estar sempre atento ao retorno AMF e isso pode ser realizado de diversas formas. A mais simples delas é a integração Firefox + Firebug + AMF Explorer e iremos mostrar a seguir como fazer isso.

Primeiro, instale o firefox: http://br.mozdev.org/

Segundo, instale o firebug: https://addons.mozilla.org/pt-br/firefox/addon/firebug/

Terceiro, instale o AMF Explorer: https://addons.mozilla.org/pt-br/firefox/addon/amf-explorer/

Reinicie o firefox (tanto para o firebug quanto para o amf explorer) e então carregue a sua aplicação Flex. Clique no botão do firebug, que na versão 4 está no canto superior direito da tela. Navegue até a aba “Rede” e habilite-a:

image

Quando for realizar a conexão, limpe as entradas que já tenham acontecido, e faça a conexão AMF. Procure pelo seu gateway, que é o arquivo PHP ou Java que faz a conexão com o servidor. Expanda-o e veja se existe algo semelhante a figura a seguir:

image

Veja que, quanto expandimos o POST zendamf.php (no seu caso pode ser POST gateway.php), surge o AMF Request e o AMF Response. O AMF Response contém os dados que retornaram do servidor, conforme o exemplo a seguir:

image

Se houver algum erro de PHP, este erro estará na mensagem também, então ao invés de ver um erro genérico “Server Fault”, você verá o fatal error do php/java que foi gerado.

Mai 31

Java + MongoDB + Spring Data

Escrito por Ebercom em 1, 2.0, 2009, 4, 6, api, app, AR, auto, back, BI, C#, case, class, collection, configuração, dados, demo, email, exemplo, Flex, for, git, Hibernate, IE, if, int, interface, Java, JPA, lista, map, mg, O, on, Opinião, Outros, PHP, RIA, Ria’s Geral, S+S, Spring, string, super(), tag, TAT, Tecnologia, template, UI, XML @ 05 31st, 2011 | via http://www.flexdev.com.br/home | Sem comentários
Ebercom
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Olá.

A alguns dias escrevi um post sobre PHP + MongoDB e recebi um feedback muito positivo
então resolvi repetir a dose e mostrar um pouco da integração entre Java e MongoDB.

Na minha opinião essa é uma das principais vantagens do MongoDB em relação a outros bancos de dados NoSQL,
O MongoDB e extremamente fácil de se integrar com a maioria das linguagens.

Neste Post vou falar um pouco sobre o MongoDB e a integração com o java utilizando o Spring Data.
O MongoDB fornece o mongo-java-driver que atualmente esta na versão 2.6.X é uma API completa para acessar o MongoDB.
O Spring Data é um projeto recente, lançado em 2010, ele oferecer suporte a novas tecnologias não relacionais, suporte a extensões específicas a bancos de dados relacionais. Spring Data trabalha como uma camada intermediária entre seus POJOs e o MongoDB.

Nesse exemplo estou usando o maven para gerencias as dependências do projeto
Então alem das dependências habituais do projeto: Spring, JUnit e etc.. vamos precisar adiciona ao pow.xml as dependências do MongoDB e Spring Data

pow.xml

Feito isso as dependências do projeto estão configuradas e podemos partir para a configuração do spring.
A configuração é bem simples, nesse exemplo existem apenas 2 beans que configuram o MongoDB e Spring Data mongoTemplate e mongo

applicationContext.xml

O Spring Data oferece uma serie de anotações que permitem mapear o POJO de forma bem similar ao Hibernate/JPA
Contact.java

@Document(collection="contacts")
public class Contact 
    @Id
    private ObjectId id;
    private String name;
    private String email;

  //getter and setter methods 
  ...

E é através do mongoTemplate que vamos interagir com o MongoDB por exemplo :

@Autowired
MongoTemplate template;

// insere um novo registro		
template.insert("contacts", contact);

// insere/altera um registro
template.save("contacts", contact);

// remove um registro
template.remove(contact);

// lista todos os registros
List list = template.getCollection(collectionName, Contact.class);

Apesar do Spring Data suportar o JPA repository fiz uma implementação genérica para um repositório usando o Spring Data.

GenericRepositoryWithMongo.java – Repositório genérico

public abstract class GenericRepositoryWithMongo 

  @Autowired
  protected MongoTemplate template;
  protected Class targetClass;
  protected String collectionName;

  @SuppressWarnings("unchecked")
  public GenericRepositoryWithMongo() 
     this.targetClass = (Class) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];
  

  @PostConstruct
  public void initCollection() 
    if(this.targetClass.isAnnotationPresent(Document.class))
      Document document   = this.targetClass.getAnnotation(Document.class);
      this.collectionName = document.collection();
    
    else
      this.collectionName = this.targetClass.getSimpleName().toLowerCase();
    
  }

  public List getCollection() 
    return template.getCollection(collectionName, targetClass);
  

  public void persist(T entity) 
    template.insert(collectionName, entity);
  

  public void merge(T entity) 
    template.save(collectionName, entity);
  

  public void remove(T entity) 
    template.remove(entity);
  

  public List findAll() 
    return getCollection();
  

  public long count() 
    return getCollection().size();
  
}

E então a interface do repositório e sua implementação

ContactRepository.java – Repositório de contatos

public interface ContactRepository 

    public Contact findByEmail(String email);

    public void persist(Contact entity);

    public void merge(Contact entity);

    public void remove(Contact entity);

    public List findAll();

ContactRepositoryImpl.java – Implementação do repositório de contatos

@Service("contactRepository")
@Repository
public class ContactRepositoryImpl extends GenericRepositoryWithMongo implements ContactRepository

	public Contact findByEmail(String email) 
	   Criteria criteria	 = Criteria.where("email").is(email);
	   Query query 	         = new Query(criteria);
	   return template.findOne(query, targetClass);
	
}

Realmente me surpreendi com a facilidade da integração usando o Spring Data
é um exemplo bem simples da integração porem mais da o caminho das pedras para quem esta se aventurando no mundo NoSQL.
Espero que seja util..

Para quem tiver o interesse deixei app no git
https://github.com/FabioBatSilva/spring-mongodb

Abraço e até a próxima….

Click aqui para ver o post Original
Fábio B. Silva
Fabio B. Silva
http://www.flexria.com.br

« Entradas anteriores | Entradas recentes »

ACERCA

O que é o RedeRIA ?

O redeRIA não é nada mais que um agregador de feed's que disponibiliza o conteudo de varios blogs e autores ao redor do mundo RIA, actualmente agregamos mais de 2791 entradas vindas de 53 blogs especializados em ria’s, pelo que só fica a ganhar em assinar o feed ou seguir a comunidade no twitter.

Se acha que o seu blog ou um blog de um amigo é interessante e util para os leitores o redeRIA, faça a sua submissão aqui.

Feed: assine já
Twitter: siga-nos

GOOGLE

Votação


Deveria o RedeRia agregar conteúdo em inglês?
Ver Resultados

AUTORES


Eduardo KrausAlexandre TadashiBindableCognitiva SoluçõesDaniel LopesDaniel SchmitzDanielPedrinhaDClick TeamEbercomEdgard DavidsonElvis FernandesErko BrideeFabiel PrestesFábio Batista da SilvaFabio da SilvaFabriccio BernardesFelipe BorellaFlavia MoreiraGabriel VersalliniGabriela T. PerryIgor MusardoJanderson CardosoJoão AugustoJose Carlos FielKelps SousaLeonardo FrançaLucas MarçalLuis MessiasLuiz TarabalMario JuniorMário SantosMauro MartinsPablo SouzaPedro ClaudioreneRia BrazilriaPTRicardo CerqueiraRobson FernandesRodrigo Pereira FragaSaintBrSamuelFacchinelloSergio SouzaSilva DeveloperStefan HorochovecTech CaffeTecinforThiago BuenoVedVinícius SandimWillian ManoXAML Cast

PUBLICIDADE








Powered by Wordpress & msdevstudio.com