01 2018 档案
摘要:一般来说国内家用网络没有独立IP,而且可能你还在几层内网里面,这个时候如果想在外面访问自己家里搭建的网站服务,直接用 IP 访问显然不太现实,这个时候就可以使用 FRP 或者 ngrok 这样的工具来实现内网穿透。 这里我选择使用的是 FRP,NGROK 配置十分繁琐,而 FRP 的话一般来说几分钟
阅读全文
摘要:介绍了简单工厂与工厂方法之后,现在我们来看一下工厂三兄弟的最后一个 —— 抽象工厂。 那什么是抽象工厂呢? 抽象工厂模式(Abstract Factory Pattern):提供一个创建一系列相关或相互依赖对象 的接口,而无须指定它们具体的类。抽象工厂模式又称为Kit模式,属于对象创建型模式。 说起
阅读全文
摘要:在 ABP 框架当中所有库以及项目都是以模块的形式存在,所有模块都是继承自 这个抽象基类,每个模块都拥有四个生命周期。分别是: PreInitialze(); Initialize(); PostInitialize(): ShutDown(); 在初始化 ABP 框架的时候,通过 方法将启动模块作
阅读全文
摘要:ABP在其内部实现了工作单元模式,统一地进行事务与连接管理。 其核心就是通过 Castle 的 Dynamic Proxy 进行动态代理,在组件注册的时候进行拦截器注入,拦截到实现了 Unit Of Work 特性的方法进行操作,在执行完方法之后就会关闭掉工作单元。 其整体流程大概如下: 首先 UO
阅读全文
摘要:介绍完简单工厂之后,现在就来介绍一下工厂方法模式。之前简单工厂有一个弊端就是每次你需要产生新的产品的时候都需要对创建工厂类进行更改,如同前一篇文章说过的一样最后的后果是工厂类会变得十分庞大。 而工厂方法模式就是对简单工厂的进一步抽象,引入了抽象工厂,而具体的产品则由具体的产品工厂来进行构建。从而将创
阅读全文
摘要:在设计模式当中有三大工厂,分别是 、 、 这三种创建实例的设计模式,这里先从简单工厂将其,从名字就可以看出这是这三种工厂模式当中最为简单的一种实现。 简单工厂一般由以下几个对象组成: | 对象 | 作用 | | | | | 工厂类 | 负责创建产品 | | 抽象产品类 | 工厂创建出来的产品抽象 |
阅读全文
摘要:单例模式用于在整个软件系统当中保持唯一实例,在 C 当中最能够体现此概念的就是静态类,静态类的生命周期是跟随整个程序,并且在整个程序中仅保有一个实例。 不过在这里我们不再详细阐述单例模式与静态类有什么区别,如果有兴趣的话可以查看 "这篇博文" 和 "这篇博文" 。 这里说一下个人的理解: 单例模式可
阅读全文
摘要:公司出于某些原因需要自己在内部网络搭建一个私有的 Nuget 服务器,而且要运行在 Linux服务器上面。如果说 Windows 下搭建的话很简单,直接在项目当中引入 Nuget 的库就 OK,这儿的话 .Net Core 还没有相应的教程。 不过在万能的 Docker 上面找到了一个 Simple
阅读全文
摘要:在 DotNetCore 当中不再像 MVC5 那样可以通过 来获取到当前请求的上下文。 不过微软提供了一个 IHttpContextAccessor 来让我们访问当前请求的 Http 上下文,其定义 如下: 需要使用的话需要将其添加到 Ioc 容器当中,在 Startup 类的 Configure
阅读全文
摘要:1.Swagger UI 是什么? Swagger UI 是一个在线的 API 文档生成与测试工具,你可以将其集成在你的 API 项目当中。 支持 API 自动同步生成文档 高度自定义,可以自己扩展功能 前后端分离时方便前端进行 API 接口测试 2.如何应用? 这里仅介绍在 DotNetCore
阅读全文
摘要:SharpZipLib 是一个优秀的开源的第三方压缩库,可以通过这个库将一些导出的文件打包到一个 ZIP 文件当中供用户下载。 GitHub 地址: " https://github.com/icsharpcode/SharpZipLib " NuGet 地址: " https://www.nuge
阅读全文