Chris
그는 물었다 12년 전
10

Namespace/solution 구조

그러나 이러한 묻는 질문에 대해 일반 사과하겠네 it& # 39 의 생각하신거야 도전하는 나여야지 입증할 수 있다. 우리 팀에 관한 것은 대형 프로젝트가 될 모든 임의적입니까 일회성 드래그합니다 착수할 것을 통해 금지되나니 진화해왔다 코드 함께 있기를 바랍니다. 회사 전반에 걸쳐 점을 감안하면 이번 프로젝트는 빽이라는 표준화합니다 로털 엔티티에는 (,, Employee&quot &quot Customer&quot ";), 작은 작업, 대형 작업을 제어할 수 있는 작은 작업 및 유틸리티 서비스, I& # 39 m, 구조 및 코드 구조를 알아낼 수 있는 최선의 방법은 네임스페이스을 어려움을 겪고 있기 때문이다.

충분히 짐작할 수 있습니다, 하지만, 제가 I& # 39 m not 확증하노라 그럽세, 구체적인 방법에 대한 조언을 있으세요 리소스나 외곽진입 분할 클린업합니다 너회의 도메인과의 논리적으로 ? 이를 통해 드러날 경우 대부분 이 기능은 웹 서비스를 통해, 그리고 we& # 39, re a microsoft에 망아지입니다 함께 모든 최신 기즈모 및 가젯.

  • I& # 39 한 수 있도록 할 뿐, 토론, m 벽돌이날아와 솔루션을 통해 쉽게 만들 수 있는 서브 참조입니다 너무 다루기 힘든?
  • 기존 애플리케이션 기능을 완벽하게 마무리 합니까, 또는 남겨두십시오 에 의존하지 않는 이름공간이 (만드는 '일반' 고객 '클래스' 클래스 대對 오르크 프로두스자쿠스토머, 예를 들어)?
  • 각 서비스 / 프로젝트 '와' 달 ',' 할 수 있는 자체 밸 수 있는 모든 것을 할 수 있는 별도의 조립품을 또는 전적으로 참조입니다?

39 만 t 등 일회성 사업 경험이 없다는 구성, 내가 don& 도왔으매 I& # 39 m 찾고, 모든 도함을 갈 수 없어.

답변 6 개

39 만 방법, s there& 스키닝하려면 지어줬다. 그러나 가장 간단한 원-부트 항상 최선의. 어떤 방법이 가장 간단한 당신꺼에요? 요구 사항에 따라 달라집니다. 내가 몇 가지 일반적인 규칙은 수축됐는데 따라와야지!

먼저, 전체 프로젝트를 최대한 줄일 수 있다. 하루 20 번, 그 분 컴파일할 때 추가 추가합니다.

App 가 갖는 경우, 분할 설계됨 고려해보십시오 너회의 어셈블리들 흐름선 따라 설계, 구축 vs. 기본 클래스 배치하십시오 인터페이스 및 공용 조립품을. # 39, 이러한 클래스의 구현은 company& 단축시킵니다 어셈블리를 만들 것이다.

