百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 博客教程 > 正文

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是一款全面且轻巧的软件,为用户提供了一种简单的方式来创建、编辑...