Visual Studio LightSwitch

使用 Visual Studio LightSwitch 构建业务应用程序

Robert Green

下载代码示例

考虑一下两名超负荷工作的员工。Antonio 是一家拥有数百个分支机构的大型银行中 IT 部门的一名高级开发人员。Dalia 是其中一家分支机构的主管。她希望更好地跟踪计算机资产。谁拥有哪一台计算机,使用了多长时间?每一台打印机和传真机是什么时候购置和维护的?每个月,本分支机构在外设和耗材方面的花费是多少?

Dalia 给 Antonio 发送了一封电子邮件,请他编写一个资产跟踪应用程序。Antonio 也认为这是需要做的工作,可以为银行节省大量开支,但他的全部精力已被其他项目完全占据,没有时间帮助 Dalia。他知道,Dalia 准备自己在 Excel 或其他最终用户应用程序中构建这一应用程序,对此他感到担忧,因为 Dalia 可能会构建无法扩展的单层、独立应用程序。但他能做什么呢?

很快六个月过去了。Dalia 取得了成功。她构建了自己的应用程序,将她所在分支机构的计算机开支削减了 25%,因为更加有效地利用资源,工作效率也提高了。银行管理层决定,所有分支机构都应采用这一系统,并且数据应集中起来。这个任务交给了 Antonio,完成期限是月底。现在,Antonio 要完成这个艰巨的任务,用自己的思路(之前如果有时间,他会这样构建的)修改这个应用程序。好运,Antonio!

Visual Studio LightSwitch 简介

Visual Studio LightSwitch 可用于处理这种常见问题。LightSwitch 是 Visual Studio 系列中的新产品,旨在帮助各种技能水平的开发人员针对桌面、Web 和云快速创建以数据为中心的业务应用程序。LightSwitch 简化了开发过程,因为它会为您完成大多数开发工作。您不需要编写代码与数据库进行交互,也不需要手动布局屏幕。您可以专注于业务逻辑。

LightSwitch 应用程序是以 Silverlight 为基础的。这类应用程序使用成熟的基于 Model-View-ViewModel (MVVM) 的 n 层体系结构模式,以及大家所熟悉的 Microsoft .NET Framework 技术,例如实体框架和 WCF RIA 服务。LightSwitch 应用程序可以部署为桌面(浏览器之外)应用程序或基于浏览器的应用程序。桌面应用程序可以利用本地硬件资源,能与 Microsoft Word 和 Excel 等应用程序一起使用。桌面 LightSwitch 应用程序和基于浏览器的 LightSwitch 应用程序都可以承载在 IIS 和 Windows Azure 上。

LightSwitch 的主要用户是 Dalia 这样的最终用户开发人员。他们是信息工作者、IT 专业人员、业务分析师等等,在工作职责内需要进行一些开发工作。他们不是专业的开发人员,需要一个难度不大的开发切入点,可以处理常见应用程序需求的内置基本功能,以及简单灵活的部署方法。简而言之,他们需要快速构建体系结构合理、以数据为中心的应用程序,并且可以轻松部署和扩展。

现有 Visual Studio 开发人员往往会发现 LightSwitch 是自己工具箱中的一个迷人新成员。LightSwitch 安装在 Visual Studio 2010 专业版及更高版本上。Visual Studio 开发人员可以从头构建 LightSwitch 应用程序,也可以在 Visual Studio 中打开某个 LightSwitch 应用程序,然后加以扩展。如果 Dalia 使用 LightSwitch 构建她的应用程序,Antonio 可以打开该应用程序,然后进行功能增强。Antonio 也可以在 LightSwitch 中构建应用程序,比起从头构建,这样可能节省大量时间。

在本文中,我将讨论无处不在的 Contoso Corp. 下属的建筑公司所使用的一个 LightSwitch 应用程序。这家公司需要管理客户和自己的项目。您可以在此下载我将讨论的示例应用程序:code.msdn.microsoft.com/Contoso-Construction-9f944948

