2010-07-10 4 views
7

나는이 프레임 워크가 특정 규칙이나 기술 또는 아키텍처를 따르도록 사용자를 보호 할 것입니다. Rails 나 Django와 비슷한 것. 이렇게하면 깊이 통합 된 플러그인을 구축 할 수 있습니다.ASP .NET MVC 위에 제기 된 웹 프레임 워크 MVC

Rails/Django를 사용할 때의 주요 이점 중 하나는 보석/플러그인입니다. 아시다시피, 관리자 페이지, 인증, 댓글, 리치 헬퍼 등 모든 것에 대한 보석을 찾을 수 있습니다.

현재 MVC는 DLL을 사용하여 해당 동작을 모방 할 수 있습니다. 그러나 내가 아는 한, MVC에는 깊이 통합 된 플러그인을 허용하는 표준 아키텍처가 없습니다. 예를 들어 코멘트 시스템을 가질 수 없습니다. 주석을 저장하려면 저장소가 필요하고 일반적인 MVC 프로젝트는 다음과 같이 될 수 있습니다. L2S/EF/NHibernate/MongoDB/등을 사용하여.

은이 작업을 수행 할 수있는 좋은 방법이되는 것을 나에게 보인다

  • 컨테이너 :

    • 이 핵심 엔진에 노출됩니다
    • MEF를 사용하는 중앙 "핵심 엔진"프로젝트를 수립/서비스 위치
    • IRepository와 같은 일부 인터페이스 (IRepository와 같은)
    • ApplicationStart와 같은 "후크"와 생각할 수있는 모든 후크/이벤트
    • 그 밖의 무엇?
  • 는 개발자 지금 (예를 들어이 IRepository의 인스턴스 것)이
    • 일부 구성 설정 이진은 "핵심 엔진"
    • 에 대한 참조를 추가 사용 "핵심 엔진"에 의존하는 모든 플러그인을 포함 할 수 있으며 해당 플러그인은 앱 이벤트 및 저장소에 대한 완전한 액세스 권한을 갖습니다.
    • 분명히 플러그인 개발자는 플러그인 핵심 엔진을 타겟으로하는 앱은 앱과 직접 이야기하지 않으며 엔진은 두 제품 사이의 중간 제품입니다.

    목표는 완벽한 엔터프라이즈 웹 프레임 워크가 아니라 ... 장고와 레일즈가 가지고있는 것과 MVC가 빠진 것처럼 보이는 것, 즉 무겁지만 인기있는 구성 요소의 높은 재사용 성입니다.

    이전에이 작업을 수행 했습니까? 이 작업을 수행하는 더 좋은 방법이 있습니까?

  • +0

    S # arp 아키텍처 및 ASP.NET MVC 다중 텐티시 (mvcex on codeplex)를 살펴보십시오. 최소한 S # arp는 여러분이 생각하는 것의 대부분을 수행 합니다만, 여전히 특정 라이브러리를 강요하지는 않습니다 (MEF를 사용하지 않습니다). 하지만 당신은 그것을 확장 할 수 있습니다 ;-) – queen3

    +0

    +1 나는 caliburn 마이크로 (http://caliburnmicro.codeplex.com/) 같은 생각이지만 ASP.Net MVC를위한 멋진 것입니다. –

    답변

    -1

    나는 Orchard project이 당신이 찾고있는 것과 비슷하다고 생각합니다.

    +0

    오차드 (Orchard)는 웹 프레임 워크보다 CMS를 더 많이 사용합니다. 게다가 그것은 MVC 위에 구축되지 않습니다. – ANaimi

    1

    MVC Turbine이 제공하는 것을 볼 수 있습니다. 당신이 언급 한 전부는 아니지만 좋은 출발점이 될 것입니다.