Home  >  Article  >  类库下载  >  The development of C# in Tencent

The development of C# in Tencent

高洛峰
高洛峰Original
2016-10-13 17:14:391483browse

This article was first published on my WeChat public account "dotnet cross-platform". The content was warmly welcomed by everyone. The full text is republished on the blog. Reprinting is welcome, please indicate the source.

The main development language of .NET is C#, and the .NET platform is universal Refers to the development platform that follows the ECMA 334 C# and ECMA 335 CLI standards, including Microsoft's self-developed .NET platform and open source implementation of Mono, as well as Microsoft's latest development of .NET Core. I have been using C# since I joined the company in 2007. I have a general understanding of the use of this language in Tencent. I recently took the time to sort out the relevant situation and dispel the rumor that "no domestic Internet companies use C#."

1, 2003 ~ 2007

Microsoft released .NET 1.0 in 2002 and .NET 1.1 in 2003. Due to the high development efficiency of .NET, Tencent's OA system began to use .NET for development in 2003. The early OA system was developed using cgi. When I took over OA's single sign-on system in 2007, there was cgi in it. Compatibility code, the cgi compatibility code still has a memory leak problem, and it was not removed until the reconstruction of OA login in 2013. In 2003, the OA development team began to rapidly grow from a few people to more than 30 people in 2006. The company's rapid development also required more developers. Under Toby's introduction, I joined Tencent in 2007. I started from joining the company. He has been responsible for the development and operation of Tencent OA basic services, referred to as TOF.

2003 to 2007 were the years when .NET developed rapidly in Tencent. The earliest OA workflow-Pingao workflow product was also developed using .NET. In 2004, it was introduced and made a second customized development. I After joining the company, I took over the maintenance of this workflow engine. Pingao Company no longer maintains this version. In 2008, the K2 workflow engine was introduced to replace it. The company's portal www.oa.com was developed using Microsoft's SharePoint 2003 system. It was managed by Toby. He was Microsoft's MVP from 2005 to 2007. I also met Toby at a Microsoft community event. Later, he joined Tencent under his recommendation and has been working there until now. At that time, not only OA was developed using .NET, but many business operation systems in the company were also developed using .NET. The first version of TAPD developed was also developed using .NET. Before I came to the company, they established the current R&D department. The management department rewrote TAPD with PHP, which started the process of replacing asp.net with PHP. There are also many systems, such as finance/HR/SCM/company forum BBS/ITIL/BOSS, etc. It can be said that this is. NET at the peak of Tencent. Since 2007, the systems developed by asp.net have been gradually replaced by Python/PHP. Fortunately, the clearing and risk control of Tencent's payment business (formerly Tenpay) are still using C# from its inception to this day. Recently, I was fortunate enough to transfer to the payment and clearing business and continue to use Everbright C#.

2. 2007 ~ 2014

2007 ~ 2014 The division of this time period is exactly according to the Ballmer period of Microsoft, the period when Microsoft lost the Internet and mobile Internet. When I joined Tencent in early 2007, I went to Microsoft headquarters with Toby to attend the Microsoft MVP Global Summit. Bill Gates said goodbye to the CEO, and the CEO was handed over to Ballmer. A CEO who was in sales only wanted to make more money, and he clung to Windows. This has led to Internet companies rejecting the use of Windows. .NET has a natural cross-platform ideal, but it has never been realized. This has led many people to believe that .NET can only run on Windows. Once the concept is formed, it is difficult to change. During this period The open source .NET implementation of the Mono project has found a foothold in the mobile Internet field. Commercial projects based on Mono, Xamarin and Unity, occupy important positions in the fields of mobile development and game development respectively.

I joined Tencent in early 2007 and took over the maintenance of Tencent OA basic service TOF from Brother Min. I have been doing this for 9 years. During this period, many colleagues went out to start their own businesses. Brother Min led a group of brothers to create the company's intranet security field. , the security operation platform developed during this period was also developed using .NET. Since 2013, C++ has been gradually used to replace .NET development. There are not many projects left in the company's business developed using .NET. You can count them on your fingers. Currently, some financial/administrative/HR/Tenpay/Interactive entertainment operating systems are still developed using .NET. If they can only be deployed on Windows platforms, these systems will have to be replaced sooner or later. Therefore, while I am maintaining Tencent OA basic service TOF, I am studying Mono cross-platform development in my spare time, promoting the Mono project through blogs and Weibo, and practicing it in practice.