实体

要构建 LightSwitch 应用程序,在选择是使用 Visual Basic 还是 Visual C# 编写代码后,第一步就是定义数据。您可以创建新表或附加到外部数据源。如果从头开始创建表,这些表会添加到应用程序数据库(是 SQL Server Express 数据库)中。请注意,部署应用程序时,您可以选择任意版本的 SQL Server 来承载数据。若要处理外部数据,可以连接到外部数据库,例如 SQL Server 或 SQL Azure,或者您有其实体框架提供程序的任何数据库。您也可以连接到 SharePoint 列表或 WCF RIA 服务。

示例应用程序包含 Customer 实体(表),如图 1 所示。

The Customer Entity
(单击进行缩放)

图 1 Customer 实体

对于每个实体属性,您不仅可以定义数据类型,也可以定义该属性是不是必需、唯一、可搜索的属性,以及在默认情况下是否显示在屏幕上。另外,您还可以指定备用显示标签和最大长度。对于数据属性和日期属性,您可以指定最小值和最大值。

对于某些属性,不必保留为字符串或其默认类型,您可以使用内置数据类型(也称为自定义业务类型)。Customer 实体中的 Phone 属性和 Fax 属性使用 Phone Number 数据类型,而 Email 属性使用 Email Address 数据类型。内置数据类型提供验证,可以生成用户友好的运行时错误。您不需要编写代码来验证电话号码或电子邮件地址的有效性。此外,Phone Number 数据类型还包括内置格式设置,如图 2 所示。

The Built-In Phone Number Data Type Provides Validation and Formatting

图 2 内置 Phone Number 数据类型提供验证和格式设置

此外还有 Date、Image 和 Money 数据类型,它们都附带内置编辑器、格式设置和验证。

向某个实体添加属性后,应查看用于描述该实体的 Summary 属性。该属性还会成为搜索屏幕中的超链接。

该屏幕在一个网格中显示所有客户。请注意,Full Name 列包含超链接。当用户单击某个全名时,LightSwitch 会显示该客户的详细信息屏幕。作为 LightSwitch 开发人员,您不需要为此编写任何代码。图 3 显示“Search Customers”(搜索客户)屏幕。

An Entity’s Summary Property Is a Hyperlink in Search Screens

图 3 实体的 Summary 属性是搜索屏幕中的超链接

默认情况下,LightSwitch 使用第一个字符串属性作为实体的 Summary 属性。如果没有字符串,则使用第一个非字符串属性。在示例应用程序中,客户是人,Customer 实体中的第一个字符串是 LastName。未使用该属性作为 Summary 属性,Customer 实体拥有一个 FullName 属性。这是一个计算属性。若要将某个属性设置为计算属性,请选中“Properties”(属性)窗口中的“Is Computed”(计算),或单击设计器顶部的按钮,单击“Edit Method”(编辑方法),然后编写以下代码计算该属性的值(我将使用 Visual Basic):

Private Sub FullName_Compute(ByRef result As String)
  result = Me.LastName + ", " + Me.FirstName
End Sub

若要将 FullName 设置为 Summary 属性,只需选择 Customer 实体,然后将 Summary 属性设置为 FullName。

计算属性不存储在数据库中。 这些属性在运行时作为实体的属性进行计算。 您可以使用计算属性来简单连接名称和地址,也可以用于连接不同计算值,例如年初至今收入或未付发票的总值。

若要在实体之间创建关系,请单击数据设计器中的“Relationship”(关系)按钮。 在“Add New Relationship”(添加新关系)对话框中,选择两个实体、关系的类型和删除行为。 Customer 实体与 Project 实体及 Appointment 实体之间定义有一对多的关系。 因而,Customer 有 Projects 属性和 Appointments 属性。 这两个属性都是集合。

您不仅可以在同一数据源中的实体之间创建关系,也可以在多个数据源中的实体之间创建关系。 LightSwitch 会处理所有数据的检索工作、将数据呈现给用户并保存变更。 创建联合关系是 LightSwitch 的一项特有的出色功能。

