How do I protect my developed objects being reused by others

terjekjterjekj Member Posts: 7
As all sourcecode is open, it is easy to export and/or modfy a object. Just renumber object(s), and your running with some code you found. Many do have a business of developing code for markets/businesses. But how to protect ](*,) your code/objects?
Is one solution to have an external program(ocx/com) your're calling - from within vital objects that only you have - or give access to your customers ? If you don't have this piece of code, the objects won't work.

Then it is not that easy to 'steal' code. Any other recommendations ? \:D/

Comments

  • janpieterjanpieter Member Posts: 298
    seems impossible to me.
    In a world without Borders or Fences, who needs Windows and Gates?
  • kinekine Member Posts: 12,562
    It is not possible... only barriers can be made, but still the code can be stealed.
    Kamil Sacek
    MVP - Dynamics NAV
    My BLOG
    NAVERTICA a.s.
  • wahebwaheb Member Posts: 6
    You should create an add-on for your objects and use Navision Add-on Licensing Process to register your Add-on solution. Microsoft assigns you an object range and provides you an add-on license.
  • kinekine Member Posts: 12,562
    But still the objects can be renumbered and used by other... :|
    Kamil Sacek
    MVP - Dynamics NAV
    My BLOG
    NAVERTICA a.s.
  • NaviTools.comNaviTools.com Member Posts: 88
    Hi,

    When you use Add-on, others cannot export your objects into txt files. They also don't see your code anymore.

    You get a special development licence for your Add-on and another one for using its functionality.
    http://www.NaviTools.com
    Documentation for Microsoft Navision
    E/R diagrams, Workflow diagrams, UML diagrams, process diagrams
  • kinekine Member Posts: 12,562
    Yes, but still you can Ctrl+C, Ctrl+V, etc... (I will not describe whole process) and export into text.... (and you need only read access to this objects = user licence)
    Kamil Sacek
    MVP - Dynamics NAV
    My BLOG
    NAVERTICA a.s.
  • rdwyerrdwyer Member Posts: 10
    I think that when you get an Add-on license you can specify what permissions are granted to objects (you're basically defining the permissions for your granule). So:

    1. Store all your business logic in a single codeunit.
    2. All your tables, reports, forms, etc. call that codeunit, and have full permission to it.
    3. Your add-on will have 2 granules: a "base", which let's the user run the tables/reports/forms/etc (RIMDX), and a "super", which only allows Execute and Delete permission (---DX).

    For reference, check out Codeunit 37003000 in North American version of Navision 4.0. Even though I'm a developer, I can't design or import/export that object.
  • Ian_piddigntonIan_piddignton Member Posts: 92
    Kine is correct even though you cannot directly design, export etc the codeunit it is still possible to get into it.

    there is no fool proof way to stop someone from stealing your code from a Navision object :( just ways to make them take more time.

    Ian
  • jreynoldsjreynolds Member Posts: 175
    rdwyer wrote:
    For reference, check out Codeunit 37003000 in North American version of Navision 4.0. Even though I'm a developer, I can't design or import/export that object.
    The code in this codeunit is however exposed in the debugger.
  • DjangManDjangMan Member Posts: 15
    Put a copyright notice in the Documentation trigger. It doesn't stop anyone but it at least makes them think.

    Serenic does this for all of their Navigator 'touched' objects. Lots of folks would love to implement 10 globals across Navision and it's all there but any Serenic certified developer to look at.

    Or figure out how to put one of these in the code -> [-X
  • KowaKowa Member Posts: 925
    Just to keep this thread up-to-date : :wink:
    kine wrote:
    Yes, but still you can Ctrl+C, Ctrl+V, etc...
    With the 4.0SP2 Client, this old trick doesn't work anymore, but you can still help yourself with a second database accessed by an older client ( <= 4.0SP1)
    Kai Kowalewski
  • themavethemave Member Posts: 1,058
    note of caution, before you make your code untouchable make sure it won't need to be modified to work in a customers environment.

    I am an end user and we buy add-ons that provide value, don't really think there is a lot of end users stealing your code, as you need developer license to export to text, as well as access code units and cal code in forms, so the person you are trying to stop from stealing your code is really other Navision developers, which should respect the work you have done and not steal it anyways.

    But if I am looking at buying your add-on, I want to make sure my solution provider can tweak it to run in our environment.
  • Miklos_HollenderMiklos_Hollender Member Posts: 1,598
    If one can make the add-on throw an error, he can see the code in the Debugger, no matter what.
  • Miklos_HollenderMiklos_Hollender Member Posts: 1,598
    Besides, think about this: for those add-ons, that are only business logic extensions, running completely within Navision, the code does not worth much. What worths much is the general idea, concept, the embodiment of experience. Write an add-on - without using any external COM etc. - in 300 days and anyone can rewrite it in 30 days even without having access to the code, just by playing around with it, because the concepts, the behaviour, are what worthy. Look at a some complicated code, like Inventory Adjustment. Once you finally grasped how the hell it works, what it does and why, even without looking at the code, how much would it take to rewrite it? Not much.

    Besides, you cannot even write really complicated code in C/AL - it's either impossible, or runs too slow. We once developed a billing solution that could evaluate any mathematical expression and generate the invoice based on that - and we ended up writing it in C++ becase C/AL was just too slow. A genetic algorithm, to shedule operations? Forget it in C/AL. So what's really valuable, that's always external, and therefore protected code.

    So what would you want to protect? A bunch of inserts and validates? Does not really worth it.
Sign In or Register to comment.