代码改变世界

一起谈.NET技术,混乱的MVC,.NET非要MVC不可么?

2011-08-29 19:26 by 狼人:-), 299 阅读, 0 推荐, 收藏,
摘要:最近流行MVC,不是因为大家都在用,而是他已经在.NET缺席N多年。本文题目是乱取的,吸引眼球而已。 MVC是一个非常有争议性的话题,首先,什么算是MVC,没有一个统一的说法,众说纷纭,java,php都在争吵不休,就跟别说已开始就压根没打算MVC的ASP.NET。在大家被微软用CodeBehind和CodeBeside忽悠过去N多年之后,当大家在对WebForm审美疲劳后,MVC就跟李宇春一般另类且充满吸引力。最近的新闻是微软也要在ASP.NET中推出MVC了。对于很多M饭来说是一个十分值的庆祝的事情。顺带着MonoRail也鸡犬升天,关注的人越来越多。WebForm未死,MVC却活... 阅读全文

一起谈.NET技术,疯狂的想法——基于.NET的软件超市平台构想与5年实现之路

2011-08-29 19:26 by 狼人:-), 362 阅读, 0 推荐, 收藏,
摘要:在2005年的时候,我曾经基于.NET 2003开发了一个小的组件,这个组件的目的是为了解决模块化开发和模块复用的问题。我将该组件命名为Common Form Framework,它的目的是允许每一个开发人员独立的开发自己的模块且可以直接专注于业务模块,然后通过配置可以快速将所有开发人员开发的业务逻辑窗体集成到这个组件中。 该组件的思路如下图所示。该组件提供了一个如“2”标识的空的窗体,每一个开发人员通过编写一个如“1”的XML配置文件即可将一个模块的功能附加到空窗体,最终组合成一个如“3”所示的软件产品。 这个组件成功的应用在一个由9个人合作开发,历时1年的应用系统开发中。它... 阅读全文

一起谈.NET技术,13个不可不知的ASP.NET MVC扩展点

2011-08-29 19:26 by 狼人:-), 183 阅读, 0 推荐, 收藏,
摘要:ASP.NET MVC设计的主要原则之一是可扩展性。处理管线(processing pipeline)上的所有(或大多数)东西都是可替换的。因此,如果您不喜欢ASP.NET MVC所使用的约定(或缺乏某些约定),您可以创建自己的服务来支持您的约定,并将其注入到主管线中。 在本文中,我们将从管线开始直到视图呈现,逐一向您展示每个ASP.NET MVC开发者都必须了解13个扩展点。 1.ASP.NET MVC扩展之RouteConstraint 通常情况下你可以使用正则表达式对url参数进行约束,但如果您的约束不仅仅取决于单一参数,您可以实现 IRouteConstrains的方法,... 阅读全文

一起谈.NET技术,在ASP.NET 2.0中数据绑定的实现方法

2011-08-29 19:26 by 狼人:-), 225 阅读, 0 推荐, 收藏,
摘要:1、为什么ASP.NET 2.0中的数据绑定控件不需要写代码就能完成更新、删除、新建等数据操作? ASP.NET 1.x时,DataGrid等控件使用DataBinder.Eval(Container.DataItem,"ColumnName")这样的表达式可以将数据源中的数据绑定到控件上,但并不能在更新数据时自动将控件中的新值取出,更新回数据库。所以ASP.NET 2.0中的数据绑定分为两种:单向数据绑定(即表达式或ReadOnly设为True的BoundField,只提供从数据源到控件的数据绑定)和双向数据绑定(,不但可以将数据从数据源绑定到控件,而且可以在操作数据时将 阅读全文

一起谈.NET技术,ASP.NET MVC 2扩展点之Model Binder

2011-08-29 19:26 by 狼人:-), 164 阅读, 0 推荐, 收藏,
摘要:Model Binder在Asp.net MVC中非常简单。简单的说就是你控制器中的Action方法需要参数数据;而这些参数数据包含在HTTP请求中,包括表单上的Value和URL中的参数等。而ModelBinder的功能就是将这些个表单上的Value和URL中的参数换成对象,然后将这些对象绑定到Action的参数上面。我简单的画了一个图,看起来会更加直观。 在asp.net mvc中你可以写类似下面这样的代码: [HttpPost]public ActionResult Create(){ Book book = new Book(); book.Title = Req... 阅读全文

一起谈.NET技术,在ASP.NET MVC中进行TDD开发

2011-08-29 19:26 by 狼人:-), 197 阅读, 0 推荐, 收藏,
摘要:TDD介绍 TDD是一种开发方法,全称是Test-Driven development,中文是测试驱动开发。作者是Kent Beck。首先让我介绍一下三种常见的开发方式: 第一种:先Coding,然后Bug Fix。 第二种:先Coding,然后Unit Test,最后Bug Fix。很显然用了单元测试的比第一种开发方式要好不少。 第三种:就是本文要说的TDD,它的方式和第二种恰恰相反。TDD先设计单元测试,然后再Coding,最后修复Bug。看下图: TDD开发过程可以看成:给制自己制定一个目标,然后努力去完成这个目标。下面是这个比喻对应关系。斜杠前面的是TDD,... 阅读全文

