In response to Microsoft’s recent update to their .Net coding language, you may be wondering whether it’s finally worth your time and effort to use this framework. With easier open source integration and the improved ability to use containers such as Docker, it may be worth your while to start experimenting with .Net Core.
We reached out to three IT professionals to weigh in on the potential benefits and possible challenges of using .Net Core. Below, we’ll share insights from Peter Hanselmann, Solution Architect for Bambora, Tim Mezups, senior web developer at HotelsCombined.com, and Ivan Poloziuk, senior .NET developer and tech Lead also at HotelsCombined.com.
What are the Benefits of Transitioning to .Net Core?
Stability is also important for Bambora’s Peter Hanselmann. “.NET Core is becoming a stable and mature framework and with the general release of .NET Core 2.0 later this year we will be comfortable to use this in production. There are many interesting aspects of .NET Core such as the introduction of cross platform support and we may look at deploying some applications in future on Linux.
.Net Core’s Container utility is a great selling point. Hanselmann continues, “One of the biggest benefits to .Net Core is the improved ability to use Containers to build software. Using Containers (e.g. Docker) is the ability to split a piece of software into many small, self-contained packages which can be changed without making everything go offline/risking damaging everything.”
For Ivan Poloziuk and his team at HotelsCombined.com, the decision to transition to .Net was based on the skill set. “For us the main reason to start using .Net Core was the limitation of AWS Lambda functions that use Linux platform underneath and doesn’t support full .Net Framework, so that if we wanted to go with AWS Lambda, we faced a simple choice: C# with .Net Core or Node.js, Java or Python. Since all our developers know C#, the choice wasn’t that hard to make.
“After that project, we knew what it is and its limitations, so that we started to use it in other projects where it doesn’t add to development time while giving the freedom of using Linux or Windows instances for deployment.”
How is the Transition to .Net Core?
The answer depends on whether you’re converting an existing application or developing one from scratch. Hanselmann explains, “Coming from a background of using NET Framework for several years, developing a new application with .NET Core has proved fairly straightforward. Converting an existing application is a bit more involved with some of the changes associated with .NET Core, which is why, at least initially, we will probably obtain most value by targeting use of .NET Core for new applications rather than conversion of existing applications.”
For Mezups’ team, the transition was not intuitive when switching from .Net to .Net core. “The transition was a little rocky. There were certain functions that I was used to using within the .Net framework that either did not exist in .Net core (yet) or had been moved to another namespace. Also, there were issues with some common 3rd party libraries that we use as a matter of course which did not yet have full functionality. This entailed us having to find work a-rounds. This was not because the 3rd party libraries had not finished transitioning to support .net core, it was a limitation imposed via the current version of .net core and what is specified in the .net standard specification.”
Poloziuk agrees with Mezups. “The transition isn’t always as smooth as we wanted it to be, but that’s something that one can expect with transitioning to cross platform development. The main impediment on this road was the lack of 3rd party libraries but that is going to change with the release of .Net core 2.0 sometime soon, which is in Preview at the moment.”
How Will .Net Core Impact Your Development Practices?
Hanselmann shares insight into his experience, “A number of our legacy applications have had deployment interdependencies. Moving to a microservices architecture, coupled with the use of containers, will ease deployments and will help developers to refactor applications without the interdependencies that can cause difficult to foresee regressions.”
For Poloziuk, .Net core isn’t drastically impacting their existing practices. “We don’t expect this to change our development practices in any significant way in the near future, but we always welcome new trends when they give us opportunities to do things better, faster or be more flexible with our deployment.”
How Can You Integrate .Net Core?
You may find .Net core easier to use for new projects instead of re-working current projects. This was true for the team at HotelsCombined.com where .Net core integration is limited to internal projects for now.
Poloziuk shares, “We used .Net core in a couple of internal projects, mostly as micro services, AWS Lambda functions and console apps for bulk data processing. We are also researching the opportunities to extend the use of this technology to more projects in the future.”
One of those projects may include a website as Mezups reveals. “We are currently developing an API as well as a website using .Net core. Both of these applications are part of greenfield projects that have just recently begun and hence have not reached production yet.”
Should You Transition to .Net Core?
If you’re embarking on a new project, consider using .Net core, especially because of its inbuilt support for containerisation. It was the most compelling reason for Hanselmann and his team at Bambora. He shares, “Being able to run .NET Core applications in Docker containers fit well with our current push to a micro service based architecture. Being able to easily deploy micro services in a container helps to prevent dependencies on external resources.”
Mezups relays the general sentiment on whether or not to transition to .Net core. “It felt like a backwards step for us to not use the latest version of the framework.”
He continues, “The main reason [for our transition to .Net core] was because we were starting a totally new project. It felt like the right time to use .Net core as we were not bringing along any baggage from the previous versions of .Net.”
If you do decide to upskill in .Net, remember that the easiest way to do so is to start small, but learn by doing.
Poloziuk sums it up, “One can read hundreds of pages in a book but writing 10 lines of code would be much more beneficial I believe.
“It’s unlikely that it will be easy to convince your manager to convert the existing project to a new framework, but new smaller projects, micro services, research apps, experiments shouldn’t be too hard to do with new tech. Weekend project or hack day project are good targets for the first steps as well.”