{"action":"created","issue":{"url":"https://api.github.com/repos/Microsoft/AL/issues/1514","repository_url":"https://api.github.com/repos/Microsoft/AL","labels_url":"https://api.github.com/repos/Microsoft/AL/issues/1514/labels{/name}","comments_url":"https://api.github.com/repos/Microsoft/AL/issues/1514/comments","events_url":"https://api.github.com/repos/Microsoft/AL/issues/1514/events","html_url":"https://github.com/Microsoft/AL/issues/1514","id":292490659,"number":1514,"title":"AL: mitigating object ID and field ID # and name conflicts? best practices?","user":{"login":"CanuckNav74","id":35810192,"avatar_url":"https://avatars1.githubusercontent.com/u/35810192?v=4","gravatar_id":"","url":"https://api.github.com/users/CanuckNav74","html_url":"https://github.com/CanuckNav74","followers_url":"https://api.github.com/users/CanuckNav74/followers","following_url":"https://api.github.com/users/CanuckNav74/following{/other_user}","gists_url":"https://api.github.com/users/CanuckNav74/gists{/gist_id}","starred_url":"https://api.github.com/users/CanuckNav74/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CanuckNav74/subscriptions","organizations_url":"https://api.github.com/users/CanuckNav74/orgs","repos_url":"https://api.github.com/users/CanuckNav74/repos","events_url":"https://api.github.com/users/CanuckNav74/events{/privacy}","received_events_url":"https://api.github.com/users/CanuckNav74/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2018-01-29T17:19:59Z","updated_at":"2018-02-06T09:18:29Z","closed_at":null,"author_association":"NONE","body":"I noticed when creating a new AL project in VS code, the helloworld.al file that VS code generates contains the following warning comments at the top of the file:\r\n\r\n`// Remember that object names and IDs should be unique across all extensions.`\r\n\r\nSay a customer installs two extensions - one from from vendor A and another from vendor B. They have no relation to eachother. What if there is a conflict in the names and numbers between these extensions? Does that mean that the extension from vendor B won't install?\r\n\r\nIt's entirely possible for two completely unrelated extensions to have object name and number conflicts.\r\n\r\nHow can this risk be mitigated? Seems that each extension ISV should have their own object ID range reseved to them (if so, what range would these numbers reside in and how does one go about securing their own reserved object range?) and furthermore, should any object names and field names in an extension have an ISV prefix? e.g. if the name of the ISV is \"CONTOSO\" would it not be a good practice to prefix any object and field names with that prefix?\r\n\r\nBy default, the \"idRange\" in the AL project's app.json is 50100 to 50149? Is this even sufficient?\r\n\r\ne.g. Table name **\"Foo\"** becomes **\"CONSOSO Foo\"** (table caption can still be \"Foo\")\r\n"},"comment":{"url":"https://api.github.com/repos/Microsoft/AL/issues/comments/363359636","html_url":"https://github.com/Microsoft/AL/issues/1514#issuecomment-363359636","issue_url":"https://api.github.com/repos/Microsoft/AL/issues/1514","id":363359636,"user":{"login":"dennisfrostlander","id":16953692,"avatar_url":"https://avatars0.githubusercontent.com/u/16953692?v=4","gravatar_id":"","url":"https://api.github.com/users/dennisfrostlander","html_url":"https://github.com/dennisfrostlander","followers_url":"https://api.github.com/users/dennisfrostlander/followers","following_url":"https://api.github.com/users/dennisfrostlander/following{/other_user}","gists_url":"https://api.github.com/users/dennisfrostlander/gists{/gist_id}","starred_url":"https://api.github.com/users/dennisfrostlander/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dennisfrostlander/subscriptions","organizations_url":"https://api.github.com/users/dennisfrostlander/orgs","repos_url":"https://api.github.com/users/dennisfrostlander/repos","events_url":"https://api.github.com/users/dennisfrostlander/events{/privacy}","received_events_url":"https://api.github.com/users/dennisfrostlander/received_events","type":"User","site_admin":false},"created_at":"2018-02-06T09:18:29Z","updated_at":"2018-02-06T09:18:29Z","author_association":"CONTRIBUTOR","body":"@CanuckNav74 Yes, the best practice to avoid conflicts is to use dedicated ID range for object IDs and prefixes for object names.\r\n@fvet I agree that that this is not ideal, however this is how the Nav platform and the licensing around it is designed. By the way, intellisense is triggered on any substring of an object name, so you don't have to start typing with a prefix ;)"}}
{"actor":{"display_login":"dennisfrostlander"}}