.net - 选择哪个ui框架

标签 .net javascript wpf silverlight rest

在 windows/.net 环境中,我目前使用 caSTLe monorails 和 jquery 为电子商务应用程序提供管理界面。

此应用程序运行良好,但没有真正的用户界面组合概念。到目前为止,这还不是问题,因为 ui 是针对单个用户群和单个域对象的。这将会改变,因为我们希望应用程序适用于从定义的基域派生的域(并扩展它)。

因此,如果我有一个带有名称和描述字符串属性的实体,我很可能会有一个带有名称和描述输入以及隐藏 ID 字段的表单。帖子通过 jquery/ajax 发送。

现在,一位不同的客户来了并获得了他的默认应用程序设置。他需要该实体的日期和尺寸字段。我需要考虑保持它易于部署,所以我不能只是侵入现有解决方案并以这种方式扩展它。我需要做的是将一个 dll 放入客户端基本安装的 bin 文件夹中并完成它。

目前我阅读了很多关于 silverlight、prism 和 caliburn 的资料,它们似乎让我获得了这个功能——但要付出一定的代价。
现在非常容易 - 访问我的域数据、服务和消息传递并在 View 中使用该数据,将隐藏在某个层之后,可能是一种 Restful Web 服务类型。此外,据我所知,通常 Silverlight 应用程序似乎绑定(bind)到这些服务公开的实体的 visual-studio 生成的代理类 - 这种情况不太适合我当前的情况。

所以我有点介于两把椅子之间,并且怀疑向 silverlight 的迁移是否只会移动问题区域,而不是让它消失。

另一种选择是使用像 YUI o dojo 这样的库在 javascript 中生成我的 View (由于他们的许可不能使用 ext)并在那里生成所有 ui(几乎没有 html 标记),定义扩展点并使用某种 javascript链接器允许我扩展该接口(interface)。数据将随着随后对 Restful 服务的调用而到达。虽然这看起来与采用 sl 方式没有什么不同,但由于 javascript 的动态特性,这可能比根据我的意愿弯曲强类型 .net 容易得多。

有人可以在这里给我一些意见来帮助我做出这个决定吗?

最佳答案

我无法说出您概述的所有要点,但这是我可以说的:

用户界面组成:

借助 Silverlight 和可用的框架(prism、caliburn 等),您可以制作出非常灵活和可扩展的 UI,因此我非常赞赏。我发现这些框架的生产力非常高,而且关注点分离度很高,因此维护项目变得容易多了。在为新项目选择 Web 平台时,我现在从“是否有不使用 Silverlight 的理由?”的 Angular 来考虑。 这应该可以作为我对这个话题有偏见的免责声明

引入的新问题:

您提到现在对您来说容易的事情将隐藏在另一层之后。这很难说,因为我不知道你当前的架构,一般来说,我会说这可能是一件好事。有了一个好的模式(MVVM 是 Silverlight/WPF 中最强大和最常见的模式),这些层应该能够很好地交互,并且应该为您的项目提供一个好的架构。

代理类:

是的,我可以看到这可能被认为是一个潜在的问题领域,但是再次使用正确的架构和框架(RIA 服务值得关注)您应该能够避免将当前的痛点从UI 层到服务层。

总而言之,我会大力支持使用 Silverlight。

备选方案:

我无法谈论在 JavaScript 中生成您的 View 的选项,因为我从未尝试过,希望其他人能评论他们的经验。

您是否考虑过 ASP.NET MVC?同样,这个平台有一个很好的复合 UI 方法,您将以一种比目前拥有更多控制权的方式生成 View 。

希望对您有所帮助。

关于.net - 选择哪个ui框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2418819/

相关文章:

javascript - 如何在 React 中使用循环显示数据?

javascript - 将 Breeze 与启用服务器端分页的 OData 服务结合使用

WPF 组合框控件模板背景 IsMouseOver

wpf - 是否可以在 WPF 中使用 ReactiveUI 绑定(bind)仅通过 INotifyDataErrorInfo 验证用户输入?

.net - LINQ-to-SQL 是否可以在插入时省略未指定的列,以便使用数据库默认值?

c# - JavaScript 转换为 C#

c# - 学习 .NET Web 服务的最佳资源是什么?

javascript - Angular ngFor不显示更改的数组

c# - 在附加到新的父 Visual 之前,必须断开指定子项与当前父 Visual 的连接

c# - System.Net.Mail.SmtpClient 在发送电子邮件时使用什么类型的身份验证?