2012-07-04 2 views
2

저는 우리가 생산적인 소프트웨어를 만드는 야금 기업에서 일합니다. 우리는 현재의 필요에 맞게 배포 계획을 변경하는 것을 고려하고 있습니다. 네가 몇 가지 아이디어를 줄 수 있기를 바랬다.최상의 WinForms 배포 계획

우리의 응용 프로그램은 WinForms, C# Framework 4.0입니다. 인트라넷에 있습니다. 그것은 3 개의 프로젝트 (UX, 비즈니스 레이어 및 모델 레이어)로 나누어 져 있습니다. 응용 프로그램은 각 모듈이 서로 다른 작업을 수행하지만 일부 기능 (예 : 상용 모듈, 재무 모듈, 견적 모듈)을 공유하는 모듈에서 "논리적으로"나뉩니다.

필요한 경우 심각한 업데이트의 경우 응용 프로그램을 업데이트 할 수 있도록 모든 사용자를 로그 아웃해야합니다.

우리는 두 가지 시나리오 (어쩌면 당신은 다른 사람을 추가 할 수 있습니다)이 있습니다

시나리오 1.

전체 응용 프로그램 EXE가 ClicOnce와 함께 배포 하나입니다.

장점 :

  • 쉬운 변화와 어떻게 영향을 감지합니다.
  • 그냥 하나 개의 유통

단점 :

  • 작은 변화가 회사 전체에 영향을 미치는 (왜 갱신 변화는 내 "모듈"에 영향을주지 를 않는 경우?)
  • 무거운 배포
  • 테스트를 개선해야 배포시 버그가 줄어 듭니다.

시나리오 2.

하나의 작은 응용 프로그램 (EXE)이 "화재"다른 EXE 파일 (모듈 당 하나).

장점 :

  • 업데이트 라이터.
  • 격리 된 오류입니다.
  • 격리 된 개발.

단점 :

  • 각 모듈 (EXE)에 영향을/다시 컴파일 배포하기 위해 각각의 변화를 감지해야합니다.
  • 공유 자료 (양식, 클래스 등)를 저장하기 위해 새 프로젝트를 만듭니다.

어떻게 생각하십니까? 다른 배포 계획을 알고 있습니까?

감사합니다.

하비에르는

+0

주제가 약간 떨어져 있지만 이러한 우려 사항은 인터넷 웹 응용 프로그램과 관련이 없습니다. 왜 이걸 가지고 있지 않니? 기술적으로 이것은 또 다른 유형의 배포 계획입니다. –

+1

아마도 대형 응용 프로그램 전체를 기록하는 것이 약간 '비용이 많이 드는'방법일까요? – Steve

+0

나에게 이것은 [프로그래머] (http://programmers.stackexchange.com/)에 대한 무언가처럼 보입니다. – CodeCaster

답변

3

나는 당신의 두 가지 시나리오의 하이브리드를 타고 모듈 당 ClickOnce 배포를 할 것입니다. 공유 코드가 변경되면 각 종속 모듈에 대해 새 배포가 "트리거됩니다".

System.Deployment namespace, 특히 ApplicationDeployment.CheckForUpdate method을 탐색하여 "심각한 업데이트"요구 사항을 통합하여 응용 프로그램이 자체적으로 업데이트되도록 할 수 있습니다.

+0

변경된 모듈 만 재배포해야하기 때문에 ClickOnce 배포에서 사소한 업데이트가 신속하게 수행됩니다. 현재 ClickOnce를 통해 배포 된 대규모 단일 프로그램이 있으며 업데이트가 그렇게 나쁘지 않습니다 (또는 적어도 사용자는 불평하지 않았습니다). Austin의 제안에 따라 하이브리드 솔루션으로 가면 매우 행복합니다. –

0

음 ... 나는 누군가가 이미이 문제를 안고 있다고 생각합니다. 그는 동적으로 링크 된 라이브러리를 만들기로 결정했습니다.

당신은

  • 1 EXE이 있어야합니다 GUI를 매우 간단한 코드 : 명확한 API와 모듈을 호출하는 중 GUI 또는 다른 기준 : 만

  • N DLL 모듈 호출 모듈.

그러면 자동 업데이트로 한 모듈을 쉽게 바꿀 수 있습니다. 이것이 IE의 작동 방식입니다.

+0

IE는 좋은 응용 프로그램의 예입니다;] – MoonKnight

+0

음, 아마도 실제로는 아닙니다 :) – Kek