Adapting Dotnet usage - Moving into Cloud development

FerroFerro Member Posts: 9
edited 2023-11-24 in NAV Three Tier
Hello all,

As you know, in AL development, when you change your target:"OnPrem" to "Cloud" to follow the Universal Code Initiative, your dotnet variables and some functions blow up. I lost count of all the modifications that I had to do to XML/HTTP/web request-related variables and file management, so I thought it would be a good idea to create a thread where we can all share our findings and help each other.

This could serve as a guideline for future developers because this topic is not easily found online.

I'll start with an easy one:

Some examples using the XmlDocument datatype to replace the Dotnet XmlDocument:
variable declaration -> XMLDocVariable: DotNet XmlDocument; -> XMLDocVariable: XmlDocument;
XMLDocVariable:= XMLDocVariable.XmlDocument(); ->XMLDocVariable:= XmlDocument.Create();
XMLDocVariable.AppendChild(......... -> XMLDocVariable.Add(.........
XMLDocVariable.Save(BodyOutStream); ->XMLDocVariable.WriteTo(BodyOutStream);
XMLDocVariable.Load(RespInStream); ->XmlDocument.ReadFrom(RespInStream, ResultXmlDoc);

Comments

  • FerroFerro Member Posts: 9
    edited 2023-11-24
    Now, how about this one?
        local procedure AddBasicAuthorizationHeader(Uri: Text; Username: Text; Password: Text; var HttpRequest: HttpRequestMessage);
        var
            DotNet_CredentialCache: DotNet CredentialCache;
            DotNet_NetworkCredential: DotNet NetworkCredential;
            DotNet_Uri: DotNet Uri;
        begin
            if (Username = '') then
                exit;
            DotNet_Uri := DotNet_Uri.Uri(Uri); -> HttpRequest.SetRequestUri(Uri); ??
            DotNet_NetworkCredential := DotNet_NetworkCredential.NetworkCredential(Username, Password);
            DotNet_CredentialCache := DotNet_CredentialCache.CredentialCache();
            DotNet_CredentialCache.Add(DotNet_Uri, 'Basic', DotNet_NetworkCredential);
            HttpRequest.Credentials := DotNet_CredentialCache;
      end;
    

    Any thoughts?
Sign In or Register to comment.