GithubHelp home page GithubHelp logo

roshangautam / shazam Goto Github PK

View Code? Open in Web Editor NEW
5.0 2.0 0.0 895 KB

Boilerplate to get started with power apps development

License: MIT License

TypeScript 19.55% JavaScript 6.83% C# 63.84% HTML 9.78%
power-platform common-data-service dynamics-365 dynamics-crm powerapps powerapps-component-framework powerapps-solutions powerapps-components

shazam's Introduction

Build Status

Shazam - Kickstart Your Power Apps

Shazam is an MSBuild solution to help jumpstart power apps development Microsoft Power Apps including both Model Driven and Canvas Applications. The idea is to provide a one stop shop when it comes to building all things power platform.

Features

  • A Sample Power Platform Solution project which builds both managed and unmanaged solutions
  • Couple of Sample Power Control Framework Components, which are auto wired to the solution
  • A Sample Web Resources project using typescript which is also auto wired to the solution using packageMap file
  • A Sample Plugins project which is also wired to the solution using packageMap file
  • A Sample .net core 3.1 Azure Function
  • A Sample CRM Package to install the Sample solution with pre and post deployment steps
  • A Sample github action to publish crm pacakge, solutions and azure functions

Getting Started

Prerequisites

Fire up a powershell terminal and clone this repo

git clone [email protected]:roshangautam/shazam.git

Navigate to the project folder

cd shazam

Restore dependencies for web resources, controls and crm package

cd src/Client/WebResources
npm ci

Restore dependencies for controls

cd src/Client/Controls/SampleDataSet
npm ci
cd src/Client/Controls/SampleField
npm ci

Restore dependencies for crm package. Execute following from the root folder

nuget restore .\src\Solutions\Package\packages.config -PackagesDirectory packages

Build the solution

dotnet build

Optionally, if you added msbuild to environment path variable, you can also execute the following to build the solution

msbuild /t:build /restore

All build artifacts can be found inside the bin folder for each project. For e.g. Sample solution will contain both managed and unmanaged solution with all components injected (plugins, web resources and controls) and Package would contain a package deployer

IDE Disclaimer

  • Visual studio currently doesn't support .pcfproj and .cdsproj projects, although you can open the solution fine and work on rest of the projects you probably wouldn't be able to build the solution in VS. I would suggest using a powershell core terminal to compile the solution until Visual studio starts supporting these project types.

  • Jetbrains Rider supports unknown *.*proj files and loads, cleans & builds both .pcfproj and .cdsproj projects. I am currently using this as my primary IDE

  • You can also use Visual Studio Code as your code editor with additional extensions installed

Considerations

  • Uses MSBuild as the primary build engine for all projects. You can build the solution using one single command dotnet build
  • Uses PowerApps MSBuild targets published as part of nuget packages
  • Compatible with Power Apps CLI tools to for PCF controls and cds solutions
  • The project is setup as a github template, meaning you can start a new project using this template as a baseline. Eventually the plan is to convert this to a dotnet template.

Roadmap

  • Publish build artifacts
  • Add contribution guidelines, license, copyright etc to this repo
  • Add ILMerge to plugins project
  • Add Stylecop
  • Add Sample Console Apps
  • Add Sample Test Projects
  • Add Sample AzureDevops CI/CD pipelines using PowerApps AzureDevOps Extension
  • Add Wiki
  • Build and add CRM dotnet tool to perform common solution actions like import/export solutions/configuration data, import packages, code generators
  • Convert the project to an interactive dotnet template such that a user can provide values for several variables while spinning up a new solution, for e.g. solution name, publisher prefix, publisher name. Also the ability to choose which projects you want to create as part of the solution, for e.g. controls, webresources, plugins, azure functions etc.
  • Add frameworks for both server and client to provide a documented and structured way to add business logic in a test driven development fashion.

shazam's People

Contributors

roshangautam avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.