ASP.NET MVC 4 小项目开发总结

项目很小,就是一个企业站的前后台,主要包括新闻模块、产品模块、视频模块、留言。没有什么技术上的难点,大部分就是CRUD操作。开始之前评估开发时间为4天,实际coding时间为3天,debug时间为2天,关于debug时间较长的问题,后面有较为详细的分析。

所用技术和工具

  • Visual Studio 2012
  • ASP.NET MVC 4
  • Entify Framework 5
  • Sqlite
  • Uploadify

关于ASP.NET MVC 4

相比MVC 3,个人感觉并没有太大的变化,也许是一些新特性没有用到。

debug花费时间分析

除开没有后台页面等其他因素,自身原因分析如下:

拿到需求后没有进行较为详细的确认

虽然项目需求简单,但有些地方开始时疏于沟通,最终所省掉的时间还是用在了debug上,甚至更多。

浏览器兼容性问题

仅在开发阶段使用chrome浏览器,ie系也仅测试ie10,其余未考虑,后续在浏览器兼容性方面的调试花费了较多的时间。

例如如下的问题:

  • ie7下jquery.validate报错

    this.attr("novalidate", "novalidate"); 修改为:if (typeof (Worker) !== "undefined") { this.attr('novalidate', 'novalidate'); }

  • ie7下ckeditor的dialog加载iframe窗口高度不正常问题

    尝试了很多网上的解决方案,均不管用,后来使用了一个非常规手段,就是给浏览器加上强制使用ie8模式的meta信息

  • ie8下jquery.validate不起作用

    版本匹配问题:经测试:jquery-1.8.2 with jquery.validate-1.9正常

uploadify控件使用不是很熟练

很多api需要现查官方文档,而且官方站点还需FQ。同时在集成uploadify到ckeditor里面的时候,也花费了较多的时间,主要是用在查官方文档上面。这块写了较多的js代码,在后续浏览器兼容性方面调试也比较麻烦。

  • firefox下上传文件出现http error 302

    网上大部分的情况是firefox和chrome同时出现此问题,基本都是说session的原因,但我的环境chrome却没有出问题。我的解决方案比较简单,就是对上传文件的后台action取消授权检查。应该还是跟session有关,更好的解决方案可查询谷歌。

Entity Framework sqlite数据源适配问题

主要是开始无法新建sqlite数据源,ef的设计器总是报错,无法通过数据库更新实体等。另外sqlite中文模糊查询问题。

    • 设计器报错问题

      需要到sqlite官网下载合适的数据源驱动程序http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki

    • sqlite中文字符串模糊查询问题

      原来使用的方式:dbcontext.Post.Where(t=>t.Name.Contains(s)),对应的sql语句为charindex,改为:list = context.Database.SqlQuery(string.Format("select * from product where name like '%{0}%'",arcTitle)).AsQueryable();

转载于:https://www.cnblogs.com/qiuliang/archive/2013/06/14/3136723.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/575933.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度优化LNMP之Nginx [2]

配置Nginx gzip 压缩实现性能优化 1.Nginx gzip压缩功能介绍 Nginx gzuo压缩模块提供了压缩文件内容的功能,用户请求的内容在发送出用客户端之前,Nginx服务器会根据一些具体的策略实施压缩,以节约网站出口带宽,同时加快了数据传…

go int 转切片_一文掌握GO语言实战技能(二)

Go 数组Go 切片Go 变量和内存地址Go Map 类型Go 面向对象编程Go 方法的定义GO 数组数组是同一类型的元素集合。Go中的数组下标从0开始,因此长度为n的数组下标范围是[0, n-1]。整数数组中元素默认初始化为0,字符串数组中的元素默认初始化为""。…

Swing

1 历史 1.1 SUN Jdk1.1 AWT ,控件很少,不方便应用程序开发 1.2 java 1.2 Swing 基于 Awt 的绘图功能能重绘的界面组件,提供了极其吩咐的控件 a:性能慢   b:结构优秀(mvc) c:实际应用很少 1.3 …

Shell 脚本调试

Shell 脚本调试 1、学习脚本开发规范2、好的编码习惯提示:脚本不是你写的或者windows下开发的脚本,你检查脚本明明没有问题,但就是执行出现错误,要想到执行dos2unix格式化下。好习惯:每次写脚本都执行dos2unix格式化下…

设置固定长度_加气块砌筑(构造柱、圈梁设置)技术交底21条

墙体砌筑技术交底我给下发21条,内容不全,砌筑的墙体观感差,欢迎大家提出宝贵意见1、填充墙的材料、平面位置尺寸见建筑施工图纸,不得随意更改。2、当首层填充墙下无基础梁或结构梁板时,墙下应做基础,基础作…

网页设计表格单元格线条及边框设置

