Cutting Edge Double Whammy for MaMNT

When creating an app to fight crime and aid in emergencies, do you exclude every iOS user? Do you manually port your app and work hard to make the visual profile and functionality work in different operating systems?

Discriminating against user groups goes against the very essence of MaMNT’s platform, so of course we had no choice but to build the entire app in .NET MAUI! This cutting edge iteration of Xamarin is currently in preview, and allows cross-platform development of native apps. In short, it’s Microsoft’s newest and hippest cross-platform mobile tech.

The depiction of Maui in the film has been described as ‘half pig, half hippo’.
Hang on, wrong Maui. With a dash of humbleness he’d make a great addition to the turtle army, though!

Developing separate native apps for different operating systems? Forgeddaboudit!

The MAUI app communicates with the backend using gRPC, the coolest way to do APIs. Using gRPC, the app has a two-way connection to the server, which enables the server to push updates to the app. The gRPC server communicates with Dynamics using the new Dataverse ServiceClient for .NET 6, only available as preview.

It’s like a peanut butter and clam pizza; it may not work flawlessly immediately, but when it does you’ll never regret the time you spent acquiring the taste!

Peanut butter and clam pizza recipe, in case it piqued your interest

Badges claimed:

Play? Develop? Discord.

Discord is a platform most known within the gaming community for its voice- and text-chat features. MaMNT needed a hip platform for collaboration up and running quickly during the initial stages of the day, and landed on using Discord with their pre-existing user profiles.

In order to avoid merge conflicts with three developers working in the same repo, a Discord bot was set up to post new commits as chat messages in a dedicated channel. This bot receives new commits via a GitHub webhook, enabling a trunc-based development cycle in MaMNT. All the hip, cool companies run trunc-based development, now including MaMNT!

MaMNT also avoids Teams like the plague, so Discord was immediately qualified as a collaboration solution simply by not being Teams.

Claimed badges:

Setting up Synapse Link to Dynamics 365

Middle-Age Mutable Ninja Tuples know there will be a lot of requests for help once the solution is released to the public. They plan on using Synapse to analyze all the data from the system. To get started they set up Synapse Link to Dynamics 365.

With the deprecation of Export Service, Synapse Link seems to be the go-to replacement for a simple, yet powerful tool to extract data from Dynamics 365.

Prerequisites to setup Synapse to Dynamics link:

  1. Azure subscription.
  2. Resource group
    • Synapse workspace
    • Storage account (Data lake gen. 2)

Setting up Dynamics link to Synapse

  1. Make sure you have completed the prerequisites (above)
  2. Go to https://make.powerapps.com/
  3. Navigate to your environment

Select the entities/tables you want to synchronize:

Click save, and your data will begin to show up in Synapse!

You can now run Queries against Synapse on Dynamics 365 Data:

Optional if you want to use Azure Data Studio:

Install Azure Data Studio to work with the data:

With data in Synapse, we can now start crossing data from several sources and make reports.

NOTE: One challenge we came across with Synapse is that all OPTIONSETS are only available as INT values. There is no way to export the entity to Synapse with both the Optionset int value and language-dependent label. This may end up being fixed using a “dirty hack,” alternatively MaMNT will find a prettier way to solve it going forward.

Badges claimed:

Middle-age Mutable Ninja Tuples reveal more architecture details

MaMNT have released an updated sketch of the solution architecture to the public. These drawings build on the details posted in https://acdc.blog/sopra2022/middle-age-mutable-ninja-tuples-to-save-new-york-city/ and provide detailed insight into the technical tools that will be used during the deployment process and in the finished product.

Stack

Deployment

Mobile APP to Dynamics

Data to Synapse

Tools we plan to use:

Middle-Age Mutable Ninja Tuples to save New York City

Middle-Age Mutable Ninja Tuples, a startup company out of Oslo, vows to make New York City a safer place for residents and visitors. Crime rate in the city is soaring, and while the Teenage Mutant Ninja Turtles are well-armed and capable, there simply are not enough of them.

Enter Middle-Age Mutable Ninja Tuples, a group of young-at-heart developers from Norway. They aim to assist the turtles as well as would-be vigilantes through a crime reporting and dispatch system. The solution, based on Dynamics 365 Field Service, will allow residents and visitors in The Big Apple to report crimes in progress. Incoming reports are fed into Field Service for analysis and turtle dispatch, while turtles in the field receive coordinates and details on their mobile devices in real time. Moving forward, the app will also support aspiring Ninjas, allowing them to respond to events around the city in a joint effort to protect its citizens.

The technical aspects of the solution are generally confidential, but Aleksander Lunøe Waage, super-senior lead developer of MaMNT, has let slip that .NET 6, .NET MAUI, gRPC, Azure and GitHub Actions will be central components in the development process and the final product.

The development of the solution will happen in multiple stages, where working functionality is released to the public at short intervals so that citizens will be able to start calling for and receiving assistance after a single day of development. Moving forward, MaMNT will add several new functions to the app that aim to not only respond to events, but also help citizens avoid trouble when moving around the city.

The solution will provide the following features, this list is subject to frequent change.

  • Dynamics 365 Customer Engagement with the Field Service add-on for HQ operation and dispatch
  • Field Service mobile-app for TMNT in the field
  • Custom app using .NET MAUI that allows reporting of crime, emergencies and other incidents
  • Integration between the custom app and Dynamics 365, using gRPC
  • Real-time map with overlays to show turtles and event heatmaps.