We have a client currently on NAV2013 R2 who is expressing interest in upgrading to NAV2018. However, they have various legacy customizations that i'm concerned may not be possible with the new NAV 2018 "AL 2.0" extensions development model.
If I understand correctly, the "dotnet" datatype was removed for AL (this is mentioned in Microsoft's AL github issue tracker page and any references to the dotnet datatype is completely absent in the NAV2018 developer documentation). This presents a challenge because we utilize this datatype for various things Dynamics NAV is not capable of, including but not limited to:
Regular Expressions
e.g. validating email addresses, URLs, etc. via System.Text.RegularExpressions. We've found NAV's built-in email address validation inadequate and consequently had to roll our own email address validation via regex matching.
HTML string formatting
We use System.Web.HttpUtility.HtmlEncode to properly encode HTML strings for SMTP HTML emails sent from NAV. What's the workaround? roll our own HtmlEncode function in a codeunit?
Folder I/O
Although NAV can create and read files via FILE/INSTREAM/OUTSTREAM, there are no built-in functions for creating and deleting folders
The "FILE" virtual table's "Name" field (which is the full path to a directory or file) has an 80 character limit, requiring us to utilize System.IO.Directorory to get around this limitation (file and directory paths in the current session's %TEMP% directory on the service tier server can be quite long)
Launching a client or server process (used for tasks like PDF merging & watermarking, image conversion, etc)
The SHELL function is no longer available in 3-tier NAV, requiring us to utilize dotnet classes in the System.Diagnostics namespace to launch a process
Consuming 3rd party SOAP calls from AL
Using the NAV2019 HttpClient and XmlDocument data types to call a third party SOAP service are inadequate replacements and will incur quite a bit of added development overhead
Calling client-side dotnet datatypes from the Windows RTC
I just don't see how this is possible anymore with AL if the dotnet type is unavailable for AL
Question -
How are the above sample use cases to be achieved via NAV2018 AL development? We are aware that the "automation" (COM) datatype is still available, but even that has its limitations (cannot be run form the NAV Server for instance). Do we need to leverage HttpClient/XmlDocument/JsonObject to do all the above (except folder I/O at least)?
*This post is locked for comments