none
Qual o nível de interatividade que podemos obter com o ASP MVC?

    Question

  • Olá, senhores. Boa tarde.

    Vou descrever o que já fiz em Silverlight e assim minha pergunta deve ficar mais clara.

    Antes de mais nada: uso o Prism como framework de integração dos módulos. Ele usa reflection para resolver/fornecer dados da estrutura do aplicativo inicial (user, connection, frames ...) para os módulos que são chamados. Isso permite que haja uma transparência "a là WinForms" para toda a aplicação, tornando tudo mais fácil.

    Logicamente, os controles da UI são muito ricos, com possibilidade de arrastar-e-soltar entre os campos, mostrar e esconder partes de um formulário interativamente. Exemplo: em um cadastro de Contatos, o usuário pode escolher entre criar um registro para pessoas jurídicas ou pessoas físicas. Quando escolhem um cadastro de empresa, o campo de documento passa a trabalhar com a máscara de CNPJ e uma parte especial do formulário se abre (desliza) para mostrar os campos de Inscrição Estadual, Nome Fantasia e links para pessoas físicas que se relacionam com a empresa.

    Se clico em um destes links, um outro formulário, resumido como um cartão de visitas, se abre mostrando dados sobre o gerente, secretária, comprador responsável, etc.

    No que diz respeito a dados, dentro de um módulo como Estoques, eu leio milhares de registros em um objeto que me ajuda a mostrá-los interativamente segundo o propósito do formulário em foco.

    +----+--------+-----------+---------+---------+---------+-----------+---------+---------+
    | ID | Código | Descrição | Classe  | Classe  | Classe  | CódigoPai | Preço 1 | Preço 2 |
    |    |        |           | Nivel 1 | Nivel 2 | Nivel 3 |           |         |         |
    +----+--------+-----------+---------+---------+---------+-----------+---------+---------+

    Usando o WCF, a velocidade de transferência é muito rápida, então eu aloco uma grande tabela de referência com estes dados básicos sobre os produtos armazenados. Tudo fica na memória e pode ser manipulado com eficiência e compartilhado entre vários módulos, se este for o objetivo e/ou necessidade.

    Com tal tabela à disposição. Monto tree-views com os assuntos principais e quando o usuário clica em um item desta árvore, os produtos que fazem parte daquele grupo são imediatamente mostrados em um grid com mais detalhes, em um quadro à direita, tal como uma implementação estilo Outlook.

    Os itens do grid têm um campo de uso local (que não foi obtido do banco de dados) que se traduz em um check-box. Um usuário pode, por exemplo, marcar 13 produtos de um assunto como “Frios e Embutidos”, mais 5 de outro assunto como “Sopas Secas”, mais 20 de um terceiro assunto tal como “Laticínios”, etc. Finalmente, clicando em um botão “Montar árvore”, todos os produtos marcados são imediatamente transferidos para popular o tree-view inicial e, agora, a medida que são selecionados sua ficha completa aparece em um formulário que sobrepõe o grid anterior. A cada novo clique na árvore, apenas os dados internos dos campos são modificados. Sem refreshs, sem frames piscando, sem qualquer ruído de “interrupção de sinal”.

    Todas estas funcionalidades são muito, muito, muito fáceis de serem implementadas no Silverlight, inclusive com bom uso de MVVM. Tal como se estivéssemos trabalhando com os aplicativos em WinForms.

    Finalmente a pergunta: o quão próximo deste “mundo perfeito” o ASP MVC pode chegar?


    Bom dia, bom trabalho.



    Thursday, May 17, 2012 6:27 PM

