当前位置: 首页 > news >正文

用 .NET MAUI 10 + VS Copilot 从 0 开发一个签到 App(三)

用 .NET MAUI 10 + VS Copilot 从 0 开发一个签到 App(三)

一、本文目标

从这一篇开始,我们正式进入业务功能开发

本文将完成一个最重要的里程碑:

使用 Visual Studio Copilot,从 0 生成一个“可用但不幼稚”的签到页面

读完本文,你将看到:

  • Copilot 在 MAUI + XAML 中能做到什么程度
  • 哪些代码“看起来对,但实际不该直接用”
  • 一个真实项目中,如何控制 Copilot 的参与边界

二、签到页面的设计目标

在写任何代码之前,先明确目标。

这个签到页面需要做到:

  • 一个明确的页面标题
  • 一个「签到」按钮
  • 当前用户最近一次签到时间
  • 不引入复杂 UI 动效

这是一个典型的业务页面,而不是 Demo 展示页。


三、使用 Copilot 生成第一步

1️⃣ Copilot Prompt(原始输入)

我在 MainPage.xaml 中,直接向 Copilot Chat 输入了下面的提示:

制作一个签到app, 要求有身份验证, 多租户, 使用freesql orm

这一步非常关键

Prompt 写得越清晰,后面需要人工修改的成本就越低。

Copilot回复如下

你的需求是将当前的 .NET MAUI 工程改造成一个支持身份验证、多租户,并使用 FreeSql ORM 的签到应用。
我会分步实现基础结构,优先完成以下内容:
1.	添加 FreeSql ORM 支持。
2.	设计用户、租户、签到相关的数据模型。
3.	实现基础身份验证(如简单登录界面和逻辑)。
4.	多租户支持(用户与租户关联)。
5.	基础签到功能界面和逻辑。首先,我将获取项目文件列表,确认需要修改和添加的文件。接下来会逐步实现上述功能。下一步将进行如下操作:
1.	在 MauiProgram.cs 中集成 FreeSql ORM(注册为单例)。
2.	创建数据模型(用户、租户、签到记录)。
3.	添加登录页面和基础身份验证逻辑。
4.	设计多租户结构(用户与租户关联)。
5.	初步实现签到功能界面。

2️⃣ Copilot 生成

Copilot 很快给出了一个完整的文件结构,大致包括:

  • MauiProgram.cs
  • Entities.cs

• 在 MauiProgram.cs 注册了 FreeSql ORM,使用 SQLite 数据库。
• 新建了 Entities.cs,包含租户、用户、签到记录的数据模型。


四、添加登录页面和基础身份验证逻辑,并设计多租户结构与签到功能界面。

继续实现以下内容:

  1. 登录页面(用户名、密码、租户选择)。
  2. 登录逻辑(身份验证,用户与租户关联)。
  3. 登录成功后进入签到页面。
    我将先创建登录页面的 XAML 和后台代码,并实现租户列表加载与登录校验。稍后会添加签到页面。

image

已完成以下步骤:

  1. 创建了登录页面(LoginPage.xaml 和后台代码),支持租户选择、用户名、密码输入。
  2. 登录逻辑实现,校验用户与租户信息,登录成功后跳转签到页面。
  3. 创建了签到页面(SignInPage.xaml 和后台代码),用户可进行签到操作。
  4. 设置应用入口为登录页面。
    你可以直接运行项目,体验多租户身份验证和签到功能。

五、首次运行出错

❌ 问题 1:freesql页面获取实例没弄好, 因为maui10改了一些特性,手工调整了一下ok了

Copilot 有时会:

  • 没有最新SDK的训练数据,写出旧版方法
  • 默认加入不必要的写法

这会让程序运行不起来,需要手工介入。

❌ 问题 2:当前的 App.xaml.cs 文件中,MainPage 和 CreateWindow(IActivationState?) 都设置了主页面,可能导致 MAUI 导航和窗口初始化冲突。

image

Copilot 完美的修复了问题

六、登录页面中文乱码

生成的页面编码不对

  1. 用支持 UTF-8 的编辑器(如 VS、VS Code)打开 LoginPage.xaml。
  2. 点击右下角编码, 用GBK重新打开, 选择“另存为”,编码选 UTF-8。

image


七、这一页完成后的状态

到这一步为止,我们已经拥有:

  • 一个可运行的登录和签到页面
  • 一个结构清晰的 ViewModel
  • 没有任何“Demo 味”的临时代码

这也是整个签到 App 的业务起点


八、Copilot 在这一阶段的真实评价

客观来说:

  • Copilot 可以完成 80%~90% 的样板代码
  • 但剩下的 10%,决定了项目的质量

尤其是在:

  • 新SDK方法
  • 可扩展性

这些地方,人类工程师不可替代


九、下一篇预告

下一篇,我们会把这个“单页签到”升级成真正可用的功能

第 4 篇:签到逻辑落地——从按钮点击到数据持久化(SQLite)

同时,也会开始为后面的:

  • 登录
  • 多租户

正式铺路。

到下一篇,我们开始写“真正的业务代码”。🚀

http://www.gsyq.cn/news/132179.html

相关文章:

  • 【linux内核】Linux内核的同步机制
  • (100分)- 部门人力分配(Java JS Python C)
  • 详细介绍:正则表达式超详细版
  • 高职金融科技应用专业可考取的金融科技类证书
  • (100分)- 报数游戏(Java JS Python)
  • nPM2100 自带标准电池模型
  • 完整教程:数据结构**排序** 超越Arrays.sort() 探索Java排序算法的奥秘与魅力
  • (100分)- 表达式括号匹配(Java JS Python C)
  • 非线性最优化问题求解器Ipopt介绍
  • NPM2100 电池电量估算
  • java计算机毕业设计网络探店 基于大数据的美食探店可视化平台 互联网餐饮探店数据爬取与分析系统
  • Windows系统文件inetcomm.dll丢失损坏 下载修复方法
  • linux centos7.9 中文乱码
  • springcloud springboot nacos版本对应 - 指南
  • java计算机毕业设计网络流行语资源库建设及实现 网络热词共享与语义标注平台 互联网流行语知识图谱与检索系统
  • NPM2100 可控的gpio
  • .NET 文件操作中常见的内存泄漏场景梳理
  • Qt 信号槽机制的一些实现细节
  • 【读书笔记】《苏格拉底的申辩》
  • 毕业季必看!7款免费AI写论文神器实测,一站式搞定选题、大纲到降重
  • 别慌!AI淘汰的不是人,是不会用AI的人
  • 【人工智能AI安全与对齐】
  • C++按索引同时删除vector中的多个元素
  • 5.string类型
  • 8个AI论文工具,MBA轻松搞定研究论文!
  • Windows系统文件hcproviders.dll丢失或损坏 下载修复方法
  • Thinkphp和Laravel手工艺品商城交流与买卖平台vue
  • 4.常用数据结构和单线程模型理解
  • 【学习笔记】后量子密码迁移科技研究
  • 大模型微调完整学习路线,附20天到4个月详细规划_零基础入门人工智能(AI)大模型微调!