DotNetBrowser

DotNetBrowser
Developer(s)TeamDev
Initial release6 April 2015; 9 years ago (2015-04-06)
Stable release
2.25.1[1] Edit this on Wikidata / 22 January 2024
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[edit]

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[edit]

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[edit]

WPF[edit]

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[edit]

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[edit]

References[edit]

  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. Archived from the original on 2021-05-19. Retrieved 2021-05-19.
  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". Archived from the original on 2021-05-19. Retrieved 2021-05-19.
  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.

External links[edit]