(Keep your ᅴ 논리와 비즈니스 로직, 대용량 애플리케이션을 위한 별도의.

단순화하십시오 솔루션입니다. 괜찮아 보이는 경우, 아마도 너무 복잡하다는 것이다. 합칩니다 절감하십시오.

이 때문에 비슷한 것이 아니라, 나의 조언을 통해 이름 공간의 괴로워하다 작업에 착수했다.

하지만, 몇 번의 중요한 느슨해짐 가이드라인이며 시작하기 때문에 그냥 개발에 착수할 아웃하거나 프로젝트가 유기, 진실이며당신이 재구성 및 클래스 이름 공간의 가 끝날 시간이 지남에 따라.

39, don& 스토리지스코프는 프로젝트에 대한 너무 많은 시간을 낭비하지 않는다. Just do it.

우리는 여기서 xxxx 는 다음과 같은 방법으로 이름을 어셈블리들 콩파니콜project.스스그이이 프로젝트 및 이리야 는 .NET 에서는 서브, 예를 들면 다음과 같습니다.

  • 우스퍼드 코맥코먼
  • 우스퍼드 코맥비즈니소비에치스
  • 우스퍼드 코맥코먼드달

이 책을 통해 우리는 시행하십시오 호츨 [레임워크 설계 가이드라인] [1] 에서 크시슈토프 스와리나 (작가), 브래드 에이브럼스 (작가)

[1]: http://www.amazon.com/framework-design-guidelines-conventions-development/dp/ pd_sim_b_54 /ref = 0321545613

나는 이번에 똑같은 직장에서 경험했다. 임의적인 코드를 구조적, 수 많은 하는 점령하고 있던.

처음에는 너무 있기 때문에 실제 하드웨어 있다. 시간을 투자하는 것이 최고의 조언을 주실 줄 수 있다는 생각이 나는 그냥 항목이없습니다 금요일 오후, 몇 주 대한 바람을 타고 아래로 난 그냥 선택, 우리가 무엇이 있는지, 혹시 어딨었는데 앱 / 청크에는 코드를 생각 할 수 있다는 것이 일반, 복사, 언제 어디서나 it into the new library 생각해봤죠 바람직하다. 일단 내가 가진 모든 코드 리팩토링 작업을 수행할 수 있는 응용 프로그램, 응용 프로그램 내에서 마이그레이션된 꼭 이래야겠어요 어졌다면 작동합니까 일반적인 입장이다. 때문에 이 문제를 해결할 수 있지만, 가끔 이렇게 오래 하는 철저한 정보기술 (it), t be too big deal shouldn& # 39 를.

Piece by piece, 그게 그렇게 할 수 있는 유일한 방법입니다.

그런 면에서 구조, 그 이후 거의 대부분 찾았다 한다 MS 남스파스링 논리 (예를 들어, Company.Web, Company.Web.UI Company.Data 및 드릴링됩니다.

가능성이 가장 큰 장점 중 하나는 코드의 양을 복제 재거됨. 네, 하지만 apps 에서 조금 리팩토링 가 필요한 코드 기반이 많이유 단순한 및 여러 가지 면에서 smarter&quot ";).

다른 한가지는 꼭 이래야겠어요 종종 문제가 where 물건을 넣을 수 있다는 것을 알아내려 하고 난 이후, t (측면에서 남스파스링) # 39 wasn& 속해 해야 합니다. 이제 저는 정말 이 등 악취를 보는 시각도 있다. 이제 다시 조직 이후 모든 것이 훨씬 더 많은 공간을 인되며 아주 잘 빠진다. (현재 매우 작은 금액) 을 받을 수 있도록 특정 응용 프로그램 코드를 넣을 Company.Applications.ApplicationName 이 정말 너무 많은 생각을 비즈니스 객체에는 네임스페이스인 그래서 내가 원하지 않을 만큼 이달 안에 내놓아야 더욱 다양하게 제작되었다.

지금은 긴 포스트. # 39 의 it& 종류의 rambling!

대규모 프로젝트의 외곽진입 싶어요 시행하십시오 도메인 사용 후 내 비즈니스 객체에는 이름공간이 하나만 는 객체 (DTO& # 39, s) 의 데이터를 전송할 수 있는 내 레이어에는 스토리지및 읽어들입니다 business object 가 필요합니다. # 39 는 트로 객체, t 는 간단한 doesn& 비즈니스 포함할 수 없다.

여기에 있는 링크를 트로 설명합니다.

http://martinfowler.com/eaaCatalog/dataTransferObject.html

꽤 많은 대규모 솔루션 사업을 함께 할 수 있지만, 느린 컴파일하십시오 쉽게 관리할 수 있다.

내가 알고 있는 경우가 # 39 와 같은 솔루션 단위 테스트 어셈블리들 they& 수준들과, re 테스트 때 이들을 변경할 수 있다.