基于ASP.NET的微信开发心得体会(二)

2024-08-23 02:18

本文主要是介绍基于ASP.NET的微信开发心得体会(二),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

项目框架:

        说白了,之前一直没有接触过什么框架,对框架这个概念,更是一无所知,举个例子。。。在本科的时候,写的一些最基本的大作业(如XXX管理系统什么的),对于数据访问层的功能实现,都是用ASP.net中自带的sqlcommand类实现,写起来很繁琐,而且数据库中的每一张表,都必须人工手动地将其映射到应用程序中,然后进行相关增删改查的操作。

        在斟酌一番后,采取WinForm框架(没有做很深的了解),该框架能够自动将表映射成为一个实体类,其增删改查方法均是这个实体类中的类方法,因此,省去了大量时间去研究增删改查的代码实现(好吧,其实现在我才知道,这是框架最基本的功能之一)


数据库设计:

       在数据库设计阶段,所有的表,都是根据业务逻辑来考虑与设计,而前期的需求做的完整与否,直接影响了数据库设计的全面性,因此,在设计的时候,发现了很多问题:

        比如,当第一个版本的数据库设计出来之后,并在项目开发中加以利用之时,会发现很多功能的实现,需要中间的连接表,如用户表与课程表,多对多的映射关系,就必须要通过连接表来实现多对多的映射。

        再有,数据库字段的设计,这一点感触比较深刻,在后台管理中,课程上传(主要是上传图片,涉及到路径的保存),由于课程图片命名是按照“课程名+时间戳+随机序号”的命名规则(确保图片名的唯一性),而且在上传时,数据库中图片路径(一次上传多张图片)保存是采取字符串拼接的方式保存(这样前台获取这个路径只需要用split方法解析一下字符串就能获取每一张图片的路径),图片的路径字段(PicUrl)当初设计的时候,字段长度没有考虑得十分详细,仅仅只设置了varchar(50),结果在后台管理系统中上传多张图片的时候,就发生了比较尴尬的问题:发现图片已经上传到了服务器,结果发现数据库中的字段却是空的。。。。让人郁闷了比较长的时间。

      心得:

          在这个项目中,数据库的设计,其实也有点类似于增量模型,首先对核心功能分析后,设计相应的表,而且必须保证这个功能模块所涉及的表,必须正确而且不妨碍后期因为其他功能需要而添加的表的设计。最好还是在一开始就尽最大可能保证数据库的设计完整而全面。。。。不过这个过程最需要的是经验的积累。


业务逻辑:

    一、线上课程教学:

     这个项目,核心功能是“课程教学”,即采用图片轮播+独立音频的方式来实现,这里当初最开始,甲方的想法是采用视频,结果等我把功能都实现了之后,又说采取视频的形式占用的带宽较大,影响性能,最好改用ppt的展现方式,当时我一听,彻底懵逼了,卧槽,这尼玛也能行?

    PS:当时脑子里的想法,受他影响,是一副这样的画面:在HTML页面中加载ppt,效果各种绚丽,各种XXXXX,而且还要再移动端进行展示,我尼玛,可以选择狗带了。。。。。后来找了一下相关的文档,发现也不是不可以(毕竟是采用ASP.NET+PPT的开发思路,都是微软的东西,应该会有相关API文档可以查阅,但无奈的是,实现起来比较复杂)。后来还是采用了图片轮播的方式来代替ppt(类似于相册浏览一样),这样一来,实现思路就简单了许多。

    无非主要解决的问题就是如下几个:

   1、如何实现图片动态加载,因为用户在浏览图片(或者说课程),我们不可能将全部的图片(一门课通常最少也得有五六十张图片)都加载出来,然后再给用户展示,这样做的性能太差,而且,那流量走的。。肉疼。。(土豪就随意啦)。

   2、如何实现图片的轮播,因为这个项目是在移动端上进行展示,用户在浏览图片的时候,从习惯上来说,都是采取左右滑动的操作习惯来观看上一张或者下一张图片。

   3、图片针对不同移动端的自适应问题,因为手机有不同型号,不同的操纵系统,带来的影响就是屏幕的大小与分辨率的差异,因此,必须要处理好图片的自适应问题。使其充满整个屏幕而不变形。

   4、移动端横竖屏的问题,因为在开发的时候,发现,针对屏幕较小的手机,若是采用竖屏的模式来浏览图片时,图片往往显得很小,看的很费力,因此最好是能够实现一种效果,让用户在点开课程的时候,就将屏幕横置。

   5、针对横竖屏的问题,必须要考虑手指滑动事件的差异,当手机处于竖屏的时候,手指滑动事件是左右滑动,而当手机变为横屏的时候,则手指的滑动事件就变成了上下,因此,针对不同的情况需要采取不动的事件。

  

