一起谈.NET技术,Visual Studio LightSwitch初体验和定位看法

简介:   Visual Studio LightSwitch已经可以通过MSDN订阅下载了,相关介绍可以见:http://www.microsoft.com/visualstudio/en-us/lightswitch。

  Visual Studio LightSwitch已经可以通过MSDN订阅下载了,相关介绍可以见:http://www.microsoft.com/visualstudio/en-us/lightswitch

  于是我马上下载下来体验了一把:

  安装过程很简单,挂载ISO,运行setup.exe,提示需要1G多的空间,其实如果你安装了VS和Silverlight 4 SDK的话,要不了这么多的空间,500多M的安装包也是因为包含VS Shell的原因吧,我没有在干净的系统中安装,具体情况如何不太清楚。以后微软应该出一个针对已有VS环境的精简安装包。安装完成的界面截图如下:

1

  安装完成后,打开VS,新建项目的时候,就可以看到多出了一种项目类型了,语言可以选择VB.NET和C#,如下图:

2

  那么,就创建一个项目,初始界面,大家可能都熟知了:

image

  一开始就然大家创建数据表(table),注意此数据表并非是真正的数据库中的表哦,可以说是一种抽象的数据表,或者是实体框架中的实体。我创建了一个名为的People的数据表:

image

  从上图,可以看到,Id字段是默认就有的,无法修改名称,但可以添加描述,并选择是否要显示在操作界面(Screen)上。这里有个问题,连Id的数据类型都不能修改,只能是Int32,而很多时候我更习惯使用Guid。希望正式版中可以给Id字段选择不同的数据类型(至少可以支持GUID)。

  可以添加数据类型的为EmailAddress的字段,对于这点显得非常方便,不过如果能自己扩展数据类型就好了,类似SharePoint那样。

  Age字段是一个计算字段,通过属性窗口中提供的“Edit Method”按钮可以打开代码编辑界面,输入如下代码:

 
 
partial void Age_Compute( ref int result)
{
// Set result to the desired field value
if ( this .Birthday.HasValue)
result
= DateTime.Now.Year - this .Birthday.Value.Year;
}

  代码的自动生成做的很好,如果改变Age的数据类型,可以同步就修改result的类型。分别查看Name,Age和Email字段的属性,可以看到:

      imageimageimage

  字符串(或基于字符串)的数据类型,可以被搜索(不太理解Date就不能搜索,还是只能过滤?);每个字段都可以转换为计算字段;对于字符串字段,可以提供一个列表选择;数据验证,根据不同的数据类型,提供了不同的验证选项,也可以设置自定义验证模式;对于可空的字符串数据类型,可以选择空值如何保存。

  除了定义自己的数据表以外,也可以添加外部数据源:

image

  可以从数据库、SharePoint和WCF RIA Service中添加,奇怪的是数据库的选择可以通过other看到CE 3.5,不过我没有尝试,我只尝试了从SQL Server中导入一个表的操作:

image

  这个过程也可以看作是实体框架中映射一个表的操作(背后实际上就是在用EF进行映射),Required是不能修改的,数据验证时候也不能修改,其他如字段名称,显示名称都可以修改,这样的要求估计也是EF的映射所要求的。

  可以说,在LightSwitch中Table是一切的核心,也是一切的启动,可以从工具条的操作按钮看出来。这也昭示着LightSwitch是针对以数据为中心(数据驱动)的LoB应用的。

  接着,我们再来添加两个表Dinner和RSVP,如下图:

image

image

  这个时候,Peoples也变成了如下的图:

image 

  下面,我们来看看Solution Explorer:

image

  整个解决方案的显示完全屏蔽了传统的那种列出代码的方式(虽然这个解决方案中实际上包含了6个项目,和n多代码文件),而是只显示三个主要的节点:属性,数据源,操作界面。在数据源中,直接创建的数据表,归到了ApplicationData目录下,每个数据表一个节点,不过无法同时打开多个数据表编辑(可能是基于工作的目标更集中,或更方便自动生成代码的考虑)。而引入的外部数据源是另外单列的。

  顺带说一下,导入外部数据源的时候,如果选择WCF RIA Services,暂时只能选择到AuthenticationService和SecurityDataService,单点“Add Reference”的时候,你就会看到其他的项目名称了,如:

