Por que o mundo .NET não tem nada como rails / grails / django / roo? [fechadas]

10

Parece-me que as plataformas da Web de rápido desenvolvimento mudarão radicalmente o mundo dos aplicativos da Web.

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

Mas, pelo que 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, por que não?

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

Então, eu estou falando sobre estruturas que lidam com todo o CRUD com uma mentalidade de convenção sobre configuração. Se alguém tiver as palavras certas para o que estou falando, me avise.

Eric Wilson
fonte

Respostas:

5

Parece-me que ainda não existe um nome para esse tipo de estrutura que você está falando neste tópico. Eu os chamo de momento apenas Estruturas do tipo RAILS : Estruturas que aumentam a produtividade orquestrando outras estruturas existentes com o objetivo de resolver as necessidades básicas da maioria dos aplicativos da Web, mas ao mesmo tempo ocultando todas as complexidades do desenvolvedor.

Por necessidades básicas, entendo a implementação de um provedor de persistência, um contêiner de inyection de dependência, uma ferramenta de registro em log, uma plataforma MVC, um mecanismo de modelos HTML, um Starter Kit de modelos de sites com predefinições CSS, uma estrutura de segurança e alguns recursos da biblioteca Javascript para AJAX e outras coisas legais. As estruturas do tipo RAILS orquestram todas essas estruturas e ferramentas com base no modelo de domínio (as entidades do seu sistema com seus atributos).

Graças ao princípio Convenção sobre a configuração, essas estruturas evitam a necessidade de definir muitos arquivos de configuração geralmente exigidos pelas estruturas que eles orquestram (como Spring, Spring MVC, Hibernate, Log4J etc.), assumindo configurações por padrão com base em nomes. , estrutura e metadados incluídos nas mesmas definições de classes.

Graças às linguagens dinâmicas usadas por essas estruturas (como Ruby, Groovy, Python, Clojure etc.), com exceção do SpringRoo, que implementa o comportamento dinâmico em Java usando o AspectJ, a funcionalidade que pertence às estruturas abaixo é estendida e são disponibilizados ao desenvolvedor de maneira tão uniforme e elegante que ele apenas conhece as tecnologias subjacentes.

Finalmente, graças à técnica do andaime, testes de unidade, testes de integração, controladores e visualizações são gerados automaticamente para as principais funções (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 ocorra em breve. Já existem ótimas estruturas, ferramentas e bibliotecas disponíveis no mundo .NET que podem ser orquestradas por uma nova estrutura semelhante ao RAILS criada para o CLR. Existem Unity, Spring.NET e Castle Windsor, entre outros, para as necessidades de inyection de dependência. O Entity Framework 4, NHibernate e iBatis.NET são ótimos Provedores de Persistência do .NET. O ASP.NET MVC chegou com suporte para vários mecanismos de modelo além do tradicional ASP.NET.

Mesmo que ninguém consiga usar uma linguagem DLR para criar esse tipo de estrutura, qualquer pessoa com vontade suficiente poderá seguir o caminho do SpringSource e implementar uma estrutura semelhante ao RAILS com alguma linguagem estática como F #, C # ou VB.NET, usando um Aspect - Container orientado (como AspectSharp ou Gripper-LOOM.NET) para obter comportamento dinâmico.

Gostaria muito de saber sobre qualquer grupo de pessoas que tentam desenvolver essa estrutura no .NET.


fonte
4

Não sei o que você quer dizer com "plataformas web de desenvolvimento rápido". A definição de "desenvolvimento rápido" com que estou familiarizado não tem nada a ver com linguagens, paradigmas ou estruturas, 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 o Grails ou o Roo antes, mas o Django e o Rails são estruturas MVC, então sua contrapartida no .NET seria o ASP.NET MVC .

Thomas Owens
fonte
11
Bem, eu veria o ASP.NET MVC como o equivalente do Spring MVC. E dizer que o Rails é uma estrutura MVC é como dizer que o Stackoverflow é um site de QA, como troca de especialistas. É uma afirmação verdadeira, mas perde a característica mais importante e a razão do seu sucesso selvagem.
Eric Wilson
11
Por favor, explique "a característica mais importante". O Rails nada mais é do que uma estrutura MVC para a linguagem Ruby. Isso captura tudo sobre isso.
Thomas Owens
2
Bem, o Spring é uma estrutura MVC para Java, mas não faz muito do que torna Rails e Grails excelentes. Por exemplo, com o grails, depois de criar um objeto de domínio, posso digitar grails generate-alle o grails produz controladores, visualizações e gerencia a persistência.
Eric Wilson
3

Você pode entrar no Visual Studio e arrastar e soltar 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 credenciais).

Não que essa seja a maneira mais usada ou até recomendada, mas realmente não fica muito mais fácil do que isso.

JeffO
fonte
0

Como os aplicativos da web .NET têm um ciclo de construção.

O Ruby / Python é uma linguagem muito ágil / ágil e dinâmica.

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

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

hasen
fonte
11
Bem, os aplicativos Java têm um ciclo de construção, mas o Spring Roo ainda faz maravilhas para aplicativos Java / Spring. Então, acho que há outras questões aqui.
11138 Eric Wilson #