.Net业务搭配实用技术栈

前言

      昨天有篇文章在讨论webform的设计思路,我已经四五年不用webform了,虽然它也提供了HttpModule和httphandle来处理请求,提供了一般处理程序ashx来简化处理流程,但依然会想起它的form runat=server,想起注册客户端脚本,想起那堆服务器控件,还有著名的GridView72变。但即使不用服务器控件,它也能提供很强大的功能。

      后来微软提供了另一套解决方案asp.net mvc 。其实刚开始我并不习惯,一是因为思路转变,新知识需要学习。二是因为当时做报表用rdlc,但mvc不支持。rdlc对于数据的处理很强大,但浏览器兼容性太差,用于winform客户端效果还是很棒的。mvc用熟后,webform再也没用过了。我没再用过的东西多了,但不否认它们依旧强大,也足够支撑你庞大的业务。

C/S端的话,winform和wpf依旧应该很流行。这块我做的少,理念上大同小异。

无意浪费时间去争论谁好谁坏,能为你挣钱的都是好框架。闲话少说,书归正传。今天我根据以往接触或未来想要进修学习的业务规模,来总结下对应的技术栈,来为未来准备,面向未来思考。

第一种类型企业官网

性质:访问量少,网页功能相当简单。一般为首页,公司介绍,产品介绍,联系我们等。

对应解决方案:

这类可推荐一些来源CMS,无需关心后台,设计好页面,只修改前端页面就行。

如果打算自己开发,见几个表存取下完事。不要想太复杂的架构。简单来,快速交付。

数据库:可采用access,SQLite或sqlserver,mysql都行。

.net需要储备:了解ado.net,dapper,泛型,反射等。了解数据库操作常用语句。

第二种类型流量内容网站

整个网站属于新闻类型,有较多内容分类,日均访问量一万以下。每小时平均一千量。相对于iis每秒成百上千处理数,这点量丝毫不成压力。能日均一万访问量,那说明这个站在小圈子内有很大名气了。

对应解决方案:

仍然推荐开源或自研的cms,一般方案首页和分类定时静态化或启用缓存,明细页直读数据库或经过缓存。

数据库:sqlserver,mysql,mongodb

.net储备:

定时任务如hangfire,quartz.net,

Cache系列(页面缓存,httpruntime缓存等),

安装windows服务topshelf

常用的设计模式等。

数据库增量备份还原与全量备份还原。数据库索引优化。

uv和pv等了解。

搜索引擎优化知识必要了解。

第三种类型小流量业务管理系统

小流量业务管理系统的特点是业务较复杂,但用的人数可能控制在几人几十人。但业务单据一天天下来也非常多。有很多公司每年底或年初会清数据,汇集到数据仓库,新的一年新数据。我之前待过的一家集团超市公司有几个分店,业务系统基于powerbuilder开发,用的是db2数据库,每天营业额数据也挺大的。每天十点有日结,月底有月结。

对应解决方案:

这里一般是购买商业软件或者基于产品二次开发了,完全从头开发需要投入很多时间和费用。

数据库:sqlserver,mysql,postgresql

.net储备:

数据库存储过程,函数,优化,关联表等。

数据库性能重中之重。

数据库每几分钟增量备份,一周全备份。读 写分离也可以在这时介入。

Redis可以考虑引入。

设计模式有需要的场景。

在计算报表和一些情况下,多线程,并行处理数据也会考虑引入。

Dapper,EF开始了用武之地,干起来!

依赖注入,aop 可以考虑引入。

可考虑引入前端vue,element。

以上考虑部分,根据业务规模和使用频数来决定是否引入。业务量太小时,引入多余架构反而有些笨重。

第四种类型百花齐放互联网和大数据量项目

性质:面向c端或B端。访问量大,业务多。虽然还有很多细分,但面向了互联网,我们就时刻准备着未来它能爆发式迎接大批量数据,我们的应用要高可用,健壮!时刻准备着,为未来!哪怕很多互联网公司生存周期只有几年!

数据库:Mongodb,mysql,postgresql

.net储备:

数据库集群。

Mongodb集群,分片等。

必不可少,Redis缓存,缓解数据库压力。需要了解redis运行机制,缓存穿透和缓存雪崩等。

必不可少,消息队列rabbitmq或Kafka,多业务系统之间消息传递,解藕。需要了解rabbitmq运行机制和amqp协议。

很重要 Elastic-search,Es可以通过mongo-connector实现同步mongodb数据,是一个数据极快的搜索引擎。另外可以用ELK搭建日志分析系统,这块我还需要练练手,需要了解Es如何应用,部署,问题排查等。

理论积累之微服务:微服务api网关,监控,服务发现,熔断降级,限流等。可参考微软olreans,Akka.net,ocelot,appllo,前些天过千的surging。有源码的常分析借鉴,理解透。

