如何使用visualstudio2013下载 studio 2013

一步步教你如何在 Visual Studio 2013 上使用 Github - 技术翻译 - 开源中国社区
当前访客身份:游客 [
已有文章 2317 篇
当前位置:
一步步教你如何在 Visual Studio 2013 上使用 Github
英文原文:
0人收藏此文章,
推荐于 2年前 (共 3 段, 翻译完成于 03-10) ()
参与翻译(2人):
我承认越是能将事情变简单的工具我越会更多地使用它。尽管我已经知道了足够的命令来使用,但我宁愿它被集成到IDE中。在本教程中,我会告诉你使用Visual Studio 2013如何实现。
首先创建一个任意类型的项目。在我的例子中,我创建了一个新的Windows Phone 8应用。重述一遍,这无关紧要。按如下显示选择“文件”&“添加到源码控制”。
你会看到一个在TFS和Git间选择的选项。选择“Git”并勾选“以后使用它”。
转到并创建一个新仓库,以任意你喜欢的名字命名。我命名为“GitHubVS2013”,剩下的按默认值,最后点击“创建仓库”
进入新建立的仓库,复制一下克隆URL。下一步会用到。
在解决方案管理器旁你会找到团队管理器。点击“非同步提交”,添加上一步复制的克隆URL然后点击“发布”。
&翻译的不错哦!
点击发布按钮后,如果之前没用过的话你需要验证你的Github用户名密码。
你好看到下面的提示:
忽略并点击“同步”按钮,你会看到下面的信息:
现在你的账号已经与仓库相连,你需要上传任何未同步的提交。从团队资源管理器中选择“Home”然后再选择“变更”。
现在你将看到一个项目列表以及包含在提交中的所有文件。添加一个描述点击“提交”。
你可以看到提交已经在本地创建,你需要同步变更到服务器,点击“同步”完成这项工作。
这将显示未同步的提交。点击“同步”,访问一下你的的仓库,你的项目已经在那里了。
&翻译的不错哦!
如果你切换回解决方案管理器并创建一个变更,你会发现文件上会有一个红色标识,如下图所示。蓝色键盘表示文件已经被检入了。
回到“团队资源管理器”点击“更改”,输入描述并点击“提交”。
再次,你被询问是否将本地库与服务器同步,你需要再次点击“同步”。
切换回Github看一下你的仓库,变更已经体现了出来。
好了,理智的你请收藏此页,当你创建新项目时你可以按这个向导来。因为如果你像我一样,6个月后你就忘记了(也许是分钟。)谢谢阅读。
&翻译的不错哦!好评:89.64%
坏评:10.36%
Visual Studio 2013 正式版以 Visual Studio 2012 和后续的Microsoft Visual Studio 更新中的进展为基础构建而成,为开发团队提供需要的解决方案,使其接纳这种转变并开发和交付利用下一波Windows 平台创新 (Windows 8.1) 的新式应用程序,同时在所有 Microsoft 平台上支持多种设备和服务。
Visual Studio 2013新增功能
支持 Windows 8.1 App 开发敏捷项目管理(Agile Portfolio Management)版本控制轻量代码注释(lightweight code commenting)编程过程Visual Studio 2013 正式版提供的工具集非常适合生成利用下一波 Windows 平台创新 (Windows 8.1) 的新式应用程序,同时在所有 Microsoft 平台上支持设备和服务。支持在 Windows 8.1 正式版中开发 Windows 应用商店应用程序,具体表现在对工具、控件和模板进行了许多更新、对于 XAML 应用程序支持新近提出的编码 UI 测试、用于 XAML 和 HTML 应用程序的 UI 响应能力分析器和能耗探查器、增强了用于 HTML 应用程序的内存探查工具以及改进了与 Windows 应用商店的集成。
Visual Studio 2013 正式版进行了大量改进,可帮助您在编码时提高工作效率并集中精力。某些功能首先在 Visual Studio Power Tools 扩展中以试验性质出现,经过改进后才纳入到 Visual Studio 中。新版本中内置了多种提高工作效率的功能,如自动补全方括号、使用快捷键移动整行或整块的代码以及行内导航。此外,Visual Studio 2013 正式版的团队资源管理器增强了主页设计,可以更简便地导航到团队协作功能,并可取消停靠&挂起更改&和&生成&,使其显示在一个单独的窗口中。在处理大型代码文件时,可能难以了解当前所处的位置。在 Visual Studio 2013 预览版中,可轻松地在两种模式之间切换滚动条的行为。在栏模式中,可更直接地查看脱字号位置等注释、更改所在位置和跟踪错误。在图模式下,滚动条显示源代码的实时预览,而将鼠标悬停在代码上即可在工具提示中更详细地预览这段代码。然后单击代码所在位置即可导航到该位置。
Visual Studio 2013相关下载
下载Visual Studio 2013 简体中文正式版
其他下载地址:
软件排行榜
热门关键字利用 Visual Studio 2013 进行跨浏览器、编码 UI 测试
利用 Visual Studio 2013 进行跨浏览器、编码 UI 测试
  下载代码示例  在过去几年中,基于 Web 的解决方案为全世界用户提供便利的访问,因而非常受欢迎。用户喜欢它们的另一个原因是它们的方便性。用户无需安装单独的应用程序;仅凭浏览器就能从任何连接 Internet 的设备连接自己的帐户。但是,从软件开发者和测试者的角度看,用户可以选择任何 Web 浏览器会带来这样一个问题:解决方案必须经过多种浏览器的测试。本文将介绍如何通过简单的方法解决这个问题,即只使用 C# 创建任何新型浏览器都可以执行的编码 UI 测试用例。新 Visual Studio  几年前,当 Visual Studio 2010 发布时,它最有趣的功能之一是能够测试基于 Web 的解决方案的 UI。但是,当时这种技术的使用有一定限制;例如,唯一支持的 Web 浏览器是 Internet Explorer。再者,UI 测试依赖于记录 Web 网站上的用户操作,然后重现这些操作来模拟实际用户操作,这是许多开发者无法接受的。  Visual Studio 2013 候选发布版本 (RC) 在许多不同方面进行诸多改进,从新 IDE 功能到扩展测试框架(bit.ly/1bBryTZ 提供了 RC 版本的详细变化列表)。从我的角度来看,有两个新功能特别有趣。第一个,现在不仅可以测试 Internet Explorer(包括 Internet Explorer 11)的 UI,还可以测试所有其他新型浏览器,例如 Google Chrome 和 Mozilla Firefox。第二个,从测试开发的角度来看甚至更为重要,就是 Microsoft 所称的“可配置浏览器编码 UI 测试属性”。从根本上看,这个新功能定义了一组 UI 元素的搜索条件。本文后面将详细介绍这些功能。被测系统  我将使用这两个新功能来创建跨浏览器、完全编码的 UI 测试。对于我的待测试系统 (SUT),我需要一个公开的、大家熟知的、基于 Web 的应用程序,因此我选择了 Facebook。我准备介绍两个基本用户方案。第一个方案是正测试用例,成功登录后将显示个人资料页面。第二个方案是负测试用例,我输入无效的用户凭据来尝试登录。此时,我希望用户响应中显示某种错误消息。  我需要解决几项挑战。首先,需要启动正确的浏览器(根据测试配置),而且它必须能够提供对特定 URL 的访问。其次,在运行期间,必须从 HTML 文档中提取特定的控件元素,以便为模拟的用户提供输入。必要时,必须输入控件元素的值,并单击正确的按钮向服务器提交 HTML 表单。代码还应能够处理服务器的响应,验证响应,并在测试用例完成时最终关闭浏览器(利用测试的清理方法)。编码前  开始编码前,我需要准备环境,这非常简单。首先,我需要从 bit.ly/137Sg3U 下载 Visual Studio 2013 RC。默认情况下,可通过 Visual Studio 2013 RC 只针对 Internet Explorer 创建编码的 UI 测试,但这不是我感兴趣的;我要针对所有新型浏览器创建测试。当然,只要我在代码中指定用 Internet Explorer 以外的浏览器运行测试,将不会发生编译错误,但是在运行时会引发未处理的异常。之后我还将演示如何更改浏览器。为避免编码过程出现问题,我需要下载并安装一个名为“编码 UI 跨浏览器测试 Selenium 组件”(bit.ly/Sd7Pgw) 的 Visual Studio 扩展,通过它我可以对安装在计算机中的任何浏览器执行测试。代码探讨  一切就绪后,即可演示如何创建新的编码 UI 项目。打开 Visual Studio 2013,单击“文件”|“新建项目”|“模板” |“Visual C#”|“测试”|“编码的 UI 测试项目”。输入项目名称,按“确定”查看新解决方案,如图 1 所示。  图 1 新建一个编码的 UI 测试项目  该解决方案基本上可分为三个紧密相连的组,如图 2 所示。第一组包含一个 Pages 命名空间,其中包括 BasePage 类,该类又派生出 ProfilePage 和 LoginPage。这些类公开在浏览器当前显示页面中使用的属性和逻辑。这种方式可帮助测试用例实现与浏览器特定的操作(如按 Id 搜索控件)分离开。测试用例直接作用于页面类公开的属性和函数。  图 2 编码的 UI 测试解决方案示意图    我在第二组中放入了所有扩展 (UIControlExtensions)、选择器 (SearchSelector) 和与浏览器有关的公共类(BrowserFactory、Browser)。此对象子集存储 HTML 元素搜索引擎的实现逻辑(稍后介绍)。我还添加了我自己的与浏览器相关的对象,帮助使用正确的 Web 浏览器运行测试用例。最后一组包含测试用例实现的测试文件 (FacebookUITests)。这些测试用例不会直接在浏览器上运行;而是使用面板类运行。  项目的一个重要部分是 HTML 控件搜索引擎,因此,第一步是创建一个名为 UIControl&Extensions 的静态类,该类包含从当前打开的 Web 浏览器页面中查找和提取特定控件的实现逻辑。为便于编码以及以后在项目中重用编码,我不想在每次需要使用该类时都初始化它的实例,因此,我准备将它实现为扩展方法,用来扩展内置的 UITestControl 类型。此外,我实现的任何扩展函数都将是泛型函数。它们必须从 HtmlControl(编码的 UI 测试框架中所有 UI 控件的基类)派生,必须包含一个默认的无参数构造函数。我之所以需要此函数是泛型函数,是因为我准备搜索特定控件类型(请参阅 bit.ly/1aiB5eW 提供的可用 HTML 类型列表)。  我将通过 SearchSelector 类型的 selectorDefinition 参数将搜索条件传递给我的函数。SearchSelector 类是简单类型,但是它仍然非常有用。它公开很多属性(如 ID 或 Class),这些属性可从其他函数设置,之后可利用反射转换为 PropertyExpressionCollection 类 (bit.ly/18lvmnd)。接下来,可使用该属性集合作为筛选器只提取与给定条件匹配的 HTML 控件的小子集。之后,生成的属性集合分配给泛型对象的 SearchProperties 属性 (bit.ly/16C20iS),使其可以调用 Exists 属性和 FindMatchingControls 函数。请注意,默认情况下,编码的 UI 测试框架算法不搜索整个页面中的特定控件,只处理扩展 UITestControl 上的所有子控件及其子控件。这有助于提高测试用例的性能,因为搜索条件只应用于小的 HTML 文档子集上;例如,应用于某个 DIV 容器的所有子控件,如图 3 所示。  图 3:搜索 HTML 控件    private static ReadOnlyCollection&T&
FindAll&T&(this UITestControl control,
SearchSelector selectorDefinition) where T : HtmlControl, new()
var result = new List&T&();
T selectorElement = new T { Container = control };
selectorElement.SearchProperties.AddRange(
selectorDefinition.ToPropertyCollection());
if (!selectorElement.Exists)
Trace.WriteLine(string.Format(
"Html {0} element doesn't exist for given selector {1}.",
typeof(T).Name, selectorDefinition),"UI CodedTest");
return result.AsReadOnly();
return selectorElement
.FindMatchingControls()
.Select(c =& (T)c).ToList().AsReadOnly();
}  我已经实现了搜索控制引擎的核心部分,但是函数 FindAll&T& 需要很多代码和知识才能正常运行,您需要指定搜索参数,检查某个项是否存在等。为此我决定不将其公开,而是公开另外两个函数:  public static T FindById&T&(this UITestControl control,
string controlId) where T : HtmlControl, new()
public static T FindFirstByCssClass&T&(this UITestControl control,
string className, bool contains = true) where T : HtmlControl, new()  这些泛型方法“目的单一”,减少了对简单类型预期输入的维度变化,因此用处更大。在内部,两个函数都调用 FindAll&T& 函数并根据其结果运行,但是实现隐藏在它们内部。  使用任何浏览器  我在查找和检索控件上已经做了些工作,但是要测试我的函数实现是否正确,需要使 Web 浏览器正常运行,这意味着需要启动浏览器。启动特定浏览器与任何其他的浏览器相关操作一样容易。如前所述,我需要将所有与浏览器相关的操作放在与页面相关的类中。但是,启动浏览器不是测试的一部分,而是前提条件。受到软件开发最佳实践的启发,我决定创建一个 BasePage 类(如图 4 所示),来存储所有派生页类的公共操作(包括启动浏览器),且不存在任何冗余。  图 4 BasePage 类    public abstract class BasePage : UITestControl
protected const string BaseURL = "";
/// &summary&
/// Gets URL address of the current page.
/// &/summary&
public Uri PageUrl{}
/// &summary&
/// Store the root control for the page.
/// &/summary&
protected UITestControl B
/// &summary&
/// Gets current browser window.
/// &/summary&
protected BrowserWindow BrowserWindow { }
/// &summary&
/// Default constructor.
/// &/summary&
public BasePage()
this.ConstructUrl();
/// &summary&
/// Builds derived page URL based on the BaseURL and specific page URL.
/// &/summary&
/// &returns&A specific URL for the page.&/returns&
protected abstract Uri ConstructUrl();
/// &summary&
/// Verifies derived page is displayed correctly.
/// &/summary&
/// &returns&True if validation conditions passed.&/returns&
public abstract bool IsValidPageDisplayed();
}  静态、泛型 Launch&T& 函数也是 Base&Page 类的一部分。在函数体内,根据无参数默认构造函数对特定页面类型(从 BasePage 派生)的新实例进行初始化。然后在代码中,根据浏览器参数的值(“ie”表示 Internet Explorer,“chrome”表示 Google Chrome 等)设置目标 Web 浏览器。此赋值指定当前测试执行时使用的浏览器。下一步,在选择的浏览器中导航到某个 URL。这是由 BrowserWindow.Launch(page.ConstructUrl()) 处理的,其中 ConstructUrl 函数是每个派生页面的特定函数。启动浏览器窗口并导航到特定 URL 后,我将 HTML 体存储在 BasePage 属性内,并使浏览器窗口最大化(可选)(这是因为页面控件可能重叠,导致 UI 自动执行操作失败)。然后,我清除了 Cookie,因为每次测试应该是独立进行的。最后,在图 5 所示的 Launch 函数中,检查当前显示的页面是否正确,于是我调用 IsValidPageDisplayed,它将在泛型页面的上下文中执行。此函数查找所有需要的 HTML 控件(登录、密码、提交按钮),确认它们存在于页面上。  图 5 Launch 函数    public static T Launch&T&(
Browser browser = Browser.IE,
bool clearCookies = true,
bool maximized = true)
where T : BasePage, new()
T page = new T();
var url = page.PageU
if (url == null)
throw new InvalidOperationException("Unable to find URL for requested page.");
var pathToBrowserExe = FacebookCodedUITestProject
.BrowserFactory.GetBrowserExePath(browser);
// Setting the currect browser for the test.
BrowserWindow.CurrentBrowser = GetBrowser(browser);
var window = BrowserWindow.Launch(page.ConstructUrl());
page.BrowserWindow =
if (window == null)
var errorMessage = string.Format(
"Unable to run browser under the path: {0}", pathToBrowserExe);
throw new InvalidOperationException(errorMessage);
page.Body = (window.CurrentDocumentWindow.GetChildren()[0] as
UITestControl) as HtmlC
if (clearCookies)
BrowserWindow.ClearCookies();
window.Maximized =
if (!page.IsValidPageDisplayed())
throw new InvalidOperationException("Invalid page is displayed.");
}  Web 浏览器是不断演变的,发生演变之时,您可能并不会注意到。有时,这意味着新浏览器版本中没有某些功能,导致某些测试失败,即便以前已经通过这些测试。为此,请务必禁用自动浏览器更新,等待编码的 UI 跨浏览器测试 Selenium 组件支持新版本。否则,在运行时可能发生意外的异常,如图 6 所示。  图 6 Web 浏览器更新后发生的异常测试、测试、再测试  最后,我为测试编写一些逻辑。如前所述,我需要测试两个基本用户方案。第一个是正登录进程(项目源代码提供了第二个负测试用例,可在 archiv/mag201312Testing 找到)。要使该测试能够运行,我必须创建一个特定页面类,该类从 BasePage 派生,如图 7 所示。在新类中,我在私有字段中放入了所有常量值(控件、Id 和 CSS 类名称),创建了利用这些常量从当前页面提取特定 UI 元素的专用方法。我还创建了一个名为 TypeCredentialAndClickLogin(字符串登录、字符串密码)的函数,用来完全封装登录操作。在运行时,它查找所有所需控件,模拟传递为参数的值的键入,然后通过单击鼠标左键按“登录”按钮。  图 7 登录页面    public class LoginPage : BasePage
private const string LoginButtonId = "u_0_1";
private const string LoginTextBoxId = "email";
private const string PasswordTextBoxId = "pass";
private const string LoginFormId = "loginform";
private const string ErrorMessageDivClass = "login_error_box";
private const string Page = "login.php";
/// &summary&
/// Builds URL for the page.
/// &/summary&
/// &returns&Uri of the specific page.&/returns&
protected override Uri ConstructUrl()
this.PageUrl = new Uri(string.Format("{0}/{1}", BasePage.BaseURL,
LoginPage.Page));
return this.PageU
/// &summary&
/// Validate that the correct page is displayed.
/// &/summary&
public override bool IsValidPageDisplayed()
return this.Body.FindById&HtmlDiv&(LoginTextBoxId) !=
/// &summary&
/// Gets the login button from the page.
/// &/summary&
public HtmlInputButton LoginButton
return this.Body.FindById&HtmlInputButton&(LoginButtonId);
/// &summary&
/// Gets the login textbox from the page.
/// &/summary&
public HtmlEdit LoginTextBox
return this.Body.FindById&HtmlEdit&(LoginTextBoxId);
/// &summary&
/// Gets the password textbox from the page.
/// &/summary&
public HtmlEdit PasswordTextBox
return this.Body.FindById&HtmlEdit&(PasswordTextBoxId);
/// &summary&
/// Gets the error dialog window - when login failed.
/// &/summary&
public HtmlControl ErrorDialog
return this.Body.FindFirstByCssClass&HtmlControl&("*login_error_box ");
/// &summary&
/// Types login and password into input fields and clicks the Login button.
/// &/summary&
public void TypeCredentialAndClickLogin(string login, string password)
var loginButton = this.LoginB
var emailInput = this.LoginTextB
var passwordInput = this.PasswordTextB
emailInput.TypeText(login);
passwordInput.TypeText(password);
Mouse.Click(loginButton, System.Windows.Forms.MouseButtons.Left);
}  创建所需组件后,就可以生成测试用例了。此测试函数将验证登录操作是否成功完成。在测试用例开始时,我使用 Launch&T& 静态函数启动“登录”页面。我在登录和密码输入字段中输入所有需要的值,然后单击“登录”按钮。当操作结束时,验证新显示的面板是不是个人资料页面。  [TestMethod]
public void FacebookValidLogin()
var loginPage = BasePage.Launch&LoginPage&();
loginPage.TypeCredentialAndClickLogin(fbLogin, fbPassword);
var profilePage = loginPage.InitializePage&ProfilePage&();
Assert.IsTrue(profilePage.IsValidPageDisplayed(),
"Profile page is not displayed.");
}  在搜索特定 CSS 类的控件时,我注意到编码的 UI 测试框架中可能出现了问题。在 HTML 中,控件在类属性中可能有多个类名称,这当然会影响我要使用的框架。例如,如果当前网站包含特性类为“A B C”的 DIV 元素,当我使用 SearchSelector.Class 属性查找所有 CSS 类为“B”的控件时,可能不会得到任何结果,因为“A B C”不等于“B”。为解决此问题,我采用星号“*”表示法,将类预期从“相等”更改为“包含”。因此,要使该示例有效,我需要将类“B”更改为类“*B”。  问题解答…  有时测试会失败,您必须寻找原因。许多情况下,只需要查看测试日志就可以回答这个问题,但也不总是这样。在编码的 UI 测试框架中,有一个新功能可以按需提供额外信息。  假定测试失败的原因是显示的页面与预期的不同。从日志中可以看到,未找到某个所需的控件。这信息不错,但没有提供全部答案。但是,通过这个新功能,我可以捕获当前显示的屏幕。要使用该功能,只需添加捕获以及将其保存在测试清理方法中的方式,如图 8 所示。现在,可以获得有关任何失败的测试的信息了。  图 8 测试清理方法    [TestCleanup]
public void TestCleanup()
if (this.TestContext.CurrentTestOutcome != null &&
this.TestContext.CurrentTestOutcome.ToString() == "Failed")
var img = BrowserWindow.Desktop.CaptureImage();
var pathToSave = System.bine(
this.TestContext.TestResultsDirectory,
string.Format("{0}.jpg", this.TestContext.TestName));
var bitmap = new Bitmap(img);
bitmap.Save(pathToSave);
this.TestContext.WriteLine("Unable to capture or save screen.");
}总结  本文介绍了在 Visual Studio 2013 RC 中开始使用编码的 UI 测试框架是何等的方便快捷。当然,我介绍的只是这种技术的基本使用方法,包括管理不同的浏览器和支持各种查找、检索和操作 HTML 控件的操作。值得探索的精彩功能不止于此,还有很多。
&&&主编推荐
H3C认证Java认证Oracle认证
基础英语软考英语项目管理英语职场英语
.NETPowerBuilderWeb开发游戏开发Perl
二级模拟试题一级模拟试题一级考试经验四级考试资料
港口与航道工程建设工程法规及相关知识建设工程经济考试大纲矿业工程市政公用工程通信与广电工程
操作系统汇编语言计算机系统结构人工智能数据库系统微机与接口
软件测试软件外包系统分析与建模敏捷开发
法律法规历年试题软考英语网络管理员系统架构设计师信息系统监理师
高级通信工程师考试大纲设备环境综合能力
路由技术网络存储无线网络网络设备
CPMP考试prince2认证项目范围管理项目配置管理项目管理案例项目经理项目干系人管理
Powerpoint教程WPS教程
电子政务客户关系管理首席信息官办公自动化大数据
职称考试题目
就业指导签约违约职业测评
招生信息考研政治
网络安全安全设置工具使用手机安全
3DMax教程Flash教程CorelDraw教程Director教程
Dreamwaver教程HTML教程网站策划网站运营Frontpage教程
生物识别传感器物联网传输层物联网前沿技术物联网案例分析
互联网电信IT业界IT生活
Java核心技术J2ME教程
Linux系统管理Linux编程Linux安全AIX教程
Windows系统管理Windows教程Windows网络管理Windows故障
组织运营财务资本
视频播放文件压缩杀毒软件输入法微博
数据库开发Sybase数据库Informix数据库
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&(注意:文末我添加了一个小节,用来更新最新的一些使用感受。) 昨天晚上,微软在正式发布Windows 8.1的同时,也同时发布了Visual Studio 2013产品系列的正式版。 版本情况 Visual Studio 2013产品系列和2012类似,同样包含了如下版本:
Microsoft Visual Studio Ultimate 2013:Visual Studio Ultimate 2013 是一个先进的开发解决方案,各种规模的团队通过它均可设计和创建引人注目的应用程序,使用户兴致勃勃。
Microsoft Visual Studio Premium 2013:Visual Studio Premium 2013 是一个集成开发环境,其中包括可供开发团队规划、开发、测试和操作应用程序的先进工具。
Microsoft Visual Studio Professional 2013:Visual Studio Professional 2013 是一个具有专业品质的集成开发环境,可简化为 Windows、Windows Phone、Office、Web 和云创建、调试和部署应用程序的任务。
Microsoft Visual Studio Test Professional 2013:Visual Studio Test Professional 2013 将测试人员和其他利益干系人纳入到开发工作流中,使他们能够与开发人员进行上下文协作。
Microsoft Visual Studio Team Foundation Server 2013:Visual Studio Team Foundation Server 2013 是一个处于 Microsoft 应用程序生命周期管理 (ALM) 工具套件核心部位的源代码管理、项目管理和团队协作平台,可帮助团队更加灵活、更有效地进行协作和更连贯地交付高质量的软件。 免费版:
Visual Studio Express 2013 for Web:Visual Studio Express 2013 for Web 提供用于创建新颖而引人注目的 Web 应用程序和服务所需的核心工具。
Visual Studio Express 2013 for Windows:Visual Studio Express 2013 for Windows 提供生成新颖而引人注目的 Windows 应用商店应用程序所需的核心工具。
Visual Studio Express 2013 for Windows Desktop:在 Visual Studio Express 2013 for Windows Desktop 中,可用 C#、Visual Basic 和 C++ 创建桌面应用程序,并且该软件支持 Windows Presentation Foundation (WPF)、Windows 窗体和 Win32。
Visual Studio Team Foundation Server Express 2013:Visual Studio Team Foundation Server Express 2013 是一个处于 Microsoft 应用程序生命周期管理 (ALM) 工具套件核心部位的源代码管理、项目管理和团队协作平台,可帮助个人和小型团队更加灵活、更有效地进行协作和更连贯地交付高质量的软件。 所有版本(包括收费版和免费版)都可以从这里下载到:,也包括语言包。不过免费的Windows Phone的开发还是暂时提供2012的版本(难道是要等WP8.1才提供2013的Express版本?)。 VS 2013要求使用Microsoft Account登录,对于收费版也可以不登录而选择录入序列号。如果登录收费版,会验证登录的账号是否具有相应的MSDN订阅权限。 另外,登录后还会提示你创建相应的TFService账号(也提供了免费使用限额)。 登录有一个最大的好处,就是在所有机器上同步你的IDE设置。这个功能真是太好了,之前我升级VS后,总是要导入前一个版本的配置文件。现在机器中都还有2005的配置文件备份呢。 根据我的实测(在云服务器安装,方便Surface RT远程连接,以实现拿着Surface RT出差也能写代码的目的),免费版(即Express)可满足日常的所有开发需求,比如基本的代码编写调试、单元测试、连接TFS包括Git源代码资源库。和正式版比起来,我的实际使用情况只是不能安装Resharp。 所以,对于小型团队而言,完全可以免费使用VS+TFS(或TFService)的全套工具来完成开发工作,这对于创业团队而言非常适合。 使用感受和经验 由于我从Preview版本就开始使用在我们公司的正式开发环境中,所以整体谈谈感受。 (可能有人问,什么用Preview呢?因为我们正在开发一个新产品,估计到年底才发布第一个版本,如果用最新的版本,那么等我们发布的时候就是基于最新平台的了) Git的支持让分布式开发如虎添翼 先说TFS,在2012的时代,由于我们涉及到兼职人员的外部协作,所以我就改用微软提供的TFService,用起来没有大碍,不过由于微软的服务器在国外,速度感觉稍慢。在TFS 2012 Update之后,TFService首先提供了Git源代码管理功能,不过当时没有马上采用。 后来考虑速度原因,并兼顾外部协作,还是在办公室的服务器上安装了TFS 2013 Preview,选用Git创建了项目,并配置VPN供内部开发人员连接,且在公司外部服务器安装了Git Server供外部开发人员连接。我自己则为资源库设置两个Remote地址,进行两个Git服务器的同步。当然VS 2013只识别且只能操作名为origin的Remote地址,且origin必须符合TFS的地址规范才能获得TFS集成功能。 使用过程中,出现push代码不成功,报服务器资源不存在某个路径,估计是Preview版有Bug,不过由于是Git,这个问题很轻易就被我解决了,就是在TFS上把原有的Git资源库改名,然后再创建同名的Git资源库,把源代码从本地push回服务器,最后删除出错的Git资源库。这个就是Git的好处,如果是TFVC或者SVN的话,只有傻眼了。后来升级到RC就没有出过类似问题。 从RC升级到RTM后,VS对于Git的集成的支持稍微有点增强,比如新增了“未同步的提交”等功能,操作菜单也丰富了一点。当然这篇文章不是专门介绍TFS Git的,所以不会展开详细讲,后面我会在博客或者社区活动中详细讲解。 升级TFS有惊无险 RC发布之后,我就马上对Preview升级。其实我的做法是重装了TFS的操作系统,再安装TFS 2013 RC,并配置连接到之前的Preview数据库上,结果在升级数据库的过程中报错了。出错的原因可能是之前我重装过数据库服务器,没有正确恢复分析服务和分析数据库。 还算进行了备份,就恢复数据库,并在重新配置TFS的时候,没有选择分析服务器的配置,就成功了。所以升级TFS一定要备份数据库。 过一会就打算去把TFS 2013 RC升级到RTM了。 用TFS进行敏捷开发如鱼得水 在TFS 2013最大的改变,除了支持Git就是加强看板功能、新增Portfolio(Feature)Backlog,以及团队聊天室了。支持的Scrum模板已经是3.0了。 看板功能增强后,查看任务和燃尽图更加方便;有了Feature Backlog后,可以把Backlog更好的进行层级划分了;有了团队聊天室,和远程的队友沟通无障碍了。 Web开发更上一层楼 在VS 2012上开发是ASP.NET MVC,用的是4.0版本,在VS 2013上使用的是MVC 5.0。4.0和5.0虽然差别没有多大,不过登录验证功能和模板都有较大改变。 在VS 2012中MVC的模板使用的样式是一个微软自己定制的,在使用VS 2012开发我们产品演示版本的时候,我就使用了类似Twitter.Bootstrap这样的NuGet包来支持Bootstrap 2.0。 VS 2013 Preview和RC模板已经内置了Bootstrap(2.2),视图也采用了Bootstrap的class等。可惜RC刚发布几天,Bootstrap 3.0就正式发布了,我只好手动对视图所用的class进行调整(还算那个时候项目的视图文件不多)。 在VS 2013 RTM中,不仅内置了Bootstrap 3.0,而且视图class已经兼容3.0了。 再说说登录验证功能,这里重点是窗体验证。 在VS 2012中,采用的是WebMatrix/WebPages的验证方式,即是SimpleMembership。在VS 2013中,改用了和Owin兼容的全新验证基础架构,且支持EntityFramework来创建数据库。 当然,这部分功能Preview、RC和RTM都一直在改变,之前我把登录的代码从Preview移植到RC,今天又把RC移植到RTM。RC到RTM,主要修改了模型类的名称,比如User变为IdentityUser,并删除了一些类,进行了简化和优化。不过,我对MVC 5提供的登录验证代码进行了简单封装,移植起来不是太费事。 相关介绍和新闻 以上的使用经验只是我的一些零碎的总结,下面有更加完整和系统的新功能介绍:
其实和VS 2013一起更新,还有一个东西值得一提,就是Entity Framework 6,这是一个听取了社区大量意见,有着很多新增功能的第一个开源版本。后面有时间且有一些心得之后再和大家分享。 更新 ,MVC 5最新引用没有自动更新,现在MVC 5的程序集都通过NuGet包来提供(因为开源了)。如果是从Preview或RC升级为RTM,那么MVC 5的项目要注意一下和MVC相关的程序集是否还是引用着MVC 4.0的,你需要手动切换到5.0的NuGet包。
阅读(...) 评论()

我要回帖

更多关于 visualstudio使用教程 的文章

 

随机推荐