3

我现在一直在试用 Kendo MVC 辅助框架(特别是与我通过实体框架间接绑定到数据库的网格一起工作),虽然它很酷,但我遇到了一些问题/担忧m,希望这里的人能够提供帮助。

我在 Kendo 网站上看到的大多数示例都显示了直接从控制器运行的ToDataSourceResult IQueryable 扩展方法的强大功能,在我们正在构建的系统中,它不会运行——我们需要有一个明确的解耦控制器和服务/dal/ef 层。这意味着这些层将不得不依赖于 kendo.mvc.dll,这是架构师关心的问题,因为它与我们在产品的整个生命周期中与 Kendo 保持紧密联系。

访问由 Kendo dll 中的 Dynamic Linq 扩展生成的实际原始表达式将解决我的问题,因为我将能够接收DataSourceRequest,获取各种表达式集合(排序、过滤、组等)并将它们传递下去在没有任何 Kendo 知识的情况下进入我的业务层,执行它们,然后将它们返回的结果打包到DataSourceResult中。

这样,如果项目进行到一半,客户端框架发生变化,我只需要担心如何为新框架生成表达式,根本不需要接触我的底层。

有谁知道这是否可能?据我所知,Kendo.Mvc.Infrastructure.* 命名空间中的所有表达式构建器都是内部的或私有的......

4

2 回答 2

1

我们正在使用这些语句来检索 IFilterDescription 封装的表达式:Kendo.Mvc.ExpressionBuilder.Expression(request.Filters);

于 2014-09-25T19:53:52.827 回答
0

剑道示例只是展示其产品的最快最简单的方式——我们告诉我们的新开发人员不要将它们用作参考。

我们将表示层分为 3 个项目 Web(视图)、控制器和模型(应用于视图,我们称之为 ViewModels,但不要与 MVVM 混淆)。Kendo dll 只是 Web 和 Controller 中的一个参考。然后我们有一个 Presentation 服务,它连接到业务层中的多个项目(我们有模型并且可以应用 DataAnnotation)和数据提供者层 - 一切都是依赖注入和 IoC - 在这些中的任何地方都找不到 Kendo dll .

我们还使用免费的 Telerik 测试框架进行 UI 自动化测试,该框架也有 Kendo 的翻译器。

所以有一个非常冗长的答案,是的。

由 15-20 名开发人员组成的团队已经能够使用 Kendo 非常快速地开发一些基于 Web 的大型系统。我们强烈推荐它。

希望这可以帮助。

于 2013-07-11T23:41:17.990 回答