基于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

相关文章

Python实例题之pygame开发打飞机游戏实例代码

《Python实例题之pygame开发打飞机游戏实例代码》对于python的学习者,能够写出一个飞机大战的程序代码,是不是感觉到非常的开心,:本文主要介绍Python实例题之pygame开发打飞机... 目录题目pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本代码解释初始化部

使用Python开发一个现代化屏幕取色器

《使用Python开发一个现代化屏幕取色器》在UI设计、网页开发等场景中,颜色拾取是高频需求,:本文主要介绍如何使用Python开发一个现代化屏幕取色器,有需要的小伙伴可以参考一下... 目录一、项目概述二、核心功能解析2.1 实时颜色追踪2.2 智能颜色显示三、效果展示四、实现步骤详解4.1 环境配置4.

Python基于微信OCR引擎实现高效图片文字识别

《Python基于微信OCR引擎实现高效图片文字识别》这篇文章主要为大家详细介绍了一款基于微信OCR引擎的图片文字识别桌面应用开发全过程,可以实现从图片拖拽识别到文字提取,感兴趣的小伙伴可以跟随小编一... 目录一、项目概述1.1 开发背景1.2 技术选型1.3 核心优势二、功能详解2.1 核心功能模块2.

Python使用smtplib库开发一个邮件自动发送工具

《Python使用smtplib库开发一个邮件自动发送工具》在现代软件开发中,自动化邮件发送是一个非常实用的功能,无论是系统通知、营销邮件、还是日常工作报告,Python的smtplib库都能帮助我们... 目录代码实现与知识点解析1. 导入必要的库2. 配置邮件服务器参数3. 创建邮件发送类4. 实现邮件

基于Python开发一个有趣的工作时长计算器

《基于Python开发一个有趣的工作时长计算器》随着远程办公和弹性工作制的兴起,个人及团队对于工作时长的准确统计需求日益增长,本文将使用Python和PyQt5打造一个工作时长计算器,感兴趣的小伙伴可... 目录概述功能介绍界面展示php软件使用步骤说明代码详解1.窗口初始化与布局2.工作时长计算核心逻辑3

python web 开发之Flask中间件与请求处理钩子的最佳实践

《pythonweb开发之Flask中间件与请求处理钩子的最佳实践》Flask作为轻量级Web框架,提供了灵活的请求处理机制,中间件和请求钩子允许开发者在请求处理的不同阶段插入自定义逻辑,实现诸如... 目录Flask中间件与请求处理钩子完全指南1. 引言2. 请求处理生命周期概述3. 请求钩子详解3.1

如何基于Python开发一个微信自动化工具

《如何基于Python开发一个微信自动化工具》在当今数字化办公场景中,自动化工具已成为提升工作效率的利器,本文将深入剖析一个基于Python的微信自动化工具开发全过程,有需要的小伙伴可以了解下... 目录概述功能全景1. 核心功能模块2. 特色功能效果展示1. 主界面概览2. 定时任务配置3. 操作日志演示

JavaScript实战:智能密码生成器开发指南

本文通过JavaScript实战开发智能密码生成器,详解如何运用crypto.getRandomValues实现加密级随机密码生成,包含多字符组合、安全强度可视化、易混淆字符排除等企业级功能。学习密码强度检测算法与信息熵计算原理,获取可直接嵌入项目的完整代码,提升Web应用的安全开发能力 目录

Redis迷你版微信抢红包实战

《Redis迷你版微信抢红包实战》本文主要介绍了Redis迷你版微信抢红包实战... 目录1 思路分析1.1hCckRX 流程1.2 注意点①拆红包:二倍均值算法②发红包:list③抢红包&记录:hset2 代码实现2.1 拆红包splitRedPacket2.2 发红包sendRedPacket2.3 抢

SpringBoot后端实现小程序微信登录功能实现

《SpringBoot后端实现小程序微信登录功能实现》微信小程序登录是开发者通过微信提供的身份验证机制,获取用户唯一标识(openid)和会话密钥(session_key)的过程,这篇文章给大家介绍S... 目录SpringBoot实现微信小程序登录简介SpringBoot后端实现微信登录SpringBoo