Posts

Power Platform Track and Microsoft Certifications

Fundamentals PL-900 Power Platform Fundamentals Role-Based (Associate) PL-100 - Power Platform App Maker PL-200 - Power Platform Functional Consultant PL-300 - Power BI Data Analyst PL-400 - Power Platform Developer PL-500 - Power Automate RPA Developer Rose-Based (Expert) PL-600 - Power Platform Solution Architect

SharePoint 2019 - "You can't edit this page"

 When you get the following message don't panic - SharePoint 2019 - "You can't edit this page". Create a new page using the modern drop-down menu  Go to your https://sharepoint/SitePages/Forms/AllPages.aspx  Select the new page and make it the home page  Rename the original Home.aspx to Home-Old.aspx Rename the new page as Home.aspx Test

SharePoint Online Wiki Sites

This quick reference article goes over how to create a simple wiki knowledge base site on SharePoint Online. Create a brand new site It's best if you are a SharePoint Online admin. Which template to use? Communication site or team site? Use the team site without the Teams space, this requires the SharePoint Admin role Metadata Add columns in grid view Pin columns to filters pane (so you can filter on them quickly) Once you apply a filter, you can save the view as a new view (Save the view as). For example, if you want to create a new web part with most recently created articles, you can create a new view Create a front-page view, i.e. Recent Changes, and limit to about 10, make the window height flexible to as big as it gets Audience targeting It's possible to set audience targeting on quick links and left-hand side navigation Edit the web part on the page, and select Enable audience targeting on the web part itself, i.e. quick links web part Edit the quick link, and select the...

Git Guide

A few handy commands in one handy place. Updating .gitignore and enforcing it When you want to ignore additional files or folders, you have to update your . gitignore . After you make the additions or changes, you have to remove the cached files from the local repository, add them back, commit again to the local and push to the remote repositories: git rm -r --cached . git add . git commit -m "Ignore list update" To push the locally committed changes back to your remote repo: git push PowerShell script to sync with git This is a handy script I keep on my desktop (or an easy to find document folder) which I launch whenever I work with documents outside of a coding tool that need to be quickly pushed to Git. Write-Host 'Pushing changes to Git for my app!'; $dir = "C:\Users\username\source\repos\reponame\" Set-Location $dir Write-Output ''; Write-Output 'Adding locally...' git add . Write-Output ''; Write-Output "Committing locally....

Deploy from Azure DevOps to On-Premise Environment

With Azure DevOps, you can deploy web or database apps from Azure DevOps to on-premise servers. No changes to the firewall are required, the servers run the agents that will talk to Azure DevOps and perform any updates. Create a build in Azure DevOps Create deployment groups on the on-premise servers Create the release pipeline Create a build In DevOps repo, go to Builds and click on New > New build pipeline Pick the source repository and the branch Pick the ASP.NET template or a specific template to your language code Select Build solution (the .sln file) For Test filter criteria, set your criteria, i.e. TestCategory=Unit Test For the database part, create a Copy files step, and pick the source folder ${build.sourcedirectory}, Contents as **\bin\${BuildConfiguration}\** (the asterisks mean its recursive), and target folder as ${build.artifactstagingdirectory} Creating deployment groups Go to Deployment groups and create a new one When you create a deployment group, the Registratio...

Configuring DocFX

Install latest .NET, and after the installation run this command if you don't want Microsoft to collect your .NET usage data: setx DOTNET_CLI_TELEMETRY_OPTOUT 1 Follow the DocFX Quick Start , it's quite straight forward.   And here are some more tips on how to customize your DocFX experience. Git adjustments Add _site folder to .gitignore in addition to any other items your DocFX git repository should avoid having. Favicons configuration Add all the favicons to the root folder. It's advisable to generate all the favicons using a generator. Add all the favicon images to the resource list in the docfx.json. UI customizations Add customizations using your own new template (i.e. logo and its size). Add a new template folder in the root of your repo - name it repo-name-template, as an example. Add main.css to the repo-name-template\public\ subfolder. Use the main.css to specify customizations. Add the source folder for the modern template to the root of your DocFX repo and add i...

Clear Browser Network Cache

Copy and paste the URL below in your browser and then click  Clear host cache . chrome://net-internals/#dns

Add git Dev Branch

The goal of this post is to: Create a dev branch in git quickly to manage dev code before release Establish main branch as the system update branch Update to the latest: git fetch origin If you already created and pushed dev from main, just do: git checkout dev If not yet created, do this instead: git checkout -b dev origin/main git push -u origin dev Now you’re on  dev . Add your changes, commit, and push: git add . git commit -m "Start development on feature XYZ" git push Assumptions Code already exists in the main branch The main branch is already set up for releases, i.e. when code is pushed up Pull requests are done in addition to the instructions above, which start the live releases Stop tracking specific files.  For example, web.config should not be tracked.  To remove it but keep it on your local machine, do this: git rm --cached web.config git commit -m "Stop tracking web.config"

