下一代的B/S开发框架--Echo 教程(1)

本文介绍了下一代B/S开发框架Echo。与Struts、asp.net等框架不同,Echo能以类似写Swing的方法直接输出HTML,让开发者无需编写繁琐的html和javascript。作者准备分章节介绍Echo,还提供了其资源链接,这些资源免费且有源码。

下一代的B/S开发框架--Echo 教程(1)

独乐乐不如同乐乐, 每当有点发现我总喜欢写下来同大家分享, 也希望得到指点和帮助. 写教程是个辛苦活, 但是这里有个小小的阴谋, 等大家咬钩了再说 :)

为什么介绍Echo? 不是struts?
asp.net已经雄起. Java阵营的JSP, Struts已经望尘莫及. 在我以前的文章中曾经提到过Echo, 类似的框架还有tapestry, swinglet, wings... 它们在远古时代就已经出现. 但是直到asp.net出场, "服务器端控件"才引起关注. Echo出色的地方不仅仅在这里. 它能够用类似写Swing的方法直接输出HTML, 也就是说写网页根本不用再写html, javascript. 如果你经常做B/S应用, 一定对这些烦琐的东西还有深刻的印象. 如果你做过日本项目, 回忆可能会更痛苦些 :) Echo可以让我们忘掉这些, 不需做那些人人痛恨的烦琐工作.

我准备分几个章节来介绍Echo:

  1. 资源
  2. 原理
  3. HelloWorld
  4. 模式窗口的实现
  5. 可编辑的下拉菜单
  6. 复杂一点的例子
  7. HTML模板
  8. 编写自己的控件
  9. 数据绑定的自动化
  10. 优点/缺点/Some Tips

资源

http://www.nextapp.com
这里是Echo的老家. 有Echo的入门教程, 开发教程, FAQ. 还有两个很重要的链接:
EchoPoint: 一个第三方的控件库. (看看它的demo你肯定会流口水)
File Transfer Library:一个文件上载/下载的控件.

Echo的资源都是Free的, 有源码提供. 遵循GNU LGPL.

Echo和EchoPoint的Demo都做的特别好, 对产品的特性做了足够的演示,并且提供源码, 可以作为以后开发的参考.

我们先看一些控件的样本:

注意: 实现以上花里胡哨的页面不需要你写任何的javascript!

我的msn:steeven_lee@citiz.net, 欢迎有兴趣的朋友交流

 

系列讲座:

  下一代的B/S开发框架--Echo 教程(2)

  下一代的B/S开发框架--Echo 教程(3)

  下一代的B/S开发框架--Echo 教程(4)


 

 

Echo 是一个用 Go 语言开发的快速 HTTP 路由器(零内存分配)和微型 Web 框架。 特性: Zippy router. Extensible middleware/handler, supports: func(*echo.Context) http.Handler http.HandlerFunc func(http.ResponseWriter, *http.Request) func(*echo.Context) func(echo.HandlerFunc) echo.HandlerFunc func(http.Handler) http.Handler http.Handler http.HandlerFunc func(http.ResponseWriter, *http.Request) Middleware Handler Handy encoding/decoding functions. 支持静态文件处理 示例代码: package main import ( "net/http" "github.com/labstack/echo" mw "github.com/labstack/echo/middleware" "github.com/rs/cors" "github.com/thoas/stats" ) type user struct { ID string `json:"id"` Name string `json:"name"` } var users map[string]user func init() { users = map[string]user{ "1": user{ ID: "1", Name: "Wreck-It Ralph", }, } } func createUser(c *echo.Context) { u := new(user) if c.Bind(u) { users[u.ID] = *u c.JSON(http.StatusCreated, u) } } func getUsers(c *echo.Context) { c.JSON(http.StatusOK, users) } func getUser(c *echo.Context) { c.JSON(http.StatusOK, users[c.P(0)]) } func main() { e := echo.New() //*************************// // Built-in middleware // //*************************// e.Use(mw.Logger) //****************************// // Third-party middleware // //****************************// // https://github.com/rs/cors e.Use(cors.Default().Handler) // https://github.com/thoas/stats s := stats.New() e.Use(s.Handler) // Route e.Get("/stats", func(c *echo.Context) { c.JSON(200, s.Data()) }) // Serve index file e.Index("public/index.html") // Serve static files e.Static("/js", "public/js") //************// // Routes // //************// e.Post("/users", createUser) e.Get("/users", getUsers) e.Get("/users/:id", getUser) // Start server e.Run(":8080") } 标签:Echo  Web框架
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值