利用Azure Blob存储来保存LightSwitch应用程序中的图像

[原文发表地址] Storing Images in Azure Blob Storage in a LightSwitch Application [原文发表时间] 5/1/2014 10:30 AM LightSwitch 一直支持通过其"图像"业务类型将图片存储在数据库中。然而,由于大小和/或访问等的因素,往往将图像存储在数据库中是不切实际的。在这篇文章中,我会给你展示如何利用 Azure blob 来存储您的 HTML 客户端应用程序中所使用的图像。这是一个很好的体系结构,尤其是当您的应用程序是寄宿在 Azure 网站上的。而且利用Azure Blob来存储图像也是很容易就能做到的。 设置Azure Blob 存储 设置Azure Blob存储器很容易,只需要按照这个指导: 创建一个 Azure 存储帐户 上面这篇文章还介绍如何以.NET编程方式访问存储 以及如何在您 web.config 中保存设置信息,所以我鼓励你通读整篇文章。对于这篇文章的目的,我将专注于将这些内容集成到你的 LightSwitch HTML 应用程序中。 当你完成创建&命名你的存储帐户后,单击“管理访问密钥”来获取的访问密钥,因为你的链接字符串中将会使用到这个密钥。 一旦你已经设置好存储帐户,您可以以编程方式从 LightSwitch .NET 服务端项目创建的Container并向其中存储一些 blob。让我们来看一个例子。 建立数据模型 要使它在LightSwitch中完美的工作,我们要利用一对业务类型: Image和 Web Address。Image类型仅用于为我们“传输”字节到Azure Blob存储中。我们将使用 Web Address来查看图像。我们可以创建Blog容器,以便我们能够直接通过URL找到blob,而且你会看到这个URL很短。 对于此示例,假设一个用户可以有很多图片。下面是我们的数据模型。注意图片实体具有三个重要属性:…

0

开始VS 2013中LightSwitch的第六部分:更多的管理!使用JavaScript和CSS自定义应用程序

[原文发表地址]:Beginning LightSwitch in VS 2013 Part 6: More Control! Customizing the app with JavaScript & CSS [原文发表时间]:2014-01-29 10:15 AM 注释:这是在最受欢迎的一系列开始LightSwitch文章中对Visual Studio 2013的更新。更早的版本请查看: Visual Studio 2012:第六部分:超越框。自定义LightSwitch应用程序的扩展 Visual Studio 2010:第六部分:我感觉真好!自定义“外观和感觉”主题 欢迎进入在Visual Studio 2013系列中开始LightSwitch!的第六部分。在第一至第五部分,我们建立了一个地址簿应用程序并且学习了所有关于一个Visual Studio LightSwitch 应用程序的主要构件块—实体,关系,屏幕,查询和用户权限。如果你忽视了它们,查看: 第一部分:表中是什么?描述您的数据 第二部分:感知这份爱-定义数据关系 第三部分:屏幕模板,我选择哪一个呢? 第四部分:更多的信息!排序和筛选数据的查询 第五部分:我可以吗?控制用户的访问权限 在这篇文章中我想要谈论的是一些不同的方式,你可以通过添加JavaScript代码和CSS来自定义你的HTML客户端应用程序。 当然你可能在学习,LightSwitch是完全关于快速构建移动商务解决方案–定义自己的数据模型,业务规则和一套内置控件直接创建屏幕。忽略它的所有无聊的管道,因此你可以专注于你应用程序的真正价值。但是LightSwitch也允许各种自定义设置所以你不要抨击那个臭名昭著的“玻璃天花板”。在HTML客户端我们可以利用早已存在的庞大的互联网生态系统,因此添加自定义和找到所需的JavaScript库并将其连接到你的应用程序一样容易。 LightSwitch基于 jQuery 和 jQueryMobile产生单页应用(SPAs)。这些是用于HTML客户端的基本库。LightSwitch接着在msls.js脚本中提供数据/数据绑定和最重要的查询功能。jQueryMobile CSS是用来控制应用程序外观的。 在HTML客户端工程中的这些文件对你是可视的。样式表是位于内容子文件夹中,JavaScript文件是在脚本子文件夹中: 关于jQuery及其在LightSwitch HTML客户端的上下文中的语法的一个介绍可查看: jQuery应用程序定制的介绍 让我们看一下一些有趣的快速自定义HTML客户端的方法。 改变主题 HTML客户端伴随着可用的两个主题框出现,或者根据你的所需完成改变—一个亮的主题和一个暗的主题。默认的,亮主题被应用在新工程中。为了将主题改变成暗主题,在HTML客户端工程中打开default.htm文件然后做如下改变: <!– Change…