理论积累之TDD:单元测试,集成测试,自动化测试。

理论积累之CI/CD:需要熟练掌握jenkins配置。熟悉docker生态工具用法。

理论积累之领域驱动:微服务怎么拆?怎么微?服务之间如何联系?领域驱动设计为你提供了大量的建议,虽然不会都完美,但可以为你提供思路。领域,子域和限界上下文,领域服务,事件驱动,CQRS责任分离,贫血富血模型。我现在正在抽时间看这个,期待能有所应用。

理论积累之.net

并行编程,异步编程。多线程安全等。

网络编程socket,orleans的网关连接就是基于socket,在之上又包装了一层gateway连接。socket和tcp/ip通信息息相关,熟练了这个,其他语言同样思路都会了。很多RPC框架也是基于socket,是网络连接的源泉。

.netcore mvc的通用主机,内置kestrel,中间件等,单元测试,docker运行等需要深入了解。

理论积累之Linux:

.netcore最重要特性是跨平台,以前对linux不熟悉的部分,需要尽快熟练,要变成一个老手。

业务演练之单点登录

业务演练之秒杀

业务演练之短信限发

业务演练之实现消息队列模型

业务演练之实现分布式通信模型

业务演练之搭建微服务框架模型。

后语

粗糙了列了一堆技术栈,好像都见过,深入一问总卡壳,我觉得还是写的文章太少。不写出来,印象就会不会太深刻。我最近已经开启了两日一更,不知道能坚持多久,而且太散。先继续积累吧,以后能不能写成系列性的文章再说。收拾心情再出发!

原文地址:https://www.cnblogs.com/fancunwei/p/9596357.html


.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com

640?wx_fmt=jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/320052.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【dfs】虫食算(ybtoj dfs-1-3)

虫食算 ybtoj dfs-1-3 题目大意 给出一个如ABC的N进制的式子,现在知道某些位上的数字是相同的,让你求出这个式子 样例输入 5 ABCED BDACE EBBAA样例输出 1 0 3 4 2数据范围 1⩽N⩽261\leqslant N \leqslant 261⩽N⩽26 解题思路 从低位到高位枚举…

牛客网 【每日一题】6月11日题目精讲 背包

链接: 文章目录题目描述题解:代码:题目描述 Applese有1个容量为v的背包,有n个物品,每一个物品有一个价值ai,以及一个大小bi 然后他对此提出了自己的疑问,如果我不要装的物品装的价值最大,只是一…

P4899-[IOI2018]werewolf 狼人【Kruskal重构树,主席树】

正题 题目链接:https://www.luogu.com.cn/problem/P4899 题目大意 nnn个点的一张无向图,每次询问(s,t,l,r)(s,t,l,r)(s,t,l,r)表示询问能否找到一条s∼ts\sim ts∼t的路径使得该路径可以分割成点的序号在[l,n][l,n][l,n]和[1,r][1,r][1,r]的两段。 解题思路 首先对…

min_25筛

用途 设f(x)f(x)f(x)是一个积性函数,min_25筛可以在O(n34log⁡n)O(\frac{n^{\frac{3}{4}}}{\log n})O(lognn43​​)内求f(x)f(x)f(x)的前缀和:∑i1Nf(i)\sum_{i1}^{N}f(i)∑i1N​f(i) 使用要求:f(p),f(pk)f(p),f(p^k)f(p),f(pk)的值可以快速…

Service Fabric 用 Powershell 部署应用到本地