一起谈.NET技术,ASP.NET缓存全解析7:第三方分布式缓存解决方案 Memcached和Cacheman

2011-08-29 19:26 by 狼人:-), 298 阅读, 0 推荐, 收藏,
摘要:ASP.NET缓存全解析文章索引 ASP.NET缓存全解析1:缓存的概述 ASP.NET缓存全解析2:页面输出缓存 ASP.NET缓存全解析3:页面局部缓存 ASP.NET缓存全解析4:应用程序数据缓存 ASP.NET 缓存全解析5:文件缓存依赖 ASP.NET 缓存全解析6:数据库缓存依赖 ASP.NET 缓存全解析7:第三方分布式缓存解决方案 Memcached和Cacheman Memcached — 分布式缓存系统 1.Memcached是什么? Memcached是高性能的,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度。Memcached... 阅读全文

一起谈.NET技术,WPF 动态模拟CPU 使用率曲线图

2011-08-29 19:26 by 狼人:-), 833 阅读, 0 推荐, 收藏,
摘要:在工作中经常会遇到需要将一组数据绘制成曲线图的情况,最简单的方法是将数据导入Excel,然后使用绘图功能手动生成曲线图。但是如果基础数据频繁更改,则手动创建图形可能会变得枯燥乏味。本篇将利用DynamicDataDisplay 在WPF 中动态模拟CPU 使用率图表,实现动态生成曲线图。 新建项目将DynamicDataDisplay.dll 加载到References 中,打开MainWindow.xaml 添加命名空间xmlns:d3="http://research.microsoft.com/DynamicDataDisplay/1.0"。通过<d3:Char 阅读全文

一起谈.NET技术,ASP.NET缓存全解析4:应用程序数据缓存

2011-08-29 19:26 by 狼人:-), 272 阅读, 0 推荐, 收藏,
摘要:ASP.NET缓存全解析文章索引 ASP.NET缓存全解析1:缓存的概述 ASP.NET缓存全解析2:页面输出缓存 ASP.NET缓存全解析3:页面局部缓存 ASP.NET缓存全解析4:应用程序数据缓存 ASP.NET 缓存全解析5:文件缓存依赖 ASP.NET 缓存全解析6:数据库缓存依赖 ASP.NET 缓存全解析7:第三方分布式缓存解决方案 Memcached和Cacheman System.Web.Caching 命名空间提供用于缓存服务器上常用数据的类。此命名空间包括 Cache 类,该类是一个字典,您可以在其中存储任意数据对象,如哈希表和数据集。它还为这些对象提供了失效... 阅读全文

一起谈.NET技术,ASP.NET缓存全解析6:数据库缓存依赖

2011-08-29 19:26 by 狼人:-), 224 阅读, 0 推荐, 收藏,
摘要:ASP.NET缓存全解析文章索引 ASP.NET缓存全解析1:缓存的概述 ASP.NET缓存全解析2:页面输出缓存 ASP.NET缓存全解析3:页面局部缓存 ASP.NET缓存全解析4:应用程序数据缓存 ASP.NET 缓存全解析5:文件缓存依赖 ASP.NET 缓存全解析6:数据库缓存依赖 ASP.NET 缓存全解析7:第三方分布式缓存解决方案 Memcached和Cacheman 更多的时候,我们的服务器性能损耗还是在查询数据库的时候,所以对数据库的缓存还是显得特别重要,上面几种方式都可以实现部分数据缓存功能。但问题是我们的数据有时候是在变化的,这样用户可能在缓存期间查询的数据... 阅读全文

