Edi Wang

Microsoft MVP for Azure

All Posts

VS2012在Surface RT上远程调试App

最近蛋疼,所以废话不多,直接切入正题。首先这次要说的是Surface RT,是RT版的,ARM处理器的,别弄错了。我们要做的是把工作机上写好的程序放在Surface RT远程调试,而不是在本机和模拟器中运行。 第一步,在Surface RT上安装微软官方的debugger:http://go.microsoft.com/?linkid=9810474 这个debugger是桌面环境下运行的,安装的时候需要管理员权限。 装完以后,开始屏幕上会出现这两个图标,我们要用的是第一个:Remote Debugger。 启动Remote Debugger,正常情况会让你配一些Windows防火墙,你可以完全按照向导来,最终会出现一个Monitor对话框,证明debugger已经在监听连接了。 接下来有个比较有技巧的地方,如果你的Surface RT上的当前用户和开发程序的机器的登录帐户不一样,建 …
Debug Visual Studio Windows Surface ARM

Force Visual Studio Always Run As Administrator

If you are doing ASP.NET development that requrie your project bind to IIS, you will need to open Visual Studio every time as Administrator, which is annoying.  However, there's a way to make Visual Studio run as Administrator by default every time without shutting down UAC on your system. 1. Find your Visual Studio install path For example, I am using Visual Studio 2017.3 Preview, so my install …
Visual Studio UAC

How to enable IPC share on Windows 8/8.1/10

Update 2017.2: This will also work with Windows 10 最近为了贯彻微软先进思想,给台式机换了个Windows 8,许多地方爆出了翔,但用惯以后还是很舒服的。在Windows 8里,操作系统的许多设置被微软在黑暗中偷偷的改过了。比如局域网共享文件夹,在以前版本的Windows上,如果知道对方机器的管理员帐户密码,就可以在路径后面加上“盘符$"来直接访问对方的整个硬盘。比如在:\\DiaosPC\D$,系统会弹出一个身份验证对话框,输入DiaosPC上的管理员帐号后,即可访问他D盘的内容。在Windows 2000的年代,黑客们可以利用这点进行“空连接”攻击,给对方下载木马,然后用at命令定时执行,这些黑暗的历史就不告诉大家了。。。。 然而,这个功能在Windows 8上似乎被撸掉了,虽然在管理工具里还能见到所有盘符的管理共享,但局域网中是无法访 …
Windows

如何让Surface RT的开始屏幕显示4行磁贴

昨天Surface RT启动后,开始屏幕突然变成了4行磁贴。虽然感觉比较惊讶,蛋说实话,4行还是比3行的可用性高一点。不过重启Surface以后,就还原成3行了,怀疑这是Windows判别显示器大小时候的一个bug。 经过一番研究,在Windows 8(Windows RT)上,开始屏幕显示多少行磁贴,是由Windows自动决定的,主要取决于屏幕分辨率以及屏幕大小。在Surface的1366x768、10.1,10.6寸屏上,默认显示3行,并且不提供设置选项。 不过,1366x768的分辨率在较大的屏幕上(14.1、15.4寸),是可以显示4行磁贴的。在其他分辨率的设备上,也是如此。但是Windows没有提供手动设置的地方,所以我们只能改注册表强撸。 下面的注册表设置,只适合Surface RT,Windows 8(非RT)用户请勿尝试,小心灰飞烟灭。 Windows Registry …
Windows Surface

开荒成功:如何在Surface RT上给其他计算机共享文件

最近在撸Surface,屌丝只能买RT版的,上面的Windows 8不是全功能的,你们懂的。对我来说,比较不方便的就是似乎不能共享文件。当然,用Surface访问我台式机上的共享一点没问题。所以今天开荒了一下如何在Windows 8 (RT版上)架设共享文件夹。 1. 在服务管理里面,找到Server,并设置为自动启动,然后启动这个服务。 2. 运行mmc.exe(服务器管理员猿应该经常用这个吧) 3. 将“共享文件夹”添加到右边的管理单元里。 4. 现在你就可以添加你要共享的文件夹了。注意权限设置一定要正确,符合自己的需要。 5. 用局域网中的其他电脑访问你的Surface的机器名,应该能看到共享了!
Windows Surface

