Essa foi mais uma discussão sobre o que as pessoas pensam hoje em dia sobre como dividir um aplicativo da web.
Estou acostumado a criar um aplicativo MVC com todas as suas visualizações e controladores. Normalmente, eu criaria uma visualização completa e passaria isso de volta ao navegador em uma solicitação de página inteira, a menos que houvesse áreas específicas que eu não quisesse preencher imediatamente e usaria os eventos de carregamento da página DOM para chamar o servidor para carregar outras áreas usando AJAX.
Além disso, quando se tratava de atualização parcial da página, eu chamaria um método de ação MVC que retornaria o fragmento HTML que eu poderia usar para preencher partes da página. Isso seria para áreas que eu não queria diminuir o carregamento da página inicial ou para áreas que se encaixavam melhor com chamadas AJAX. Um exemplo seria para paginação de tabela. Se você quiser passar para a próxima página, eu preferiria que uma chamada AJAX recebesse essas informações em vez de usar uma atualização completa da página. Mas a chamada AJAX ainda retornaria um fragmento HTML.
Minha pergunta é. Meus pensamentos são arcaicos porque eu tenho um background .net em vez de um background front-end puro?
Um desenvolvedor inteligente de front end com quem trabalho, prefere não fazer quase nada nas visualizações do MVC e prefere fazer tudo no front end. Até as chamadas da API da web que preenchem a página. Portanto, em vez de chamar um método de ação MVC, que retorna HTML, ele prefere retornar um objeto padrão e usar javascript para criar todos os elementos da página.
A maneira de desenvolvedor front-end significa que quaisquer benefícios que eu normalmente recebo com a validação do modelo MVC, incluindo a validação do lado do cliente, desapareceriam. Isso também significa que quaisquer benefícios que eu recebo com a criação de visualizações, com modelos de html fortemente tipados etc., desapareceriam.
Acredito que isso significaria que eu precisaria escrever a mesma validação para validação de front-end e back-end. O javascript também precisaria ter muitos métodos para criar todas as diferentes partes do DOM. Por exemplo, ao adicionar uma nova linha a uma tabela, normalmente eu usaria a exibição parcial do MVC para criar a linha e depois a retornaria como parte da chamada AJAX, que será injetada na tabela. Usando uma maneira pura de front-end, o javascript usaria um objeto (por exemplo, um produto) para a linha da chamada da API e, em seguida, criaria uma linha a partir desse objeto. Criando cada parte individual da linha da tabela.
O site em questão terá várias áreas diferentes, desde administração, formulários, pesquisa de produtos, etc. Um site que eu acho que não precisa ser arquitetado em um único aplicativo de página.
Quais são os pensamentos de todos sobre isso?
Estou interessado em ouvir de desenvolvedores de front-end e de back-end.