当前位置:网站首页>怎么样的框架对于开发者是友好的?
怎么样的框架对于开发者是友好的?
2022-07-29 09:28:00 【dotNET跨平台】
云原生离.NET开发到底有多远?
云原生的概念由来不久,故事从“上云”开始,伴随dorker、k8s等技术的推出,以及CNCF与各大云厂商的共同加持,云原生逐渐被大家所熟知。云原生不依赖具体的云,不管公有云还是私有云。.NET6的诞生的时间点与容器技术非常的契合,.NET6现在已经完全支持CGroups v2,比Java对容器的支持更优秀。接下来.NET 7版本中Native AOT等新特性的推出,说明.NET一直大步的向云原生在改进,.NET现阶段在云原生领域已经领先于其他开发平台。
.NET适用于怎么样的场景?
我们在谈论云原生、微服务的时候,经常会提到DevOps,CI/CD等概念,对于.NET来说现在已经支持的非常好。.NET也可以做machine learning,我们有tensorflow.net。在跨平台方面现在又有了MAUI这么优秀的项目可以供大家使用。还有在IoT的行业.NET也有非常多的解决方案。.NET可以做大型项目,也很适合中小型的项目。现在.NET是开源的,大家可以贡献自己的力量,像MASA技术团队开源的MASA Framework就是国内非常好的案例。
怎么样的框架对于开发者是友好的?
01
无痛入门
好的框架应该是可以让开发者很快入门,上手成本低,而不是设置高门槛。比如在开发常规项目时,能够快速(比如几个小时)上手就能开展。需要深入时,可以非常平滑的深入,比如Spring Boot算是一个比较好的框架,在.NET Core出来后,.NET Core则更胜一筹。
02
防呆设计
在开发者遇到问题时,好的框架能够让开发者自然而然根据直觉解决问题,可以不依赖文档。报错时有充足的信息告知开发者,给出相应的解决方案。winform与WPF的组件设计就非常符合防呆的设计,同样的Blazor相对之前的js框架在这方面有很多的优化。好的框架应该保持“KISS”(keep it simple and stupid)原则,简单又傻瓜化,并且有原则,不娇惯开发者。很多框架开始时“小而美”,越到后期需求不断增加,变得臃肿,变得“四不像”。
03
可阶梯式深入
入手之后可以阶梯式的深入,比如3天学习一种用法,5天再深入一种用法。能够让开发者,在应对进阶场景时,快速的深入掌握。
.NET已经是非常优秀的框架,为什么要二次封装.NET?
大多时候,随着项目开发会有业务之外的重复性、非功能应用,或多或少都会进行一些封装。不同的场景需要不同的框架,现在.NET跨平台除了MAUI还有Uno Platform,还有其他框架支持,可以补充不同的场景需求,比如Uno就可以代替MAUI来支持Win7/Win8。.NET输出的是工具类库,二次封装.NET的框架就不能只是一个功能合集,必须要有自己的最佳实践和理念,但不限制开发者。MASA Framework希望将我们的最佳实践输出给.NET开发者,帮助大家开启全新的现代应用开发体验!
点击链接观看直播回放
扫码进群,了解更多
MASA Framework欢迎你的加入
《MASA Framework实战课程》已开课
点击“阅读原文”查看课程安排
边栏推荐
- C# 使用RestSharp库实现POST请求
- What should I pay attention to now? Excuse me, is it safe to open a stock account by mobile phone?
- 【BERT-多标签文本分类实战】之一——实战项目总览
- What is the key to fast multi tag user profile analysis?
- "Defects" of prototype chain inheritance and constructor inheritance
- How to introduce your project experience?
- Unity xchart3.0 basic usage quick start
- Summary of research on endogenous information security technology of industrial measurement and control equipment
- PyQt5快速开发与实战 6.4 QBoxLayout(框布局)
- [machine learning] naive Bayesian code practice
猜你喜欢
One click automated data analysis! Come and have a look at these treasure tool libraries
I don't know how lucky the boy who randomly typed logs is. There must be a lot of overtime
附录2-一些简单的练习
ERROR 1045 (28000): Access denied for user ‘ODBC‘@‘localhost‘ (using password: NO)
MySQL事务与MVCC如何实现的隔离级别
Data type of MySQL
当 update 修改数据与原数据相同时会被更新吗?
浅谈契约测试
远程连接windows版本服务器redis的配置文件设置
Asp graduation project - based on C # +asp Design and implementation of enterprise investment value analysis system based on. Net + sqlserver (graduation thesis + program source code) -- enterprise in
随机推荐
No swagger, what do I use?
Introduction to translation professional qualification (level) examination
How to change MySQL into Chinese
工业测控设备内生信息安全技术研究综述
浅谈契约测试
mysql将部分表名统一转换为大写
Study and exploration of Redux API implementation of Redux
First order traversal / second order traversal determines the approximate shape of the tree
Using logistic regression and neural network to deal with complex binary classification problems
dataframe.to_sql() 一次性插入过多报错
Parameter initialization
Summary of some experiences in the process of R & D platform splitting
Flowable UI制作流程图
[machine learning] logistic regression code exercise
当 update 修改数据与原数据相同时会被更新吗?
如何介绍自己的项目经验?
redis可视化工具读取数据乱码问题解决
常用的DOS命令[逐渐完善]
Flowable 高级篇
QMainWindow 详解