本文关键字:网页,表格,设置 灵活的在网页设计中使用单元格线条及边框,可以大幅提高网页开发的效率,下面我们就来实际分析一下。 图1 网页中的单元格线条示范 其实上面的三个表格都有三行三列,隐藏分隔线的诀窍在于rules&#…

深度优化LNMP之MySQL

MySQL数据库优化框架体系 1.硬件层面优化 2.操作系统层面优化 3.MySQL数据库层面优化 4.MySQL安全优化 5.网站集群架构上的优化 6.MySQL流程、制度控制优化 硬件层面优化 1、数据库物理机采购 CPU: 64位CPU,一台机器2-16颗CPU。至少2-4颗&#xff0…

element vue 纵向滑动条_Vue 部分

1、ES6Vue :1、Vue 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的…

C#集合通论

前言 写这篇文章的最初动力是来自于一次笔试经历。有一道笔试题大概是这样的:程序使用一个txt文件来存储操作记录。存储记录是多行字符串,每一行代表一次操作记录,格式如下:用户名操作事项名称操作时间。现在假设这个txt文件已经非…

Shell 脚本案例实战 [4]

for循环结构for 循环结构语句1.for循环结构:语法:for 变量名 in 变量取值列表do指令…done提示:在此结构中“in 变量取值列表”可省略,省略时相当于in “$”,使用for i 就相当于使用for i in “$”2.C语言型for循环结构…

python后台截屏_Python实现屏幕截图

之前使用Python构建了一个图片转文字小工具,但是使用的是使用系统自带的截图工具然后监听目录变化来实现的。接下来我想直接使用Python来构建一个截图工具,这样就可以结合转换工具使用。构建图形界面本文使用Python自带的GUI库Tkinter来构建图形界面。Tk…

ORACLE 进入sqlplus的协议适配器错误

ORACLE 进入sqlplus的输入用户名密码的时候提示: ORA-12560: TNS: 协议适配器错误 解决方案是在 我的电脑,属性--高级--环境变量---系统变量--新建,变量名oracle_sid,变量值XXXX,XXXX就是你的databaseSID 在网络上查找了一下,似乎…

深度优化LNMP之PHP

PHP缓存加速介绍1.操作码介绍及缓存原理当客户端请求一个php程序时,服务器的PHP引擎会解析该PHP程序,并将其编译为特定的操作码文件(Operate Code,opcode)该文件是执行PHP代码后的一种二进制表示形式。默认情况下,这个…

pythonenumerate函数_enumerate,enumerate函数的使用方法

这需要使用到度enumitem宏包,这是一个非常有用的宏包,你可以去阅读一下它的文档。它对于自定义编号环境有问很大的帮助。\documentclass[UTF8]{ctexrep}\usepackage{enumitem}\begin{document}Thisisatextfortestingtheindentofenumerateenviornment.Ple…

链接文件

ln [-sf] 原文件 目标文件 如果ln不加任何参数就进行链接,那么就是硬链接,-s是符号链接 -f 如果目标文件存在,就主动将目标文件直接删除后在建立转载于:https://www.cnblogs.com/seasonsstory/p/3152816.html

8g ubuntu 树莓派4b_树莓派4B安装 Ubuntu 20.04 LTS

硬件:Raspberry Pi 4B(4g或8g版本)系统:Ubuntu 20.04 LTS官网:https://ubuntu.com/download/iot/raspberry-piPC:win10相关工具:sd card formatter 5.0.1win32diskManager 1.0下载系统镜像使用sd card formatter格式化…

data矩阵poj 2778 DNA Sequence

最近研究data矩阵,稍微总结一下,以后继续补充: ac自动机处理字符串,dp计算谜底,用矩阵来减速 每日一道理 巴尔扎克说过“不幸,是天才的进升阶梯,信徒的洗礼之水,弱者的无底深渊”。风…

PHP服务Fcgi进程及PHP解析优化

1、PHP引擎缓存加速常见四种软件:1.eAccelerator2.Zendcache3.xcache4.apc5.zendopcache php5.5自带2、使用tmpfs作为缓存加速缓存的文件目录 [rootweb02 ~]# mount -t tmpfs tmpfs /dev/shm -o size256m[rootweb02 ~]# mount -t tmpfs /dev/shm/ /tmp/eaccelerator…

JS中typeof与instanceof的区别

JavaScript 中 typeof 和 instanceof 常用来判断一个变量是否为空,或者是什么类型的。但它们之间还是有区别的:typeof typeof 是一个一元运算,放在一个运算数之前,运算数可以是任意类型。 它返回值是一个字符串,该字符…

电路 晶振频率_都说晶振是电路的心脏,你真的了解它吗?

之所以说晶振是数字电路的心脏,就是因为所有的数字电路都需要一个稳定的工作时钟信号,最常见的就是用晶振来解决,可以说只要有数字电路的地方就可以见到晶振。常见种类我们常说的晶振,包含两种。一种需要加驱动电路才能产生频率信…