随笔分类 - Alex Song
摘要:Linq中的 First 和 Single 在实际工作中会经常看到,从字面意思上很容易明白,一个是取列表中的第一个元素,一个是取到唯一的元素。如果你想再进一步的了解,可以读读本文。下文参考翻译自: C#/.NET Little Wonders: First() and Single() - Similar Yet DifferentFirst() - 返回序列中的第一个元素事实上这个方法有四种选择:First() 返回序列中的第一个,如果没有元素存在就抛出异常 InvalidOperationException. First(Predicate<TSource>) 基于你提供的条件
阅读全文
摘要:这个系列,我和大家一起来学学C#中一些非常有用函数,对于有些人来说可能它们不起眼,因此常常忽略它们。它们不会嚷嚷到:“使用我吧!我会让你节省很多的时间,而且让你的代码变得更加的简洁!” -- 但是,这些话会从对它们熟悉的程序员的脑海中涌现出来。好的!先来看看ToLookup:下文参考翻译自: C#/.NET Little Wonders: The ToLookup() LINQ Extension Method故事的背景让我们先来创建一个简单的类来表示产品,产品有ID,类别,和价格,这个类没有什么特别: public sealed class Product { public int Id {
阅读全文
摘要:如果你有一个一对多的关系,您想对两个表执行Join,但你只想要将每一个“一对多”关系的中产生一行,你可以参考下面:一个很容易理解的例子,比如博客园的随笔(Post)和评论(comment)两个表,如下图:如果你想获取随笔的ID, Title 和 一个评论的ID, 内容的话,有以下两个方案:方案一:方案二:第一个方案在有很少随笔,但是每个随笔有很多评论的情况下更优;第二个方案在随笔数目多,但是每个随笔的评论较少的情况下更优;大家可以想想原因。本文来自喜乐的ASP.NET(Alex Song)
阅读全文
摘要:在我之前"优雅代码"的文章中我提到了函数大小规定的问题,写出优雅简明代码的论题集 -- Csharp(C#)篇[1]写出优雅简明代码的论题集 -- Csharp(C#)篇[2]在这篇文章中我还想更详细的谈谈为什么好的代码必然不会有大的函数,-- 写小的函数不是我们的目的,但是为了使你的代码可读性强,你开始花时间重构它们,然后,你发现函数开始缩小,类开始缩小。最后你会发现这才是你想要的代码--就像是一本更贴切用户需求的文档。一个函数只做一件事一个函数应该只做一件事,这样不但你能够更好的命名你的函数,理解和阅读代码也变得更加的容易。如果你遇到一个特殊的情况不得不打破这个原则,可
阅读全文
摘要:之前有人问我这个问题。我回答:如果你使用Visual Studio 2010,那么 NuGet 可以使你的生活更加美好。当你项目里要引用到的一些库时候,比如JQuery 库或者 NHibernate, NUnit, log4net 你就可以考虑使用NuGet。它可以辅助你安装或者更新这些库。当然我不得不继续说下去从安装到使用:NuGet是一个Visual Studio 的扩展, 首先你必须要安装它:可以到官方网站: http://nuget.org/然后设置自动检查更新进入 工具|选项,然后环境|扩展管理器 ,点击“ 自动检查更新,安装的扩展。 “当你有一个Visual Studio扩展安装像
阅读全文
摘要:搜索功能(新!) 在Visual Studio中有许多不同的搜索方法(增量搜索,快速查找,在文件中查找,查找工具栏等),对于一个给定的任务往往是不太明确的。 而且查找对话框本身也使得我们没法很好的查看和跳跃代码。 Productivity Power Tools 增加了新的查找扩展。 在编辑文本的状态下,按Ctrl + F 就弹出了这个小而强大的窗口,通过这个窗口你可以使用大多数的快速查找功能,如替换,大小写的选项,并增加了NET的正则表达式! 增强的滚动条 (新!)Enhanced Scroll Bar 提供三种模式(你可以在工具选项中选择不同模式: Scroll bar/ Map/ Ful
阅读全文
摘要:我在Scott Guthrie的博客中看到这则消息,他发布的时候应该比我早几个钟头。 Pluralsight (一个非常好的 .NET 培训公司) 给大家提供一个免费观看他们教程 jQuery 基础课程 机会, 但是只有36小时,而且没有中文的翻译,不过英文好的或者可以阅读英文的朋友应该可以看看. 这个课程是由 Dan Wahlin 推出的,包含 5 小时的内容. 这个课程免费观看应该是截至到北京时间星期五早上. 下面是我翻译的目录:jQuery的基础知识 35分33秒 简介 - 为什么使用jQuery?08:46 引用一个jQuery脚本06:24 使用CDN04:57 使用jQuery r
阅读全文
摘要:谢谢大家对本系列第一篇写出优雅简明代码的论题集 -- Csharp(C#)篇[1]的回复和讨论,我相信针锋相对的辩论不仅有助于发现答案,更让我们了解问题后面的实质。对程序员而言,我们的代码需要:1. 在预算内实现需求,让用户可以使用 -- 让自己或者公司可以赚到钱2. 方便自己修改及日后维护3. 方便别人修改及日后维护4. 便于重复使用,为以后的开发节省时间5. 让系统高效的运作从美国商学院毕业的...
阅读全文
摘要:最近和一些朋友讨论如何写出优雅的代码,我们都很喜欢C#,所以以C#为例。主要一共有三位程序员在一起讨论,为简单起见我用ABC代表我们三个人。
有时候我们会针对一些代码进行讨论,有时候我们会提出一些观点,有时候我们会一起学习网上一些现有的博客,为了便于大家引用,我给每一个论题都编上号。
在很多情况下,我们的意见统一,那么我会给大家呈现我们的结论;但是有些情况我们有分歧。
你可以加入我们的讨论,我非常也希望能够获知你的意见,让我们一起茁壮成长!
阅读全文
摘要:曾几何时,我遇到任何电脑问题,第一反应就是“重启”。 然后期待奇迹的发生。随着Windows 系统的不断完善,随着自己解决系统问题的能力不断加强,“重启法”解决问题越用越少。
现如今又用上了…
仔细想来,我们的工作和人生也经常需要重启一下。
阅读全文
摘要:前言怎么才能让asp.net 网站飞得更快,有更好的性能? -- 这是很多开发者常常思考的一个问题。我有时候会做大量的测试,或请求别人帮忙采集一些数据,希望能够验证网上一些专家的建议或证明自己的一些猜想。理论上讲,我们希望能开发出性能最优的网站,但是公司能否承担为此要付出的成本?这是实践过程中常常遇到的矛盾。 如何合理运用已知技巧在实战中是最有意义话题。本文罗列出一些优化的经验和方案,成文之前有幸看了一些高质量的文章。想强调一点,很多的部分不是我个人的劳动成果,但我完全的支持和同意这样去做,不敢独享,希望抛砖引玉,共同长进。IIS设置如果你的IIS服务器不需要外出访问互联网,关闭Certifi
阅读全文
摘要:现在的热门话题之一是HTML5 和 CSS3。好的, 它们都很时髦,它们也必然会影响网络开发的未来。 让我们尝尝鲜,花点时间安装设置一下,尽快让Visual Studio2010支持HTML5 和 CSS3 吧。 首先到微软网站上下载 Visual Studio 2010 SP1。双击开始执行VS10sp1-KB983509.exe, 然后等待补丁的下载安装完成。 – 由于Visual Studio 2010 一开始并没有支持HTML5, 但是在SP1包中,微软开始加入HTML5的规范。 HTML5的支持进入 工具 - >“ 选项, 然后选择 文本编辑器 &ldq
阅读全文
摘要:测试你的站点WebMatrix 包含一个 IIS Express, 它的工作方式很像 IIS. 然而, IIS Express是集成在WebMatrix里,在本地计算机上运行,这方便了我们进行本地测试。 有时你需要做的不仅仅是检查网页的外观, 你可能想知道在后台数据交换中发生了什么。例如,是否有损坏的链接,WebMatrix有一个工具可以带你直接到这类文件处作出修正。 选择 Site 工作区,然后在 Requests 功能区里会看到 Requests 工具,然后单击 Only Errors 只看错误。 前两个例子显示404.0错误代码,是因为您的网站没有所需图标。 要查看有关错误的详细信息
阅读全文
摘要:WebMatrix是微软于今年(2011)1月发布的,它的特点是:完全免费 可用于Windows 或 Linux 服务器 可用于PHP或ASP.net开发 支持Razor(CSHTML) 一种新的语法结构(Scott 强调Razor不是一种新的语言) 包含SEO优化工具 方便开发人员快速安装及使用已有的开源系统(有些不开源(或半开源)的系统也包含在内)例如:DotNetNuke, Umbraco, WordPress, Joomla
阅读全文
摘要:“除非你睡着了或刚刚从一个长假回来,你应该已经注意到了,…,微软重新进入到了'高效率开发者’的圈子中。” – Scott Willhite – Director of Community Programs from DotNetNuke
微软是这样定义WebMatrix -- 一个全新的网络开发工具,涵括了你所需所有网站开发的东西。
你还可以选择在Web Gallery 列表中的多种系统作为你网站的基础平台,例如:
DotNetNuke, Drupal, Orchard CMS, ASP.NET MVC, Joomla! Umbraco …., 而WebMatrix 真正革命性的地方在于引入Razor(CSHTML), 它可以大大简化我们的编程工作量。
从今天开始我会和大家一起来关注这个未来的新宠。在园子里已经有一些人做了介绍,我将会给大家一步步呈现WebMatrix的功能。
阅读全文
摘要:最近看到几个人问以上问题,在这里给个参考答案,但是具体的情况要具体处理,因为在Usercontrol中实现的功能可能会需要一些特殊的条件,比如它依赖于一些其他的类或者资源,那么大家要小心对待,需要debug的时候,看复杂程度决定是否继续下去还是干脆写个Custom Controls。A 生成DLL文件1. 让我们首先创建一个新项目(如果你已经有一个网站,可以直接打开),创建一个Web User Control,在这里我用的是inline code 模式,即没有codebehind 文件.2. 为了日后引用方便给它一个namespace,源码类似如下:[代码]3. 编译:具体选择请参考下图:你会
阅读全文
摘要:早上一起床,拿起身旁的智能手机轻轻一点就能知道室内室外天气,滑动屏幕,在建议列表中选择想穿的衣服,走到饭桌前,唤醒桌面屏幕,下早餐的订单; 在路上不论是开车或是坐地铁,可以监视家里的所有房间,同时通过控制智能机器人远程清洁和整理; 当你正在看电视忽然有电话打进来,互联网将主动把电视机调成静音,接完电话后声音再自动恢复; 通过随身的保健测试仪(可能是手表,项链或者腰带)将血压、脉搏等信息记录下来,然后传到保健机构,一旦发生意外情况,它会做出判断并迅速通过网络报警; 在下班前和另一半或者朋友通过社交网络约定好饭店,同时下好订单,在智能手机里设置允许饭店在半小时内跟踪你的行程以便预留好座位; 如果不
阅读全文
摘要:标题有点绕,请原谅。这里解释一下…背景:公司经常要发出一些Enewsletter,里面含有一些特定的链接,当用户点击的邮件内链接的时候,会根据用户的信息带客户到不同的页面,对一些客户会让他们填写表格,而这些表格一开始已经提前放置了客户的基本信息。客户的来源可能是从公司站点的原有注册用户,也有可能来自公司从其他地方收集的信息。-- 补充一句,这不同于一般的垃圾邮件,而是针对特定群体的邀请信。问题:实现的需求的速度是越快越好,所以取巧直接用了客户的电子邮件放置在链接当中,但是如何不让客户或其他人看到甚至修改呢?实现:哈!好在asp.net有个国度叫System.Security.Cr
阅读全文
摘要:这几年帮几个北美的中大型客户建立他们的企业站点,摆在眼前的一个重要问题就是CMS(内容管理系统)。 在过去几年间,很多ASP.net CMS平台被建立起来,优秀的不但存活下来而且功能日益强大,或者说只有日益强大才流传到了今天。对于很多类型的网站,归根到底是基于一个CMS之上进行一个个性化的二次开发,所以选择一个合适的CMS平台可以让你在短时间内迅速建站,省钱省力。群雄中DotNetNuke和Umbraco有很高的威望,很多资深的开发人员都加入到这两个联盟中,mojoportal和N2 CMS 轻便且操作简单往往能捕获小型用户的心,而我想跟大伙讲讲SiteFinity的一些故事。如果你想给客户或
阅读全文