Friday, May 13, 2016

Data Science essentials in Azure ML

Hi All

I have the opportunity today to speak at RevolutionConf at Virginia Beach.

RevolutionConf is a one-day, platform and language agnostic, software development conference being held on May 13, 2016 in Virginia Beach, VA.

I had so much fun with chatting and speaking with speakers and attendees. The schedule has variety of topics, technologies and platforms talks. I am impressed and loved to be here with the crowd.

I'm glad to be a speaker at the first time RevolutionConf event and looking forward to the upcoming event next year.

Special thanks for organizers, volunteers and attendees to have such an amazing event.

Here is my presentation and talk details:

Topic: Data Science Essentials in AzureML
Description:
In this session i am covering data science principals such as: Regression, Clustering, Classification, Recommendation and how to build programmable components in Azure Machine Learning experiments using data science programming languages. The session shows and illustrate how to implement these concepts using Azure ML studio.



Data science essentials in azure ml from Mostafa Elzoghbi

References:
** Free e-book “Azure Machine Learning”
https://mva.microsoft.com/ebooks#9780735698178

** Azure Machine Learning documentation
https://azure.microsoft.com/en-us/documentation/services/machine-learning/

** Data Science and Machine Learning Essentials
www.edx.org


Thanks all and hope this helps.

Friday, May 06, 2016

Build Interactive Analytics using Power BI

Hi All,

I was happy to speak at SyntaxCon conference at Charleston, SC. I had great conversations with speakers, organizers and attendees about Tech scene in Charleston. It was my pleasure giving my talk about Power BI and interactive analytics.

** Session Title: Build Interactive Analytics using Power BI

** Session Details:
The talk will cover how to build interactive analytics, dashboards and reports in PowerBI. Using multiple data sources, synchronization schedule and sharing capabilities in PowerBI. The PowerBI web and client tool provides sophisticated tools for non-technical users to build interactive dashboards.
The session will be demo driven and will cover different use cases that use multiple data formats and sources.
-- PowerBI client tool & web capabilities
-- Interactive Dashboards and Reporting.

-- Platform capabilities such as sharing, scheduling and more.


** Presentation:



Thanks for who attended my session and asked cool questions.

Enjoy!

Conference Link: https://2016.syntaxcon.com/speakers/spotlight-mostafa-elzoghbi/

Wednesday, April 06, 2016

Power BI embedded step by step

Hi All,

In this blog post i am providing a walk through on how to use Power BI Embedded feature in an asp.net MVC application. Microsoft announced this feature in Build 2016 few days ago.
As of now, Power BI embedded feature is still in preview.

This blog post is describing how to build this app from scratch in a step by step. The source code is in GitHub as well.

Power BI Embedded allows developers to integrate Power BI capabilities in their web or mobile application with out the need to login! so customers can view your power bi reports in custom applications without the need to login or provide o365 credentials to view these reports.


To be able to use Power BI embedded you need the following:
1) A power bi report that you have created & saved in (pbix) file format.
2) Azure subscription because we need to provision Power BI workspace collection that will host our reports.
3) An application to integrate these reports to,
    a) We will create ASP.NET MVC application to visualize a reports (Step #3)
    b) We will create ASP.NET Web Forms application to visualize a report (Step #4)

Screen shot below shows an asp.net MVC application that uses Power BI embedded feature (NO LOGIN IS NEEDED!!!)



How to implement this application:

1) Provision Power BI Workspace Collection:
a) Navigate to Azure Portal, Under Data and + Analytics

Once you select Power BI Embedded, enter the following details:

  • Workspace Collection Name: Demo1
  • Subscription: Select any subscription you have.
  • Resource group: Select any RG or create a new one.
  • Location: Select any location for PBI workspace collection.
  • Click on create button

Once the Power BI Embedded workspace collection is created. We will have an empty collection.

This video shows how to implement step #1 & it covers the basics of Power BI Embedded (Optional)


