Visual Studio 2012的截图如下所示:
首先可以注意到的是标题栏中添加了一个快速启动区域。这可以作为一个搜索框使用,它会扫描菜单和打开的文件以查找输入的文本。
要查看一些额外的功能,需要创建/打开一个项目。VS2012的一个新特性是预览窗口/标签页。
下面是一个截图,展示了所指的新特性。
用红色矩形框出了新特性。如果在解决方案资源管理器中选择了一个文件,预览标签页会出现在用于打开文档的标签控制的右侧。如果按下“保持打开”按钮,文件将正常打开。这个想法是这个预览功能只打开文件进行阅读,进行预览,如果开始在文件中进行更改,它将正常打开。这在与TFS或其他源代码控制一起工作时非常有用。
接下来出现的有趣的事情是“刷新Windows应用”按钮。如果正在调试一个应用程序,并且在JavaScript或HTML文件中进行了更改,不需要停止调试,重建应用程序并重新运行应用程序;在VS2012中,只需要按下这个按钮,模拟器或本地机器上的一切都会刷新。用红色矩形框出了按钮和它的工具提示。
VS2012有很多新特性。认为最好的一个,也是网络开发者需要和请求的,是为JavaScript提供了完整的Intellisense支持,以及JavaScript函数的“转到”功能。在下面的链接中,所有Visual Studio 2012的新特性都被解释和展示了。
创建第一个Windows 8应用程序
通过这个链接安装VS2012,它将安装一些应用程序模板,用于开发Windows 8应用程序。所以,要创建一个新的Windows 8应用程序,只需从菜单中选择“文件”->“新建项目”,或者按“CTRL + SHIFT + N”,“新建项目”窗口就会打开。
在左侧的树形结构中选择“JavaScript”和“Windows Metro风格”。最初,创建了一个空白应用程序,因为想一步一步地进行,并看看事情是如何融合在一起的。在指定了项目的名称,设置了位置并按下“确定”按钮后,就创建了一个空白应用程序。但是让暂时停下来,谈谈将要开发的项目。
想到了一个非常简单的项目,想象自己是一个房地产经纪人(谁知道一点编程),需要一个应用程序来运行全新的操作系统Windows 8。这个应用程序会有图片和一些关于想出售的房地产的详细信息。
一开始,会制作一个静态应用程序,并硬编码一切。考虑到金融危机还没有结束,房地产市场在这些日子里也不是一个动态的市场;没有必要进行大型应用程序架构和数据库集成等。目前,试图遵循KISS方法(保持简单,愚蠢)。正如看到的,项目的目的已经定义好了,让开始工作。
将项目命名为HouseRental,因为只卖房子。创建了空白项目后,有了这个项目结构。
有3个重要的文件需要提及:
这些文件的名称相当直观,default.css将包含为应用程序定义的默认样式,将看到在案例中,它包含了一些定义的空样式。default.html是一个HTML5文件,HTML标签将被添加到其中,这与default.css文件一起将创建应用程序的用户界面。default.js文件更有趣,这里是它的内容:
// 这是对空白模板的介绍,请参见以下文档:
// http://go.microsoft.com/fwlink/?LinkId=232509
(function () {
"use strict";
var app = WinJS.Application;
var activation = Windows.ApplicationModel.Activation;
WinJS.strictProcessing();
app.onactivated = function (args) {
if (args.detail.kind === activation.ActivationKind.launch) {
if (args.detail.previousExecutionState !== activation.ApplicationExecutionState.terminated) {
// TODO: 这个应用程序是新启动的。在这里初始化应用程序。
} else {
// TODO: 这个应用程序已从挂起状态重新激活。
// 恢复应用程序状态。
}
args.setPromise(WinJS.UI.processAll());
}
};
app.oncheckpoint = function (args) {
// TODO: 这个应用程序即将挂起。在这里保存任何需要跨挂起保持的状态。
// 可能会使用WinJS.Application.sessionState对象,它会自动保存和恢复跨挂起。
// 如果需要在应用程序挂起之前完成一个异步操作,请调用args.setPromise()。
};
app.start();
})();
这是VS生成的,没有进行任何修改。与其他JavaScript文件不同的是,“use strict”字符串。这个字符串会激活严格模式。通过切换到严格模式,当试图在函数内部创建一个全局JavaScript变量时,会遇到错误。使用它还有其他好处,ECMAScript语言规范给出了更多细节。使用严格模式不是必须的,但专家们说使用它是一个好习惯。
在“use strict”部分之后,创建了局部变量,为onactivated和oncheckpoint事件做了2个订阅,最后调用了app.start()。整个逻辑都在一个自执行函数中。文件default.js连同default.css被default.html引用。