나는이 프레임 워크가 특정 규칙이나 기술 또는 아키텍처를 따르도록 사용자를 보호 할 것입니다. Rails 나 Django와 비슷한 것. 이렇게하면 깊이 통합 된 플러그인을 구축 할 수 있습니다.ASP .NET MVC 위에 제기 된 웹 프레임 워크 MVC
Rails/Django를 사용할 때의 주요 이점 중 하나는 보석/플러그인입니다. 아시다시피, 관리자 페이지, 인증, 댓글, 리치 헬퍼 등 모든 것에 대한 보석을 찾을 수 있습니다.
현재 MVC는 DLL을 사용하여 해당 동작을 모방 할 수 있습니다. 그러나 내가 아는 한, MVC에는 깊이 통합 된 플러그인을 허용하는 표준 아키텍처가 없습니다. 예를 들어 코멘트 시스템을 가질 수 없습니다. 주석을 저장하려면 저장소가 필요하고 일반적인 MVC 프로젝트는 다음과 같이 될 수 있습니다. L2S/EF/NHibernate/MongoDB/등을 사용하여.
은이 작업을 수행 할 수있는 좋은 방법이되는 것을 나에게 보인다
- 컨테이너 :
- 이 핵심 엔진에 노출됩니다
- MEF를 사용하는 중앙 "핵심 엔진"프로젝트를 수립/서비스 위치
- IRepository와 같은 일부 인터페이스 (IRepository와 같은)
- ApplicationStart와 같은 "후크"와 생각할 수있는 모든 후크/이벤트
- 그 밖의 무엇?
는
- 일부 구성 설정 이진은 "핵심 엔진"
- 에 대한 참조를 추가 사용 "핵심 엔진"에 의존하는 모든 플러그인을 포함 할 수 있으며 해당 플러그인은 앱 이벤트 및 저장소에 대한 완전한 액세스 권한을 갖습니다.
- 분명히 플러그인 개발자는 플러그인 핵심 엔진을 타겟으로하는 앱은 앱과 직접 이야기하지 않으며 엔진은 두 제품 사이의 중간 제품입니다.
목표는 완벽한 엔터프라이즈 웹 프레임 워크가 아니라 ... 장고와 레일즈가 가지고있는 것과 MVC가 빠진 것처럼 보이는 것, 즉 무겁지만 인기있는 구성 요소의 높은 재사용 성입니다.
이전에이 작업을 수행 했습니까? 이 작업을 수행하는 더 좋은 방법이 있습니까?
S # arp 아키텍처 및 ASP.NET MVC 다중 텐티시 (mvcex on codeplex)를 살펴보십시오. 최소한 S # arp는 여러분이 생각하는 것의 대부분을 수행 합니다만, 여전히 특정 라이브러리를 강요하지는 않습니다 (MEF를 사용하지 않습니다). 하지만 당신은 그것을 확장 할 수 있습니다 ;-) – queen3
+1 나는 caliburn 마이크로 (http://caliburnmicro.codeplex.com/) 같은 생각이지만 ASP.Net MVC를위한 멋진 것입니다. –