제가 일하는 회사는 C ++ Builder 6을 사용하고 있습니다. 우리는 개념부터 네이티브 코드를 개발해 왔습니다. 우리의 주력 제품은 완전히 네이티브 코드로 작성되었습니다.
종소리와 휘파람으로 .NET Framework에 들어갑니다. 나는 넘어지고, 훅, 라인과 싱커. 저는 .NET이 모든 새로운 소프트웨어 개발을위한 새로운 프레임 워크가되어야하며 기존 코드 라인을 최대한 빨리 마이그레이션해야한다고 경영진을 설득합니다. 모든 이점으로 인해 많은 설득력이 필요하지 않습니다. 그들은 평소처럼 내 제안을 받아들입니다.
이 시점에서 저는 첫 번째 .NET 애플리케이션 개발을 시작합니다. 모든 것이 계획대로 진행되고 있습니다. 이 프로젝트는 우리 제품의 한 구성 요소 일뿐입니다. 그래서 저는이 새로운 구성 요소에 대한 설치 프로그램을 만드는 시점에 도달했습니다. 회사로서 우리는 사용자를 위해 가능한 한 쉽게 일을 만드는 것에 자부심을 느낍니다. 수천 명의 개발자가있는 Microsoft조차도 우리처럼 설치 프로그램을 만들지 않습니다. 예를 들어 Microsoft CRM을 설치하면 계속하기 전에 설치해야하는 오류 및 필수 구성 요소 목록 만 받게됩니다. 우리가 아닙니다. 못. 필요한 것이 있으면 설치해드립니다.
이것은 우리의 설치를 매우 쉽게 만듭니다. .NET Framework가 설치되어 있지 않습니까? 문제 없어요! 우리는 당신을 위해 그것을 할 것입니다. SQL 네이티브 클라이언트가 필요하십니까? 좋아!
문제는 솔루션의 단일 구성 요소가 .NET으로 작성 되었기 때문에 설치 프로세스를 엄청나게 복잡하게 만든다는 것입니다. 제품을 설치하기 전에 다음을 수행해야합니다.
필수 구성 요소가 설치되었는지 감지
그렇지 않은 경우 설치
성공적으로 설치되었는지 확인
다음 전제 조건
.NET Framework를 설치하려면 먼저 Windows Installer 4.5가 필요합니다. 그러나 OS마다 다른 버전이 있으므로 OS 감지를 추가하고 올바른 EXE를 시작합니다. 오, .NET 프레임 워크는 이미 2k8로 패키지되어 있으며 설치 프로그램 exe를 실행할 수 없습니다. 설치하려면 매개 변수와 함께 OCSetup.exe를 실행해야합니다.
그리고 그것은 계속됩니다. 그런 다음 SQL Express 2005를 설치해야합니다. 종속성이 다시 한 번 증가합니다.
나는 마이크로 소프트조차도 사용자를 위해 이렇게 쉽게 만들지 않는다고 경영진과 주장한다. 그들의 반응은 우리가 이런 식으로 그들보다 나아지지 않을 이유가 없다는 것입니다. 나는 그들이 그들의 접근 방식을 따라 간 아주 좋은 이유가 있다고 생각한다는 것을 제외하고는 그것에 대해 논쟁 할 수 없습니다.
갑자기 설치 프로그램이 엄청납니다. .NET의 모든 전제 조건은 설치해야 할 EXE의 전체 범위를 포함하는 64 비트 지원에 대해서도 언급하지 않습니다. 이제 사용자가 "빠른"평가판을 다운로드 할 수있는 지점에 도달했습니다. 좋은 농담 이었어. 30MB 애플리케이션을 실행하려면 500MB를 다운로드해야합니다. 대부분의 설치 패키지는 전제 조건입니다.
경영진은 의존성 / 전제 조건이 너무 많다고 느낍니다. 나는 완전히 이해합니다. 그들은 우리가 .NET 프레임 워크에서 벗어나 설치 측면에서 여전히 "쉬운"땅으로 돌아갈 것을 제안합니다. 여기에서 저의 한 부분은 큰 그림의 이점, 향상된 개발 경험, 더 쉬운 유지 관리 및 전반적인 코드 품질을 설명하면서 .NET을지지하고 싶어합니다. 나의 다른 부분은 진심으로 동의합니다! .NET에서 개발하려면 설치를 복잡하게 만드는 다른 필수 구성 요소를 너무 많이 설치해야합니다.
예, 일부 .NET 지지자들은 모든 것이 패치되고 업데이트 된 운영 체제에 설치되어야한다고 주장 할 것입니다. 이것은 사실이지만 모든 고객이 이것을 가지고있는 것은 아니며 단순히 "미안합니다. 먼저 업데이트"라고 말하는 것만으로는 충분하지 않습니다. 우리는 전반적인 사용자 경험에 자부심을 느낍니다.
우리는 이제 네이티브 코드 작성을 다시 고려하고 있으며 개발 속도와 .NET의 모든 장점 측면에서 잃고 있다는 것을 알고 있습니다. 하지만 큰 그림을 보든 안 보든 작든이 영역에서 우리는 얻고 있습니다. 우리는 네이티브 코드 개발 기술을 가지고 있고 .NET이 실제로 우리에게 새로운 기반이 되었기 때문에 되돌아가는 것도 의미가 있습니다.
내 질문은 이것이다 : 만약 그것이 전혀 문제가된다면이 문제에 대한 귀사의 견해는 무엇이며, 모든 제품을 .NET으로 계속 마이그레이션하고 싶다고 가정 할 때 경영진에게 제안하는 비즈니스 사례는 어떤 모습일까요?