毕业生码农防坑纲要

进公司1.5年了,被坑无数。简单整理了一下防坑纲要,已警后人,尤其是毕业生。这些事情也不都是发生在我身上的,做个总结而已,此事不宜在网络上细说。 1. 帮个小忙 如果有人要你过去帮个小忙,我是指,去某个项目里,作为“外聘”帮个“小忙”。请务必非常慎重,因为你很有可能就“一去不复返”了。记得刚进公司不久,我有一位同学,就因为表现比较出色,被提前拉去一个项目组帮了个小忙,结果这个小忙一帮就帮到现在,帮到连部门老大都走了。并且,那时候我们还算是实习,甚至不是“试用期”,但如果你不幸被帮了小忙,很可能就得每天加班了。实习加班是毫无任何福利的。前一阵子我也被帮了个小忙,结果经常被做无意义的需求,和被别人的bug debug,每天为了证明自己的清白在代码里找证据,非常不愉快。 2. 会和不会 毫不客气的说,大多数的毕业生毛都不会。如果你比他们厉害,请尽量装作不会。如果你不幸会的比较多,那就会有很多“帮 …
Programming

如何从TFS2012上删除Team Project

很久以前,微软就推出了在线版的TFS服务(tfspreview.com),当年还是preview,现在已经是正式版可以在线免费使用了。我很久之前也创建了几个测试用的project在里面,结果现在删不掉了。 可以确定的是,不论在网页版TFS的操作界面上,还是Visual Studio 2012里,都找不到删除Team Project的操作。经过一番谷歌,删Team Project得到CMD里进行。 工具叫做TFSDeleteProject.exe,在你的VS安装目录的这个位置,比如: C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE 具体介绍可以看MSDN上的这篇文章:http://msdn.microsoft.com/en-us/library/ms181482%28v=vs.110%29.aspx 操作如下: …
TFS Visual Studio

超详细图解:自己架设NuGet服务器

NuGet 是.NET程序员熟知的给.NET项目自动配置安装library的工具,现在已经整合在了VS2010 SP1和VS2012里。但有时候,尤其在某些公司内部,因为公司防火墙,VS是没办法连接NuGet服务器的。所以我们需要自己架设一个私服。 一、网站构建 首先,确保你的机器在互联网上,并且能够访问NuGet服务器。 创建一个空的ASP.NET网站,选择Framework4(因为考虑到部署问题,很多服务器还没有装.NET4.5,所以我们只能选4) 接下来,用NuGet为这个Web Project安装“NuGet.Server”库。这也是为什么我们需要这台机器能够连接互联网的原因。 安装成功后,你的Solution会变成这样一个结构。并且不需要写任何代码或更改任何配置,它已经可以运行了。但是注意,Packages里只有一个readme.txt,这个目录是用来放NuGet包的。所以现 …
Visual Studio NuGet

Performance tips for Entity Framework

自从我用了EF,每次都很关心是否有潜在的性能问题。所以每次我写LINQ查询,都会使用SQL Profiler看一下实际生成的SQL语句,以便发现潜在的性能问题。也强烈建议大家这么去做,以免日后软件大了出了问题很难查。 一、只选择某列或某些列 有些时候,在C#里写LINQ虽然看着舒服,但性能不一定好,所以有必要做一些调整。比如这种情况: 我需要知道一篇文章的点击数,仅此而已,我可能会写: context.Post.FirstOrDefault(p => p.Id == postId).Hits; 或者: context.Post.Find(postId).Hits; 我期待着他们只去数据库里筛选Hits这一列的数据,然而,通过SQL Profiler会发现,这两条语句居然把全部列都给select出来了,访问Hits的操作实际是在内存中进行的。 虽然小表看不出性能问题,但万一你的表里有一列是存 …
C# ADO.NET Performance

How to Manually Upgrade Entity Framework 4.0 to 5.0

I have been working on the next version of my blog recently, and one of the updates is upgrading Entity Framework to version 5.0. When I initially set up the blog, I used EF4 that came with VS2010. The upgrade process from version 4.0 has to be done manually; using NuGet for the upgrade can only automatically update to versions 4.1 and above. Yesterday, I worked on it for a long time, and finally got the website up and running. Here's what I learned from the experience.
Entity Framework ADO.NET