Category Archives: 日常开发工作

Windows运行多个版本NodeJS的解决方案

在Windows上开发NodeJS项目,有时候会遇到不同的项目依赖不同的NodeJS版本的问题。今天在GitHub上发现了一个工具nvm-windows可以很好的解决Windows上同时有多个NodeJS版本共存的问题,记录一下试用方法

  1. 安装nvm-windows之前首先需要卸载当前机器上已经安装过的所有nodejs版本
  2. 删除下面2个文件夹:C:\Program Files\nodejs和 C:\Users\<user>\AppData\Roaming\npm
  3. 从GitHub上下载最新的nvm-windows安装包
  4. 打开命令行窗口后就可以使用了,先用nvm install安装需要的node版本,然后用nvm use就可以在不同版本间自由切换了。

下面是几个常用的命令

  • nvm install 4.5.0: 在本机上安装4.5.0版本nodejs
  • nvm ls: 查看已经安装所有nodejs的版本
  • nvm use 4.5.0: 使用4.5.0做为当前nodejs版本

Service Fabric SfDevCluster文件夹占用空间过大解决方法

今天突然发现C盘SSD没空间了,查了一下C:\SfDevCluster占用了30G空间,这个是Service Fabric本地开发模拟器的工作目录,详细看了一下,大部分都是log文件占满了空间。搜了一下,可以用下面方法解决

  1. 用管理员身份打开Powershell,CD到C:\Program Files\Microsoft SDKs\Service Fabric\ClusterSetup文件夹下
  2. 运行下面命令,
  3. .\DevClusterSetup.ps1 -PathToClusterDataRoot D:\SfDevCluster\Data -PathToClusterLogRoot D:\SfDevCluster\Log

注意把D:\SfDevCluster换成你想要放SFCluster的新目录,这个脚本会把当前的cluster停掉并且删除D:\SfDevCluster。新的cluster部署会自动用新的目录。

更新:

有童鞋问直接清理SfDevCluster文件夹的方法,在右下角任务栏里的Service Fabric Cluster Manager右键菜单里,点Reset Local Cluster,就会删除所有的log,并将cluster恢复成默认的状态。

image

ASP.NET Core读取appsettings.json的配置

这边博客记录迁移到ASP.NET Core过程中读取配置文件的变化。在老版本的ASP.NET里,项目的全局配置一般都存在web.config里的appSettings里,只需要用ConfigurationManager.AppSettings[“Foo”]就可以把名为Foo的变量取出来。在ASP.NET Core里,访问配置文件的方式也有了很大变化。但是ASP.NET Core里web.config已经被appsettings.json替换,加上ASP.NET Core里大量用了依赖注入(Dependency Injection),这使得读取配置信息也和之前不一样,新的框架下取配置更加灵活和易于扩展。这里用一个小例子演示如何通过Options.ConfigurationExtensions这个来取得配置。

Continue reading

Azure Service Fabric学习资料整理

最新开始学习Azure Service Fabric,基本上就是微软下一代PaaS平台了,这里对学习资料做了一些整理

官方网站

开源项目

其他

Azure IoT学习资料整理

这里记录Azure IoT的一些学习材料

教程和文档

开源项目

脚本添加Windows防火墙的入站规则

PowerShell命令New-NetFirewallRule可以很方便的快速添加入站规则到本地的防火墙里,下面是一些常见的例子

通过脚本设置当前机器防火墙,允许端口80的入站规则。

Write-Host -ForegroundColor Cyan "Creating new inbound rule Http"
New-NetFirewallRule -DisplayName "Http" -Direction Inbound -LocalPort 80 -RemotePort Any -Protocol TCP -Enabled True

通过脚本设置当前机器防火墙,允许端口80的出站规则。

Write-Host -ForegroundColor Cyan "Creating new outbound rule Http"
New-NetFirewallRule -DisplayName "Http" -Direction Outbound -LocalPort 80 -RemotePort Any -Protocol TCP -Enabled True

通过脚本设置当前机器防火墙,允许ICMPv4协议入站规则。

Write-Host -ForegroundColor Cyan "Creating new rule Allow Ping"
New-NetFirewallRule -DisplayName "Allow Ping" -Description "Allow ping" -Protocol ICMPv4 -IcmpType 8 -Enabled True -Profile Any -Action Allow

让git在命令行下不再提示输入密码

在命令行下使用git,比使用GitHub for Windows方便很多,不过有一个恼人的地方是每次pull或者是push的时候都被提示输入用户名和密码,长期以来,烦不胜烦。

上网搜了一下,发现只要运行一下以下命令,git就会自动缓存密码,不再提示输入密码

git config --global credential.helper wincred

这下世界终于清静了。