Microsoft Dynamics AX

Een korte geschiedenis over Microsoft Dynamics AX en ook een ere voor het team dat dit geweldige product heeft gebouwd.

In 1983 ontwikkelden broers Erik en Preben Damgaard een primitief ERP-product genaamd DANMAX in de garage van hun ouders. Dit product ontwikkelde zich vervolgens tot Concorde, dat een van de twee belangrijkste ERP-pakketten op de Deense markt werd. Dit product bevatte een programmeertaal die XAL heet; Deze naam is bedacht omdat de toenmalige concurrentie, Navision, een taal had met de naam AL (voor Application Language): om niet achter te blijven noemde Erik Damgaard zijn taal eXtended Application Language of XAL. Volgens alle standaarden was het een zeer grove taal, met Pascal-achtige syntaxis (Pascal was destijds de populaire taal en diende als de belangrijkste inspiratiebron voor XAL), maar de verlossende kwaliteit was dat domeinexperts met beperkte informatica of programmeerachtergrond er code in konden schrijven. Het programmeermodel was gebaseerd op triggers (wat we vandaag events zouden noemen). Ontwikkelaars gebruikten meestal kleine codefragmenten die moesten worden geactiveerd wanneer gegevens werden ingevoegd, bijgewerkt of verwijderd.

Toen Concorde XAL van de DOS- en OS / 2-consolevensters naar Windows en Presentation Manager werd gebracht, werden er steeds meer wijzigingen in de toepassingstaal aangebracht. Op dit moment (rond 1996) was Java de taal van de dag geworden en het had (samen met andere talen, zoals C ++ en Object Pascal) de concepten van objectgeoriënteerd programmeren gepopulariseerd. Objectgeoriënteerde concepten werden geïntroduceerd, samen met andere verbeteringen en op een bepaald moment werd vastgesteld dat er geen manier was om een ​​upgradepad naar de Concorde XAL-gebruikers te bieden, en een nieuw product zag het licht. Dit was de eerste versie van Axapta [1], uitgebracht in 1998: het introduceerde een ontwikkelingsplatform dat we sindsdien hebben gebruikt, inclusief het doordringende gebruik van metadata, de Application Object Tree en alle andere concepten van MorphX en de X ++ taal.

De oorspronkelijke X ++ -compiler is een één-door-compiler geschreven in C ++: Everything, van het oplossen van macro’s, tot semantische analyse en het genereren van codes en genereren van kruisverwijzingen gebeurt in één keer. Uiteraard bemoeilijkt dit de compiler enorm, maar het werd op deze manier gedaan vanwege de staat van de hardware van die tijd: in die tijd was de 80286-chip alomtegenwoordig en werkstations van die tijd hadden toegang tot minder dan 1 MB geheugen.

De oorspronkelijke compiler genereert PCode die vervolgens wordt geïnterpreteerd door een op maat gemaakte interpreter, net zoals het geval is voor Java en zijn virtuele machine. Rond deze infrastructuur werd een reeks ondersteunende tools gebouwd (debugger, codedekking, prestatieanalyse, enz.).

Later fuseerde de Damgaard Company met aartsrivaal Navision en werd uiteindelijk in 2002 overgenomen door Microsoft. Later, na vruchteloze inspanningen voor Green en Fenway, was het Axapta-platform in 2006 beter geïntegreerd met de Microsoft-stack, inclusief ondersteuning voor interoperabiliteit tussen X ++ en beheerde code.

In Axe 2009 werd een alternatief voor de X ++ PCode-interpreter verstrekt, zodat code die in bepaalde scenario’s wordt uitgevoerd, als beheerde code kan worden uitgevoerd. Het genereren van beheerde code was gebaseerd op sleutelgatgeneratie van de pcode gegenereerd door de oudere compiler.

Sindsdien zijn meer en meer van de ontwikkelingsscenario’s verplaatst van MorphX naar de Visual Studio (voortaan: VS) -omgeving: met name het oude rapportagekader is volledig verouderd en vervangen door een SSRS-ontwerper in VS.

bron:
Peter Villadsen
Hoofdprogramma-manager – X ++ -team

Bedankt Peter voor de eerste bijdrage!