alguidelines/docs/navpatterns/index.xml
2022-02-20 20:13:18 +00:00

36 lines
No EOL
9.9 KiB
XML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>alguidelines.dev - Business Central Design Patterns NAV Patterns Archive</title><link>https://alguidelines.dev/docs/navpatterns/</link><description>Recent content in NAV Patterns Archive on alguidelines.dev - Business Central Design Patterns</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><atom:link href="https://alguidelines.dev/docs/navpatterns/index.xml" rel="self" type="application/rss+xml"/><item><title>Docs: Patterns</title><link>https://alguidelines.dev/docs/navpatterns/patterns/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/docs/navpatterns/patterns/</guid><description>
&lt;div class="alert alert-warning" role="alert">
&lt;h4 class="alert-heading">Warning&lt;/h4>
Please note that these patterns may not be up-to-date with the patterns for AL and Business Central Development.
&lt;/div></description></item><item><title>Docs: 2. Anti-Patterns</title><link>https://alguidelines.dev/docs/navpatterns/2-anti-patterns/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/docs/navpatterns/2-anti-patterns/</guid><description>
&lt;p>Some of the software development practices, had &lt;strong>not&lt;/strong> stood the test of time. Despite that, some are still being used today by developers everywhere.&lt;/p>
&lt;p>&amp;ldquo;An &lt;strong>anti-pattern&lt;/strong> (or &lt;strong>antipattern&lt;/strong>) is a common response to a recurring problem that is usually ineffective and risks being highly counterproductive&amp;rdquo; (from &lt;a href="http://en.wikipedia.org/wiki/Anti-pattern">Wikipedia&lt;/a>)&lt;/p>
&lt;p>Since almost the beginning of the NAV Design Patterns project, we talked about documenting the anti-patterns - but never found the time. Until, spontaneously, the April 1st 2015 article had practically wrote itself in a couple of hours, with priceless contributions coming from Andreas, Elly, Nikola - and last but not least, waldo.&lt;/p>
&lt;p>Best regards,&lt;/p>
&lt;p>Bogdana Botez&lt;/p></description></item><item><title>Docs: 3. CAL Coding Guidelines</title><link>https://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/docs/navpatterns/3-cal-coding-guidelines/</guid><description>
&lt;p>We&amp;rsquo;ve decided to publish our current C/AL coding guidelines. They are actual, as per January 2015 when this is published (but might fall out of sync as time goes by).&lt;/p>
&lt;p>You can also &lt;a href="https://blogs.msdn.microsoft.com/nav/2015/01/09/cal-coding-guidelines-used-at-microsoft-development-center-copenhagen" title="download the C/AL coding guidelines as pdf">download the C/AL coding guidelines as pdf,&lt;/a> all in one document. In contrast, on this wiki, the coding guidelines are published individually. The reason is: give you the chance to comment and share your oppinion on each one. Thanks to &lt;a href="https://alguidelines.dev/members/waldo/default.aspx" title="waldo">waldo&lt;/a> for this idea and for helping out.&lt;/p>
&lt;p>The guidelines are debatable - and it is good when they are generating debate. There is variation of opinion on the rules at Microsoft too. The plan is to simply expose what we use now. And more important, to say that guidelines could be used. Debate on individual guidelines can become heated for any programming language, but the benefit of using some guidelines stays.&lt;/p>
&lt;p>For us, those guidelines are enforced at check-in time - we are using a tool which verifies and only allows compliant check-ins. While this tool is internal and not ready to publish, we had anyways decided to open up and present the rules we use to the community, as inspiration.&lt;/p>
&lt;p>Question: Since we&amp;rsquo;re having the guidelines, how come there is still C/AL code in NAV which doesn&amp;rsquo;t respect them?&lt;/p>
&lt;p>Answer: all new C/AL code is bound to follow the guidelines (else it cannot be checked-in). However, the code that existed before the rules - it does not. We had done cleanup in a certain degree. Now we&amp;rsquo;re gradually improving the old code base as we visit various objects in order to add new functionality, however chances are that code we didn&amp;rsquo;t touch in a long time had remained in its old form.&lt;/p>
&lt;p>We&amp;rsquo;re looking forward to your comments. Where you can, do provide concrete examples of the alternatives, Good and Bad.&lt;/p>
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
&lt;iframe src="https://www.youtube.com/embed/z6skKy0pkmU" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" allowfullscreen title="YouTube Video">&lt;/iframe>
&lt;/div></description></item><item><title>Docs: (OLD) Get Involved</title><link>https://alguidelines.dev/docs/navpatterns/4-get-involved/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/docs/navpatterns/4-get-involved/</guid><description>
&lt;h2 id="reminder-this-is-an-archive-of-the-patterns-site-this-information-is-not-current">&lt;strong>Reminder, this is an ARCHIVE of the Patterns site, this information is not current.&lt;/strong>&lt;/h2>
&lt;p>&lt;strong>Spread the info&lt;/strong>&lt;/p>
&lt;p>NAV Design Patterns are excellent materials for training and knowledge transfer. In your company, you can help new developer get to speed with NAV by recommending them to read and then present to the team one of the most common patterns: &lt;a href="https://alguidelines.dev/navpatterns/1-patterns/no-series/" title="No. Series">No. Series&lt;/a>, &lt;a href="https://alguidelines.dev/navpatterns/1-patterns/singleton/singleton-table/setup-table/" title="Setup Table">Setup Table&lt;/a> and definitely &lt;a href="https://alguidelines.dev/navpatterns/1-patterns/hooks/" title="Hooks">Hooks &lt;/a>which will be a great investment in reducing your upgrade time. The more experienced developers can read directly the newer patterns, like &lt;a href="https://alguidelines.dev/navpatterns/1-patterns/implementation-of-surrogate-keys-using-autoincrement-pattern/">Surrogate Key&lt;/a>, &lt;a href="https://alguidelines.dev/navpatterns/1-patterns/easy-update-of-setup-or-supplementary-information/">Easy Update&lt;/a>, &lt;a href="https://alguidelines.dev/navpatterns/1-patterns/totals-and-discounts-on-subpages-sales-and-purchases/">Totals on Subpages&lt;/a>, &lt;a href="https://alguidelines.dev/navpatterns/1-patterns/queries/use-queries-to-replace-nested-loops/">Using Queries instead of nested loops&lt;/a> etc.&lt;/p>
&lt;p>&lt;strong>Become a NAV Design Pattern author&lt;/strong>&lt;/p>
&lt;p>You have a pattern that you have used successfully? You have ideas on new patterns? You&amp;rsquo;ve found some existing design patterns which are used in the product but nobody (except a few) knows how it works, but you find it worth it to explain it for the NAV C/AL developers out there?&lt;/p>
&lt;p>Send your pattern idea to &lt;a href="https://alguidelines.dev/members/bogdana-botez/default.aspx">Bogdana Botez&lt;/a> as a private message on the community webpage. Once your first pattern is ready, we will review it as a team, and when signed off, you get author permissions on the Wiki site and from then on, you can continue publishing and editing existing patterns. However, only publish on the Wiki materials that we had signed-off (we don&amp;rsquo;t have moderation capabilities yet, so we count on each author to only make meaningful/agreed changes).&lt;/p>
&lt;p>You and your company also get credit by being mentioned on the pattern and also on our patterns authors page.&lt;/p>
&lt;p>Once you have the idea, writing it down shouldn&amp;rsquo;t take long. You will be helped by adopting &lt;a href="https://alguidelines.dev/navpatterns/4-get-involved/template-for-writing-nav-design-patterns/">the template &lt;/a>that we&amp;rsquo;ve used.&lt;/p>
&lt;p>&lt;strong>Remember the rules&lt;/strong>&lt;/p>
&lt;p>When handling design patterns, content quality is critical. We are trying our best to only publish content that is correct, relevant and has been reviewed by multiple developers. Therefore, we review and sign-off all patterns before publishing them (except for the videos made prior to 2015). All text content found on this Wiki and on the NAV Team Blog has been through one, usually multiple iterations of review. If you find something to correct, please comment on the pattern or contact &lt;a href="https://alguidelines.dev/members/bogdana-botez/default.aspx" title="Bogdana Botez">Bogdana Botez&lt;/a>, and we will review and update it.&lt;/p>
&lt;p>We are working on creating a set of rules, which would help keeping the content clean and the project on the correct track. &lt;a href="https://alguidelines.dev/navpatterns/4-get-involved/code-of-conduct/" title="Find the rules here">Find the rules here&lt;/a>.&lt;/p></description></item><item><title>Docs: Related Links</title><link>https://alguidelines.dev/docs/navpatterns/related-links/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://alguidelines.dev/docs/navpatterns/related-links/</guid><description>
&lt;p>Find below some related NAV Design Patterns links.&lt;/p>
&lt;p>&lt;a href="http://blogs.msdn.com/b/nav/archive/tags/patterns/" title="MSDN NAV Team Blog - posts about patterns">MSDN NAV Team Blog - posts about patterns&lt;/a>&lt;/p>
&lt;p>&lt;a href="http://mibuso.com/dlinfo.asp?FileID=1573" title="NAV Application Design slides ">NAV Application Design slides &lt;/a>from NAV TechDays conference in Antwerp, 2013&lt;/p>
&lt;p>&lt;a href="http://mibuso.com/dlinfo.asp?FileID=1556" title="NAV Application Design movie">NAV Application Design movie&lt;/a> from NAV TechDays conference in Antwerp, 2013&lt;/p>
&lt;p>&lt;a href="http://mibuso.com/dlinfo.asp?FileID=1568">NAV&amp;rsquo;s Secret Code: Design Patterns of Today and Tomorrow&lt;/a> slides from NAV TechDays conference in Antwerp, 2013&lt;/p></description></item></channel></rss>