2009-07-23 10 views
8

WCF를 설치하는 것이 처음인데, 내 프로젝트에서 사용하게되었지만, WCF 프로젝트에서 5 가지 다른 '서비스'를 사용하고 있으며 올바른 일을하고 있는지 궁금합니다. . 지금 내 서비스는 내 데이터베이스 테이블에 1-1입니다. 나는 다음과 같은 것을 갖게된다.WCF 하나의 서비스 또는 다중 서비스

public class Projects : IProjects 
{ 
    public List<Project> GetAll() 
    { 
     return (from p in Connection.Data.Projects 
       select new Project {ID = p.id, Name = p.name}).ToList(); 
    } 

    public Project GetByID(int id) 
    { 
     return (from p in Connection.Data.Projects 
       where p.id == id 
       select new Project {ID = p.id, Name = p.name}).First(); 
    } 

    public Project AddProject(string name) 
    { 
     var project = new Data.Projects {name = name}; 
     Connection.Data.AddToProjects(project); 
     Connection.Data.SaveChanges(); 

     return new Project {ID = project.id, Name = project.name}; 
    } 

    public void DeleteProject(int id) 
    { 
     var project = (from p in Connection.Data.Projects 
         where p.id == id 
         select new Project {ID = p.id, Name = p.name}).First(); 

     Connection.Data.DeleteObject(project); 
     Connection.Data.SaveChanges(); 
    } 
} 

나는 내 프로젝트의 각 테이블에 대해 비슷한 클래스를 가지고있다. 하위 클래스와 1 개의 서비스 연결을 사용하거나 테이블 당 1 개의 서비스 클래스로 유지하는 방법을 찾아야합니까?

답변

8

"다릅니다!" :-) 모든 IT 및 프로그래밍 질문에 대한 표준 답변 :-)

이러한 5 가지 서비스를 사용하는 데는 별다른 차이가 없습니다. 하나의 큰 서비스로 모든 서비스를 병합하여 실제로 얻을 수있는 것은 없습니다. 나는 말할 것이다. 나는 그들을 분리하고 "lean'n'mean"으로 유지하는 것을 선호 할 것이다.

5 개의 서비스가있는 경우 각 서비스에 대한 액세스 권한을 별도로 관리 할 수도 있습니다 (예 : 특정 사용자 그룹이 다른 서비스는 사용하지 않고 하나의 서비스 만 사용하도록하십시오.

다시 : 나는 잘하고 있다고 생각합니다. 하나의 거대한 서비스와 5 개의 더 작고 약한 것들로 인해 어떤 이유나 이점이 보이지 않습니다.

생각해 보겠습니다. 내가 제안 할 수있는 유일한 실제 변화는 앱이 원하는 서비스 (예 : 앱과 서비스를 기대하는 작업)와 더 밀접하게 조화되도록 서비스를 설계하려고하는 것입니다. 처리), 오히려 그들을 데이터베이스에 너무 밀접하게 모델링합니다. 데이터를 저장할 기본 저장소가 아닌 "작업 위주"또는 운영 측면에서 생각해보십시오.

마크

+1

끝내 주셔서 감사합니다! –

+0

작업 기반 접근 방식에 동의했습니다. 서비스를 저장소로 생각하지 말고 유스 케이스 컨트롤러 IMO를 생각해보십시오. 5 개의 개별 서비스를 사용하는 것이 더 나은 캡슐화 일지라도 구성/유지 관리/배포 오버 헤드가 증가하는 경우가 있음을 지적합니다. 항상 그런 것은 아니지만 염두에 두어야 할 가치가 있습니다. – Stimul8d