.Net Web微信H5鱼虾蟹网站开发搭建技术栈

本文整理了当前企业web微信H5鱼虾蟹网站开发搭建(h5.fanshubbs.com)的管理系统架设Q1687054422,商城等系统的常用开发技术栈。

C#常见运算符

  • 一元运算符(+、-、!、~、++、--)
  • 算术运算符(*、/、%、+ 、 – )
  • 移位运算符(<< 、>> )
  • 关系和类型测试运算符(==、!=、<、>、<=、>=、is 和 as)
  • 逻辑运算符(&、^ 和 | )
  • 条件逻辑运算符(&& 和 || )
  • 空合并运算符(??)条件运算符(它也称为三元运算符,?: )
  • 赋值运算符(=、+=、-=、!=、/=、&=、|=)

C#常见语句块

  • Try(用于捕捉在块的执行期间发生的各种异常)
  • Checked 语句和 Unchecked(用于控制整型算术运算和转换的溢出检查上下文)
  • Lock(获取某个给定对象的互斥锁,执行一个语句,然后释放该锁)
  • Using(获取一个或多个资源,执行一个语句,然后释放该资源)

C#常见类修饰符

  • abstract抽象类
  • sealed密封类
  • static静态类
  • partial分部修饰
  • 访问修饰符(public、protected、internal 和 private )

C#常用预处理指令

  • #region:指定一个可展开或折叠的代码块
  • #endregion:它标识着 #region 块的结束
  • #define: 它用于定义一系列成为符号的字符
  • #undef:它用于取消定义符号
  • #if、#else、#elif、#endif:用于创建复合条件指令

委托

  • Delegate、Lambda、Action、Func、Predicate、事件EventArgs

泛型

  • 泛型类、泛型方法、泛型约束、泛型接口、逆变与协变

Linq

  • Linq to sql / Linq to DataSet / Linq to Object / Linq to Xml
  • 迭代器yield与懒加载Lazy

反射

  • 反射拼接SQL语句、反射转换Json/Datatable...、序列化反序列化(ISerializable)、反射动态调用dll、反射动态配置扩展

常用类

  • IO类、Json.NET、Http辅助类(HttpClient、Restsharp、WebClient、WebRequest)、爬虫类、文件压缩类、条形码 、金额、时间、Assembly等类的实现

常用接口掌握

  • IEnumerable
  • IEnumerator
    • 实现Foreach
  • .
  • ICollection
  • IList
    • 集合
  • .
  • IComparable
  • IComparer
    • 实现比较方法
  • .
  • IDictionary
    • 键值对
  • .
  • IDisposable
    • 释放非托管资源

数据层

  • 原生的ADO.NET
    • Connections. 用于连接和管理针对数据库的事务。
    • Commands. 用于发出针对数据库的SQL指令。
    • DataReaders. 用于从SQL Server数据源读取只进流的数据记录。
    • DataSets. 用于针对结构型数据,XML数据和关系型数据的存储,远程处理和编程。
    • DataAdapters. 用于推送数据到DataSet,并针对数据库协调数据。
    • ...
  • ORM框架
    • EF
    • Dapper:最常见的轻量级ORM框架(开源)
    • Nhibernate:最常见的重量级ORM框架
    • ...

异步和多线程

  • Thread/ThreadPool/Task/Await/Async/Parallel...
    • 多线程
      • 多线程中的同步、并发、异常等处理
      • ...
    • TPL异步
      • 异步编程模型(APM)
      • 基于事件的异步模式(EAP)
      • 基于任务的异步模式(TAP)
      • ...

数据结构

  • 算法
  • 线性表
  • 二叉树
  • 栈与队列
  • ...

ASP.NET Mvc框架

  • Routing路由
  • Binding模型绑定
    • new ChildActionValueProviderFactory(),
    • new FormValueProviderFactory(),
    • new JsonValueProviderFactory(),
    • new RouteDataValueProviderFactory(),
    • new QueryStringValueProviderFactory(),
    • new HttpFileCollectionValueProviderFactory()
    • ...
  • AOP面向切面(常用特性(Attribute)及自定义特性)
    • 元数据
    • 验证基类System.ComponentModel.DataAnnotations.ValidationAttribute
      • System.ComponentModel.DataAnnotations.CompareAttribute
      • System.ComponentModel.DataAnnotations.CustomValidationAttribute
      • System.ComponentModel.DataAnnotations.DataTypeAttribute
      • System.ComponentModel.DataAnnotations.MaxLengthAttribute
      • System.ComponentModel.DataAnnotations.MinLengthAttribute
      • System.ComponentModel.DataAnnotations.RangeAttribute
      • System.ComponentModel.DataAnnotations.RegularExpressionAttribute
      • System.ComponentModel.DataAnnotations.RequiredAttribute
      • System.ComponentModel.DataAnnotations.StringLengthAttribute
      • System.Web.Security.MembershipPasswordAttribute
    • .
    • Filter
      • IAuthenticationFilter(验证过滤器 MVC5)验证是否合理请求,是否合理用户
      • IAuthorizationFilter(授权过滤器)
        • AuthorizeAttribute
        • RequireHttpsAttribute
        • ValidateAntiForgeryTokenAttribute
        • ChildActionOnlyAttribute
        • ...
      • IActionFilter(动作过滤器-前-后)
        • ActionFilterAttribute
        • ...
      • IResultFilter(结果过滤器-前-后)
        • ActionFilterAttribute
        • ...
      • IExceptionFilter(例外过滤器)
        • HandleErrorAttribute(在FilterConfig就已被注册)
        • ...
  • RazorViewEngine视图引擎
  • WebApi

