热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

桌面应用程序员简单尝试RichJavaScriptApplication

虽然10年前搞过一段时间的Web应用开发,且为所在企业设计了一个基于ASP.NETWebForms(在.NET1.1的基础上)的Web应用开发框架。但是,后来一直做的都是桌面类

虽然10年前搞过一段时间的Web应用开发,且为所在企业设计了一个基于ASP.NET WebForms(在.NET 1.1的基础上)的Web应用开发框架。但是,后来一直做的都是桌面类的应用,比如SmartClient,基于Silverlight的RIA,甚至到现在,我们公司的产品就是一个纯客户端的单机WinForms应用。所以,我应该是一个彻彻底底的桌面应用程序员了。已经很久不碰Javascript这样的东西了。

最近开始对Javascript感兴趣的原因,不外乎下面几个:

  • 最近1年Node.js的极其火热,想深入了解一下,尤其Azure(及WebMatrix)对Node.js强力支持更是加深了我的兴趣;
  • ASP.NET MVC中内置了一个MVVM的Javascript库——KnockoutJS,想知道为什么微软对KO情有独钟;
  • Windows 8 App可以使用Javascript和HTML5来开发,可见就算是桌面应用,Javascript未来也有用武之地;
  • 微软推出了TypeScript,以及之前微软非官方的Script#,还有CoffeeScript的被持续关注,都说明人们希望以更加简单的方式来使用Javascript开发大型更加Rich的应用程序

我做的简单尝试的场景如下:

  • 公司官网用php构建的,对php不是太熟悉,也不想去对原有网站框架做调整;
  • 公司博客基于wordpress构建
  • 需要在官网中自动显示博客的最新文章列表

由于之前已经开始学习Knockout的东西,所以昨天决定基于KO来实现上述场景,这可以说是对KO的一点实际尝试。具体做法如下:

  1. 在wordpress中安装feed json插件,暴露json的接口
  2. 创建一个html文件部署到网站根目录
  3. 在官网中创建一个栏目块(支持自定义HTML),在其中插入iframe元素,指向上面的html文件。之前尝试过在HTML中直接实现代码,但是由于jQuery版本会冲突,所以改用iframe。

这个简单应用程序的HTML文件如下:

    
    

上面HTML文件分作两个部分。第一个部分就是用于显示界面的HTML,第二部分是实体对象的定义和获取数据执行绑定的Javascript代码。

在第一部分中,由于使用了MVVM思想的绑定机制,对于我而言是非常熟悉的,这个和XAML没有太多区别。

第二部分中,首先利用jQuery获取JSON数据并转换为可绑定的Javascript对象(这里真的简单的让我感到惊喜),可绑定是通过ko.observable来实现的;然后在ViewModel对象中提供一个可绑定的数组属性给界面(即blogs属性)。

上述功能虽然简单,但是我觉得已经触摸到了所谓Rich Javascript Application或微软称之为 Scale Javascript Application的实现途径了。即:

  • 使用jQuery这样的框架来简化DOM的操作
  • 使用KnockoutJS或者AngularJS这样库或框架来简化数据呈现,行为处理
  • 使用CoffeeScript或者TypeScript来简化Javascript的编写
  • 开发可以跨浏览器运行的纯客户端应用,也具备和服务端的交互能力(一般基于RESTful),这样的应用具有良好的交互性,可以完成复杂的数据操纵。

这里有一篇参考文章,值得一读:

Rich Javascript Applications – the Seven Frameworks (Throne of JS, 2012)


推荐阅读
  • python自学教程哪里好,python比较好的教程
    本文目录一览:1、想学python去哪里比较好? ... [详细]
  • FroggerTimeLimit:1000MSMemoryLimit:65536KTotalSubmissions:32257Accepted:10396DescriptionFr ... [详细]
  • spring-session解决session一致性问题,Go语言社区,Golang程序员人脉社 ... [详细]
  • 这篇文章将为大家详细讲解有关C#开发技巧有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。C#开发技 ... [详细]
  • 3295:[Cqoi2011]动态逆序对Description对于序列A,它的逆序对数定义为满足iAj的数对(i,j)的个数。给1到n的一个排列,按照某种顺序依次删除 ... [详细]
  • 2019.4.14第1001题:SumProblemProblemDescriptionHey,welcometoHDOJ(HangzhouDianziUniversityOnli ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了将JSON数组反序列化为强类型的.NET对象相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 编程语言是从哪蹦出来的——大型伦理寻根现场
    Hello,我是Alex007,一个热爱计算机编程和硬件设计的小白,为啥是007呢?因为叫Alex的人太多了,再加上每天007的生活,Alex007就诞生了。聊一聊编程到底是啥,怎 ... [详细]
  • 变相的实现connect的超时,我要讲的就是这个方法,原理上是这样的:1.建立socket2.将该socket ... [详细]
  • kepserver中文手册,kepserver使用教程,kepserver设置
    下面介绍一下KepServer模拟器的使用,以下示例使用服务器随附的Simulator驱动程序来演示创建、配置和运行项目的过程。Simulator驱动程序是基于内存的驱动程序,能为 ... [详细]
  • socket.io是个基于node.js的快平台实时通讯框架。只用不到10行代码,就可以搭建一个简单的多人实时聊天室。先来看看运行后的效果:socket.io多人聊天室只要简单几 ... [详细]
  • Linux是一套免费使用和***传播的类UNIX操作系统,主要用于基于Intel x86系列CPU的计算机上。Linux系统是由全世界各地的成千上万的程序员合适的方式定制自己的Li ... [详细]
  • 互联网世界 9 种基本的商业模式
    互联网世界9种基本的商业模式一个商业模式是运行一个公司的方法;通过该模式的运作,一个公司能维持自己的生存,就是说,能有收益。商业模式意味着一个公司是如何通过在价值链中定位自己,从而获 ... [详细]
  • 十一、构建我们自己的包在本章中,我们将学习如何构建自己的包。编写包可以让我们创建可以在许多应用 ... [详细]
  • 导读:很多朋友问到关于入门学什么php框架简单的相关问题,本文编程笔记就来为大家做个详细解答,供大家参考,希望对大家有所帮助!一起来看看吧!本文目录一览: ... [详细]
author-avatar
手机用户2602914627
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有