Top 20 Query Optimization Techniques

Some tips on query performance. Create an index on huge tables (>1.000.000 rows) Use EXISTS() instead of COUNT() to find an element in the table SELECT specific fields instead of using SELECT * Avoid subqueries in WHERE clause Avoid SELECT DISTINCT where possible Use WHERE clause instead of HAVING Create joins with INNER JOIN (not WHERE) Use LIMIT to sample query results Use UNION ALL instead of UNION wherever possible Use UNION where instead of WHERE ... OR ... query Run your query during off-peak hours Avoid using OR in join queries Choose GROUP BY over window functions Use derived and temporary tables Drop the index before loading bulk data Use materialized views instead of views Avoid != or <> (not equal) operator Minimize the number of subqueries Use INNER JOIN as little as possible when you can get the same output using LEFT/RIGHT JOIN Frequently try to use temporary sources to retrieve the same dataset

Installing Git on Windows

At the GNU General Public License, hit Next Select Destination Location C:\Program Files\Git Select Components Checked Associate .git* configuration files with the default text editor Associate .sh files to be run with Bash (NEW!) Scalar (Git add-on to manage large-scale repositories) Select Start Menu Folder Git Choosing the default editor used by Git Use Notepad as Git's default editor Adjusting the name of the initial branch in new repositories Override the default branch name for new repositories main Adjusting your PATH environment Git from the command line and also from 3rd-party software Choosing the SSH executable Use bundled OpenSSH Choosing HTTPS transport backend Use the native Windows Secure Channel library Configuring the line ending conversions Checkout Windows-style, commit Unix-style line endings Configuring the terminal emulator to use with Git Bash Use Windows' default console window Choose the default behavior of 'git pull' Fast-forward or merge - thi...

Microsoft Power Apps Review

Microsoft Power Apps Essential Training: The Basics Here are some notes on the basic building blocks of Power Apps.

Add Email Attachments to DevOps Work Items Using Power Automate

This article assumes you know how to implement the following steps first: When a new email arrives (V3)  - Outlook 365 action Create a work item  - DevOps action Apply to each  using Attachments list - Outlook 365 dynamic content item Send HTTP POST request to DevOps  to upload the attachment file content - DevOps action Parse JSON  - regular action Send HTTP POST request to DevOps  to associate uploaded file to the work item - DevOps action There is an issue at step  3. a  where the attachment is being uploaded. Attachments can be of various content types, and additionally (but separately) you are having to decide whether the body is Base64 or not. Here's what you do: Organization Name - your org name Method - POST Relative URI -  /_apis/wit/attachments?filename=[Attachment Name dynamic content item]&api-version=7.1 Headers - Only one header:  content-type  of value  items('Apply_to_each')?['contentType'] Body -  bina...

Retool Review Notes

Image
Retool is a web based system that allows you to create data dashboards using its web based components and a variety of data sources. Here are a few points, which are mainly on the Retool DB tool. Many UI components, many types of data source connectors Write SQL queries right in the browser-based tool Visual components Bar, chart, etc. Shows visuals based on your data Can use Plotly JSON to for visual UIs, i.e. chart design Retool Workflows Offers data transformation steps when working with data sources Retool vs Google Sheets? Push data out to somewhere Incorporating many data sources is easier in Retool rather than Google data sheets By default table shows everything that is in the query Allows to connect to a data source using a REST API Ask AI widget You can ask it anything, it's aware of all schema and can help create relationships and help in writing complex queries Transform results feature Can be used to transform the resulting data into a format or structure that is needed...

Vibecoding Tools

The add-ons: Zencoder Continue Cline Keploy  Bito Tabnine Codeium Standalone tools: Cursor Bolt.new Lovable .dev Replit .com

Adding Duo to a Custom Web App

Image
Main points to keep in mind when planning and setting up the Duo's 2FA into your web application. Set it up in the Duo admin panel, and get the three pieces of information Secret key Identification number Hostname of the Duo prompt, which includes the base URI and the path Redirect URI - what Duo will call when a 2FA request is approved Create the  post  action for your links or buttons in your web app which pass the link, document or another resource you want to access Create "an integration" app that's mainly empty except for catching the post call with the resource user is aiming to access as a parameter The  post  call will call the  DuoClient  with the information from the Duo admin panel Once the user approves the 2FA request, Duo responds by calling the redirect URI resource with the state  ID The redirect URI resource performs the following: Catches the response from Duo and confirms the response is from the same request using the state  I...