There is a famous quote: “The future is already here — it’s just not very evenly distributed.” By William Gibson (Science Fiction author)
Since the future is already here, it is time to ask ourselves if we – you and me – are actually in it.
In our corner of the Microsoft Dynamics world, here are some of the future technologies that are with us today.
- AL – replacement programming language for C/AL (now co-existing with C/AL)
- Visual Studio Code – new to us – not so new to others
- Docker – started with Linux – now usable with Windows 10 and Windows Server 2016
- Microsoft Flow
- Microsoft Graph
- Common Data Model or Common Data Service
- PowerBI – not so new, but is everyone using it yet?
- PowerApps – connect apps with a wide variety of standard apps
- PowerShell – not new – but how many people know it well?
- Quantum Computing – yes – Microsoft released Q# so we can get started emulating quantum computers
- BlockChain – Microsoft has CoCo
- SQL Server 2017 in memory files – currently HP only, others sure to follow (plus column store?)
- Extensions version 2 – the true start of add-on solutions and customizations that will make upgrades easy – maybe even push button in a couple of releases
- Embed apps – part of the above for vertical solutions
- Connect Apps – use APIs – and hopefully the Common Data Model
- Azure functions – code to call from NAV
- Image analyzer – is it a bird, is it a plane, no it’s a Cronus bicycle or even a human being
- R – a language and environment for statistical computing.
If the above 20 bullet points have not exhausted you, then read on for a brief discussion of each of them, and then ponder how much future you still need to absorb!
AL is available from the NAV 2018 DVD – modern development environment – plus available from the Visual Studio market place for free. Make sure you install the correct version for your NAV.
DOCKER – Think of Docker as a lightweight VM. Originally developed for Linux, but Microsoft has adopted it for the Windows Server 2016 and Windows 10 and is actively supporting it. Docker allows you to isolate some of the services in a Docker container while still using the operating system for the remaining services. This is important to us for several reasons:
- Microsoft provides regular NAV preview builds with all the updates
- It provides a means of running multiple installed versions and build – each in their own Docker container
- You can use an external SQL Server or the SQL Server Express included in some of the Containers
- You can even use a Docker Container to host VPNs – which is useful for those of who support multiple customers with conflicting VPNs
GITHUB – a popular repository for open source code – Microsoft and many of the NAV MVPs and NAV developers provide free code for AL and PowerShell. Even VSTS (Visual Studio Team Services) has a link to it.
SNIPPETS – these are snippets of code you can use with your AL code to save you development time. They could come from GIT or your own library.
Microsoft FLOW – from the Flow web site: “create automated workflows between your favorite apps and services to get notifications, synchronize files, collect data, and more”. One use in NAV is approvals.
Microsoft GRAPH – allows you to pull together, using the API, data from your different applications – mail, contacts, documents, devices, etc. Examples include smart workflows, custom dashboards, collaboration information.
Common Data Model (CDM) – basically a way to transfer data between applications using common data types for addresses, email, images, etc. Used by PowerBI, PowerApps, and Flow. This includes Microsoft products – Excel, SQL Server, NAV and other vendors like Salesforce. Microsoft includes many different services as part of this program. Basically allows the user to pull together business information from different systems to provide a unified model for their business.
PowerBI – a significant step up from Excel, and a less expensive and easier tool than a data warehouse.
“Power BI is a suite of business analytics tools that deliver insights throughout your organization. Connect to hundreds of data sources, simplify data prep, and drive ad hoc analysis. Produce beautiful reports, then publish them for your organization to consume on the web and across mobile devices. Everyone can create personalized dashboards with a unique, 360-degree view of their business. And scale across the enterprise, with governance and security built-in.”
PowerApps – lets you connect to a wide variety of applications (https://powerapps.microsoft.com/en-us/) – like PowerBI, easy to use – comes with Common Data Service using CDM (mentioned above). Enables the power user to create apps without writing code. It comes with hundreds of standard business entities already defined – like customer, product, lead, etc. See https://docs.microsoft.com/en-us/powerapps/connections-list for a list of connectors – much more than just Microsoft – Salesforce, Facebook, and Twitter for example.
PowerShell – this is a powerful scripting language that is included with Microsoft Windows. Microsoft provides administrative and development shells with the NAV product. You can add and execute your own scripts. It is a cross between Unix/Linux scripting and DOS command language on steroids.
Quantum Computing – while the first quantum computers have been released, Microsoft has added a language Q# that allows the developer to emulate a quantum computer. Currently a quantum computer needs to be maintained at close to absolutes zero, so it is likely to remain a cloud offering. I can see it initially being used to solve the big problems like aircraft and crew scheduling – and rescheduling. Over course of time, the cost to run a quantum computer should decrease to where the NAV size companies could use it for transportation routing and production scheduling. Currently it looks like quantum computing will be used to provide answers where the software needs to consider a large number of possibilities. ERP systems will likely remain on traditional computers. (If this seems farfetched, imagine taking your smart phone back in time to the birth of the modern PC and demonstrating it in the 1980s!)
Blockchain – most of the attention is focused on Bitcoin, however the technology is being incorporated in tracking non-financial transactions like food from farm to supermarket shelf. Walmart has experimented with this technology. Microsoft introduced CoCo Framework for corporations to use in securely tracking transactions. (https://azure.microsoft.com/en-us/blog/announcing-microsoft-s-coco-framework-for-enterprise-blockchain-networks/) Besides food, DOD, commercial aircraft, and any other discipline needing secure and fast traceability will find this useful.
SQL Server 2017 and Azure SQL Server – what may not be well known is, with Azure SQL Server, the user always gets the most up to date version of SQL Server – including all the monthly updates and enhancements. 2017 steps up the performance of in-memory OLTP – included in your base product for SQL Server 2017 and Azure SQL Server – most features in the premium editions. This is in addition to the columnstore indexes (analysis and reporting) – premium edition.
Dynamics NAV 2018 – extensions version 2 – these are much better than version 1. NAV has a new application language “AL” that the developers use inside Visual Studio code (free downloadable product) to develop extensions. With Extensions 2.0, NAV finally has a way for third party products and customizations to be engineered so they can be brought forward to a new release easily – theoretically with no work, but that will take a year or two to fully achieve this goal. The way it accomplishes this if to provide page and table extensions that are saved separately from the standard pages and tables. For custom code additions to standard fields and codeunits, events can be used in separate codeunits instead of modifying standard code. There will be exceptions to this, but Microsoft will work with developers to eliminate these exceptions.
Dynamics NAV embed apps – this is a bit of a fuzzy term – it can be used to embed NAV apps in SharePoint for example or it could be an app provided by an ISV
Connect Apps – uses APIs – example – Microsoft provides a QuickBooks payroll interface to NAV
Azure functions – invoke from AL – see link to master of the .net and Java universe for NAV – http://vjeko.com/invoking-azure-functions-al/ – you will note that Java is the way to go with AL – even though .net will be supported on premise later. It also introduces terms strange to the typical NAV developer like JSON and REST – however in a form NAV developers can use. Microsoft will may upon request add usable functions if we provide them the original. When Microsoft does it, they do it in a much cleaner faster way by avoiding the dreaded “Reflection”. (If you do not know what Reflection is, then you are very happy to let Microsoft do it.)
Image Analyzer – new with NAV 2018 – you download and install it, and now the user can use it to analyze images and insert the characteristics into NAV – including the world famous Cronus bicycled – plus you – let Microsoft select your age for you – hopefully you will like it!
R – An independent language and environment for statistical computing. It’s has really good graphical capabilities; plus good machine learning capabilities. It is an open source environment that was added into the SQL Server ecosystem by Microsoft to SQL Server 2016.