Edi Wang

Microsoft MVP for Azure

All Posts

EntityFramework中使用.Include()做饥饿加载可能产生的性能问题

这几天在码新版博客程序,因为文章表字段太多,手贱把几个相关列拆分到了1-1的表中。比如Post 1-1 PostPublish,Post 1-1 PostExtension。但是性能突然比以前差了一点。 和这两张相关表直接交互的是这么一段代码: var query = Repository.Select().Include(p => p.PostExtension).Include(p => p.PostPublish) .Where(p => p.PostPublish.IsPublished && (authorName == null || String.Compare(p.Author, …
Entity Framework SQL Performance

How to Change TFS Server URL in Visual Studio

今天又给大家带来一个实用装逼技巧。这个故事的起因是我无意中发现微软的TFS Service支持URL重命名了,非常牛逼,就像这样: 但带来的问题就是我们需要手动更改以前所有使用这个TFS地址的地方。Visual Studio就是首当其冲的了。很可惜,在VS里面,是没有办法直接编辑TFS地址的。 如果删掉重建的话,还需要把之前所有的本地文件夹都映射一遍,万一玩脱了就爆了。所以还是建议去注册表手动修改。 要修改的位置是: HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\TeamFoundation\Instances (如果你用的是VS2010,就把11.0换成10.0) 第一处:定位到原TFS地址的文件夹,把右边的Uri字段改掉。 第二处: 还有有个很阴巴的文件夹,藏在你的TFS文件夹下面,展开TFS文件夹,在 …
TFS Visual Studio

如何手动将一个普通.NET类库转换成可移植类库(Portable Class Library)

可移植类库是.NET程序员装逼的必备良药,至于它有多牛逼,我也不知道,大家可以自己看一下 http://msdn.microsoft.com/en-us/library/vstudio/gg597391%28v=vs.110%29.aspx 但是万一你装逼的时候手一滑,建成了一个普通的Class Library肿么办?普通青年的做法是删掉再建一个,这当然是OK的。但是,作为文艺青年,我们可以继续装逼:自己动手把这个类库转换成Portable Class Library。 为了演示,我先建一个普通的.NET类库:AVeryNBClassLibrary 在这个项目的属性页里面,自然是看不到Portable Class Library的选项的。 接下来,在项目上点右键,选择Unload Project,然后再次右键选择Edit AVeryNBClassLibrary.csproj。细心的观众 …
.NET

如何在Windows Azure虚拟机上配置外网能访问的FTP服务器

昨天打算用Windows Azure VM建个FTP来下东西,本来以为只要配置IIS和防火墙再打开Azure Portal的21端口就行的,结果又被Windows Azure爆出了翔。在Azure上配置FTP没那么容易的。 首先,如何安装和正常配置一个FTP我不叙述了,大家可以自己搞定。Azure唯一特殊的就在于开防火墙端口。 1. 你需要知道你VM的外网IP,可以用ping命令,虽然Azure VM不允许被ping,但解析IP还是没问题的。 2. 将IP添加到FTP站点的FTP Firewall Support里面。 3. 由于Data Channel Port是在IIS Root Node上被锁住的,所以还要回IIS Root去配端口范围。这些端口是FTP用来传输数据的(FTP居然不是只用21端口的,虽然不知道是为什么
IIS VM FTP

Windows Azure中如何将SQL数据库转移到别的Subscription下

今天怀着无比兴奋的心情,去参加了微软在上海举办的Azure训练营活动。又得到了一个Azure账户,并且也感受到了人类的希望。自从用了Azure以后,我逼格提升了,博客服务稳定了,就连三观也恢复了!妈妈再也不用担心HTTP 503了! 拿到新账户以后,我把Co-Administrator交给了我outlook.com上的的主账户。这样我用outlook账户登录,就能看见除了猿来的MSDN Subscription以外的另一个账户了。并且可以在一个账户中集中管理所有的内容,屌炸天了!#微软,人类的希望# 那么,在实际场景中,不同的Subscription可能是不同的人持有的,如果我们想把现有账户中的Azure Service转移到别的账户中,肿么办呢?如果重新部署的话,意味着风险和服务中断。幸好,光荣、伟大、正确的微软已经给我们提供了这么一个选项,能够在几秒内平稳将服务迁移到别的
SQL Azure Azure Subscription

使用PowerShell操作Windows Event Log

PowerShell是个很牛逼的命令行工具,在Windows 7以后的系统里都默认自带。学会了PowerShell就可以提升逼格,让妹子崇拜。今天就教大家用PowerShell操作Windows的Event Log。 首先,启动PowerShell很简单,只需要在开始菜单里输入Power,就能找到了(Windows 8用户可以直接在开始屏幕里搜索Power)。 启动PowerShell后,你可以看到一个这样的界面。和CMD不同,它是深蓝色背景的,并且路径前多了PS前缀。看起来很厉害的样子: 有用程序写过Windows Event Log的童鞋都知道,我们的首要任务是创建一个Log和一个Source。PowerShell里语法如下: new-eventlog -LogName 日志名称 -Source 源名称 比如,我们创建一个Name为Game,Source为CS的Log,可以这样写: …
Windows PowerShell EventLog

图解:如何将SQL Azure数据库备份到本地SQL Server

用了两天SQL Azure后,发现SQL Azure数据库没有办法做传统意义上的“bak”备份,但我们确实很需要能够随时将数据库备份到本地,以更灵活的使用。所以今天就开荒了一下操作方法,并分享给大家。这样一来,我们既可以把SQL Server迁移到SQL Azure,又可以反过来把SQL Azure撸回SQL Server,这是一个比较完整的装逼过程,妹子们一定会赞不绝口。 步骤如下: 1. 启动SSMS2012,在目标SQL Azure数据库上点右键,选择“Export Data-tier Application”。 2. 在Export Settings选项卡里制定本地的备份路径,现在已经是“bacpac”拓展名的了。。。 3. 然后点击Next,确认后就向导就开始撸了。 4. 撸完以后会显示Operation Complete的消息,现在本地备份文件已经创建完成了。 5. 在 …
SQL Server SQL Azure Azure

图解:如何将SQL Server数据库迁移到SQL Azure

最近为了进一步装逼,决定将本博客的数据库从SQL Server 2008 R2迁移到Windows Azure上,即SQL Azure,云数据库。今天花了半天时间成功完成了迁移,把经验拿出来给大家分享。 注意:本文的方法只在SQL Server 2008 R2和SQL Server 2012数据库上试过,其他版本生死未卜。 首先,不管你现在的数据库是MSSQL2008R2的还是MSSQL2012的,你都需要安装SQL Server 2012版的SSMS。这是最方便的迁移方法。如果不想用SSMS,可以试试codeplex上的这个工具:http://sqlazuremw.codeplex.com/ 1. 启动SSMS后,在要被迁移的本地数据库上点右键,选择Tasks - Deploy Database to SQL Azure... 2. 在弹出的向导中,点击Connect,连接到你在 …
SQL Azure Azure

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