# LightWadf **Repository Path**: UMPV3/LightWadf ## Basic Information - **Project Name**: LightWadf - **Description**: LightWadf(Light Web Application Development Framework)是一个基于ASP.NET的轻量级 Web 应用开发框架。 - **Primary Language**: C# - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2017-01-03 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### LightWadf-REST 本项目旨在为中小型 ASP.NET 应用提供一个轻量级开发框架 目前本项目生成的 dll 文件只有 20+K 另外依赖了少量的外部类库 此分支是为了给单纯的 RESTful 项目而将 Razor 相关的引用都去除,以缩小体积,也避免了不必要的引用。 若在此分支看到 Razor 相关的内容,请自行忽视。 ### 特性 - 自定义路由,不像 .NET MVC 那样,控制器的名称一定要作为路由的一部分,参数可作为路由的一部分,即可以从路由中提取出参数 - 灵活的过滤器,过滤器以 Attribute 的形式标记在处理器或方法上方 - 灵活的处理方法,处理器中的逻辑处理方法只要求传入 HttpContext 参数,(Dictinory 参数在定义了参数化的路由后才会使用到),返回值不限定类型 - 可处理多种返回结果,虽然返回值不限定类型,但目前框架会进行专门处理的返回类型是有限的,FileResult、HtmlResult、JsonResult、RedirectResult(这些类型在 LightWadf.Result 命名空间下) - 处理器是线程安全的,无需考虑并发请求的情况 ### 启动 首先添加引用 第一种方法:将 LightWadf 项目添加到解决方案下,然后引用整个项目 第二种方法:工具栏选择工具菜单->NuGet 包管理器->程序包管理器控制台,输入 Install-Package LightWadf-REST 然后添加以下配置 ``` ``` 接着在处理器命名空间下创建处理器 ``` public class HomeProcessor : AbstractProcessor { public override void InitRouteRule() { this.AddRouteRule("/", "Index", this.Index); this.AddRouteRule("/hello", "Hello", this.Hello); } /// /// / 默认路由样例 /// 过滤器样例 /// /// /// [TestFilter] public string Index(HttpContext context) { return "index"; } /// /// 返回 string 类型样例 /// /// /// public string Hello(HttpContext context) { context.Response.Write("test "); return "hello"; } } ``` ### LightWadf-REST.Core 目前只有 LightWadf-REST 支持 ASP.NET Core 版本 LightWadf 依赖于 RazorEngine,而 RazorEngine 在 Nuget 上还未有 ASP.NET Core 版本 而且目前也没找到可替代的方案,所以 LightWadf 暂时不支持 ASP.NET Core 版本 **依赖** ``` { "dependencies": { "Microsoft.Extensions.Caching.Memory": "1.0.0", "LightWadf-REST.Core": "1.0.0-*" } } ``` 在此简单说明:Demo.Core 项目的 project.json 中引用的是 LightWadf.Core,这是因为直接引用项目的原因;而需要引用 Memory 的原因是需要在 Startup 中启用缓存 **启动配置** ``` public class Startup { public void ConfigureServices(IServiceCollection services) { // 引用 Microsoft.Extensions.Caching.Memory 注册 caching, session 服务 services.AddDistributedMemoryCache(); } public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { loggerFactory.AddConsole(); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } // 注册中间件 app.UseHandlerMiddleware(env); } } ``` ### 注意 有时候项目更新,可能会忘记更新 README.md,因此建议对照 Demo 项目构建项目。