Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

DiegoAngra07

ASP.NET MVC - Como fazer um sistema com janelas?

Recommended Posts

Boa tarde pessoal,

 

Estou desenvolvendo uma solução em ASP.NET MVC, aprendendo ainda e fazendo testes antes de partir pro desenvolvimento real.

 

Gostaria de saber se tem como simular o comportamento de um sistema desktop, você logar em um ambiente com um menu, e cada opção de menu abre uma janela dentro do mesmo ambiente, sem mudar de página / link / etc. Que nem abrir várias janelas do explorer no seu Windows.

 

Dá pra fazer isso com MVC? Se sim, quais tutoriais seguir? É o ideal fazer com ele? Senão, com que tecnologia simular tal comportamento em um sistema web?

 

Muito obrigado desde já.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde, primeiramente obrigado pelas respostas caros colegas.

 

Nenhuma das duas soluções propostas atinge totalmente meu objetivo.

 

- Abrindo as páginas em nova aba é ok, mas para certos usuários eles acabam se perdendo entre as telas.

- Abrir uma modal não é o ideal pois o usuário fica "preso" naquela janela, por exemplo eu não consigo abrir 2 ou 3 janelas simultaneamente e permitir que ele arraste e alterne entre elas.

 

Um exemplo funcional:

 

O usuário está digitando um documento, e precisa alterar no cadastro do cliente o campo Endereço ou comparar as informações de um cadastro com o de outro cliente.

 

- Com modal, ele não consegue colocar as duas janelas lado a lado dentro do mesmo ambiente para comparar.

- Com nova aba ele consegue e atende. Ele pode abrir em uma nova aba o cadastro de clientes e consultar / alterar o que precisa. Mas como disse ainda não é a usabilidade ideal para usuários mais comuns.

 

Tem alguma outra sugestão ou exemplo? Depois de tanto pesquisar estou começando a achar que é impossível fazer isso com APS.NET MVC.

 

Mais uma vez agradeço pela atenção e ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, não vejo como fazer senão em outra aba, ou até mesmo outra janela do navegador, ou uma janela popUp

 

Fonte: https://www.codigofonte.net/dicas/javascript/159_abrir-janela-popup-ao-clicar-no-link

function abrir(URL) {


  var width = 150;
  var height = 250;


  var left = 99;
  var top = 99;


  window.open(URL,'janela', 'width='+width+', height='+height+', top='+top+', left='+left+', scrollbars=yes, status=no, toolbar=no, location=no, directories=no, menubar=no, resizable=no, fullscreen=no');


}
</script>


<a href="javascript:abrir('http://codigofonte.net/');">Clique Aqui</a>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso não tem haver com ASP.NET MVC, o que você quer fazer é Javascript, CSS e HTML.

 

A sugestão do itlpps é a forma mais rápida de fazer uma nova janela com exposição de informações.

 

Mas se quiser fazer algo mais elaborado como disse no primeiro post, terá que usar algum framework javascript, como extJs, jQueryUI, entre outros.

 

Seu sistema deverá ser baseado em Ajax para conseguir isso.

 

Veja um exemplo com extJs (http://dev.sencha.com/deploy/ext-4.0.1/examples/desktop/desktop.html)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso não tem haver com ASP.NET MVC, o que você quer fazer é Javascript, CSS e HTML.

 

A sugestão do itlpps é a forma mais rápida de fazer uma nova janela com exposição de informações.

 

Mas se quiser fazer algo mais elaborado como disse no primeiro post, terá que usar algum framework javascript, como extJs, jQueryUI, entre outros.

 

Seu sistema deverá ser baseado em Ajax para conseguir isso.

 

Veja um exemplo com extJs (http://dev.sencha.com/deploy/ext-4.0.1/examples/desktop/desktop.html)

 

Muito legal.. :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coincidentemente em meio a outra pesquisa encontrei um plugin que utiliza JQuery + Bootstrap. Segue abaixo:

 

http://earmbrust.github.io/bootstrap-window/

 

Mas volto a dizer, você terá que usar ajax e isso poderá ser feito juntamente com ASP.NET MVC.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

DiegoAngra07, não sei se vc já conseguiu resolver seu problema, mas a melhor forma de você conseguir esse efeito de "windows" é javascript + ajax + code behind. O jQuery tem recursos interessantes para você não dar reload na página e o teu usuário perder o trabalho em paralelo. $.address para alterar os valores na url, $.load para carregar um conteúdo de um arquivo html (tipo um esquema de template) e aplicar em um container... e por aí vai. Em nossa empresa temos um sistema de atendimento com essa idéia.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Querendo ou não, você não vai conseguir emular eficientemente um desktop em um ambiente web por dois motivos:

 

1. Ambientes web não foram feitos para serem multitarefas neste modelo de janelas, porque você tem que pensar que o usuário já vai estar utilizando seu sistema de dentro de um outro aplicativo (o browser), utilizar jQuery UI e outras coisas para tentar "simular" o comportamento de uma janela nunca vai ser tão simples pelo próximo motivo que vou te dizer.

 

2. A lógica para você implementar um sistema deste tipo é extremamente complexa do ponto de vista de controladores, porque você precisa ter um "watcher" que vai observar e controlar o status de todas as janelas a fim de você poder saber tudo o que está acontecendo dentro do seu sistema, seria uma espécie de "multi processamento" de um sistema operacional. Vários processos com dados compartilhados através de um controlador de memória. Os processos não sabem da existência um do outro, mas o controlador sim.

 

Então eu aconselho utilizar outros meios de trabalho para aplicações web... Pode ser Ajax ou qualquer outro tipo, o Google tem modelos muito interessantes de dashboards bem legais.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.