摘要:
FluentValidation是 .NET 下的模型验证组件,和 ASP.NET MVC 基于Attribute 声明式验证的不同处,其利用表达式语法链式编程,使得验证组件与实体分开。正如 FluentValidation的 介绍:A small validation library for .NET that uses a fluent interface and lambda expressions for building validation rules for your business objects.使用后,只能用一句话来形容:真乃神器也!项目地址:http://fluentv 阅读全文
推荐排行榜
让 C# 委托来帮你简化代码,学习使用 Func、Action 委托
2011-10-03 16:28 by 音乐让我说, 4371 阅读, 收藏,
摘要:
为了方面大家更好地理解我写这篇文章的目的,这篇文章我会详细介绍我的代码,我有什么理解错误的,请大家不吝赐教。 首先我定义 2 个类。 公司类:UserCompany.cs class UserCompany { public int ID { get; set; } public string Co 阅读全文
深入研究 蒋金楠(Artech)老师的 MiniMvc(迷你 MVC),看看 MVC 内部到底是如何运行的
2014-04-05 13:52 by 音乐让我说, 8271 阅读, 收藏,
摘要:
前言跟我一起顺藤摸瓜剖析 Artech 老师的 MiniMVC 是如何运行的,了解它,我们就大体了解 ASP.NET MVC 是如何运行的了。既然是“顺藤摸瓜”,那我们就按照 ASP.NET 的执行顺序来反推代码。准备好了吗?Let's go!解决方案大体结构PS:原本很多代码没有注释,我按照自己的理解,增加了一些注释,希望能帮助您,共同提高,谢谢!1. Global.asax 探究ASP.NET 中的 Application_Start 方法一般是最先执行的,我们有必要知道当应用程序启动时到底发生了什么!using System;using System.Collections.Ge 阅读全文
【多图,谨慎打开】深入研究 Mini ASP.NET Core(迷你 ASP.NET Core),看看 ASP.NET Core 内部到底是如何运行的
2019-04-27 00:51 by 音乐让我说, 1125 阅读, 收藏,
摘要:
前言 几年前,Artech 老师写过一个 Mini MVC,用简单的代码告诉读者 ASP.NET MVC 内部到底是如何运行的。当时我研究完以后,受益匪浅,内心充满了对 Artech 老师的感激,然后用我自己理解的 MVC 知识,写了一篇 深入研究 蒋金楠(Artech)老师的 MiniMvc(迷你 阅读全文
在 ASP.NET WebForms/MVC 中利用 HttpModule 添加全局站点统计(CNZZ、百度统计、Google Analytics等)脚本
2012-09-21 13:38 by 音乐让我说, 2868 阅读, 收藏,
摘要:
在面向大众类型的网站应用中,我们常常需要知道网站的访问情况,特别是站长。就目前来说,有很多网站可以为你提供统计服务,比如:CNZZ、百度统计、Google Analytics等等,而你只需要在你的网站的每个页面的底部添加一些 Javascript 脚本就可以了,比如:<!-- 百度统计 --><script type="text/javascript"> var _bdhmProtocol = (("https:" == document.location.protocol) ? " https://" : & 阅读全文
(原创)在 ASP.NET 中,如何巧用 HttpModule ,以实现系统全局登录逻辑判断,高手慎入
2012-03-04 01:49 by 音乐让我说, 4434 阅读, 收藏,
摘要:
今晚写代码,即使现在已经 1: 27 了,依旧充满了激情。几乎每个系统都要登录,我看过一些系统直接在每个页面的 Page_Load 里面判断 if(session["user"] == null) ,来实现登录判断。我认为这样不好,维护性太差。今天我要实现的就是系统全局登录逻辑判断。还是直接贴代码了,代码能说明一切。首先我们定义一个 SiteUser 类。 /// <summary> /// 本网站需要记录的信息 /// </summary> public class SiteUser { public int Id { get; set; } .. 阅读全文
对 JimmyZhang 老师的文章《项目代码风格要求》的一些个人观点
2013-06-24 16:01 by 音乐让我说, 4318 阅读, 收藏,
摘要:
时隔多年更新:本文仅仅代表当时的思想,并不代表作者此时此刻的想法,如果得罪,请见谅! Jimmy Zhang 老师是博客园中我最佩服的人之一,今天看了他的文章《项目代码风格要求》觉得大部分地方我都很认同,工作中也是强迫自己也要按照规范来编程。下面是我的一些个人观点,想贴出来和大家一起交流,如果下面有 阅读全文
ASP.NET MVC 扩展之 JsonpResult ,用来提供轻量级跨域调用服务
2012-06-21 23:16 by 音乐让我说, 1919 阅读, 收藏,
摘要:
关于 JSONP,我想大家都已经很熟悉了,还不是很清楚的童鞋可以在网上搜索一下。众所周知, Ajax 是不能跨域请求的,默认情况下,浏览器是阻止的。那如何来实现跨域提供服务呢?举一个很简单的例子。比如我现在有一个网站 www.abc.com ,其中有一个页面需要提供百度的搜索框,并且还要像百度首页一样,提供智能的提示,就是在我输入文字的同时,及时补全我的搜索,列出供我选择的项。由于前面我们说到 Ajax 是不能跨域的,那怎样调用百度的搜索服务呢?答案就是 JSONP。JSONP 说白了就是在 www.abc.com一个页面里,通过 Javascript 动态构造一个<Script> 阅读全文
一步一步实战扩展 ASP.NET Route,实现小写 URL、个性化 URL
2013-08-09 08:54 by 音乐让我说, 2929 阅读, 收藏,
摘要:
介绍不知道大家在使用 ASP.NET MVC 时有没有一些扩展要求,反正我是有很多。在使用 MVC 这几年(PS:我是从 1.0 开始学,2.0、3.0 开发至今),我深深地觉得 MVC 的扩展性真是太好了,几乎你大部分的“合理”需求,用 MVC 都能实现。好了,废话不多说了,今天我就实战演示如何扩展 ASP.NET Route,希望能帮助到你。小写 URL我想很多朋友和我一样,使用 ASP.NET MVC 时都想要小写的 URL。一般除非你在开发时手动把 Controller、Action 的名字建成小写,或者在 Action 方法上标记 ActionNameAttribute,否则如果不经 阅读全文
(原创)扩展方法:给 IEnumerable<T> 扩展一个得到重复元素的方法
2012-02-26 22:04 by 音乐让我说, 1420 阅读, 收藏,
摘要:
直接贴代码了,说明都在代码里。using System;using System.Collections.Generic;using System.IO;namespace ConAppTest{ class Program { static void Main(string[] args) { // 测试1 int[] nums1 = new int[] { 1, 2, 3, 3, 5, 8, 3, 2, 9, 7, 7 }; Console.WriteLine("num1 中的重复元素... 阅读全文
在 .NET Core 下使用 SixLabors.ImageSharp 操作图片文件(放大、缩小、裁剪、加水印等等)的几个小示例
2019-09-19 14:53 by 音乐让我说, 8997 阅读, 收藏,
摘要:
1. 基础 1.1 将图片的宽度和高度缩小一半 直接贴代码了: 1.2 以图片原始的格式保存文件 1.3 2. 进阶 2.1 3. 高级 3.1 谢谢浏览! 阅读全文
自己动手搭建 Redis 环境,并建立一个 .NET HelloWorld 程序测试
2013-08-28 18:11 by 音乐让我说, 1283 阅读, 收藏,
摘要:
关于 Redis,下面来自百度百科:redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hashs(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现 阅读全文
扩展方法:给 IEnumerable<TSource> 扩展一个自定义数据源绑定的方法
2012-03-03 17:07 by 音乐让我说, 748 阅读, 收藏,
摘要:
先给大家说一下,我要实现的效果。直接贴代码了。EnumerableExtension.cs public static class EnumerableExtension { /// <summary> /// 绑定数据 /// </summary> /// <typeparam name="TSource"></typeparam> /// <typeparam name="TText"></typeparam> /// <typeparam name="TValu 阅读全文
关于 Puppeteer Sharp 的介绍
2020-09-09 22:20 by 音乐让我说, 1083 阅读, 收藏,
摘要:
前言 项目地址:https://github.com/hardkoded/puppeteer-sharp Puppeteer Sharp is a .NET port of the official Node.JS Puppeteer API. As Puppeteer-Sharp is a Net 阅读全文
[转]在.NET Core 2.x中将多个强类型设置实例与命名选项一起使用
2019-10-11 18:47 by 音乐让我说, 306 阅读, 收藏,
摘要:
自1.0版之前,ASP.NET Core已使用“ 选项”模式配置强类型设置对象。从那时起,该功能获得了更多功能。例如,引入了ASP.NET Core 1.1 IOptionsSnapshot,它允许您在基础IConfigurationRoot更改时(例如,在更改appsettings.json文件时 阅读全文
如何在 C# 中自定义 Comparer,以实现按中文拼音(a-z)来排序
2019-09-05 11:35 by 音乐让我说, 990 阅读, 收藏,
摘要:
1. 为何要自定义 Comparer a. 先看如下代码 class Program { public static void Main(string[] args) { List<string> words = new List<string>() { "我", "b", "中", "a", "是 阅读全文
关于 ASP.NET Core 中的 OData
2019-06-30 15:22 by 音乐让我说, 924 阅读, 收藏,
摘要:
1. BooksController 2. ChaptersController 3. Startup.cs 运行截图: 代码下载:https://files.cnblogs.com/files/Music/ODataSample-In-ASPNET-Core.rar 阅读全文
关于 C# 8.0 的 Switch Case When 的用法
2019-06-30 15:16 by 音乐让我说, 11006 阅读, 收藏,
摘要:
直接贴代码了: static void Main(string[] args) { SwitchSample(); } private static void SwitchSample() { Switch(new Circle { Radius = 10 }); Switch(new Rectan 阅读全文
.Net Core 项目引用本地类库方式(一)
2019-05-15 21:10 by 音乐让我说, 1210 阅读, 收藏,
摘要:
转自:https://www.cnblogs.com/wangshitou/p/10278631.html 最近了解到.NET Core 项目,引用本地类库DLL的方式有三种 1、非同解决方案下的引用,直接引用,浏览,找到对应的DLL,然后确定引用。 这种方式有个不好的地方就是,如果引用的DLL文件 阅读全文
一个比 AutoMapper 更快的模型映射的组件 Mapster
2019-03-22 23:49 by 音乐让我说, 3614 阅读, 收藏,
摘要:
下面是官方的性能测试 Demo,感性的也可以去 Github 上下载。 贴出代码目的是如果后期直接从自己的博客中在线看。 using System; using System.Collections.Generic; using System.Diagnostics; using AutoMappe 阅读全文
一款 .NET 下的轻量级 REST 和 HTTP API 客户端 - RestSharp
2014-05-12 17:04 by 音乐让我说, 8340 阅读, 收藏,
摘要:
项目地址:https://github.com/restsharp/RestSharpFeaturesSupports .NET 3.5+, Silverlight 4, Windows Phone 7, Mono, MonoTouch, Mono for Android, Compact Fram... 阅读全文
实例演示 kino.razor (前端 Javascript 模板工具,Razor 风格)的使用
2014-04-09 18:16 by 音乐让我说, 3989 阅读, 收藏,
摘要:
前言对于习惯了 ASP.NET MVC Razor 模板引擎的人来说,比如我,一直在寻找前端 Javascript 端的 Razor 模板工具。这之前,我也了解到很多Javascript 端的模板工具,比如:jquery.tmpl、Knockout、front.js等等。园子里很多大牛推荐 Knockout,比如:蒋金楠(Artech)老师、汤姆大叔(TomXu)。个人觉得Knockout太强大了,强大到入门都是那么的困难,我看了官网上的几个例子,最后还是放弃了,觉得太复杂了,杀鸡还需要用牛刀吗?且并不是所有的“绑定”都要交给前端的,比如 Hello World 那个例子,FirstName、 阅读全文
.NET不可变集合已经正式发布
2013-10-01 11:05 by 音乐让我说, 665 阅读, 收藏,
摘要:
英文原文:.NET Immutable Collections Ready for Production 微软基础类库(Base Class Library)团队已经完成了.NET 不可变集合的正式版本,但不包括 ImmutableArray。与其一起发布的还包括针对其它不可变对象类型的设计指南。 如果你需要在多个线程中安全地共享集合,并且允许每个线程在需要时对其内容进行改变。这种场景就是不可变集合所设计的初衷。只读集合在使用时需要复制集合中的全部内容,而新的不可变集合可以以一种更高性能的方式从一个现有集合中进行创建。 使用不可变集合需要特别当心,因为你很容易错误地写成“list.Add... 阅读全文
Ubuntu下SVN客户端RapidSVN
2013-09-23 14:43 by 音乐让我说, 626 阅读, 收藏,
摘要:
Window下我们使用TortoiseSVN,可以很方便地进行查看、比较、更新、提交、回滚等SVN版本控制操作。在Linux下,我们可以使用rapidsvn。RapidSVN是一款不错的SVN客户端软件,相比tortoise svn它更加小巧而且占系统资源少运行速度快。 在Ubuntu下可以使用apt-get很容易的安装:sudoapt-getinstallrapidsvnRapidSVN 默认配置下并没有配置 diff 与 edit 工具,所以,如果你需要打开某个文件或是 diff 某个文件,都需要自己配置相应工具的路径。在 Ubuntu 等机器上,可以这样设置:点击菜单栏 ==> ‘ 阅读全文
【转】如何做到 jQuery-free?
2013-05-11 21:31 by 音乐让我说, 724 阅读, 收藏,
摘要:
jQuery是现在最流行的JavaScript工具库。 据统计,目前全世界57.3%的网站使用它。也就是说,10个网站里面,有6个使用jQuery。如果只考察使用工具库的网站,这个比例就会上升到惊人的91.7%。虽然jQuery如此受欢迎,但是它臃肿的体积也让人头痛不已。jQuery 2.0的原始大小为235KB,优化后为81KB;如果是支持IE6、7、8的jQuery 1.8.3,原始大小为261KB,优化后为91KB。这样的体积,即使是宽带环境,完全加载也需要1秒或更长,更不要说移动设备了。这意味着,如果你使用了jQuery,用户至少延迟1秒,才能看到网页效果。考虑到本质上,jQuery只 阅读全文
一个非常简单的 ASP.NET MVC 示例:长轮询(又叫:反向 AJAX,英文名:Comet)实现
2013-03-26 17:22 by 音乐让我说, 1696 阅读, 收藏,
摘要:
关于长轮询(又叫:反向 AJAX,英文名:Comet)的介绍,请查看:反向Ajax,第1部分:Comet介绍下面是代码实现:UI: 服务器返回的信息: 后台代码:public class DateTimeController : AsyncController{ public DateTimeController() { } public void GetTimeAsync() { //计时器,5秒种触发一次Elapsed事件 System.Timers.Tim... 阅读全文
C# 中 将 UBB 代码(BBC 代码)的转换成 Html 代码
2012-12-18 18:54 by 音乐让我说, 1025 阅读, 收藏,
摘要:
直接贴代码了: using System; using System.Text.RegularExpressions; namespace MvcUI.Extensions { public static class BBCodeUtils { /// <summary> /// 替换一个字符串中换 阅读全文
清华差生10年奋斗经历
2012-11-18 13:04 by 音乐让我说, 445 阅读, 收藏,
摘要:
【导读】清华“差生”10年奋斗经历:只写事业,不写女人。作者从2004年本科毕业写到2012年,近10年的奋斗经历。反正一字一句看完后,各种反省各种彻悟。不要老去抱怨别人“天时地利人和”,做好当下,后来人或许还会羡慕嫉妒恨你。我的故事里有三个人:我自己、我大学同宿舍的哥们、我第一个公司的直接领导。我们三个都是学建筑设计的,我哥们和我同年,都是80后,领导比我们大 5岁。讲讲这几年经历和感触。放在一起可以有个比较。我是认认真真据实写,希望大家点启发。 先讲讲我们的现况: 我:现在辞职了,辞职前在一个地产公司做设计经理,一个月基本工资16k,月补助5K得拿发票换。年终奖看公司效益,去年十几万,.. 阅读全文
给 Javascript 的 日期(Date)对象扩展一个格式化(format)方法
2012-07-26 08:50 by 音乐让我说, 1042 阅读, 收藏,
摘要:
直接贴代码了:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head> <title></title> <script type="text/javascript"> 阅读全文
(转)互联网——降级论
2012-07-07 16:07 by 音乐让我说, 514 阅读, 收藏,
摘要:
转载自:http://news.cnblogs.com/n/148842/原文链接:http://meditic.com/degrading-for-success/很久没看到如此的好文了,在当下时刻,我内心早已流泪。几乎一年没有写博客了,说没时间那是借口,唯一的原因是,年纪越大越发觉自己肤浅。有些想法还没提笔,就发现很幼稚,就不敢发出来贻笑大方了。这次先给大家说个小故事: 从前有三个屌丝,聚在一起做网络,提供免费的网络服务,砸锅卖铁,通宵达旦,除了卖肾啥都做了。3年后终于做到了五百万用户,对于年轻人来说,能把五百万人玩弄于鼓掌之间,已经是很牛逼轰轰的事了。不过用户越多,成本越高,每年服务器. 阅读全文
C# Lambda 表达式学习之(一):得到一个类的字段(Field)或属性(Property)名,强类型得到
2012-06-29 00:27 by 音乐让我说, 2580 阅读, 收藏,
摘要:
可能你还感兴趣: 1. C# Lambda 表达式学习之(一):得到一个类的字段(Field)或属性(Property)名,强类型得到 2. C# Lambda 表达式学习之(二):LambdaExpression 实战练习 3. 基于 Entity Framework FluentAPI 思想的强 阅读全文
ASP.NET 中 Web Service 的使用简单案例
2012-05-28 18:20 by 音乐让我说, 1356 阅读, 收藏,
摘要:
对于 Web Service,我想大家都已经很熟悉了,笔者也是,几年前就搞过,在现在 WCF 的侵蚀下,Web Service 似乎已经被人们所忘记,这次因为项目所需要,重新拾起来,发现都快忘记了,比如在允许 Javascript 调用 Web Service,忘记取消注释 [System.Web.Script.Services.ScriptService] 了,导致调试了许久。好了,废话不多说了,开始示例了。1. 首先建一个 Web Service 项。由于说明都已经写在项目中了,故直接贴代码了。using System;using System.Collections.Generic;us 阅读全文
运行 ASP.NET MVC 示例程序 Mvc3MusicStore 报:找不到请求的 .Net Framework Data Provider。可能没有安装。
2012-04-28 18:14 by 音乐让我说, 403 阅读, 收藏,
摘要:
在学习 ASP.NET MVC 示例程序 Mvc3MusicStore 是,运行出现下面的错误:找不到请求的 .Net Framework Data Provider。可能没有安装。我们看一下 Web.Config 文件中的配置: <connectionStrings> <add name="MusicStoreEntities" connectionString="Data Source=|DataDirectory|MvcMusicStore.sdf" providerName="System.Data.SqlServer 阅读全文
ASP.NET WebForm 分页控件 AspNetPager 使用的简单示例
2012-03-31 16:17 by 音乐让我说, 2434 阅读, 收藏,
摘要:
直接贴步骤了。准备工作去http://www.webdiyer.com/ 下载 AspNetPager.dll1. 在项目中添加对 AspNetPager.dll 的引用。2. 在 web.config 文件中配置,这一步骤是可选的,如果跳过这一步,需要在每个需要分页的页面中 <%@ Register %> 一下。注意:下面的 web.config 配置是基于 ASP.NET 4.0 的。 <system.web> <compilation debug="true" targetFramework="4.0" /> & 阅读全文
ASP.NET MVC 3 中 RemoteAttribute 的使用 Demo
2012-03-29 17:44 by 音乐让我说, 650 阅读, 收藏,
摘要:
直接贴代码了,代码能说明一切。第一步:using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.ComponentModel.DataAnnotations;using System.Web.Mvc;using System.ComponentModel;namespace DearBruce.Mvc3FunctionsRometeDemo.MvcUI.Models{ /// <summary> /// 用户添加操作的模型 /// /// ... 阅读全文
(转)如何在30岁前年薪超过30万
2012-02-04 15:32 by 音乐让我说, 664 阅读, 收藏,
摘要:
如何在30岁前年薪超过30万有不少朋友发邮件给我,向我请教如何学习.NET,又或者是想拜我为师,长期进行交流学习。很遗憾,由于时间有限,这些邮件我都没有回复。但我确实想帮一帮这些朋友们,所以我觉得还是写一篇文章,将我这些年的经历像讲故事一样告诉大家。如果大家能有所启发,又或者有所进步,那我也算是聊以慰藉、得偿所愿了。我是1982年12月8日出生的,到今年整整30岁了。古人说“三十而立”,我想不论从思想上还是财富上,我应该都算是勉强达到了吧。这篇文章的标题是“如何在30岁前年薪超过30万”,其实只是一个噱头罢了,尽管我确实达到了这么多,但这不是我所在意的,这篇文章主要是谈谈我的一些历程而已。小学 阅读全文
给 C# 中的 Guid 扩展一个 TryParse 方法
2011-12-15 09:58 by 音乐让我说, 1881 阅读, 收藏,
摘要:
由于项目是用 VS 2008 开发的,一直不知道原来 .NET 4.0 中 Guid 已经有了 Guid.TryParse 方法了。我这个方法适用于 VS 2008 开发的项目。废话不多说,直接贴代码,代码很简单: using System;namespace ConAppGuidExtension 阅读全文
利用 SharpZip 组件实现在线压缩与解压,减小带宽浪费
2011-10-30 12:08 by 音乐让我说, 776 阅读, 收藏,
摘要:
SharpZip 的官方下载:http://www.icsharpcode.net/OpenSource/SharpZipLib/Download.aspx自己在最近的一个项目中有这样一个需求:需要将正式服务器中的数据导入到测试服务器上,于是做了一个“数据同步”的功能,点击测试服务器上的 Import.aspx 页面中的“同步”按钮后,在事件中利用配置好了的正式服务器上的 Export.aspx 页面地址,发出 HttpWebRequest 请求,获得GZipStream流,得到XML 的一个Zip 文件,最终利用 DataSet 的 ReadXML 就可以转换为 DataSet,最终导入到测 阅读全文
Google 首页用 Javascript 和 Css 实现舞蹈家跳舞的动画
2011-09-04 18:34 by 音乐让我说, 586 阅读, 收藏,
摘要:
代码如下:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html;charset= 阅读全文
(原创)利用扩展方法,给 IEnumerable<T> 增加一个生成 Html 的 CheckBox 标签的方法,不用 C# 中的反射技术
2011-06-21 18:19 by 音乐让我说, 614 阅读, 收藏,
摘要:
不知道园子里有没有人写过这样代码,反正我刚才写了一个,我以人格担保是原创,不是转载。 代码胜过一切说明: EnumerableExtender.cs using System; using System.Collections.Generic; using System.Linq; using Sy 阅读全文
浙公网安备 33010602011771号