왜 .NET 세계에 rails / grails / django / roo 같은 것이 없습니까? [닫은]


10

빠른 개발 웹 플랫폼이 웹 응용 프로그램의 세계를 근본적으로 바꿀 것 같습니다.

Ruby 용 Rails 1.0이 출시 된 지 5 년이되었으며 그 이후로 Groovy 용 Grails, Python 용 Django 및 Java 용 Roo를 보았습니다.

그러나 내 지식 (아마도 Java / Groovy progammer이기 때문에 제한적 임)에는 C #에 대한 유사한 프레임 워크가 없습니다.

그런 것이 있습니까? 그렇지 않다면 왜 안됩니까?

편집 : "빠른 개발"이라고 말할 때 올바른 단어를 사용하지 않을 가능성이 있지만 30 분 안에 작동하는 블로그 엔진을 구축 할 수있는 프레임 워크에 대해 이야기하고 있습니다. 컨트롤러를 찾는 데 필요한 다양한 구성과 엔티티를 유지하고 검색하는 데 필요한 구성 및 코드를 감안할 때 Java, Spring 및 Hibernate로 합리적 으로이 작업을 수행 할 수 없습니다.

저는 컨피규레이션 오버 컨피규레이션 방식으로 모든 CRUD를 처리하는 프레임 워크에 대해 이야기하고 있습니다. 누군가 내가 말하는 것에 대한 올바른 단어를 가지고 있다면 알려주십시오.

답변:


5

이 스레드에서 모두 이야기하고있는 이런 종류의 프레임 워크에는 아직 이름이없는 것 같습니다. 나는 잠시 동안 그들에게 전화 단지 레일과 같은 프레임 워크 : 프레임 워크 대부분의 웹 애플리케이션의 기본적인 요구 사항을 해결하는 목적으로 기존의 프레임 워크를 꾸미고, 그러나 동시에 개발자의 모든 복잡성을 숨기고 증가 생산성.

기본 요구 사항은 Persistence Provider, Dependency Inyection Container, 로깅 도구, MVC 플랫폼, HTML 템플릿 엔진, CSS 사전 설정이 포함 된 웹 사이트 템플릿 스타터 키트, 보안 프레임 워크 및 AJAX 기능을위한 일부 Javascript 라이브러리의 구현을 의미합니다. 그리고 다른 멋진 것들. RAILS와 유사한 프레임 워크는 도메인 모델 (시스템 속성이있는 시스템 엔티티)을 기반으로 이러한 모든 프레임 워크와 도구를 조정합니다.

컨피규레이션 오버 컨벤션 (convention-over-Configuration) 원칙 덕분에,이 프레임 워크는 기본적으로 이름 지정을 기반으로 구성을 가정 할 때 일반적으로 오케스트레이션하는 프레임 워크 (Spring, Spring MVC, Hibernate, Log4J 등)에 필요한 많은 구성 파일을 정의 할 필요가 없습니다. , 구조 및 메타 데이터가 동일한 클래스 정의에 포함됩니다.

AspectJ를 사용하여 Java에서 동적 동작을 구현하는 SpringRoo를 제외하고 이러한 프레임 워크가 사용하는 동적 언어 (Ruby, Groovy, Python, Clojure 등) 덕분에 아래 프레임 워크에 속하는 기능이 확장되고 개발자는 기본 기술 만 알기 위해 균일하고 우아한 방식으로 개발자에게 제공됩니다.

마지막으로 스캐 폴드 기술 덕분에 개발자가 정의한 각 도메인 개체에 대한 주요 기능 (CRUD)에 대해 단위 테스트, 통합 테스트, 컨트롤러 및보기가 자동으로 생성됩니다.

