Home - wengys/Teleware.Foundation GitHub Wiki

Teleware.Foundation2

业务无关的基础库项目

特点

本基础库主要针对不同环境(web、console……)下的不同项目准备公共的基础环境,为不同项目的开发提供一致的开发体验。

基础环境开发主要遵循以下原则:

  1. 约定重于配置,特殊情况特殊处理
  2. 著名第三方组件倾向于直接使用(如autofac,只对初始化配置适当封装)
  3. 命名空间参考.net平台现有命名空间名,简化理解负担
  4. 对经常变化的组件(如数据库访问),进行深度包装

概要

本项目主要封装和具体业务无关的技术支撑组件,包括:

  1. Teleware.Foundation.Core

    主要技术相关组件接口定义以及常用辅助类

  2. Teleware.Foundation.Configuration

    基于microsoft.extensions.options的配置信息读取,支持

    • JSON格式的配置文件
    • Consul分布式配置文件服务
  3. Teleware.Foundation.Diagnostics.Loggers.NLog

    基于NLog的日志实现

  4. Teleware.Foundation.Hosting.Application

    控制台以及传统Asp.net项目的IEnvironment实现,参见运行环境相关

  5. Teleware.Foundation.Hosting.AspNetCore

    控制台以及传统Asp.net项目的IEnvironment实现,参见运行环境相关

  6. Teleware.Foundation.Serialization.Serializers.Json

    基于Newtonsoft.Json的IObjectSerializer实现,参见序列化/反序列化对象

  7. Teleware.Foundation.Serialization.Serializers.Compress

    基于DeflateStream的IObjectSerializer包装,将其他IObjectSerializer实现类的结果压缩/解压

  8. Teleware.Foundation.Data.EntityFramework

    基于EF6的数据层相关接口实现,不基于任何特定数据库

  9. Teleware.Foundation.Data.EntityFramework.Oracle

    Teleware.Foundation.Data.EntityFramework的Oracle数据库适配,参见Teleware.Foundation.Data.EntityFramework依赖说明

  10. Teleware.Foundation.Data.Extensions.Oracle

    Oracle相关数据库扩展方法(主要用于获取连接,直接操作Oracle数据库)

  11. Teleware.Foundation.Caching.CacheProviders.Memory

    基于内存的缓存实现,参见ICacheProvider

  12. Teleware.Foundation.AspNet.WebApi.Filters

    AspNet.WebApi相关预定义Filter,包括

    • 错误日志捕获
    • UnitOfWork提交
  13. Teleware.Foundation.AspNetCore.MVC.Filters[TBD]

模块引入

约定各个模块的Module类(如Teleware.Foundation.Core.Module)为autofac注册模块,使用模块时,在autofac中注册此模块即可

主要第三方组件

  1. autofac

  2. Newtonsoft.Json

  3. Microsoft.Extensions.Options

  4. Microsoft.Extensions.Configuration

  5. Microsoft.Extensions.Caching.Memory

  6. EntityFramework6

  7. Oracle.ManagedDataAccess

DEMO

请参考目录下Playground.*相关项目

⚠️ **GitHub.com Fallback** ⚠️