image

  如果额外添加一个Service进去,暂时还未找到添加的地方。而且,在打开和关闭Add Reference窗口的时候都特别慢,估计是一个Issue

  准备好了数据源,那么就要添加操作界面了,添加也是非常简单,打开某个数据表,在工具条上点“Screen”按钮,如:

image

  在添加了CreateNew、Search和Details的操作界面后,我们就可以来按F5运行我们的程序的,除了Age计算字段外的一句话,就没有再写代码了,运行效果如下:

image

  注意,主界面的右上角有一个“Customize Screen”的按钮,可以让End-User自定义自己的操作界面,这个比那种自定义一下数据网格的显示列什么的强大太多,这都受益于XAML的强大,估计背后的技术是Blend SketchFlow类似的东西。更多的操作界面的体验,我会在后续的博客中和大家分享。

  另外,还有一个宝库必须体验一下,就是整个应用程序的项目属性设置,在Solution Explorer上右键点“Application1”,选择“Properties”,就可以看到下图的属性设置界面:

image

  在这里,提供了几个决定应用程序运行模式的选项,在General中Shell、Theme的选择让你的应用程序可以与众不同,另外不知道Culture的设置会不会影响界面的文字的显示,多语言的实现是不是在这里?

  Extension,可以添加、选择不同的扩展包,实际上给开发人员提供扩展LightSwitch默认构建的地方,你可以把自己开发LoB的一些构建设想编写为LightSwitch扩展,让大家来使用。(此处纯属猜想)

  Screen Navigation,可以让大家修改主界面的导航菜单,没有什么特殊的。

  Access Control,可以设置内置访问控制的特性,默认提供Form Authentication和Windows Authentication。

  Application Type,可以选择应用程序的具体运行情况,具体有:

image

  大家注意,第一个选项是Desktop Client,且是只有2层,Silverlight的Client和SQL Server的Data,那么就是说LightSwitch为Silverlight提供了直接(或通过某种包装器)访问数据库的能力(中间应该还是EF)。

  关于项目属性设置的体验,我后续会详细分享。

  还值得注意的是,LightSwitch实际上也体现了我早在去年的这个构想:使用Silverlight 3作为桌面应用程序开发平台(1——构想)

  最后来说说LightSwitch的定位问题:

  在InfoQ上有一篇文章:LightSwitch——微软将要推出的专业开发工具,定位问题受到质疑,其中的提到的疑问,确实是现实存在,尤其和Access的功能类同。

  不过我认为,LightSwitch相对于Access可以说一种完成不同的东西,运行环境不同,开发环境不同,开发语言不同,部署模型不同(尤其LightSwitch在浏览器模式下的footprint会很小),我相信开发效率与互操作能力也不可同日而语。

  另外对于LightSwitch是否是给专业开发人员使用的问题,我觉得专业开发人员也需要这样的工具,有人提到可以开发原型系统或构想验证POC,不过以我自己的实践来说,我未来完成会用于开发正式项目和产品的。因为,我们主要开发专业数据分析产品的,但是偶尔也要给合作伙伴开发一些小的MIS或LoB这种数据为中心的应用,而这个时候,有了LightSwitch,我就不用自己去构建一套LoB的开发框架了,LightSwitch已经为我们大家好了很多基础的东西,我们需要考虑的就只有数据模型和操作界面的问题了。由于LightSwitch很容易上手,我也可以把这样的任务分给一些具有一定基础的实习学生来完成。又如,我之前在一家开发LoB的小企业,实现了一套3层架构的开发框架,提供了基础的数据访问模式,权限管理功能,并制定了一套准则方便大家遵循同样的构架来开发各个功能模块,而现在可以说,LightSwitch把这样的开发框架内化为一个IDE提供给大家,且可以让大家进行定制和扩展。

