2014年2月14日

error RC1015: cannot open include file 'afxres.h' 解决办法

摘要: 在为WindowsPhone8程序添加本地化的过程中遇到这个问题:问题原因就是afxres.h文件缺失,下载它,放到VS安装目录下的VS\include目录下就可以了(选择目录的时候注意对应对版本):C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include:) 阅读全文

posted @ 2014-02-14 06:21 backslash112 阅读(22088) 评论(0) 推荐(1) 编辑

2013年12月27日

.NET 垃圾回收与内存泄漏

摘要: > 前言相信大家一定听过,看过甚至遇到过内存泄漏。在 .NET 平台也一定知道有垃圾回收器,它可以让开发人员不必担心内存的释放问题,因为它会自定管理内存。但是在 .NET 平台下进行编程,绝对不会发生内存泄漏的问题吗?答案是否定的,就算有了自动内存管理的垃圾回收器,也会发生内存泄漏。本文就讨论下 .NET 平台的垃圾回收器是如何工作的,进而当我们在编写 .NET 程序时避免发生内存泄漏的问题。> 垃圾回收的基本概念“垃圾”指的是事先分配过但后来不再被使用的内存。垃圾回收背后的一个基本观念是:“无限访问的内存”,但是从来没有无限的内存,当机器需要分配内存但不够的时候,就需要把之前不再 阅读全文

posted @ 2013-12-27 14:17 backslash112 阅读(4258) 评论(7) 推荐(2) 编辑

2013年12月18日

重构的步骤

摘要: 1. 找到壞味道:透過靜態程式碼分析等工具,找到需要重構的部份。2. 確認人不是我殺的:確定現行程式碼可以正常運作,我們目標只是在重構,不是在 bug fix 或需求異動。3. 錄影存證:針對可正常運作的網頁,建立 selenium test ,並且針對希望驗證的部分,加上 Assert 。4. 說人話:打開程式碼,靜下心來了解這段程式碼的目的與意義,抽象地來思考每一段程式碼代表的每一件事,並進行排版、重新命名以及增加註解,提昇可讀性,讓自己下次可以快速了解這段程式碼的意義。5. 垃圾分類:針對程式碼所代表的每一件事,透過重構技巧:擷取方法,依據人話來定義 function 名稱。讓 cont 阅读全文

posted @ 2013-12-18 14:58 backslash112 阅读(484) 评论(0) 推荐(0) 编辑

2013年12月17日

如何隔離物件之間的相依性

