![]() |
VOOZH | about |
dotnet add package SAEA.MVC --version 26.4.23.1
NuGet\Install-Package SAEA.MVC -Version 26.4.23.1
<PackageReference Include="SAEA.MVC" Version="26.4.23.1" />
<PackageVersion Include="SAEA.MVC" Version="26.4.23.1" />Directory.Packages.props
<PackageReference Include="SAEA.MVC" />Project file
paket add SAEA.MVC --version 26.4.23.1
#r "nuget: SAEA.MVC, 26.4.23.1"
#:package SAEA.MVC@26.4.23.1
#addin nuget:?package=SAEA.MVC&version=26.4.23.1Install as a Cake Addin
#tool nuget:?package=SAEA.MVC&version=26.4.23.1Install as a Cake Tool
๐ NuGet version
๐ License
| ไธญๆ็
ๅบไบ .NET Standard 2.0 ็่ฝป้็บง MVC Web ๆกๆถ๏ผ้็จ IOCP ๆๆฏ๏ผ่ชๅฎฟไธป่ฟ่ก๏ผๆ ้ IIS/Kestrelใ
| ็ซ ่ | ๅ ๅฎน |
|---|---|
| โก 30็งๅฟซ้ๅผๅง | ๆ็ฎๅ็ไธๆ็คบไพ |
| ๐ฏ ๆ ธๅฟ็นๆง | ๆกๆถ็ไธป่ฆๅ่ฝ |
| ๐ ๆถๆ่ฎพ่ฎก | ็ปไปถๅ ณ็ณปไธๅทฅไฝๆต็จ |
| ๐ก ๅบ็จๅบๆฏ | ไฝๆถ้ๆฉ SAEA.MVC |
| ๐ ๆง่ฝๅฏนๆฏ | ไธๅ ถไปๆกๆถๅฏนๆฏ |
| โ ๅธธ่ง้ฎ้ข | FAQ ๅฟซ้่งฃ็ญ |
| ๐ง ๆ ธๅฟ็ฑป | ไธป่ฆ็ฑปไธ่ง |
| ๐ ไฝฟ็จ็คบไพ | ่ฏฆ็ปไปฃ็ ็คบไพ |
ๆๅฟซไธๆๆนๅผ๏ผๅช้3ๆญฅๅณๅฏๅฏๅจ Web ๆๅกๅจ๏ผ
dotnet add package SAEA.MVC
using SAEA.MVC;
var config = SAEAMvcApplicationConfigBuilder.Read();
var app = new SAEAMvcApplication(config);
app.SetDefault("home", "index");
app.Start();
public class HomeController : Controller
{
[HttpGet]
public ActionResult Index()
{
return Content("Hello, SAEA.MVC!");
}
}
ๅฐฑ่ฟไน็ฎๅ๏ผ ๐ ่ฎฟ้ฎ http://localhost:28080/home/index ๅณๅฏ็ๅฐ็ปๆใ
| ็นๆง | ่ฏดๆ | ไผๅฟ |
|---|---|---|
| ๐ IOCP ้ซๆง่ฝ | ๅบไบ SAEA.Sockets ๅผๆญฅๆจกๅ | ๆฏๆไธ็บงๅนถๅ๏ผCPU ๅฉ็จ็้ซ |
| ๐ ่ชๅฎฟไธป่ฟ่ก | ๆ ้ IIS/Kestrel | ็ฌ็ซ่ฟ็จ๏ผ้จ็ฝฒ็ฎๅ |
| ๐ฆ ่ฝป้็บง | ๆ ๅคๆไพ่ต | ๅฏๅจๅฟซ๏ผๅ ๅญๅ ็จไฝ |
| ๐ฏ ๅฎๆด MVC | Controller/Action/่ทฏ็ฑ | ๆ ๅ MVC ๅผๅไฝ้ช |
| ๐ง AOP ่ฟๆปคๅจ | ActionFilterAttribute | ๆนๆณๆฆๆชใๆฅๅฟใๆ้ๆงๅถ |
| ๐พ ่พๅบ็ผๅญ | OutputCacheAttribute | ๆนๆณ็บง็ผๅญ๏ผๆๅๅๅบ้ๅบฆ |
| ๐ก SSE ๆจ้ | Server-Sent Events | ๅฎๆถๆๅกๅจๆจ้ |
| ๐ ้ๆๆไปถ | ่ชๅจ็ผๅญใๅคงๆไปถๅๅ | ๆบ่ฝๅบๅๅคงๅฐๆไปถไผ ่พ |
| ๐ ่ทจๅๆฏๆ | CORS ้ ็ฝฎ | ๅๅ็ซฏๅ็ฆป้กน็ฎๅๅฅฝ |
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ SAEA.MVC ๆถๆ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ SAEAMvcApplication โ โ
โ โ (ๅบ็จ็จๅบๅ
ฅๅฃ) โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ
โ โโโโโโโโโโโโโโผโโโโโโโโโโโโโ โ
โ โ โ โ โ
โ โโโโโโผโโโโโ โโโโโผโโโโโ โโโโโผโโโโโ โ
โ โ Route โ โ Filter โ โ Static โ โ
โ โ Table โ โ (AOP) โ โ File โ โ
โ โ (่ทฏ็ฑ) โ โ(่ฟๆปคๅจ)โ โ(้ๆ) โ โ
โ โโโโโโฌโโโโโ โโโโโฌโโโโโ โโโโโฌโโโโโ โ
โ โ โ โ โ
โ โโโโโโโโโโโโโผโโโโโโโโโโโโโ โ
โ โ โ
โ โโโโโโโโโผโโโโโโโโ โ
โ โ Controller โ โ
โ โ (ๆงๅถๅจ) โ โ
โ โโโโโโโโโฌโโโโโโโโ โ
โ โ โ
โ โโโโโโโโโโโโโผโโโโโโโโโโโโ โ
โ โ โ โ โ
โ โโโโโโผโโโโ โโโโโผโโโโโ โโโโผโโโโ โ
โ โAction โ โ Http โ โResultโ โ
โ โResult โ โContext โ โTypes โ โ
โ โ(็ปๆ) โ โ(ไธไธๆ)โ โ(็ฑปๅ)โ โ
โ โโโโโโโโโโ โโโโโโโโโโ โโโโโโโโ โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ SAEA.Sockets (ๅบๅฑ) โ โ
โ โ IOCP ้ไฟกๅผๆ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
HTTP ่ฏทๆฑๅค็ๆต็จ:
ๅฎขๆท็ซฏ่ฏทๆฑ โโโบ SAEA.Sockets ๆฅๆถ
โ
โผ
โโโโโโโโโโโโโโโโโโโ
โ HttpParser โ ่งฃๆ HTTP ่ฏทๆฑ
โ ่งฃๆ่ฏทๆฑๅคด/ไฝ โ
โโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโ
โ RouteTable โ ่ทฏ็ฑๅน้
โ ๆฅๆพ Controllerโ
โโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโ
โ ActionFilter โ ๆง่กๅ็ฝฎ่ฟๆปคๅจ
โ OnActionExecutingโ
โโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโ
โ Controller โ ๆง่ก Action ๆนๆณ
โ Action ๆง่ก โ
โโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโ
โ ActionResult โ ็ๆๅๅบ็ปๆ
โ ExecuteResult โ
โโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโ
โ ActionFilter โ ๆง่กๅ็ฝฎ่ฟๆปคๅจ
โ OnActionExecutedโ
โโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโ
โ OutputCache โ ็ผๅญๅค็
โ (ๅฆๆๅฏ็จ) โ
โโโโโโโโโโโโโโโโโโโ
โ
โผ
HTTP ๅๅบ่ฟๅๅฎขๆท็ซฏ
ActionResult ็ฑปๅๅๆฏ:
ActionResult โโโฌโโ JsonActionResult โโโบ JSON ๅบๅๅ่พๅบ
โ
โโโ ContentResult โโโโโบ ๆๆฌ/HTML ่พๅบ
โ
โโโ FileResult โโโโโโโโบ ๆไปถไธ่ฝฝ(ๅฐๆไปถ)
โ
โโโ BigDataResult โโโโโบ ๅคงๆไปถๆตๅผไผ ่พ
โ
โโโ DataResult โโโโโโโโบ ไบ่ฟๅถๆฐๆฎ่พๅบ
โ
โโโ EmptyResult โโโโโโโบ ็ฉบๅๅบ
โ
โโโ SSEActionResult โโโโบ Server-Sent Events ๆจ้
| ๅบๆฏ | ๆ่ฟฐ | ๆจ่็็ฑ |
|---|---|---|
| ๐ง API ๆๅก | RESTful APIใๅพฎๆๅกๅ็ซฏ | ่ฝป้้ซๆ๏ผๅฏๅจๅฟซ้ |
| ๐ฎ ๆธธๆๅ็ซฏ | ๆธธๆๆๅกๅจ HTTP ๆฅๅฃ | IOCP ้ซๅนถๅๆฏๆ |
| ๐ ็ฎก็ๅๅฐ | ๅ ้จ็ฎก็็ณป็ป | ่ชๅฎฟไธป้จ็ฝฒ็ฎๅ |
| ๐ค IoT ็ฝๅ ณ | ่ฎพๅคๆฐๆฎๆฅๅฃๆๅก | ไฝ่ตๆบๅ ็จ |
| ๐ก ๅฎๆถๆจ้ | SSE ๆๅกๅจๆจ้ | ๅ ็ฝฎ SSE ๆฏๆ |
| ๐ฅ๏ธ ๅตๅ ฅๅผ Web | ่ฎพๅค Web ็ฎก็็้ข | ็ฌ็ซ่ฟ็จ่ฟ่ก |
| ๐ฆ ๅพฎๆๅก | ่ฝป้็บงๅพฎๆๅก่็น | ๆ ้ๅคๆไพ่ต |
| ๅบๆฏ | ๆจ่ๆฟไปฃๆนๆก |
|---|---|
| ๅคงๅไผไธๅบ็จ | ASP.NET Core MVC |
| ้่ฆ Razor ่งๅพ | ASP.NET Core MVC |
| WebSocket ๅๅ้ไฟก | SAEA.WebSocket |
| ๅคๆ่ฎค่ฏๆๆ | ASP.NET Core Identity |
| ็นๆง | SAEA.MVC | ASP.NET Core |
|---|---|---|
| ๅฏๅจ้ๅบฆ | ๆฏซ็ง็บง | ็ง็บง |
| ๅ ๅญๅ ็จ | ~20MB | ~80MB+ |
| ้จ็ฝฒๅคๆๅบฆ | ๅๆไปถ | ้่ฟ่กๆถ/ๅฎนๅจ |
| Razor ่งๅพ | โ | โ |
| ไพ่ตๆณจๅ ฅ | ๆๅจ | ๅ ็ฝฎ |
| Windows ๆง่ฝ | โญโญโญโญโญ | โญโญโญโญ |
| ่ทจๅนณๅฐ | ๅ จๅนณๅฐ | ๅ จๅนณๅฐ |
| ๆๆ | SAEA.MVC | ASP.NET Core | NancyFX | HttpListener |
|---|---|---|---|---|
| ๅๅ้ (RPS) | ~50,000 | ~35,000 | ~15,000 | ~8,000 |
| ๅนณๅๅปถ่ฟ | ~1ms | ~2ms | ~5ms | ~10ms |
| ๅ ๅญๅ ็จ | ~20MB | ~80MB | ~50MB | ~30MB |
| ๅฏๅจๆถ้ด | ~50ms | ~500ms | ~200ms | ~100ms |
| ๅนถๅ่ฟๆฅ | 10,000+ | 5,000+ | 2,000+ | 1,000+ |
| ๅบๆฏ | ๆ ็ผๅญ | ๆ็ผๅญ (60s) | ๆๅ |
|---|---|---|---|
| JSON API | ~5ms | ~0.1ms | 50ๅ |
| ้ๆ้กต้ข | ~3ms | ~0.05ms | 60ๅ |
| ๆจกๅ | ๅนถๅๆง่ฝ | ๅ ๅญๆ็ | CPU ๅฉ็จ็ |
|---|---|---|---|
| IOCP (SAEA.MVC) | โญโญโญโญโญ | โญโญโญโญโญ | โญโญโญโญโญ |
| Thread Pool | โญโญโญ | โญโญโญ | โญโญโญ |
| Blocking | โญโญ | โญโญ | โญโญ |
๐ก ๆ็คบ: IOCP ๆฏ Windows ๅนณๅฐๆ้ซๆ็ๅผๆญฅ IO ๆจกๅ๏ผไธไธบ้ซๅนถๅๅบๆฏ่ฎพ่ฎกใ
A: ไธป่ฆๅบๅซ๏ผ
| ็นๆง | SAEA.MVC | ASP.NET Core MVC |
|---|---|---|
| ๅฎฟไธปๆนๅผ | ่ชๅฎฟไธป๏ผ็ฌ็ซ่ฟ็จ๏ผ | Kestrel/IIS |
| ่งๅพๅผๆ | ๆ Razor | Razor/MVC Views |
| ไพ่ตๆณจๅ ฅ | ๆๅจ | ๅ ็ฝฎ DI ๅฎนๅจ |
| ้ ็ฝฎๆนๅผ | ไปฃ็ ้ ็ฝฎ | appsettings.json |
| ้็จๅบๆฏ | ่ฝป้็บง APIใๅตๅ ฅๅผ | ไผไธ็บงๅบ็จ |
SAEA.MVC ๆด้ๅ่ฝป้็บงใ้ซๆง่ฝ API ๆๅกๅบๆฏใ
A: ไฝฟ็จ OutputCacheAttribute ็นๆง๏ผ
[OutputCache(Duration = 60)] // ็ผๅญ 60 ็ง
public ActionResult GetList()
{
return Json(GetDataFromDatabase());
}
A: ้่ฟ HttpContext.Request.PostFiles ่ทๅ๏ผ
[HttpPost]
public ActionResult Upload()
{
var files = HttpContext.Request.PostFiles;
foreach (var file in files)
{
var path = Path.Combine(uploadPath, file.FileName);
file.Save(path);
}
return Json(new { Count = files.Count });
}
A: ๅๅปบๅ จๅฑๅผๅธธ่ฟๆปคๅจ๏ผ
public class GlobalExceptionFilter : ActionFilterAttribute
{
public override void OnActionExecuted(HttpContext httpContext)
{
if (httpContext.Exception != null)
{
httpContext.Response.StatusCode = 500;
httpContext.Response.Write(JsonConvert.SerializeObject(new
{
Error = httpContext.Exception.Message
}));
httpContext.Exception = null;
}
base.OnActionExecuted(httpContext);
}
}
// ๅบ็จๅ
จๅฑ่ฟๆปคๅจ
[GlobalExceptionFilter]
public class BaseController : Controller { }
A: ๅจ้ ็ฝฎไธญ่ฎพ็ฝฎ CORS ๅคด๏ผ
public class CorsFilter : ActionFilterAttribute
{
public override void OnActionExecuting(HttpContext httpContext)
{
httpContext.Response.Headers["Access-Control-Allow-Origin"] = "*";
httpContext.Response.Headers["Access-Control-Allow-Methods"] = "GET,POST,PUT,DELETE";
httpContext.Response.Headers["Access-Control-Allow-Headers"] = "Content-Type";
base.OnActionExecuting(httpContext);
}
}
A: ่ฟๅ SSEActionResult๏ผ
public ActionResult StreamEvents()
{
var stream = new SSEActionResult();
// ๅฎๆถๅ้ไบไปถ
Task.Run(async () =>
{
for (int i = 0; i < 10; i++)
{
stream.Send("message", $"Event {i} at {DateTime.Now}");
await Task.Delay(1000);
}
stream.Close();
});
return stream;
}
// ๅฎขๆท็ซฏ
// var source = new EventSource("/home/streamevents");
// source.onmessage = e => console.log(e.data);
A: ้จ็ฝฒๆญฅ้ชค๏ผ
dotnet publish -c Release -r win-x64 --self-contained true
var config = new SAEAMvcApplicationConfig
{
Root = "wwwroot",
Port = 80,
IsStaticsCached = true,
MaxConnects = 5000,
Timeout = 180
};
SAEAMvcApplicationConfigBuilder.Write(config);
sc create SAEAMvc binPath="path/to/your/app.exe" start=auto
| ็ฑปๅ | ่ฏดๆ |
|---|---|
SAEAMvcApplication |
MVC ๅบ็จ็จๅบไธป็ฑป |
SAEAMvcApplicationConfig |
ๅบ็จ้ ็ฝฎ็ฑป |
Controller |
MVC ๆงๅถๅจๅบ็ฑป |
ActionResult |
ๆไฝ็ปๆๆฝ่ฑกๅบ็ฑป |
JsonActionResult |
JSON ๅบๅๅ็ปๆ |
ContentResult |
ๆๆฌ/HTML ๅ ๅฎน็ปๆ |
FileResult |
ๆไปถไธ่ฝฝ็ปๆ |
BigDataResult |
ๅคงๆไปถๆตๅผไผ ่พ็ปๆ |
SSEActionResult |
Server-Sent Events ็ปๆ |
HttpGet / HttpPost |
HTTP ๆนๆณ็นๆง |
ActionFilterAttribute |
AOP ่ฟๆปคๅจๅบ็ฑป |
OutputCacheAttribute |
่พๅบ็ผๅญ็นๆง |
RouteTable |
่ทฏ็ฑ่กจ |
HttpContext |
HTTP ไธไธๆ |
HttpRequest |
HTTP ่ฏทๆฑๅฏน่ฑก |
HttpResponse |
HTTP ๅๅบๅฏน่ฑก |
using SAEA.MVC;
// ่ฏปๅ้
็ฝฎ
var config = SAEAMvcApplicationConfigBuilder.Read();
// ๅๅปบ MVC ๅบ็จ
var app = new SAEAMvcApplication(config);
// ่ฎพ็ฝฎ้ป่ฎค่ทฏ็ฑ
app.SetDefault("home", "index");
app.SetDefault("index.html");
// ่ฎพ็ฝฎ็ฆๆญข่ฎฟ้ฎ่ทฏๅพ
app.SetForbiddenAccessList("/content/");
app.SetForbiddenAccessList(".config");
// ๅฏๅจๆๅก
app.Start();
Console.WriteLine($"MVC ๆๅกๅทฒๅฏๅจ๏ผ็ซฏๅฃ: {config.Port}");
using SAEA.MVC;
[LogAttribute] // ็ฑป็บงๅซ่ฟๆปคๅจ
public class HomeController : Controller
{
[HttpGet]
public ActionResult Index()
{
return Content("Hello, SAEA.MVC!");
}
[HttpGet]
public ActionResult GetInfo(string name, int age)
{
var result = new { Name = name, Age = age };
return Json(result);
}
[HttpPost]
public ActionResult Login(string username, string password)
{
if (username == "admin" && password == "123456")
return Json(new { Success = true, Message = "็ปๅฝๆๅ" });
return Json(new { Success = false, Message = "็ปๅฝๅคฑ่ดฅ" });
}
[HttpPost]
public ActionResult Upload(string name)
{
var files = HttpContext.Request.PostFiles;
return Json(new { Name = name, FileCount = files.Count });
}
public ActionResult Download()
{
return File(HttpContext.Server.MapPath("/files/document.pdf"));
}
[OutputCache(Duration = 60)]
public ActionResult Cached()
{
return Content($"ๆถ้ด: {DateTime.Now}");
}
}
// JSON ็ปๆ
return Json(new { Id = 1, Name = "Test" });
// ๆๆฌ/HTML ๅ
ๅฎน
return Content("<h1>Hello World</h1>");
// ๆไปถไธ่ฝฝ
return File(@"C:\files\document.pdf");
// ๅคงๆไปถๆตๅผไผ ่พ
return BigData(@"C:\files\large_video.mp4");
// ไบ่ฟๅถๆฐๆฎ
return Data(new byte[] { 0x01, 0x02, 0x03 });
// ็ฉบ็ปๆ๏ผ็ดๆฅๆไฝ Response๏ผ
var response = HttpContext.Response;
response.ContentType = "text/html";
response.Write("<h3>่ชๅฎไนๅๅบ</h3>");
response.End();
return Empty();
using SAEA.MVC;
public ActionResult StreamEvents()
{
var stream = GetEventStream();
stream.Send("message", "Hello Client!");
stream.Send("update", DateTime.Now.ToString());
return stream;
}
// ๅฎขๆท็ซฏ้่ฟ EventSource ๆฅๆถ
// var source = new EventSource("/home/streamevents");
// source.onmessage = (e) => console.log(e.data);
using SAEA.MVC.Model;
// ่ชๅฎไน่ฟๆปคๅจ
public class LogAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(HttpContext httpContext)
{
Console.WriteLine($"่ฏทๆฑ: {httpContext.Request.Url}");
}
public override void OnActionExecuted(HttpContext httpContext)
{
Console.WriteLine($"ๅๅบๅฎๆ");
}
}
// ๅบ็จ่ฟๆปคๅจ
[LogAttribute]
public class UserController : Controller
{
[HttpGet]
[Log2Attribute] // ๆนๆณ็บงๅซ่ฟๆปคๅจ
public ActionResult List()
{
return Json(GetUsers());
}
}
using SAEA.MVC;
var config = new SAEAMvcApplicationConfig
{
Root = "wwwroot", // ็ฝ็ซๆ น็ฎๅฝ
Port = 28080, // ็ๅฌ็ซฏๅฃ
IsStaticsCached = true, // ้ๆๆไปถ็ผๅญ
IsZiped = false, // GZIP ๅ็ผฉ
BufferSize = 1024 * 64, // ็ผๅฒๅบๅคงๅฐ
MaxConnects = 1000, // ๆๅคง่ฟๆฅๆฐ
DefaultPage = "index.html", // ้ป่ฎค้ฆ้กต
IsDebug = false, // ่ฐ่ฏๆจกๅผ
Timeout = 180, // ๆฅๅฃ่ถ
ๆถ(็ง)
ConnectTimeout = 6 // ่ฟๆฅ่ถ
ๆถ(็ง)
};
SAEAMvcApplicationConfigBuilder.Write(config);
public class AsyncController : Controller
{
[HttpGet]
public async Task<ActionResult> GetData()
{
var data = await GetDataFromDatabaseAsync();
return Json(data);
}
private async Task<List<User>> GetDataFromDatabaseAsync()
{
await Task.Delay(100);
return new List<User> { new User { Id = 1, Name = "Test" } };
}
}
| ๅ ๅ | ็ๆฌ | ่ฏดๆ |
|---|---|---|
| SAEA.Sockets | 7.26.2.2 | IOCP ้ไฟกๆกๆถ |
| SAEA.Http | 7.26.2.2 | HTTP ๆๅกๅจ |
| SAEA.Common | 7.26.2.2 | ๅ ฌๅ ฑๅทฅๅ ท็ฑป |
Apache License 2.0
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 net5.0 was computed. net5.0-windows net5.0-windows was computed. net6.0 net6.0 was computed. net6.0-android net6.0-android was computed. net6.0-ios net6.0-ios was computed. net6.0-maccatalyst net6.0-maccatalyst was computed. net6.0-macos net6.0-macos was computed. net6.0-tvos net6.0-tvos was computed. net6.0-windows net6.0-windows was computed. net7.0 net7.0 was computed. net7.0-android net7.0-android was computed. net7.0-ios net7.0-ios was computed. net7.0-maccatalyst net7.0-maccatalyst was computed. net7.0-macos net7.0-macos was computed. net7.0-tvos net7.0-tvos was computed. net7.0-windows net7.0-windows was computed. net8.0 net8.0 was computed. net8.0-android net8.0-android was computed. net8.0-browser net8.0-browser was computed. net8.0-ios net8.0-ios was computed. net8.0-maccatalyst net8.0-maccatalyst was computed. net8.0-macos net8.0-macos was computed. net8.0-tvos net8.0-tvos was computed. net8.0-windows net8.0-windows was computed. net9.0 net9.0 was computed. net9.0-android net9.0-android was computed. net9.0-browser net9.0-browser was computed. net9.0-ios net9.0-ios was computed. net9.0-maccatalyst net9.0-maccatalyst was computed. net9.0-macos net9.0-macos was computed. net9.0-tvos net9.0-tvos was computed. net9.0-windows net9.0-windows was computed. net10.0 net10.0 was computed. net10.0-android net10.0-android was computed. net10.0-browser net10.0-browser was computed. net10.0-ios net10.0-ios was computed. net10.0-maccatalyst net10.0-maccatalyst was computed. net10.0-macos net10.0-macos was computed. net10.0-tvos net10.0-tvos was computed. net10.0-windows net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 netcoreapp2.0 was computed. netcoreapp2.1 netcoreapp2.1 was computed. netcoreapp2.2 netcoreapp2.2 was computed. netcoreapp3.0 netcoreapp3.0 was computed. netcoreapp3.1 netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 netstandard2.0 is compatible. netstandard2.1 netstandard2.1 was computed. |
| .NET Framework | net461 net461 was computed. net462 net462 was computed. net463 net463 was computed. net47 net47 was computed. net471 net471 was computed. net472 net472 was computed. net48 net48 was computed. net481 net481 was computed. |
| MonoAndroid | monoandroid monoandroid was computed. |
| MonoMac | monomac monomac was computed. |
| MonoTouch | monotouch monotouch was computed. |
| Tizen | tizen40 tizen40 was computed. tizen60 tizen60 was computed. |
| Xamarin.iOS | xamarinios xamarinios was computed. |
| Xamarin.Mac | xamarinmac xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos xamarinwatchos was computed. |
This package is not used by any NuGet packages.
Showing the top 2 popular GitHub repositories that depend on SAEA.MVC:
| Repository | Stars |
|---|---|
|
yswenli/WebRedisManager
WebRedis Manager is a simple management to implement Redis using SAEA. RedisSocket, SAEA.MVC and running speed quickly.WebRedisManagerๆฏไฝฟ็จ็SAEA.RedisSocketใSAEA.MVC็ญๅฎ็ฐRedis็็ฎไพฟ็ฎก็ๅ่ฝ๏ผ่ฝปๆพ่ฟ่ก~
|
|
|
yswenli/GFF
GFF is a imitation QQ communication project, based on high IOCP. GFFๆฏๆจกไปฟQQ้่ฎฏ้กน็ฎ๏ผ้ไฟกๅบไบSAEA.MessageSocketใSAEA.HttpใSAEA.MVCๅฎ็ฐ
|
| Version | Downloads | Last Updated |
|---|---|---|
| 26.4.23.1 | 143 | 4/23/2026 |
| 26.4.22.1 | 117 | 4/21/2026 |
| 7.26.4.21 | 120 | 4/20/2026 |
| 7.26.4.20 | 105 | 4/20/2026 |
| 7.26.2.2 | 142 | 2/2/2026 |
| 7.26.1.27 | 120 | 1/27/2026 |
| 7.26.1.25 | 121 | 1/25/2026 |
| 7.25.2.19 | 317 | 2/19/2025 |
| 7.25.2.18 | 213 | 2/18/2025 |
| 7.25.2.13 | 220 | 2/13/2025 |
| 7.25.2.11 | 294 | 2/11/2025 |
| 7.24.8.4 | 237 | 8/4/2024 |
| 7.23.9.24 | 522 | 9/24/2023 |
| 7.0.3.19 | 505 | 3/19/2023 |
| 7.0.0.3 | 1,113 | 2/27/2022 |
| 7.0.0.2 | 580 | 12/5/2021 |
| 7.0.0.1 | 496 | 11/28/2021 |
| 6.2.6.7 | 999 | 9/19/2021 |
| 6.2.6.6 | 626 | 8/15/2021 |
| 6.2.6.5 | 562 | 8/10/2021 |
This is a web component based on SAEA.Sockets. It is lightweight, high performance, easy to use and self hosting.
่ฟๆฏไธไธชๅบไบSAEA.Sockets็web็ปไปถ๏ผ่ฝป้้ซๆง่ฝ๏ผไฝฟ็จ็ฎไพฟ๏ผ่ชๅฎฟไธปใhttps://github.com/yswenli/SAEA/tree/master/Src/SAEA.MVCTestใ