Forum Discussion

Ashwath_Bala_S's avatar
1 year ago
Solved

Fabric Workload Development Kit - Clarification Needed on Setup and Usages

Hi Everyone,   I have a few questions related to "Fabric Workload Development Kit", which I would like to get it clarified.   Following are my questions: 1. Is there full documentation convert t...
  • Teddyb's avatar
    1 year ago

    Hi Ashwath_Bala_S, thanks for the interest and would love if you can also share whether you are planning to release it as a public workload or for organizational use. 

     

    1. Power BI App to Fabric Workload Kit Conversion

    There is no direct "conversion" tool to migrate existing Power BI apps to Fabric workloads. The WDK is designed for building custom workloads that integrate with Fabric, not for converting Power BI apps.

    However, you can:

    2. Prerequisites for Fabric Workload Development Kit

    Technical Requirements:

    • Microsoft Fabric subscription with F or P SKU capacity (trial capacities supported)
    • Admin permissions on workspace to register workloads
    • Tenant settings enabled:
      • "Workspace admins can develop partner workloads" (Admin portal > Tenant settings > Additional workloads)
      • "Fabric Developer Mode" (Settings > Developer settings)

    Development Tools:

    • Git - Version control
    • Node.js (with npm version 9+)
    • Visual Studio 2022 or Visual Studio Code with C# Dev Kit
    • ASP.NET Core Runtime 6.0 and .NET 6.0 Runtime
    • Webpack and Webpack CLI
    • DevGateway utility (downloaded from Microsoft Download Center)

    Azure Services:

    • Microsoft Entra ID app registration
    • Azure Storage consent (requires Global admin if not installed)

    3. Starter Template for WDK Development

    Yes! Microsoft provides a comprehensive starter template:

    Microsoft Fabric Workload Development Sample

    Features:

    • Complete frontend (React + TypeScript) and backend (C# ASP.NET Core) implementation
    • Sample calculator workload that demonstrates lakehouse integration
    • Quick start guide with step-by-step setup instructions
    • Demonstrates key WDK capabilities: CRUD operations, job management, authentication, UI components

    Getting Started:

    git clone https://github.com/microsoft/Microsoft-Fabric-workload-development-sample.git
    cd Microsoft-Fabric-workload-development-sample
    # Follow the quickstart guide in documentation
    

    4. High-Level Architecture Diagram

    The WDK architecture consists of several key components:

    Core Components:

    • Frontend (React): Runs in sandboxed iframe within Fabric portal
    • Backend (C# ASP.NET Core): Handles data processing, metadata storage, CRUD operations
    • DevGateway: Manages local development communication via Azure Relay
    • Workload Client SDK (@ms-fabric/workload-client): Provides APIs for Fabric integration

    Integration Points:

    • Microsoft Entra ID: Authentication and authorization
    • OneLake: Data storage and management
    • Fabric APIs: Item lifecycle, monitoring, notifications

    Deployment Modes:

    • Development Mode: Local machine with DevGateway
    • Cloud Mode: Hosted services with direct HTTPS endpoints

    5. Required Expertise for WDK Development

    Frontend Development:

    • React and TypeScript (primary framework)
    • Fluent UI components and design system
    • Webpack configuration and bundling

    Backend Development:

    • RESTful API design and implementation
    • Microsoft Entra ID authentication flows
    • Azure services integration (Storage, Relay)

    Data & Analytics:

    • OneLake integration patterns
    • Lakehouse architecture understanding
    • Data processing and ETL concepts

    DevOps & Deployment:

    • Azure Marketplace publishing
    • NuGet packaging
    • CI/CD pipelines
    • Workload certification requirements

    6. Figma Fabric UI Kit vs Fluent UI

    Yes, you can use Fluent UI exclusively!

    Key Points:

    • The WDK sample is built on top of Fluent UI and designed for React
    • Fluent UI provides visual consistency with Fabric's look and feel
    • The official documentation states: "UX workloads use Fluent UI controls for visual consistency with Fabric and for ease of development"
    • Fabric UX System is based on Microsoft's Fluent 2 Design System

    Recommended Approach:

    • Use Fluent UI React components directly
    • Reference the Fabric UX System for design tokens, spacing, and color palette

    7. Embedding Power BI Visuals in Custom Workload

    Power BI embedding in WDK is possible but requires careful architecture:

    Approach:

    • Use Power BI Embedded APIs within your workload's iframe
    • Implement Power BI JavaScript SDK in your React frontend
    • Handle authentication tokens through your workload's Entra ID app
    • Leverage OneLake integration for data consistency

    Implementation Pattern:

    // Example integration pattern
    import { PowerBIEmbed } from 'powerbi-client-react';
    
    // Within your workload component
    <PowerBIEmbed
      embedConfig={{
        type: 'visual',
        id: 'visualId',
        embedUrl: 'embedUrl',
        accessToken: 'accessToken'
      }}
    />
    

    8. Power BI Embedding Limitations

    Embedding Capabilities:

    • WDK is based on embedding an application iframe in Fabric, which can be a Power BI report or a full blown application.

    Key Limitations:

    • Authentication complexity: Must handle token management between workload and Power BI
    • Iframe restrictions: Sandboxed environment may limit some Power BI features
    • Data governance: Ensure proper security boundaries between workload and Power BI data

    Best Practices:

    • Design for integration: Rather than full embedding, consider building native Fabric experiences
    • Leverage OneLake: Use shared data layer for consistency
    • Authentication flow: Implement proper On-Behalf-Of (OBO) token flows

    Additional Resources:

    The WDK provides a robust foundation for building custom analytics experiences within Fabric. Start with the sample repository and leverage the comprehensive documentation to build your workload step by step.