Author | He Kaiduo
Edit | tail
Microsoft has been the industry to make fun of "closed lock country" Microsoft is now also to the "reform and opening up" the road, Visual Studio 2017 release, not only the twentieth anniversary of VS events, but also a new visual experience of Microsoft's technology ecology. Previously only support Windows and its own products, Microsoft, now iOS, Android, Mac are supported.
Written in front
Beijing time on March 8, 2017 morning, Visual Studio 2017 scheduled release. This year coincides with the 20th anniversary of Visual Studio, Visual Studio team can be described as sincerity full, live up to expectations and not only have a new modular design and more performance, function is also a lot of Aspect and dry goods, not by no Ugly & ldquo; year of the goods & rdquo; update. More important is that it reflects the Microsoft industry trends for the industry's latest thinking, but also show the embrace of Microsoft's developer community's new attitude.
You may still remember that Ballmer shouted "Developers, developers, developers!" Before the crowd, which shows that Microsoft has a very important emphasis on the developer community and the experience of the developer tradition. However, a few years ago, perhaps lost in the closed and bundled, Microsoft's influence in the developer group in the doldrums. The idea of an exclusive integration of the technology product lines has finally proved to be unpopular, and in the era of Internet that advocates open source, it has weakened the competitiveness of Microsoft's major technology platforms.
Fortunately, the new CEO Nadera in charge of the company since, to Microsoft has brought a huge way of thinking changes, open and collaboration quickly became the main theme. Brand new corporate culture to help Microsoft's technical ecology out of the past, and gradually into a full of vitality of the perfect state. This paper attempts to explore the evolution of Visual Studio and the whole Microsoft technology stack from the different perspectives of programming language and its tool system, mobile and cloud, containerization and DevOps by analyzing the many characteristics of VS 2017.
Programming language and its tool system
The C # language developed steadily and began to support pattern matching
As we all know, VS's headed language is C #. C # is now a multi-paradigm of mainstream programming language, timeless, LINQ, dynamic, async / await and other iconic features to make it in the world with many fans. The new Visual Studio brings the new C # language version C # 7, the new Out variables, the Tuples, the Ref locals and returns, the local functions, And other characteristics. C # 7 evolution is clear, is based on the C # 6 to bring a steady incremental update, the code is more concise, readability and maintainability stronger, and further consolidate the status of C # mainstream programming language.
The most worth mentioning the new features, I am afraid to numberPattern matching(Pattern matching) the. This iconic functional programming paradigm introduces C #, which cleverly incorporates the original is keyword and switch statements, which can greatly simplify the cumbersome variable declaration, if statement and type conversion in many occasions, highlighting the business logic itself.
At the same time, we can also see the C # language team's prudence and restraint, because the pattern matching the original plan to do more in-depth, such as adding match keywords and type decomposition (destructuring) and other advanced features, but the C # team final choice The temporary to avoid radical changes, using a more moderate and more robust strategy. This kind of restraint, for the C # so with a heavy historical burden and a large number of legacy code language, is a huge user groups responsible attitude, but also reduces the number of C # developers to learn and upgrade the threshold.
The Roslyn compiler is fueling C # development
C # many new features behind, can not do without Roslyn compiler platform firm support. After several years of incubation Roslyn using C # to achieve a modern C # compiler, is now able to completely replace the original C + + implementation, really mature. The vitality of any language comes from an open, well-structured, maintainable compiler code base, open source Roslyn does this. It is not difficult to implement on the Roslyn platform, or even the initial code implementation, as the type of pattern matching previously mentioned. Therefore, the new departure of the Roslyn platform is a good follow-up to the rapid development of the guarantee, we should be full of confidence in the future of C #.
Another benefit of Roslyn is the powerful compiler API and metadata exposures that are also reflected in VS2017, improving productivity. In the use of VS2017 is not difficult to find, the most commonly used to find all references (& quot; Find All References & rdquo;) results are well formatted and syntax highlighting, also supports more show options; & ldquo; Ctrl +. & Rdquo; The smart tips combination has become more powerful, covering more scenes, but also help developers to migrate the code to C # 7 & mdash; & mdash; these are inseparable from Roslyn blessing. Previously similar features may need to be through a third-party business extension (such as JetBrains Resharper) to have, and now a considerable part of Visual Studio has been built directly.
Recent versions of TypeScript have also continually enhanced native language level support for JSX syntax (JSX is introduced from TypeScript 1.6). From the React.js for JSX features of the design, until recently for the React Native adaptation and optimization & mdash; & mdash; listen to community sounds TypeScript very ground, embodies the support and integration of the popular framework.
Other languages in the Microsoft technology stack are also updated in Visual Studio 2017, such as C ++, F #, and Visual Basic. Among them, C + + to further achieve the C + + 14 and C + + 17 standard features, and began to support cross-platform development; F # release version 4.1, proposed to have the best efficiency tools to support the modern functional programming language; and Visual Basic will be a certain degree of c # to stop the simple cloning, focusing on the development of their own characteristics. Due to space constraints, here is no longer unfolded.
The VS family, led by Visual Studio 2017, has completed the layout, forming a matrix for the development of ecology
Along with the new Visual Studio 2017 went to the front of the same door brothers, including open source, cross-platform, multi-language support for the lightweight development environment Visual Studio Code and developed by Xamarin Studio Visual Studio for Mac (still Preview state), they are already important members of the Visual Studio family.
New versions and new features of C #, TypeScript and other languages mentioned earlier in this article can be found and used in VSCode and VS for Mac, thanks to the openness and modularity of the corresponding language infrastructure. For example, Visual Studio Code in the perfect C # support, is through a clever called Omnisharp Server background Http service process to achieve the code structure of the real-time analysis and intelligent tips, and behind the Omnisharp support is Roslyn.
Move and cloud
"Mobile for the first, the cloud for the first" Microsoft's new strategy, so Visual Studio 2017 on the development of these two directions have made a huge investment, reached a new height.
Mobile last year, Microsoft successfully completed the acquisition of Xamarin, Xamarin will eventually be famous to use C # to write Android, iOS, Mac and other platform native application capacity in the bag, and integration with the Microsoft product line & mdash; This is widely welcomed by the .Net community. Today we see the Visual Studio 2017 has embodied the integration of the results: users do not have to pay extra to buy expensive Xamarin business suite, the new version of Visual Studio has been directly incorporated into the use of C # language and library eco-written Android / iOS applications , Significantly reducing the threshold of using Xamarin technology.
Into the Microsoft official system, Xamarin's ecology may gradually usher in the real sense of the boom period. However, for China's vast number of developers, the current domestic Xamarin's voice is still relatively small, the domestic mobile Internet ecology (such as authentication, sharing, payment, etc.) there is not much official support and compatibility considerations, which may become a domestic company The main obstacle to mobile development using Xamarin. If Microsoft and the community in this area to actively cooperate and promote, to solve this "acclimatized" problem, I believe the domestic Xamarin success stories will also begin to emerge.
Cross-platform. Net Core to mature, become suitable for the application of the cloud building options
Cloud computing, a few days ago Microsoft Azure in the public cloud area ranked second in the world, and the momentum is rising, is Microsoft's overall performance of the important growth engine. There is no doubt that Visual Studio 2017 spared no effort to develop cloud applications for the latest and most powerful support.
The first priority for the cloud is to help developers build applications that run in the cloud environment. .Net Core and Asp.Net Core play an important role here, because they have good cross-platform support, and can be relatively lightweight together with the entire runtime package for self-contained deployment (Self-Contained Deployment). Previously .Net Core / Asp.Net Core tried the water in Visual Studio 2015 and changed with the technical changes in the VS2015. Finally, Visual Studio 2017 will officially transform the .Net Core and Asp.Net Core projects as first-class citizens. Previously because .Net Core ecology in the preview state and worry about stability and breaking change friends, now you can rest assured that bold use.
The history and relationships of .Net Core and Asp.Net Core are interesting: many years ago the Asp.Net team was known for being open and enterprising within Microsoft, and when they designed the next generation called Asp.Net 5 Early code-named Project K), ambitious hope to join self-contained deployment, real-time compilation, cross-platform operation and other features, and at the time. Net tool chain and run-time can not support the relevant needs of the case, actually bottom-up to develop A set of relatively independent ecology and tool chains (DNX), in fact ahead of .Net Core hatching. Asp.Net 5 preview release, in the design and performance have made a very good response, the momentum has overshadowed the standard. Net Core Tooling, once caused a slightly awkward, puzzling situation.
It is gratifying that after a fairly long transition period, the two teams gradually moved toward coordination and integration, during which Asp.Net 5 was renamed to Asp.Net Core and eventually managed entirely based on the .Net Core CLI And run. Until the recent release of Visual Studio 2017, the final logo project.json description file for the DNX toolchain also withdrew from the historical stage with the official delivery of .Net Core Tools 1.0, and the evolution of the csproj / msbuild system reestablishes the project model again. This anecdotes actually reflects the course of Microsoft's self-innovation, can be described as a good thing more grinding, and finally good fruit.
Aza's PaaS capabilities continue to emerge, and Visual Studio helps dramatically reduce the threshold
Another point of view for cloud help is the need for support and seamless integration of Aza's PaaS features on Azure, which has been supported by the Azure SDK. In the Azure suite of Visual Studio 2017, it naturally includes a variety of PaaS-based cloud project templates, providing users with Azure features to provide a one-stop solution, typically such as WebJob and Service Fabric. Visual Studio Connected Service also helps developers connect and configure these platforms or services quickly for applications that consume PaaS and various standard APIs. In addition, Azure SDK contains Azure simulator can help developers in the local virtual cloud environment, greatly facilitate the cloud application in the local development and debugging.
PaaS capabilities for large data processing and computing are the focus of current public cloud vendors. Azure has recently moved in this area frequently, on the one hand continue to deepen cooperation with HortonWorks, high frequency to strengthen and update HDInsight (based on HDP); on the other hand PaaS higher degree of Azure Data Lake has also ended the preview into the GA state The Azure Data Lake on the data analysis is unique, you can use Microsoft's U-SQL language combined with the characteristics of SQL and C # mixed programming, to large-scale data processing and query has brought a refreshing way, by. Net ecological The developer's welcome. In Visual Studio 2017, developers can easily connect and manage large data assets in the cloud and create eco-related applications such as U-SQL, Storm, Hive, Pig, and so on.
Summary of mobile and cloud, Microsoft can be described as eclectic, advancing with the times. At the same time, through the full use of Visual Studio such productivity tools, Microsoft successfully on a variety of platforms and different levels of operating environment under the development unit for a good abstraction, giving developers a variety of options.
Containerized and DevOps
Microsoft and Docker in-depth cooperation, into the container ecosystem
Container and DevOps industry has become a hot word, Microsoft will naturally not miss the relevant ecological layout, before the success and timely and Docker reached a deep cooperation. In this area, Microsoft has done three things that look very forward-looking, first, in cooperation with Docker to spawn Windows containers, including Windows Server Core and Windows Nano Server in two forms to facilitate the traditional Windows applications to Docker container migration; The second is to focus on optimizing the ability of Windows as a Docker host and experience, making the Linux container through the Docker for Windows stable and brisk running on the developer Windows, Docker native support also added to the Windows Server 2016; Third, missed the opportunity to launch The Azure Container Service enables container-based large-scale applications to take root in the Microsoft cloud.
Benefit from the strategy of the continuous landing in Visual Studio 2017 in the smooth application of the development of the container can be described as a matter of course. We can easily add the Dockerfile package application container to the associated project and use the Docker Compose at the Solution level for container layout. I have tried in a relatively short period of time to establish a number of simple Asp.Net Core micro-services, and combined with each other to form a micro-service architecture based on the application, and then through the Visual Studio in the machine's multiple Linux containers on a key deployment The More convenient, Visual Studio 2017 also helped to generate .Net Core debugging related Docker configuration, making debugging mode running in the Linux container code easily hit the VS within the default breakpoint! This kind of stand-alone multi-container & ldquo; remote & rdquo; debugging is indeed a wonderful experience.
Azure Container Services is a Microsoft cloud container solution that supports a variety of layout engines
As mentioned above, Azure container service, worthy of some pen and ink. Many people believe that the continuous development of container ecology for the traditional PaaS formed a strong challenge, because the fine-grained container to a certain extent, can replace PaaS, while providing greater flexibility and portability & mdash; This is the case. On this issue, Azure chose both sides of the betting, while continuing to develop PaaS at the same time (such as active investment Azure Functions such as Serverless computing framework), also embrace the container ecology, introduced and continue to improve Azure Container Service. To retain the different size of the abstract, the option to the customer, is indeed the best solution. Azure container services currently support Docker Swarm, Mesosphere DC / OS and Kubernetes three knitting engines, while the bottom of the Azure VM Scale Set feature to achieve a flexible expansion of flexibility.
VSTS / TFS provides modern continuous integration capabilities
The real DevOps is inseparable from the construction and management of the continuous integration pipeline. In everyone's impression, Visual Studio has been a good manual release support, you can easily deploy a key application to the local or cloud. Visual Studio 2017 is a step in which the CI / CD process can be completely connected and opened through automated collaboration with the cloud Visual Studio Team Service (VSTS) or local Team Foundation Server (TFS) for automated compilation, testing, publishing and deployment The
The latest version of VSTS / TFS not only allows the complete DevOps process out of the box, and from the design concept to fully consider the open, you can use different technologies in the CI / CD pipeline different technologies: such as the use of GitHub warehouse source code Access and compile triggers, as well as support for Docker for the construction and release of the basic units, such as the use of Octopus Deploy deployment. Here, Azure also plays an important role, both to provide dynamic scalable Build Agent, but also as the final deployment of the application destination.
DevOps process is easy to ignore a pain point is the relational database schema version control and upgrade, in practice often need to rely on manually written migration script for manual operation & mdash; & mdash; This is contrary to the spirit of DevOps. In order to try to solve this problem, Microsoft and third-party tool provider Redgate to cooperate for the first time will be valuable Redgate Data Tools built in Visual Studio 2017 Enterprise Edition. The beauty of Redgate's related tools is that it not only completes the source code management and compilation check of the database schema, but also records the evolution details of different versions and automatically updates it to each database of the CI pipeline automatically with the VSTS , Including the final production environment after approval.
Outlook and expectation
Unconsciously, Visual Studio has gone through 20 years. Visual Studio 2017 is an important milestone, but also a new beginning.We have reason to believe that VS2017 will continue to upgrade, grasp the new opportunitiesThe In fact, Microsoft has begun to prepare for the VS2017 follow-up updates, and in full swing to publish the Visual Studio Preview, so that developers can be released before the official Update can take the lead in the upcoming new features.
With Visual Studio Preview we can see that in the future VS2017 Update1, the new Python development environment will debut, but also bring support for Windows 10 Creator Update new features UWP suite update. After that, there will be specific support for the development of data science and analytical applications. I believe that these future updates will be popular.
In view of China's developer community and market environment, Visual Studio team must also be more and more attentionThe Microsoft's recent cooperation with Huawei is a great success story: Huawei through the use of VS2017 for Linux-based C + + development, a substantial increase in production efficiency. Here, we also expect Visual Studio to do more in the future. In fact, in addition to solve some of the components of acclimatized, Visual Studio can also try to domestic companies, platforms and ecology for more in-depth cooperation. Let us boldly think, if VS can support the development of WeChat small program, or VS can easily docking the use of Ali cloud infrastructure, is not it even more attractive to it?
Written at the end
"Any Developer, Any App, Any Platform", Visual Studio 2017 in such a new slogan under the brewing and birth.Open rather than closed, cooperation rather than deny, compatible rather than split, which is part of Microsoft's change, which is part of Microsoft's evolutionThe Many Microsoft technology eco-enthusiasts look forward to the long-awaited spring, it seems really want to come. Maybe one day, we no longer need to emphasize "Microsoft technology stack" because it is an integral part of the open technology world, mutual integration, difficult to each other.
Note: This article represents only the author's personal point of view. The author of the individual and the text mentioned in the text are no interest relationship.
about the author
He is a Senior Technical Director, responsible for the website and traffic analysis product line. Has been involved in the architecture and design of the country for a number of digital marketing and social listening for large data solutions. Personal attention to the technical areas, including. Net ecosystem, cloud computing, large data technology stack and so on.