Snail 1.10.36

dotnet add package Snail --version 1.10.36
                    
NuGet\Install-Package Snail -Version 1.10.36
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Snail" Version="1.10.36" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Snail" Version="1.10.36" />
                    
Directory.Packages.props
<PackageReference Include="Snail" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Snail --version 1.10.36
                    
#r "nuget: Snail, 1.10.36"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Snail@1.10.36
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Snail&version=1.10.36
                    
Install as a Cake Addin
#tool nuget:?package=Snail&version=1.10.36
                    
Install as a Cake Tool

.net开源项目,一些基础类库项目 项目下所有类库共用一个README.md文件,具体类库参照项目介绍

  1. 项目文档:https://www.yuque.com/snail-devx/.net
  2. 更新说明:https://www.yuque.com/snail-devx/.net/stqfep9vlhtaswnb
  3. 仓库地址:https://github.com/snail-devx/Snail.NET

一、项目介绍

分类 项目 简介 备注
系统扩展 Snail.Utilities 工具类库 定义基础接口、对象;对系统功能的二次扩展和助手类
抽象层 Snail.Abstractions 抽象层 功能抽象层,包含接口扩展方法等,着重业务抽象,仅数据实体抽象放到Utilities
Snail.Aspect 切面层 面向抽象层的切面编程,实现方法拦截,参数验证;并对Cache、Http等提供代码自动生成
实现层 Snail 实现库 Snail.Abstractions的默认实现
Snail.Logger 日志库 Snail.Abstractions中Logging日志中的ILogProvider具体实现,默认Log4Net
Snail.RabbitMQ 针对RabbitMQ封装 Snail.Abstractions中Message消息中的IMessageProvider的RabbitMQ实现
Snail.Redis 针对Redis封装 Snail.Abstractions中分布式缓存、分布式并发锁的Redis实现
Snail.WebApp WebApp应用库 Snail.Abstractions中IApplication接口针对WebApi应用实现,提供基础过滤器、中间件等
数据库实现层 Snail.Elastic ElasticSearch数据库封装 Snail.Abstractions中Database数据库IDbProvider相关实现
Snail.Mongo MongoDb数据库封装 Snail.Abstractions中Database数据库IDbProvider相关实现
Snail.SqlCore 关系型数据库核心封装 Snail.Abstractions中Database数据库IDbProvider相关实现
Snail.MySql MySql数据库封装 Snail.Abstractions中Database数据库IDbProvider相关实现
Snail.PostgreSql PostgreSql数据库封装 Snail.Abstractions中Database数据库IDbProvider相关实现

二、运行环境

进行功能验证时,需要使用到一些三方服务;可使用提供的 Compose.yaml 进行一键部署

  1. 基础服务:redis、rabbitmq
  2. 数据库:mongodb、mysql、postgresql、elasticsearch

1. Docker部署

  • 执行如下命令:docker compose -f Compose.yaml up -d
  • 初次启动时,推荐 docker compose -f Compose.yaml up 更方便的查看部署状态和日志信息
    # 上载项目:自动创建服务容器,启动容器
    docker compose  -f Compose.yaml up
    # 下载项目:停止服务容器,删除容器、数据、网络等
    docker compose  -f Compose.yaml down
    # 停止项目:停止服务容器
    docker compose  -f Compose.yaml stop
    # 启动项目:启动服务容器,确保容器已存在
    docker compose  -f Compose.yaml start
    
    

2. 数据库初始化

进行数据库测试时,需要先初始化对应数据库下的数据表

1. ElasticSearch

下面语句为 Kibana 中执行,需要在 Compose.yaml 在解注释 Kibana 服务

注意需要先在 ElasticSearch 服务重置 kibana_system 密码,再解注释

DELETE snail_testroutingmodel
PUT snail_testroutingmodel
{
    "mappings": {
    "dynamic": false,
    "_routing": {"required": true}, 
    "properties": {
        "Id":{"type": "keyword"},
        "String":{"type": "wildcard"},
        "Name":{"type": "wildcard"}
    }
    },
    "settings": {
    "index.refresh_interval": "200ms"
    }
}
DELETE snail_testmodel
PUT snail_testmodel
{
    "mappings": {
    "dynamic": false,
    "properties": {
        "Id":{"type": "keyword"},
        "String":{"type": "wildcard"},
        "ParentName":{"type": "wildcard"},
        "Special":{"type": "wildcard"},
        "IntValue":{"type": "integer"},
        "IntNull":{"type": "integer"},
        "Bool":{"type": "boolean"},
        "BoolNull":{"type": "boolean"},
        "Char":{"type": "keyword"},
        "CharNull":{"type": "keyword"},
        "DateTime":{"type": "date"},
        "DateTimeNull":{"type": "date"},
        "NodeType":{"type": "integer"},
        "NodeTypeNull":{"type": "integer"},
        "MyOverride":{"type": "wildcard"}
    }
    },
    "settings": {
    "index.refresh_interval": "200ms"
    }
}

