2016-10-28 12 views
1

저는 C# 할당 작업을하고 있습니다. C# 응용 프로그램을 3 개의 레이어로 디자인해야하는데, 레이어는 자체 패키지로 구현해야합니다. 이 문제를 해결하기 위해 Visual Studio에서 프로젝트에 폴더를 추가했습니다. 이것이 올바른 접근 방법입니까?C#을 3 레이어로 디자인하고 .dll (라이브러리)으로 레이어를 구현합니다.

그럼 비즈니스 로직을 .dll (라이브러리)로 구현해야합니다. 내가 한 것은 내 솔루션에 새로운 클래스 라이브러리 프로젝트를 만드는 것입니다. 내가 지금있는 것은 :

Screenshot of my Solution Explorer

나는이 작업을 수행하는 방법에 대한 확실하지 않다. 제대로 했습니까? 그렇다면 지금 무엇을해야할지 알고 싶습니다. 내가 아는 한, 나는 다른 프로젝트에 대한 참조로 추가 할 수있는 .dll 파일을 얻기 위해 클래스 라이브러리 프로젝트를 빌드해야한다. 하지만 클래스 라이브러리 프로젝트에서 내 비즈니스 논리를 작성하면 기본 프로젝트의 BusinessLogic 패키지에 무엇을 작성해야합니까?

내 접근 방식이 잘못 되었다면 해결 방법을 알려주십시오.

+0

각 DLL은 Visual Studio의 별도 클래스 라이브러리 프로젝트입니다. 폴더를 사용하면 코드 파일 만 구성됩니다. 그래서 세 개의 클래스 라이브러리가 필요합니다 - 각 "레이어"에 대해 하나씩 –

+0

할당의 아이디어는 관심의 분리를 가르쳐주는 것으로 보입니다. 3 개의 레이어는 느슨하게 연결될 예정이며 각 레이어는 하나의 방향으로 향하게됩니다. 응용 프로그램의 측면. 예를 들어 MVVM에는 UI 레이어를 제어하는 ​​컨트롤 레이어, UI가 바인딩하는 객체 인 뷰 모델 레이어 및 모델 레이어 (비즈니스 로직, 서비스 등)가 있습니다. 먼저 시작하기 전에 디자인 단계에서 시간을 보내고 각 레이어에 무엇을 넣을 지 결정하십시오. 원하는 경우 각 레이어에 대해 별도의 프로젝트를 만들 수 있습니다. – brakeroo

+0

BusinessLogic 패키지는 다른 "레이어"의 기능을 사용하기위한 인터페이스를 제공하는 클래스 라이브러리 여야합니다. 프로젝트에 대한 더 많은 정보를 제공 할 수 있습니까? 예제를 제시하고 싶지만 질문은 너무 추상적입니다. – brakeroo

답변

1

응용 프로그램의 각 계층에 대한 클래스 라이브러리가 필요합니다. 당신은 말하고 DLL을 얻기 위해 클래스를 컴파일 한 다음 참조로 DLL을 추가 할 수 있습니다. 그러나 단순화하기 위해 각 클래스 라이브러리 프로젝트에 대한 프로젝트 참조를 추가하십시오 ... 그러면 컴파일러는 DLL 참조를 처리합니다 당신이 그것을 지을 때.

+0

"레이어"는 추상적 인 개념이며, 다른 프로젝트 dll (또는 응용 프로그램/프로세스)에 대해 다른 클래스 (요구 사항 요구 사항에 따라 다른 패키지로 정의 됨)에서 얻을 수 있습니다. 아이디어는 레이어가 필요합니다. 느슨하게 결합하고 특정 책임에 초점을 두려면 재사용 할 수 있고 독립적으로 테스트하고 시스템의 다른 부분에 영향을주지 않고 수정할 수있는 모듈이 될 것입니다. – brakeroo

+0

인수를 구매하겠습니다. 그러나 질문은 "그렇다면 구현해야합니다. . dll (비즈니스 로직). " 적어도 하나의 계층 (비즈니스 로직 계층)이 별도의 클래스 라이브러리라는 것을 암시합니다. 제 3 계층 (아마도 데이터 액세스라고 가정)은 다시 별도의 클래스 라이브러리라는 것을 의미합니다. 그러나 당신이 지적한대로 그럴 필요 없어. – Theo

+0

예, 비즈니스 로직과 데이터 액세스 레이어 모두 클래스 라이브러리 여야하지만, 지금은 데이터 액세스 레이어를 구현할 필요가 없습니다. 답변을 살펴볼 때 가장 좋은 해결책은 각 레이어에 대한 프로젝트를 만드는 것 인 것처럼 보이므로이 방법을 시도해 볼 것입니다. – qwerty