摘要:
在对NLayerApp实际项目进行讨论之前,让我们首先学习一下(或者应该说重温一下)分层/多层架构与应用系统设计原则。很多朋友会认为这些都是老掉牙的内容,只要是软件从业人员,都会对这些内容非常熟悉。然而,果真如此吗?我在这里整理这部分内容,一方面是为介绍NLayerApp打下基础,而另一方面,则是希望借此机会将这些理论性的东西做个归纳,也希望读者朋友能够认真阅读,毕竟温故知新嘛。 需要说明的是,从本章节开始,大多数理论性的东西都源自Microsoft Spain团队针对NLayerApp所编写的《Architecture Guide Book》,事实上这本Guideline的英文版至... 阅读全文
随笔分类 - [01].NET技术
一起谈.NET技术,HTML5 - 搭建移动Web应用
2011-09-02 00:00 by 狼人:-), 581 阅读, 收藏,
摘要:
关于HTML5 HTML5具有语义学、本地存储、设备访问、连接性、多媒体、平面和三维效果、性能和集成和CSS3八大技术特征。让Web应用进入无插件时代,在功能和性能上逼近桌面应用。促使应用Web化,实现跨平台。 HTML5规范草案将于2012年发布候选推荐版,2022年发布计划推荐版。规范的实现似乎还在遥远的未来,其实不然!当前很多浏览器已经部分支持HTML5,caniuse.com提供了详尽的浏览器支持情况。HTML5规范本身并不多,很多相关规范都被独立出来,由浏览器各自实现。 移动Web应用方向 手机上网已经成为最重要的上网方式之一,手机网民已达3亿。移动... 阅读全文
一起谈.NET技术,Silverlight的多线程能力(上)
2011-09-02 00:00 by 狼人:-), 164 阅读, 收藏,
摘要:
对于多线程其实一直以来都存在很多误区:比如多任务与多线程就很容易被混为一谈,而多线程也常被理所应当的认为是并行等等。而事实却是:多任务≠多线程、单任务≠单线程、多线程不一定并行,多线程与性能不成线性关系等等,其中道理在这里不再详述。笔者认为Silverlight多线程主要作用不是在于提高性能,而是在于用户体验,其根本目的是解决用户体验中的响应速度,减少单线程带来的阻塞问题。用一个贴切的例子来形容单线程和多线程的区别:单线程就好像只有一个服务窗口卖票的车站,人们排队买票时都是单线程处理的,而且不能抢夺位置,这样只要前方有一个人出现长时间等待,后面的人都不能被响应,这就出现了单线程阻塞;而多线.. 阅读全文
一起谈.NET技术,VS2010测试功能之旅:编码的UI测试(3)-操作对象的识别原理
2011-09-02 00:00 by 狼人:-), 175 阅读, 收藏,
摘要:
回顾 在之前的两章分别介绍了一个简单的示例,操作动作的录制原理,通过修改UIMap.UItest文件控制操作动作代码的生成。想必大家对编码的UI测试操作动作的录制应该有一定了解了,在UI操作中,操作动作总是离不开具体的操作对象,例如点击,拖动,填写值等操作,总是要对文本框,或者按钮,窗体这些对象进行操作,不是凭空生成的。本章作为入门篇的最后一章,将会说明编码的UI测试是如何识别这些对象的,并介绍UIMap.UItest文件是如何生成对象识别代码。 对象的识别原理 之前我们录制的时候,录制生成器解析了我们的操作对象,并且为我们生成了对象识别代码(也就是UIMap.UItest下... 阅读全文
一起谈.NET技术,Xml日志记录文件最优方案(附源代码)
2011-09-02 00:00 by 狼人:-), 269 阅读, 收藏,
摘要:
Xml作为数据存储的一种方式,当数据非常大的时候,我们将碰到很多Xml处理的问题。通常,我们对Xml文件进行编辑的最直接的方式是将xml文件加载到XmlDocument,在内存中来对XmlDocument进行修改,然后再保存到磁盘中。这样的话我们将不得不将整个XML document 加载到内存中,这明显是不明智的(对于大数据XML文件来说,内存将消耗很大,哥表示鸭梨很大)。下面我们将要讲的是如何高效的增加内容(对象实体内容)到xml日志文件中。 (一)设计概要 总体来说,我们将(通过代码)创建两种不同的文件,第一种为Xml文件,第二种为xml片段(txt文件),如下图所示: ... 阅读全文
一起谈.NET技术,如何解决“呈现控件时出错”的问题
2011-09-01 23:59 by 狼人:-), 251 阅读, 收藏,
摘要:
Webpart部署后在SPD中打开显示呈现控件时出错,后查到这篇文章,主要问题是在CreateChildControls中调用了this.page.Header,在设计视图时,该对象可能还不存在,以后编码时要注意在CreateChildControls尽量不调用数据库/文件系统读取、变量未附初值、调用了类似Page的属性如Session,Page.Request.QueryString等。 在制作控件的时候容易遇到呈现控件时出错发生了未处理的异常。未将对象引用设置到对象的实例。这样的错误,如下图:(也有可能仅仅只是因为未设置runat="server"标签而导致该错误,请先 阅读全文
一起谈.NET技术,对抽象编程:接口和抽象类
2011-09-01 23:59 by 狼人:-), 124 阅读, 收藏,
摘要:
1. 引言 在我之前的一篇post 《抽象类和接口的谁是谁非 》中,和同事管伟的讨论,得到很多朋友的关注,因为是不成体系的论道,所以给大家了解造成不便,同时关于这个主题的系统性理论,我认为也有必要做以总结,因此才有了本篇的新鲜出炉。同时,我将把上贴中的问题顺便也在此做以交代。 2. 概念引入 什么是接口? 接口是包含一组虚方法的抽象类型,其中每一种方法都有其名称、参数和返回值。接口方法不能包含任何实现,CLR 允许接口可以包含事件、属性、索引器、静态方法、静态字段、静态构造函数以及常数。但是注意:C# 中不能包含任何静态成员。一个类可以实现多个接口,当一个类继承某个接口时... 阅读全文
一起谈.NET技术,更改SharePoint 的web.config设置的两种方式
2011-09-01 23:59 by 狼人:-), 241 阅读, 收藏,
摘要:
MSDN上写的不是很明白,自己测试通过,记录一下: 方法一:通过创建描述一组 Web.config 修改的 XML 文件以声明方式注册 Web.config 项。 备注: 直接写一个webconfig.**.xml到14文件夹下的CONFIG中,在运行stsadm -o copyappbincontent 效果是一样的; 方法一有个缺点,会把所有WebApplication的web.Config都修改掉; 1.在sharepoint解决方案里添加14文件夹下的CONFIG文件夹,新建webconfig.**.xml文件(本文中使用的是webconfig.rj.... 阅读全文
一起谈.NET技术,VS2010 测试功能之旅:编码的UI测试(4)-通过编写测试代码的方式建立UI测试(上)
2011-09-01 23:59 by 狼人:-), 142 阅读, 收藏,
摘要:
回顾 在之前的入门篇系列中,分别介绍了一个简单的示例, 操作动作的录制原理,通过修改UIMap.UItest文件控制操作动作代码的生成,对象的识别原理。接下来正式进入我们UI测试的进阶篇,在这一章,将讲述如何初步通过自己编写代码的方式来建立UI测试。 示例程序 一个系统的基本功能是增,删,改,查,其中增和改界面基本一样,删就几乎是一个按钮的事,所以我做了一个程序示例(下载点我),拥有增和查两个功能,之后的操作都将会在这个示例之上进行: 系统主窗口: 该系统拥有两个功能,“添加用户”和“查询用户”,点击添加用户后,进入添加用户子窗体: 这里添加用户的时候根据情况会... 阅读全文
一起谈.NET技术,Silverlight 2.5D RPG游戏技巧与特效处理:(四)天气系统
2011-09-01 23:59 by 狼人:-), 138 阅读, 收藏,
摘要:
如同动态光影一样,天气系统同样为2.5D RPG游戏所不可或缺的元素之一。从视觉角度讲,天气系统让游戏场景空间层次分明,立体感更强;从用户角度讲,天气系统赋予游戏更贴近现实的亲历体验,试想下游戏中的花花草草随风而动,云雾缭绕风雨雷电一切来得自然而平滑,玩家即似身临其境般享受;从功能角度讲,不同的气候状况会对角色及魔法效果产生各异影响,极大的提升游戏趣味性。 模拟相对较真实的天气效果,粒子系统必不可少,天气中的雨、雪、闪电、云雾等均可看做是大量粒子的集合。因此首先我们新建一个名为Particle的粒子类,然后再新建天气对象Weather,本节中我为Weather编写了常见的6种天气状态分... 阅读全文
一起谈.NET技术,Silverlight 2.5D RPG游戏技巧与特效处理:(五)圣赞之HLSL渲染动画
2011-09-01 23:59 by 狼人:-), 139 阅读, 收藏,
摘要:
或许大家依旧对上一节中的“黑夜”及“梦回过去”记忆犹新,追问下去HLSL到底是何方神圣能实现如此炫酷之效果?HLSL(高级着色器语言)作为微软的独门兵器,仅供Direct3D使用。Silverlight无比幸运,从第二个版本开始便已获得了这把旷世利器,虽然目前仅能发挥其不到3层之功力,不过前辈Moonlight近期已向世界宣布全面突破技术壁垒,HLSL的威力提升至7层左右。我们完全可以预料的是,未来Silverlight将手握HLSL,踏着GPU 3D API飞扬驰骋,在RIA页游领域所向披靡,制作一切特效及渲染动画都将成探囊取物般轻松而惬意。 接下来的问题是HLSL开发困难吗?其实,... 阅读全文
一起谈.NET技术,VS2010测试功能之旅:编码的UI测试(2)-操作动作的录制原理(上)
2011-09-01 23:59 by 狼人:-), 217 阅读, 收藏,
摘要:
回顾 在之前我们介绍了如何用VS2010的UI测试功能创建一个简单的示例,大致描述了如何使用编码的UI测试进行录制和回放,在这章会着重描述VS2010是如何录制操作,并且生成代码,以及初步介绍如何通过自己写代码的方式进行测试。 内容简介 在上一章我们已经介绍过,建立一个编码的UI测试CodedUITest1.cs,录制完成之后,会自动生成一个UIMap1.uitest文件。 图1:录制完成后自动生成的UIMap1.uitest文件 事实上,在录制过程中起着关键作用的并非是CodedUITest1.cs,而是UIMap1.uitest,在录制过程中的所有代码都是生成在UIM... 阅读全文
一起谈.NET技术,十步教你ASP.NET MVC2项目升级MVC 3 RC
2011-09-01 23:59 by 狼人:-), 221 阅读, 收藏,
摘要:
微软在10号发布了ASP.NET MVC3的发布候选版(RC:Release-candidate),该版本提供了Razor视图引擎的智能感知等功能,并同样具备Online许可。眼馋的同学是不是已经迫不及待的想将现有项目升级呢?这里我就将官方ReleaseNotes中的升级办法翻译总结一下,以方便那些不喜欢看罗里啰嗦的英文文档的广大同学。 译文 要将现有的ASP.NET MVC2项目手动升级到ASP.NET MVC3(RC),我们需要如下这些步骤: 1. 随便创建一个新的ASP.NET MVC3项目,我们在升级中将用到其中包含的一些文件。 2. 从新建项目中将如下这些文件c... 阅读全文
一起谈.NET技术,ASP.NET MVC中对数据进行排序的方法
2011-09-01 23:59 by 狼人:-), 674 阅读, 收藏,
摘要:
本系列是讲解如何在asp.net mvc中对数据进行展示、排序、分页等的系列文章。在上周的文章中,一步一步教会了大家如何使用ASP.NET MVC框架去的展示数据。在上周的文章中,我们先用Visual Studio创建了一个新的ASP.NET MVC应用程序,接着连接到了Northwind数据库,并展示了如何使用微软的LINQ-SQL的工具去访问数据库中的数据,接着指导如何去实现视图层去展示产品信息及如何设计控制器。 本文是在上一篇文章的例子基础上,展示了如何去实现数据的双向排序。如果你是已经熟悉ASP.NET WebForm开发的开发者,你应该知道,在GridView控件中可以很简... 阅读全文
一起谈.NET技术,不走寻常路:在WebForm中使用MVC
2011-09-01 23:59 by 狼人:-), 227 阅读, 收藏,
摘要:
问题场景: 在改进博客园博客后台的过程中,有一个页面我们想用ASP.NET MVC来写。但我们不想通过设置<modules runAllManagedModulesForAllRequests="true"/>使用System.Web.Routing来处理请求,因为不能确定这是否会与我们现有的URL重写产生冲突。我们只是想用Razor爽一下。 解决思路: 不改变ASP.NET管线的请求处理流程,请求还是正常到达一个.aspx页面,然后再转手给ASP.NET MVC。也就是把WebForm作为一个中转站。 好处: 在现有项目中,以最小的代价用上ASP.NET MV 阅读全文
一起谈.NET技术,浅谈ASP.NET 4中构造HTML5视频控件
2011-09-01 23:59 by 狼人:-), 345 阅读, 收藏,
摘要:
在本文中,将一步步地指导你如何使用Visual Studio 2010和ASP.NET 4的相关知识,打造一个基于HTML5标准规范的视频播放控件,其中你会学习到一些关于HTML 5的知识,还会学到如何使用ASP.NET 4去打造一个服务端的控件。 简介 ASP.NET 4中有大量由微软或第三方提供的控件,但要是这些控件不能满足你的需求,那该怎么办呢?答案是:自己动手去设计! 本教程会指导你如何去开发一个ASP.NET 的服务端控件,你会感受到在开发自己的服务端控件的同时,也提升了你开发的Web应用的质量。我们一般在开发自己的服务端控件的时候,会继承已有的一些服务端控件并添加一... 阅读全文
一起谈.NET技术,.NET中的委托
2011-09-01 23:58 by 狼人:-), 318 阅读, 收藏,
摘要:
1.1.1定义 委托是一种引用方法的类型。一旦为委托分配了方法,委托将与该方法具有完全相同的行为。委托方法的使用可以像其他任何方法一样,具有参数和返回值,如下面的示例所示: //Code in C# public delegate int PerformCalculation(int x, int y); 与委托的签名(由返回类型和参数组成)匹配的任何方法都可以分配给该委托。 简单理解Delegate委托(或代理)是一种数据类型:它的变量可以引用到某一个符合要求的方法上,通过委托可以间接地调用该方法。 其实.NET的委托类似于C语言的函数指针,区别在于.NET委托... 阅读全文
一起谈.NET技术,WPF中使用amCharts绘制股票K线图
2011-09-01 23:58 by 狼人:-), 788 阅读, 收藏,
摘要:
本想自己用GDI绘图, 通过数据直接绘制一张蜡柱图, 但觉得这样子的功能比较少, 所以到网上搜索一些能画出K线图的控件. 发现DynamicDataDisplay挺好的, 在它的开发截图里也发现可以绘制蜡柱图, 但文档好像做的不是很好, 不知道怎么用它来画, 在寻找它比较好的例子的时候发现有人推荐用amCharts绘制, 所以便去看了一下, 发现挺好用的, 效果如下: 准备工作 先要去这里下载amCharts Stock Chart for WPF并解压, 新建一个WPF Project, 在Toolbox里右击, 选择Choose Items, 然后点击Browse, 找到解压... 阅读全文
一起谈.NET技术,C#类类型
2011-09-01 23:58 by 狼人:-), 167 阅读, 收藏,
摘要:
类类型是由字段数据(成员变量)和操作字段数据的成员(属性、方法、构造函数、事件等)所构成的自定义类型。其中字段数据表示类实例(对象)的状态。 在C#中,类使用class关键字定义,例如: public class Car{ //Car的字段(状态) private int _speed; private string _name; //Car操作字段的属性 public int Speed { set {this._speed=value;} get{return this._speed;} } public ... 阅读全文
一起谈.NET技术,Silverlight 2.5D RPG游戏技巧与特效处理:(十二)魔法系统
2011-09-01 23:58 by 狼人:-), 245 阅读, 收藏,
摘要:
世界首款Silverlight – MMORPG:<<窝窝世界>>震撼登场!伴着与XNA合体后的Silverlight 5 强势发布,一波Silverlight网游研发海啸即将席卷全球! 多磨的好事依旧让人激动,于是一不小心写下10款全新的魔法效果旨在祝贺。今天的教程不会让你失望,没错,又是一场超豪华魔法盛宴!接下来您将看到的是本教程ARPG Demo战斗实景,一切灵感与临摹均来源于近期即将内测的2.5D大作《倩女幽魂Online》(以下左边为倩女幽魂实景,右边为Demo对应实景)。野蛮冲撞之幻象刺杀!自适配地形之雷电风行!完美冰冻之暴风狂雪!环形突击之圆月斩!随机多段 阅读全文
浙公网安备 33010602011771号