2) Import pbix report file into Workspace Collection:
Microsoft has created a console application that you need to run to import pbix report file into the create workspace collection in Azure.

You can download the console app utility from GitHub here.

Open the solution in VS 2015 and set "Provision Sample" project as a startup project.
Follow these instructions to import pbix file into Azure Power BI Workspace collection.


First, we will enter "5" so we create a workspace in an existing workspace collection we have just created in step #1.

Enter Workspace Collection Name: Demo1 (Same name as we created in step #1)
Access Key: From Azure Portal, Copy Access Key (Key1) for the created Workspace collection.
Copy the generated Workspace Id, since we will use it in the next step.


Second, we will enter "6" to import pbix into the workspace we just created in the previous step.

Enter workspace collection name: Demo1
Workspace Id: copy what we have created in the previous step, also, you can get workspace if you refresh azure portal.
File Path: full file path for pbix file.

Now, we have imported our report into Power BI workspace collection that we created in Azure.

I have created a video for step #2 (Optional to watch)



3) Create ASP.NET MVC Application to use PowerBI Embedded reports:
I have checked in the code for this sample, here is what you need to know about this application.
Open Home Controller, Check Index action:

  List<ReportViewModel> reportsList = new List<ReportViewModel>();
            var devToken = PowerBIToken.CreateDevToken(this.workspaceCollection, this.workspaceId);
            using (var client = this.CreatePowerBIClient(devToken))
            {
                var reportsResponse = client.Reports.GetReports(this.workspaceCollection, this.workspaceId);
                for (int i = 0; i < reportsResponse.Value.ToList().Count; i++)
                {
                    reportsList.Add(new ReportViewModel
                    {
                        Id = reportsResponse.Value[i].Id,
                        Name = reportsResponse.Value[i].Id,
                        EmbedUrl = reportsResponse.Value[i].EmbedUrl,
                        WebUrl = reportsResponse.Value[i].WebUrl,
                        Report = reportsResponse.Value[i]
                    }
                    );
                }
            }

Above code segment connect to power bi sdk and get all reports we have in the specified workspace id. Once we have this reports list, we can embed  any of them in our pages.

 var reportId = reportsList[0].Id;
            using (var client = this.CreatePowerBIClient(devToken))
            {
                var embedToken = PowerBIToken.CreateReportEmbedToken(this.workspaceCollection, this.workspaceId, reportId);
                var viewModel = new ReportViewModel
                {
                    Report = reportsList[0].Report,
                    AccessToken = embedToken.Generate(this.accessKey)
                };
                return View(viewModel);
            }

Above code segment selects the first report and return the full report object (Power BI Report) and access token to the view (index.cshtml)

In Index.cshtml, Microsoft created an extension to HTML helper for PowerBI reports. PowerBIReportFor that renders PowerBI reports ;-) Amazing!!

<div class="side-body padding-top">
    @Html.PowerBIReportFor(m => m.Report, new { style = "height:85vh", powerbi_access_token = Model.AccessToken })
</div>
One Pro Tip: you need to make sure to include powerbi.js in any page or the masterpage (aka _layout.cshtml) to be able to show any power bi report in your page. This JS file has been added when i added powerbi nuget packages to my project.


Open the web.config and change these keys as you have in your Azure provision keys before running the application:

   <add key="powerbi:AccessKey" value="" />
   <add key="powerbi:WorkspaceCollection" value="" />
    <add key="powerbi:WorkspaceId" value="" />

Run the application :-)

I have created a video for step #3 that covers App Tokens and explains how to build the demo app (Optional)


4) Create ASP.NET Web Forms Application to use PowerBI Embedded reports:
I have checked in the code for this sample, here is what you need to know about this application.

Open the web.config and change these keys as you have in your Azure provision keys before running the application:

   <add key="powerbi:AccessKey" value="" />
   <add key="powerbi:WorkspaceCollection" value="" />
    <add key="powerbi:WorkspaceId" value="" />
