Javascript 企业元数据应用程序的HTML技术选择

Javascript 企业元数据应用程序的HTML技术选择,javascript,silverlight,web,metadata,enterprise,Javascript,Silverlight,Web,Metadata,Enterprise,问题 决定从富客户机Silverlight应用程序迁移到能够处理元数据驱动方法的HTML客户机时应选择哪些技术 背景 企业级Silverlight应用程序,具有6年以上的开发经验 2层体系结构,Silverlight富客户端使用..直接与服务器后端对话…。。大部分业务逻辑实际上是在Silverlight中执行的 传统上,我们是一家微软商店 团队中几乎没有现代网络经验 被可用于构建现代web应用程序的技术数量所迷惑 我们对Angular 1和2、剑道UI等技术做了一些研究 我们的整个系统是元数据

问题

决定从富客户机Silverlight应用程序迁移到能够处理元数据驱动方法的HTML客户机时应选择哪些技术

背景

  • 企业级Silverlight应用程序,具有6年以上的开发经验
  • 2层体系结构,Silverlight富客户端使用..直接与服务器后端对话…。。大部分业务逻辑实际上是在Silverlight中执行的
  • 传统上,我们是一家微软商店
  • 团队中几乎没有现代网络经验
  • 被可用于构建现代web应用程序的技术数量所迷惑
  • 我们对Angular 1和2、剑道UI等技术做了一些研究
  • 我们的整个系统是元数据驱动的。包括模式、业务逻辑、视图等
要求

  • 它必须是元数据驱动的。这意味着视图和数据模型在编译时是未知的。可以在运行时创建和使用视图。看起来我一直在研究的JavaScript库对这个特性几乎没有支持,它们期望在编译时了解视图和数据模型
  • 动态响应的客户端。在我们的任何自定义视图中,值更改时的某些字段可能会触发服务器命中。服务器反过来可能会向客户端发送指令,例如自动填充视图中的某些字段,更改某些字段的样式使其成为只读或必需,生成对话框,甚至可能进行一些DOM操作
  • 如果可能,Silverlight的轻松转换路径。至于其他要求,我知道这可能不可行
  • 我们需要对我们选择的任何技术作出为期五年的承诺。我们不想选择任何不稳定或有风险的东西。在可预见的未来,我们寻求稳定可靠的产品 摘要


    寻找关于使用哪种技术和开发模式时应采取哪种方向的指导。支持这些需求。

    有很多方法可以实现这一点

    首先,, 深度与广度。如果你的目标是拥有广度部署的深度体验,那么你就是在追逐技术独角兽(很多截止日期都在这次搜寻中被清除)。现实是,你所做的任何选择都有一个陷阱,但你需要坐下来思考的部分是,你可能在哪里获得用户,以及你如何影响他们。人们通常会因为害怕失去“移动性”的覆盖范围而想要广度,然而当你考虑到开发成本和实际使用时,这往往是一个误判

    所以,一旦你确定了这一点,它将有助于围绕你可以使用的技术形成对话

    宽度: Web或Xamarin是可能的候选人。然而,Xamarin会让您不得不在动态生成UI方面挣钱,因为Xamarin表单正朝着XAML的生活方式发展,但请记住,它们偏离了Silverlight/WPF XAML(我不知道与现在的情况相比,Moonlight项目为什么或在哪里……)

    考虑到你的Silverlight背景,像AngularJS这样的Web很可能适合你——它有MVVM绑定的思维方式,你也会有更多的社区支持你。它还将保留对微软的很多熟悉

    深度: WPF。。。说真的,只要windowsxp到windows10存在,WPF也会存在,这在心里是如此的简单。WPF未来可能不会对其代码库进行任何实际添加,但大部分工作已经到位,因此,如果您沿着这条路走下去,就不会错过太多的增长机会

    在Silverlight/WPF的时候,团队中的我们也低估了WPF的受欢迎程度,所以虽然微软仍然认为它是一项“老技术”,但他们在实际渗透率统计数据方面从来没有好的数据,我发现它个人的增长比Silverlight更强劲,因此,这方面的社区支持率也可能会更高

    新的微软SDK很吸引人,但请记住,任何低于Windows8的东西都不会为你赢得一些桌面空间


    HTH.

    如果Josh希望基于浏览器的客户端支持“所有”平台(Win、Mac、iOS、Android),您会如何建议他?我在考虑后端的RESTful Web API(利用他们在Microsoft的经验),但不确定客户端技术,尤其是w.r.t.寿命和稳定性。REST是很好的REST,除非你让整个UI 100%依赖于一个网络来回答一个问题,否则你不能搞砸。请记住,对于Knockout/Angular等框架,在页面呈现数据时,您往往会依靠这根拐杖。在移动环境中,空白页面不是好兆头。对于X平台来说,这更像是灵丹妙药,而不是现实。在某些地方,你不仅要在浏览器上,而且要在屏幕分辨率上做IF/ELSE。响应性与适应性是一个持续的斗争,因此选择一个长期使用是不现实的。遗憾的是,我们处于类似的情况,尽管我们的应用程序使用Asp.net。你最终决定用什么?谢谢