이 기사는 내 WeChat 공개 계정인 "dotnet cross-platform"에 처음 게시되었습니다. 전체 내용은 블로그에 다시 게시해도 됩니다.
.NET의 주요 개발 언어는 C#이며, .NET 플랫폼은 일반적으로 Microsoft가 자체 개발한 .NET 플랫폼과 Mono의 오픈 소스 구현을 포함하여 ECMA 334 C# 및 ECMA 335 CLI 표준을 따르는 개발 플랫폼을 의미합니다. Microsoft의 최신 .NET Core 개발 버전입니다. 저는 2007년 입사 이후부터 C#을 사용해왔습니다. 텐센트에서 이 언어가 사용되는 것에 대해 전반적으로 이해하게 되었습니다. 최근 관련 상황을 정리하고 '국내 인터넷 기업에서는 C#을 사용하지 않는다'는 루머를 불식시키는 시간을 가졌습니다. ."
1. 2003년 ~ 2007년
마이크로소프트는 2002년에 .NET 1.0을, 2003년에 .NET 1.1을 출시했다. .NET의 높은 개발 효율성으로 인해 Tencent의 OA 시스템은 2003년부터 .NET을 사용하여 개발하기 시작했습니다. 초기 OA 시스템은 2007년 OA의 Single Sign-On 시스템을 인수했을 때 cgi가 포함되어 있었습니다. . 호환성 코드, cgi 호환성 코드에는 여전히 메모리 누수 문제가 있으며, 2013년 OA 로그인이 재구성될 때까지 제거되지 않았습니다. 2003년 OA 개발팀은 소수 인원에서 2006년 30명 이상으로 급속히 성장하기 시작했습니다. 회사의 급속한 발전으로 인해 더 많은 개발자가 필요하게 되었고, 저는 2007년에 Tencent에 입사하게 되었습니다. 제가 입사하면서 시작하게 되었습니다. 그는 TOF라고 불리는 Tencent OA 기본 서비스의 개발 및 운영을 담당해 왔습니다.
2003년부터 2007년은 Tencent에서 .NET이 급속히 발전한 해였습니다. 최초의 OA 워크플로인 Pingao 워크플로 제품도 2004년에 도입되고 맞춤화되었습니다. Pingao Company는 더 이상 이 버전을 유지 관리하지 않으며 2008년에 이를 대체하기 위해 K2 워크플로 엔진을 도입했습니다. 회사의 포털인 www.oa.com은 Microsoft의 SharePoint 2003 시스템을 사용하여 개발되었습니다. Toby는 2005년부터 2007년까지 Microsoft의 MVP였습니다. 저는 또한 Microsoft 커뮤니티 행사에서 Toby를 만났고 나중에 그의 추천으로 Tencent에 합류했습니다. 지금까지 그곳에서 일하고 있어요. 당시 OA는 .NET을 사용하여 개발되었을 뿐만 아니라 회사의 많은 비즈니스 운영 시스템도 .NET을 사용하여 개발되었습니다. 제가 회사에 오기 전에는 TAPD의 첫 번째 버전도 .NET을 사용하여 개발되었습니다. 현재 R&D 부서에서는 TAPD를 PHP로 다시 작성하여 asp.net을 PHP로 대체하는 프로세스를 시작했습니다. 재무/HR/SCM/회사 포럼 BBS/ITIL/BOSS 등도 있습니다. 이것은 Tencent의 정점에 있는 NET이라고 할 수 있습니다. 2007년부터 asp.net에서 개발한 시스템은 점차 Python/PHP로 대체되었습니다. 다행스럽게도 Tencent의 결제 사업(구 Tenpay)의 청산 및 위험 관리는 초기부터 현재까지 여전히 C#을 사용하고 있습니다. 운이 좋게도 결제 및 청산 업무로 이직하고 Everbright C#을 계속 사용할 수 있었습니다.
2. 2007~2014
2007~2014년의 구분은 마이크로소프트가 인터넷과 모바일 인터넷을 잃은 시기인 마이크로소프트의 발머 시대와 정확히 일치한다. 2007년 초 제가 텐센트에 입사했을 때 마이크로소프트 MVP 글로벌 서밋에 참석하기 위해 토비와 함께 마이크로소프트 본사에 갔습니다. 빌 게이츠가 CEO에게 작별인사를 했고, CEO는 돈만 더 벌고 싶은 영업 CEO에게 넘겨졌습니다. 이로 인해 인터넷 회사에서는 Windows 사용을 거부하게 되었습니다. .NET은 자연스러운 크로스 플랫폼 이상을 갖고 있지만 이로 인해 많은 사람들은 .NET이 Windows에서만 실행될 수 있다고 믿게 되었습니다. 일단 개념이 형성되면 변경하기가 어렵습니다. Mono 프로젝트의 오픈 소스 .NET 구현은 Mono, Xamarin 및 Unity를 기반으로 한 상용 프로젝트가 모바일 인터넷 분야에서 중요한 위치를 차지했습니다. 각각 모바일 개발과 게임 개발 분야로 나뉜다.
저는 2007년 초에 Tencent에 입사하여 민 형제로부터 Tencent의 OA 기본 서비스 TOF 유지 관리를 맡게 되었습니다. 이 기간 동안 많은 동료들이 민 형제로부터 사업을 시작했습니다. 인트라넷 보안 분야에서도 이 기간 개발된 보안 운영 플랫폼도 2013년부터 점차적으로 .NET 개발을 대체하기 위해 사용되었습니다. 현재 회사에서 .NET을 사용하여 개발한 프로젝트는 많지 않습니다. 현재 일부 재무/관리/HR/Tenpay/인터랙티브 엔터테인먼트 운영 체제는 여전히 .NET을 사용하여 개발되고 있습니다. Windows 플랫폼에만 배포할 수 있는 경우 이러한 시스템은 조만간 교체되어야 합니다. 그래서 저는 Tencent OA 기본 서비스 TOF를 유지하면서 틈틈이 Mono 크로스 플랫폼 개발을 공부하고, 블로그와 Weibo를 통해 Mono 프로젝트를 홍보하고, 실제로 실천하고 있습니다.
이 기간은 7년 동안 진행되었으며, 2014년에 회사 인트라넷에서 수천만 건의 API 호출을 지원하는 가장 완벽한 재구성을 완료했습니다. 레벨 변환에 대한 자세한 내용은 내 기사 "먼저 작은 목표를 설정하고 C#을 사용하여 수천만 개의 애플리케이션 개발"을 참조하세요. .NET을 사용하여 개발된 회사의 다른 시스템도 계속 발전하고 있으며 계속해서 살아남고 있습니다. 물론 많은 학생들이 더 이상 C#을 사용하지 않고 대신 다른 언어를 사용하여 시스템을 다시 작성하고 있습니다. 2013년에 회사의 코드 플랫폼은 처음으로 Tencent의 연간 코드 보고서를 출시했습니다: http://code.oa.com/v2/report/2013. C#은 아직 공개된 상위 10개 개발 언어에 포함되지 않았습니다. 이는 내부 데이터일 뿐입니다. 특정 콘텐츠를 보려면 Goose Factory에 가입하세요.
Tencent Annual Report 2014 http://code.oa.com/v2/report/2014 〈Tencent Code Report 2014 C# Code Volume Doubled〉 기적적으로 C#이 1,700만 줄이나 늘어나 7위에 올랐습니다. 그 마법은 무엇일까요? 그렇게 빠르게 성장했고, 개발자 수도 1,563명으로 늘었습니다.
.NET 애플리케이션이 끊임없이 다른 언어로 대체되고 있는 가운데, 2014년 C# 코드가 큰 힘을 발휘한 것은 Mono 플랫폼을 기반으로 한 Unity 게임 개발입니다. C#을 폭발적으로 만든 것은 모바일 게임이었습니다. Unity는 버전 5.1 이후 VR 개발을 완벽하게 지원하며 앞으로도 C#은 VR/AR 분야에서 계속 번창할 것입니다.
3. 2014 ~ 미래
2014년 사티아 나델라(Satya Nadella)가 CEO로 바뀌면서 공식적으로 오픈 전략을 실행하고 리눅스, 오픈소스, . NET Core는 2016년 6월 27일에 출시된 올해의 개발입니다. 지난 2년 동안 Microsoft의 주가는 매우 성공적이었습니다.
지난 2년 동안 마이크로소프트는 모노 개발사인 자마린(Xamarin) 인수도 완료했다. .NET 재단을 설립하고 아파치 재단의 운영을 본받아 .NET 플랫폼 개발을 추진했다. 현재는 Unity를 흡수했으며, RedHat, Samsung 및 기타 업계 기업이 합류했습니다. Microsoft는 또한 .NET에 대한 플랫폼 진화 계획을 완료했습니다. 다음 그림은 Microsoft의 미래에 대한 전체 그림입니다.
2014년 Tencent의 C# 개발은 개발에 의존했습니다. 2014년에도 모바일 게임의 개발은 매우 좋았으며 가장 잠재력이 높은 개발 언어가 되었습니다. 2015년 Tencent 연례 코드 보고서 http://code.oa.com/를 살펴보겠습니다. v2/report/2015 :
C#을 사용하는 사람이 1563명에서 2068명으로 늘어났고 코드도 늘어났습니다. 제가 아는 한 이러한 성장은 모두 Unity에 의해 이루어졌습니다. 또한 새로운 VR 분야에서 C#의 성장은 계속해서 감소할 것입니다. 상황은 낙관적이지 않다. Microsoft에서 .NET Core 1.0을 출시하면 Windows, OS X 및 Linux 시스템에서 사용할 수 있습니다. .NET Core는 최신 웹 애플리케이션, 마이크로서비스, 라이브러리 및 콘솔 애플리케이션을 만드는 데 사용할 수 있는 크로스 플랫폼, 오픈 소스, 모듈식 .NET 플랫폼입니다. 이제 .NET Core를 Red Hat Enterprise Linux 및 OpenShift에서 사용할 수 있습니다. 또한 .NET Core는 Red Hat에서 완벽하게 지원되며 Microsoft와 Red Hat 간의 통합 하이브리드 지원 파트너십을 통해 확장됩니다.
이것은 .NET이 시작된 이후 가장 큰 변화이며 향후 10년 동안 .NET의 발전을 이끌 것입니다. 우리는 고도로 분산된 클라우드 애플리케이션, 마이크로서비스 및 컨테이너 등 오늘날 세계의 요구 사항을 충족하기 위해 .NET 기반을 재구축했습니다. .NET Framework, .NET Core 및 Xamarin은 모두 Microsoft의 중요한 제품이며 각각 Windows, Linux 크로스 플랫폼 클라우드 컴퓨팅 및 크로스 플랫폼 모바일 분야에서 계속 개발될 것입니다. .NET Framework 및 기존 ASP.NET은 기존 워크로드와 계속 관련됩니다. .NET 에코시스템 전체에서 코드를 공유하고 기술을 재사용할 수 있으므로 Xamarin에서 제공하는 모바일 앱을 포함하여 무엇을 언제 사용할지 결정할 수 있습니다.
Microsoft는 .Net Core 1.0 발표에서 "Age of Ascent" 게임의 개발사인 Illyriad Games가 Azure Service Fabric에서 ASP.NET을 사용한다고 밝혔습니다. 성능이 10배나 향상되었습니다. 중국의 선도적인 IT 회사인 NetEase는 콘텐츠, 게임, 소셜 미디어, 통신 및 상거래에 대한 온라인 서비스를 제공하며 끊임없이 변화하는 게임 공간에서 앞서 나가기 위해 .NET Core를 백엔드 서비스로 선택했습니다. 이전 Java 백그라운드 아키텍처와 비교: ".NET Core는 릴리스 주기를 20% 단축하고 엔지니어링 리소스 비용을 30% 절약했습니다." 그는 “게다가 생산 중인 가상 머신의 수를 절반으로 줄일 수 있다”고 처리량 향상과 비용 절감에 대해 말했다.
요약
10년이 넘는 개발 끝에 C# 언어는 1.0에서 7.0으로 발전했지만, .NET 플랫폼은 크로스 플랫폼 설계라는 원래 의도로 돌아왔고, 버전 번호가 1.0으로 다시 시작되었습니다. Tencent에서 C# 언어를 사용하면서 최고점과 최저점도 경험했습니다. 저도 결제 사업으로 이직하고 동료들과 함께 열심히 노력하여 tlinux와 docker에 입문했습니다.