65.9K
CodeProject 正在变化。 阅读更多。
Home

The Dew Review - DevExpress Universal 14.2.4

starIconstarIconstarIconstarIconstarIcon

5.00/5 (4投票s)

2015 年 2 月 18 日

CPOL

6分钟阅读

viewsIcon

28562

今年我一直在关注并开始使用 Universal 14.2.4 版本中的一些组件。

引言

在过去的几年里,我曾多次评测过 DevExpress 组件。以下是我最近的四篇评测。

今年我一直在关注并开始使用 Universal 14.2.4 版本中的一些组件。DevExpress Universal 订阅包含适用于所有类型 .NET 开发的控件和模块,以及使用 DevExtreme 进行跨平台 Web 和移动开发的工具。从 WinForms 到 WPF,再到客户端的 Windows Universal 应用,以及 Web 端的 WebForms、MVC、HTML5/JS,DevExpress 为 Microsoft 技术栈上的每一位现代开发者都提供了解决方案。

新特性

DevExpress 14.2.4 版本一个显而易见的变化是,它专注于提供能够帮助开发人员在当今设备上创建出色体验的组件。首先也是最重要的,那就是触摸。除非您购买的是服务器,否则很难找到一款不是某种程度上支持触摸的新 Windows 设备,无论是屏幕本身还是通过多点触控板。当今的应用需要支持点击、捏合、滑动和甩动等手势。DevExpress 的 Windows 和 Web 组件有助于实现这些功能。在此了解更多信息:此处

让我们来重点介绍一下 14.2 版本中的一些具体新增或改进的功能。

WinForms

  • 评分控件
  • 时间跨度编辑器
  • SQL 数据访问组件
  • 工作区管理器