前置说明安装 Service Fabric SDK,会在本机 C:\Program Files\Microsoft SDKs\Service Fabric\Tools\PSModule\ServiceFabricSDK 生成部署脚本,如下图:用VS创建一个 Service Fabric 应用后,有一个部署脚本,位置在 [应用…

【期望】路径长度(金牌导航 期望-1)

路径长度 金牌导航 期望-1 题目大意 给出一个图,问你从1走到n的期望路径长度 输入样例 4 4 1 2 1 1 3 2 2 3 3 3 4 4输出样例 7.00数据范围 1⩽n⩽1051\leqslant n \leqslant 10^51⩽n⩽105 1⩽m⩽2n1\leqslant m\leqslant 2\times n1⩽m⩽2n 1⩽u,v⩽n1\…

牛客网 【每日一题】6月8日 [SCOI2005]最大子矩阵

链接: 文章目录题目描述题目描述 这里有一个n*m的矩阵,请你选出其中k个子矩阵,使得这个k个子矩阵分值之和最大。 注意:选出的k个子矩阵 不能相互重叠。 输入描述: 第一行为n,m,k(1 ≤ n ≤ 100,1 ≤ m ≤ 2,1 ≤ k ≤ …

CF1054D-Changing Array【贪心】

正题 题目链接:https://www.luogu.com.cn/problem/CF1054D 题目大意 一个长度为nnn的序列,每个数小于2k2^k2k,可以选择一些数xorxorxor上2k−12^k-12k−1。要求使得满足alxoral1xor...xorar0a_l\ xor\ a_{l1}\ xor...xor\ a_r0al​ xor al1​ xor...xo…

ElasticSearch入门 附.Net Core例子

1.什么是ElasticSearch?Elasticsearch是基于Lucene的搜索引擎。它提供了一个分布式,支持多租户的全文搜索引擎,它具有HTTP Web界面和无模式JSON文档。 Elasticsearch是用Java开发的,根据Apache许可条款作为开源发布。----来自维基百科的解释…

[XSY]Tree Ext(矩阵树定理,拉格朗日插值,最小生成树,二分)

Tree Ext 这道题相当于把3道题合了起来。 要求修复的边中恰好有 k 条白边: 五颜六色的幻想乡(附拉格朗日插值法求多项式系数 ) bzoj2654 tree(WQS二分 新科技get) 是最小生成树计数而非生成树计数: BZOJ1016」[JSOI2008] 最小生成树计数 具体可以看看…

【期望】乘坐电梯(金牌导航 期望-2)

乘坐电梯 金牌导航 期望-2 题目大意 有n个人,对于没一个单位时间有p的概率最前面的1个人进电梯,有(1-p)的概率不进,问你t个单位时间后,电梯中的期望人数 样例输入 1 1 0.50 1 样例输出 1 0.5 样例输入…

动态规划练习【一】 背包问题

详细讲解 背包问题大汇总 文章目录背包问题大汇总01背包问题:思路:空间优化复杂度代码总结:完全背包问题:思路:代码:优化多重背包问题:思路:代码:单调队列优化混合三种背…

P3329-[ZJOI2011]最小割【最小割树】

正题 题目链接:https://www.luogu.com.cn/problem/P3329 题目大意 nnn个点mmm条边的无向图,每次询问一个xxx表示最小割不超过xxx的点对数量。 解题思路 我们对于两个点sss到ttt完成网络流后的残量网络上,与sss联通的点属于点集SSS,与ttt联通…

《.NET 性能优化》送书活动结果公布

截止到9月7日18:00(规则本是12:00,忙的忘记了这事,18点截的图),本次送书活动《.NET 性能优化》共收到100多位同学参与回复,本次很多同学在看到活动的书 ,自行就到异步社区…

【期望】期望收益(金牌导航 期望-3)

期望收益 金牌导航 期望-3 题目大意 给你一个01串,有些位置是未知的,连续的x个1贡献为想x2x^2x2,现在问你该串的期望贡献 输入样例 4 ????输出样例 4.1250数据范围 1⩽n⩽31051\leqslant n \leqslant 3\times 10^51⩽n⩽3105 解题…

杜教筛技巧随记

常见完全积性函数: ϵ(n)[n1]ϵ(n)[n1]ϵ(n)[n1](元函数,满足f∗ϵff*ϵff∗ϵf) I(n)1I(n)1I(n)1 id(n)nid(n)nid(n)n 常见卷积: μ∗Iϵ\mu* Iϵμ∗Iϵ ϕ∗Iid\phi*Iidϕ∗Iid f(n)∑i1niϕ(i)f(n)\sum_{i1}^{n}i…

hdu-2844 Coins (混合背包+二进制优化)

HDU链接 文章目录题目描述:题意:题解(代码)题目描述: 输入描述: 输出描述: For each test case output the answer on a single line. 输入 3 10 1 2 4 2 1 1 2 5 1 4 2 1 0 0输出 8 4题意: 有n种硬币&…

CF1451F-Nullify The Matrix【结论题,博弈论】

正题 题目链接:https://www.luogu.com.cn/problem/CF1451F 题目大意 n∗mn*mn∗m的网格,每个网格上有数字,先后手轮流操作 每次操作选择一个只有往右和往下的路径,让第一个格子减去一个正整数并且随意修改后面的格子。要求完成后所有格子非…

.NET Core WebApi中实现多态数据绑定

什么是多态数据绑定?我们都知道在ASP.NET Core WebApi中数据绑定机制(Data Binding)负责绑定请求参数, 通常情况下大部分的数据绑定都能在默认的数据绑定器(Binder)中正常的进行,但是也会出现少…

【期望】期望分数(金牌导航 期望-4)

期望分数 金牌导航 期望-4 题目大意 告诉你一个01串中每个位置是1的概率,对于连续的x个1,贡献为x3x^3x3,问你期望贡献是多少 输入样例 3 0.5 0.5 0.5输入样例 6.0数据范围 1⩽N⩽1051\leqslant N \leqslant 10^51⩽N⩽105 解题思路…