Answers

  • Ricardo, 

        Se sua intenção for criar aplicações ricas que rodem no navegador sem depender de plugin como Silverlight e possibilidade de funcionar em outras plataformas (iPad, Android, etc)  vai ter que abandonar o .NET no lado cliente e partir para soluções em HTML5, CSS3, Javascript e provavelmente usar bibliotecas como Jquery. 

         Alguns tradicionais fornecedores de componentes para .NET como Telerik e ComponentOne   estão começando a lançar produtos para facilitar a criação  de aplicações ricas em Javascript não ficando mais limitados a soluções Microsoft, veja

    http://www.kendoui.com/

    http://wijmo.com/

    Há opções MVVM em Javascript como knockoutjs e kendoui

    http://knockoutjs.com/examples/helloWorld.html  

    http://demos.kendoui.com/web/mvvm/index.html

    Estas ferramentas parecem que estão um pouco longe do que o Silverlight oferece hoje, não conheço a fundo o Silverlight e estes frameworks de MVVM, mas talvez sirva para sua avaliação.Acredito que possa trabalhar de forma parecida com o que faz hoje no Silverlight, cria serviços em WCF que disponibilizam objetos em Javascript (JSON)  em vez de objetos .NET e trabalha com estes objetos na sua aplicação em Javascript no lado do cliente. 

    A medida que Microsoft vai aderindo ao HTML5 no Internet Explorer, as empresas vão aposentando Windows XP e colocando navegadores Web mais modernos acho que programação de aplicações mais ricas em Javascript será uma alternativa viável ao Silverlight.

    A Microsoft está dando sinais que provavelmente não terá novas versões do Silverlight, parece que o Windows 8  com processador ARM não dará mais suporte ao Silverlight, então acho que deve começar avaliar alternativas ao Silverlight.

    Ricardo S.

    Sunday, May 20, 2012 4:29 AM

All replies

  • No MVC não temos controles "prontos" do tipo drag-n-drop, tudo vai depender da sua habilidade com HTML, CSS e JavaScript para criar a interatividade que você necessita na parte do cliente.

    A parte servidor creio que é a mais simples do processo, usando EF e camadas a o desenvolvimento/manutenção é rápida e simplificada porém com uma curva de aprendizado um pouco maior que WebForms.


    Friday, May 18, 2012 4:21 PM
  • Como o João Prado comentou, não existe o drag-n-drop hehehe

    Mas são paradigmas diferentes, na web tudo funciona a cada requisição; você tem a parte servidor e a parte cliente; e o teu client nesse caso, seria o navegador ao invés do Silverlight.

    Para se ter uma idéia de como tentar fazer da maneira mais cool segue dois projetos open-sources, criados pelo pessoal da Microsoft mesmo para se ter como base:

    Music Store: http://mvcmusicstore.codeplex.com/
    Nerd Dinner: http://nerddinner.codeplex.com/

    Att - Mello.

    Saturday, May 19, 2012 12:39 PM
  • Ricardo, 

        Se sua intenção for criar aplicações ricas que rodem no navegador sem depender de plugin como Silverlight e possibilidade de funcionar em outras plataformas (iPad, Android, etc)  vai ter que abandonar o .NET no lado cliente e partir para soluções em HTML5, CSS3, Javascript e provavelmente usar bibliotecas como Jquery. 

         Alguns tradicionais fornecedores de componentes para .NET como Telerik e ComponentOne   estão começando a lançar produtos para facilitar a criação  de aplicações ricas em Javascript não ficando mais limitados a soluções Microsoft, veja

    http://www.kendoui.com/

    http://wijmo.com/

    Há opções MVVM em Javascript como knockoutjs e kendoui

    http://knockoutjs.com/examples/helloWorld.html  

    http://demos.kendoui.com/web/mvvm/index.html

    Estas ferramentas parecem que estão um pouco longe do que o Silverlight oferece hoje, não conheço a fundo o Silverlight e estes frameworks de MVVM, mas talvez sirva para sua avaliação.Acredito que possa trabalhar de forma parecida com o que faz hoje no Silverlight, cria serviços em WCF que disponibilizam objetos em Javascript (JSON)  em vez de objetos .NET e trabalha com estes objetos na sua aplicação em Javascript no lado do cliente. 

    A medida que Microsoft vai aderindo ao HTML5 no Internet Explorer, as empresas vão aposentando Windows XP e colocando navegadores Web mais modernos acho que programação de aplicações mais ricas em Javascript será uma alternativa viável ao Silverlight.

    A Microsoft está dando sinais que provavelmente não terá novas versões do Silverlight, parece que o Windows 8  com processador ARM não dará mais suporte ao Silverlight, então acho que deve começar avaliar alternativas ao Silverlight.

    Ricardo S.

    Sunday, May 20, 2012 4:29 AM
  • Nível de interatividade vai depender muito de jquery, css e html como já falaram. Alguns plugins pra ajudar esse lado:

    http://jqueryui.com/demos/

    http://www.sencha.com/products/extjs/examples/

    Sobre Silverlight esquece mesmo, só para casos muito específicos que não tenha outra alternativa e de jeito nenhum para acesso de qualquer lugar via web.

    Sunday, June 03, 2012 1:34 PM