目录
相关文章
|
11天前
|
人工智能 开发框架 量子技术
【专栏】.NET 技术:驱动创新的力量
【4月更文挑战第29天】.NET技术,作为微软的开发框架,以其跨平台、开源和语言多样性驱动软件创新。它在云计算、AI/ML、混合现实等领域发挥关键作用,通过Azure、ML.NET等工具促进新兴技术发展。未来,.NET将涉足量子计算、微服务和无服务器计算,持续拓宽软件开发边界,成为创新的重要推动力。掌握.NET技术,对于开发者而言,意味着握有开启创新的钥匙。
|
11天前
|
开发框架 .NET C#
【专栏】理解.NET 技术,提升开发水平
【4月更文挑战第29天】本文介绍了.NET技术的核心概念和应用,包括其跨平台能力、性能优化、现代编程语言支持及Web开发等特性。文章强调了深入学习.NET技术、关注社区动态、实践经验及学习现代编程理念对提升开发水平的重要性。通过这些,开发者能更好地利用.NET构建高效、可维护的多平台应用。
|
11天前
|
机器学习/深度学习 vr&ar 开发者
【专栏】.NET 技术:引领开发新方向
【4月更文挑战第29天】本文探讨了.NET技术如何引领软件开发新方向,主要体现在三方面:1) 作为跨平台开发的先锋,.NET Core支持多操作系统和移动设备,借助.NET MAUI创建统一UI,适应物联网需求;2) 提升性能和开发者生产力,采用先进技术和优化策略,同时更新C#语言特性,提高代码效率和可维护性;3) 支持现代化应用架构,包括微服务、容器化,集成Kubernetes和ASP.NET Core,保障安全性。此外,.NET还不断探索AI、ML和AR/VR技术,为软件开发带来更多创新可能。
|
11天前
|
开发框架 Cloud Native 开发者
【专栏】剖析.NET 技术的核心竞争力
【4月更文挑战第29天】本文探讨了.NET框架在软件开发中的核心竞争力:1) .NET Core实现跨平台与云原生技术的融合,支持多操作系统和容器化;2) 提升性能和开发者生产力,采用JIT、AOT优化,提供C#新特性和Roslyn编译器平台;3) 支持现代化应用架构,包括微服务和容器化,内置安全机制;4) 丰富的生态系统和社区支持,拥有庞大的开发者社区和微软的持续投入。这些优势使.NET在竞争激烈的市场中保持领先地位。
|
11天前
|
开发框架 .NET 开发者
【专栏】领略.NET 技术的创新力量
【4月更文挑战第29天】.NET技术自ASP.NET起历经创新,现以.NET Core为核心,展现跨平台能力,提升性能与生产力,支持现代化应用架构。.NET Core使开发者能用同一代码库在不同操作系统上构建应用,扩展至移动和物联网领域。性能提升,C#新特性简化编程,Roslyn编译器优化代码。拥抱微服务、容器化,内置安全机制,支持OAuth等标准。未来.NET 6将引入更快性能、Hot Reload等功能,预示着.NET将持续引领软件开发潮流,为开发者创造更多机会。
|
4月前
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
46 0
|
15天前
|
开发框架 前端开发 JavaScript
JavaScript云LIS系统源码ASP.NET CORE 3.1 MVC + SQLserver + Redis医院实验室信息系统源码 医院云LIS系统源码
实验室信息系统(Laboratory Information System,缩写LIS)是一类用来处理实验室过程信息的软件,云LIS系统围绕临床,云LIS系统将与云HIS系统建立起高度的业务整合,以体现“以病人为中心”的设计理念,优化就诊流程,方便患者就医。
21 0
|
2月前
|
开发框架 前端开发 .NET
进入ASP .net mvc的世界
进入ASP .net mvc的世界
32 0
|
2月前
mvc.net分页查询案例——mvc-paper.css
mvc.net分页查询案例——mvc-paper.css
5 0
|
2月前
|
开发框架 前端开发 .NET
C# .NET面试系列六:ASP.NET MVC
<h2>ASP.NET MVC #### 1. MVC 中的 TempData\ViewBag\ViewData 区别? 在ASP.NET MVC中,TempData、ViewBag 和 ViewData 都是用于在控制器和视图之间传递数据的机制,但它们有一些区别。 <b>TempData:</b> 1、生命周期 ```c# TempData 的生命周期是短暂的,数据只在当前请求和下一次请求之间有效。一旦数据被读取,它就会被标记为已读,下一次请求时就会被清除。 ``` 2、用途 ```c# 主要用于在两个动作之间传递数据,例如在一个动作中设置 TempData,然后在重定向到另
109 5