我必须编写一个Web应用程序,我不确定选择哪种技术。用户界面必须看起来像桌面应用程序。根据我对HTML,CSS和JavaScript的(有限)经验,我知道这远非易事。我想要的是能够像C ++,C#或Java一样编程,因为我认为这些语言更适合实现GUI。
我的问题有三个:
更新:感谢您的回复!
答案 0 :(得分:9)
您可以将Python与Pyjamas,Objective-J(以及一些JavaScript)与Cappuccino或Java与GWT一起使用。
如果您不介意依赖浏览器插件,还可以查看Adobe Air,Adobe Flex,Flash,Silverlight或JavaFX (或只是简单的Java)。
要回答您的其他问题,大多数网络应用程序都是用HTML / CSS / JS编写的,因为大多数浏览器都可以在没有帮助的情况下运行。我上面提到的所有内容都要编译或依赖于安装了插件的用户。
答案 1 :(得分:8)
是的,您可以使用Silverlight或JavaFX(即使它需要最少的HTML,如4个标签......)。
Silverlight或JavaFX和Flash同时存在的问题是他们对搜索引擎优化(SEO)感兴趣,就像Google& co无法查看您的应用内部。
答案 2 :(得分:6)
几点:
没有 HTML的网页是不可能的。
如果您使用Flash等插件,则其他人建议您仍需要HTML,因为这是网络的语言。 HTML,CSS和Javascript被广泛使用,因为插件主要是专有的,浏览器无法理解。
例如,您通常无法轻松地从插件中复制粘贴文本,并且其他浏览器功能和快捷方式不起作用。你必须权衡更重要的东西。
如果您的应用必须看起来像桌面应用,请将其设为桌面应用
为什么不制作具有互联网连接功能的桌面应用?这是一种欺骗,使它看起来像它不是,当它在另一个应用程序(浏览器)中运行时也很奇怪。
无论你使用什么样的风格,在大多数情况下它仍然不像用户的操作系统。每个操作系统都不同,每个操作系统都允许很多自定义。您可以使用跨平台框架来删除或减少这些问题。
答案 3 :(得分:4)
我不相信看起来像桌面应用程序是成功的关键 - 这究竟是什么意思呢?
Jquery UI让您了解使用标准html / css / js组合的可能性,并且易于实现。
答案 4 :(得分:3)
大多数Web应用程序都是使用HTML和JavaScript构建的,以实现可移植性。但是,如果您想要一个真正“丰富”的用户界面,您可能需要调查Adobe Flash或Flex,或Microsoft Silverlight(您可以使用它在C#中编程)。但是,您将要求您的用户拥有相应的插件。
答案 5 :(得分:3)
您可以使用Flex,Silverlight或Flash来创建丰富的界面。
如果您不喜欢HTML和CSS,则可以使用blueprint,HAML,SASS等CSS框架。如果您不喜欢javascript,可以使用jquery或prototype来改善体验。
使用HTML可以让您获得更多可见性。例如,许多便携式设备不处理Flash,大多数人没有Silverlight。还有SEO问题。即使Google现在引用Flash内容,它仍然落后于HTML参考。
最后,对我来说,Web应用程序看起来应该不像桌面应用程序。但如果你真的想这样做,就有办法做到这一点:
(来源:cappuccino.org)
(卡布奇诺)
答案 6 :(得分:1)
正如我已经看到Java FX中使用的语法,我认为使用常规Java Applet会更好(有点主观且有充分理由)。 Applet是嵌入在浏览器中的Java应用程序(具有某些限制)。
HTML / CSS / Javascript用于网页的原因是因为这是他们的目的。它们允许您构建可搜索且有关布局的文档,例如在浏览器中放置Java Applet(例如)会限制你在外观,样式,SEO(如上所述)+++ ...
如建议的那样,Silverlight也是另一种选择。这也是在浏览器中运行的嵌入式应用程序。
如果你掌握了Java,那么applet将是一个不错的选择,如果你可以忍受这些缺点。
答案 7 :(得分:1)
看看Wicket。您可以构建一个Web应用程序,只使用Java编码,就像使用Swing制作桌面应用程序一样。
已编辑:好的,我必须承认,您需要一点HTML体验(您确实拥有),但Wicket为您完成了大部分棘手的JavaScript和AJAX工作。
同样GWT有点类似:它会自动将Java代码转换为JavaScript并为您生成大部分HTML。
答案 8 :(得分:1)
答案 9 :(得分:1)
Silverlight似乎最接近你所说的(C#等)
您还可以将Flash用于富Internet应用程序。
老实说,在开始编程之前,你应该至少学习基本的HTML。你应该学到更多,但至少应该学习。
回答你的上一个问题,为什么人们仍然使用HTML ......
并非每个使用网络的人都使用功能强大的桌面电脑。人们通过电话,计算机程序等访问网络。并非所有这些设备都支持RIA,所以你要么把它们留在外面,要么把东西放在每个人都能看到的媒介中。
此外,可访问性(例如,盲人)需要屏幕阅读器在网络上帮助他们。因此,必须能够向用户阅读文档。
当然有更多的理由,但这些是几个例子。
答案 10 :(得分:1)
一个很好的选择是Vaadin。您可以使用Java(或JVM的任何语言)编写Web应用程序代码,而无需编写HTML或JavaScript(但在需要时可以使用)。
答案 11 :(得分:0)
Script#非常适合C#web开发。
答案 12 :(得分:0)
您可以尝试使用Intraweb http://en.wikipedia.org/wiki/Intraweb http://www.atozed.com/intraweb/index.en.aspx
不需要js知识 - 用纯Delphi pascal编写。
或者如果您更喜欢免费软件解决方案,那么Morfik http://morfik.com/ 它有FreePascal,C#和VisualBasic
的版本答案 13 :(得分:0)
您可以尝试使用ZK(http://www.zkoss.org/zkdem)强大的RIA框架
有了这个很酷的框架,你可以完全用Java和xml构建你的ajax应用程序。
答案 14 :(得分:0)
Visual WebGUI
您可以编程,就像使用C#,VB.Net或您选择的.Net编程语言构建桌面WinForms应用程序一样。完全所见即所得的表单设计者就像WinForms一样。除非您想要自定义开箱即用的控件,否则不需要HTML,Javascript或CSS技能。但是,如果您只想要一个WinForms样式的应用程序,则不需要这样做,因为Visual WebGUI已经支持大多数WinForms控件,就像您在Visual Studio中找到的那样。它们只是实现了所有WinForms样式控件,以在Web浏览器中呈现所有客户端部分。与通常在WinForms中处理模式对话框或消息框的方式略有不同,但除此之外,它就像编写WinForms应用程序一样。
答案 15 :(得分:0)
服务器端?使用Haskell。例如http://mflowdemo.herokuapp.com/
客户端?使用Haskell:
https://www.airpair.com/haskell/posts/haskell-tutorial-introduction-to-web-apps
答案 16 :(得分:0)