In Default.aspx.cs, check out the code to connect to PBI REST API to get DevTok and then AccessToken for the displayed report.

 if (!Page.IsPostBack)
            {    

                List<ReportViewModel> reportsList = new List<ReportViewModel>();
                var devToken = PowerBIToken.CreateDevToken(workspaceCollection, workspaceId);
                using (var client = this.CreatePowerBIClient(devToken))
                {
                    var reportsResponse = client.Reports.GetReports(workspaceCollection, workspaceId);

                    for (int i = 0; i < reportsResponse.Value.ToList().Count; i++)
                    {
                        reportsList.Add(new ReportViewModel
                        {
                            Id = reportsResponse.Value[i].Id,
                            Name = reportsResponse.Value[i].Id,
                            EmbedUrl = reportsResponse.Value[i].EmbedUrl,
                            WebUrl = reportsResponse.Value[i].WebUrl,
                            Report = reportsResponse.Value[i]
                        }
                        );
                    }
                }
             
                var reportId = reportsList[0].Id;
                using (var client = this.CreatePowerBIClient(devToken))
                {
                    var embedToken = PowerBIToken.CreateReportEmbedToken(workspaceCollection, workspaceId, reportId);

                    var viewModel = new ReportViewModel
                    {
                        Report = reportsList[0].Report,
                        AccessToken = embedToken.Generate(accessKey)
                    };

                    accessTokenText.Value = viewModel.AccessToken;
                    embedUrlText.Value = viewModel.Report.EmbedUrl;
                }

In Default.aspx, check out the iframe and JS function to load PBI report:


<iframe ID="iFrameEmbedReport" src="" height="768px" width="1024px" frameborder="1" seamless></iframe>

 
    <!-- Js function to assign iframe embedUrl and access token -->
     <script type="text/javascript">

          window.onload = function () {

              //debugger;
              // find the iFrame on the page and handle the loaded event.
              var iframe = document.getElementById('iFrameEmbedReport');
              iframe.src = document.getElementById('MainContent_embedUrlText').value;  //embedReportUrl;
              iframe.onload = postActionLoadReport;
              // post the access token to the iFrame to load the tile
              function postActionLoadReport() {
                  // get the app token.
                  accessToken = document.getElementById('MainContent_accessTokenText').value;//{generate app token};
                  // construct the push message structure
                  var m = { action: "loadReport", accessToken: accessToken };
                  message = JSON.stringify(m);
                  // push the message.
                  iframe = document.getElementById('iFrameEmbedReport');
                  iframe.contentWindow.postMessage(message, "*");
              }
          };

    </script>

Here is a video for step 4 on how to use Power BI embedded in asp.net web forms:




References:
* Source Code GitHub Repos:
ASP.NET MVC: https://github.com/melzoghbi/PowerBIEmbeddedSimplified
ASP.NET Web Forms: https://github.com/melzoghbi/PowerBIEmbeddedWebForms

* Power BI Embedded Resources:
https://azure.microsoft.com/en-us/documentation/articles/power-bi-embedded-get-started/

Enjoy!

Monday, April 04, 2016

Integrate a Power BI report into an app

Hi All,

This blog post is a walk through article on how to embed a PowerBI report in an application. This blog post with source code is available in GitHub.

I can say this feature is one of the most requested features from clients i worked with directly.
Below is a screen shot of the running application i have created that contains an integrated PowerBI report i have created in Office 365 tenant using PowerBI.


How to run the application:

1) Register your application in Azure AD, here are the configurations we need to update ASP.NET MVC app:

  • Client Id
  • Secret Id
  • Return Url: If you want to change it from the original app code.
Below screen shots show Azure AD (AAD) app registration settings in Azure portal:





2) Login to your PowerBI (app.powerbi.com) and get the Report Id you want to embed in the app:

Select a report that you would like to embed, grab a report Id from the browser url.
Below screen show shows a selected report "RPT1" and highlighted ReportId we will embed in our app.