.NET 세계에서는 이전의 모든 정의에 따라 아직 개발 된 것이 없습니다. 그러나 그 일이 곧 발생하는 것을 막는 것은 없습니다. .NET 세계에서 이미 사용할 수있는 훌륭한 프레임 워크, 도구 및 라이브러리가 있으며 CLR 용으로 만들어진 새로운 RAILS와 유사한 프레임 워크로 조정할 수 있습니다. Dependency Inyection 요구 사항에는 Unity, Spring.NET 및 Castle Windsor가 있습니다. Entity Framework 4, NHibernate 및 iBatis.NET은 매우 훌륭한 .NET 지속성 공급자입니다. ASP.NET MVC는 기존 ASP.NET 외에도 다양한 템플릿 엔진을 지원하여 강력하게 출시되었습니다.

아무도 이러한 종류의 프레임 워크를 구축하기 위해 DLR 언어를 사용하지 않더라도 SpringSource 경로를 따라 가면 Aspect를 사용하여 F #, C # 또는 VB.NET과 같은 정적 언어로 RAILS와 같은 프레임 워크를 구현할 수 있습니다 -양방향 컨테이너 (AspectSharp 또는 Gripper-LOOM.NET 등)는 동적 인 동작을 얻습니다.

.NET에서 이러한 프레임 워크를 개발하려는 사람들 그룹에 대해 알고 싶습니다.


4

"빠른 개발 웹 플랫폼"이 무슨 뜻인지 모르겠습니다. 내가 익숙한 "빠른 개발"의 정의는 언어, 패러다임 또는 프레임 워크와는 관련이 없지만 시스템을 만들기 위해 빠른 프로토 타이핑과 반복 개발을 사용하는 것입니다. 모든 언어 또는 프레임 워크를 동일하게 사용할 수 있습니다.

이전에 Grails 또는 Roo를 사용한 적이 없지만 Django와 Rails는 모두 MVC 프레임 워크이므로 .NET의 대응 요소는 ASP.NET MVC 입니다.


1
ASP.NET MVC를 Spring MVC의 대응으로 생각합니다. Rails가 MVC 프레임 워크라고 말하는 것은 Stackoverflow가 전문가 교환과 같은 QA 사이트라고 말하는 것과 같습니다. 그것은 진실한 진술이지만, 가장 중요한 특징과 그 성공의 이유를 놓친 것입니다.
Eric Wilson

1
"가장 중요한 기능"을 설명하십시오. Rails는 Ruby 언어를위한 MVC 프레임 워크에 지나지 않습니다. 그것은 그것에 관한 모든 것을 포착합니다.
Thomas Owens

2
Spring은 Java 용 MVC 프레임 워크이지만 Rails와 Grails를 훌륭하게 만드는 많은 기능을 수행하지는 않습니다. 예를 들어 grails를 사용하면 도메인 개체를 만든 후 grails generate-all컨트롤러를 생성하고 grails를 생성하여 지속성을 관리 할 수 ​​있습니다.
Eric Wilson

3

Visual Studio로 이동하여 웹 페이지에서 컨트롤을 끌어서 놓아 코드없이 거의 데이터베이스에 연결할 수 있습니다. 한 번의 클릭으로 테스트 /보기 한 번의 클릭으로 웹 사이트에 업로드하십시오 (확인, 자격 ​​증명 입력).

이것이 가장 많이 사용되거나 권장되는 방법은 아니지만 실제로는 이것보다 훨씬 쉽지 않습니다.


0

.NET 웹 애플리케이션에는 빌드주기가 있기 때문입니다.

Ruby / Python은 매우 민첩하고 민첩하며 역동적 인 언어입니다.

내가 일하는 곳에서는 거대한 .NET 웹 응용 프로그램이 있으며 컴파일 시간은 일반적인 중대형 C ++ 프로그램과 비슷합니다.

여분의 파이썬에서 웹 응용 프로그램을 개발하고 컴파일 시간은 0입니다. 컴파일 단계는 전혀 없습니다. 실행중인 인터프리터는 .py 파일을 저장할 때 다시로드합니다.


1
Java 애플리케이션에는 빌드주기가 있지만 Spring Roo는 여전히 Java / Spring 애플리케이션에서 놀라운 기능을 수행한다. 여기에 다른 문제가 있다고 생각합니다.
Eric Wilson
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.