C# + .NET5 Web入门实战:私人笔记(1):第二阶段正式开启
connygpt 2024-11-28 08:06 10 浏览
2021.08.24,我开始了C#入门教程的编写。以开发《私人日记》产品为例,基于.net 5,进行winform端的开发。到2021.10.10结束,一共做了26节,功能已初步完成,代码同步在gitee,感兴趣的可点 从零开始用C#做产品系列教程索引(.netcore winform)? 了解更多。
按原计划:
- 第一阶段用C# + .net core实现winform的开发;(已完成)
- 第二阶段用C# + .net core实现web网站的开发;
- 第三阶段用C# + .net core实现跨平台多端(Windows、苹果、安卓)的开发;
通过这三个阶段,让大家来体验一下C#的无所不能。
架构选型
在完成了第一阶段后,经过近半个月的休整,今天起开始第二阶段的教程,采用c#+.net5来实现。然而对技术架构的选型,说起来却是一波三折。
因为我是一名独立开发者,专门做自己的产品,我所做的web基本都是产品功能与网站的结合,并且也不需要团队配合,所以一直以来我的web应用都是用asp.net + framework + webform来开发,感觉webform方式没什么不好,单人开发起来很高效。
开始入手教程后,看到微软推出了blazor,感觉这个东西比较有趣,写前端可以像写后端一样,关键是可以不再用代码烂得要命的javascript,所以最初的计划是用blazor。但是实际用下来,感觉现在还是不大成熟,比如这个私人笔记项目,分类树控件没有,还可以勉强自己写一个;可是第三方文本编辑器自己写就不现实了,网上搜到的基本都是要付费的,所以blazor就只能暂时先放一放了。
以我个人观点来看,如果不用blazor,那用webform是最优方案:
- 1、webform比较成熟,服务端控件丰富,开发起来会很快;
- 2、我对webform比较熟悉,比较做了10多年了,有些经验可以分享给大家;
唯一不好的就是这个技术比较老,大家可能没什么兴趣学习。
现在流行的都是mvc开发模式,这种在我看来唯一的好处就是解耦,进而更适合团队开发,但对独立开发者并不是很友好:
- 1、明明一个页面能搞定的事情要拆分成几个步骤来完成;
- 2、没有了服务端控件,这就导致开发者要么需要自己写,要么使用第三方控件,增加了开发量;
- 3、需要大量使用javascript来实现服务端与客户端的交互,比较繁琐;
以上3点原因导致个人开发效率会降低很多,这也是我一直没有动力学习mvc模式的原因。
本来我是想继续用webform来继续做第二阶段教程的, 可是当我用vs2019新建网站应用时,发现.net5已经完全不支持webform的形式了,如果想用webform就必须选择framework,这就意味着我们第一阶段用.net5积累的类库就得重构了。
所以现在面临的问题是:
- 用framework:没人看、重构;
- 用mvc:对独立开发者并不高效、我个人对mvc开发没有积累,可能影响教程质量;
两难时刻,我想教程最终是给大家看的,还是把选择权交给大家吧。于是同时在QQ群和头条发起了投票。来看下大家的投票结果:
头条的投票结果:
QQ群的投票结果:
明显mvc的模式占优势,那就没什么可说的了,硬着头皮也要上了。
想想这样也好,逼着自己学习一些新的内容,并且之前写的类库不需要重构了,也基本能按照预定的计划顺利执行了。
另外,作为一个没学过mvc的写出的mvc教程,可能更接地气一些,至少能以一个初学者的角度让教程更容易理解。
不过话说回来,虽然采用的是mvc模式,但具体开发我仍然会以独立开发者的身份来看待,我讲究的是单兵作战,不是团队合作,所以我并不会完全遵从mvc的开发模式,这点需要大家有所了解。
好了,前因交待到此。我们正式开启新的教程。开始之前,需要提醒第一次看到此文的读者,此教程的一些类库需要第一阶段教程的积累,在此文开始之前,我们已经有了一部分的代码积累了:
刚刚刷到此文的,建议先从第一阶段教程看起。
项目名称
本阶段我把项目名称稍微调整了一下,由《私人日记》改成了《私人笔记》,感觉笔记比日记包含的内容更丰富些。
web开发的难点
winform相对来说更简单些,只需要关心windows系统就可以;
web开发相对来说就要复杂些了。需要考虑两方面:服务端和客户端。服务端就是服务器操作系统,客户端就是浏览器,也就是所谓的后端与前端。后端像我们这种小网站项目就相对简单些了,不需要考虑高并发的情况,只要处理好逻辑基本就够了;前端则稍微复杂些,基本的:html控制结构,css来控制效果,javascript来控制逻辑,然而最复杂的当属javascript。主要体现在以下:
1)复杂控件的使用
如树、表格、分页、编辑器等。自己编写需要花费相当长时间,效果也并不理想。一般都是使用第三方类库。然而这些类库的功能、使用方法、版权都不统一,给开发者造成了大量的困扰。
2)服务端与客户端的交互
比如在分类树上做一个添加操作,需要同时在前端和后端操作才可以,逻辑一般是先通过js提交到后端,通过返回值判断成功添加后再向前端插入节点。这一切都需要用javascript来控制。
相信以上两点因素,会让一些winform开发者们头痛不已。其实如果是商业开发,还是建议找个收费的第三方库,这样会大幅提高开发效率。但我们现在是做教程,不可能要每个同学都去买一份授权才能体验,所以就放弃这条路了。即便用到第三方库,也都会使用免费的,开发效率和效果放在次要位置,以大家能了解、掌握知识为主。
下面开始切入正题。由于今天是开篇,所以内容相对轻松,我们只需要创建一个Web应用,然后能跑起来就算过关。
1、新建web应用
打开vs2019,打开我们阔别已久的Diary解决方案
解决方案资源管理器视图:解决方案右键->添加->新建项目
过滤选项,依次选择c#、windows、web,然后选asp.net core web应用,这里一定不要选错了,不然我们说的可能就不是一个东西了。
然后下一步,我取名为Diary.Web,继续下一步
这里考虑到就是自己的小网站,没有https的要求,所以勾掉。
- 启用Docker暂时没这个需要,不需要勾选;
- Enable Razor runtime compilation,运行Razor运行时编译,就是类似动态脚本编译,暂不需要;
然后创建。
稍等片刻,当我们看到这个画面的时候,一个web应用就创建好了。
2、运行web应用
接下来我们需要运行看下效果。首先在解决方案资源管理器视图,Diary.Web项目上点鼠标右键,选设为启动项目。
这个意思就是默认我启动web应用,而不是之前的Diary.Win了。看到Diary.Web变成黑色,就是切换成功了。
然后这时,按F5,稍等片刻,你会看到这样的画面:
OK,我们的网站应用就创建成功了。
今天开篇,所以就先不多讲了。最近开始了新产品的研发,外加我本身对.net core开发web也处于摸索阶段,可能没有办法像之前一样两天一更,不过我会在尽可能的情况下抽出时间,请关注我以获得第一时间的更新。
----------------------------------------------------
本教程项目源码已作为开源项目加入到Gitee,代码内容会随教程实时更新,大家有兴趣的话可以关注我,以获得最及时的更新。私信:
私人日记 可以获取相关链接;
大家阅读过程中有哪些看不懂或未尽兴的地方,可以在评论区留言,我会先记下来在后续的教程中找机会再说。
教程有帮助的话请大家帮忙关注、转发、扩散,能不能开专栏还需要你们的支持!
相关推荐
- 3分钟让你的项目支持AI问答模块,完全开源!
-
hello,大家好,我是徐小夕。之前和大家分享了很多可视化,零代码和前端工程化的最佳实践,今天继续分享一下最近开源的Next-Admin的最新更新。最近对这个项目做了一些优化,并集成了大家比较关注...
- 干货|程序员的副业挂,12个平台分享
-
1、D2adminD2Admin是一个完全开源免费的企业中后台产品前端集成方案,使用最新的前端技术栈,小于60kb的本地首屏js加载,已经做好大部分项目前期准备工作,并且带有大量示例代码,助...
- Github标星超200K,这10个可视化面板你知道几个
-
在Github上有很多开源免费的后台控制面板可以选择,但是哪些才是最好、最受欢迎的可视化控制面板呢?今天就和大家推荐Github上10个好看又流行的可视化面板:1.AdminLTEAdminLTE是...
- 开箱即用的炫酷中后台前端开源框架第二篇
-
#头条创作挑战赛#1、SoybeanAdmin(1)介绍:SoybeanAdmin是一个基于Vue3、Vite3、TypeScript、NaiveUI、Pinia和UnoCSS的清新优...
- 搭建React+AntDeign的开发环境和框架
-
搭建React+AntDeign的开发环境和框架随着前端技术的不断发展,React和AntDesign已经成为越来越多Web应用程序的首选开发框架。React是一个用于构建用户界面的JavaScrip...
- 基于.NET 5实现的开源通用权限管理平台
-
??大家好,我是为广大程序员兄弟操碎了心的小编,每天推荐一个小工具/源码,装满你的收藏夹,每天分享一个小技巧,让你轻松节省开发效率,实现不加班不熬夜不掉头发,是我的目标!??今天小编推荐一款基于.NE...
- StreamPark - 大数据流计算引擎
-
使用Docker完成StreamPark的部署??1.基于h2和docker-compose进行StreamPark部署wgethttps://raw.githubusercontent.com/a...
- 教你使用UmiJS框架开发React
-
1、什么是Umi.js?umi,中文可发音为乌米,是一个可插拔的企业级react应用框架。你可以将它简单地理解为一个专注性能的类next.js前端框架,并通过约定、自动生成和解析代码等方式来辅助...
- 简单在线流程图工具在用例设计中的运用
-
敏捷模式下,测试团队的用例逐渐简化以适应快速的发版节奏,大家很早就开始运用思维导图工具比如xmind来编写测试方法、测试点。如今不少已经不少利用开源的思维导图组件(如百度脑图...)来构建测试测试...
- 【开源分享】神奇的大数据实时平台框架,让Flink&Spark开发更简单
-
这是一个神奇的框架,让Flink|Spark开发更简单,一站式大数据实时平台!他就是StreamX!什么是StreamX大数据技术如今发展的如火如荼,已经呈现百花齐放欣欣向荣的景象,实时处理流域...
- 聊聊规则引擎的调研及实现全过程
-
摘要本期主要以规则引擎业务实现为例,陈述在陌生业务前如何进行业务深入、调研、技术选型、设计及实现全过程分析,如果你对规则引擎不感冒、也可以从中了解一些抽象实现过程。诉求从硬件采集到的数据提供的形式多种...
- 【开源推荐】Diboot 2.0.5 发布,自动化开发助理
-
一、前言Diboot2.0.5版本已于近日发布,在此次发布中,我们新增了file-starter组件,完善了iam-starter组件,对core核心进行了相关优化,让devtools也支持对IAM...
- 微软推出Copilot Actions,使用人工智能自动执行重复性任务
-
IT之家11月19日消息,微软在今天举办的Ignite大会上宣布了一系列新功能,旨在进一步提升Microsoft365Copilot的智能化水平。其中最引人注目的是Copilot...
- Electron 使用Selenium和WebDriver
-
本节我们来学习如何在Electron下使用Selenium和WebDriver。SeleniumSelenium是ThoughtWorks提供的一个强大的基于浏览器的开源自动化测试工具...
- Quick 'n Easy Web Builder 11.1.0设计和构建功能齐全的网页的工具
-
一个实用而有效的应用程序,能够让您轻松构建、创建和设计个人的HTML网站。Quick'nEasyWebBuilder是一款全面且轻巧的软件,为用户提供了一种简单的方式来创建、编辑...
- 一周热门
- 最近发表
- 标签列表
-
- kubectlsetimage (56)
- mysqlinsertoverwrite (53)
- addcolumn (54)
- helmpackage (54)
- varchar最长多少 (61)
- 类型断言 (53)
- protoc安装 (56)
- jdk20安装教程 (60)
- rpm2cpio (52)
- 控制台打印 (63)
- 401unauthorized (51)
- vuexstore (68)
- druiddatasource (60)
- 企业微信开发文档 (51)
- rendertexture (51)
- speedphp (52)
- gitcommit-am (68)
- bashecho (64)
- str_to_date函数 (58)
- yum下载包及依赖到本地 (72)
- jstree中文api文档 (59)
- mvnw文件 (58)
- rancher安装 (63)
- nginx开机自启 (53)
- .netcore教程 (53)