0

LightSwitch入门第四部分:信息量太多!使用Query来排序和过滤

[原文发表地址] Beginning LightSwitch in VS 2013 Part 4: Too much information! Sorting and Filtering Data with Queries [原文发表时间] 2013-11-27 11:12 PM 注:这是Visual Studio 2013更新的非常受欢迎的LightSwitch入门文章系列,关于以前的版本,请参见: Visual Studio 2012: Part 4: Too much information! Sorting and Filtering Data with Queries Visual Studio 2010: Part 4: Too much information! Sorting and Filtering Data with Queries 欢迎来到Visual Studio 2013的LightSwitch系列课程第三部分!在第1,2和3部分中我们学习了Visual…

0

开始VS2013中LightSwitch系列的第三部分:我们该选择哪个屏幕模板?

[原文发表地址] Beginning LightSwitch in VS 2013 Part 3: Screen Templates, Which One Do I Choose? [原文发表时间] 11/4/2013 3:00 PM 说明:本文是之前很受欢迎的LightSwitch 博文系列之Visual Studio2013的更新. 若要查看以前版本,请点击下面: Visual Studio 2012: Part 3: Screen Templates, Which One Do I Choose? Visual Studio 2010: Part 3: Screen Templates, Which One Do I Choose? 欢迎来到开始Visual Studio 2013中 LightSwitch 系列的第3部分!在第 1 和第 2…

0

如何在你的LightSwitch应用程序中使用选择器作为过滤器

[原文发表地址] How to Use a Picker as a Filter in your LightSwitch apps [原文发表时间] 2013-08-29 07:17 AM 在过去的几个月中,关于如何做到基于选择器过滤数据的通用模式,我已经得到了不止几个问题。举例来说,我有一个客户表,我想从列表中选择,然后展开他们的详细资料。或者说,我有一个客户列表,我想看到所有的相关订单。 老实说,我以为我已经有一个博客文章是关于如何做到这一点- 但如果连我都不能找到它,那么你可能也无法找到!步骤很简单,你不需要写任何代码,这些步骤在这里… 在同一个表中过滤数据 比方说,我们有一个客户列表,在显示其余字段给用户之前,我们希望有一个屏幕显示,他们应在选择器中选择客户。下面是步骤: 1 – 创建一个查询,通过ID检索客户 在解决方案资源管理器的客户表中,右键单击“添加查询”,在这个例子中,我将它命名为CustomerByID。添加一个过滤器Where ID =,选择“参数”,然后选择“添加新的”去创建一个新的名为ID的查询参数。 需要注意的是,你可以选择参数并且设置这个参数在属性框中是否选择。如果你这样做,那么所有客户的详细资料都将显示在屏幕上。如果遗漏掉了所需的参数项,那么用户必须选择一个客户,去看该客户的详细资料。 2 – 使用查询去创建一个屏幕 无论您使用的是什么样的客户端(Silverlight或HTML)这里的技术是相似的,只是模板不同。在你的客户机节点上单击鼠标右键,并“添加新的屏幕”… 选择CustomerByID作为屏幕数据。如果你正在使用的HTML客户端,那么选择浏览模板。如果使用Silverlight客户端,那么随意挑选像搜索屏幕上的任何列表屏幕。 视图模型中选择CustomerID属性,并在属性窗口中,将其名称更改为客户。请注意您的视图模型会为您自动设置,顾客的属性会设置为一个真正的客户实体并且它的ID会数据绑定到CustomerByID查询的ID参数(如箭头为您指向您在视图模型中选择的Customer.Id项)。像在属性窗口中显示,CustomerByID查询也将会自动执行。这意味着所需的所有参数被输入时,这个查询将会执行,这样的话客户将被选中。 接下来是将客户控件从一个简单的模式选择器变成一个详细的模型选择器 如果你使用Silverlight客户端,那么这些已经被设置到一个自动完成框,但如果你喜欢,你也可以选择一个模态窗口选择器。 3 – 运行吧! 当屏幕出现时,在显示它们的细节之前,用户不得不选择一个客户。 HTML客户端: Silverlight客户端: 请注意,如果在系统中你有很多的潜在客户,我建议根据字段提供一个过滤器,并允许用户简单键入参数(如姓名,电话等),对于Silverlight客户端,您可以使用模态窗口选取器,而不是提供了一个自动搜索。请参阅: Filtering Lookup Lists with Large Amounts of Data on Data Entry…

