Software:DotNetBrowser
From HandWiki
| Developer(s) | TeamDev |
|---|---|
| Initial release | 6 April 2015 |
| Written in | C#, C++ |
| Operating system | Microsoft Windows, Linux, macOS |
| Type | Framework, Web browser |
| License | Proprietary[1] |
DotNetBrowser is a proprietary .NET library that provides a Chromium-based engine which can be used to load and display web pages.[2] [3][4] 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.[5]
- 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[6][7][8]
Usage
Primary usage is embedding a browser into various .NET desktop applications and displaying the web pages.[9] 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[10] and VSTO add-ins for Microsoft Office.[11]
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
- ↑ "DotNetBrowser Product Licence Agreement". TeamDev. https://www.teamdev.com/dotnetbrowser/licence-agreement. Retrieved 12 March 2021.
- ↑ "DotNetBrowser on StackOverflow". https://stackoverflow.com/questions/tagged/dotnetbrowser. Retrieved 14 March 2021.
- ↑ "DotNetBrowser on NuGet". https://www.nuget.org/packages/DotNetBrowser/. Retrieved 14 March 2021.
- ↑ "c # - i want to get location information with dotnetbrowser". https://www.tutorialfor.com/questions-92437.htm.
- ↑ "Chromium Web Browser Control in .NET Applications". DZone. https://dzone.com/articles/chromium-web-browser-control.
- ↑ "DotNetBrowser and invalid external method call". https://blog.adamfurmanek.pl/2020/06/13/dotnetbrowser-and-invalid-external-method-call/.
- ↑ "Using dotnetbrowser to call JavaScript function to c#". 14 June 2018. https://www.reddit.com/r/csharp/comments/8r1txo/using_dotnetbrowser_to_call_javascript_function/.
- ↑ "The mutual call between the JS code of the DotNetBrowser internal page and the external C# code". https://my.oschina.net/Tsybius2014/blog/1055590.
- ↑ "Creating an HTML UI for Desktop .NET Applications". InfoQ. https://www.infoq.com/articles/html-desktop-net/. Retrieved 12 March 2021.
- ↑ Mihika Kapoor (2 July 2016). "Frame Building with C# and VB.NET". https://medium.com/@mihikakapoor/frame-building-with-c-and-vb-net-f2389e7633.
- ↑ "Using VSTO to develop Word AddIn, is there a third-party kernel that can replace webbrowser?". https://social.msdn.microsoft.com/Forums/vstudio/en-US/cc201f5e-bab8-46ad-a3de-28ade7d13e56/using-vsto-to-develop-word-addin-is-there-a-thirdparty-kernel-that-can-replace-webbrowser?forum=vsto.
External links
- DotNetBrowser Help Center, http://dotnetbrowser-support.teamdev.com/ - the DotNetBrowser support website containing documentation and release notes.
- DotNetBrowser Examples, 5 October 2022, https://github.com/TeamDev-IP/DotNetBrowser-Examples/ - the repository containing various examples of using DotNetBrowser.