3) Open ASP.NET MVC Project settings in VS 2015 and update Client Id and Secret Id from Azure Portal after registering your app.



4) Open index.cshtml and update iframe src attribute by adding the Report Id we captured in step #2.

 <iframe ID="iFrameEmbedReport" src="https://app.powerbi.com/reportEmbed?reportId=11156ed2-ede7-4b60-ac26-10cda004bdee" height="768px" width="1024px" frameborder="1" seamless></iframe>
 5) Run the app, Click on o365 login, Sign In and then PowerBI report will be showing after your login to the app.


Demo source code url: https://github.com/melzoghbi/PowerBIEmbeddedApp


References:
1) Integrate a Power BI tile or report into an app

2) Power BI Embedded home page:
https://azure.microsoft.com/en-us/services/power-bi-embedded/

Enjoy!

Wednesday, March 16, 2016

TypeScript Jump Start

Hi All,

I had the pleasure to present "Type Script jump start" to one of our local communities. In this session i covered why do we need TypeScript? and how to integrate it in existing projects using different text editors such as: Sublime and VisualStudio Code.

The presentation covered the most needed benefits/features of TypeScript in creating: classes, interfaces, inheritance, generics, modules and compile time checking.

If you have not had a chance to use TypeScript in Sublime, i have posted a blog post on how to get this setup on your machine:
http://www.mostafaelzoghbi.com/2016/03/how-to-use-typescript-in-sublime-text.html 

Channel 9 video:



Here is my presentation for this talk:



Enjoy.


Monday, March 14, 2016

How to use TypeScript in Sublime Text Editor

Hi All,


If you are trying to use TypeScript features in Sublime Text 3. This blog post describes step by step on how to start coding and utilize TypeScript features including intelliSense, compile time checking, validation...etc in Sublime.

Follow this walkthrough:

1) You need to have Package Control in Sublime, if you do not have it follow below steps. otherwise, continue reading step 2.

  • Open sublime text console by clicking on the top menu: View --> Show Console

  • Upon opening the console, you will see the console shows at the bottom of sublime

  • Copy this text in the console

import urllib.request,os,hashlib; h = '2915d1851351e5ee549c20394736b442' + '8bc59f460fa1548d1514676163dafc88'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by)
  • Close and re-open sublime text 3
2) We need to install TypeScript from Package Control by searching for this package. To open package control, We need to open Command Palette from tools menu.



3) Then type Install Package in the popup window.



4) Package Control will popup and then search for TypeScript plugin by writing: TypeScript and then select the package.

Note: you will notice i do not have typescript screenshot since it is already installed on sublime

5) Now, try to add any TypeScript file (with .ts extension) and you will be able to use TS features while writing code in Sublime Text!



Enjoy!


Wednesday, March 09, 2016

Understand Hadoop ecosystem and how to get started in HDInsight clusters using Azure


Hi All,

I have posted a video to demonstrate how to build your skills in Hadoop ecosystem by understanding the key products in building big data solutions using HDFS, HBase, Storm and Spark.
The video is a jump start to understand key components of Hadoop stack on building big data solutions, storing NoSQL data, processing and ingesting data using computation platforms.


Video Details:
The video covers how to get started to build big data solutions in Azure. Azure provides different Hadoop clusters for Hadoop ecosystem. The video covers the basic understanding of HDInsight clusters including: Apache Hadoop, HBase, Storm and Spark. The video covers how to integrate with HDInsight in .NET using different Hadoop integration frameworks and libraries. The video is a jump start for engineers and DBAs with RDBMS experience who are looking for a jump start working and developing Hadoop solutions. The video is a demo driven and will cover the basics of Hadoop open source products.







Hope you enjoy it!

Tuesday, March 08, 2016

Azure App Service in depth

Hi All,

I have published a new video on how to build web, mobile and api applications using Azure App service.


Video Details:

