Is it possible to embed power bi into desktop application? - winforms

I'm an ISV developing a desktop application and would like to consider using power bi embedded for my application, but just can't seem to find information if it is possible to use inside desktop application.
Searching on SO / Googe did not give me answer to this question.
power bi embedded homepage also did not stress out that it's restricted to web only.
P.S. If it is for "web apps only" - maybe using a WebBrowser control inside a form might be a workaround?
Does anyone has experience using power bi inside a desktop application? Or some information whether it is possible at all?
EDIT
power bi manual about integrating report into an app
•Step 1: Register a web app with Azure AD.
•Step 2: Get a Power BI report
•Step 3: Load a Power BI report into an IFrame
info from power bi developer forum
A Power BI team member states that It is possible. Anything that can host and iframe can embed a Power BI report.
Updated question
Does anyone have experience doing this actually? How about "registering"
winforms application with Azure AD which is a 1st step of integration process?

EDIT: PowerBI Workspace Collections are now retired so this method no longer works.
Finally I've managed to do that.
Here are the main steps (in case if anyone else needs to embed Power bi report into WinForms solution):
1) you need Azure subscription that has an organizational account that has assigned power bi subscription (free version is enough) - if you don't have this, you can not assign power bi service access rights
2) in azure subscription you have to create PowerBI workspace collection (here you can get access keys and workspace collection id that will be necessary to access your power bi report)
3) design your report in Power BI desktop (if it's against Azure SQL db, then you can use Direct mode even with power bi free subscription)
4) to upload your report into azure power bi workspace collection
you can use ProvisionSample project from this git hub repository
have to register this app in your AAD and add it power bi service related permissions
you have to create workspace (after that you can get it's id in Azure portal)
then upload pbix file in to workspace
if you use Azure SQL, then you have to update connection string (also possible using this solution)
in the EmpedSample project of this solution, you can see how it's working in case if it's embedded in Web solution
here is a link to power bi idea that requests easing this process (just in case if anyone's interested in this, too...)
5) now, to get this into winforms solution, you can use this WinformsSample project (it's not merged into master at the moment, don't know how to easily download it, but tested it and it works!)
interesting that this app does not require registering in azure - seems like workspace collection key + related data is sufficient...
P.S. This 5th point somehow makes me a bit nervous (i.e. storing app keys in the client side code) perhaps it would be possible to move app keys to REST API side and retrieve it using REST service call - then, I guess it would be more secure... + changing app keys (there is a re-generation tool in Azure portal - see workspace collection entry) would not involve changes to client application

Related

Salesforce integration - categorisation based on pricing plans

I am stuck as a developer trying to explore Salesforce for integrating with my CRM which is used by our clients as SaaS.
Background of what i want to achieve in the integration
The idea is that my CRM software allows many features that Salesforce does not and vice-versa. Due to this a typical client who is using my CRM (Saas) ends up using both the softwares. This ends into duplication of efforts where for eg: a customer created in my CRM has to be copied over to Salesforce manually from Salesforce UI.
The integration that i wish to provide will work like a 2 way integration where a customer created from my CRM gets created as Accounts in Salesforce and vice-versa. Same way sync of edits and deletes across the 2 system should work.
Problem that i am having
When i started exploring Salesforce integration, i found that Salesforce allows integration to be done in below ways
Apex trigger based system - I was able to achieve 2 way syncing with Salesforce and my CRM using Apex approach. But the problem is it requires me to access their web api's to send data from my CRM to Salesforce. This feature is only supported in higher pricing plans of Salesforce (Enterprise, Unlimited, Professional - you have to pay extra if you are using professional)
App based approach (eg: Slack): I am looking more towards this approach. As Slack integration works for almost all pricing plans and is supported well. What i could not conclude clearly is - how can i create an App for my CRM and get it listed on Salesforce? How does Salesforce allow an App based access from Slack to submit data into Salesforce system for lower pricing plans. Their documentation says that Api access is only available for higher pricing plans. Then how is this achieved? For eg: you can install Salesforce app into Slack and there after you can send messages to chatter service under individual accounts of Salesforce from Slack.
I am really not sure if i have given enough insight into the problem i am having. But i tried explaining as much as possible. In short i want to integrate 2 way with Salesforce and i am looking for possible solution that is supported at lower pricing plans as well. What type of integration should i go forward with?
Look into using an ETL provider that already is a salesforce technology partner (Boomi, Jitterbit, etc...).
These are already on appexchange.com, and as certified appexchange apps, can access data in salesforce Professional Edition (which does not allow open API access).

Xamarin Forms (Visual Studio 2017) Android. How much secure to store SQL Server Database credentials in App?

I have already
1. Searched on google
2. Here on stackoverflow
3. Some recommendations for me on my posts, that not to use direct connections free text statements from App to SQL Server, rather than to use mostly recommended REST API services.
Overview
I find SQL Server connection very smooth in Xamarin Forms development. My major projects are web based asp.net c# and desktop based vb.net which use same Hosted MS SQL Server 2012 Express (Virtual Private Server and not shared server) Database.
In Desktop we have option such encrypting the app.Config file where we can store the database connection secure credentials.
In Web-based we have web.config file where we say its secured way to put credentials there.
(If wrong please correct me)
Frankly I tried at initial stage REST API Services including Microsoft Azure but it looks very complex or some or other limitations for me in approach or pay strucure. (Or say may be I totally am now flexible in c# regular statements).
As I am having own Hosting Server I don't want to choose again any other.
Finally to my query
Now I store in Xamarin Forms Class folder in .cs all secure credentials.
/------------------------------------------
//Connection String
//------------------------------------------
public static string appNutri_connection_string = #"data source=<IP ADDRESS>;initial catalog=<Database_Name>;user id=<user_name>;password=<pass_word>;Connect Timeout=600"
And I use this appNutri_connection_string throughout project for connections.
Also when we compile the Package we are opted first to enter password before distribution.
Not only that before we upload it on Google Play, it rechecks Hash Key credentials respective package name, then only it publish the apk.
So please let me know how is not safe for APK to store credentials in .cs file. Secondly , most important is there any other solution to encrypt the credentials file? So that I do not need to break my so smooth trend going on all platforms.
This is a very crucial stage for me to go further as still I am in very initial stage of product live implementation. So do not want to go further with any loop holes or wrong perception. Data (Client's especially) Security and Privacy is my major Task. Cannot compromise on that anytime. So please suggest me best way to achieve this task.
(Once again may be a possible duplicate question but frankly I did not found a detailed explanation or information nor here nor on any google search)
As you are in very initial stage of your product lifetime, PLEASE CHANGE YOUR ARCHITECTURE!
Never, nerver connect directly to a sensitive database from outside - put at least a front-end layer (eg. API) between public clients and your database.

How to access the Project Server REST API using Azure AD App permissions?

I have a standalone web application (not an add-in) and I would like to access Project Server PWA oData from this web application without using the PWA username/password combination.
I can do this for SharePoint oData by registering my web app in Azure AD and configuring the application to require "Read" permissions from "Office 365 SharePoint Online"
If you are interested to do this for SharePoint data, see this article for details: https://www.itunity.com/article/integrating-angularjs-aad-office-365sharepoint-part-1-622
My problem is that I want to do the same for a Project Server, but can't see any relevant Project Online permission in Azure AD.
Has any one ever accessed Project Online using Azure AD tokens?
My 10 Minutes of Internet Research™ leads me to believe this isn't available but that it was a planned feature at one point. [see here]
Without knowing much (anything) about Project Server, this seems like a situation I've dealt with on AWS at work. We have a bunch of endpoints that are secured using IAM (AWS) credentials and we can't leave those creds lying around in our app (because that would be silly). Our solution is to generate access URLs server-side and hand them out, these typically will have a time limit and be restricted to a very specific action.
A quick search for Azure's equivalent to IAM tells me that you might be able to do something similar though I'm unsure it exists for Project Server.
That failing, you could always set up an intermediary micro-service that acts as proxy and has the username/password combo. We do stuff like this all the time with Lambda (AWS's serverless functions).

WPF Application External deployment

We are planning on building an application that will be used within our corporate network and we can also extend this application through internet facing to our contractors.
Can a WPF sandbox application (not XBAP) be deployed externally (for example on Windows Azure) while we can still be able to access it internally through the corporate network?
Or If we deploy this internally, is can we be able to give direct access to contractors outside the domain?
I am new to WPF and have looked through WPF deployment documentations but can't find anything on this. Thanks for your help in advance!
I have developed a large scale WPF business application and deployed it using ClickOnce. Although all of the users access it on the local intranet and we don't have any users external to the office, I can confirm that I have used the application whilst at home.
The only thing that you have to worry about is whether all users have permission to access:
the deployment server for installation and updates
all intranet files and folders that the application uses
all database tables, views, stored procedures, etc.
However, if you're not sure, just try it out... it only takes seconds to publish applications using ClickOnce.

What tool can I use to easily manage data within a cloud database (Azure/SimpleDB/etc)?

I need a cloud database as a back-end for a mobile app, most of them will do what I need, but I also need a management interface (ideally web-based, but could be a Windows client) that makes it easy to:
Add/edit data in the database (including cross-table forms)
Report on the database, ideally with dashboards/charts
So I'm wondering if anyone is aware of a web-based too that can be hooked up to one of the main cloud-database providers, that allows me to design forms and reports to manage the data in the database. My goal is to avoid writing all the forms and reports myself so I can focus efforts on the client mobile app.
Right now my "best" solution appears to be Microsoft Access (probably hooked up to Microsoft SQL Azure), and I cannot believe I'd have to sink that low. Save me from this depravity? Please? :)
I've been using SDBNavigator. It's a Chrome browser plugin. Works like a charm.
"SDB Navigator on the Chrome web store"
The App Engine datastore has built in datastore viewers (and editors). On the dev_appserver, this is accessible at /_ah/admin/datastore, and in production it's accessible through your app's admin console. Neither one lets you build forms and reports, though - reports are somewhat out of scope for most NoSQL databases.
If you're prepared to do some coding, you might want to consider Django, which makes constructing admin interfaces extremely straightforward.
If you're using SimpleDB, check out sdbtool. It's a Firefox plugin. Very simple app - never had a problem with it.
You can use SDB Explorer. SDB Explorer is world leading GUI to explore Amazon SimpleDB. It have many features like --
Upload My Sql data to amazon simpledb.
Supports interface for AWS IAM.
Export Domain.
Product support.
See more .. http://www.sdbexplorer.com/

Resources