摘要: public interface IAccountDao{ string GetPassword(string id);}public interface IHash{ string GetHashResult(string password);}public class AccountDao : IAccountDao{ public string GetPassword(string id) { throw new NotImplementedException(); }}public class Hash : IHash{ public ... 阅读全文

posted @ 2013-12-17 09:27 backslash112 阅读(258) 评论(0) 推荐(0) 编辑

2013年12月9日

Replace Temp with Query

摘要: double GetPrice(){ int basePrice = _quantity * _itemPrice; double discountFactor; if (basePrice > 1000) { discountFactor = 0.95; } else { discountFactor = 0.98; } return basePrice * discountFactor;}double GetPrice(){ return BasePrice() * DiscountFactor();}... 阅读全文

posted @ 2013-12-09 15:02 backslash112 阅读(184) 评论(0) 推荐(0) 编辑

2013年12月6日

Replace conditional with Polymorphism

摘要: namespace RefactoringLib.Ploymorphism.Before{ public class Customer { } public class Employee : Customer { } public class NonEmployee : Customer { } public class OrderProcessor { public decimal ProcessOrder(Customer customer, IEnumerable products) { ... 阅读全文

posted @ 2013-12-06 14:49 backslash112 阅读(294) 评论(0) 推荐(0) 编辑

Switch to strategy

摘要: namespace RefactoringLib.SwitchToStrategy.Before{ public class ClientCode { public decimal CalculateShipping() { ShippingInfo shippingInfo = new ShippingInfo(); return shippingInfo.CalculateShippingAmount(State.Alaska); } } public enum State ... 阅读全文

posted @ 2013-12-06 10:56 backslash112 阅读(202) 评论(0) 推荐(0) 编辑

2013年11月6日

Microsoft Visual Studio 插件

摘要: AnkhSVNBatchFormatCodeMaindNuget Package Manager 阅读全文

posted @ 2013-11-06 09:44 backslash112 阅读(457) 评论(0) 推荐(0) 编辑

2013年10月25日

Windows Phone 8 开发系列(持续更新中)

摘要: 1. 从应用列表再次点击应用,如何恢复到上次浏览的页面呢? 2. Windows Phone 文本框的 UpdateSourceTrigger 属性不支持 PropertyChanged 怎么办? 3. Panorama 控件的 SelectedIndex 属性是只读的如何设置选中的 Panoram 阅读全文

posted @ 2013-10-25 13:51 backslash112 阅读(729) 评论(0) 推荐(1) 编辑

Windows Phone 如何振动手机?

摘要: 1. 导入命名空间。using Windows.Phone.Devices.Notification;2.通过调用对VibrationDevice类的静态GetDefault方法获取对振动控制器的引用。VibrationDevice vibrationDevice = VibrationDevice... 阅读全文

posted @ 2013-10-25 13:46 backslash112 阅读(358) 评论(0) 推荐(0) 编辑

2013年10月23日

Windows Phone 如何在程序中播放提示声音?

摘要: 在Windows Phone 中播放提示音可以使用Microsoft.Xna.Framework.Audio 命名空间下的SoundEffect 类。具体使用方法如下:1. 根据声音文件路径创建播放实例。 private void InitSoundEffact() { ... 阅读全文

posted @ 2013-10-23 10:14 backslash112 阅读(491) 评论(0) 推荐(0) 编辑

2013年10月15日

实现一个纵向排列的 ListBox ,并具有操作按钮

摘要: 需要实现的效果如下:要想把 ListBox 的内容纵向显示很简单,只需把 ListBox 的内容控件为 WrapPanel 就可以了: 在 ListBox 的末项后添加按钮的思路是:添加按钮跟删除按钮都看作是跟普通的 ListItem 一样作为 Item 对象存在,只不... 阅读全文

posted @ 2013-10-15 17:29 backslash112 阅读(1372) 评论(0) 推荐(0) 编辑

2013年9月16日

多个 App 间启动

摘要: http://developer.nokia.com/:URI associations for Windows Phonehttp://msdn.microsoft.com/:Auto-launching apps using file and URI associations for Windo... 阅读全文

posted @ 2013-09-16 19:56 backslash112 阅读(446) 评论(0) 推荐(1) 编辑

2013年9月13日

设置 LongListSelector 只有在项多的时候才分组

摘要: Windows Phone中的控件LongListSelector是一个很好的分组聚类控件,当列表中数据特别多的时候,LongListSelector就像字典中的目录,让我们很快定位到要找的数据。可是,当列表中数据很少的时候,还把数据分组显示就显得不太友好了。那么,如何根据数据的多少来决定是否启动分... 阅读全文

posted @ 2013-09-13 14:03 backslash112 阅读(477) 评论(0) 推荐(1) 编辑

2013年8月26日

如何设置 Panorama 控件的只读 SelectedIndex 属性?

摘要: 在OnNavigatedTo() 方法中设置:panoramaControl.DefaultItem = panoramaControl.Items[indexToSet]; 阅读全文

posted @ 2013-08-26 16:52 backslash112 阅读(430) 评论(0) 推荐(0) 编辑

2013年8月23日

Windows Phone 的 TextBox 的实现 PropertyChanged

摘要: 比如,View 的文本框 TextBox1 绑定了 ViewModel 的 Msg 属性, 当想把文本框输入的内容输入过程中实时更新到绑定的Msg,在Windows Phone 中是无法通过设置UpdateSourceTrigger =PropertyChanged 实现的,因为Windows Ph... 阅读全文

posted @ 2013-08-23 16:30 backslash112 阅读(640) 评论(4) 推荐(0) 编辑

2013年8月12日

从应用列表再次点击应用,如何恢复到上次浏览的页面呢?

摘要: 当用户打开某应用,并从应用主页浏览到新的页面:Page1,此时点击开始按钮,此应用被挂起。当用户从应用程序列表重新打开应用,默认情况下,应用的旧实例将终止,应用的全新实例将创建出来。如果不想创建新实例,而是返回上次浏览的最后一个页面就要设置应用的激活策略为恢复。1. 在应用程序清单中启动 "快速恢复... 阅读全文

posted @ 2013-08-12 16:25 backslash112 阅读(2038) 评论(0) 推荐(1) 编辑

2012年11月28日

说一下我对Mvvm模式的理解

摘要: 使用WPF+Mvvm开发一年多,期间由于对Mvvm模式的理解不足,遇到了很多问题,也绕了很多弯子;网上提供的Mvvm的示例比较简单,实际项目中的需求也各种各样。不过经过几个项目,也有了一些对Mvvm模式的理解:1. Mvvm是什么,Mvvm是怎么来的?Mvvm模式广泛应用在WPF项目开发中,使用此模式可以把UI和业务逻辑分离开,使UI设计人员和业务逻辑人员能够分工明确。Mvvm模式是根据MVP模式来的,可以简单的说,Mvvm模式就是WPF版的MVP模式。MVP模式,MVC模式,这几个模式都是为了抽离出UI逻辑和业务逻辑。2. 使用Mvvm模式可以参考的主流框架及简单介绍。主流开源框架:Simp 阅读全文

posted @ 2012-11-28 22:00 backslash112 阅读(103445) 评论(29) 推荐(25) 编辑

2012年11月8日

使用Visual Studio 2010进行UI自动化测试

摘要: 1. 被测试功能说明。 非常简单的一个功能:在文本框中输入文字,点击Go按钮,下面则会显示文本框中输入的文字。 接下来我们就为这个小程序创建UI自动化测试:2. 创建测试项目。 打开VS2010,选择 文件 - 新建 -项目,模板列表中选择 测试 - 测试项目,输入测试项目名称 UITestProject。 3. 添加UI自动化测试。 1. 右键 UITestProject,选择 添加 - 编码的 UI 测试。 2. VS2010将弹出如下窗体:单击 确定 按钮。 3. 进而VS2010自动最小化,右下角弹出 UI 自动化测试生成器: 4. UI自动化测试基本步骤。... 阅读全文

posted @ 2012-11-08 10:39 backslash112 阅读(9013) 评论(16) 推荐(12) 编辑

2012年10月15日

别让老板杀了你——中国职场冷思考

摘要: 程序员加班是常有的事儿,有一天突然不加班你是不是也觉得今天有点不正常了呢?程序员们,别 “人死了,钱没花了~” 。正文:一位3年前共事过的同事走了,就在他以70万的房贷代价拿到大门钥匙的时候,猝然倒在新房的楼梯上。另一个曾经在同一战壕里冲锋陷阵的同事被老板辞掉了,兢兢业业,起早贪黑,竟然没有熬过35... 阅读全文

posted @ 2012-10-15 09:52 backslash112 阅读(3656) 评论(20) 推荐(23) 编辑

2012年10月12日

Simple MVVM Toolkit 之 Messaging(B)发送消息,并接收回调

摘要: 继续上一篇《Simple MVVM Toolkit 之 Messaging(A)》。接下来使用Messaging实现客户列表View-Model和客户明细View-Model之间的通讯。1. 为 Messaging 准备辅助类和窗体:1.1 右键Models文件夹,添加类 MessageTokens,此类目的是提供一个消息标识符。1.2 右键Models文件夹,添加类 IncreaseInfo,此类是一个增量信息的实体。 1 public class IncreaseInfo 2 { 3 public IncreaseInfo() 4 { } 5... 阅读全文

posted @ 2012-10-12 19:59 backslash112 阅读(2073) 评论(0) 推荐(2) 编辑

Simple MVVM Toolkit 之 Messaging(A)

摘要: 1. Simple MVVM Toolkit 简单介绍: Simple MVVM Toolkit是一个开源的MVVM框架,提供VS项目和项的模板,依赖注入,支持深拷贝以及模型和视图模型之间的属性关联。想了解具体介绍的请点击这里。2. Simple MVVM Toolkit 的 Messaging 简单介绍: Simple MVVM Toolkit 的 Messaging 能够达到不同View-Model之间松耦合的通讯。3. 通过一个MVVM的示例,体会 Simple MVVM Toolkit 的 Messaging 机制如何实现不同 View-Model 之间的通讯: 需求说明:a)客户列表 阅读全文

posted @ 2012-10-12 14:19 backslash112 阅读(3523) 评论(4) 推荐(3) 编辑

2012年10月8日

WPF触发器之数据触发器(B)

摘要: 如果你还不知道数据触发器怎么使用,或者连数据触发器是什么都还不了解,请先阅读WPF触发器之数据触发器(A)。1. 当你知道了数据触发器是当某个.NET属性值变化时触发的操作,比如说当数字变成了 "8",那就让数字变成红色。那么使用数据触发器实现此功能就可以这样写:<DataTrigger Binding="{Binding RelativeSource={RelativeSource Self},Path=Text}" Value="8"> ...2. 问题来了——可是,当 "DataTrigger" 阅读全文

posted @ 2012-10-08 22:00 backslash112 阅读(5737) 评论(2) 推荐(8) 编辑

WPF触发器之数据触发器(A)

摘要: WPF触发器 属性触发器——当依赖属性的值改变时调用。 数据触发器——当普通.NET属性的值改变时调用。 事件触发器——当路由事件被触发时调用。1. 数据触发器示例:数字从0~9计数,当数字变为8时候,数字变化成红色并加粗进行显示。 0 -> 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 -> 8 -> 9 ->02. 新建WPF项目,项目名称:DataTriggerDemo。3. 新增Views文件夹,右键Views文件夹,新增用户控件Timer.xaml;并在页面中加入Button和Textblock控件。 4. 阅读全文

posted @ 2012-10-08 12:09 backslash112 阅读(9073) 评论(0) 推荐(6) 编辑

WPF使用声音资源

摘要: 1.在项目上右键,增加Resources文件夹;在Resources文件夹上右键,增加Audio文件夹;往Audio文件夹中增加声音资源文件:didi.wav。 2.右键didi.wav,选择属性,设置属性复制到输出目录为始终复制;生成操作为嵌入的资源。 3.增加播放声音文件的代码。1 private void Play()2 {3 SoundPlayer soundPlayer = new SoundPlayer(System.Environment.CurrentDirectory + @"\Resources\Audio\didi... 阅读全文

posted @ 2012-10-08 09:52 backslash112 阅读(3516) 评论(0) 推荐(0) 编辑

2012年10月5日

SimpleMvvmToolkit特性:ServiceAgentExportAttribute

摘要: 特性说明 ServiceAgentExportAttribute 给某个类应用此特性表示此类为一个服务器代理。 阅读全文

posted @ 2012-10-05 12:13 backslash112 阅读(374) 评论(0) 推荐(0) 编辑

2012年9月17日

Getting The imported project "C:\Program Files\MSBuild\Microsoft\Silverlight for Phone\v4.0\Microsoft.Silverlight..Overrides.targets" was not found

摘要: 解决办法:http://forums.silverlight.net/t/248936.aspx/1 阅读全文

posted @ 2012-09-17 11:37 backslash112 阅读(1193) 评论(1) 推荐(0) 编辑

2012年9月15日

安装 Microsoft Silverlight 4 Tools for Visual Studio 2010 时报错 的解决办法.

摘要: 安装需求: 必须先安装与 Silverlight Tools 4 语言版本相一致的 Visual Studio 2010、Visual Web Developer 学习版 2010 或 Visual Phone Developer 学习版 2010,Silverlight Tools 的安装才能继续。以下网址提供了其他语言版本的 Silverlight Tools: http://go.microsoft.com/fwlink/?LinkId=177432。 如果你先安装了 VS2010 SP1 ,在安装这个,可能导致这个问题 解决方法是 用压缩工具,解开 Silverlight 4 Tool 安装包 用编辑工具打开 ParameterInfo.xml 文件 使用 替换领命将 “10.0.30319” 替换成 “10.0.40219”(不包含引号) 保存, 运行 SPInstaller.exe 阅读全文

posted @ 2012-09-15 14:21 backslash112 阅读(301) 评论(0) 推荐(0) 编辑

2012年8月22日

DateTime.ToString() Patterns

摘要: 0 MM/dd/yyyy 08/22/2006 1 dddd, dd MMMM yyyy Tuesday, 22 August 2006 2 dddd, dd MMMM yyyy HH:mm Tuesday, 22 August 2006 06:30 3 dddd, dd MMMM yyyy hh:mm tt Tuesday, 22 August 2006 06:30 AM 阅读全文

posted @ 2012-08-22 15:41 backslash112 阅读(235) 评论(0) 推荐(0) 编辑

2012年7月26日

Using WPF DataGridHyperLinkColumn Items to open Windows Explorer and open files

摘要: 2 3 6 7 阅读全文

posted @ 2012-07-26 20:01 backslash112 阅读(1976) 评论(0) 推荐(1) 编辑

2012年7月25日

WPF验证错误显示

摘要: WPF 显示验证错误的默认方式是在控件周围绘制红色边框。通常需要对此方法进行自定义,以通过其他方式来显示错误。而且,默认情况下不会显示与验证错误关联的错误消息。常见的要求是仅当存在验证错误时才在工具提示中显示错误消息。通过将 Styles 和一组与验证关联的附加属性进行组合,可以相当轻松地自定义验证错误显示。 阅读全文

posted @ 2012-07-25 23:33 backslash112 阅读(5448) 评论(0) 推荐(0) 编辑

2012年7月2日

[转]vs2010中的Quick Search

摘要: 在Visual Studio 2010中,我们可以通过在任何代码文件中使用快捷键“Ctrl + ,”(Ctrl键加上逗号键)调出“Quick Search”窗口。 阅读全文

posted @ 2012-07-02 08:28 backslash112 阅读(525) 评论(0) 推荐(0) 编辑

2012年6月13日

Log4net 根据日志类别保存到不同的文件,并按照日期生成不同文件名称

摘要: 配置文件: 1 <configuration> 2 <configSections> 3 <!--日志记录--> 4 <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> 5 </configSections> 6 7 <log4net> 8 <root></root> 9 <logger name="Logger 阅读全文

posted @ 2012-06-13 20:39 backslash112 阅读(3970) 评论(0) 推荐(0) 编辑

2012年6月10日

How to install MVVM Light Toolkit via NuGet

摘要: Here is how you can install MVVM Light Toolkit via NuGet in an easy way using only Visual Studio.Step1.Create a new Widows Phone Application ProjectStep2.If you have not used NuGet before then go to VisualStudio Tools-> ExtentionManager as demonstrated below:Step3.Go to"Online Gallery"t 阅读全文

posted @ 2012-06-10 00:24 backslash112 阅读(436) 评论(0) 推荐(0) 编辑

2012年4月26日

Windows Phone 开发(一):入门指南 — 安装开发环境:Windows Phone SDK

摘要: WindowsPhoneSDK 包括 Visual Studio2010 Express for WindowsPhone、WindowsPhone 模拟器、XNAGameStudio、ExpressionBlend for WindowsPhone、示例以及文档。下载Windows Phone SDK 7.1下载地址:http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=27570Windows Phone SDK 7.1.1 Update下载地址:http://www.microsoft.com/do 阅读全文

posted @ 2012-04-26 14:06 backslash112 阅读(253) 评论(0) 推荐(0) 编辑

2012年4月24日

LINQ - Restriction Operators

摘要: View Code 1 Program.cs 19.66KB 2 3 using System; 4 using System.Collections.Generic; 5 using System.Linq; 6 using System.Text; 7 using System.ComponentModel; 8 using System.IO; 9 using System.Xml.Linq; 10 11 namespace RestrictionOperators 12 { 13 class Program 14 { 15... 阅读全文

posted @ 2012-04-24 14:28 backslash112 阅读(182) 评论(0) 推荐(0) 编辑

[转载]测试驱动开发之模拟对象(概念篇)

摘要: 测试驱动开发过程中我们最关注的是如下一些内容: 目标专一的测试:理想情况下每个测试只有一条断言; 彼此独立的测试:对于每个测试都存在预设环境(Fixture)的建立和清除,以便让测试能够以任意顺序执行; 运行速度的测试:你想能够频繁地运行这些测试。 阅读全文

posted @ 2012-04-24 10:55 backslash112 阅读(495) 评论(0) 推荐(0) 编辑

2012年4月23日

[转载].NET平台测试驱动开发模拟框架Moq简明教程(简介)

摘要: 一、简介 目前针对测试驱动开发技术的研究在国内看来还少得可怜,估计这主要是国内的软件开发实际所致(急功近利型颇多)。所以,针对目前比较优秀的测试框架以及模拟框架的介绍也不多见。鉴于此,我想借这篇短文,对目前.NET平台上最新出炉的模拟对象框架—Moq作一简介。Moq的发明者声称,较之于其他的模拟对象框架(例如Rhino Mocks和TypeMock Isolator),这个框架更易于学习和使用。 具体来看,Moq框架中充分利用了VB.NET和C#语言的最新特征,例如lambda表达式与泛型的概念。因此,当你使用Moq创建模拟对象时,你可以使用lambda表达式来描述你想要模拟的方法与属性等。由于提供了对于最新的lambda表达式的支持,Moq得以能够提供一种格外清晰的语法形式来描述期望值、参数约束和返回值等。 阅读全文

posted @ 2012-04-23 18:13 backslash112 阅读(539) 评论(1) 推荐(0) 编辑

2012年4月22日

[转载]安装SQL Server 2008 R2遇到“...Setup has stopped working.”

摘要: 在安装SQL Server 2008 R2应用程序过程中,有时会遇到“...Setup has stopped working.”的错误而无法成功完成。//51aspx   这种情况大多出现在SQL安装包语言版本与操作系统语言不同(如中文版的SQL 2008 R2安装到英文版的Windows 7或者Server 2008)上时,安装开始之前的前提检测都能顺利通过,但当进行到“ExecuteStandardTimingsWorkflow”这一环节时安装报错并自动退出安装过程。 阅读全文

posted @ 2012-04-22 17:10 backslash112 阅读(2120) 评论(1) 推荐(0) 编辑

2012年4月18日

[转载]C#深拷贝的方法

摘要: 首先了解下深拷贝和浅拷贝的定义: 浅拷贝(影子克隆):只复制对象的基本类型,对象类型,仍属于原来的引用. 深拷贝(深度克隆):不紧复制对象的基本类,同时也复制原对象中的对象.就是说完全是新对象产生的. 在C#中,复制一个基本类型,是全盘复制的。而对于引用类型,只是复制一个引用指针。所以在对其进行深拷贝也是比较麻烦的,要实现ICloneable接口的Clone方法。 当然也有其他比较快的方法,下面这个是在网上找到的代码。只需要将一个对象序列化为binary stream,然后再将它反序列化为新的对象,就能实现深拷贝。 阅读全文

posted @ 2012-04-18 13:55 backslash112 阅读(347) 评论(0) 推荐(0) 编辑

导航