自定义验证规则

除了使用内置业务类型所提供的验证,您还可以在屏幕级别和实体级别添加自定义业务逻辑代码。 屏幕验证代码仅运行于客户端,验证屏幕属性和数据。 实体属性验证代码首先运行于客户端,然后运行于中间层。 用户获得即时反馈,并能在向中间层发送数据之前更正错误。 验证逻辑也运行于中间层以处理其他用户更改了数据的情况。 这是 n 层设计中的最佳做法。

若要为某个实体属性编写验证代码,您可以在实体设计器中选择该属性,然后在“Write Code”(编写代码)按钮下拉列表中选择适当的方法:例如 Address1_Validate(如图 4 所示)。

图 4 Address1_Validate 方法

Private Sub Address1_Validate(results As EntityValidationResultsBuilder)
  'Warn the user if the Address is empty
  If Me.Address1 = "" Then
    results.AddPropertyResult(
      "Address should not be empty. "
& 
      "Construction project cannot begin unless an address is supplied.", 
      ValidationSeverity.Warning)
  End If
End Sub

EntityValidationResultsBuilder 是验证结果容器。 它可以包含验证信息、警告和错误。 验证信息和警告向用户提供信息,但不会阻止用户保存数据。 如果该集合包含任何验证错误,则用户无法保存数据。

在示例应用程序中,如果地址为空,则用户会收到警告。 用户仍可以保存数据。 不过,用于验证邮政编码的代码(如图 5 所示)更为严格。

图 5 ZIP_Validate 方法