二、我负责的其他功能模块:

       线上课程功能模块,主要展现的信息,必须包括线上课程列表的展示,线上课程购买(涉及到微信支付),线上课程试听(在购买之前,用户能够试听,而且仅仅是让他听音频),线上课程教学(购买线上课程之后,进入学习页面进行学习。)以及后台管理系统对线上课程增删改查实现(其中添加线上课程与修改线上课程实现起来主要是对图片和音频上传的处理比较恶心)。

       线下课程功能模块:这个模块实现起来就容易多了,线下课程采取的是线下报名的方式,类似于讲座一样,用户能够自行发布线下课程的信息,只不过需要通过后台管理员的审核。包括展示列表、详情、以及后台管理系统对其增删改查的整个完整的功能模块。

       好文功能模块、活动功能模块、招工招聘功能模块。。。。。。这些功能模块大体上都是与线下课程功能模块比较类似。。。然后都由我来负责完善。


三、微信接口知识的扩展。

      以上是针对项目的基本业务逻辑,但是这里还需要提到的一点就是,微信的接口,

     因为我们需要弄一个个人中心(类似淘宝中我的淘宝一样,用户可以看到自己的订单啊,购买的课程啊,或者成为哪些学堂的VIP啊什么的,还有用户的昵称、头像、性别等等等等等等等等等等)。

       以及实现支付的功能(你丫都是说基于微信的项目了,基本上就是用微信支付)

      通过代码的方式实现公众号里菜单的自定义。

      用户关注之后,消息的自动回复。

     这些。。。。我还是继续偷个懒,在下一篇博客里进行详细说明好了,毕竟想要在一篇博客里全部说完。。。。嗯,其实就是我不想敲了,回头再说=。=

     



               




这篇关于基于ASP.NET的微信开发心得体会(二)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1098064

相关文章

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

W外链微信推广短连接怎么做?

制作微信推广链接的难点分析 一、内容创作难度 制作微信推广链接时,首先需要创作有吸引力的内容。这不仅要求内容本身有趣、有价值,还要能够激起人们的分享欲望。对于许多企业和个人来说,尤其是那些缺乏创意和写作能力的人来说,这是制作微信推广链接的一大难点。 二、精准定位难度 微信用户群体庞大,不同用户的需求和兴趣各异。因此,制作推广链接时需要精准定位目标受众,以便更有效地吸引他们点击并分享链接

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

OpenHarmony鸿蒙开发( Beta5.0)无感配网详解

1、简介 无感配网是指在设备联网过程中无需输入热点相关账号信息,即可快速实现设备配网,是一种兼顾高效性、可靠性和安全性的配网方式。 2、配网原理 2.1 通信原理 手机和智能设备之间的信息传递,利用特有的NAN协议实现。利用手机和智能设备之间的WiFi 感知订阅、发布能力,实现了数字管家应用和设备之间的发现。在完成设备间的认证和响应后,即可发送相关配网数据。同时还支持与常规Sof

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

poj 1258 Agri-Net(最小生成树模板代码)

感觉用这题来当模板更适合。 题意就是给你邻接矩阵求最小生成树啦。~ prim代码:效率很高。172k...0ms。 #include<stdio.h>#include<algorithm>using namespace std;const int MaxN = 101;const int INF = 0x3f3f3f3f;int g[MaxN][MaxN];int n

如何在Visual Studio中调试.NET源码

今天偶然在看别人代码时,发现在他的代码里使用了Any判断List<T>是否为空。 我一般的做法是先判断是否为null,再判断Count。 看了一下Count的源码如下: 1 [__DynamicallyInvokable]2 public int Count3 {4 [__DynamicallyInvokable]5 get

2、PF-Net点云补全

2、PF-Net 点云补全 PF-Net论文链接:PF-Net PF-Net (Point Fractal Network for 3D Point Cloud Completion)是一种专门为三维点云补全设计的深度学习模型。点云补全实际上和图片补全是一个逻辑,都是采用GAN模型的思想来进行补全,在图片补全中,将部分像素点删除并且标记,然后卷积特征提取预测、判别器判别,来训练模型,生成的像

Linux_kernel驱动开发11

一、改回nfs方式挂载根文件系统         在产品将要上线之前,需要制作不同类型格式的根文件系统         在产品研发阶段,我们还是需要使用nfs的方式挂载根文件系统         优点:可以直接在上位机中修改文件系统内容,延长EMMC的寿命         【1】重启上位机nfs服务         sudo service nfs-kernel-server resta