数据库技术

  • 数据库服务端、客户端、图形界面管理工具、数据库语言(PL-sql,T-sql,sql)、数据库安全等概念
  • 视图、存储过程、游标、中间表、触发器、计划任务等常用技术
  • 数据库分库、拆表、分布式、集群、备份、故障调控等方案
  • 数据库三大范式与反范式
  • RBAC(Role-Based Access Control,基于角色的访问控制)权限模型
  • 数据库机制
    • 索引
    • 存储引擎
    • 事务
      • 四大特性(ACID)
        • 原子性 Atomicity
        • 一致性 Consistency
        • 隔离性 Isolation
        • 持续性 Durability
      • 并发产生的问题
        • 脏读
        • 幻读
        • 不可重复读
        • ...
      • 解决方案—隔离级别
        • 读未提交Read uncommitted
        • 读已提交Read committed (mssql、oracle)
        • 可重复读Repeatable read(mysql)
        • 串行化Serializable
    • 锁机制
      • 种类、粒度、加锁方式
      • 悲观锁:开销大,避免长事务
        • 表锁、行锁/读锁、写锁
      • 乐观锁:开销小,读大于写
        • Version版本号机制
      • ...
  • 数据库辅助工具:Power Designer、EZDML、ER Studio、Rose、Microsoft Visio...

关系型数据库

  • Oracle
    • 最贵,功能最多,不开源,最安全...
  • Mysql
    • 免费,功能一般,开源,相对不安全...
  • MsSql(SqlServer)
    • 中等贵,支持平台最少,不开源,使用最方便...
  • PostgreSQL
    • 与其他关系型数据库相比,PostgreSQL独特的地方是它支持高度需要的、完整的面向对象以及关系型数据库的功能
  • Sqlite
    • 一个自包含的、基于文件的数据库,可移植性非常好
  • ...

非关系型数据库(Nosql-Not Only Sql)

  • MongoDb:是一个基于分布式文件存储的数据库
  • Hbase:属于hadoop(分布式系统)生态圈的组件,能存储海量数据
  • Cassandra:优异的列式存储NoSQL
  • Redis:基于内存的数据存储系统,支持多种类型存储,适用于高并发场合
  • Memcache:基于内存的数据存储系统,高性能分布式内存缓存服务,适用于高并发场合
  • ...

面向服务架构SOA

  • 通过服务整合来解决系统集成的一种思想
  • .
  • WSDL
    • Web Services Description Language是一个用来描述Web服务和说明如何与Web服务通信的XML语言。为用户提供详细的接口说明书
  • UDDI
    • Universal Description,Discovery and Integration统一描述、发现和集成, 提供一种发布和查找服务描述的方法。UDDI 数据实体提供对定义业务和服务信息的支持。
  • SOAP
    • Simple Object AccessProtocol,简单对象访问协议,基于XML 和 HTTP 用于在应用程序之间进行通信的一种通信协议
      • Web Services:基于SOAP协议,数据格式是XML
      • Wcf/Wcf Rest:可以不依赖于IIS,基于SOAP,支持多种通信协议,但配置繁琐
    • 测试工具:SoapUI...
  • REST
    • REpresentational State Transfer ,表现层状态转移,是一种架构风格,提供了设计概念原则和约束。
    • RESTful
      • 满足这些原则和条件的就称RESTful架构
      • Web API:RESTful的实现,一个用于构建HTTP服务的框架
    • 测试工具:Fiddler、Postman、Jmeter...
  • 微服务
    • 是SOA的一种实现,更侧重于组件化和服务化
  • JSON-RPC
    • Remote Procedure Call Protocol,远程过程调用协议,高性能二进制协议,比RESTful要高效(类似于Web Services的使用风格)