Private Sub ZIP_Validate(results As EntityValidationResultsBuilder)
  If Me.ZIP <> "" Then
    'Enter the dash if not supplied and is 9 digits long
    If Me.ZIP.Length = 9 Then
      Me.ZIP = Me.ZIP.Substring(0, 5) + "-" + Me.ZIP.Substring(5)
    End If
    'Make sure valid zip code (5 or 5+4 format)
    If Not System.Text.RegularExpressions.Regex.IsMatch(
      Me.ZIP, "^\d{5}$|^\d{5}-\d{4}$") Then
      results.AddPropertyError(
        "Please enter a valid US ZIP code.
(ex.
98052 or 98052-1234)")
    End If
  End If
End Sub

如果邮政编码的格式不正确,则代码会添加一个验证错误。 这样,用户无法保存无效数据。 图 6 是地址保留为空、输入无效邮政编码所产生的结果。 空地址生成警告,无效邮政编码生成错误。

The Empty Address Generates a Warning While the Invalid ZIP Code Generates an Error

图 6 空地址生成警告,无效邮政编码生成错误

屏幕

定义实体之后,构建 LightSwitch 应用程序的下一步是设计屏幕。 LightSwitch 提供了下列预定义的屏幕模板:

  • Details Screen(详细信息屏幕) 此屏幕只显示一个实体,可在网格中包含数据。
  • Editable Grid Screen(可编辑网格屏幕) 通过此屏幕可以编辑网络中的一个或多个项。
  • List and Details Screen(列表和详细信息屏幕) 此屏幕在列表中显示项目集合。 在列表选择一项会显示该项的详细信息。
  • New Data Screen(新建数据屏幕) 此屏幕用于创建新项。 该屏幕还可提供网格,用以同时添加相关数据。
  • Search Data Screen(搜索数据屏幕) 此屏幕显示查询返回的数据。 每一项都包含一个链接,用于显示实体的详细信息屏幕。

这些模板是很好的屏幕布局起点。 若要创建屏幕,您可以在解决方案资源管理器中右键单击解决方案或“Screens”(屏幕)节点,然后选择“Add Screen”(添加屏幕)。也可以单击数据设计器中的“Screen”(屏幕)按钮。 创建屏幕时,需要选择屏幕的类型和主要屏幕数据。 您可以选择实体或基于实体的查询。 然后可以指定要显示在屏幕上的相关数据。

在 Visual Studio 中打开 Silverlight 屏幕时,可以看到设计画布和 XAML。 在 LightSwitch 中打开屏幕时,可以看到屏幕设计器,如图 7 所示。

The Screen Designer Shows a Hierarchical View of the Controls on a Screen

图 7 屏幕设计噐显示屏幕控件的分层视图

左侧是屏幕成员列表。 此列表包含屏幕中的各项。 它包含屏幕上每个实体中的数据项。 还包含 Close、Refresh 和 Save 等方法。 右侧是屏幕内容树。 这是屏幕上的控件及其所绑定数据的分层视图。 您可以根据需要向屏幕添加数据项。 您可以重新排列屏幕控件,也可以修改屏幕布局。 例如,您可能希望客户列表在左侧、订单在右侧,而不是客户在上部、订单在下部。 您还可以设置各种控件属性,例如标签文本、是否显示标签、水平和垂直对齐方式、高度和宽度。

创建至少一个屏幕之后,可以按 F5 运行应用程序。 创建的第一个屏幕是应用程序的默认屏幕。 可以在应用程序设计器的“Navigation”(导航)选项卡中对此进行更改。 LightSwitch 应用程序自动添加应用程序 Shell、导航菜单、功能区以及屏幕和数据绑定选项卡式区域,如图 8 所示。

LightSwitch Applications Automatically Include an Application Shell, Menu and Ribbon

图 8 LightSwitch 应用程序自动添加应用程序 Shell、菜单和功能区

应用程序还有内置更新检查和并发处理。 对于常规的以数据为中心的应用程序,LightSwitch 会为您处理所有的基本功能,因此,您无需编写任何代码。

LightSwitch 屏幕模板提供有具体功能。 例如,搜索屏幕包含一个网格,用于显示数据项;还包含一个按钮,用于将这些数据项导出到 Excel。 您可以根据需要添加其他数据项。 SearchCustomers 屏幕(如图 8 所示)有两个其他按钮:功能区中的“Add Customer”(添加客户)按钮,以及网格标头中的“Add”(添加)按钮。

若要在功能区中添加按钮,您可以右键单击屏幕设计器中的屏幕命令栏,然后选择“Add Button”(添加按钮)。 或者,您也可以展开屏幕命令栏,然后在“Add”(添加)按钮的下拉列表中选择“New Button”(新建按钮),如图 9 所示。 若要向网格添加按钮,请使用网格中的命令栏。

The Screen Command Bar Contains the Buttons in the Application’s Ribbon

图 9 屏幕命令栏包含应用程序功能区中的按钮

添加按钮时,LightSwitch 会提示您提供用户单击该按钮时要运行方法的名称。 您可以右键单击该按钮,然后选择“Edit Execute Code”(编辑执行代码),然后编写要执行的代码。 SearchCustomers 屏幕中的两个“Add”(添加)按钮都调用 gridAddAndEditNew_Execute 方法,而该方法调用 ShowCreateNewCustomer 方法。 这是 LightSwitch 内置方法,用于显示 CreateNewCustomer 屏幕,如下所示:

Private Sub gridAddAndEditNew_Execute()
  Me.Application.ShowCreateNewCustomer()
End Sub

与实体一样,屏幕也有一些您可以处理的事件,如图 10 所示。

Access Screen Event Handlers via the Write Code Button

图 10 通过“Write Code”(编写代码)按钮访问屏幕事件处理程序

请求显示屏幕时会发生 Run 事件。 Run 事件处理程序包含一个 handled 参数。 如果将此参数设置为 True,则阻止屏幕继续。 InitializeDataWorkspace 事件紧接在检索屏幕数据之前发生。 这个位置非常适合放置屏幕初始化代码。 其他事件的作用一看就明白。 您可能认为 Run 或 Saving 等事件适合放置用于检查用户是否可以执行打开屏幕或保存数据等操作的代码。 实际上,您应将这些代码放在适当的访问控制方法中,例如屏幕级别的 CanRun 或实体级别的 CanUpdate。 访问控制是 LightSwitch 应用程序的一项重要功能,我们稍后将会讨论。

LightSwitch 开发具有高度迭代性。 以调试模式运行时,通过单击功能区中的“Design Screen”(设计屏幕)按钮,开发人员可以在运行时编辑屏幕。 这样会切换至屏幕的自定义模式,如图 11 所示。

Users Can Edit Screens at Run Time and View Their Changes Immediately
(单击进行缩放)

图 11 用户可以在运行时编辑屏幕,并且立即查看屏幕变化

用户可以重新排列控件和设置属性,单击“Save”(保存)可以立即查看变化。

知道 LightSwitch 应用程序是 Silverlight 应用程序,您可能会问:“XAML 在哪里?”LightSwitch 的一个主要目标是极大简化应用程序的构建过程。 因此,不会在设计时公开 XAML。 LightSwitch 是在运行时根据屏幕设计生成 XAML。 这样,用户构建应用程序的难度大大降低。 如果您是经验丰富的 Silverlight 开发人员,可能会认为这样会限制构建屏幕的自由度。

如果您只使用 Visual Studio LightSwitch,可能确实如此;但如果 LightSwitch 安装于 Visual Studio 2010 专业版或更高版本之上,灵活性会大大提高。 您可以创建自己的 Silverlight 用户控件,可以将这些控件添加到 LightSwitch 屏幕中,还可以使用 LightSwitch 中没有的控件。 您可以创建复合控件,甚至包含自定义逻辑的整个屏幕,此外还可以将这些用户控件轻松绑定到屏幕实体。

为 LightSwitch 应用程序增加功能的另一方式是使用扩展。 LightSwitch 扩展有六个类型:控件、屏幕模板、业务类型、Shell(应用程序外观)、主题(Shell 的颜色和画笔)和自定义数据源。 需要 Visual Studio 2010 专业版或更高版本以及 Visual Studio 2010 SDK 才能创建 LightSwitch 扩展,不过,任何人都可以在自己的 LightSwitch 项目中使用这些扩展,无论他们安装的是什么版本。

扩展是通过 VSIX 包分发的。 如果要开放提供某个扩展,您可以将该扩展上载到 Visual Studio 库。 该扩展即会出现在 LightSwitch 的扩展管理器中。 安装某个扩展之后,可以在应用程序设计器的“Extensions”(扩展)选项卡中启用该扩展。 Contoso Construction 示例应用程序使用 Bing Map 控件扩展来显示客户的位置,如图 12 所示。

You Can Use LightSwitch Extensions, Such as the Bing Map Control Extension, to Provide Additional Functionality in Your Applications

图 12 您可以使用 LightSwitch 扩展(如 Bing Map 控件扩展)来增加应用程序的功能

查询

所有屏幕都基于查询。 对“Detail”(详细信息)屏幕的查询会返回一行。 对“List and Details”(列表和详细信息)屏幕的查询会返回一个父行以及所有相关子行。 默认情况下,对“Search”(搜索)屏幕或“Editable Grid”(可编辑网格)屏幕的查询会返回所有行。 请注意,返回数行的查询不是真正同时返回所有行。 默认情况下,查询支持分页。 若要配置分页,请在屏幕设计器或查询设计器中选择相应查询,然后更改分页相关属性。

对于返回实体集合的屏幕查询,您可以对所返回的数据进行筛选。 为此,请单击屏幕设计器中的“Edit Query”(编辑查询)。 这时在查询设计器中,可以添加 Where 子句和 Sort 子句。 您也可以向查询添加参数。

屏幕查询特定于某个具体屏幕。 尽管修改屏幕的查询很快很方便,更好的做法是创建可重用查询。 例如,您可能希望在客户搜索屏幕上按公司名称对客户排序。 然而,客户也可能出现在您用于创建新约会的屏幕上的模式窗口选取器中,以及用于显示客户及其项目的屏幕上的自动完成文本框中。 您不需要在三个不同屏幕上为三个查询添加同一个 Sort,可以创建一个查询,然后在三个屏幕上使用该查询。

若要创建查询,您可以在解决方案设计器中右键单击某个实体,然后选择“Add Query”(添加查询)。 您可以命名查询,然后添加筛选、排序和参数。 图 13 中的 CurrentAppointments 查询返回所有约会(按开始时间排序,其中开始时间为 Now 或 Later)。

You Can Filter the Results of a Query and Specify the Sort Order

图 13 您可以筛选查询结果和指定排序顺序

创建查询后,可以将该查询作为屏幕的基础。 您也可以将该查询作为其他查询的基础。 例如,在示例应用程序中,CurrentAppointmentsByEmployee 查询开始于 CurrentAppointments 查询,然后筛选结果,只返回某个特定员工的约会。

访问控制

通过访问控制,可以控制用户在应用程序中能够执行的操作。 LightSwitch 使用标准 ASP.NET 成员身份和角色提供程序来启用 Windows 和 Forms 身份验证。 您可以授权用户执行操作,方法是:创建权限,将权限分配给用户,然后在代码中检查用户是否拥有特定权限。

默认情况下,所有用户都可以执行 LightSwitch 应用程序中的所有操作。 若要对此进行更改,请打开应用程序设计器,然后选择“Access Control”(访问控制)选项卡,如图 14 所示。 然后选择 Windows 身份验证或 Forms 身份验证。 内置 SecurityAdministration 权限控制用户是否可在运行时看到安全管理屏幕。 您可以使用这些屏幕为用户分配权限,必要时可以添加用户。 如果需要,您可以创建其他权限。 在开发过程中,您可以通过取消选中“Granted for debug”(授权调试)来关闭权限。 这样,可以使用各种权限组合来测试应用程序。

Specify Windows or Forms Authentication and Then Specify Additional Permissions

图 14 指定 Windows 身份验证或 Forms 身份验证,然后指定其他权限

您可以在实体级别、屏幕级别和查询级别的代码中检查权限。 实体提供 CanDelete、CanInsert、CanRead 和 CanUpdate 方法,这些方法都在服务器上运行。 您可以在数据设计器中的“Write Code”(编写代码)按钮下拉列表中访问这些方法。 您可以检查相应权限,在未授权用户执行关联操作时返回 False。 例如,在示例应用程序中,只有管理员可以修改员工数据。 下面的代码确保了这一点:

Private Sub Employees_CanDelete(ByRef result As Boolean)
  result = Me.Application.User.HasPermission(
    Permissions.SecurityAdministration)
End Sub
Private Sub Employees_CanInsert(ByRef result As Boolean)
  result = Me.Application.User.HasPermission(
    Permissions.SecurityAdministration)
End Sub
Private Sub Employees_CanUpdate(ByRef result As Boolean)
  result = Me.Application.User.HasPermission(
    Permissions.SecurityAdministration)
End Sub

屏幕提供 CanRun 方法,该方法在客户端上运行。 如果用户不能查看或修改屏幕的数据,您可以使用此方法防止打开屏幕。 下面的代码确保只有管理员可以打开 ManageEmployees 屏幕:

Private Sub ManageEmployees_CanRun(ByRef result As Boolean)
  result = Me.User.HasPermission(Permissions.SecurityAdministration)
End Sub

在开发过程中,您需要指定管理员的用户名和密码。 在运行时,管理员创建角色并将用户分配给这些角色。 然后,管理员将权限分配给角色。

部署

LightSwitch 提供三种模型用于部署应用程序:双层桌面应用程序、三层桌面应用程序和三层 Web 应用程序。

双层桌面应用程序以浏览器外 Silverlight 应用程序的形式完全运行于最终用户的计算机中。 UI 和应用程序的所有中间层组件都在本地运行。 应用程序以典型的客户端-服务器方式直接连接到数据库。 这样不需要 Web 服务器。 应用程序可以访问本地资源,包括 COM 或本地文件。 借助 COM 支持,可以控制 Word 或 Excel 等应用程序。 请注意,桌面应用程序需要 Windows。

三层桌面应用程序以承载于 IIS 或 Windows Azure 上的浏览器外 Silverlight 应用程序的形式运行。 UI 运行于最终用户的计算机,中间层组件运行于主机服务器。

三层 Web 应用程序以承载于 IIS 或 Windows Azure 上的浏览器内 Silverlight 应用程序的形式运行。 UI 基于浏览器,中间层组件运行于主机服务器。 Web 应用程序不能访问 COM 或本地资源,但可以在很大程度上访问 Mac 操作系统、Windows 操作系统和多种浏览器。

若要部署应用程序,首先应进行发布。 若要发布应用程序,请在应用程序设计器的“Application Type”(应用程序类型)选项卡中单击“Publish”(发布)按钮,如图 15 所示。

Specify Whether the Application Is a Two-Tier Desktop Application, Three-Tier Desktop  Application or Three-Tier Web Application

图 15 指定应用程序是双层桌面应用程序、三层桌面应用程序还是三层 Web 应用程序

LightSwitch 发布应用程序向导会指导您完成发布过程。

如果将应用程序发布为双层桌面应用程序,则会创建 ClickOnce 包。 您将创建一个 SQL Server 数据库,该数据库包含您创建的所有本地表以及系统表。 您还可以指定此数据库的位置。 如果只有一个人使用该应用程序,可以将数据库放在该用户的计算机中并使用 SQL Server Express。 如果将有多个人使用该应用程序,则可能将数据库存储在运行 SQL Server 的网络计算机中。

如果将应用程序发布为承载于 IIS 的三层桌面应用程序或 Web 应用程序,则可以直接发布到 IIS(如果服务器运行的是 Microsoft Web 部署工具服务)。 否则,可以创建 MSDeploy 包,然后将它手动导入 IIS。 如果将应用程序发布到 Windows Azure,向导会提示您提供帐户订阅 ID,将使用的服务和存储帐户,以及要使用的 SSL 证书。 有关部署和发布至 Windows Azure 的详细信息,请参阅 MSDN 上 LightSwitch 开发人员中心的部署部分 (bit.ly/jiYov5)。

最简单的方法

总而言之,LightSwitch 的主要用户是最终用户开发人员。 他们需要构建应用程序来支持业务功能。 他们不是专业开发人员。 他们是 IT 专业人员、信息工作者等等,在工作职责内需要进行一些开发工作。 他们常常需要构建应用程序来管理“事物”,如部门计算机资产或车队。 他们可能需要应用程序来管理事件,如季度开放日。

LightSwitch 为这些用户提供了一个难度不大的开发切入点。 LightSwitch 自动构建“基本功能”来执行常见应用程序任务,如处理数据、生成屏幕以及将数据导出到 Excel 等等。 它还提供简单灵活的部署模型。

LightSwitch 是为桌面和云构建数据应用程序的最简单方法。 Dalia 们可以构建自己需要的应用程序,然后将之交给 Antonio 们进行扩展和部署。 有关如何使用 LightSwitch 构建应用程序的详细信息,请访问 MSDN 上的 LightSwitch 开发人员中心 (msdn.com/lightswitch)。

Robert Green 是 Microsoft 开发人员平台推广小组的技术推广专家。这是他第二次供职于 Microsoft。2005 至 2010 年,他是 MCW Technologies 的高级顾问,专注于开发人员培训。他为 AppDev (appdev.com) 独自撰写或与人合著了很多 Visual Studio 课程和 .NET 课程。在那之前,他第一次供职于 Microsoft,从事开发人员工具营销,然后担任 Visual Basic 团队的社区负责人。

衷心感谢以下技术专家对本文的审阅:Beth Massi