Giter Club home page Giter Club logo

alguidelines's Introduction

alguidelines.dev Site Source Repo

This is the source for the alguidelines.dev website.

Business Central Design Patterns & Best Practices

This site is meant to house some of the community's knowledge about Microsoft Dynamics 365 Business Central AL Development best practices, particularly around hosting Design Patterns.

Please see the ALGuidelines.dev site for the full information about this project.

Repo organization

This is a hugo statically-generated site, hosted on GitHub Pages. The site is automatically built by GitHub Actions (see regen-gh-pages.yml).

All site content is stored in the content directory in markdown format.

content/en
├── _index.html  # Landing page
├── author       # Info about blog authors
├── blog         # Blog posts
├── docs         # Documentation pages
└── search.md

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.

When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

Setup

  1. Clone and setup
# Clone all submodules
git submodule update --init --recursive --depth 1
# Install NPM dependencies
npm install
  1. Run Hugo server
$ hugo server
Web Server is available at http://localhost:1313/ (bind address 127.0.0.1)
Press Ctrl+C to stop

You can visit localhost:1313 in browser to preview website.

Making changes

  1. Create a new branch
  2. Make your changes
  3. Verify your changes locally with Hugo server
  4. Commit and push your changes to the branch
  5. Raise a PR to main branch
  6. Once PR is merged, your changes would be live on the site

Trademarks

This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.

alguidelines's People

Contributors

ajkauffmann avatar busschers avatar christianbraeunlich avatar curateideas avatar deadmouse avatar dependabot[bot] avatar eivindgiske avatar freddydk avatar fvet avatar jeremyvyska avatar jesperschulz avatar kine avatar microsoft-github-operations[bot] avatar microsoftopensource avatar mkublbock avatar patrickschiefer avatar peterconijn avatar sorenklemmensen avatar stefanmaron avatar tfenster avatar thedoubleh avatar tino-teuber avatar tkapitan avatar twityde avatar waldo1001 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

alguidelines's Issues

[NAVPatterns] Update Formatting

Most of the formatting is not up-to-date and sometimes users are not shown any subsections because the file is named index.md instead of _index.md.

As this project hopefully lasts for the future, I would suggest honoring its predecessors and adapting all chapters as closely as possible to the original.

I already started doing so as I'm also interested in each and every topic and I already found out that most of the linked resources aren't available anymore or the link is not directed to the right location.

Already started this process and hope to create a pull request soon (might take some time).

Guidelines: Copy the ones that make sense from NAV to BC

Put it in the new template format.

Working list:

Colon in headings

Discussed in https://github.com/microsoft/alguidelines/discussions/102

Originally posted by christianbraeunlich February 5, 2022
At the end of the headings these colons seem unnecessary - just by the graphic design of the heading. Therefore, I would suggest removing the colons from the headings. This affects the template for the BC Patterns and the already published BC Patterns. Or could someone enlighten me what the colon is all about in these places? Thanks in advance! 😊

grafik

Guideline: Overloading methods.

tableextension 53100 "Customer Ext BASE" extends Customer
{
    procedure BlockCustomer(HideDialog: Boolean)
    var
        WLDBlockCustomerMeth: Codeunit "WLD BlockCustomer Meth";
    begin
        WLDBlockCustomerMeth.BlockCustomer(Rec, HideDialog);
    end;

    procedure BlockCustomer()
    begin
        BlockCustomer(false);
    end;
}

Pattern: Facade

Describe the facade pattern in the context of the AL programming language.

[Hugo] set up docker environment

For a better reviewing of how the documentation would look like in the production environment it would be awesome if there's an additional subsection "Set up local environment" or "Containerization" in the Contributing section.

EDIT:
Just to give you an example on how this could look like:
example-local-env

WITH Scope Name Collision

Since with either implicit or explicit are being deprecated, shouldn't this recommend not using with at all?

Pattern: Event Bridge Pattern

In the world of interfaces, it is important to preserve (certain) events over multiple interface implementations.

Generic Method Pattern: Handled

Microsoft preferred in the base app IsHandled instead of Handled.
I think this should be adapted in the generic method pattern examples.

No Magic Numbers use Named Constants

Too often I see people that assign meaning to random numbers. We see this standard if people refer to objects by number or options by the integer value, however it happens to when importing file formats outside our control or people try to sort stuff with more. The rule should be "No Magic Numbers". Use meaning full abstractions that make the code readable instead. Magic Numbers obscured the intent for the reader.

Please discuss

Error Message Processing

Please fix the indentation of the code. It is incorrect under the "else"

Existing

    END ELSE
        TempErrorMessage.LogSimpleMessage(TempErrorMessage."Message Type"::Error,NoSATAccountDefinedErr);

        IF NOT TempErrorMessage.HasErrors(TRUE) THEN
            SaveXMLToClient(Document,Year,Month,'CT');
        TempErrorMessage.ShowErrorMessages(FALSE);

Should be

    END ELSE
        TempErrorMessage.LogSimpleMessage(TempErrorMessage."Message Type"::Error,NoSATAccountDefinedErr);

     IF NOT TempErrorMessage.HasErrors(TRUE) THEN
         SaveXMLToClient(Document,Year,Month,'CT');
     TempErrorMessage.ShowErrorMessages(FALSE);

Cyclomatic Complexity

Why are the requirements not simply lists and in code blocks? Also broken link, probably due to being in a code block.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.