그래서 문서 인덱싱 기능을 사용하는 것 외에 다른 이유가 없으므로 Sharepoint에 앉아 있기 때문에 비즈니스에서 응용 프로그램을 다시 작성하기로 결정했습니다.우리는 nTier 응용 프로그램의 서비스 계층 외관으로 WCF 서비스를 사용해야합니까?
우리는 C#을 사용하여 ASP.NET MVC3에서 새 앱을 만들기로 결정했습니다. 우리는 전반적인 아키텍처를 결정하려고합니다.
나는 다음과 같은 생각:
- 코어 - 도메인 개체 (POCO의)
- 데이터 - 엔티티 프레임 워크 (코드 첫 번째) 또는 nHibernate 수는 저장소
- 서비스로 노출을 -이 계층은 캡슐화 것 모든 비즈니스 로직 및 외관으로 작동합니다. 이것은 더 많은 모듈로 나눌 수 있습니다.
- UI (MVC) - 컨트롤러 및 뷰.
이것은 모두 Autofac과 같은 DI 컨테이너를 사용하여 함께 묶을 수 있습니다.
우리는 또한 우리는 등 우리의 컨트롤러 그래서
을 테스트하기 위해 우리의 서비스 계층 및 데이터 저장소를 조롱 할 수 있어야하므로 단위 테스트를 작성 할 수 있도록하려면 - 않는 좋은 전반적인 아키텍처 패턴과 같은 위의 소리 꽤 표준적인 비즈니스 응용 프로그램을 원하십니까?
아이디어 즉 데이터, 서비스, UI가 코어를 참조 할 수 있지만
나의 다음 질문은 그에서 일부입니다 UI는 정말 등 데이터의 구현 세부 사항에 대해 서비스 수준 구성 요소에 이야기하지 알 것 인 우리의 응용 프로그램 (WCF Services/ASP.NET Web API) 이외의 일부 기능을 노출하고자 할 것입니다.
귀하의 관점에서 볼 때 가장 좋은 옵션은 무엇입니까? WCF에서 서비스 레이어를 만들고 MVC의 컨트롤러에서 이것을 호출 하시겠습니까? 만약 그렇다면 테스트가 가능하거나 웹 서비스에 래퍼를 작성해야할까요? 시간이 많이 걸릴 수 있습니까?
또는
는 서비스 계층 (즉 Service1.CreateObject (개체 OBJ)) 작성 계속 C#을 수업에서하고 우리의 서비스 계층을 호출 우리가 필요로하는 단지 기능을 노출 별도의 항목으로 웹 서비스를 만들?
어떤 경로가 가장 좋을지 모르겠으니 생각하면 도움이 될 것입니다.
OK - 서비스 레이어를 WCF 서비스로 작성하는 것처럼 들립니다. 이전에 WCF를 사용하지 않았기 때문에 인터페이스를 생성 할 수 있습니까? 그렇다면 조롱하는 프레임 워크를 사용하여 쉽게 모의 할 수 있습니다. Service1.CreateObject (object obj)는이 게시물에서 도메인 모델의 특성에 대해 언급하고 싶지 않기 때문에 일반적인 예일뿐입니다. –
그 반대의 경우입니다. 인터페이스와 구현을 만들고 WCF가 WSDL을 생성합니다. EF의 CodeFirst와 같습니다. – jgauffin