0

如何为LightSwitch HTML移动客户端分配用户角色和权限

[原文发表地址] How to Assign Users, Roles and Permissions to a LightSwitch HTML Mobile Client [原文发表时间] 2013-06-25 01:47 PM 最近,我收到了一些关于如何为LightSwitch HTML的移动应用程序分配用户权限的问题,因此,我觉得有必要发帖对该问题进行快速说明。简单来说,就是你需要部署一个桌面客户端,为你的应用程序进行安全管理。通常一个管理控制台也管理其他类型的在你的应用程序中可能使用到的全局数据,比如查找表和其他参考数据,而且可以被一个或几个系统管理员使用。不过,如果你只需要访问用户和角色界面去授予用户对系统进行访问的权限,那么其步骤就很简单了。 我们来举个例子。我有一个简单的HTML客户端应用程序,并且在项目属性的“访问控制”选项卡上,我已经启用了“Forms Authentication”。 我已经加入代码来执行业务规则和控制应用程序功能的访问权限检查。如果你不熟悉如何做到这些,请阅读:LightSwitch Authentication and Authorization. 其基本要点是,在中间层,你通过数据设计器在你的数据服务中使用访问控制钩(_CanInsert,_CanDelete_CanRead等)进行权限检查。如果你还需要访问HTML客户端上的用户权限,以启用或禁用UI元素,那么请查阅我的另一篇帖子:Using LightSwitch ServerApplicationContext and WebAPI to Get User Permissions. 为了添加一个桌面客户端(我们的管理控制台),右键单击该项目,然后选择“添加客户端”。 给它一个名字,然后单击“确定”。 现在,您的解决方案将包含一个桌面客户端。 (注:一旦你添加了它,桌面客户端将被设置为启动调试客户端。此时,右键单击HTMLClient,并且选择“设置为启动客户端”,这样就可以切换回非调试客户端。) 事实上,你并不需要添加任何的桌面客户端界面。当任何获取了SecurityAdministration许可的用户登录时,用户和角色管理界面就会出现。为了首先得到数据库管理员权限,你需要部署你的应用程序,而对于你的桌面客户端,首先你得考虑到以下几个选项。 右键单击桌面客户端,选择“属性”。这将打开客户特定的属性,在这里你可以指定一个标志,图标,主题等。你还可以 更改屏幕导航。在客户端类型选项卡中,你可以选择将桌面客户端部署为浏览器内的或浏览器外的类型。LightSwitch中的桌面客户端是一个Silverlight5客户端,所以它将可以运行在各种桌面浏览器中(请参阅这里的系统要求)。 默认情况下,当你添加一个桌面客户端到LightSwitch应用程序,客户端类型将被设置为Web应用程序。如果你仅仅是管理数据,这是一个很好的选择。如果你需要通过COM(即Excel、Word、eye scanners等)在Windows桌面上实现其他程序或设备的自动化,那么,你应该会选择“桌面”选项。此选项将仅在Windows机器上运行,但它以较高的信任级别运行,所以你可以跟其他程序进行通信。 对于这个简单的管理控制台,我们将其设置为浏览器类型。现在,在“解决方案资源管理器”中右键单击 LightSwitch 应用程序,选择“发布”。发布向导需要的关键信息是“安全设置”选项卡上的应用程序管理员信息部分。 对于部署的更多信息,请参阅:How to: Deploy a 3-tier Application。 一旦我们部署了应用程序,导航到桌面应用程序并提供与您在发布向导中所指定的相同的凭据。此时该应用程序有两个客户,所以记得要浏览正确的虚拟目录来运行相关的客户端应用程序。 例如,我们的桌面客户端的名称是“DesktopClient”,要运行这个,我们就得导航到http://www.mydomain.com/DesktopClient,而如果要运行 移动客户端名为“HTMLClient”的应用程序则需要导航到http://www.mydomain.com/HTMLClient。…