ASP.NET WebForms

  • 富文本编辑器
  • 用于创建控件的新设计时向导
  • 自适应面板 – 为您的内容实现响应式布局
  • 电子表格 – 新增密码保护工作表和元素(演示

ASP.NET MVC

  • MVC 拼写检查器
  • 电子表格 – 新增密码保护工作表和元素(演示

WPF

  • 径向菜单
  • 拼写检查器 – 新增即时检查模式
  • 图表控件 – 新增系列类型:样条、样条区域、堆积样条区域和全堆积样条区域

Windows 8 XAML

  • 磁贴栏
  • MVVM 支持

XAF

  • 最终用户报表设计器
  • 新的通知模块

DevExtreme

  • 大量新的 HTML5/JS 小部件
  • iOS 8 和 Android 5 支持

关注领域

由于 DevExpress Universal 产品范围广泛,我将重点介绍 WPF 和 DevExtreme 产品中的几个领域。

WPF

示例 - 视频租赁

DevExpress Universal 提供的 WPF 示例应用程序之一是视频租赁应用程序。它是一个功能齐全的应用程序,用于管理视频租赁商店的运营。以下是该应用程序运行中的一些屏幕截图。

该应用程序使用了许多类似 Outlook 中的丰富 Office 风格控件,包括一个类似功能区的工具栏,其内容是上下文感知的,并在应用程序导航时发生变化。

代码量庞大且设计精良。ViewModel 被分解到自己的项目中,其他项目用于 UI、资源和数据/平台服务。这是项目依赖关系的图表。

这是使用 WPF 和 DevExpress 构建的完整、成熟的企业级应用程序的一个好例子。

模板

DevExpress Universal 包含一个模板向导,可根据平台、DX 版本和编程语言选择最适合您项目的起点。选择 WPF 作为平台时,有以下模板可用。

选择“项目向导”选项,将引导开发人员完成一系列选择,以构建项目最佳的起点。我在这个图库中包含了我的选择步骤。

显然,并非所有项目都需要所有这些功能,并且每个步骤都是可选的。完成所有选择的向导后,将生成一个主窗口,外观如下。UI 已完整,可使用DevExpress MVVM 框架或任何其他 MVVM 框架连接到 ViewModel。参考 DevExpress.Mvvm.dll v14.2 会被自动添加到起始项目中。

功能重点 - 支持 MVVM 的 POCO ViewModel

.NET 开发人员可以使用多种流行的 MVVM 框架,包括 MVVM Light 和 Caliburn.Micro。DevExpress MVVM 框架有一个特性使其脱颖而出。

开发人员可以创建一个 POCO(普通 .NET 对象),并通过约定和对 DevExpress.Mvvm.POCO.ViewModelSource 类的调用,将其转换为 ViewModel。以下约定定义了 ViewModelSource 如何从提供的 POCO 创建结果 ViewModel。

  • 所有具有公共 getter 和公共/受保护 setter 的公共虚拟和自动属性都将生成可绑定的属性。
  • 如果要在属性更改时执行特定逻辑,应创建以下格式之一的方法:On[Property Name]Changed() 或 On[Property Name]Changing()。
  • 命令是为所有具有 0 或 1 个参数的公共方法生成的。有一个可选的 Command 属性和一个流畅 API 来控制命令的创建。
  • 可以通过添加类级别属性来为 POCO 类添加 IDataErrorInfo 以进行验证。

这是一个简单的 POCO,它将在运行时通过 ViewModelSource 使用 Reflection Emit 转换为功能齐全的 ViewModel。

using System;
using System.ComponentModel.DataAnnotations;
using DevExpress.Mvvm.DataAnnotations;
using DevExpress.Mvvm.POCO;

namespace Alvin.DXWPF.Sample1
{
    [POCOViewModel(ImplementIDataErrorInfo = true)]
    public class MainViewModel
    {
        //Bindable SummaryName property will be created with validation
        [Required(ErrorMessage = "Please enter the summary name.")] 
        public virtual string SummaryName { get; set; }

        //Bindable Categories property will be created
        public virtual IObservable<string> Categories { get; set; } 

        //SaveSettingsCommand will be created
        public void SaveSettings(string fileName) {
            // save logic here
        }

        //Will validate if the SaveSettingsCommand can be executed
        public bool CanSaveSettings(string fileName) {
            return !String.IsNullOrEmpty(fileName);
        }

        //Method that will NOT become a Command
        [Command(isCommand: false)]
        public void DoSomethingThatIsNotACommand()
        {
            // doing stuff
        }

        //prevent creating the View Model without the ViewModelSource 
        protected MainViewModel() { }

        //Use the ViewModelSource class to create a MainViewModel instance 
        public static MainViewModel Create()
        {
            return ViewModelSource.Create(() => new MainViewModel());
        } 
    }
}

正如您所见,这种创建 ViewModel 的方法可以使类保持简单和整洁。

DevExtreme

示例 – DX Hotels

DX Hotels 示例应用程序是用于预订酒店房间的 Web 应用程序。它构建在 DevExtreme 平台之上,使用 ASP.NET MVC、Razor 视图、OData、Entity Framework、jQuery 和Knockout.js。以下是该项目结构的概览。

这是页面首次加载时的样子。Web 应用程序的用户可以选择要预订的地点和日期。

该项目的代码量比 WPF 示例项目“视频租赁”少,但它也具有相当多的功能。用户可以搜索、选择和预订酒店,并且有一个简单的登录功能,可以接受任何用户名/密码组合并模拟登录状态。

模板

DevExtreme 模板提供了创建 JavaScript 或TypeScript 应用程序的选项,以及 Visual Basic 或 C# 的 OData 服务项目。

选择“DevExtreme 14.2 Basic Application”模板会在新项目中生成以下内容。

此外,css 文件夹内有 13 个 CSS 文件。该项目是一个跨平台的移动 Web 应用程序,在运行解决方案时会在所选浏览器中以基于 Web 的模拟器启动。默认情况下,iOS 是选定的模拟器。这是作为 iOS DX 应用程序运行的简易项目。

由于 DevExtreme 应用程序利用了Apache Cordova,您的应用程序可以跨设备类型访问相机和位置等原生平台功能。最近关于 Cordova 应用开发有很多讨论,Visual Studio 2013 和 2015 都内置了构建这些应用的能力。DevExtreme 已经实现了这一点几年了。

总结

本文仅介绍了 DevExpress Universal 14.2 中可用控件和模块的部分功能。访问DevExpress 网站,了解他们的控件套件在 2015 年如何加速您的应用程序开发,并且不要忘记下载免费试用版

我的下一篇评测将重点关注DevExpress TestCafé,这是一个强大的工具,可以使功能性 Web 测试变得轻松有趣。请尽快回来阅读相关内容。

编码愉快!

© . All rights reserved.