alguidelines.dev - Business Central Design Patterns – 3. CAL Coding Guidelineshttps://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/Recent content in 3. CAL Coding Guidelines on alguidelines.dev - Business Central Design PatternsHugo -- gohugo.ioenDocs: Designhttps://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/design/Mon, 01 Jan 0001 00:00:00 +0000https://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/design/ <h2 id="cal-coding-guidelines">C/AL Coding Guidelines</h2> <h2 id="design"><strong>Design</strong></h2> <p>Find the C/AL guidelines by expanding the menu in the left.</p>Docs: Internally used DotNet Typeshttps://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/internally-used-dot-net-types/Mon, 01 Jan 0001 00:00:00 +0000https://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/internally-used-dot-net-types/ <p><em>(Dynamics NAV 2015)</em></p> <p><strong>Dot Net Types</strong></p> <p>&lsquo;mscorlib&rsquo;.System.Convert</p> <p>&lsquo;mscorlib&rsquo;.System.Globalization.CultureInfo</p> <p>&lsquo;mscorlib&rsquo;.System.Globalization.DateTimeStyles</p> <p>&lsquo;mscorlib&rsquo;.System.Globalization.NumberStyles</p> <p>&lsquo;mscorlib&rsquo;.System.Type</p> <p>&lsquo;mscorlib&rsquo;.System.Array</p> <p>&lsquo;mscorlib&rsquo;.System.EventArgs</p> <p>&lsquo;mscorlib&rsquo;.System.Security.Cryptography.SHA512Managed</p> <p>&lsquo;mscorlib&rsquo;.System.Security.Cryptography.HashAlgorithm</p> <p>&lsquo;mscorlib&rsquo;.System.Text.Encoding</p> <p>&lsquo;mscorlib&rsquo;.System.Text.UTF8Encoding</p> <p>&lsquo;mscorlib&rsquo;.System.Environment</p> <p>&lsquo;mscorlib&rsquo;.System.IO.Directory</p> <p>&lsquo;mscorlib&rsquo;.System.IO.Path</p> <p>&lsquo;mscorlib&rsquo;.System.IO.File</p> <p>&lsquo;mscorlib&rsquo;.System.IO.FileAttributes</p> <p>&lsquo;mscorlib&rsquo;.System.Collections.ArrayList</p> <p>&lsquo;mscorlib&rsquo;.System.Collections.IEnumerator</p> <p>&lsquo;mscorlib&rsquo;.System.Collections.Generic.IEnumerator`1</p> <p>&lsquo;mscorlib&rsquo;.System.TimeSpan</p> <p>&lsquo;mscorlib&rsquo;.System.DateTime</p> <p>&lsquo;mscorlib&rsquo;.System.DateTimeKind</p> <p>&lsquo;mscorlib&rsquo;.System.DateTimeOffset</p> <p>&lsquo;mscorlib&rsquo;.System.Decimal</p> <p>&lsquo;mscorlib&rsquo;.System.String</p> <p>&lsquo;System&rsquo;.System.Diagnostics.Process</p> <p>&lsquo;System&rsquo;.System.Diagnostics.ProcessStartInfo</p> <p>&lsquo;System&rsquo;.System.IO.Compression.CompressionMode</p> <p>&lsquo;System&rsquo;.System.IO.Compression.GZipStream</p> <p>&lsquo;System&rsquo;.System.Uri</p> <p>&lsquo;System&rsquo;.System.UriPartial</p> <p>&lsquo;System.Data&rsquo;.System.Data.DataColumn</p> <p>&lsquo;System.Data&rsquo;.System.Data.DataTable</p> <p>&lsquo;System.Data&rsquo;.System.Data.DataRow</p> <p>&lsquo;System.Web&rsquo;.System.Web.HttpUtility</p> <p>&lsquo;System.Windows.Forms&rsquo;.System.Windows.Forms.DialogResult</p> <p>&lsquo;System.Windows.Forms&rsquo;.System.Windows.Forms.FileDialog</p> <p>&lsquo;System.Windows.Forms&rsquo;.System.Windows.Forms.OpenFileDialog</p> <p>&lsquo;System.Windows.Forms&rsquo;.System.Windows.Forms.SaveFileDialog</p> <p>&lsquo;System.Windows.Forms&rsquo;.System.Windows.Forms.FolderBrowserDialog</p> <p>&lsquo;System.Xml&rsquo;.*</p> <p>&lsquo;DocumentFormat.OpenXml&rsquo;.*</p> <p>&lsquo;mscorlib&rsquo;.System.IO.DirectoryInfo</p> <p>&lsquo;mscorlib&rsquo;.System.IO.FileInfo</p> <p>&lsquo;Microsoft.Dynamics.Nav.Client.CodeViewerTypes&rsquo;.Microsoft.Dynamics.Nav.Client.CodeViewerTypes.BreakpointCollection</p> <p>&lsquo;Microsoft.Dynamics.Nav.Client.CodeViewerTypes&rsquo;.Microsoft.Dynamics.Nav.Client.CodeViewerTypes.VariableCollection</p> <p>&lsquo;Microsoft.Dynamics.Nav.SMTP&rsquo;.Microsoft.Dynamics.Nav.SMTP.SmtpMessage</p> <p>&lsquo;Microsoft.Dynamics.Nav.Management.DSObjectPickerWrapper&rsquo;.*</p> <p>&lsquo;Microsoft.Dynamics.Nav.Timer&rsquo;.*</p> <p>&lsquo;Microsoft.Dynamics.Nav.DO.ClientProxyWrapper&rsquo;.*</p> <p>&lsquo;Microsoft.Dynamics.Nav.Client.BusinessChart&rsquo;.*</p> <p>&lsquo;Microsoft.Dynamics.Nav.Client.BusinessChart.Model&rsquo;.*</p> <p>&lsquo;Microsoft.Dynamics.Nav.Integration.Office&rsquo;.*</p> <p>&lsquo;Microsoft.Dynamics.Nav.Integration.Office.Mock&rsquo;.*</p> <p>&lsquo;Microsoft.Dynamics.Nav.EwsWrapper&rsquo;.*</p> <p>&lsquo;Microsoft.Dynamics.Nav.EwsWrapper.ALTestHelper&rsquo;.*</p> <p>&lsquo;Microsoft.Dynamics.NAV.OLSync.OLSyncSupplier&rsquo;.*</p> <p>&lsquo;Microsoft.Dynamics.Nav.OLSync.Common&rsquo;.*</p> <p>&lsquo;Microsoft.Dynamics.Nav.NavUserAccount&rsquo;.*</p> <p>&lsquo;Microsoft.Dynamics.Nav.OpenXml&rsquo;.*</p> <p>&lsquo;Microsoft.Dynamics.Nav.RapidStart&rsquo;.*</p> <p>&lsquo;Microsoft.Dynamics.Framework.RapidStart.Common&rsquo;.*</p> <p>&lsquo;Microsoft.Dynamics.Nav.Client.TimelineVisualization&rsquo;.Microsoft.Dynamics.Nav.Client.TimelineVisualization.</p> <p>VisualizationScenarios</p> <p>&lsquo;Microsoft.Dynamics.Framework.UI.WinForms.DataVisualization.Timeline&rsquo;.Microsoft.Dynamics.Framework.UI.</p> <p>WinForms.DataVisualization.TimelineVisualization.DataModel+TransactionChangesRow</p> <p>&lsquo;Microsoft.Dynamics.Framework.UI.WinForms.DataVisualization.Timeline&rsquo;.Microsoft.Dynamics.Framework.UI.</p> <p>WinForms.DataVisualization.TimelineVisualization.DataModel+TransactionChangesDataTable</p> <p>&lsquo;Microsoft.Dynamics.Framework.UI.WinForms.DataVisualization.Timeline&rsquo;.Microsoft.Dynamics.Framework.UI.</p> <p>WinForms.DataVisualization.TimelineVisualization.DataModel+TransactionRow</p> <p>&lsquo;Microsoft.Dynamics.Framework.UI.WinForms.DataVisualization.Timeline&rsquo;.Microsoft.Dynamics.Framework.UI.</p> <p>WinForms.DataVisualization.TimelineVisualization.DataModel+TransactionDataTable</p> <p>&lsquo;Microsoft.Office.Interop.Word&rsquo;.*</p> <p>&lsquo;Microsoft.Office.Interop.Excel&rsquo;.*</p> <p>&lsquo;Microsoft.Dynamics.BAPIWrapper&rsquo;.*</p> <p>&lsquo;Microsoft.Dynamics.Nav.Types&rsquo;.Microsoft.Dynamics.Nav.Types.ConfigSettings</p> <p>&lsquo;Microsoft.Dynamics.Nav.DocumentService&rsquo;.*</p> <p>&lsquo;Microsoft.Dynamics.Nav.DocumentService.Types&rsquo;.*</p> <p>&lsquo;mscorlib&rsquo;.System.IO.StreamWriter</p> <p>&lsquo;Microsoft.Dynamics.Nav.Client.TimelineVisualization&rsquo;.Microsoft.Dynamics.Nav.Client.TimelineVisualization.</p> <p>InteractiveTimelineVisualizationAddIn</p> <p>&lsquo;System&rsquo;.System.ComponentModel.CancelEventArgs</p> <p>&lsquo;System&rsquo;.System.Text.RegularExpressions.Regex</p> <p>&lsquo;System&rsquo;.System.Text.RegularExpressions.RegexOptions</p> <p>&lsquo;mscorlib&rsquo;.System.IO.StreamReader</p> <p>&lsquo;System.Windows.Forms&rsquo;.System.Windows.Forms.Control</p> <p>&lsquo;System.Windows.Forms&rsquo;.System.Windows.Forms.ControlEventArgs</p> <p>&lsquo;System.Windows.Forms&rsquo;.System.Windows.Forms.DragEventArgs</p> <p>&lsquo;System.Windows.Forms&rsquo;.System.Windows.Forms.GiveFeedbackEventArgs</p> <p>&lsquo;System.Windows.Forms&rsquo;.System.Windows.Forms.HelpEventArgs</p> <p>&lsquo;System.Windows.Forms&rsquo;.System.Windows.Forms.InvalidateEventArgs</p> <p>&lsquo;System.Windows.Forms&rsquo;.System.Windows.Forms.KeyEventArgs</p> <p>&lsquo;System.Windows.Forms&rsquo;.System.Windows.Forms.KeyPressEventArgs</p> <p>&lsquo;System.Windows.Forms&rsquo;.System.Windows.Forms.LayoutEventArgs</p> <p>&lsquo;System.Windows.Forms&rsquo;.System.Windows.Forms.MouseEventArgs</p> <p>&lsquo;System.Windows.Forms&rsquo;.System.Windows.Forms.PaintEventArgs</p> <p>&lsquo;System.Windows.Forms&rsquo;.System.Windows.Forms.PreviewKeyDownEventArgs</p> <p>&lsquo;System.Windows.Forms&rsquo;.System.Windows.Forms.QueryAccessibilityHelpEventArgs</p> <p>&lsquo;System.Windows.Forms&rsquo;.System.Windows.Forms.UICuesEventArgs</p>Docs: Internationalizationhttps://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/internationalization/Mon, 01 Jan 0001 00:00:00 +0000https://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/internationalization/ <h2 id="cal-coding-guidelines">C/AL Coding Guidelines</h2> <h2 id="internationalization"><strong>Internationalization</strong></h2> <p>Find the C/AL guidelines by expanding the menu in the left.</p>Docs: Localizabilityhttps://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/localizability/Mon, 01 Jan 0001 00:00:00 +0000https://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/localizability/ <h2 id="cal-coding-guidelines">C/AL Coding Guidelines</h2> <h2 id="localizability"><strong>Localizability</strong></h2> <p>Find the C/AL guidelines by expanding the menu in the left.</p>Docs: Readabilityhttps://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/Mon, 01 Jan 0001 00:00:00 +0000https://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/readability/ <h2 id="cal-coding-guidelines">C/AL Coding Guidelines</h2> <h2 id="readability"><strong>Readability</strong></h2> <p>Generally, all readability rules are Microsoft style choices only. You can use them to keep consistency with the existing code.</p> <p>Find the C/AL guidelines by expanding the menu in the left.</p>Docs: UXhttps://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/ux/Mon, 01 Jan 0001 00:00:00 +0000https://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/ux/ <h2 id="cal-coding-guidelines">C/AL Coding Guidelines</h2> <h2 id="user-experience"><strong>User eXperience</strong></h2> <p>Find the C/AL guidelines by expanding the menu in the left.</p>