前言

net core 已经出了很久了,网上的各种框架也很多了,但是没看到一个很小很轻的框架,基本都是那种啥功能都有,但是我需要的功能只占他们框架的百分之几,很少很少,所以自己创造一个框架。

因为之前的知识断层太多了,现在为了拟补这些知识,也是走了不少弯路,现在和一个新手没啥区别,所以那里写的不对也请大家谅解。

1.我需要的框架结构是什么样的?

我在搭建这个框架的时候查阅了很多资料,园子里有很多很多的大佬都已经写了怎么搭建一个框架,而阅读最广泛的是一套DI框架。但是不知道怎么回事园子里面的原文是加密的,打不开。可能是作者不想让爬虫爬吧。。

那么我到底需要什么框架呢?

冥思苦想,有几个要求

  • 1.不为现在工作而做一个框架
  • 2.通用性高
  • 3.简单易懂
  • 4.中小型项目压力小

然后就随便画了一下结构图

哪我需要做的就是从中转平台到数据库支持这一块内容。

2 ORM的选择

我也是第一次学习net core和EF,以前都不懂EF是什么东西,也是通过现在工作学会一点EF的使用,觉得局限性太高了。但是写一写简单的操作还是比较快的,然后看到微软也发布了 EF Core,查了查资料看看了文章

也在各种ORM对比,结果发现EF Core被人黑的地方就是不能写sql语句,如果不能写sql语句那么就需要使用框架的人掌握linq和 lamuda的程度要很高了,不再是一个简单的新手小白可以使用的框架。不符合我的要求。

我做事的方式就是先查查能不能解决,不能解决在换别的,结果无意中发现网上已经有大佬做了扩展的cs文件。保存。那么ORM就确定使用官方的EF Core加大佬的扩展类

3 层级架构

世界上最通用的也是最常用的还是三层架构,谁看见都会用,不需要过多的解释,就像超级玛丽 1-1关那样。

4 数据验证

上学的时候老师教过我们,客户端的信息是不可信,既然前后端分离了,那么前端传输过来的数据必然可以被篡改,做一个自己的加密方式可以验证数据是否被篡改??这个需要思考怎么去实现。

多做几个数据验证是没错的,至少让我知道他是怎么把数据弄到数据库中的

5 数据库的选择

现在世界上流行一种新型的数据结构 叫做NoSql,这玩意不是里我太远,而是是我的一个知识盲区,暂时先不去触碰他,还是先做传统的数据库,那么为什么不支持oracle呢?答案很简单,既然我要做中小程序,

那么和oracle可能就是不是一条路上,而 Mysql MSSql属于那种中小企业以及中小型项目常用的数据库,而SqlLite属于MSSql类库中自带支持的。

6 接口定义

正统的程序接口返回值肯定是统一的,不存在那种 A是一种格式,B是一种格式,而是大家都是统一的格式,只有某个key是不同的。而JSON这种数据格式适用于全世界大部分程序需求,那么返回JSON和请求JSON是必然的了。

7.平台的选择

虽然是要搭建框架,但是也要事先学习netcore的基本内容,例如通过查资料知道微软已经全面支持docker,那么也就是跨平台可以通过docker去实现和完成,但是在学习期间发现,netcoer webapi也支持自托管和iis托管形式,这也太强大了!

那既然已经都支持这么多情况了,不能让别人在使用我的框架的时候还要自己引入docker的文件,我直接编辑好,让大家直接使用不是更好吗?每个人都只关注业务就可以了。我真是个小聪明!

8.辅助类

不多说。。谁家项目不做几个通用辅助类

9.开始搭建初级框架

ok既然已经知道目前自己需要什么,那么就用代码实现出来,下载个VS2019,随便创建几个文件,然后再把大佬的辅助类拖拽进来。然后在随便加几个属性。完成!

有点糊弄人哈。。。那么下一篇文章详细说说每个类都是什么意思吧!

