DotNetBrowser
Developer(s)TeamDev
Initial release6 April 2015 (2015-04-06)
Stable release
2.24[1] Edit this on Wikidata / 3 October 2023
Written inC#, C++
Operating systemMicrosoft Windows, Linux, macOS
TypeFramework, Web browser
LicenseProprietary[2]
Websitehttps://teamdev.com/dotnetbrowser

DotNetBrowser is a proprietary .NET library that provides a Chromium-based engine which can be used to load and display web pages.[3] [4][5] It is developed and supported by TeamDev since 2015.

Features

Some main features are as follows:

  • Load and display the web page.
  • Embed a Chromium-based browser in a .NET desktop application as an Avalonia UI, WPF or Windows Forms control.[6]
  • Handle navigation and network events.
  • Access Document Object Model of the loaded web page.
  • Execute JavaScript on the loaded web page, inject .NET objects and call them from JavaScript[7][8][9]

Usage

Primary usage is embedding a browser into various .NET desktop applications and displaying the web pages.[10] DotNetBrowser can be used as a headless browser. The headless mode is also available on Linux and macOS.

Another known use-cases are creating web-based kiosk applications[11] and VSTO add-ins for Microsoft Office.[12]

More examples and use-cases are available in the DotNetBrowser Examples repository.

Example

WPF

XAML markup

<Window x:Class="Sample.Wpf.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:wpf="clr-namespace:DotNetBrowser.Wpf;assembly=DotNetBrowser.Wpf"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800" Closed="MainWindow_OnClosed">
    <Grid>
        <wpf:BrowserView x:Name="browserView"/>
    </Grid>
</Window>

C#

using System;
using System.Windows
using DotNetBrowser.Browser;
using DotNetBrowser.Engine;

namespace Sample.Wpf;

public partial class MainWindow : Window
{
    private readonly IEngine _engine;
    private readonly IBrowser _browser;
     
    public MainWindow()
    {
        InitializeComponent();
         
        // Create and initialize the IEngine
        _engine = EngineFactory.Create();
         
        // Create the IBrowser
        _browser = engine.CreateBrowser();
        _browser.Navigation.LoadUrl("https://teamdev.com/dotnetbrowser");
         
        // Initialize the WPF BrowserView control
        browserView.InitializeFrom(browser);
    }
     
    private void MainWindow_OnClosed(object sender, EventArgs e)
    {
        _browser.Dispose();
        _engine.Dispose();
    }
}

Windows Forms

C#

using System;
using System.Windows.Forms;
using DotNetBrowser.Browser;
using DotNetBrowser.Engine;
using DotNetBrowser.WinForms;

namespace Sample.WinForms;

public partial class Form1 : Form
{
    private readonly IEngine _engine;
    private readonly IBrowser _browser;
     
    public Form1()
    {
        InitializeComponent();
         
        // Create and initialize the IEngine
        _engine = EngineFactory.Create();
         
        // Create the Windows Forms BrowserView control
        var browserView = new BrowserView
        {
            Dock = DockStyle.Fill
        };
         
        // Create the IBrowser
        _browser = engine.CreateBrowser();
        _browser.Navigation.LoadUrl("https://teamdev.com/dotnetbrowser");
         
        // Initialize the Windows Forms BrowserView control
        browserView.InitializeFrom(browser);
         
        // Add the BrowserView control to the Form
        Controls.Add(browserView);
        Closed += Form1Closed;
    }
     
    private void Form1Closed(object sender, EventArgs e)
    {
        _browser.Dispose();
        _engine.Dispose();
    }
}

See also

References

  1. Error: Unable to display the reference properly. See the documentation for details.
  2. "DotNetBrowser Product Licence Agreement". TeamDev. TeamDev. Retrieved 12 March 2021.
  3. "DotNetBrowser on StackOverflow". Retrieved 14 March 2021.
  4. "DotNetBrowser on NuGet". Retrieved 14 March 2021.
  5. "c # - i want to get location information with dotnetbrowser".
  6. "Chromium Web Browser Control in .NET Applications". DZone.
  7. "DotNetBrowser and invalid external method call".
  8. "Using dotnetbrowser to call JavaScript function to c#". 14 June 2018.
  9. "The mutual call between the JS code of the DotNetBrowser internal page and the external C# code".
  10. "Creating an HTML UI for Desktop .NET Applications". InfoQ. InfoQ. Retrieved 12 March 2021.
  11. Mihika Kapoor (2 July 2016). "Frame Building with C# and VB.NET". medium.com. Retrieved 17 May 2021.
  12. "Using VSTO to develop Word AddIn, is there a third-party kernel that can replace webbrowser?". Retrieved 21 May 2021.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.