面向对象OOP

  • 三大基本特性
    • 继承,封装,多态
      • 抽象类abstract和接口interface的各种用法及实现
      • Virtual、abstract、override、New、extern等关键字的含义及用法
      • 设计模式的应用
      • ...
  • 六大基本原则(高内聚,低耦合)
    • 单一职责原则SRP(Single Responsibility Principle)
    • 开放封闭原则OCP(Open-Close Principle)
    • 里式替换原则LSP(the Liskov Substitution Principle)
    • 依赖倒置原则DIP(the Dependency Inversion Principle)
    • 接口分离原则ISP(the Interface Segregation Principle)
    • 最少知识原则LKP(Least Knowledge Principle)(也称:迪米特原则)
  • 23种设计模式
    • 创建型
    • 结构型
    • 行为型

存储

  • 浏览器自身缓存技术(cache control,与服务器约定,js /css等缓存)
  • Session(SessionId)(会话,为了弥补http协议的无状态特性)
  • Cookie(浏览器存储,为了弥补http协议的无状态特性)
  • Localstorage(Html5新特性 浏览器本地存储,为了弥补Cookie存储不足)
  • Application(服务器全局变量)
  • Static(依赖于IIS,进程回收会丢失)
  • Cache(服务器缓存)

软件架构

  • MVC
    • ASP.NET MVC
  • MVP
    • 事件模型
      • ASP.NET Web form
        • System.UI.Page
        • ViewState
        • ...
      • Winform
  • MVVM
    • 在.Net中(主要应用于WPF、Silverlight、WP7)
      • Prism - Brian Lagunas微软产品经理,微软MVP,一个跨平台的桌面和移动MVVM开发框架,开源。
      • Catel - Catel是一个专注于MVVM(WPF,Silverlight,Windows Phone和WinRT)和MVC(ASP.NET MVC)的应用程序开发平台。 Catel的核心包含一个IoC容器,模型,验证,纪念,消息中介,参数检查等。
      • ...
    • 在前端中
      • Angular
      • Vue
      • Knockout
      • React
      • ...

平台

  • MONO
  • .Net Core
    • CoreCLR
    • CoreRT for .NET Core
    • .NET Core Base Class Library
    • ...
  • .Net Framework
    • .NET Framework Base Class Library(BCL基类库)
      • System.Web(ASP.NET的核心)
        • ASP.NET与IIS管道模型:
          • 经典模式IIS5/IIS6:
            • IIS管道模型
            • ASP.NET管道模型
            • ...
          • 集成模式IIS7:
            • HttpContext
            • ...
          • IIs的常用功能及使用及配置:
            • 请求筛选、失败请求跟踪等
          • .Net MVC生命周期
          • Httphandler、HttpModule、Globar的编写及应用...
          • ...
      • OWIN解耦
        • Open Web Server Interface for .NET,定义了一种中间件在管道中用于处理请求和相关响应的标准方式,是种规范,用于解耦Web 服务器和Web 应用程序。
        • OWIN的实现:Katana(由微软早期开发的开源OWIN组件集合)
          • OWIN Layer(定义的一系列层)
            • Application(应用程序)
            • Middleware(中间件)
              • Nanacy.Owin
              • WebApi
              • Signalr
              • FubuMVC
              • Simple.Web
              • DuoVia.Http
              • ...
            • Server(服务)
              • Microsoft.Owin.Host.SystemWeb
              • Microsoft.Owin.Host.HttpListener
              • Helios
              • (Asp.Net5以后就是Microsoft.AspNet命名空间)
              • ...
            • Host(宿主)
              • IIS
              • Custom Host
              • OwinHost.exe
              • Node.Js(connect-owin)
              • ...
    • .NET CLR(Commen Language Runtime)公用语言运行时
      • 核心:公共语言基础(Common Language Infrastructure,CLI),提供了定义的规范接口、与工具
      • 1.项目源代码被 .Net Framework编译器( csc , C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe )编译成EXE或者是DLL文件。
      • 2.被CSC编译后的EXE/DLL文件叫做 IL文件。Intermediate Language (IL)中间语言,在.Net中,称之为 Microsoft IL(MSIL)微软中间语言(右键对项目进行生成的时候实际上就是这一步)
      • 3.CLR会将MSIL通过JIT(Just In Time)编译器进行第二次编译,将其编译成本地平台的CPU指令。(如果拥有能在Linux运行的CLR,代码就能跨平台运行)
      • .
      • C#源码——(CSC编译器)——MSIL文件(dll/exe)——(CLR中的JIT编译器)——CPU执行

