TypeScript XAML框架

9
作为.NET/XAML开发者,我想知道是否有人开始编写一个框架,利用诸如TypeScript和XAML之类的技术来生成HTML5、JavaScript和CSS跨平台桌面应用程序或RIA,以取代Silverlight和Flex。
如果没有,那么拥有一个理解XAML(或只是XML)来定义用户界面,并使用JavaScript或更好的TypeScript来编写视图控制器的框架不是很好吗?
我知道Sencha建立了一个名为EXT JS的JavaScript框架来构建富互联网或桌面应用程序,但从.NET开发者的角度看,EXT JS并不如意。.NET开发者喜欢使用像Blend或Visual Studio这样的工具来设计UI,并在XAML而不是JSON中进行代码编辑。
还有一种称为Zebra的良好方法,它完全在html-canvas内呈现,但它不基于XAML,也没有使用主题的能力。
此外,jQuery UI和jQuery Mobile是从HTML开发者的角度看很棒的框架,但我正在寻找一个基于XAML的框架,因为在XAML中需要编写的内容比在HTML中要少。还可以使用Blend来设计UI。
我几个月前曾经问过自己这个问题,当时Adobe放弃了Flex,而微软则没有承认扩展Silverlight 5。我的回答是:
Microsoft或Adobe应该为我们完成这个工作。

但是今天我认为现在轮到我们自己行动了。
根据您的反馈,我想启动一个开源项目来创建这样的框架,但我希望还有其他人正在进行类似的工作^^
4个回答

4

网址已更改为http://fayde.io/? - Sebastian

4
您并不需要 XAML 来编写 HTML 应用程序,因为 XAML 实际上只是另一种标记语言。
从您 WPF/Silverlight 的经验来看,您会发现以下概念实际上都是从 HTML 借鉴而来的:
- XAML 是内容的标记语言,这正是 HTML 所使用的。 - 资源就是样式和行为,这是 CSS 所做的事情。
有些部分并不能直接对应。例如,您在 WPF 程序中使用的某些触发器可能在 Web 应用程序中是 CSS 或 JavaScript。此外,在 HTML 中,属性的使用比我在 WPF 中看到的要少得多,通常所有的尺寸和布局都会放置在 CSS 中,而不是在标记语言中作为属性。
您可能没有每个可用的 WPF 控件的直接替代品,但您会发现大多数事情都是可能的。
尽管如果您没有广泛使用过它们,学习 HTML、CSS 和 JavaScript 会涉及一定的学习曲线,但它们是您工具箱中有用的工具。

1
我已经有多年的HTML编程经验,因此我知道什么是可能的,什么是不可能的。 但在我看来,使用XAML编写代码会更容易,因为你需要编写的比HTML少。 此外,大多数HTML可用工具都是以网页为中心的。 我的目标是创建跨平台的桌面和移动应用程序。我不愿意完全使用XAML编写应用程序。因此,你可以使用像Blend或Visual Studio这样的好工具。因此手写HTML根本不是一个选项。 - Olaf Japp

2

还有rAppid:Jshttp://www.rappidjs.com,它基于XAML,但不适用于Visual Studio或Expression Blend。

一个面向HTML/JS的XAML框架是一个很好的想法,可以通过一个InitializeComponents()方法将XAML文件转换为HTML5或直接转换为JavaScript,并实例化所有对象(就像在WinForms中一样)。

如果你决定开始这样的项目,请考虑使用类似Saltarelle或Script#的C#到JavaScript编译器。


rAppid:Js 看起来不错,我会试一下。谢谢。我之前评估过 Script#。 它还不错,但我认为 Nikhilk 已经停止支持它了。 也许有人已经为 ExtJS 构建了 Script# 库。 - Olaf Japp
有Saltarelle,它被认为是Script#的替代品,并且得到了积极的支持。我用它搭配jQuery+Knockout+Pager来开发我的所有新项目。我想要的是能够编写XAML并将其转换为HTMLDOM和/或javascript的能力。我很想自己写一个这样的工具,但似乎相当复杂。 - nino.porcino
我的团队有一个自定义的JavaScript库,可以完美地解析XAML并将其转换为HTML。它还支持双向绑定。编写解析器并不是非常复杂。 - AlvinfromDiaspar

1

在网络上搜索"M&P H5J is Silverlight in HTML5",它在TypeScript中实现了一个XAML处理器。


请在以下网址中查看一些图片: http://www.hdolder.com/C30305.htm - hdolder

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接