ti-enxame.com

Por que o mundo .NET não tem nada como Rails / grails / Django / roo?

Parece-me que as plataformas web de rápido desenvolvimento vão mudar radicalmente o mundo das aplicações web.

Já se passaram cinco anos desde que Rails 1.0 foi lançado para Ruby, e desde então vimos Grails para Groovy, Django para Python e Roo para Java .

Mas, até onde sei (que provavelmente é limitado, sendo um programador Java/Groovy) não existe uma estrutura semelhante para C #.

Será que tal coisa existe? Se não, porque não?

Edit : É bem possível que eu não esteja usando as palavras certas quando digo "desenvolvimento rápido", mas estou falando sobre estruturas que podem permitir que você construa um mecanismo de blog em funcionamento em 30 minutos . Você não poderia fazer isso razoavelmente com, digamos, Java, Spring e Hibernate, dadas as várias configurações necessárias para permitir que seus controladores sejam encontrados, e a configuração e o código necessários para suas entidades persistirem e serem recuperadas.

Portanto, estou falando sobre frameworks que lidam com todos os CRUD com uma mentalidade de convenção sobre configuração. Se alguém tiver as palavras certas para o que estou falando, me avise.

10
Eric Wilson

Parece-me que ainda não há um nome para esse tipo de estrutura de que vocês estão falando neste tópico. Eu os chamo de momento apenas Rails-like Frameworks: Frameworks que aumentam a produtividade orquestrando outros frameworks existentes com o propósito de resolver as necessidades básicas da maioria das aplicações web, mas ao mesmo tempo escondendo todas as complexidades do desenvolvedor.

Por necessidades básicas, entendo a implementação de um provedor de persistência, um contêiner de inicialização de dependência, uma ferramenta de registro, uma plataforma MVC, um mecanismo de modelo HTML, um kit inicial de modelo de site com predefinições CSS, uma estrutura de segurança e alguma biblioteca Javascript para AJAX recursos e outras coisas legais. Os Rails-like Frameworks orquestram todos esses frameworks e ferramentas com base no modelo de Domínio (as entidades de seu sistema com seus atributos).

Graças ao princípio da convenção sobre a configuração, esses frameworks evitam a necessidade de definir muitos arquivos de configuração normalmente exigidos pelos frameworks que orquestram (como Spring, Spring MVC, Hibernate, Log4J, etc.), assumindo configurações por padrão com base na nomenclatura , estrutura e metadados incluídos nas mesmas definições de classes.

Graças às linguagens dinâmicas que esses frameworks fazem uso (como Ruby, Groovy, Python, Clojure, etc.), com exceção de SpringRoo que implementa comportamento dinâmico em Java usando AspectJ, a funcionalidade que pertence as estruturas subjacentes são estendidas e disponibilizadas para o desenvolvedor de uma maneira uniforme e elegante que ele/ela está ciente das tecnologias subjacentes.

Finalmente, graças à técnica de Scaffold, testes unitários, testes de integração, controladores e visualizações são gerados automaticamente para as funções principais (CRUD) sobre cada um dos objetos de domínio definidos pelo desenvolvedor.

No mundo .NET nada foi desenvolvido ainda, seguindo todas as definições anteriores. Mas nada impede que isso aconteça logo. Existem ótimos frameworks, ferramentas e bibliotecas já disponíveis no mundo .NET que podem ser orquestrados por um novo framework Rails feito para o CLR. Existem Unity, Spring.NET e Castle Windsor, entre outros, para as necessidades de injeção de dependência. Entity Framework 4, NHibernate e iBatis.NET são provedores de persistência .NET muito bons. A ASP.NET MVC chegou fortemente com suporte para vários Template Engines além da ASP.NET tradicional.

Mesmo que ninguém consiga usar uma linguagem DLR para construir este tipo de estrutura, qualquer pessoa com vontade suficiente pode seguir o caminho SpringSource e implementar uma estrutura semelhante a Rails com alguma linguagem estática como F #, C # ou VB.NET, fazendo uso de um aspecto -Oriented Container (como AspectSharp ou Gripper-LOOM.NET) para obter um comportamento dinâmico.

Eu adoraria saber sobre qualquer grupo de pessoas tentando desenvolver tal estrutura em .NET.

5
Rodrigo Salinas

Não sei o que você quer dizer com "plataformas de desenvolvimento rápido da web". A definição de "desenvolvimento rápido" com a qual estou familiarizado não tem nada a ver com linguagens, paradigmas ou frameworks, mas sim com o uso de prototipagem rápida e desenvolvimento iterativo para produzir um sistema. Qualquer linguagem ou estrutura pode ser usada igualmente bem.

Eu nunca usei Grails ou Roo antes, mas Django e Rails são ambos frameworks MVC, então sua contraparte em .NET seria ASP .NET MVC .

4
Thomas Owens

Você pode entrar no Visual Studio e arrastar e soltar os controles em uma página da web e conectá-los a um banco de dados com pouco ou nenhum código. Um clique para testar/visualizar. E um clique para fazer o upload para um site (ok, insira as credenciais).

Não que essa seja a maneira mais usada ou mesmo recomendada de fazer isso, mas realmente não pode ser muito mais fácil do que isso.

3
JeffO

Porque os aplicativos da Web .NET têm um ciclo de construção.

Ruby/Python são linguagens muito ágeis/ágeis e dinâmicas.

Onde eu trabalho, temos um enorme aplicativo da web .NET e os tempos de compilação são comparáveis ​​aos de um programa C++ de médio a grande porte.

No meu sobressalente, desenvolvo aplicativos da Web em python e o tempo de compilação é 0. Simplesmente não há etapa de compilação. O interpretador em execução apenas recarrega os arquivos .py conforme você os salva.

0
hasen