ASP.NET MVC 3 응용 프로그램이 있습니다.ASP.NET MVC 디자인 패턴 서비스 모범 사례
은 내가 Model
, ViewModel
, View
, Controller
있습니다.
나는 IOC의로 Ninject
를 사용합니다.
내 Controller
은 ViewModel
을 사용하여 데이터를 View
으로 전달합니다.
나는 ViewModel
에서 정보를 받아이를 조작하기 위해 데이터베이스에 대해 그것을 쿼리 Service
의 (콘크리트 및 인터페이스 유형)를 사용하기 시작했습니다.
ViewModel
에 동일한
Service
? 아니면 이것은 디자인 패턴의 곡식에 맞습니까?
e.e. 레이어에서 ViewModel
을 추상화 할 수 있습니까?
시나리오
시나리오입니다; 내 Model
다른 Models
에 대한 참조를 많이 가지고, 그래서 설치가 장황의 컨트롤러에서 ViewModel
, 내가 느낄 때 Controller
너무 많이하고있다. 같을 것이다
var vm = _serviceProvider.SetupViewModel(Guid model1Id, Guid model2Id, /*etc..*/)
그리고 ServiceProvider
에서 SetupViewModel
기능 : 그래서 난 그냥 뭔가를 할 수 있도록하려면
public MyModelViewModel SetupViewModel(Guid model1Id, Guid model2Id, /*etc...*/)
{
var vm = new MyModelViewModel();
var model1 = _repository.Model1s.FirstOrDefault(x => x.Id.Equals(model1Id));
var model2 = _repository.Model2s.FirstOrDefault(x => x.Id.Equals(model2Id));
// etc....
vm.Model1 = model1;
vm.Model2 = model2;
return vm;
}
이렇게 나는 또한 일부 null
조건을 추가 할 수 있습니다 뿐만 아니라, 내 Controller
정말 정말 큰 만들기에 대해 걱정하지!
내가 작성/편집 작업 1 ViewModel
를 사용합니다. 다른 곳에서는 ViewModel
을 재사용하지 않습니다.
특정 아키텍처에 대한 정보를 조금 더 제공하는 것이 어떻습니까? 아마도 당신이하려는 것을 설명하는 간략한 코드 샘플일까요? –
약간의 질문을 편집했지만 코드를 넣지 않았습니다 –
ViewModels를 재사용하고있는 것처럼 들립니다. – Phill