In this video i am describing in depth out of the box features for Azure App Service. Azure App service allows developers to build web, mobile and api applications using your favorite programming language. 
The video shows how to provision azure app service without the need to have azure subscription to get a sense of what can you build with azure app service. Also, we cover how to use azure portal features for app services in terms of: scalability,security, automated backups, deployment slots, VNet integration vs Hybrid networking and much more.
Hope you enjoy it!

Build micro-services in Azure Cloud Services

Hi All,

I have published a new video to cover how to build scalable micro-services in Azure using cloud services. The video covers who to use web and worker roles in cloud services. In addition when to use worker roles vs. web jobs for backend jobs.


Video Details: "Build Intelligent Cloud Services using Azure"

The session covers how to build web, mobile, Api solutions using Microsoft Azure platform. The session covers in detail how to build intelligent solutions using Azure Cloud Services. The session is a demo driven and demonstrate how to design and provision complete end-to-end solutions using Microsoft intelligent cloud.
Session Objectives & Takeaways
  • Benefits of creating micro services in the cloud using Azure cloud services
  • Showing End-To-End Use case for building cloud service with web & worker roles with service bus integration
GitHub Repo:


Enjoy!

Saturday, February 27, 2016

Azure Scheduler fails to trigger scheduled WebJob published with WebApp

Hi All,

I am writing this blog post to show how to fix Azure scheduler fails to kicks off webjobs in Azure webapp while when you try to run webjobs through the portal it works.

I have a web app that has couple of webjobs in my solution. While adding these webjobs to my web app, I configured these two webjobs to run on different schedules. After i deploy the web app to Azure, I found out that the Azure Scheduler fails to run the second web job but not the first webjob!!

After carefully checking all the configs for both webjobs, I found this was the error that is being thrown by the Azure Scheduler for my second webjob:

Unauthorized: Access is denied due to invalid credentials.

Detailed error message:

Http Action - Response from host 'MYWEBSITEwebjobs.scm.azurewebsites.net': 'Unauthorized' Response Headers: Date: Sat, 27 Feb 2016 12:02:01 GMT
Server: Microsoft-IIS/8.0
WWW-Authenticate: Basic realm="site"
 Body: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">  <html xmlns="http://www.w3.org/1999/xhtml">  <head>  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>  <title>401 - Unauthorized: Access is denied due to invalid credentials.</title>  <style type="text/css">  <!--  body{margin:0;font-size:.7em;font-family:Verdana, Arial, Helvetica, sans-serif;background:#EEEEEE;}  fieldset{padding:0 15px 10px 15px;}   h1{font-size:2.4em;margin:0;color:#FFF;}  h2{font-size:1.7em;margin:0;color:#CC0000;}   h3{font-size:1.2em;margin:10px 0 0 0;color:#000000;}   #header{width:96%;margin:0 0 0 0;padding:6px 2% 6px 2%;font-family:"trebuchet MS", Verdana, sans-serif;color:#FFF;  background-color:#555555;}  #content{margin:0 0 0 2%;position:relative;}  .content-container{background:#FFF;width:96%;margin-top:8px;padding:10px;position:relative;}  -->  </style>  </head>  <body>  <div id="header"><h1>Server Error</h1></div>  <div id="content">   <div cla


The solution is the first webjob has the authorization header while the second doesn't. This probably is an issue with VS2015 deployment with Azure SDK.


So you just need to copy these header values from the first webjob to the second one and wait until the scheduler kicks off and things will be working as expected.

Screenshot of the two header values that i have added to my second webjob in Azure Portal scheduler settings:



Enjoy!

Sunday, February 21, 2016

Build Big Data Solutions in Azure using HDInsight


Hi All,

I am posting this post to share my recent presentation on building big data solutions in Azure.



The session covers how to get started to build big data solutions in Azure. Azure provides different Hadoop clusters for Hadoop ecosystem. The session covers the basic understanding of HDInsight clusters including: Apache Hadoop, HBase, Storm and Spark. The session covers how to integrate with HDInsight in .NET using different Hadoop integration frameworks and libraries. The session is a jump start for engineers and DBAs with RDBMS experience who are looking for a jump start working and developing Hadoop solutions. The session is a demo driven and will cover the basics of Hadoop open source products.