一起谈.NET技术,ASP.NET身份验证机制membership入门——项目

2011-08-29 19:26 by 狼人:-), 181 阅读, 0 推荐, 收藏,
摘要:前面说了很多关于membership的内容,感觉内容有点凌乱,内容都是一个个知识点,下面我们通过一个小的项目,来把所有的相关内容串一下。 首先描述一下需求: 我们要做一个最简单的网站。有三类用户:匿名用户,员工,管理员,网站结构如下: admin目录下的页面只允许admin角色的用户访问,employee目录下的页面只允许emp角色的用户访问。Default.aspx允许所有用户访问。Login.aspx实现登陆功能,regUser.aspx实现注册用户功能。 1.首先我们新建一个网站 2.进入C:\WINDOWS\Microsoft.NET\Framework\v2... 阅读全文

一起谈.NET技术,.NET Framework源码研究系列之---万法归宗Object

2011-08-29 19:26 by 狼人:-), 295 阅读, 0 推荐, 收藏,
摘要:经过前面三篇关于.NET Framework源码研究系列的随笔,相信大家都发现其实.NET Framework的实现其实并不复杂,也许跟我们自己做的项目开发差不多。本人也是这样的看法。不过,经过仔细深入的研究,我们还是会发现一下平时很难注意到的东西,而这些东西对我们完善思路,开阔眼界,锻炼良好的编码素质有着很大的意义. 我们知道.NET中所有的类型(包括:引用类型,值类型)都从Object类派生过来,由此可以说Object是所有类型的根本。那么今天我们就研究.NET(C#)中一切元素的根本---System.Object。 Object类在.NET源码中的实现很简单,一共不过100... 阅读全文

一起谈.NET技术,ASP.NET MVC 2生成动态表单的一种最简单的思路

2011-08-29 19:26 by 狼人:-), 360 阅读, 1 推荐, 收藏,
摘要:在BPM、OA等系统中,都会存在一个表单设计器。有些是通过操作gridview来完成一个表单的设计;有些是通过类似VS拖拽的方法完成一个表单的设计。很明显后面一种优越于前面一种。无论是哪种,最后都会产生一些XML之类的表单结构的数据。 这篇文章将讲述,在表单设计器设计好表单之后,在ASP.NET MVC中如何将表单结构的xml转换成实际应用系统中的表单。看下面一个xml文件,我们假设它是由一个表单设计器设计出来的。 <?xml version="1.0" encoding="utf-8" ?><form name="form1 阅读全文

一起谈.NET技术,我眼中的Visual Studio 2010架构工具

2011-08-29 19:26 by 狼人:-), 231 阅读, 0 推荐, 收藏,
摘要:影响架构质量的是构建体系架构的思想、原则、实践与架构师的经验,绝不是工具。即使是最优秀的架构工具,也不可能像倚天宝剑一般——倚天一出,谁与争锋——似乎谁握住了这把利刃,就能够成为武林盟主。架构工具可以改善架构师的工作,却不能替换架构的过程。软件开发过程中,最重要的依旧是人。 我在尝鲜Visual Studio 2010架构工具 时,偶然看到一篇文章,用夸张的语言吹捧VS 2010架构工具,认为它是架构师最怕程序员知道的新工具。这让我有感而发,我想起数十年前甚嚣尘上的一个理论,那就是CASE工具在未来可以取代编码工作的论断。随着DSL的逐渐流行,这个论断似乎有了能够实现的希望。我们已经... 阅读全文

一起谈.NET技术,基于CallContextInitializer的WCF扩展导致的严重问题

2011-08-29 19:26 by 狼人:-), 314 阅读, 0 推荐, 收藏,
摘要:WCF是一个具有极高扩展度的分布式通信框架,无论是在信道层(Channel Layer)还是服务模型层(Service Model),我们都可以自定义相关组件通过相应的扩展注入到WCF运行环境中。在WCF众多可扩展点中,ICallContextInitializer可以帮助我们在服务操作执行前后完成一些额外的功能,这实际上就是一种AOP的实现方式。比如在《通过WCF Extension实现Localization》中,我通过ICallContextInitializer确保了服务操作具有和客户端一样的语言文化;在《通过WCF Extension实现Context信息的传递》中,我通过ICa.. 阅读全文
上一页 1 ··· 258 259 260 261 262 263 264 265 266 ··· 312 下一页