Overview: There are a lot of resources for graphics, infrequently I found this useful:
Sunday, 5 February 2023
Wednesday, 1 February 2023
SaaS Product surrounding services
Onboarding - Ability to allow customers to sign up to trials, sign-up as a customer, payments and billing.
Sales Channels - Ability to bring on new customers from various channels like other websites, digital adverts, telephone,... Can be from very simple to supper complicated.
Service Page - All clients to see the current status of your SaaS products e.g.
https://portal.office.com/servicestatus
https://status.quickbooks.intuit.com
A lot of incident management software offers white labelled status page
SaaS solutions include:
Sunday, 15 January 2023
Postman to verify OpenAPI's are running
Problem: Our teams rely on a 3rd party API for a new project being delivered, the API's are in a state of change and are constantly up and down making life tough for the teams replying on the API.
Hypothesis: I need a quick way to check the API's to see if they are all working in dev, and test. I have two postman collections for the REST API's. If i combine them and check the key API's using postman I can save myself and other time as I'll know the current state of the API's.
Solution: Create a site collection that does the API verification, you can make it more complex with data and variables.
Problem: I can open Postman and run the test which takes a few minutes. We need to do this quicker.
Hypothesis: I'd like to be able to run the tests quickly on demand. Use postman CLI and Powershell to run the collection and display the result.
Solution:
1) Add the Postman CLI to my machine:
PS> powershell.exe -NoProfile -InputFormat None -ExecutionPolicy AllSigned -Command "[System.Net.ServicePointManager]::SecurityProtocol = 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://dl-cli.pstmn.io/install/win64.ps1'))"
2) In postman generate an API Key for the Collection > Run Collection > Automate runs via CLI > Generate the API Key > Copy the generated code
3) Run the code in PS to verify it works correctly.
4) Copy the PS code into a newly Created ps1 file on your local machine, I added a read line so I can see the result.
5) Run the API.ps1 file and verify the result
6) Setup a desktop short-cut to run and see the result. Right click the API.ps1 file and create a shortcut on your desktop. Right click and amend the target and amend the target value:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -File C:\Users\PaulBeck\Downloads\Projects\PoC\Postman\API.ps1
7) Save and run the shortcut to verify.
Problem: Monitor and alert DTAP API's are working and performance
Resolution: I want to monitor that my endpoints specified in my Postman collection in Dev, UAT et al. are working, can be more than 1 endpoint using Postman Monitor.
Next steps: Add to automated DevOps processes, using Newman.
Saturday, 14 January 2023
APIM Logging
Overview: Azures API Management is a big service, it is worth understanding the logging capability so you can effectively analyse traffic.
Thoughts:
- Multiple App Insights can be setup with default logs going to a specific App Insights.
- Each API can be overridden to log to any of the API's added to API.
- The old "Classic" App Insights, stored data internally, whereas the new "workspace-based" app insights", I think of it it as "V2 App Insights connected to a Log Analytics", the new data is stored in the workspace.
- If you upgrade App Insights, the results blend from two storage locations, the old data stored internally with App Insights and the new data stored within Log Analytics - if you query Log analytics, you only see the new log analytics data.
- Security for App Insights should be done at the Resource Group (RG) level, ther are AppInsight roles for use at RG level, if the workspace is on a different resource group to the app insights connected instance, ensure you sort out the permssions in both RGs.
- Open Telemetary project is making strides forward, and for API's it will be great.
Problem: I recently migrated a customer Dev, Test, Appearance, Pre-prod and Production (Not yet) to use the AppInsights instance running on Log Analytics (sometimes refereed to as V2). Logging wasn't work correctly.
Initial Hypothesis: I have complicated resource groups differing crossing DTAP boundaries. By default, APIM has a logging catch all setup per APIM instance and then specific API's settings are changed to log to specific App Insights.
Steps:
My AppInsights instance was to rename the old classic type AppInsights e.g. "appinsights-dev" becames "appinsights-dev-delete".
Create a new AppInsights instance using the V2 Log Analytics option and name it the original name "". The client opted for the name to be the same. It would be simpler to give it a name like "appinsights-dev02". The clients also wanted to use a shared Log Analytics instance per env e.g. "loganalytics-dev-shared".
Monday, 2 January 2023
Power Platform Competitors
Mendix Series
1. Overview of Mendix (this post)
2. Mendix - Part 2 - Diving deeper
3. Extensibility for Mendix Studio
4. Building a Mendix Widget for the Mendix marketplace (Convert text to Audio using Azure AI)
Overview: I like Power Platform, but other options exist. Most competitors' products cover a piece of what the Power Platform covers.
Originally Generated with Thanks to Gareth R. |
- Mendix and PowerApps are compared across various criteria. Mendix is suitable for complex, enterprise-grade applications with extensive customisation options but is generally more costly.
- PowerApps is ideal for rapid app development, integrates seamlessly with Microsoft services, and is more cost-effective for smaller projects. Larger projects require premium licenses per user, so PowerApps can become extremely expensive. Once you build many apps and your user base has premium licencing, PowerApps becomes extremely economically viable.
- Mendix scores higher in integration capabilities, scalability, performance, innovation, and accessibility, while PowerApps scores higher in ease of use, development speed, customization, and support and community.
- Many factors affect which low-code tool to use, including what the developers are trained in, how many apps you build and support over the next 3-5 years, and what licences and technology stacks your business currently has. Getting Canvas app developers is far easier and cheaper than getting Mendix developers and experts.
- A common scenario for businesses that use Mendix is having Office 365 E5 plans; then, it is about picking the right technology for the right project.
- Mendix excels in Factory and manufacturing applications.
Mendix Studio Pro version 10.x |
Mendix: I have used Mendix a fair amount and like the product. Mendix is straightforward, logical and easy to learn.
Cons:
- The publishing is very slow.
- For the free version, you have to use the Mendix subdomain. The basic plan is $50/month for my small demo. The cost of a Mendix licence and hosting is high for a one-off project; therefore, it is more suitable for building medium-sized projects.
- Each app has a separate database, which needs to be managed or, in the cloud-hosted scenario, does not allow direct access except via backups or REST OData API's. You can build multiple front ends, but this is more of a workaround than a good idea.
- For decent ALM, follow Mendix guidance as it is tightly coupled to the IDE/dev process.
- Building many apps/gap-filling apps, as well as large complex apps, can overwhelm Mendix.
Outsystems is the other recognised leader in the Low-code space. Its focus, to me, is on building large, complex solutions faster using low code.
Outsystems focuses on Low code for large enterprise systems. It is big on flows like Mendix to build logic, but unlike Mendix, which only allows custom Java code in widgets, Outsystems allows custom code in multiple languages to be integrated.
Outsystems can use either SQL Server or Oracle for its main data store. Similar to Mendix, Outsystems can expose REST APIs via automatic generation. Both products are good at consuming APIs.
Both systems allow for MFA IDP SSO authentication. Data is encrypted at rest and in transit by default. Both have many compliance standards, such as ISO and GDPR.
I like the way Outsystems can use AAD Security Groups; Mendix can be awesome, but it's not my favourite.
I'd choose Outsystems if I were building a large, complex system using low code over Mendix, assuming no in-house skills in either.
Airtable: Has lots of templates and easily connects to various data sources. Easy to extend or build apps on the platform. Provides storage and low-code apps. It's like having Dataverse and Power Apps. There are pre-built templates to get the team off to a start.
Nintex: Bought K2 and have a long history in workflows (workflows for SharePoint and O365), screen/form generation and form building. If your company uses Nintex, it's worthwhile, but I wouldn't use it for new projects or if the team does not have significant experience.
UiPath is an RPA tool that is strong for automation. UiPath is ahead of Power Automate Desktop (PAD) from a desktop automation and recording perspective. Both UiPath and Power Automate allow for attended and unattended runs. PAD is part of Power Automation Premium or Power Automate Process licences. Automation Anywhere and Blue Prism are other prominent players in the RPA space.
Postman Workflows: It's a dark horse, but people love Postman, and this may become an interesting option for Rapid development.
Amazon: AWS has various services that allow for Low-code solutions. "Amazon Honeycode" is model-driven, and Canvas apps can call code running as a service, i.e., Lambda's, which is the same service as Azure Functions on AWS. AWS Honeycode has predefined templates as starting points, which is more like Salesforce's low-code approach. This allows the developer to break out and write complex logic or persist the database in S3 storage. "Amazon QuickSight" works like Power BI to report on solution data.
Salesforce Lightening: Allows for the building of custom apps and the utilisation of Salesforce CRM and its data.
Retool: Good set of connectors for APIs.
Appian: This drag-and-drop UI is for rapid development. It has RPA built in. I hear it's not super easy for non-tech staff, and customisation can be difficult. It is aimed at enterprises, so cost and performance need to be watched. There is no native database; probably only if a business is already into Appian would I stick with it.
Further out competitors:
Windsuft.io
Mendix Series
1. Overview of Mendix (this post)
2. Mendix - Part 2 - Diving deeper
3. Extensibility for Mendix Studio
4. Building a Mendix Widget for the Mendix marketplace (Convert text to Audio using Azure AI)
Friday, 30 December 2022
Testing Power Apps using Microsoft Playwright with C#
Overview: I am using a C# Console app to run my power Apps to verify that it is working correctly.
Approach: I'm not using NodeJs but I'll use C# and add it into my devOps pipelines. I assume you have VS Code installed (you need the C# extensions, I have kept my notes at the bottom of the post). I'm using .NET 6 core SDK and the Microsoft.Playwright package. I'm not using any of the .NET testing frameworks to keep it simple.
Tips: Playwright by default use headless browser testing, I want the test to use my local JWT that I have stored against my Chrome browser. If I tell Playwright to use show the browser i.e., headless=false, it logs me in using my cached credentials. You should parameterise the login and store the username/pswd somewhere secure like a key vault.
Code Example:
Replace the C# code in the console as I have done above, and hit F5 (Run>Debug). The test logs me into the Canvas app and returns the Title of the page.
Note: I like the Canvas app testing feature but this is better as I can easily add testing to my CI/CD pipelines, tooling and recording is better and there are more ways I can use the Playwright approach.
Notes for installing Playwright on VSCode to use C#
1. Install VS Code and add the following two extensions
Tuesday, 6 December 2022
Using the OpenAI PowerFx language helper leading into building a Tax chatbot using Power Apps (No model training)
I had some time today, and I've been hearing a lot about OpenAI/GPT-3, so I thought I'd have a look around and wow it's good. There are so many uses and it's just easy to use.
For instance, Power Apps uses PowerFx which is a simple language that Microsoft had added the "Ideas" are to that helps you build PowerFx code. Honestly I found it extremely irritating when it was released recently but after reading more on Open AI I to take a closer look and it definitely is a great idea.
Thoughts: I don't memories code so I feel this is a great tool for citizen and professional developers. I think it will get a lot of attention and improve over time and become a key part of PowerFX and app development.
More Info:
https://learn.microsoft.com/en-us/power-apps/maker/canvas-apps/power-apps-ideas
OpenAI - Took less than an hour to setup the demo
The Power Platform has a Premium Connector to use the OpenAI API's. Robin Rosengrun has a demo and built and published a connector.
I spent some time playing around with the OpenAI GPT-3 API using the "davinci-002" engine in a Power App connector.First search data result is correct |