
ASP.net:MVC/LINQ/SQL/Web
火星人陈勇
火星人,昔日曾是敏捷客,归来已是AI人。
敏捷开发咨询师,早期软件成本估算咨询师,资深程序员。
大语言模型产品经理,ChatGpt教练,LangChain编程培训师,LangStart开源项目发起人。
展开
-
asp.net mvc3:自己编写的一些垃圾代码,删前分享(2013-11-13)
1. cshtm优化 var style = (status.ID == planViewModel.StatusFirstPositive.ID || status.ID == planViewModel.StatusFirstOnboard.ID ? "margin-left: 17px; " : "")原创 2013-11-13 17:57:29 · 4462 阅读 · 0 评论 -
简单干净的C#方法设计案例:SFCUI.AjaxValue()之二
之一,之二,之三 先重温一下原则:最小信息原则:方法接口应只传递最必须的业务信息。包括两个层面:1. 技术信息不要暴露2. 业务信息不能重复业务信息分析先别管技术问题,想一想做这个事情需要哪些数据才能完成?1. 原来的值是多少(显示用)2. 可能的值有哪些(选择用)3. 点一个值后,应该执行什么操作(这个是核心业务)4. 返回后做什么(刷新用)还有一些问题哪去了?5. 返回的值刷新到哪里?这个调用原创 2012-02-05 13:40:58 · 6406 阅读 · 0 评论 -
简单干净的C#方法设计案例:SFCUI.AjaxValue()之三
之一,之二,之三 之前讲到,方法声明为: @SFCUI.AjaxValue(story.ID, effortValue.ToString(), Effort.EffortPlannedValues, "/SFC/Efforts/AjaxSetEffortPlanned?itemID=" + story.ID + "&value={0}", ajaxOnSuccess: "refreshLef原创 2012-02-05 15:42:18 · 8292 阅读 · 4 评论 -
简单干净的C#方法设计案例:SFCUI.AjaxValue()之一
之一,之二,之三 有很多时候,需要我们在代码中执行很多重复的工作,这时候要涉及到如何使用可复用的方法来解决重复性问题。比如一个项目管理系统,要求在不同的页面的不同位置都能调整任务的估算工作量,而且要使用Ajax方法(因为每次调整后都要实时看到总计),应该如何做呢?从操作步骤上看,大致分为这么几步:0. 显示当前的值(应该看上去能修改的样子)1. 点击当前值,弹出一个小窗口,里边是可能的取值(比如0原创 2012-02-05 13:40:16 · 11139 阅读 · 6 评论 -
简单干净的C#方法设计案例:SFCUI.AjaxLoadPage()之一
之一,之二案例背景本文将介绍如何通过一行代码实现下图中的功能。红色框中是http://blog.youkuaiyun.com/cheny_com/article/details/7234619提到的AjaxValue,也只有一行代码,看上去类似一个下拉菜单,但能从内部把Ajax功能执行完毕并显示到屏幕上。现在要做的业务需求是:在上述任务分配界面,做右边红框边点选人员并调整名字后,左边的蓝框中整个页面要更新。这原创 2012-02-20 10:27:58 · 7348 阅读 · 0 评论 -
ASP.net用法系列:如何从基类调用LINQ/EF类的属性
如果有各种动物,比如Dogs/Cats/Cows/...,都有不同的Age方法,若想从其基类用相同的方法ShowAge来显示这些不同的Age,自然就可以借用基类Animal的virtual函数,比如:public class Animal{ public virtual Age { get {....} set {....} } p原创 2011-11-24 23:15:39 · 4690 阅读 · 0 评论 -
最佳ASP.net之LINQ学习资料
在使用LINQ过程中偶然有点心得想记录下来,没想到查阅到一个非常好的网站,直接转载了。1. 【推荐】LINQ系列文章,适合按部就班学习或查阅http://kb.cnblogs.com/page/42465/本系列文章导航LINQ to SQL语句(1)之WhereLINQ to SQL语句(2)之Select/DistinctLINQ to SQL语句(3)之Count/Sum/Min/Max/A转载 2011-12-04 10:11:43 · 6551 阅读 · 0 评论 -
C# asp.net常见编译|运行错误
编译器给出的错误描述的朦胧程度是有目共睹的,本文记录了平时常见的编译错误及其正确内容以辅助参考。长期更新。按第一个有意义的错误的首字母排序,以便查找。错误: “$”未定义(出现在master/layout的jquery中)2011-05-01原因1:若在MVC中,一种原因是链接参原创 2011-04-02 19:39:00 · 5381 阅读 · 1 评论 -
asp.net mvc 如何在执行完某任务后返回原来页面
很多时候删除某个元素后,我们都希望回到原来的页面,如何实现呢?假设在XController的index.cshtml(或aspx)中有:删除,为了让删除后回到index页面,可以使用:且在XController.cs中,将原来的 [HttpPost]ActionResult Delete(int id){ try { ...原创 2011-06-14 17:28:00 · 9174 阅读 · 2 评论 -
asp.net怎样在URL中使用中文、空格、特殊字符
在cshtml或aspx/ascx中制作链接时,若参数可能是中文,则需要使用HttpUtility.UrlEncode():@Html.Link("角色", "/SFC/Users/Users2Roles?user=" + HttpUtility.UrlEncode(User.I原创 2011-08-15 11:51:33 · 3971 阅读 · 0 评论 -
如何将asp.net MVC2项目升级为MVC3项目(微软官方自动升级工具:ASP.NET MVC 3 Application Upgrader )
微软最近发布了一个自动工具来完成这个复杂的升级工作,但这个工具本身很难找到,被baidu/google中众多讨论手工升级的文章压在底下。偶然找到特此与大家分享: ASP.NET MVC 3 Application Upgrader: http://aspnet.codeplex.原创 2011-02-12 10:46:00 · 6229 阅读 · 0 评论 -
简单干净的C#方法设计案例:SFCUI.AjaxLoadPage()之二
之一,之二合并显而易见的代码所谓显而易见的代码,就是看上去和别处相同的代码。在这个例子中,就是View‘中初始页面显示的内容与未来刷新的内容重复;Controller中初始显示的运算和刷新的相同。Controller好办,如此: private void PrepareAssignItemsData(int sprintID) { var sp原创 2012-02-20 10:28:28 · 6806 阅读 · 2 评论 -
jqueryui 1.8.19引用顺序(及var basePrototype = new base()错误)
在jqueryui1.8.19中,发现它没有使用原来1.8.17里边那个巨大的260K的单个js,而是把各种JS散开放了,有效地防止了JS下载的带宽。不过放错顺序,会出现各种错误,不一而足,比如标题括号中的那个位置就经常出做,自己测试及上网搜索了一下,找到个现在可用的顺序,供大家参考。(在搜索过程中发现有人1.4.X就开始用分离的多个小JS,但此之前本人一直单个的JS) jquery本身必须放在原创 2012-04-28 22:01:20 · 9727 阅读 · 1 评论 -
火星人代码示例:系统设置(asp.net MVC3中View的复用示例)
功能简介最终功能如图:上面一行两张图,是火星人的用户故事树配置界面,在每个用户故事的后面都有一个按钮(悬停可见),点击后出现操作菜单,其中一部分是新建下级故事菜单。若用户选择左侧,菜单上只包括一个项目“通用故事”;若选择右侧,则包括很多故事(受当前故事类型的约束,这个比较复杂以后再说)。这段代码,等一下将会出现关键字“StoryTreeType”,左侧叫做“Simple”(简单树),右侧叫做“Le原创 2012-11-25 21:53:15 · 7637 阅读 · 0 评论 -
L型代码结构案例:Link访问权限(上)
本文探讨Link访问权限的最佳实现方法,力求外观干净且封装良好。这些代码将位于L型代码结构(参见松结对编程系列中的定义)的下层,调用者无需理解其原理。原创 2013-09-15 23:25:24 · 5559 阅读 · 0 评论 -
L型代码结构设计案例:BrothersDropdownList()
通过一个案例,演示代码复用的一般原则和步骤。结论是:1. 任何相似代码都是坏味道2. 调用代码的信息量应该与自然语言相同3. 重构时做对比测试。原创 2013-08-05 18:34:48 · 4970 阅读 · 0 评论 -
VS2010升级VS2012必备(MVC4 WebPage2.0 Razor2.0资料汇集)
刚把项目升级到2012,发现发生了很多变化,以下是最近看过的网站和资料汇集,供需要者参考。本文在最近一个月可能会不断更新。Razor2.0新特性介绍:介绍1:http://vibrantcode.com/blog/2012/4/10/whats-new-in-razor-v2.html/取消了@Href和@Url.Content;可以使用conditional attribute了(就是class原创 2013-06-17 22:33:24 · 9631 阅读 · 0 评论 -
asp.net mvc3:自己编写的一些垃圾代码,删前分享(2013-01-18)
不小心发现自己编写的一些垃圾代码,删前留念。可以作为面试题使用。有时候一个程序员会或者不会什么具体的技术差别不大,因为看看书几分钟就能学会;但编写垃圾代码一旦养成习惯,不是一天两天能改好的。1. 这段代码等同于? return vc.RequestContext.HttpContext.Request.Params["view"] != null原创 2013-01-18 09:57:46 · 4237 阅读 · 3 评论 -
敏捷开发“松结对编程”系列之十七:L型代码结构(编程篇之二)(中)
续前文。本文是“松结对编程”系列的第十七篇。(松结对编程栏目目录)上一篇文章基本上把Controller中Action和与Action直接相关的复用讲到了,下面讲讲比较困难的部分。几个关键问题1. 如何实现整体结构相同,而局部不同的复用比如我们的业务需求中,整体上都是一个横向的结构(请参考下图),每个单元上面都是标题,下面都是增删改查之类的按钮,唯独中间的部分不同。如果是团队,要显示成员,如果是产原创 2013-02-02 14:04:49 · 4623 阅读 · 0 评论 -
敏捷开发“松结对编程”系列之十六:L型代码结构(编程篇之二)(上)
本文是“松结对编程”系列的第十六篇。(松结对编程栏目目录)今天正好要复用一段框架(asp.net MVC3,服用范围包括Controller和View),把过程记录一下。与复用一般的过程相比,L型代码结构有这么几个特点:1. 如果复用有难度,在复用之前,一般不刻意形成“可复用代码”。顺便就能写成函数的例外。2. 从第二次复用的时候,就形成复用代码。这个听起来很容易,但要求:编写复用代码的人,就是调原创 2013-02-02 13:45:03 · 10233 阅读 · 3 评论 -
敏捷开发“松结对编程”系列之十五:L型代码结构(编程篇之一)
本文是“松结对编程”系列的第十五篇。(松结对编程栏目目录)之前的L型代码结构的前三篇提到过,L型代码结构的微观计划和估算过程会与一般的编程方法不同,今天正好要编写一些新代码,边写边记录整个过程。如果中间卡壳了,我也会尽量记录下来。业务需求这是《火星人》中的一个功能,以往用户故事是使用故事树来展示的(就是有父子关系的用户故事),故事树隶属于一个产品Product。但是最近要发版了,感觉一个以前认为暂原创 2013-01-27 16:09:10 · 9575 阅读 · 1 评论 -
简单干净的C#方法设计案例:MFCUI.CheckBoxLink(二)
方案2第一步:写一个新的函数名在原来的代码下面第二步:把原来的代码拷贝到下面两步下来,如图: @this.MergeParameter( @MFCUI.ImageLink("突出显示故事板上的状态", this.MergeParameter("highlight", "OnBoard"), displayAxTextUseCheckIcon: true, displayAsText:原创 2013-01-06 12:59:12 · 4473 阅读 · 0 评论 -
简单干净的C#方法设计案例:MFCUI.CheckBoxLink(一)
说明:本人不是.net/Html/Ajax/Jquery....高手,所以经常用C#做一些这些技术能做的事情!本文仅用来说明如何简化设计之用。如果出现具体技术问题,请大家按自己的实际情况理解。问题假设想在屏幕上做这样一个功能(而且有很多这样的需要):在当前页面http://localhost:53979/Agile/StoryBoard/TeamStoryBoard?teamID=103中有一个链原创 2013-01-06 12:58:35 · 11671 阅读 · 13 评论 -
简单干净的C#方法设计案例:MFCUI.CheckBoxLink(三)
接上篇。第七步:需求变更外加挪地方新函数叫这个名字:位于class MFCUI之下。[csharp] view plaincopypublic static MvcHtmlString CheckBoxLink(WebViewPage page, string title, string parameter, string value) { var span = new TagBuil原创 2013-01-06 12:59:49 · 4288 阅读 · 0 评论 -
Razor:从aspx到cshtml常见错误及正确书写方法
从aspx转到chshtml还是有很多要适应的地方的,本帖是个人学习笔记帖不断更新。每天开着本帖编程。按第一个有意义的编译错误的首字母排序,便于查找: Cannot implicitly convert type 'void' to 'object'错误:@Html.Render原创 2011-04-02 15:33:00 · 21886 阅读 · 0 评论 -
char varchar nchar nvarchar 四者的区别是什么(为何SQL Server自动给字符串末尾加空格)
本着低碳的原则将几个变量声明为nchar,结果发现尾巴上每次都多一大串空格,C#中不得不多次Trim劳心费神易出错。上网一查原来四种字符串看似相近其实讲究很多,其中以本帖最为全面,特此转发。原帖:http://zhidao.baidu.com/question/59109925.转载 2011-04-04 11:24:00 · 7155 阅读 · 0 评论 -
ASP.NET MVC 3 Beta: Built-in support for charts(MVC3 Razor中使用图表的最佳方案)
选择了很久,终于找到代码最简单的解决方案:其实就是MS自带的chart。MS Chart存在已久,只是在以前的用法中,需要保存img,这将导致MVC的访问冲突(曾困扰过我们一个项目),大致就是: 以下可用:.net3.5 + mvc + MS Chart 以下不可用:.net4.转载 2011-05-01 12:46:00 · 4491 阅读 · 6 评论 -
[视频]怎样提升asp.net mvc 软件的性能 - 微软免费视频Improving ASP.NET MVC Application Performance
这是微软MVC大会第二期的一个视频,本没有绝对链接,可从http://www.mvcconf.com/videos入口(这时候会播放第一个视频),按F3搜Performance,找到链接后点击,开始播放这个视频……虽然是英文的,但中间大部分时间在操作VisualStudio,还是很好理解的。 大纲大致如下: 00:00-怎样定义Web软件的性能。04:00-设置和测量性能基线,这段很重要,后面就可原创 2011-06-05 19:07:00 · 2398 阅读 · 1 评论 -
asp.net MVC中怎样让LINQ Designer自动生成的类从别的类继承并调用其基类构造器?
继承是比较简单的,比如在Designer.cs中有一个类叫 Text100,可以在Text.cs中直接写:public class Text //这个就是基类{ private int _length = 0; public Text(int length) { _length = length; }} public partial原创 2011-06-14 12:22:00 · 2108 阅读 · 0 评论 -
C++程序员的C#转型手册之二:学习过程
这是C++程序员的C#转型手册的第二篇。(之一,之二)为了学习C#,买过书,上过网,问过问题,找过人,有的有用,有的帮助很大,有的没什么用,下面记录了我自己的过程;每个人会有所不同,请灵活掌握。买什么书?买过一本C#的书,看了没有一周就搁下,几乎再也没有翻动过,后来就送人了。C#原创 2011-09-10 16:24:04 · 3344 阅读 · 0 评论 -
C++程序员的C#转型手册之一:环境资源
这是C++程序员的C#转型手册的第二篇。(之一,之二)以下是一年来从C++转型到C#的经历总结,如果你也正在这条路上,可做参考。 本人之前曾经算是个C++高手,之前用过Fortron/Baisc/C,从C和C++居多,最后一句代码写在2003年的11月。主要编写Server端的代原创 2011-09-08 17:09:57 · 5963 阅读 · 3 评论 -
Failed to generate a user instance of SQL Server due to a failure in starting the process for the user instance. The connection
昨天电脑运行有点卡,曾经F5失败2此,今天早上突然出现此错误,查了半天,原来是个老问题(从2006年就有人评论)。转载 2011-05-01 09:09:00 · 4067 阅读 · 0 评论 -
VS2010 + Sql Server Express 2008 R2 如何安装(兼谈错误:The database 'XXX' cannot be opened because it is version 661. This server support
完全相同的项目和环境(VS2010 + Sql Server Express 2008 R2),居然报错说不支持数据库版本,终于解决了。原创 2011-05-20 13:35:00 · 11603 阅读 · 0 评论 -
VS 2010 SP1 and SQL CE :ScottGu's Blog
有消息称ScottGu从原来的VS组(尤其是新兴的MVC、Razor)调任到云计算部门(Azure),这件事情也在一定程度上表明了MS的战略:借助开发工具(VS)与运营工具(各种版本的Windows/SQL)的联合优势,在未来云计算中占有一席之地。VS2010 SP1对SQL CE的支持正是其中一种表现。转载 2011-05-18 18:25:00 · 3263 阅读 · 0 评论 -
SSCE(SQL Server Compact Edition)适合哪些应用场景
SSCE是微软的免费数据库,目标是在单机和嵌入式系统中使用,目标是作为单机软件的数据库系统,或嵌入式设备的离线数据库系统,以及“访问量不大的网站或内部应用”。转载 2011-05-18 17:02:00 · 5807 阅读 · 0 评论 -
ASP.NET MVC 1.0 学习笔记(随时更新)
2011-05-03 作者注:现在已经MVC3.0了,本帖不再更新。请参考本人在asp.net: MVC、Razor 分类中的新文章。 本文是电子书ASP.NET MVC 1.0的学习笔记,记录了阅读和使用本书中案例时遇到的问题和经验。某些问题是低级的(所以才记录下来免得大家浪费时间呵呵),见笑。 免费电子书:ASP.NET MVC 1.0http://aspnetmvcboo原创 2010-04-02 09:25:00 · 4255 阅读 · 0 评论 -
ASP.NET MVC资源汇总(本文不断更新)
本人的开发实践标明,即使是编写一个极小的永远不可能成长成大中型程序的程序,也应该使用MVC(或其他任何类似技术),因为这样才能保证有一天有能力去开发大中型程序。所以刚刚从C++转向ASP.net的时候实际上非常郁闷,因为这里MVC彻底地混合在一起,虽然很有短平快的感觉,但是也很让人对未来的维护担心。还好,MS终于出了MVC来解决这个问题。 本文意在帮助寻找MVC的同好们快速寻找和遴选网上相原创 2010-03-30 16:42:00 · 2139 阅读 · 0 评论 -
C#编码简单性之函数篇(如何编写简短的C#代码,随时更新)
作者:陈勇出处:blog.youkuaiyun.com/cheny_com 这是编码简单性系列中的其中一篇,之前几篇包括代码篇和语义篇。因为要积累案例,会随时更新。 之前提到:编码简单性的“心法”就是:只要屏幕上有任何两部分代码看上去相似,则一定有合并办法。但在代码层面,无论如何简化,都常常原创 2011-04-29 23:36:00 · 2603 阅读 · 0 评论 -
asp.net中Roles和User的异常处理机制的思考
有两个函数,假设让我们实现,那么怎样处理异常情况呢?Roles.AddUserToRole(user, role); 在user已经是role的情况下应当怎样?Roles.RemoveUserFromRole(user, role); 在user已经不是role的情况下应当怎样?原创 2011-07-29 16:38:37 · 2668 阅读 · 1 评论 -
敏捷开发中asp.net MVC的开发次序感受(先开发View?先开发Model?先开发Controller!)
各种思路和顺序都试过。最开始时先编写Model,毕竟Model是所有一切的基础,再说没有Model,Controller里边用到该怎么办。后来改成先编写View,View才是用户能看到的东西啊,不知道用户看什么,怎么知道应该提供什么Model。现在先编写Controller。在讨原创 2011-07-08 12:27:38 · 7349 阅读 · 19 评论