微信扫一扫关注
如已关注,请回复“登录”二字获取验证码
欢迎来到桔子雨工作室官方网站!桔子雨工作室是一个软件和信息技术服务提供商,为中小微企业提供数字化价值。

在很多人的印象中,VB.NET 主要用于传统的 Windows 窗体应用。但事实上,VB.NET 完全可以用来构建现代化的 Web 应用!本文将介绍如何使用 VB.NET 结合 Kestrel(.NET 的高性能 Web 服务器)来开发 Web 服务。
Kestrel 是 ASP.NET Core 的默认跨平台 Web 服务器,它具有以下特点:
新建基于.net8的控制台程序后,修改项目文件(比如linuxTest.vbproj)把Microsoft.NET.Sdk改为Microsoft.NET.Sdk.Web保存即可启用VB.NET + Kestrel 进行web开发.
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
</PropertyGroup>
</Project>
Module Program
Sub Main()
Dim app = WebApplication.Create()
' 基础路由
app.MapGet("/", Function() "VB.NET WEBAPI Running")
app.Run()
End Sub
End Module
' 路径参数
app.MapGet("/users/{id}", Function(id As Integer) $"User {id}")
' 多级路径
app.MapGet("/posts/{id}/comments/{cid}",
Function(id As Integer, cid As Integer) $"Post {id}, Comment {cid}")
' 查询参数
app.MapGet("/search", Function(q As String, page As Integer) $"Search {q} Page {page}")
' 请求体参数
Public Class UserRequest
Public Property Name As String
Public Property Email As String
End Class
app.MapPost("/users", Function(req As UserRequest) $"Create {req.Name}")
Dim users As New List(Of User)
' 查
app.MapGet("/users", Function() Results.Ok(users))
' 增
app.MapPost("/users", Function(req As UserRequest)
users.Add(New User With {.Id = users.Count + 1, .Name = req.Name})
Return Results.Ok("Added")
End Function)
' 改
app.MapPut("/users/{id}", Function(id As Integer, req As UserRequest)
Dim user = users.FirstOrDefault(Function(u) u.Id = id)
If user Is Nothing Then Return Results.NotFound()
user.Name = req.Name
Return Results.Ok("Updated")
End Function)
' 删
app.MapDelete("/users/{id}", Function(id As Integer)
users.RemoveAll(Function(u) u.Id = id)
Return Results.Ok("Deleted")
End Function)
Module Program
Sub Main()
Dim app = WebApplication.Create()
' 路由配置
app.MapGet("/", Function() "VB.NET API")
app.MapGet("/users/{id}", Function(id As Integer) $"User {id}")
app.MapPost("/users", Function(req As UserRequest) $"Create {req.Name}")
app.Run("http://0.0.0.0:5000")
End Sub
End Module
Public Class UserRequest
Public Property Name As String
Public Property Email As String
End Class
Public Class User
Public Property Id As Integer
Public Property Name As String
End Class
10行核心代码搞定Web API开发!
既可以发布为独立程序,也可以发布到Linux上运行. 发布后的目录如下

Lilunx上运行的话记得也要安装运行时,可以用宝塔安装,然后将发布的文件夹里面的全部复制到网站项目目录下,新建net项目即可.如下图所示
