<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>article What I learnt building Power BI Custom Visuals in Custom Visuals Community Blog</title>
    <link>https://community.fabric.microsoft.com/t5/Custom-Visuals-Community-Blog/What-I-learnt-building-Power-BI-Custom-Visuals/ba-p/150233</link>
    <description>&lt;P&gt;&lt;SPAN&gt;&lt;FONT color="#000000"&gt;D&lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;ata visualization plays a pivotal role today more than ever before in providing actionable insights. With large volumes of data at our disposal and more continuously generated, it is becoming ever more challenging to make sense of data without visualizations. At times, I wonder whether it’s time to debunk the idiom “a picture is worth a thousand words” as “thousand” is no longer representative in today’s context.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;Microsoft Power BI has taken some innovative steps to truly democratize data visualization. One of which is to provide a platform for 3&lt;/FONT&gt;&lt;FONT color="#000000" face="Calibri" size="2"&gt;rd&lt;/FONT&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt; parties to contribute custom visuals.&lt;/FONT&gt;&lt;SPAN&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;Custom visuals play an important role today across the BI Ecosystem, Community and for Business Intelligence advancement in the following ways:&lt;/FONT&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;Eye-catching - enticing, recognizable, informative &amp;amp;, contextual&lt;/FONT&gt;&lt;/LI&gt;&lt;LI&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;Engaging - to view and spend time exploring data, soaking up information and discovering insights&lt;/FONT&gt;&lt;/LI&gt;&lt;LI&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;Building sense and intelligence loyalty - senses include visual, analytical and other vectors&lt;/FONT&gt;&lt;/LI&gt;&lt;LI&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;Enriching the visualization palette – empower mere mortals to become artists that light-up data-driven scenarios; tools to create visual incarnations of beauty&lt;/FONT&gt;&lt;/LI&gt;&lt;LI&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;Self-Actualizing data – compared with other art forms, information visualization is still at a comparatively nascent phase; take learnings from nature and inspire knowledge and wisdom with creations of beauty&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;I started building a custom visual few months back to fill up a gap observed during a data visualization project. &lt;/FONT&gt;&lt;SPAN&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;You can find this visual named &lt;/FONT&gt;&lt;A href="https://app.powerbi.com/visuals/show/Tachometer1474636471549" target="_blank"&gt;&lt;FONT color="#0563c1" face="Calibri" size="3"&gt;Tachometer&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt; in Power BI Visuals Gallery.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;&lt;img /&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;Figure 1. Different configurations of Tachometer custom visual.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;I also joined hands with a great team at Annik (now LiquidHub) with blessings from the Microsoft Power BI team to drive a Hackathon like program internally named &lt;/FONT&gt;&lt;A href="https://powerbi.microsoft.com/en-us/blog/images-2/" target="_blank"&gt;&lt;FONT color="#0563c1" face="Calibri" size="3"&gt;Annik Power BI Challenge&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt; to inspire and create new custom visuals that would be published to the visuals gallery in the future. &lt;/FONT&gt;&lt;SPAN&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;Here I would like to reflect on some of the best practices and experiences along the way for the benefit of anyone building a Power BI custom visual.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;H2&gt;&lt;FONT color="#2e74b5" face="Calibri Light" size="4"&gt;1.&lt;/FONT&gt;&lt;SPAN&gt;&lt;FONT color="#2e74b5" face="Calibri Light" size="4"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT color="#2e74b5" face="Calibri Light" size="4"&gt;Share your learnings&lt;/FONT&gt;&lt;/H2&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;The Power BI Community is all about sharing and building on that shared knowledge. Building custom visuals would have been extremely difficult for new entrants if not for the open source code provided by the Power BI Team and other custom visual developers. Give back to the community by sharing your learnings and your source code.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;H2&gt;&lt;FONT color="#2e74b5" face="Calibri Light" size="4"&gt;2.&lt;/FONT&gt;&lt;SPAN&gt;&lt;FONT color="#2e74b5" face="Calibri Light" size="4"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT color="#2e74b5" face="Calibri Light" size="4"&gt;Start with something that is already available&lt;/FONT&gt;&lt;/H2&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;With many visuals available in the Power BI Visuals Gallery, it is likely that someone has already built similar functionality you want to have in your visual. Existing visuals help provide a starting point and a basic structure to build your custom code upon. For example, I started building Tachometer using Microsoft gauge visual code as a sample. When completed, the Tachometer code hardly had anything common with gauge visual code. However, the gauge visual helped to get things moving faster.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;H2&gt;&lt;FONT color="#2e74b5" face="Calibri Light" size="4"&gt;3.&lt;/FONT&gt;&lt;SPAN&gt;&lt;FONT color="#2e74b5" face="Calibri Light" size="4"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT color="#2e74b5" face="Calibri Light" size="4"&gt;Default settings&lt;/FONT&gt;&lt;/H2&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;Custom visuals come with default settings. Some of these are customizable through capability settings. Make the default settings applicable for the most common application of your visual, so that the user who is adding your visual to a report can readily apply it with minimal modifications. &lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;For example, Tachometer visual spans from -120 degrees from vertical to +120 degrees and has green, yellow, red regions in that order by default all of which can be customized for each of your instances. &lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;H2&gt;&lt;FONT color="#2e74b5" face="Calibri Light" size="4"&gt;4.&lt;/FONT&gt;&lt;SPAN&gt;&lt;FONT color="#2e74b5" face="Calibri Light" size="4"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT color="#2e74b5" face="Calibri Light" size="4"&gt;Enable customization&lt;/FONT&gt;&lt;/H2&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;Users of your visual want the freedom to be creative with many aspects of their reports. This includes the capability to customize the look and feel of your visual in their reports such as changing colors and font sizes. When creating your visual try to expose as many features as you can through configurable capability settings.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;Some capabilities may be tough to implement, but when done right, will add value to your visual and appeal to a wider audience. For example, when I saw different gauge visuals such as the "gauge" which span 180 degrees and "circular gauge" which spans 360 degrees, I thought why not combine the two by making the angle configurable. This simple idea led to configurable angles for the Tachometer. Although enabling customizations doubled the code base, this feature replaces the need to have an infinite number of visuals each with a slightly different start and end angle combination for an example.&lt;/FONT&gt;&lt;SPAN&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;H2&gt;&lt;FONT color="#2e74b5" face="Calibri Light" size="4"&gt;5.&lt;/FONT&gt;&lt;SPAN&gt;&lt;FONT color="#2e74b5" face="Calibri Light" size="4"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT color="#2e74b5" face="Calibri Light" size="4"&gt;Socialize your idea&lt;/FONT&gt;&lt;/H2&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;If you are a developer (as many of you probably are having read this far), there may be some non-technical aspects you may miss such as business uses, aesthetic appeal, etc. Socialize your visual among a wider and diverse audience early, get their inputs and feedback, incorporate them.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;H2&gt;&lt;FONT color="#2e74b5" face="Calibri Light" size="4"&gt;6.&lt;/FONT&gt;&lt;SPAN&gt;&lt;FONT color="#2e74b5" face="Calibri Light" size="4"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT color="#2e74b5" face="Calibri Light" size="4"&gt;Create a Video&lt;/FONT&gt;&lt;/H2&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;If your visual is not trivial and easily understood, a video description of the visual will be helpful for end users. Demonstrate the most common features and usage of your visual. A real-life scenario that can be easily understood by many without specific subject matter expertise is ideal if used to describe the usage of your visual (ex., &lt;/FONT&gt;&lt;A href="https://www.youtube.com/watch?v=C3OXdETbS9o&amp;amp;t=194s" target="_blank"&gt;&lt;FONT color="#0563c1" face="Calibri" size="3"&gt;Tachometer Video&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;). &lt;/FONT&gt;&lt;SPAN&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;The video should ideally be 3 minutes to keep the audience engaged, and try not to make it longer than 5 minutes. If required, make two videos: one with the basic/common functionality and a second with additional details that can supplement documentation of your visual.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;H2&gt;&lt;FONT color="#2e74b5" face="Calibri Light" size="4"&gt;7.&lt;/FONT&gt;&lt;SPAN&gt;&lt;FONT color="#2e74b5" face="Calibri Light" size="4"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT color="#2e74b5" face="Calibri Light" size="4"&gt;Create good user documentation&lt;/FONT&gt;&lt;/H2&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;Document your visual. Add plenty of screenshots and diagrams to help users understand the context and applications. Have the documentation reviewed by someone not familiar with your visual to make sure it is understood by a first-time user. “Markdown” is a quick, easy, and common format used for documentation. See an example here: &lt;/FONT&gt;&lt;A href="https://github.com/ChamaraIC/Tachometer/blob/master/README.md" target="_blank"&gt;&lt;FONT color="#0563c1" face="Calibri" size="3"&gt;Tachometer Documentation&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;H2&gt;&lt;FONT color="#2e74b5" face="Calibri Light" size="4"&gt;8.&lt;/FONT&gt;&lt;SPAN&gt;&lt;FONT color="#2e74b5" face="Calibri Light" size="4"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT color="#2e74b5" face="Calibri Light" size="4"&gt;Strive for quality code&lt;/FONT&gt;&lt;/H2&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;With the popularity of open source solutions, people put in a greater effort to write quality code.&lt;/FONT&gt;&lt;SPAN&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;This is no exception when it comes to Power BI. If you have a close look at the iterations that Power BI visuals have gone through, especially those published by Microsoft, you will notice improvements in code quality. Be it simple things like having meaningful names for your variables (eg. "min" renamed as "minDate" in &lt;/FONT&gt;&lt;A href="https://github.com/Microsoft/powerbi-visuals-linedotchart" target="_blank"&gt;&lt;FONT color="#0563c1" face="Calibri" size="3"&gt;lineDotChart code&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;), structure of the code (eg. breaking draw() into drawline() and drawDots() in &lt;/FONT&gt;&lt;A href="https://github.com/Microsoft/powerbi-visuals-linedotchart" target="_blank"&gt;&lt;FONT color="#0563c1" face="Calibri" size="3"&gt;lineDotChart&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;), or introducing support to patterns like "DataViewObjectsParser".&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;With transition from web based Power BI Dev Tools to CLI tools, we can see code being structured into modules and helper classes. &lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;We still have some way to go with our Tachometer visual and we are working towards them.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;H2&gt;&lt;FONT color="#2e74b5" face="Calibri Light" size="4"&gt;9.&lt;/FONT&gt;&lt;SPAN&gt;&lt;FONT color="#2e74b5" face="Calibri Light" size="4"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT color="#2e74b5" face="Calibri Light" size="4"&gt;Prioritize Performance&lt;/FONT&gt;&lt;/H2&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;Keep performance a top priority. It may not have a significant impact if your visual works with a very small data set and even less for visuals that work with aggregated data sets such as gauges. Alternatively, some visuals may involve processing larger sets of records that necessitate more focus on performance.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;If your visual performs repetitive calculations with the same data values, then explore the possibility of making these calculations up front and storing the results in your data model to be reused. We have a relatively bloated data model in Tachometer and with good cause.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;H2&gt;&lt;FONT color="#2e74b5" face="Calibri Light" size="4"&gt;10.&lt;/FONT&gt;&lt;SPAN&gt;&lt;FONT color="#2e74b5" face="Calibri Light" size="4"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT color="#2e74b5" face="Calibri Light" size="4"&gt;Get your code reviewed&lt;/FONT&gt;&lt;/H2&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;"Looks good" has become the most common code review feedback we get these days surpassing "I am not familiar with this technology".&lt;/FONT&gt;&lt;SPAN&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;I prefer seeing a genuine code review with issues noted down including references, something that we took pride in at some of my past engagements. Code reviews not only help improve code, they also help learning and adopting coding best practices. Seek review from someone who would spend the time and provide as much feedback as possible. It does not take much time really, to go over a couple thousand lines of code in a custom visual and write a helpful review.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;H2&gt;&lt;FONT color="#2e74b5" face="Calibri Light" size="4"&gt;11.&lt;/FONT&gt;&lt;SPAN&gt;&lt;FONT color="#2e74b5" face="Calibri Light" size="4"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT color="#2e74b5" face="Calibri Light" size="4"&gt;Test your code&lt;/FONT&gt;&lt;/H2&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;Make sure you test your visual on all common browsers and Power BI desktop. Depending on how complex your visual is, there can be discrepancies. You can automate some unit testing using Karma and Jasmin or other similar technologies. Make use of them.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;H2&gt;&lt;FONT color="#2e74b5" face="Calibri Light" size="4"&gt;12.&lt;/FONT&gt;&lt;SPAN&gt;&lt;FONT color="#2e74b5" face="Calibri Light" size="4"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT color="#2e74b5" face="Calibri Light" size="4"&gt;Report issues&lt;/FONT&gt;&lt;/H2&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;While developing our custom visuals, we encountered gaps in Power BI documentation. These were fixed within days of us reporting them. Some of the more demanding gaps took longer like visual utilities. &lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;Depending on where the issue is, you can report them through "&lt;/FONT&gt;&lt;A href="https://github.com/Microsoft/PowerBI-Visuals/issues" target="_blank"&gt;&lt;FONT color="#0563c1" face="Calibri" size="3"&gt;issues&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;" or the appropriate forum. Consider doing this as returning a favor to the Power BI community.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;H2&gt;&lt;FONT color="#2e74b5" face="Calibri Light" size="4"&gt;13.&lt;/FONT&gt;&lt;SPAN&gt;&lt;FONT color="#2e74b5" face="Calibri Light" size="4"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT color="#2e74b5" face="Calibri Light" size="4"&gt;Do not underestimate the Power BI Visual publication process&lt;/FONT&gt;&lt;/H2&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;The power BI Visual publication process is not automated. Surprised? Once you submit your visual, it gets tested manually. Publishers of Custom Visuals know very well how involved this process can be.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;When we made our initial submission of Tachometer custom visual, we knew of some limitations it had but we were eager in getting it published on the Visuals Gallery (a pretty common scenario in product development) and planned to release updates later. That did not work to our favor. These limitations were caught and sent back our way to fix. Microsoft Power BI Team tests your visual thoroughly. Kudos to them.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;Well, to summarize, think about the end user, get all the help you can, strive for quality and test thoroughly.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;Good luck creating compelling custom visuals!&lt;/FONT&gt;&lt;/P&gt;</description>
    <pubDate>Tue, 28 Mar 2017 18:09:14 GMT</pubDate>
    <dc:creator>Chamara</dc:creator>
    <dc:date>2017-03-28T18:09:14Z</dc:date>
    <item>
      <title>What I learnt building Power BI Custom Visuals</title>
      <link>https://community.fabric.microsoft.com/t5/Custom-Visuals-Community-Blog/What-I-learnt-building-Power-BI-Custom-Visuals/ba-p/150233</link>
      <description>&lt;P&gt;&lt;SPAN&gt;&lt;FONT color="#000000"&gt;Creating a power BI custom visual is much more than a programming endeavor, it is an immersion in a new form of art that enables self-actualization of data. It calls for a broader set of skills and your work is not over once the visual is built. The good news however is, you are not alone. There is a community out there that you can learn from and be a part of…&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 28 Mar 2017 18:09:14 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Custom-Visuals-Community-Blog/What-I-learnt-building-Power-BI-Custom-Visuals/ba-p/150233</guid>
      <dc:creator>Chamara</dc:creator>
      <dc:date>2017-03-28T18:09:14Z</dc:date>
    </item>
    <item>
      <title>Re: What I learnt building Power BI Custom Visuals</title>
      <link>https://community.fabric.microsoft.com/t5/Custom-Visuals-Community-Blog/What-I-learnt-building-Power-BI-Custom-Visuals/bc-p/153762#M16</link>
      <description>&lt;P&gt;very nice, i also started working on custom visuals&lt;/P&gt;</description>
      <pubDate>Wed, 05 Apr 2017 05:58:12 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Custom-Visuals-Community-Blog/What-I-learnt-building-Power-BI-Custom-Visuals/bc-p/153762#M16</guid>
      <dc:creator>kammaru</dc:creator>
      <dc:date>2017-04-05T05:58:12Z</dc:date>
    </item>
    <item>
      <title>Re: What I learnt building Power BI Custom Visuals</title>
      <link>https://community.fabric.microsoft.com/t5/Custom-Visuals-Community-Blog/What-I-learnt-building-Power-BI-Custom-Visuals/bc-p/159340#M17</link>
      <description>&lt;P&gt;&amp;nbsp;Proves you have done the leg work...Well documented Chamara...&lt;/P&gt;</description>
      <pubDate>Sat, 15 Apr 2017 18:01:41 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Custom-Visuals-Community-Blog/What-I-learnt-building-Power-BI-Custom-Visuals/bc-p/159340#M17</guid>
      <dc:creator>DavidMoss</dc:creator>
      <dc:date>2017-04-15T18:01:41Z</dc:date>
    </item>
    <item>
      <title>Re: What I learnt building Power BI Custom Visuals</title>
      <link>https://community.fabric.microsoft.com/t5/Custom-Visuals-Community-Blog/What-I-learnt-building-Power-BI-Custom-Visuals/bc-p/253589#M29</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Pretty nice job, Chamara, all the info is relevant and give us a whole lot better overview than the "official" documentarion&lt;/P&gt;</description>
      <pubDate>Mon, 18 Sep 2017 04:52:24 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Custom-Visuals-Community-Blog/What-I-learnt-building-Power-BI-Custom-Visuals/bc-p/253589#M29</guid>
      <dc:creator>leoespejo</dc:creator>
      <dc:date>2017-09-18T04:52:24Z</dc:date>
    </item>
    <item>
      <title>Re: What I learnt building Power BI Custom Visuals</title>
      <link>https://community.fabric.microsoft.com/t5/Custom-Visuals-Community-Blog/What-I-learnt-building-Power-BI-Custom-Visuals/bc-p/593001#M57</link>
      <description>&lt;P&gt;&amp;nbsp;Thanks Chamara sharing this useful info, new users on custom visuals like me will apreciate it for sure!! Awesome work!&lt;/P&gt;</description>
      <pubDate>Mon, 31 Dec 2018 07:55:27 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Custom-Visuals-Community-Blog/What-I-learnt-building-Power-BI-Custom-Visuals/bc-p/593001#M57</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2018-12-31T07:55:27Z</dc:date>
    </item>
  </channel>
</rss>