0

10大快速创建完美LightSwitch移动应用程序的技巧

[原文发表地址] Top 10 Quick Tips for Building Great Mobile LightSwitch Apps [原文发表时间] 23 May 2013 11:31 AM 我最近使用LightSwitch创建了许多HTML客户端,所以我想我应该分享一些快速的技巧,以便你在创建完美的移动应用时使用。(你需要将Visual Studio 2012更新到Update2来获得LightSwitch HTML客户端) #1 – 建议对浏览器屏幕使用平铺列表和利用行&列布局 由于LightSwitch自动调整屏幕来适应不同表单元素,在你的浏览数据屏幕上使用平铺列表代替默认的列表控件是一个不错的想法,特别是你有许多字段想显示在平铺列表上。在平铺列表中利用列布局控件和行布局控件来放置数据相当不错。平铺列表的宽度默认是自动调整以便来适应屏幕(但不会比你指定的宽度小)。如果你想使用固定的宽度,选择行布局控件,在属性窗口中取消选中“Adjust Tile Width dynamically”项。 #2 – 将过滤器作为弹出窗口显示以节省空间 在内容树的底部,所有屏幕都有一个弹出窗口区域,你可以使用它来设计针对该屏幕的“弹出窗口”对话框。你可以使用它们来显示/收集屏幕上附加的或可选的信息。当你设计查找屏幕的时候更喜欢在移动设备上使用这些弹出窗口。你的可选查找字段将不会占据宝贵的空间,这样就允许重要的内容显示在最上面。 快速的添加一个可选的过滤器,在视图模式的屏幕设计器上选择“Edit Query”… 添加过滤器以及可选参数… 在树中选择Popup节点,点击“Add Popup”。将组命名为“Filter”。接着将可选参数拖到popup组里。这将自动的为你创建本地的屏幕属性。 最后在命令条上添加一个按钮,设置点击动作来显示popup。如果你想的话,在属性窗口里改变命令条图标为“Filter” 当用户点击按钮的时候,popup过滤器就显示出来了: 注意你可能愿意创建全局查询,那样就可以跨屏幕来重用筛选的查询。 – 请参考下面的#6 #3 –考虑你的主-从选项 打断一下,我已经写了关于在屏幕上显示主-从数据不同的方式。 如果你错过的话,你可以参考:主-从屏幕与LightSwitch HTML客户端 这是我总结的那篇文章上的一些技巧: 必要的话,LightSwitch可以为不同表单元素自动调整屏幕的布局 当你有很多子数据需要显示或者你的目标是较小的移动设备如手机,在主-从屏幕上使用标签控件(Tab Control)是一个不错的想法。这样限制了用户一次浏览/编辑的信息量。当你选择了很多的数据集显示的时候,这是你在屏幕上获得的默认的布局 对于较小的数据集,将所有的数据显示在单一的标签上效果不错,前提是你不会很多数据需要同时浏览/编辑(如下面的贴图)或者当你的用户使用大尺寸的设备如平板电脑。 #4 – 使用占位符文本来解释字段(比较简洁的提示文本)…

