Angular 16+ 高级教程 – 谈谈 ASP.NET Core & Angular & React 在业务开发上各自的优势和体验
前言
日常, 我的开发都围绕着 ASP.NET Core 和 Angular. 这篇想聊聊它们各自的特点和解决问题的方式.
以及最重要的, 我们该在什么时候采用何种方案更为妥当.
浅谈项目分类
我一般会把项目分 4 种来看待
1. Web 1.0 时代的网站
比如企业网站. 这类网站的目的是 present information. 用户行为是游览 + 少量的交互.
游览就是一页一页的. 所谓的 multipl pages
交互分两种
一种是 "show more 交互". 网页设计有一个 "渐进式阅读” 的原则. 你不要一上来就给我一堆的内容, 我要先过一遍, 感兴趣的才深入阅读.
于是网页就出现了许多 hidding information. 当用户感兴趣时就通过交互展开这些内容.
另一种交互是 "provide data 交互". 用户想提交一些数据给站长.
比如像订阅就需要提供 Email, 想联系站长需要提供, name, contact, message 等等.
2. Web 2.0 时代的网站
Web 1.0 的特色是, 网页内容都是由站长提供的. 而 Web 2.0 则多了一个提供方. 那就是用户.
比如, 电子商务网站.
register > add to cart > order > payment. 这些都是用户修改了网站信息. 这在 1.0 是没有的.
3. Web Application
Web Application 指的是利用 Web 技术 (HTML, JS, CSS) 做出来的应用程序.
网站和 Application 应用程序的区别是
App 强调在 "用", 网站则是偏 "看"
我们拿一家卖产品的公司来举例.
step 1: start from 企业网站, present company profile and product catelog, 用户来 “看”, 有兴趣就联络 submit enquiry form (Web 1.0)
step 2 : upgrade to 电子商务网站, 用户 "看" > 注册 > add to cart > make order > payment (Web 2.0)
step 3 : upgrade to Web Application, 交互流程没有变, 只是提升了交互体验 (PWA 了解一下)
step 4 : upgrade to mobile app, web app 受技术限制, 体验不会比原生 mobile app 好. 所以要想再提升就要用 mobile app 了.
整个过程就是需求和体验的升级, 从开始的 "看" + "enquiry form" 到后来的 "register > add to cart > order > payment", 用户需要做的事情越来越多.
4. 后台管理系统 (control panel)
不管是 CMS, CRM, ERP 都算是管理系统.
你可以把它看成是 "一种" Web Application. 但我会把它独立出来.
浅谈 ASP.NET Core
ASP.NET Core 主要有 2 种用法
1. Razor Pages / MVC 适用于开发网站
2. Web API 适用于开发 API server (前后台分家)
开发网站
网站有分很多种, 比如 企业网站, 电商网站, 博客网站, 社交平台等等.
精确的话 ASP.NET Core Razor Pages 方案比较适合开发 Web 1.0 年代的网站. 比如企业网站 (就是那种以游览为主, 很少交互的网站)
原因我后面会说, 先聊聊网站访问流程和开发分工.
网站访问流程
一般网站访问流程大致是这样的
step 1: browser request web page from server
step 2 : server 从数据库获取数据
step 3 : server 把数据和 HTML 模板做结合 (binding)
step 4 : server 返回 HTML
step 5 : 用户交互
step 6 : browser 通过 form post 或者 ajax 发 request 到 server
step 7 : server 返回 HTML 或者 JSON
step 8 : browser 刷新或者局部刷新
网站开发分工
后端负责 ASP.NET Core 和 Database, 前端负责 HTML, CSS, JS.
ASP.NET Core 的强与弱
step 2, 3, 4 是 ASP.NET Core 主要发力的地方. (这部分都是偏 "游览“)
step 5 - 8 则是偏 "交互", 除了 form submit + reload page 和 server 处理 ajax 并返回 JSON 以外, 其余的部分 ASP.NET Core 几乎是一点忙都帮不上的.
于是, 当网站需要越多交互体验的时候, 采用 ASP.NET Core 开发就会越吃力.
网站开发 – 分工
ASP.NET Core 的开发人员是属于后端开发人员. 上面 8 个 step 只有 binding 模板/form 需要一点点的前端知识
其余的地方完全不需要. 所以常见的分工方式是一个. 前端负责 HTML, CSS, 其余的都交给 ASP.NET Core 开发人员.
binding 模板的部分双方配合一下或者让 ASP.NET Core 的开发人员学一点简单的 HTML 就可以了
2. 微软本身就没有要提升这部分.
重交互的网站, JS 必然重. 一旦 JS 重你就必须要搞一个前端开发. TS, Sass, Bundle 那一套就来了.
Angular 16+ 高级教程 – 谈谈 ASP.NET Core & Angular & React 在业务开发上各自的优势和体验的更多相关文章
- C# 6 与 .NET Core 1.0 高级编程 - 40 ASP.NET Core(上)
译文,个人原创,转载请注明出处(C# 6 与 .NET Core 1.0 高级编程 - 40 章 ASP.NET Core(上)),不对的地方欢迎指出与交流. 章节出自<Professiona ...
- C# 6 与 .NET Core 1.0 高级编程 - 40 ASP.NET Core(下)
译文,个人原创,转载请注明出处(C# 6 与 .NET Core 1.0 高级编程 - 40 章 ASP.NET Core(下)),不对的地方欢迎指出与交流. 章节出自<Professiona ...
- 52abp框架asp.net core & Angular快速开发实战视频教程
课程标题 52abp框架asp.net core & Angular全栈开发实战视频课程 课程简介 从零开始学 52ABP企业开发框架,企业项目是如何开发和技术选型,代码如何管理,团队协同开发 ...
- ASP.NET Core 基础教程总结 - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core 基础教程总结 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 基础教程总结 ASP.NET Core 基础教程总算是有了个简单 ...
- ASP.NET Core 基础教程-约定 - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core 基础教程-约定 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 基础教程-约定 因为 ASP.NET Core 是可以跨平台的 ...
- [ASP.NET Core 3框架揭秘] 跨平台开发体验: Linux
如果想体验Linux环境下开发.NET Core应用,我们有多种选择.一种就是在一台物理机上安装原生的Linux,我们可以根据自身的喜好选择某种Linux Distribution,目前来说像RHEL ...
- 翻译 - ASP.NET Core 托管和部署 - 在 Linux 上使用 Nginx 托管 ASP.NET Core 网站
翻译自 https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/linux-nginx?view=aspnetcore-5.0 本文介 ...
- ASP.NET Core 简单实现七牛图片上传(FormData 和 Base64)
ASP.NET Core 简单实现七牛图片上传(FormData 和 Base64) 七牛图片上传 SDK(.NET 版本):https://developer.qiniu.com/kodo/sdk/ ...
- 从零开始实现ASP.NET Core MVC的插件式开发(一) - 使用ApplicationPart动态加载控制器和视图
标题:从零开始实现ASP.NET Core MVC的插件式开发(一) - 使用Application Part动态加载控制器和视图 作者:Lamond Lu 地址:http://www.cnblogs ...
- 从零开始实现ASP.NET Core MVC的插件式开发(二) - 如何创建项目模板
标题:从零开始实现ASP.NET Core MVC的插件式开发(二) - 如何创建项目模板 作者:Lamond Lu 地址:https://www.cnblogs.com/lwqlun/p/11155 ...
随机推荐
- 一天快速入门Django:从0到1创建属于自己的Web应用
DjangoWeb开发 Day1 1. Django的安装 pip install django 2. 创建项目 2.1 终端创建 "python环境路径\scripts\django-ad ...
- 2024-07-13:用go语言,给定一个从0开始的长度为n的整数数组nums和一个从0开始的长度为m的整数数组pattern,其中pattern数组仅包含整数-1、0和1。 一个子数组nums[i.
2024-07-13:用go语言,给定一个从0开始的长度为n的整数数组nums和一个从0开始的长度为m的整数数组pattern,其中pattern数组仅包含整数-1.0和1. 一个子数组nums[i. ...
- 转载 | ofd转pdf最好用的软件,ofd文件如何转化成pdf?
1.背景 需要将ofd转换为pdf 2.使用方法 使用taurusxin 开发的软件Ofd2Pdf.exe即可实现,软件版权归原作者所有.这里表示感谢! 3.下载地址 官网:https://githu ...
- Modbus转Profinet网关模块连PLC与流量计通讯案例
一.案例背景 在饮品加工厂中,会涉及到流量计的使用,然而达到对流量计的精准控制和数据采集需要用到PLC,由于PLC和流量计可能使用不同的通信协议(如Profinet和Modbus),造成两者不能自接进 ...
- Django 通过自定义context_processors实现自定义tag
通过自定义context_processors实现自定义tag by:授客 QQ:1033553122 测试环境 Win7 Django 1.11 实践 步骤1 应用根目录下,新建自定义context ...
- 2024-07-24:用go语言,给定一个整数数组 nums,其中至少包含两个元素。 可以根据以下规则执行操作:选择最前面两个元素删除、选择最后两个元素删除,或选择第一个和最后一个元素删除。 每次操作
2024-07-24:用go语言,给定一个整数数组 nums,其中至少包含两个元素. 可以根据以下规则执行操作:选择最前面两个元素删除.选择最后两个元素删除,或选择第一个和最后一个元素删除. 每次操作 ...
- python+selenium基础之XPATH定位(第一篇)
世界上最远的距离大概就是明明看到一个页面元素站在那里,但是我却定位不到!! selenium定位元素的方法有很多种,像是通过id.name.class_name.tag_name.link_text等 ...
- 单细胞转录组上游fasta文件处理
单细胞分析上游fasta文件处理 --基于cellranger与dropseqRunner ###如果测序文件由10X genomics平台产生,则采用cellranger count的基本流程进行f ...
- pygame游戏:python版本的贪吃蛇游戏 —— Python 贪吃蛇魔改大赛
在网上找python版本的贪吃蛇游戏,看到一个Gitee Community / Python 贪吃蛇魔改大赛,感觉还不错,这里收藏下. 一等奖 1名 Snake Quest 蛇蛇闯关: jeffya ...
- Hutool常用工具类
1.背景 实际开发中经常用到很多的工具类,这里hutool提供了一系列的工具类,下面重点介绍常用的工具类. 2.使用步骤 官方文档:https://hutool.cn/docs/#/ 添加依赖 < ...