2. MySql

  • 新建数据库:Test 选择 utf8mb4 作为字符集
  • 建表语句:
-- 数据库名称 切换
use Test;

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for Snail_TestRoutingModel
-- ----------------------------
DROP TABLE IF EXISTS `Snail_TestRoutingModel`;
CREATE TABLE `Snail_TestRoutingModel`  (
    `Id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
    `Routing` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
    `Name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Table structure for Snail_TestModel
-- ----------------------------
DROP TABLE IF EXISTS `Snail_TestModel`;
CREATE TABLE `Snail_TestModel`  (
    `Id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
    `String` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
    `Special` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
    `IntValue` int(255) NOT NULL,
    `IntNull` int(255) NULL DEFAULT NULL,
    `Bool` bit(1) NOT NULL,
    `BoolNull` bit(1) NULL DEFAULT NULL,
    `Char` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
    `CharNull` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
    `DateTime` datetime NOT NULL,
    `DateTimeNull` datetime NULL DEFAULT NULL,
    `NodeType` int(255) NOT NULL,
    `NodeTypeNull` int(255) NULL DEFAULT NULL,
    `ParentName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
    `MyOverride` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
    PRIMARY KEY (`Id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;

SET FOREIGN_KEY_CHECKS = 1;

3. Postgresql

  • 新建数据库:Test
  • 建表语句:
DROP TABLE IF EXISTS "public"."Snail_TestModel";
CREATE TABLE "public"."Snail_TestModel" (
  "Id" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
  "String" varchar(255) COLLATE "pg_catalog"."default",
  "ParentName" varchar(255) COLLATE "pg_catalog"."default",
  "Special" varchar(255) COLLATE "pg_catalog"."default",
  "IntValue" int4 NOT NULL,
  "IntNull" int4,
  "Char" char(1) COLLATE "pg_catalog"."default" NOT NULL,
  "CharNull" char(1) COLLATE "pg_catalog"."default",
  "DateTime" date NOT NULL,
  "DateTimeNull" date,
  "NodeType" int4 NOT NULL,
  "NodeTypeNull" int4,
  "MyOverride" varchar(255) COLLATE "pg_catalog"."default",
  "Bool" bool NOT NULL,
  "BoolNull" bool
)
;
-- ----------------------------
-- Primary Key structure for table Snail_TestModel
-- ----------------------------
ALTER TABLE "public"."Snail_TestModel" ADD CONSTRAINT "snail_testmodel_pkey" PRIMARY KEY ("Id");


-- ----------------------------
-- Table structure for Snail_TestRoutingModel
-- ----------------------------
DROP TABLE IF EXISTS "public"."Snail_TestRoutingModel";
CREATE TABLE "public"."Snail_TestRoutingModel" (
  "Id" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
  "Routing" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
  "Name" varchar(255) COLLATE "pg_catalog"."default"
)
;

-- ----------------------------
-- Primary Key structure for table Snail_TestRoutingModel
-- ----------------------------
ALTER TABLE "public"."Snail_TestRoutingModel" ADD CONSTRAINT "Snail_TestRoutingModel_pkey" PRIMARY KEY ("Id");
Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (6)

Showing the top 5 NuGet packages that depend on Snail:

Package Downloads
Snail.SqlCore

关系型数据库核心基础类库,提供sql助手类方法和Snail中Database的抽象实现

Snail.Mongo

Snail中Database相关功能的MongoDB实现

Snail.RabbitMQ

Snail中Message相关功能的RabbitMQ实现

Snail.Redis

Snail中Distribution相关功能的Redis实现,如分布式并发锁和分布式缓存

Snail.WebApp

Snail中分装的web应用,集成webapi常用服务和中间件

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.10.36 174 5/24/2026
1.10.35 174 5/19/2026
1.10.34 170 5/16/2026
1.10.33 170 5/16/2026
1.10.32 185 5/13/2026
1.10.31 150 4/28/2026
1.10.30 154 4/11/2026
1.10.29 155 4/1/2026
1.10.28 150 3/30/2026
1.10.27 149 3/30/2026
1.10.26 160 3/27/2026
1.10.25 178 1/22/2026
1.10.24 172 1/22/2026
1.10.23 164 1/20/2026
1.10.22 166 1/18/2026
1.10.21 160 1/16/2026
1.10.20 168 1/12/2026
1.10.19 169 1/11/2026
1.10.18 168 1/4/2026
1.10.17 170 1/3/2026
Loading failed