개발 도구에서 업그레이드를 고려 중이라면 이전 버전과의 호환성이 얼마나 중요합니까? 소스 코드를 크게 변경해야한다면 Visual Studio 2010을 구입할 수 있습니까? 새로운 기능에 대한 이전 버전과의 호환성을 관리한다는 측면에서 전환점은 어디입니까?이전 버전과의 호환성은 얼마나 중요합니까?
답변
개발자의 관점에서 묻는 동안 개발 한 소프트웨어와 관련하여 더 흥미로운 질문이 될 것이라고 생각합니다. 그래서 나는 그 질문에 대신 대답 할 것입니다. :)
Windows와 같은 플랫폼을 구매하거나 업그레이드 할 때 특히 하위 버전과 호환되는 하드웨어 및 소프트웨어는 사용자에게 보안을 제공합니다. 그 외에는 Windows는 이전 버전과의 호환성에 대한 세심한주의로 잘 알려져 있습니다. 10 년 전에 작성된 프로그램을 Windows Vista에서 "잘 작성"(즉, 문서화되지 않은 API 사용 안함) 한 경우에만 사소한 문제 만 해결할 수 있습니다.
한편, 새로운 기능을 도입하거나 플랫폼을 혁신하려고 시도 할 때 이전 버전과의 호환성에주의를 기울여야 손을 묶을 수 있습니다. 애플은 죽어가는 OS를 알고 있었고, 대담한 움직임 중 하나에서 넥스트를 구입하여 넥스트 스텝을 새로운 맥 오에스로 만들기로 결정했다. 전환시 사람들을 팔았던 핵심 요소 중 하나는 이전 버전과 호환되는 클래식 레이어였습니다. 애플이 인텔 칩으로 전환하기로 결정했을 때, 유니버설 바이너리와 함께 로제타라고 불리는 인텔의 PowerPC 애플리케이션을 실행하는 메커니즘은 애플리케이션 손실의 우려없이 사람들이 자유롭게 PowerPC와 인텔 사이를 이동할 수있게했다.
흥미로운 점 중 하나는 고전 환경이 사라졌지만 Mac OS 9에서 이전 5 년이 경과했기 때문에 아무도 신경 쓰지 않는다는 것입니다. 따라서 결국 레거시 시스템에 대한 지원을 중단 할 수 있습니다. 새 시스템으로 쉽게 마이그레이션 할 수 있고 사용자가 충분한 시간을 할애 할 수있는 한 오래 있어야합니다.
"중요한 변경 사항"을 정의하십시오. 비록 그들이 광범위했다하더라도 조심스럽게 만들어진 "수색 &"으로 바꿀 수 있다면 나는 그것을 갈 것입니다.
그러나, 그 I이 어떻게 할 것인지입니다. 내가 일해온 회사는 기존 코드를 변경하는 경우에 불만을 제기합니다.
지원해야 할 환경과 호환성이있을 수도 있고 사용하지 않을 수있는 타사 도구를 사용하는 방법에 따라 다릅니다. 나는 우리가 SQL 서버 BI 도구를 VS2008와 호환되지 않은 우리의 BI 그룹을 제외하고 VS2005에서 VS2008을 모두 업그레이드 작업을 예를 들어
. 업데이트가 완료되면 VS2008로 업그레이드되었습니다.
VS를 자세히 살펴볼 때 VS2008은 .NET 2.0, .NET 3.0 및 .NET 3.5를 대상으로 할 수 있습니다. 실제로 .NET 2.0 SP1 및 .NET 3.0 SP1을 대상으로한다는 것을 깨닫는 것이 트릭입니다. 따라서 IDE를 업그레이드해도 코드를 변경하지 않아도됩니다. 변화의 많은 소프트웨어 및 하드웨어 분야에서 일어나고 있기 때문에
, 나는 당신 건축가 솔루션 동안 새로운 변화와 더 나은 툴을 위하여 개방하는 좋은 아이디어라고 생각합니다. 예를 들어 우리는 90 년대에 멀티 코어 프로세서와 하이 엔드 그래픽 카드 또는 네트워크 카드를 가지고 있지 않았기 때문에 당연히 컴파일러와 툴의 최적화 목표는 달랐습니다. 그러나 동시에 비주얼 스튜디오과 같은 도구는 이전 프레임 워크와 앱을 수용하기 위해 최선을 다하고 있습니다.
우리는 더 나은 세상을 고대하고 있다면이 산업이 성숙 될 때까지 끊임없이 변화를 열어야한다고 생각합니다. 당신은 끊임없이 자신의 제품을 구축하기 위해 다른 많은 사용자가 사용할 수있는 플랫폼을 개발하는 경우 genreal에서
을 (:)하지만 우리의 생활 시간에 일어나지 않을 수 있음), 당신은에 대한 응용 프로그램을 개발할 계획 오랜 시간이면 중요합니다. PHP, Python, Eclipse 및 이전 버전과의 호환성을 중시하는 기타 오픈 소스 프로젝트를 참조하십시오. 또한 n-tier 아키텍처에서 사용되는 서비스 또는 기타 개방형 API를 개발할 때도 유용합니다. 서비스를 변경할 때 항상 엔터프라이즈의 모든 응용 프로그램을 중단시킬 수 있습니다. 당신이 다음 수축 랩 응용 프로그램 또는 bussiness의 응용 프로그램을 작성하는 경우 각 버전은 전임자 별도로 beacuse
지금, 그것은 그렇게 중요하지 않습니다.
홈 프로젝트의 경우 하위 호환성은 실제로 중요하지 않습니다. 사무실/기업의 경우 절대적으로 중요합니다.
개발 도구에서 이전 코드와 전체 역 호환성을 제공하지 않으면 구매하지 않을 것이며 누구나 의심 할 만합니다. 솔직히 말해서 요점은 없습니다. 내 소스 코드를 저에게 맞는 실행 코드로 빌드하는 컴파일러를 이미 가지고 있다면, 그것을 사용할 것입니다. 왜 도구 제작자가 표준이 아닌 것을 분명히 준수하도록 코드를 변경해야합니까? 한 버전에서 다른 버전으로 소스 코드가 변경되면 왜 다음 버전을 호환 가능하게 만들까요?
원본과의 백 워드 호환성이 100 % 필요합니다.전체 요구 사항이 아닌 유일한 상황은 호환되지 않는 비트가 확장 인 경우입니다. 즉 이클립스 플러그인과 같은 도구에 고유 한 API 변경 사항도 있습니다. 호환성을 원하지만 완전히 기대할 수는 없다는 것을 알고 있습니다. 그러나 기본 응용 프로그램/도구 개발을위한 API를 제공하고 호환성을 유지하는 데 방해가 될 수는 없습니다. 음, 그럼, 당신은 분명히 당신의 도구에 대해 심각하지 않으며, 나는 그들에게 심각한 돈을 지불하지 않을 것입니다.
나는 네가 그 말을 절대적으로 의미하지는 않는다고 생각한다. 예를 들어, C# 2는 C# 1과 100 % 역 호환되지 않습니다. 거의 비슷하지만 100 %가 아닙니다. 귀하의 논리에 의해 아무도 VS2005 또는 VS2008로 가야합니다. –
나는 또한 동의하지 않는다. 저는 여러 사람들이 eVC에서 Studio로 마이그레이션하는 것을 도왔습니다. eVC에서 "작동"한 코드는 컴파일러가 훨씬 향상되어 Studio에서 컴파일되지도 않았습니다. 컴파일이 완료되면 새로운 런타임에서도 코드에 많은 문제가 발생합니다. 그래서 일주일이 지난 후에도 가치가있었습니다. – ctacke
경험이 많은 사람이 커뮤니티 위키 게시물이 아닌 이유를 설명해 주시겠습니까? – badbadboy
그것은 합법적 인 질문이기 때문에? 커뮤니티 위키는 모든 것에 적용 할 수있는 것이 아니며, 나는 그것을 채택하지 않은 것에 대한 가짜를 잘못하지 않았습니다. –