Wednesday, February 17, 2016

Build Intelligent Solutions using Azure

Hi All,

Last night i was honored to present to one of our local user groups in DC about how to build intelligent solutions using Azure.

In this session, I was illustrating different scenarios and practical approaches on building microservices that are elastic and resilient into the cloud. I covered with a practical use case on how to build cloud services that have web and worker roles that integrates with services bus queue as an intercommunication channel between web and worker roles. Also, I covered how to add web jobs into web roles into cloud services as well.

The second part of the presentation was covering Azure App services including: web apps, mobile apps, logic apps and api apps. Then , I covered lots of intelligent features that Azure offers to build intelligent solutions from backup automation, continuous integration, traffic routing, troubleshooting features and deployment slots.


Session Description is below:

The session covers how to build web, mobile, Api solutions using Microsoft Azure platform. The session covers in detail how to build intelligent solutions using Azure App Service. Azure App Service includes web apps, logic apps and mobile apps services as PaaS solutions for engineers. The session is a demo driven and demonstrate how to design and provision complete end-to-end solutions using Microsoft intelligent cloud.


Build intelligent solutions using ms azure from Mostafa Elzoghbi

Case Manager Demo code is on GitHub: https://github.com/melzoghbi/AzureCloudServices

At the end of the event, I had some giveaways that are IoT sensor Kits and "Fundamentals of Azure" books. Most audience asked about how to get the pdf of this book, here is the download link:

Fundamentals of Azure book download link


Hope this helps.

Thursday, February 11, 2016

MySQL Data Source not appearing in Visual Studio 2015 - A complete solution

Hi All,

I was trying to upgrade my solution in VS 2015 Community Edition to use latest MySQL .NET connector with VS integration tools.

After i upgraded my provider to version 6.9.8. I was not able to see MySQL provider as a data source when i run Reverse Engineer Code First tool for EF to refresh my classes with my latest DB changes.

First, If you can't see entity framework when you right click on your project. Make sure that you have installed EF Power tools for VS 2015. Here is the link to download it since Microsoft has not officially released VS 2015 release of this tool.

**Entity Framework Power tools for Visual Studio 2015: download link

Once you install this tool, You should be able to view entity framework option with Reverse Engineer Code first option on your project.


Second thing, you have to see MySql data source so you can connect to MySql db and refresh your classes. below screen shot shows MySql data source.


To be able to to see MySQL data source as shown above, you need two components to be able to connect to MySQL db from VS 2015:

1) MySQL Connector/Net
2) MySQL for Visual Studio

You can get them both by installing MySQL installer that allow you to installer any MySQL components into your machine.



Tip: After installing these two components, you need to close and re-open your VS 2015 to get to see the new loaded MySQL data source.

Enjoy!

Friday, February 05, 2016

Mistakes that kill startups lessons learned

In one of my office hours that i hold every month, I selected this topic to cover and cover the most reasons why startups fail.

In this presentation i covered the following:

1) Startup Structure: How to have the right number of founders, Allocation time and resources, hiring.

2) Idea & Market: How to select a good idea, determine market size and value prop of your product.

3) Raising Capital: How to raise the right amount of money for your startup and how to avoid spending too much.

4) Communication & Execution: How to execute your strategy, how to build healthy relationship with your customers and partners.

My presentation:




Hope this helps.

Friday, January 22, 2016

Application Error net::ERR_CONNECTION_REFUSED in Visual Studio Emulator

Hi All,

While i ran into an issue while running my Cordova App in the Visual Studio Emulator. After logging in to my office 365 tenant, I was getting the following error:

Application Error net::ERR_CONNECTION_REFUSED in Visual Studio Emulator

Given i have all app configuration have been set properly in Azure AD and my settings file in my cordova app (app is o365 connected).



