Xamarin Studio 比 Visual Studio 2013 好用的三个功能
Xamarin Studio 比 Visual Studio 2013 好用的三个功能
Xamarin Studio 最近发布了 5.2 版本, 带来了一些相当棒的特性, 其中有一些特性甚至超越了 Visual Studio 2013, 接下来就介绍我认为最棒的并且比 VS2013 要好用的三个特性:
NuGet 包管理
Visual Studio 对 NuGet 包的管理是通过对话框来管理的, 如下图所示:
对 NuGet 包的添加、 更新、 删除等操作都在这个对话框内完成, 不过缺点也是每次都得打开这个对话 框。 Xamarin Studio 提供一些更加人性化的管理方式, 一部分功能可以通过上右键下文菜单来管理, 不需要打开包管理对话框。
自动检查更新
打开一个带有 NuGet 包引用的项目时, Xamarin Studio 会自动检查项目引用的包有没有新版本, 如 果有新版本, 则会在对应的节点上提示新版本, 如下图所示:
一键更新还原
当引用的 nuget 包有新版本时, 可以直接在包的节点上点击右键, 选择更新, 或者在包目录上右键, 选择更新全部有新版本的包, 而不必像 Visual Studio 那样打开 NuGet 包管理对话框, 如下图所 示:
如果需要的包需不是最新版本的, 只要修改一下 packages.config
文件里的对应包的版本号, 同样 右键选择 “还原 (Restore) ” 即可。
这一点与 Visual Studio 比起来还是方便很多的, 得打开包管理控制台, 输入这样一条命令才行:
PM> Install-Package package-id -Version package-version
重新指定目标
如果你在项目中使用了便携式类库项目 (PCL Library Project) , 调整了类库的目标之后, 对应的 nuget 包也要重新添加, 在 Visual Studio 中, 是通过删除重新添加来实现的, 或者输入命令:
update-package -reinstall
但是在 Xamarin Studio 中, 只需要点击一下右键, 选择 “ReTarget” 即可, 如下图所示:
Shared Project 项目
Visual Studio 中的 Shared Project 让多项目中的文件链接成为历史, 但是只支持 WinPhone 和 WinStore 两种项目类型, 其它项目类型 (Web, Library, PCL, Silverlight, WPF …) 都不支 持, 真是让人不爽, 不是不能支持, 只是不让你用而已, 其实就是一句 MSBuild
指令而已, 手工 编辑一下项目文件就行。
**创建 Shared Project **
然而, Xamarin Studio 则提供了比较广泛的 Shared Project 项目支持, 可以单独创建 Shared Project, 所有项目类型都可以引用 Shared Project , 如下图所示:
这一点还是非常赞的。
项目引用
Xamarin Studio 还有一点比较好的是对项目引用的分类, 来自包的引用单独作为一组, 这样看起来更 加清晰:
特别是对于便携式类库项目, 这样的分类看起来非常清楚:
以上三个功能是我认为最好的, 比 Visual Studio 做的要好的三个特性, 当然 Xamarin Studio 还有很多很好的特性, 就不再列举了, 希望这个开源的 IDE 能越来越好用!
- Thinking in SQL系列之:数据挖掘K均值聚类算法与城市分级
- 设计模式专题(二十) ——职责链模式
- 设计模式专题(二十一) ——中介者模式
- 设计模式专题(二十二) ——享元模式
- 设计模式专题(二十三) ——解释器模式
- Thinking in SQL系列之数据挖掘C4.5决策树算法
- 设计模式专题(二十四) ——访问者模式
- PHP实用功能——modern PHP读书笔记(一)
- ModernPHP读书笔记(二) ——PHP开发标准
- iBatis.Net(6):Data Map(深入)
- iBatis.Net(5):Data Map(了解)
- ModernPHP读书笔记(三)——PHP的良好实践
- PHP开发过程的那些坑(一) ——对象拷贝
- PHP开发过程的那些坑(二) ——PHP empty函数
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- AUCell | 识别单细胞对“基因集”的响应
- 未来十年,机器学习工程师会消失吗?
- Get了!用Python制作数据预测集成工具 | 附代码
- 定时任务最简单的3种实现方法(超好用)
- Swift:UICollectionReusableView xib创建报错
- echo-高性能,可扩展,极简的Go Web框架
- 小程序文字显示换行
- css Backgroud-clip (文字颜色渐变)
- 微信小程序 buton清除默认样式
- 正则replace 回调函数里接收的参数是什么?
- 微信小程序使用pako.js的踩坑笔记
- Koa - 初体验(写个接口)
- Koa - 中间件(理解中间件、实现一个验证token中间件)
- Koa - 使用koa-multer上传文件(上传限制、错误处理)
- 原生js 复制内容到剪切板