.NET知识体系学习(微软技术体系分支)
先生存后发展,先模仿后改进。
一、软件开发流程:
需求文档、UI设计文档(小公司可省略)、数据库设计(powerdesigner)、技术体系选择和功能模块设计、代码实现、用户手册、系统部署和维护手册;
二、(微软).NET技术体系:
1后端
1.1.net framework .net core .net 5 区别:
参考java先进经验,把.net framework 拆分(绝大多数内容不变),然后重组出一个“跨平台、模块化的” .net core, .net core 版本稳定后,改名为.net 5、.net6、.net 7等等
1.2后端分层:
https://www.cnblogs.com/hao-1234-1234/p/16447002.html(写的还不是很好)
1.3后端技术选择:
webapi项目 、MVC项目 、windows服务
1.4后端其它技术:
错误日志 log4Net、数据持久化(linq、EntityFramework 、原生ADO) 、依赖注入工具autoFuc
权限设计 +过滤器(webapi 、MVC)、加密、解密、响应压缩、发短信
Excel组件:NPOI
支付功能:微信、支付宝。
.netCore webapi和mvc权限配置。
基于vue的前端权限、
--------
数据在页面导入
单点登录、第三方登录(oauth2.0 )
微信订阅号和webapp开发
程序发布到LINUX系统
常见安全问题:服务器安全常识、sql注入、跨站脚本
C#基础:CLR、字段、方法、类型、枚举、 事件、委托、泛型、接口、反射
单机缓存、分布式缓存:memcached
nosql 分布式数据库redis(key-value )、
基于数据库的任务调度管理 (Only.Jobs):主要目的是自动化运行和管理一些常用的固定的任务。 结合:计时器+线程操作+window事件查看器 +错误记录 等功能。
2前端
前端基础: javascript 、html 、css 基础 (菜鸟教程)
开发工具:VSCode
前端框架: vue、jQuery
组件库: elementUI或iview、jquery-easyUI、
前端其它技术:json 序列化和反序列化、前端 pdf.js 、百度编辑器、echarts
3数据库:
关系型数据库:SQLServer、MySQL,存储过程、临时表、分库、分表
非关系型数据库:MongoDB(适合存各种文件)
三、职业方向
计算机行业两大明珠:算法、芯片设计制造。但绝大多数开发人员进入不了这两大领域。他们的去向是:小企业要求全都会(前端后端数据库),中大企业要求精于局部。
1纯后端开发:大、中型公司
2纯前端开发:大、中型公司
3纯数据库开发:大公司方向
4多端和多端自适应:小、中型公司(.net技术体系的开发人员方向)
手机、电脑、微信(订阅号 、小程序 、企业微信 )、webapp、android;
自适应和代码复用。
5跨平台(硬件、操作系统、数据库等)、模块化(可拔插、小巧化、多样化):大、中型企业
.net core之后可以跨平台了,但目前.net技术体系不如java技术体系解决方案丰富。
四、计算机基础理论和趋势分析
1、计算机硬件、编码、数据结构、算法、编译器、操作系统、传感器
对应书籍: 《计算机组成和原理》《编译原理》《数据结构和算法》
2、操作系统和行业大软件
操作系统也可以称为一种行业大软件。
信息技术产业:
手机:美国 谷歌 安卓(Android)、中国 华为 鸿蒙(HUAWEI Harmony OS)
电脑:美国 微软 Windows、美国 苹果 IOS、中国 华为 鸿蒙(HUAWEI Harmony OS)
服务器:
美国微软 Windows Server、
Torvalds李纳斯·托沃兹(芬兰人):LINUX、Git。
美国网络系统公司(NOVELL):网络操作系统Netware;
中国华为:欧拉操作系统(openEuler, 简称“欧拉”)
软件行业(全是国外的):
指的是很方便地把一种编程语言代码化并编译执行的工具。其中主要的语言开发工具有几大类:java开发工具、net开发工具、delphi开发工具等。 [3]
java开发工具
1、MyEclipse(MyEclipse Enterprise Workbench)
MyEclipse应用开发平台是J2EE集成开发环境 [4] ,包括了完备的编码、调试、测试和发布功能,完整支持JAVA,HTML, Struts,Spring, JSP, CSS, Javascript, SQL, Hibernate。MyEclipse应用开发平台结构上实现Eclipse单个功能部件的模块化,并可以有选择性的对单独的模块进行扩展和升级。
2、Eclipse
Eclipse 是目前功能比较强大的JAVA IDE(JAVA编程软件) [4] ,是一个集成工具的开放平台,而这些工具主要是一些开源工具软件。在一个开源模式下运作,并遵照共同的公共条款,Eclipse 平台为工具软件开发者提供工具开发的灵活性和控制自己软件的技术。
3、NetBeans
NetBeans是开放源码的Java集成开发环境(IDE) [4] ,适用于各种客户机和Web应用。Sun Java Studio是Sun公司最新发布的商用全功能Java IDE,支持Solaris、Linux和Windows平台,适于创建和部署2层Java Web应用和n层J2EE应用的企业开发人员使用。
按类型细分:
软件需求工具,包括需求建模工具和需求追踪工具。office等
软件设计工具,用于创建和检查软件设计,因为软件设计方法的多样性,这类工具的种类很多。例如:数据库设计(powerdesigner)UI设计(photoshop、sketch、Dreamweaver等)https://www.zhihu.com/question/30367494
软件构造工具,包括程序编辑器、编译器和代码生成器、解释器和调试器等。例如:java开发工具、net开发工具、delphi开发工具
软件测试工具,包括测试生成器、测试执行框架、测试评价工具、测试管理工具和性能分析工具。
软件维护工具,包括理解工具(如可视化工具)和再造工具(如重构工具)。
软件配置管理工具,包括追踪工具、版本管理工具和发布工具。例如:git
软件工程管理工具,包括项目计划与追踪工具、风险管理工具和度量工具。
软件工程过程工具,包括建模工具、管理工具和软件开发环境。
软件质量工具,包括检查工具和分析工具。
https://baike.baidu.com/item/%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E5%B7%A5%E5%85%B7
电子行业(全是国外的):
Multisim
Multisim是美国国家仪器(NI)有限公司推出的以Windows为基础的仿真工具,适用于板级的模拟/数字电路板的设计工作。它包含了电路原理图的图形输入、电路硬件描述语言输入方式,具有丰富的仿真分析能力。
Altium designer
Altium designer是一款一体化的电子产品开发系统软件。这套软件通过把原理图设计、电路仿真、PCB绘制编辑、拓扑逻辑自动布线、信号完整性分析和设计输出等技术的完美融合,为设计者提供了全新的设计解决方案,使设计者可以轻松进行设计,熟练使用这一软件使电路设计的质量和效率大大提高。
LTspiceIV
LTspiceIV 是一款高性能Spice III 仿真器、电路图捕获和波形观测器,并为简化开关稳压器的仿真提供了改进和模型。我们对Spice 所做的改进使得开关稳压器的仿真速度极快,较之标准的Spice 仿真器有了大幅度的提高,从而令用户只需区区几分钟便可完成大多数开关稳压器的波形观测。这里可下载的内容包括用于80% 的凌力尔特开关稳压器的Spice 和Macro Model,200 多种运算放大器模型以及电阻器、晶体管和MOSFET 模型。
Cadence Allegro
Cadence是一款专门从事电子设计自动化(EDA)的软件,它在电子设计的整个流程,例如功能验证、模拟混合信号及射频IC设计、硬件仿真建模等方面都有有应用。
PADS
PADS的前身是POWER PCB,这个软件界面菜单很少,易上手。特别是消费类电子产品市场占有率非常高,早期都可以说在消费类产品里面差不多是垄断的地位,比如从早期的VCD、DVD、MP3、MP4、U盘、液晶电视,到现在的平板电脑、行车记录仪、车载电子产品、导航仪、数字机顶盒、安卓智能电视盒、手机等,都是绝对的市场占有率。在整个消费类电子产品里面,PADS几乎占了绝对的优势。
MATLAB
MATLAB是美国MathWorks公司出品的商业数学软件,用于数据分析、无线通信、深度学习、图像处理与计算机视觉、信号处理、量化金融与风险管理、机器人,控制系统等领域。
LabVIEW
LabVIEW是一种程序开发环境,由美国国家仪器(NI)公司研制开发,类似于C和BASIC开发环境,但是LabVIEW与其他计算机语言的显著区别是:其他计算机语言都是采用基于文本的语言产生代码,而LabVIEW使用的是图形化编辑语言G编写程序,产生的程序是框图的形式。
Keil MDK,也称MDK-ARM、Realview MDK、I-MDK、uVision4 等。Keil MDK是由三家国内代理商提供技术支持和相关服务。
MDK-ARM软件为基于Cortex-M、Cortex-R4、ARM7、ARM9处理器设备提供了一个完整的开发环境。 MDK-ARM专为微控制器应用而设计,不仅易学易用,而且功能强大,能够满足大多数苛刻的嵌入式应用。
MDK-ARM有四个可用版本,分别是MDK-Lite、MDK-Basic、MDK-Standard、MDK-Professional。所有版本均提供一个完善的C / C++开发环境,其中MDK-Professional还包含大量的中间库。
IAR
IAR Systems是全球领先的嵌入式系统开发工具和服务的供应商。公司成立于1983年,提供的产品和服务涉及到嵌入式系统的设计、开发和测试的每一个阶段,包括:带有C/C++编译器和调试器的集成开发环境(IDE)、实时操作系统和中间件、开发套件、硬件仿真器以及状态机建模工具。
Solidworks
可能有人说这就是一个普通的3D软件,怎么会用在电子工程领域呢?那我来解释一下,之前我在深圳是做治具的,也称夹具。这是一个偏硬件的行业。
简要介绍一下其整个制造流程,分析工程师把客户的文件资料(通常是PCB资料)用Tebo软件分析出来,然后给结构工程师设计治具结构,然后将需要加工的零部件用JD加工出来,然后进行装配。治具是用于PCB(印刷电路板)测试的工具。这是PCB制造的一个下游行业。但却在保证PCB出厂质量这方面起着不可或缺的而作用。
TestStand
TestStand也是美国国家仪器公司(NI)自主开发研究的一款软件平台。NI TestStand是一款可立即执行的测试管理软件,它可以帮助用户更快地开发自动测试和验证系统。NI TestStand可用于开发、执行和部署测试系统软件。此外,用户还可使用任何编程语言编写的测试代码模块开发测试序列。测试序列可以指定执行流、生成测试报告、进行数据库记录以及连接其他公司系统。最后,用户可借助易用的操作界面,在生产中部署测试系统。
Switch Executive
Switch Executive是一款开关管理与路由应用软件,能够快速加速开发过程,简化对复杂开关系统的维护。Switch Executive提供交互式配置和自动路由功能,使开关路由系统的设计更加容易。
亿图电路图绘制
亿图电路图绘制软件是一款适合新手的入门级电路图设计软件,软件界面简单,包含丰富的图表符号,中文界面,以及各类图表模板。版本定期更新,不用担心无法绘制新型元件。适合专业的电子工程师用于电路图的设计。
Proteus
Proteus软件是英国Lab Center Electronics公司出版的EDA工具软件。设计套件结合了易用和强大的功能集,可实现专业PCB的快速设计,测试和布局。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。
ElectronicWorkbench
ElectronicWorkbench是一款电子电路仿真软件,可以进行各种电路工作演示,模拟各种电子电路,缩放显示的波形。ElectronicWorkbench是一款经典小巧,好用的模拟数字电路仿真软件。
OrCAD
OrCAD是一款专业PCB设计,电路板布局和布线的工具。可以帮助更快地生产可制造的电路板设计。Cadence OrCAD产品以其直观的操作界面以及强大的功能而深受广大电子工程师们的喜爱。是世界上使用最广泛的EDA软件。
Tebo
这是一款同时具有CAD和GERBER输入接口的ICT、ATE治具辅助制作软件。能够处理各种GERBER以及埋盲孔、正负片数据。同时具有多种CAD接口,处理数据省时省力,是制作高精密、复杂ICT、ATE测试治具的最佳选择之一。
Visual Studio
Visual Studio 集成开发环境是一种创新启动板,可用于编辑、调试并生成代码,然后发布应用 。集成开发环境 (IDE) 是一个功能丰富的程序,可用于软件开发的许多方面。除了大多数 IDE 提供的标准编辑器和调试器之外,Visual Studio 还包括编译器、代码完成工具、图形设计器和许多其他功能,以简化软件开发过程。
VSCode
Visual Studio Code是一个免费的编码编辑器,可帮助您快速开始编码。使用它以任何编程语言进行编码,而无需切换编辑器。Visual Studio Code支持多种语言,包括Python,Java,C ++,JavaScript等
https://www.zhihu.com/question/453250292/answer/1822972300
https://zhuanlan.zhihu.com/p/407104289
数控系统:
日本 发那科、德国 西门子 、德国 海德汉、日本 马扎克、日本 三菱、美国 哈斯、西班牙 发格、法国 NUM、美国 赫克、
中国 华中数控
https://zhuanlan.zhihu.com/p/351264651
机械设计和仿真(全是国外的):
有限元分析:ANSYS,ABAQUS,NASTRAN,ADINA,COMSOL;
钢结构分析:SAP2000。
多学科系统仿真:DYMOLA,easy5,AMESIM,SIMULATIONX;
设计制造:sw和proe/creo。sw上手快;功能全的是proe,还有升级版creo适合复杂面等。
能绘图且编程的软件:caxa(数控车和caxa工程师),ug。这俩软件最贴合一线加工编程。
动力学仿真:ADAMS;
用的最多的二维绘图软件:AutoCAD
http://www.wish-edu.cn/zh/159074.html
飞机(全是国外的):
[除了机械设计和仿真,也有特有软件]
飞行控制系统
设计用Catia软件,强度计算不统一,有限元分析用patran/nastran系为正统软件,适航认证的,其余如hyperworks,abquas、hypermesh等,ansys在航空用的不是很多。
另外,Excel也应列入,处理数据,工程计算等,用处最多。
性能计算仿真用matlab,气动fluent等等。
链接:https://www.zhihu.com/question/21338814/answer/29805279
汽车:
[除了机械设计和仿真,还有特有软件]
辅助驾驶系统
机器人与机器臂:
地理:ArcGIS
办公:美国微软office、中国金山wps
还有很多行业大软件.....每一个都是那么重要,思考问题、使用和制造工具,人类生存斗争的关键,中国人目前还没能掌握(制造工具)。
3、物联网、数据分析、远程操控:
联网获取实时设备数据,故障诊断,远程操控。
根据大量数据建立分析模型,预测设备使用寿命,提前更换高风险设备。
4、安全
联网设备的安全问题,必然进一步催生联网设备安全产业的崛起。
https://www.liaoxuefeng.com/wiki/1022910821149312/1023025235359040
http://www.10qianwan.com/articledetail/220155.html
https://www.cnblogs.com/artech/p/inside-asp-net-core-framework.html#4172433