The solution is to use Ripple emulator since it is a browser based emulator  that runs under port 4400. So once you switch your emulator to Ripple, you will be able to login to office 365 and redirect back to the redirect url.

Hope this helps.


No authUri provided nor found in O365Auth.authUri

Hi All,

While building an Apache Cordova app to integrate with Office 365  API. I connected my cordova app with office 365 by using Add -> Connected Service option in Visual Studio 2015. When i run my Cordova app try to login to office 365. I am getting the following error:

 No authUri provided nor found in O365Auth.authUri

I am using Microsoft.Office365.ClientLib.JS which allow developers to integrate with office 365 services.



The error because the Setting variable is not defined in O365Auth object. So add the follow code in o365auth.js file:


var O365Auth;
(function (O365Auth) {
    var Token = (function () ....)();
    O365Auth.Token = Token;

  //  define settings
    var Settings = {
        clientId: '6de88843-3a72-484c-af8d-3f26d2c3dd52',
        authUri: 'https://login.microsoftonline.com/common/',
        redirectUri: 'http://localhost:4400/services/office365/redirectTarget.html',
        domain: 'MostafaTenant.onmicrosoft.com',
        tenantId: '3323232-13e6-232323-a52a-323234423232'
    };

    O365Auth.Settings = Settings;


Run your project and the rest of your code will pull o365 settings :-)

Hope this helps.


Wednesday, January 13, 2016

Office Add-Ins development best practices


Office Add-Ins development best practices


In this video i am covering office add-ins development best practices. The video covers how to provide clear value for Office add-ins, UX principles, market your add-in, publishing strategies, monitor and optimize add-in performance. The video is covering what you need to do from the inception phase of creating an add-in till publishing add-ins to your customers.

 

If you would like to get to know more about "The basics of office add-ins", i have posted earlier another video for that here:

Thursday, January 07, 2016

Patterns and Practices in building Office Add-Ins

Hi All,

I'd like to share my presentation on Patterns and Practices in building office add-ins.

I am sharing the best practices to have successful Add-In listing in Office store.
In this presentation i cover the importance of using Fabric UI in developing User Interface elements in Office Add-Ins, Web Extensible Framework (WEF), Napa tools, Development best practices including: Value Prop, Marketing, UX, Optimization technique and security, Identity management in Azure AD, Publishing options, Graph API integration and VS project templates.




Hope it helps and keep hacking o365!

Tuesday, January 05, 2016

Can't see Office/SharePoint project templates in Visual Studio 2015 Update 1

Hi All,

I am writing this blog post to show how to get Office Developer Tools in Visual Studio 2015 Update 1. I used to have office dev tools and i was able to create Office Add-Ins earlier, but after i installed Update 1 for VS 2015. I am not able to see Office/SharePoint project templates.

When i searched for Office Developer tools, I got this link which is the main link for office dev tools:
https://www.visualstudio.com/en-us/features/office-tools-vs.aspx

After i installed these tools, and then restarted i was not able to see the project templates for office.

I kept searching until i found the solution and the needed components to install on your machine properly.

If you have VS 2015 Update 1, somehow these tools have been removed while installing latest bits of VS 2015 updates.

If you are using Windows 10, From the Cortana search type: Microsoft Web Platform Installer.

Install: Microsoft Office Developer Tools Update 1 for Visual Studio.




Or click on this link: aka.ms/GetLatestOfficeDevTools.

Open VS 2015 and you should be able to view Office/SharePoint project templates.



Enjoy!

Monday, January 04, 2016

Mastering Azure Architecture

Hi All,

I'd like to share a great resource for Architects, Engineers, Business decision managers on how to architect solutions at scale in Microsoft Azure.

The website contains architecture blueprints for architect solutions in 2D and 3D.


The website contains diagrams to build cloud solutions fast and scenarios that have been used to build various solutions in Azure so you can use those in building your solutions.


Website url: https://msdn.microsoft.com/en-us/dn630664.aspx 

Enjoy!