创造DotNet Core轻量级框架【一】的更多相关文章

  1. 创造DotNet Core轻量级框架【二】

    上一篇 创造DotNet Core轻量级框架[一] 10 题外话 上一篇文章感谢大家提出的各种小建议和各种讨论,但是在写文章的时候框架最最最基础的样子已经做出来了,所以大家的各种建议和意见我会在后续逐 ...

  2. dotnet core 通过修改文件头的方式隐藏控制台窗口

    原文:dotnet core 通过修改文件头的方式隐藏控制台窗口 在带界面的 dotnet core 程序运行的时候就会出现一个控制台窗口,本文告诉大家使用最简单方法去隐藏控制台窗口. 最近在使用 A ...

  3. 基于DotNet Core的RPC框架(一) DotBPE.RPC快速开始

    0x00 简介 DotBPE.RPC是一款基于dotnet core编写的RPC框架,而它的爸爸DotBPE,目标是实现一个开箱即用的微服务框架,但是它还差点意思,还仅仅在构思和尝试的阶段.但不管怎么 ...

  4. dotnet core 2.2 安装后在vs2017中无法选择 dotnet core 2.2 为目标框架

    可能有效的解决方案: 无法完全保证有效,因为我本地装上没问题,只帮同事解决过一次,貌似有效 方案就是多装几个 .net core 2.2.xxx 版本,然后可能就正常识别了. 在安装之前,先把 vs ...

  5. Dotnet core基于ML.net的销售数据预测实践

    ML.net已经进到了1.5版本.作为Microsoft官方的机器学习模型,你不打算用用?   一.前言 ML.net可以让我们很容易地在各种应用场景中将机器学习加入到应用程序中.这是这个框架很重要的 ...

  6. DotNet Core 介绍

    前言 asp.net core rtm 6月底即将发布,自己也想着为社区做点共享,刚好最近不太忙,看到社区的小伙伴们都在为dotnet core的推广而贡献力量,项目中刚好在用rc2版本,就多写些文章 ...

  7. FluentData,它是一个轻量级框架,关注性能和易用性。

    http://www.cnblogs.com/zengxiangzhan/p/3250105.html FluentData,它是一个轻量级框架,关注性能和易用性. 下载地址:FlunenData.M ...

  8. dotnet core开发体验之开始MVC

    开始 在上一篇文章:dotnet core多平台开发体验 ,体验了一把dotnet core 之后,现在想对之前做的例子进行改造,想看看加上mvc框架是一种什么样的体验,于是我就要开始诞生今天的这篇文 ...

  9. dotnet core多平台开发体验

    前言 随着net core rc2的发布,园子里面关于net core的入门文章也也多了起来,但是大多数都是在一个平台上面来写几个简单的例子,或者是在解释代码本身,并没有体现说在一个平台上面创建一个项 ...

随机推荐

  1. 07-JDBC协议

    1.下载mysql-connector-java-8.0.17.jar,jar包放进jmeter的安装目录lib文件夹下,启动jmeter就好 2.新增线程组,然后添加配置元件:JDBC connec ...

  2. Android 开发小零碎

    1.EditText默认就会自动获取焦点, 如何让EditText不自动获取焦点? 解决之道:在EditText的父级控件中找一个,设置成 android:focusable="true&q ...

  3. Python的深浅copy详解

    Python的深浅copy详解 目录 Python的深浅copy详解 一.浅copy的原理 1.1 浅copy的定义 1.2 浅copy的方法 二.深copy的原理 2.1 深copy的定义 2.2 ...

  4. Zipper 杭电 1501

    Given three strings, you are to determine whether the third string can be formed by combining the ch ...

  5. 判断一个字符串是否是合法IP地址

    # -*- coding: utf-8 -*- """ @File:test06_判断ip地址是否合法.py @E-mail:364942727@qq.com @Time ...

  6. calculator.py

    代码如下: #计算器类 class Count: def __init__(self, a, b): self.a = int(a) self.b = int(b) #计算器加法 def add(se ...

  7. react-devtools安装调试

    初学react,Chrome F12调试,需要一款插件react-devtools. 网上大多对于翻墙不利索的同学大多才用了git源码.npm本地手动打包Chrome拓展程序.如:https://ww ...

  8. JACTF Web部分

    掘安团队的题目 平台已不运营 Web签到 发现请求URL为flag.php,但是会跳转到404.php页面,抓包发现有302重定向,查看响应包,flag经过base64编码,解码即可 Tips: 重定 ...

  9. 学Python的你必须要知道,这十个Python常用库

    想知道Python取得如此巨大成功的原因吗?只要看看Python提供的大量库就知道了 包括原生库和第三方库. 不过,有这么多Python库,有些库得不到应有的关注也就不足为奇了. 此外,只在一个领域里 ...

  10. ES6新增的 Set 和 WeakSet 是什么玩意?在此揭晓

    现在的章节内容会更加的紧密,如果大家看不懂可以先去看以前的文章,当然看了的忘了,也可以去看一下,这样学习后面的内容才会更加容易. 什么是Set结构 Set是ES6给开发者带来的一种新的数据结构,你可以 ...