Blog.Core/README.md

342 lines
13 KiB
Markdown
Raw Normal View History

2019-01-23 12:29:44 +08:00
[ENGLISH](https://github.com/anjoy8/Blog.Core/blob/master/README-en.md) | [中文版](https://github.com/anjoy8/Blog.Core/blob/master/README.md)
2018-12-31 21:15:44 +08:00
2018-12-03 11:47:30 +08:00
![Logo](https://github.com/anjoy8/Blog.Core/blob/master/Blog.Core/wwwroot/logocore.png)
2018-11-14 11:29:03 +08:00
2018-08-17 17:41:51 +08:00
2018-12-31 18:49:16 +08:00
从零开始搭建自己的前后端分离【 .NET Core2.1 Api + Vue 2.0 】框架目前是2.2版本,各个版本见分支。
2018-08-21 16:20:06 +08:00
2019-03-28 14:55:01 +08:00
如果你感觉看着这整个项目比较费劲我单抽出来了几个子Demo方便学习项目地址 [https://github.com/anjoy8/BlogArti](https://github.com/anjoy8/BlogArti)
2019-02-15 10:12:18 +08:00
这只是 .netCore 后端部分前端部分请看我的另三个Vue工程项目
2019-01-23 12:29:44 +08:00
2019-01-23 12:32:28 +08:00
 
 
 
2019-01-23 12:35:20 +08:00
 
2019-01-17 10:35:19 +08:00
2019-02-15 10:10:37 +08:00
|个人博客Vue版本|tBug项目Nuxt版本|VueAdmin管理后台(更新中)|
|-|-|-|
|[https://github.com/anjoy8/Blog.Vue](https://github.com/anjoy8/Blog.Vue)|[https://github.com/anjoy8/Nuxt.tBug](https://github.com/anjoy8/Nuxt.tBug)|[https://github.com/anjoy8/Blog.Admin](https://github.com/anjoy8/Blog.Admin)|
|[http://123.206.33.109:8077](http://123.206.33.109:8077)|[http://123.206.33.109:7090](http://123.206.33.109:7090)|[http://123.206.33.109:2364](http://123.206.33.109:2364)|
2019-01-17 10:35:19 +08:00
2019-01-19 18:39:27 +08:00
2018-10-10 11:17:35 +08:00
2019-01-23 12:35:20 +08:00
 
 
2019-01-09 11:03:10 +08:00
2019-01-02 14:58:42 +08:00
## Nuget Packages
| Package | NuGet Stable | Downloads |
| ------- | -------- | ------- |
| [Blog.Core.Webapi.Template](https://www.nuget.org/packages/Blog.Core.Webapi.Template/) | [![Blog.Core.Webapi.Template](https://img.shields.io/nuget/v/Blog.Core.Webapi.Template.svg)](https://www.nuget.org/packages/Blog.Core.Webapi.Template/) | [![Blog.Core.Webapi.Template](https://img.shields.io/nuget/dt/Blog.Core.Webapi.Template.svg)](https://www.nuget.org/packages/Blog.Core.Webapi.Template/) |
2018-10-29 16:17:00 +08:00
2019-01-23 12:37:18 +08:00
关于如何使用点击这里https://www.cnblogs.com/laozhang-is-phi/p/10205495.html
2019-03-28 23:33:41 +08:00
 
 
## 其他后端框架
目前一共开源四个框架项目,感兴趣的可以看看
|单层项目|简单仓储框架|仓储+服务+接口|DDD框架|
|-|-|-|-|
|CURD+Seed|CURD+Seed+DI|CURD+Seed+DI+AOP等|DDD+EFCore+DI+EventBus等|
|[NetCore-Sugar-Demo](https://github.com/anjoy8/NetCore-Sugar-Demo)|[Blog.SplRepository.Demo](https://github.com/anjoy8/Blog.SplRepository.Demo)|[Blog.Core](https://github.com/anjoy8/Blog.Core)|[ChristDDD](https://github.com/anjoy8/ChristDDD)|
2019-01-23 12:35:20 +08:00
 
 
2018-10-29 16:17:35 +08:00
2019-01-08 18:27:27 +08:00
## 给个星星! ⭐️
2018-10-29 16:17:35 +08:00
如果你喜欢这个项目或者它帮助你, 请给 Star~(辛苦星咯)
2018-10-29 16:17:00 +08:00
2018-10-10 11:17:35 +08:00
*********************************************************
2019-01-09 11:03:10 +08:00
## Tips
```
2018-12-25 14:54:14 +08:00
1【重要】、Blog.Core.FrameWork 项目是用T4模板生成文件的简单实现。如果有错误可以联系我
QQ群867095512
2018-12-06 11:35:25 +08:00
如果你不想处理这个错误,你可以先把项目卸载,不影响整体运行。
2018-12-05 17:08:43 +08:00
2018-11-22 13:11:45 +08:00
2019-03-14 19:17:35 +08:00
2【重要】、项目中有三个AOP的操作类分别是Redis缓存切面memory缓存切面、Log日志切面
你可以在自定义开关,对其进行是否启用,在 appsettings.json 中的:
"RedisCaching": {
"Enabled": false,
"ConnectionString": "127.0.0.1:6319"
},
"MemoryCachingAOP": {
"Enabled": true
},
"LogoAOP": {
"Enabled": false
},
3【重要】、如何你使用Redis需要安装Redis服务端安装和使用说明地址
2019-04-10 14:08:23 +08:00
https://www.cnblogs.com/laozhang-is-phi/p/9554210.html#autoid-3-4-0
2018-12-08 17:39:05 +08:00
2019-03-14 19:17:35 +08:00
4【重要+】、系统新增自动化生成数据库,和生成种子数据的功能,
2018-12-25 14:54:14 +08:00
在Blog.Core层中的 Progrm.cs 中,取消对 DBSeed.SeedAsync(myContext).Wait(); 的注释即可。
2019-03-22 23:01:55 +08:00
注意不要注释Blog.Core.Model层DBSeed -> SeedAsync -》 myContext.CreateTableByEntity(false, typ
2018-12-25 14:54:14 +08:00
2019-03-14 19:17:35 +08:00
5、如果你不想用CodeFirst 和种子数据可以用数据库表结构Sql文件在数据库里执行
2019-03-22 23:01:55 +08:00
在Blog.Core 项目下的 wwwroot 文件夹中Blog.Core.Table.sql表结构、Blog.Core.Table&Data.sql结构和数据
2019-03-15 10:37:17 +08:00
或者来群里,群文件的是最新的。
2018-11-12 11:50:46 +08:00
2019-03-08 17:05:02 +08:00
2019-03-14 19:17:35 +08:00
6、如果想单独查看关于【JWT授权】的相关内容可以在wwwroot 文件夹中找到【Autho.jwt.rar】我单拎出来的一个demo。
2019-03-08 17:05:02 +08:00
2019-03-29 11:17:11 +08:00
7、项目后期发布的时候可以有两个办法一种是dotnet的kestrel部署另一种是 IIS 发布部署,但是在发布的时候,
因为解耦了,所以会导致无法把 service.dll & repository.dll 拷贝到生成目录下,大家可以采用:
Blog.Core -> 属性 -> Build Events -> Post-build event command ->>>>
Copy "$(ProjectDir)bin\Debug\netcoreapp2.2\" "$(SolutionDir)Blog.Core\bin\Debug\"
2019-01-09 11:03:10 +08:00
```
2018-11-12 11:50:46 +08:00
*********************************************************
2018-12-27 18:20:29 +08:00
### 修改数据库连接字符串
2018-12-27 18:03:52 +08:00
2019-03-23 12:43:09 +08:00
注意修改完数据库连接字符串以后一定要F6重新编译项目或者重启项目。
2019-03-13 14:06:58 +08:00
1、在Blog.Core层 appsettings.json 中,配置自己的字符串
2018-12-27 18:20:29 +08:00
```
2019-03-13 14:06:58 +08:00
"SqlServer": {
"SqlServerConnection": "Server=.;Database=WMBlogDB;User ID=sa;Password=123;",
"ProviderName": "System.Data.SqlClient"
},
2018-12-27 18:20:29 +08:00
```
2018-12-27 18:03:52 +08:00
2019-03-22 22:55:48 +08:00
2、文章中有三个地方用到了数据库连接字符串
```
A、系统中使用 Blog.Core.Repository -> BaseDBConfig.cs
B、Seed数据库 Blog.Core.Model -> MyContext.cs
C、T4 模板 Blog.Core.FrameWork -> DbHelper.ttinclude
其实针对AB两个情况只需要配置 appsettings.json 即可
```
3、如果想使用T4模板在Blog.Core.FrameWork层的DbHelper.ttinclude 中,配置自己的字符串
2018-12-27 18:20:29 +08:00
```
2018-12-31 21:15:44 +08:00
public static readonly string ConnectionString = File.Exists(@"D:\my-file\dbCountPsw2.txt") ?
File.ReadAllText(@"D:\my-file\dbCountPsw2.txt").Trim(): "server=.;uid=sa;pwd=sa;database=BlogDB";
2018-12-27 18:20:29 +08:00
```
2018-12-27 18:03:52 +08:00
*****************************************************
2018-12-27 18:20:29 +08:00
### 三大平台同步直播
2018-08-21 16:20:28 +08:00
2018-08-21 16:20:06 +08:00
简 书https://www.jianshu.com/notebooks/28621653
2018-08-21 16:20:28 +08:00
2018-08-21 16:20:06 +08:00
博客园https://www.cnblogs.com/laozhang-is-phi/
2018-08-21 16:20:28 +08:00
2018-08-21 16:20:06 +08:00
CSDNhttps://blog.csdn.net/baidu_35726140
2018-08-27 17:52:59 +08:00
2018-08-27 17:52:50 +08:00
码云https://gitee.com/laozhangIsPhi/Blog.Core
2018-08-22 16:39:03 +08:00
2019-01-09 11:03:10 +08:00
```
```
2018-08-22 16:39:03 +08:00
2018-10-11 18:42:07 +08:00
<div class="allindex">
2019-01-09 11:03:10 +08:00
<h2 id="abp框架学习目录如下">.NetCore与Vue 框架学习目录如下</h2>
2018-10-11 18:42:07 +08:00
<ul>
<li>
2018-12-19 14:49:36 +08:00
<h3 id="autoid-2-1-0">后端 .net core 概览</h3>
2018-10-11 18:42:07 +08:00
<ul>
2018-12-19 14:49:36 +08:00
<li><a id="post_title_link_9495620" href="https://www.cnblogs.com/laozhang-is-phi/p/9495620.html">框架之二 || 后端项目搭建<br></a></li>
2018-10-11 18:42:07 +08:00
<li><a id="post_title_link_9495624" href="https://www.cnblogs.com/laozhang-is-phi/p/9495624.html">Swagger的使用 3.1</a></li>
<li><a id="post_title_link_9507387" href="https://www.cnblogs.com/laozhang-is-phi/p/9507387.html">Swagger的使用 3.2</a></li>
<li><a id="post_title_link_9511869" href="https://www.cnblogs.com/laozhang-is-phi/p/9511869.html">Swagger的使用 3.3 JWT权限验证【修改】</a></li>
2019-01-28 15:31:24 +08:00
<li><a id="post_title_link_9896431" href="https://www.cnblogs.com/laozhang-is-phi/p/9896431.html">36 ║解决JWT权限验证过期问题</a></li>
2018-10-11 18:42:07 +08:00
<li><a id="post_title_link_9516890" href="https://www.cnblogs.com/laozhang-is-phi/p/9516890.html">API项目整体搭建 6.1 仓储模式</a></li>
<li><a id="post_title_link_9523148" href="https://www.cnblogs.com/laozhang-is-phi/p/9523148.html">API项目整体搭建 6.2 轻量级ORM</a></li>
<li><a id="post_title_link_9529480" href="https://www.cnblogs.com/laozhang-is-phi/p/9529480.html">API项目整体搭建 6.3 异步泛型仓储+依赖注入初探</a></li>
2018-12-19 23:51:41 +08:00
<li><a id="post_title_link_9541414" href="https://www.cnblogs.com/laozhang-is-phi/p/9541414.html">依赖注入IoC学习 + AOP切面编程初探</a></li>
2018-10-11 18:42:07 +08:00
<li><a id="post_title_link_9547574" href="https://www.cnblogs.com/laozhang-is-phi/p/9547574.html">AOP面向切面编程浅解析简单日志记录 + 服务切面缓存</a></li>
<li><a id="post_title_link_9554210" href="https://www.cnblogs.com/laozhang-is-phi/p/9554210.html">AOP自定义筛选Redis入门 11.1</a></li>
<li><a id="post_title_link_9560949" href="https://www.cnblogs.com/laozhang-is-phi/p/9560949.html">三种跨域方式比较DTOs(数据传输对象)初探</a></li>
<li><a id="post_title_link_9565227" href="https://www.cnblogs.com/laozhang-is-phi/p/9565227.html">DTOs 对象映射使用项目部署Windows+Linux完整版</a></li>
<li><a id="post_title_link_9757999" href="https://www.cnblogs.com/laozhang-is-phi/p/9757999.html">三十二║ 四种方法快速实现项目的半自动化搭建</a></li>
2018-12-19 14:49:36 +08:00
<li><a id="post_title_link_9767400" href="https://www.cnblogs.com/laozhang-is-phi/p/9767400.html">三十三║ ⅖ 种方法实现完美跨域</a></li>
<li><a id="post_title_link_9795689" href="https://www.cnblogs.com/laozhang-is-phi/p/9795689.html">三十四║ Swagger 处理多版本控制,所带来的思考</a></li>
2018-10-29 16:18:58 +08:00
<li><a id="post_title_link_9855836" href="https://www.cnblogs.com/laozhang-is-phi/p/9855836.html">三十五║ 完美实现全局异常日志记录</a></li>
2018-12-19 14:49:36 +08:00
<li><a id="post_title_link_10139204" href="https://www.cnblogs.com/laozhang-is-phi/p/10139204.html">37 ║JWT完美实现权限与接口的动态分配</a></li>
2018-12-26 17:28:30 +08:00
<li><a id="link_post_title" class="link-post-title" href="https://www.cnblogs.com/laozhang-is-phi/p/10173536.html">38 ║自动初始化数据库</a></li>
2019-01-03 19:14:58 +08:00
<li><a id="post_title_link_10205495" href="https://www.cnblogs.com/laozhang-is-phi/p/10205495.html">39 || 想创建自己的dotnet模板么看这里</a></li>
2019-01-18 13:57:46 +08:00
<li><a id="post_title_link_10287023" href="https://www.cnblogs.com/laozhang-is-phi/p/10287023.html">40 || 完美基于AOP的接口性能分析</a></li>
2019-01-28 15:30:25 +08:00
<li><a id="post_title_link_10322040" href="https://www.cnblogs.com/laozhang-is-phi/p/10322040.html">41 || Nginx+Github+PM2 快速部署项目(一)</a></li>
2018-12-19 14:49:36 +08:00
2018-10-11 18:42:07 +08:00
</ul>
2018-12-19 14:49:36 +08:00
2018-10-11 18:42:07 +08:00
</li>
<li>
2018-12-19 14:49:36 +08:00
<h3 id="autoid-2-2-0">前端 Vue 概览</h3>
2018-10-11 18:42:07 +08:00
<ul>
<li><a id="post_title_link_9577805" href="https://www.cnblogs.com/laozhang-is-phi/p/9577805.html">十四 ║ VUE 计划书 &amp; 我的前后端开发简史</a></li>
<li><a id="post_title_link_9580807" href="https://www.cnblogs.com/laozhang-is-phi/p/9580807.html">十五 ║Vue基础JS面向对象&amp;字面量&amp; this字</a></li>
<li><a id="post_title_link_9585766" href="https://www.cnblogs.com/laozhang-is-phi/p/9585766.html">十六 ║Vue基础ES6初体验 &amp; 模块化编程</a></li>
<li><a id="post_title_link_9593740" href="https://www.cnblogs.com/laozhang-is-phi/p/9593740.html">十七 ║Vue基础使用Vue.js 来画博客首页+指令(一)</a></li>
<li><a id="post_title_link_9602077" href="https://www.cnblogs.com/laozhang-is-phi/p/9602077.html">十八║Vue基础: 指令(下)+计算属性+watch</a></li>
<li><a id="post_title_link_9611632" href="https://www.cnblogs.com/laozhang-is-phi/p/9611632.html">十九║Vue基础: 样式动态绑定+生命周期</a></li>
2018-12-19 14:49:36 +08:00
<li><a id="post_title_link_9622031" href="https://www.cnblogs.com/laozhang-is-phi/p/9622031.html">二十║Vue基础终篇组件详解+项目说明<br><br></a></li>
<li>👆 上边的这些基础,可以不用看,如果你只想快速入门 Vue 的话<br><br></li>
2018-10-11 18:42:07 +08:00
<li><a id="post_title_link_9629026" href="https://www.cnblogs.com/laozhang-is-phi/p/9629026.html">二十一║Vue实战开发环境搭建【详细版】</a></li>
<li><a id="post_title_link_9640974" href="https://www.cnblogs.com/laozhang-is-phi/p/9640974.html">二十二║Vue实战个人博客第一版(axios+router)</a></li>
<li><a id="post_title_link_9647008" href="https://www.cnblogs.com/laozhang-is-phi/p/9647008.html">二十三║Vue实战Vuex 其实很简单</a></li>
<li><a id="post_title_link_9658019" href="https://www.cnblogs.com/laozhang-is-phi/p/9658019.html">二十四║ Vuex + JWT 实现授权验证登陆</a></li>
<li><a id="post_title_link_9670342" href="https://www.cnblogs.com/laozhang-is-phi/p/9670342.html">二十五║初探SSR服务端渲染个人博客二</a></li>
<li><a id="post_title_link_9675822" href="https://www.cnblogs.com/laozhang-is-phi/p/9675822.html">二十六║Client渲染、Server渲染知多少{补充}</a></li>
<li><a id="post_title_link_9682289" href="https://www.cnblogs.com/laozhang-is-phi/p/9682289.html">二七║ Nuxt 基础:框架初探</a></li>
<li><a id="post_title_link_9687504" href="https://www.cnblogs.com/laozhang-is-phi/p/9687504.html">二八║ Nuxt 基础面向源码研究Nuxt.js</a></li>
<li><a id="post_title_link_9697450" href="https://www.cnblogs.com/laozhang-is-phi/p/9697450.html">二九║ Nuxt实战异步实现数据双端渲染</a></li>
<li><a id="post_title_link_9702677" href="https://www.cnblogs.com/laozhang-is-phi/p/9702677.html">三十║ Nuxt实战动态路由+同构</a></li>
<li><a id="post_title_link_9713219" href="https://www.cnblogs.com/laozhang-is-phi/p/9713219.html">三十一║ Nuxt终篇基于Vuex的权限验证探究</a></li>
<li></li>
2018-12-19 14:49:36 +08:00
2018-10-11 18:42:07 +08:00
</ul>
2018-12-19 14:49:36 +08:00
2018-10-11 18:42:07 +08:00
</li>
2018-12-19 14:49:36 +08:00
2018-10-11 18:42:07 +08:00
</ul>
</div>
2018-10-10 11:17:35 +08:00
**************************************************************
2018-08-22 16:39:03 +08:00
系统环境
windows 10、SQL server 2012、Visual Studio 2017、Windows Server 2008 R2
后端技术:
* .Net Core 2.0 API因为想单纯搭建前后端分离因此就选用的API如果想了解.Net Core MVC也可以交流
2018-08-22 17:07:31 +08:00
* Swagger 前后端文档说明基于RESTful风格编写接口
2018-08-22 16:39:03 +08:00
* Repository + Service 仓储模式编程
2018-08-22 17:07:31 +08:00
* Async和Await 异步编程
2018-08-22 16:39:03 +08:00
* Cors 简单的跨域解决方案
2018-12-31 20:58:11 +08:00
* AOP基于切面编程技术
* Autofac 轻量级IoC和DI依赖注入
* Vue 本地代理跨域方案Nginx跨域代理
* JWT权限验证
2018-08-22 16:39:03 +08:00
数据库技术
2018-12-31 20:58:11 +08:00
* SqlSugar 轻量级ORM框架CodeFirst
2018-08-22 16:39:03 +08:00
2018-12-31 20:58:11 +08:00
* T4 模板生成
2018-08-22 16:39:03 +08:00
* AutoMapper 自动对象映射
2018-12-31 20:58:11 +08:00
2018-08-22 16:39:03 +08:00
分布式缓存技术
* Redis 轻量级分布式缓存
2018-12-31 20:58:11 +08:00
2018-08-22 16:39:03 +08:00
前端技术
2018-12-31 20:58:11 +08:00
* Vue 2.0 框架全家桶 Vue2 + VueRouter2 + Webpack + Axios + vue-cli + vuex
2018-08-22 16:39:03 +08:00
* ElementUI 基于Vue 2.0的组件库
2018-12-31 20:58:11 +08:00
* Nuxt.js服务端渲染SSR