By Vyacheslav Gorlov
Senior Solutions Architect, ClearScale
Change is good — except when it's not. Even then, it might not be bad if you know how to handle it. That's the case for some of what we've seen in the app development world for the last several months.
A number of changes emanating from leading companies and open-source consortiums are enabling new and enhanced capabilities for development teams, the apps they create, and their end-users.
Some of the significant changes we want to call attention to include:
- C++20 adds more new major features than C++14 or C++17. They include further language improvements such as concepts, designated initializers, and template syntax for lambdas. There are also new standard library enhancements like data streams.
- PHP 8 is expected to be released in December 2020 and will include many features to make it faster and more reliable. That includes Just-in-time (JIT) compiler, constructor property promotion, validation for abstract trait methods, and arrays starting with a negative index.
- Released in September, Swift 5.3 now enables writing OS-level code in the OS-independent way, better support of cross-platform development, and even AWS Lambda runtime.
- The feature set enhancements, performance tuning, and other updates of NodeJS 15 are too numerous to cover in this blog, but you can see them here.
- Issued October 5, Python 3.9 comes with a host of exciting features such as the zoneinfo module for dealing with time zones; union operators that can update dictionaries; the more expressive decorator syntax; and annotations that can be used for other things besides type hints.
Perhaps one of the most far-reaching changes in the app development world is Microsoft's .NET 5 platform. Slated for general availability in November 2020, it unifies .NET Core. NET Framework, and Xamarin into a single .NET toolchain. (NET Core basically becomes .NET 5.)
The Upside and Downside of .NET 5
Among the benefits coming out of .NET 5 — it will provide a unified .NET SDK experience, with a single base class library across all .NET 5 apps. There will be new .NET APIs, language features, and runtime capabilities. Using Xamarin, .NET 5 will include cross-platform mobile development support for Android OS, Linux, iOS, macOS, watchOS, and tvOS.
The downside to .NET 5 is that a few legacy technologies, or at least some of their features, are going away or will no longer be supported.
.NET 5 won't support every .NET Framework feature, and a few technology stacks won't port into .NET 5. There are millions of websites and apps built on or using components using the .NET Framework, so they'll need to be updated to run on a supported framework. The time to migrate code is now.
It's important to note that porting older .NET applications into .NET 5 will likely entail significant manual effort. And it will require analysis of dependencies and APIs to see what's compatible.
One way to handle that job is with Microsoft's .NET Portability Analyzer. The tool is used to assess a web app's flexibility in its current state when it comes to using it across all .NET systems. Another option is AWS's Porting Assistant for .NET. The analysis tool quickly scans .NET Framework apps to identify incompatibilities with .NET Core, find replacements, and generate an assessment.
More .NET 5 Highlights
While there are too many changes associated with the .NET 5 release to discuss here, a few are highlighted below that could have a significant impact on app development projects:
- Windows Communication Foundation (WCF) won't be included either. gRPC is being touted as the alternative. However, it can't be hosted in IIS yet. Also missing will be Workflow Foundation. For this, Microsoft recommends looking at the unofficial WF runtime fork and porting that into current apps.
- The latest versions of C# and other updates and features like Ranges, Nullable Reference Types, Pattern Matching, and Async Stream won't be available to older .NET framework versions.
- Web apps and native applications will support and work on all platforms. Developers just need to use the natively supported controls on the specific platforms.
- There are several things being replaced. Among them: JsonDocument, a new library, replaces json.net; ASP.NET replaces Asp.NET; the Entity Framework Core replaces EF 6; and MSIX replaces the old MSI package installer for managing desktop applications.
Why Migrate to .NET 5
Not all apps developed in .NET framework need to move to .NET 5. An audit and assessment of your apps and their dependencies can help you make that determination. In most cases, however, you're probably going to want to migrate them to .NET 5.
Some essential .NET Framework features are being transitioned to end-of-life, so you'll avoid potential issues that could arise from the lack of support. It's also important to note that you'll only be able to use .NET Framework as long as your operating system still supports it. With Microsoft shortening its support lifecycles, that might not be very long.
The primary reasons to migrate your apps to .NET 5 is that 1.) it will enable your apps to benefit from Microsoft's future work with its technologies and platforms and 2.) it will enable you to take advantage of the security, performance, and other enhancements .NET 5 offers over .NET Framework.
For example, encryptions, code checks, validations, and code access security make the new .NET platform safe. The MVC architecture allows for safe and fast scalability.
Keep in mind that there's no charge from Microsoft for migrating from .NET Framework to .NET 5. However, it will likely require considerable IT resources in terms of time and budget dollars. If you don't have the resources to spare — or the expertise to guide a successful migration — it is probably worth considering using, or at least collaborating with, an experienced third-party company.
Take on the Changes with ClearScale
The changes highlighted in this blog represent just a fraction of those that have taken place over the last few months. There are plenty more to come. If it all seems overwhelming or you're not quite sure how to take advantage of them, let ClearScale help.
Our extensive app development and app modernization work has enabled us to test and successfully implement many of the latest technology updates as we create cost-effective solutions to meet our customers' needs. It helps that we're cloud experts and experienced in working across multiple platforms and multiple industries.
We're also an AWS Premier Consulting Partner with competencies in areas such as Microsoft workloads, migration, DevOps, IoT, and mobile. We have extensive experience employing AWS best practices and using the many tools and resources — including those for leveraging .NET — that AWS offers.
Learn more about developing applications on AWS in our eBook A Guide to Application Modernization in the Cloud.
You can also talk to our solution architects about your organization's application needs. Whether you need help migrating to a new platform like AWS or developing cloud-native apps, we can help.
Get in touch today to speak with a cloud expert and discuss how we can help: