Microsoft Visual Basic 7+ (.NET)
Join us over on Discord for real-time interaction with other like minded Visual Basic enthusiasts!
- Sharplab.io - You can easily switch the Code dropdown to Visual Basic, type code in and instantly see what the underlying IL will be - in the browser, nothing to download.
- EFCore.VisualBasic: Adds VB design-time support to EF Core
- Status of WinForms in NativeAOT
- Again WinForms and NativeAOT
- SILK.NET: Silk.NET is your one-stop-shop for high-speed .NET multimedia, graphics, and compute; providing bindings to popular low-level APIs such as OpenGL, OpenCL, OpenAL, OpenXR, GLFW, SDL, Vulkan, Assimp, and DirectX. Use Silk.NET to spruce up applications with cross-platform 3D graphics, audio, compute and haptics! Silk.NET works on any .NET Standard 2.0 compliant platform, including .NET 6.0, Xamarin, .NET Framework 4.6.1+, and .NET Core 2.0+.
- C# StringLiteralGenerator
Starting this section here as of November 10, 2020 to track any interesting links as they relate to VB and .NET 5.0.
- Announcing .NET 5.0
- App Trimming in .NET 5
- Customizing Trimming in .NET 5
- Introducing the Half type!
- Debug Your .NET Core Apps in WSL 2 with Visual Studio
- .NET CLI Templates in Visual Studio
- Windows Forms Designer for .NET Core Released
- Bring the best of the Web to your .NET desktop applications with WebView2
- Getting started with WebView2 in Windows Forms (Preview)
- Support Single-File Apps in .NET 5 (github)
- Single file deployment and executable
- Enable ‘generators’ in the VB compiler… (16.?)
- VisualBasic command line tests should run on netcore (16.9)
- Source Generators: should user generators require an attribute for discovery?
- How to migrate a Windows Forms desktop app to .NET 5
Stuff to review…
The Roslyn .NET compiler service provides C# and Visual Basic languages with rich code analysis APIs.
- Digging Deeper into the Visual Basic Language Strategy
- Visual Basic Language Specification (GitHub)
- VbLang (GitHub): The home for design of the Visual Basic .NET programming language and runtime library.
- Roslyn (GitHub): The official OSS version of VB.NET (and C#).
- QuickVB (GitHub): A MS-DOS QuickBASIC/QBasic-like IDE for Visual Basic code that’s powered by the .NET Compiler Platform (“Roslyn”).
- Microsoft.VisualBasic Runtime Reference Source (GitHub)
- Microsoft.VisualBasic.Core (GitHub)
- Tracking the progress of porting VB Runtime to .NET Core
- Visual Basic in .NET Core 3.0 (Plan)
- Mono Linker - ILLink.Tasks
- .NET Core SDK “Nighlies”
- Select appropriate VB runtime by default #3415
- Features of a pattern matching syntax #337
- .NET Core RID Catalog
- WinForms (.NET Core) Samples
- Use the Windows Compatibility Pack to port code to .NET Core
- WindowCommunityToolkit: The Windows Community Toolkit is a collection of helper functions, custom controls, and app services. It simplifies and demonstrates common developer tasks building UWP apps for Windows 10. The toolkit is part of the .NET Foundation.
- MAUI: MAUI is the .NET Multi-platform App UI, a framework for building native device applications spanning mobile, tablet, and desktop. Introduction
- An Exhausting List of Differences Between VB.NET & C# by Anthony D. Green
- The Many Cases of ByRef by Jared Par
- Deterministic builds in Roslyn by Jared Par
- Windows Forms Visual Inheritance
- Building web API apps on ASP.NET Core 2 and VB.NET
- Building ASP.NET Core web apps with VB.NET
The following people are either people who are (or have) worked on Visual Basic (.NET / .NET Core) or who are individuals who actively advocate / promote it’s usage by providing samples, projects, public speaking, etc.
- Anthony D. Green (blog, github)
- Cory Smith (blog, github)
- Paul M. Cohen (github)
- Xavier Flix (blog, github)
If you would like to be added to this list, please feel free to either contact me or create a pull request. ;-)
- Converting C# to VB
- Setting up Raspian and .NET Core 2.0 on a Raspberry Pi
- Get Started with Video Game Development using PuppyBreath (see Components section)
- GdiGaming GDI+ Gaming API (see Components section)
- How to Create Video Games in VB.Net (Windows Forms)
- Retrieve Email and Parse Email in VB.NET - Tutorial
- Packaging a .NET Core 3.0 application with MSIX
- How to: Parse JSON using .NET or .NET Core – Intro
- How to port desktop applications to .NET Core 3.0
- .NET Core Workers as Windows Services
- Select the Visual Basic language version
- How to: Inherit Windows Forms
- Migration to ASP.NET Core
- Google Drive API how to VB.NET File Download (StackOverflow)
- How to add watermark to PDF
- Fast Pixel Rendering (SO)
- Using the LockBits method to access image data
- Bob Tabor
- Visual Basic Fundamentals for Absolute Beginners using Visual Studio 2015 (Microsoft Virtual Academy): Note: I skip the first episode; mainly because it “bugs” me that the whole time we are being introduced to VB, it looks like the course is all about C#. (I’ve also had a lot of people tell me it’s the wrong link because of this.)
- Visual Basic Fundamentals for Absolute Beginners using Visual Studio 2015 (YouTube 8:59:09): Note: Skip ahead to about minute 14.
- Visual Basic 2010 Tutorial 200 Part Series (YouTube)
- Sonar Learning’s Visual Basic Programming 200 Part Series (20 hours)
- Visual Basic Tutorial 2017 (YouTube 29:04)
- Learn Visual Basic in 30 Minutes (YouTube 31:18)
- Learn Visual Basic Advanced 2015 (YouTube 39:04)
- VbPage (Facebook)
- Visual Basic Discord Server (Invite)
- VB.NET Gitter
- .NET Developer Community: Meet like-minded developers, connect with the .NET team, find podcass, and more.
- WebView2: Bring the best of the Web to your .NET desktop applications.
- AGKSharp for Windows: With AGKSharp you have the chance to write AppGameKit programs in the language C# and in VisualBasic.
- PuppyBreath by Reed Kimble (GitHub): A simplistic and robust video game engine for .NET Windows Forms projects, based entirely on managed code and GDI+ graphics.
- GdiGaming API by Reed Kimble (CodePlex): GDI+ based .NET Game Engine.
- DotNetBrowser - Integrate a Chromium-based browser with your .NET app. (Commercial)
- FirmataVB: Easily take advantage of the Firmata protocol (Arduino).
- dnSpy (GitHub): .NET debugger and assembly editor.
- ConnectionStrings.com: Helps developers connect software to data.
- Write Better Code Faster with Roslyn Analyzers
- code-cracker (GitHub): An analyzer library for C# and VB that uses Roslyn to produce refactorings, code analysis, and other niceties. http://code-cracker.github.io/
- DotNetAnalyzers (GitHub): This project is for the community to make a common code base of .NET code analyzers using the new VS14 code analyzer functionality.
- VBSttyleAnalyzer (GitHub): Roslyn analyzers for VB UWP apps.
- DelSole.CrossAnalyzers (GitHub): A collection of analyzers and refactorings for C# and Visual Basic on multiple platforms. *, **
- DotNetAnalyzers (GitHub): No additional comments available.
- “VBAnalyzers” search on GitHub: This search link was shared with me; need to spend some time investigating through the results to find the “best of the best”.
- Extending the My namespace
- Getting Started with My.Blogs: My.Blogs is a collection of sample code that will show you how you can easily provide programmatic access to weblogs in the applications you build. Full source code is provided along with Windows Forms, ASP.NET 2.0, and a Visual Studio 2005 Tools for Office Outlook Add-In.
- Package and deploy custom My extensions
- Customizing Projects and Extending My
- Extending the My Namespace
- VB Dev2Dev (GitHub)
- Karen Payne’s Visual Basic Getting Started (GitHub)
- AdvanceRichTextBox with line numbers (GitHub)
Where there’s a will…
Although Microsoft has done a great job with several technology stacks; there are a few areas where support falls a little short or just doesn’t seem to exist. This section points to areas where you can find “how to make it (mostly) work in VB”.
- Mohammad Hamdy Ghenem (@VBAndCs)
- ILMerge: ILMerge is a utility for merging multiple .NET assemblies into a single .NET assembly. It works on executables and DLLs alike and comes with several options for controlling the processing and format of the output.
- ILMerge-GUI, the .NET merger
- .NET whole application in a single .exe file? (stackoverflow)
- .NET Core - Note: Microsoft is committed to VB on .NET Core; but we are still currently in the very beginning stages of this. As such, most of the following related to .NET Core and WinForms isn’t (currently) related to VB.
- Getting started with WinForms for .NET Core
- Are your Windows Forms and WPF applications ready for .NET Core 3.0?(GitHub)
- Porting existing applications to .NET Core 3.0 (GitHub)
- How to port desktop applications to .NET Core 3.0
- How to Port Desktop Applications to .NET Core 3.0 (YouTube)
- .NET Core 3.0 Windows Forms Samples (GitHub)
- Performance Improvements in .NET Core 3.0
- Announciing .NET Core 3.0 Preview 5
- Introducing the new Microsoft.Data.SqlClient
- Visual Basic and .NET Standard
- Xamarin.Forms using Visual Basic.NET
- Visual Basic.NET in Xamarin iOS and Android
- Portable Visual Basic.NET
- Mobile Apps with Visual Basic & Xamarin.Forms
- Official Xamarin Samples (GitHub)
- Add full VB Support to Xamarin in 2018. (GitHub)
- Blazor - CAUTION: Seriously bleeding edge here… much of this isn’t VB.
- Web UI Alternatives
- VB6 vs VB.NET Language
- VB.NET Grammars and Snippets for Visual Studio Code
- Anthony D. Green
- Xavier Flix
- A program to convert C# source code to VB
- VbRogue - A community-based-project Rogue clone written in Visual Basic.
- Apress - Build Your Own .NET Language and Compiler by Edward G. Nilges (Code)
- Cory Smith
- ExpressionToString by Zev Spitz (GitHub): String representation of expression trees and expression tree parts + debugging visualizer.
- dotNetTips.Utility by David McCarter (GitHub): Common .NET code David McCarter has been writing since it was released that features C#, VB.NET, Portable Libraries, Logging, .NET Core.
- VBAsyncEnumerableHelper: Provides helpers for consuming BCL Async interfaces with VB.
Additional Resources / Related Information
- Microsoft WinForms .NET Core UI Framework (GitHub): Windows Forms is a .NET Core UI framework for building Windows desktop applications.
- Microsoft WPF .NET Core UI Framework (GitHub): WPF is a .NET Core UI framework for building Windows desktop applications.
- Microsoft UI Library (GitHub)
- VB and C# Equivalents
- C# to VB Conversion Tips
- Tangible Software Solutions Instant VB (Commercial): Instant VB produces great VB.NET code, saving you hours of painstaking work and valuable time.
- developerFusion Convert C# to VB.NET (Free): Simply paste in your C# code below, and this free utility will automatically convert it to its equivalent in VB.NET.
- Telerik Code Converter by Progress (Free): Convert code from C# to VB and from VB to C#.
- .NET Core Daily Builds – Servicing and future releases
- SQLite/SQL Server Compact Toolbox: SQLite / SQL Server Compact Toolbox extension for Visual Studio. This extension adds several features to help your embedded database development efforts: Scripting of tables and data, import from SQL Server and CSV files and much, much more.
- Mono Visual Basic support: Visual Basic.NET support in Mono. The Visual Basic runtime has been available for Mono for a while, and with the release of Mono 1.2.3, the Visual Basic support is complete, with the introduction of a self-hosting compiler and class libraries for Visual Basic development on any of the Mono supported systems.
- gRPC for .NET (GitHub)
- SlackNet: A comprehensive Slack API client for .NET.
- VSCode extension for CS-Script (GitHub):
- WasmWinforms (GitHub)
- NuGet Must Haves: Helps you find the best NuGet packages!