Skip to main content
All docs
V25.1
  • Migrate Windows Forms Applications to ASP.NET Core Blazor

    • 7 minutes to read

    When you migrate a Windows Forms application to ASP.NET Core Blazor, you can reuse the data layer and business logic, but you need to reconstruct the UI from scratch. This article contains information related to:

    • Resources that describe migration in general and application architecture choices that facilitate the transition.
    • Tables that list DevExpress Windows Forms controls and their DevExpress Blazor counterparts.

    Why Use DevExpress UI Controls for Blazor

    The DevExpress Blazor Component Suite ships with components and development libraries for Blazor Server, Blazor WebAssembly, and Blazor Hybrid hosting models. The suite includes a comprehensive set of UI controls, such as Data Grid, Pivot Grid, Scheduler, Chart, Data Editors, and Reporting. Review the complete list of available components in our documentation.

    DevExpress Blazor Components can be purchased as part of the following DevExpress subscriptions: ASP.NET and Blazor (includes DevExtreme), DXperience, and Universal.

    Run Demo Download: Free 30-Day Trial

    How to Migrate a Project: Useful Resources

    For information on how to migrate your project to a different platform, review the following resources:

    Watch Video: Modernizing your desktop: From WinForms to Blazor, Azure, and AI

    DevExpress UI Components: Equivalents for Different Platforms

    Most of our product lines contain similar component sets. Regardless of the platform, developers usually require the same UI controls for their business apps and websites.

    Tables below list DevExpress Windows Forms components and their DevExpress Blazor equivalents (or ways to implement similar functionality).

    Data Grids

    Windows Forms Component Blazor Component
    GridControl DxGrid
    GridControl in CardView mode Possible to implement using DxGridLayout and DxLayoutBreakpoint (see Demo).
    TreeList DxTreeList or DxTreeView
    VGridControl
    PropertyGridControl
    GanttControl Consider integrating DevExtreme Gantt.

    Data Binding

    Blazor Grid and TreeList allow you to implement the same set of data binding scenarios. Refer to the following help topics for information on data binding:

    If our standard data source bindings do not meet your business requirements, you can implement your own data provider. Refer to the following example for implementation details: Blazor Grid - Custom Data Source Binding using Entity Framework Core.

    Export to CSV, PDF, and XLS

    Windows Forms Grid and TreeList controls use the same internal export engine as their Blazor counterparts. Public API names may differ. Refer to the following documentation section to find Blazor equivalents:

    Lookup Editors

    Windows Forms Component Blazor Component
    LookUpEdit Based on required functionality, you have the following options:
    1. Use DxComboBox<TData, TValue> with columns.
    2. Place DxGrid into DxDropDownBox.DropDownBodyTemplate (see Demo).
    GridLookUpEdit Place DxGrid into DxDropDownBox.DropDownBodyTemplate (see Demo).
    SearchLookUpEdit Place DxGrid into DxDropDownBox.DropDownBodyTemplate (see Demo).
    TreeListLookUpEdit Place DxTreeList into DxDropDownBox.DropDownBodyTemplate (see Demo).

    Text Editors

    Windows Forms Component Blazor Component
    ButtonEdit Use command buttons.
    HyperLinkEdit Use the <a> tag.
    MemoEdit DxMemo
    TokenEdit DxTagBox<TData, TValue>
    TextEdit DxTextBox

    Numeric Editors

    Windows Forms Component Blazor Component
    SpinEdit DxSpinEdit<T>
    TimeEdit DxTimeEdit<T>

    Buttons and Labels

    Windows Forms Component Blazor Component
    CheckButton Enable selection in a DxButtonGroup with one button.
    DropDownButton DxDropDownButton, DxSplitButton
    LabelControl Use the <span> or <label> tag.
    SimpleButton DxButton
    WindowsUIButtonPanel If you want to implement navigation between data records, use DxPager. If you want to implement a set of command buttons, use DxButtonGroup.
    Windows Forms Component Blazor Component
    AccordionControl, NavBarControl DxAccordion or DxTreeView
    OfficeNavigationBar DxMenu
    NavigationPane Use DxAccordion or DxTreeView to implement routing (see Example).
    RibbonControl DxRibbon
    BarManager Replicate each Bar and its items with a DxToolbar or DxMenu.
    PopupMenu DxContextMenu
    RadialMenu
    TileBar
    TileNavPane
    ToolboxControl

    Forms & Layout

    Windows Forms Component Blazor Component
    XtraForm and other DevExpress Windows Forms A browser page is equivalent to a form. Use DxPopup or DxWindow to replace child dialogs.
    DockManager
    LayoutControl, DataLayoutControl DxFormLayout
    GroupControl Use DxFormLayoutGroup within DxFormLayout
    SplitContainerControl DxSplitter
    NavigationFrame Use DxAccordion or DxTreeView to implement routing (see Example).
    XtraTabControl, TabPane DxTabs
    TabbedView, XtraTabbedMdiManager Possible to implement a tab header’s context menu functionality (see Example). If you do not need a context menu, use DxTabs.
    StackPanel DxStackLayout
    TablePanel DxGridLayout
    SidePanel Use DxDrawer along with DxSplitter.
    WizardControl
    WidgetView in Stack Layout mode DxStackLayout
    WidgetView in Table Layout mode DxGridLayout
    WidgetView in Flow Layout mode Align document content using display: inline-block.
    WidgetView in Free Layout mode

    Item Selectors

    Windows Forms Component Blazor Component
    CalcEdit
    ColorEdit DxColorPalette
    ColorPickEdit Embed DxColorPalette into DxDropDownBox (see Demo).
    ComboBoxEdit DxComboBox<TData, TValue>
    DateEdit DxDateEdit<T>
    ImageComboBoxEdit Use templates in a DxComboBox<TData, TValue> (see Demo - Item Template and Demo - Edit Box Display Template).
    ImageEdit Embed the <img> tag[1] into DxDropDownBox to display images. Context menu and editing operations are unavailable.
    ListBoxControl DxListBox<TData, TValue>
    CheckedListBoxControl Enable check box selection in DxListBox<TData, TValue>.
    ImageListBoxControl Use DxListBox<TData, TValue> with templates (see Demo).
    MemoExEdit Embed DxMemo into DxDropDownBox.
    MRUEdit
    PopupContainerEdit DxDropDownBox
    PopupGalleryEdit
    FontEdit Use DxComboBox<TData, TValue> or DxDropDownBox (see Demo).
    CheckedComboBoxEdit DxDropDownBox with a custom template (see Demo)
    BreadCrumbEdit Consider integrating Bootstrap Breadcrumbs (see Example).
    TimeSpanEdit DxTimeEdit<T>

    Messages, Notifications, and Dialogs

    Windows Forms Component Blazor Component
    XtraMessageBox DxMessageBox
    XtraInputBox DxMessageBox
    XtraDialog DxPopup
    XtraOpenFileDialog, XtraSaveFileDialog DxFileInput, DxUpload
    XtraFolderBrowserDialog
    FlyoutDialog DxPopup
    FlyoutPanel DxFlyout
    AlertControl DxToast
    Tooltips Use DxFlyout or CSS tooltip.

    Editors Without Textboxes

    Windows Forms Component Blazor Component
    CalendarControl DxCalendar<T>
    CheckEdit DxCheckBox<T>
    SvgImageBox Use the <img> tag[1].
    RatingControl
    ProgressBarControl DxProgressBar
    StepProgressBar
    ProgressPanel DxWaitIndicator
    RadioGroup DxRadioGroup<TData, TValue>
    PictureEdit Use the <img> tag[1] to display images (see Example). Editing operations are unavailable.
    Splash Screens DxLoadingPanel, DxWaitIndicator
    TrackBarControl Consider integrating DevExtreme Slider.
    RangeControl DxRangeSelector
    RangeTrackBarControl DxRangeSelector
    ZoomTrackBarControl Consider integrating DevExtreme Slider.
    SparklineEdit DxSparkline
    ToggleSwitch Use DxCheckBox<T> in switch mode.

    Utility Controls

    Windows Forms Component Blazor Component
    BarCodeControl Generate bar codes using Office File API[2] and display them within the <img> tag.
    DataNavigator Use DxPager. If you need to scroll to a specific data record, use DxButtonGroup along with Grid/TreeList APIs.
    FilterControl, FilterEditorControl DxFilterBuilder
    ImageSlider DxCarousel
    GalleryControl
    CameraControl
    SearchControl DxSearchBox

    Office-Inspired Controls

    Windows Forms Component Blazor Component
    RichEditControl DxRichEdit
    SchedulerControl DxScheduler
    SpreadsheetControl
    SpellChecker
    Office File API Use the same APIs[2].

    Reporting and Analytics

    Windows Forms Component Blazor Component
    PdfViewer DxPdfViewer
    PivotGridControl DxPivotTable
    Report Viewer DxReportViewer
    End-User Report Designer DxReportDesigner
    Dashboard Viewer, Dashboard Designer Blazor Dashboard (includes both Designer and Viewer)

    Data Visualization

    Windows Forms Component Blazor Component
    ChartControl DxChart<T>, DxPieChart<T>, DxPolarChart<T>
    DiagramControl Possible to integrate DevExtreme Diagram.
    GaugeControl DxBarGauge. Consider integrating DevExtreme Circular Bar Gauge (see Example).
    MapControl DxMap
    TreeMapControl Consider integrating DevExtreme TreeMap.
    SunburstControl Possible to implement using DxPieChart<T> (see Demo).
    SankeyDiagramControl DxSankey
    HeatmapControl

    UI Templates

    You can replace the following WinForms UI templates with a single component in Blazor:

    Windows Forms UI Template Blazor Component
    Button Groups DxButtonGroup
    Buttons DxButton
    DateRangePicker DxDateRangePicker<T>

    Concepts

    Windows Forms Concept Blazor Concept
    DXErrorProvider Possible to display validation icons and colored outlines.
    DXValidationProvider Use standard Blazor validation mechanisms.
    Application Skins Styling and Themes.

    Inplace Editors

    Windows Forms grid-like controls allow you to automatically generate a data editor based on the data field type. The editor is used to display and edit cells in a specific column.

    Blazor Grid and TreeList use a similar column editor architecture, albeit with a smaller number of built-in editor types. However, you can also specify custom cell templates, which allow you to display components or custom HTML markup in cells. Refer to the following topics for additional information:

    Windows Forms Bar Manager and Ribbon Control allow you to embed data editors with a specially designed bar item type - BarEditItem. In Blazor, the technique depends on the bar-like control. Use the following links to find instructions:

    Have a Question?

    If you have additional technical questions about migration between UI platforms within the DevExpress ecosystem, feel free to contact us: DevExpress Support Center.

    Footnotes
    1. Example: <img src="data:image/png;base64,{imageBytes} />.

    2. You need a DevExpress Office File API Subscription or DevExpress Universal Subscription license to use this library in production code.