Harnessing the Benefits of .NET Core
As a company that is always on the lookout for new technologies that can help us work smarter and more efficiently, we naturally had to explore the opportunities of using .NET Core. Several internal projects have been experimenting with .NET Core - the blazing fast, light-weight, and modular cross-platform runtime environment – but the real success came with the centralization of Adform’s change logs.
We previously had a couple of legacy solutions that were built with different technologies and databases. The new solution, which has been developed by a team in Kaunas, Lithuania, is built on .NET Core from the ground up and consolidates the change log solutions into one ubiquitous service that can be used by all parts of the company. From an operations point-of-view, the people in our Client Support department now only need to go one place when looking for historical customer information, which ultimately will improve our customer service.
The benefits of using .NET Core proved to be even greater from a technical point-of-view. Although the development team was a bit skeptical in the early stages of the project, due to the risk of using an unknown tech stack for one of our major platform products, it all went surprisingly well. The team set up various kill switches and conditions upon which they could terminate the .NET Core project and roll back to regular.NET, but luckily, none of those switches had to be used. The actual results were even better than expected in light of the time spent on adopting .NET Core, building and adopting packages, and actually delivering the change log solution.
As was demonstrated in our change log project, .NET Core can free us from the dependency of running our solutions on a Windows OS, which gives us a more flexible choice of deployment in the future. The .NET Core technology has likewise helped diminish our dependence on Intel processors, since it requires no operating-specific application development skillset for running on other processors, such as ARM. In the near future, .NET Core will allow us to move from virtual machine deployments to containers. While this is still to be qualified, there is high probability that the use of containers will free physical machine resources and help us become even more efficient.
Overall, the best thing that came along with the adoption of .NET Core was to witness the smooth and easy deployment process, and not least to see that the CI configuration was much more simple than regular .NET. The easiness and flexibility of deployment to Linux machines is a great improvement compared to the time spent on deploying and running services on Windows machines. While not being .NET Core exclusive, the .NET Standard provides a lot of flexibility in building and consuming reusable packages in the company, since it is supported by both .NET Core and .NET Framework ecosystems. While we have had success in using .NET Core for the change log solution, we are yet to tap into the potential for performance improvements that .NET Core has to offer. However, current performance benchmarks are even better than the benchmarks we set out with.
Our usage of .NET Core maintains Adform’s significant investment in our .NET developers. .NET Core allows us to utilize the core competencies of these talents and maintain the careers of our software engineers, along with the previously mentioned benefits of hardware efficiency and container flexibility. We are encouraging our development teams to use .NET Core where possible, and will continue to scout for areas where .NET Core can help us innovate and improve our Full Stack platform.
Peter Milne, Technical Architect in Adform, recently spoke at the .NET Summit in Minsk, Belarus, where he shared some of his knowledge about high load technologies, including how we use .NET Core. A recording is available here.