This span spans 7 years. I have also been working on upgrading and transforming Tencent's OA basic service TOF. In 2014, I completed the most complete reconstruction, supporting the transformation of tens of millions of API calls in the company's intranet. For details, please see my article introduction "Set a small goal first and use C# to develop tens of millions of applications." The company's other systems developed using .NET are also continuing to evolve and continue to survive. Of course, many students no longer use C# and instead use other languages ​​to rewrite the system. In 2013, the company's code platform launched Tencent's annual code report for the first time: http://code.oa.com/v2/report/2013. C# is not among the top 10 development languages. I have not yet operated a public account. This is only Internal data, if you need to see the specific content, please join Goose Factory.

The development of C# in Tencent

Tencent Annual Report 2014 http://code.oa.com/v2/report/2014 〈Tencent Code Report 2014 C# Code Volume Doubled〉 Miraculously C# ranked seventh, with an increase of 17 million lines. This What magic made it grow so fast, and the number of developers also increased to 1,563.

The development of C# in Tencent

While .NET applications are constantly being replaced by other languages, the code of C# in 2014 has exerted great power. The protagonist is Unity game development based on the Mono platform. It is mobile games that made C# explode, Unity5. After version 1, it fully supports VR development, and C# will continue to flourish in the VR/AR field in the future.

3, 2014 ~ The future

The CEO was changed in 2014, Satya Nadella took over as CEO, officially began to implement the open strategy, began to embrace Linux, open source, and continued the development of .NET Core for 2 years in June 2016. RTM was released on the 27th. In the past two years, Microsoft's transformation has been very successful. Microsoft's stock price has reached a perfect bottom and has just begun to rise.

Microsoft has also completed the acquisition of Xamarin, the developer of Mono, in the past two years. It has established the .NET Foundation and imitated the operations of the Apache Foundation to promote the development of the .NET platform. It has currently absorbed Unity, RedHat, and Samsung. Waiting for companies in the industry to join. Microsoft has also completed its platform evolution plan for .NET. The following picture is a full picture of its future:

The development of C# in Tencent

The development of C# in Tencent in 2014, with the help of the development of mobile games, the development in 2014 It is also very good. It has become the development language with the most potential. Let’s take a look at the 2015 Tencent Annual Code Report http://code.oa.com/v2/report/2015:

The development of C# in Tencent

The development of C# in Tencent

Use c# The number of people has increased from 1563 to 2068, and the code growth has also reached tens of millions. As far as I know, these increases are brought about by Unity. We will also see the growth of C# in the new VR field. In terms of traditional server-side application development It continues to decline and the situation is not optimistic. With the release of .NET Core 1.0 by Microsoft, it is available on Windows, OS X and Linux systems. .NET Core is a cross-platform, open source, modular .NET platform that can be used to create modern web applications, microservices, libraries and console applications. .NET Core is now available on Red Hat Enterprise Linux and OpenShift. Additionally, .NET Core is fully supported by Red Hat and extended through the integrated hybrid support partnership between Microsoft and Red Hat.

This is the biggest change since the inception of .NET and will lead the development of .NET in the next decade. We've rebuilt the .NET foundation to meet the needs of today's world: highly distributed cloud applications, microservices and containers. The .NET Framework, .NET Core and Xamarin are all important products of Microsoft and will continue to develop in the fields of Windows, Linux cross-platform cloud computing and cross-platform mobile respectively. The .NET Framework and traditional ASP.NET will continue to be relevant to your existing workloads. You can share code and reuse your skills across the .NET ecosystem, so you decide what to use and when, including mobile apps powered by Xamarin.

Microsoft listed .NET Core usage in the .Net Core 1.0 announcement. Illyriad Games, the developer of the game "Age of Ascent", reported that after using ASP.NET Core on Azure Service Fabric, the performance Improved 10 times. NetEase, a leading IT company in China that provides online services for content, games, social media, communications and commerce, needs to stay ahead in the ever-changing gaming space and has chosen .NET Core as its backend service. Compared with the previous Java background architecture: ".NET Core has shortened our release cycle by 20% and saved 30% of engineering resource costs." "In addition, it makes it possible to reduce the number of virtual machines in production by half," he said of throughput improvements and cost savings.

Summary

C# language has experienced more than 10 years of development and has developed from 1.0 to 7.0. However, the .NET platform has returned to the original intention of cross-platform design, and the version number has returned to 1.0, starting anew. The use of C# language in Tencent has also experienced peaks and troughs. We also have to start over. I also transferred to the payment business and worked hard with my colleagues to enter tlinux and docker.


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:C# property accessorNext article:C# property accessor