Http协议

  • OSI网络通信
    • 物理层
      • 以二进制数据形式在物理媒体上传输数据
    • 数据链路层
      • 传输有地址的帧,错误检测功能
    • 网络层
      • 为数据包选择路由
      • IP,ICMP,RIP...
    • 传输层
      • 提供端对端的接口
      • TCP、UDP...
    • 会话层
      • 建立或解除与其它接点的联系
    • 表示层
      • 数据格式化,代码转换,数据加密
    • 应用层
      • HTTP,FTP,SMTP...
  • Http状态码
    • 1xx:信息提示,表示请求已被成功接受,继续处理,请求范围100~101
    • 2xx:成功,服务器成功响应请求,请求范围200~206
    • 3xx:重定向,请求范围300~305
    • 4xx:发送一些服务器无法受理的东西
    • 5xx:一条有效请求,但服务器挂了
  • 常用HTTP消息头(Http Header)
    • Request请求头
      • Authorization:Basic base64646464646464=== (验证)
      • Accept-Encoding:gzip (指定浏览器可以支持的web服务器返回内容压缩编码类型)
      • Cache-Control:max-age=60(指定请求和响应遵循的缓存机制,max-age为 当前60秒内再次访问不会去服务器请求)
      • Cookie:ZJF(该请求域名下的所有cookie值一起发送给web服务器)
      • Content-Type:application/x-www-form-urlencoded(是以什么格式来传输,请求的与实体对应的MIME信息)
      • Accept:text/plain(指定客户端能够接收的内容类型)
      • Range:bytes=0-999(常用作断点续传,设置请求的指定范围,服务器则返回Content-Range: bytes 0-999)
      • Referer: (当前请求来源的网页地址)
      • Origin: (和Referer差不多,只存在于POST请求)
      • Host:: (指定请求的服务器的域名和端口号)
      • User-Agent::Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36(当前客户端的信息)
      • Expect:100-continue(握手失败,请求头域类型不匹配,由此导致的API接口调用失败)
    • Response返回头
      • Connection: keep-alive(连接方式,很重要)
      • Access-Control-Allow-Origin: *(跨域,很重要)
      • Set-Cookie: UserID=admin; Max-Age=3600; Version=1
      • Content-Encoding:gzip
  • 实时通信方案
    • .Net Signalr+
    • Ajax轮询
    • Comet
    • WebSocket(SuperWebSocket,WebSocket服务器)
    • SSE(Server-sent Events服务器发送事件)
    • ...

域名解析

  • DNS解析流程
  • 常见 域名解析记录
    • A记录:用来指定域名或子域名对应的IP地址记录,保证域名指向对应的主机
    • CNAME记录:别名记录,该记录允许你为自己的主机设置别名
    • MX记录:邮件路由记录,当发送邮件时,Mail 服务器先对域名进行解析,查找mx记录
    • TXT记录:是域名系统(DNS)中由域名托管服务商存储的一种资源记录,其作用是防止垃圾邮件滥用行为
    • AAAA记录:指定网站域名对应的IPv6地址记录
    • NS记录:Name Server,用于指定域名是由那个DNS服务器来进行域名解析
    • ...

网站优化

  • JavaScript和Css模块化
  • CSS Sprites:将一个页面涉及到的所有零星图片都包含到一张大图中去,这样一来,将N次请求变成一次请求
  • 划分资源域
  • 合理运用缓存技术
    • 静态文件(图片、css、js、html )缓存: cdn技术、squid缓存服务器、浏览器(客户端)缓存
    • HTML5 application cahce API离线缓存
    • 应用层缓存:Cache、Redis缓存数据库、memcache缓存数据库
    • 数据库缓存:数据库本身的缓存机制
    • ...
  • 了解浏览器工作机制:Css放顶部,Js放底部,压缩Html,能配置Expires/Cathe-Control,ETag,使用 gzip 压缩
  • 用ISP(互联网服务提供商)提供的文件存储等技术
  • 提高DNS域名解析速度
  • 掌握SEO
    • 确保网站是可以被索引的: robots.txt,Robtots 标签
    • 确保网页是可以被索引的:确保爬虫可以看到所有的内容、使用描述性的锚文本的网页
    • 擅长标签编写:带有 H1 标签、关键词放 URL 中、加粗文字、Descripiton 标签、图片文件名、ALT 属性带有关键词
    • ...
  • 删除不必要的HTTP响应头
    • 移除X-AspNet-Version HTTP头
    • 移除X-AspNetMvc-Version HTTP头
    • 移除X-Powered-By HTTP头
    • 移除Server HTTP头
    • ...
  • 用户数据分析
    • PV IP UV
    • 访问流量来源
      • 浏览器
      • 移动设备
      • ...
  • ...

你可能感兴趣的:(.Net Web微信H5鱼虾蟹网站开发搭建技术栈)