As we discussed recently in our article regarding the deprecation of support for Java 7, in January we asked our users to complete a short survey about which versions of the Java and .NET platforms they use for iText, so we could gauge which versions of these platforms we should target for future iText 7 development. Since we try to pay close attention to the needs of our userbase, we determined that for both the benefit our .NET users, and the future development of iText 7, it was also time to deprecate support for .NET Standard 1.6.
One of the major reasons for us dropping support for .NET Standard 1.6 is that other libraries in the ecosystem are also dropping support for versions earlier than .NET Standard 2.0. This includes some of the dependencies for iText, so our hand is being forced somewhat.
So, as of iText 7.1.13, we will be targeting .NET Standard 2.0 for the future development of the entire iText 7 Suite, instead of .NET Standard 1.6. This will mean that when developing iText we will have access to many more APIs and thus provide our users with more robust and flexible code.
iText 7 Suite .NET support plan
As you can see in the following table, we will however be preserving support for .NET Framework 4.0, until January next year at least. Although, considering Microsoft themselves announced they were ending support in January 2016, we think we’ve done pretty well!
Version |
Original Release Date |
Latest Patch Version |
Patch Release Date |
Support Level |
End of Support |
iText End of Support |
.NET Core 3.1 |
December 3, 2019 |
3.1.5 |
June 9, 2020 |
LTS |
December 3, 2022 |
December 2023 |
.NET Core 3.0 |
September 23, 2019 |
3.0.3 |
February 18, 2020 |
EOL |
March 3, 2020 |
|
.NET Core 2.2 |
December 4, 2018 |
2.2.8 |
November 19, 2019 |
EOL |
December 23, 2019 |
|
.NET Core 2.1 |
May 30, 2018 |
2.1.19 |
June 9, 2020 |
LTS |
August 21, 2021 |
August 2022 |
.NET Core 2.0 |
August 14, 2017 |
2.0.9 |
July 10, 2018 |
EOL |
October 1, 2018 |
|
.NET Core 1.1 |
November 16, 2016 |
1.1.13 |
May 14, 2019 |
EOL |
June 27, 2019 |
|
.NET Core 1.0 |
June 27, 2016 |
1.0.16 |
May 14, 2019 |
EOL |
June 27, 2019 |
|
.NET Framework 4 |
April 12, 2010 |
January 12, 2016 |
January 2021 |
|||
.NET Framework 4.5 |
August 15, 2012 |
January 12, 2016 |
Benefits of .NET Standard 2.0
As noted by Microsoft when detailing what was new in version 2.0, .NET Standard version 1.6 only included a comparatively small subset of APIs, excluding many APIs commonly used in the .NET Framework or Xamarin. This meant that developers had to find suitable replacements for familiar APIs when developing applications targeting multiple .NET implementations, significantly complicating development. To address these issues, .NET Standard 2.0 added more than 20,000 new APIs that can be used.
If you want to see a clear breakdown of the various .NET implementations supported in each version of the .NET Standard specification, an interactive table is available which lists all supported implementations and the number of available APIs for each version.
On top of that, Microsoft also listed some of the additions to the System namespace:
- Support for the AppDomain
- Better support for working with arrays from additional members in the Array
- Better support for working with attributes from additional members in the Attribute
- Better calendar support and additional formatting options for DateTime
- Additional Decimal rounding functionality.
- Additional functionality in the Environment
- Enhanced control over the garbage collector through the GC
- Enhanced support for string comparison, enumeration, and normalization in the String
- Support for daylight saving adjustments and transition times in the AdjustmentRule and TimeZoneInfo.TransitionTime classes.
- Significantly enhanced functionality in the Type
- Better support for deserialization of exception objects by adding an exception constructor with SerializationInfo and StreamingContext
In closing, we believe that by switching to target .NET Standard 2.0 strikes the right balance between supporting users who need to run on legacy systems while offering the best environment for .NET developers, since .NET Standard 2.0 is supported by all modern platforms and is the recommended way to support multiple platforms with one target.