0

为LightSwitch HTML客户端添加签名

[原文发表地址] Adding a Signature Control to the LightSwitch HTML Client [原文发表时间] 24 Apr 2013 8:02 AM LightSwitch 是关于快速创建业务解决方案 – 定义你的数据模型&业务规则和利用一套内嵌的控件以可视化的方式创建屏幕。它完成了所有枯燥的工作这样你就可以精力集中在应用程序的真正价值上。但是LightSwitch同样允许各种自定义化,所以你不会遇到不知名的“玻璃天花板”。当团队打算建立LightSwitch HTML 客户端时,他们需要保证可扩展的模型是相当简单的,并与网页开发人员建立解决方案的方式一致。 对于Silverlight 客户,扩展的作者必须了解一系列的LightSwitch的可扩展性模型以便提供的扩展易于LightSwitch开发用户使用。在Visual Studio Galllery中关于LightSwitch的扩展 (即为签名控件)超过100种(还在增长)。但是对于HTML客户端,我们需要利用已有的大量的网页生态系统,那样添加自定义就像查找JavaScript类库并添加到你的应用程序一样简单。 团队成员已经写了很多关于在LightSwitch中混合自定义控件和数据绑定的文章。这儿有几个: 使用Map控件可视化列表数据(Heinrich Wendel) 使用jQuery Mobile增强LightSwitch控件(Michael Zlatkovsky) 在LightSwitch HTML客户端自定义控件和数据绑定(Joe Binder) 特别地,最后一篇来自Joe的文章极大地帮助了我。除了其他事情外,它描述了HTML 客户端的2个UI定制的挂钩– render 和postRender事件。如果你需要修改LightSwitch创建的DOM元素(例如控件),可以使用postRender事件。它允许你添加元素就像添加CSS类或者其他的DOM属性。但是,如果你想要自己完全掌控显示的话,你可以通过使用LightSwitch自定义控件元素的render事件来实现。 LightSwitch是基于jQuery和jQueryMobile创建的单页面应用程序(SPAs),因此有相当多的插件供LightSwitch使用。具体使用哪一个完全依赖于你需要给用户提供什么或者设备需要支持什么。在这里,我想给你展示一个快速的基于jSignature插件的混合签名控件的方法。 你可以在从这里下载完整的示例代码。 添加类库到你的LightSwitch项目中 第一步是获取你所需的控件。通过在Visual Studio中检索网页,查找目录,请求朋友,浏览NuGet,或者(天都不会答应的)自己写一份!你需要保证添加到应用程序中的任何自定义代码都能正常工作。jSignature有一个在线演示, 在做之前,你可以在你想要支持的设备上测试一下其是否正常工作。据说这个特殊的类库能够在许多设备上正常工作,其拥有很好的输入/输出特性,和良好的文档,这就是选择这个来举例的原因。 一旦你下载jSignature, 解压ZIP文件。打开你的LightSwitch工程,轻击Solution Explorer中的File View选项, 将jSignature.min.js类库拖到你的HTML客户端项目下的Script文件夹中。 接下来打开default.htm,添加引用脚本: 现在你已经准备好在你的LightSwitch应用中使用签名控件了。 添加自定义控件 为这个例子,我已经建立了简单的测试数据模型来追踪工作顺序。一旦雇员完成一个工作指令,他们需要签名。在LightSwitch中有许多方法来存储jSignature数据。jSignature支持许多类型的格式,详情请参考文档。针对这个例子,我将展示如何把它存储为图片业务类型的图片,以及存储为能够重新载入到jSignature控件中的被压缩的base30字符串。…

0