這是一個簡單Web框架,前臺採用amaze UI +requireJS+handlebarsJS,後臺採用WebApi+MongoDB,用Nginx作Http服務器,隨着.Net Core的跨平臺,因此此框架也是能夠在Liunx下運行。html
爲了保持WebApi接口訪問安全,每次請求都增長了Token驗證。jquery
爲何用amaze UI 而沒有用bootstrap,主要仍是考慮到移動端amaze UI效果更好點,但amaze UI不少地方都不是很好用,特別是哪些擴展插件。git
爲何用requireJS+handlebarsJS 來解決前臺代碼模塊化,而沒有用Vue.JS、angularjs、React,仍是因爲本身對Jquery熟悉一點、對Jquery相關插件熟悉一點,不想浪費而已。angularjs
用了這麼多UI框架,我的以爲最好用的仍是JqueryEasyUI,用起來真的至關省心省時。github
源代碼下載githubmongodb
MongoDB數據庫
<configuration> <appSettings> <add key="WebApiUri" value="http://localhost:8021"></add> <add key="mongodb_binpath" value="C:\MongoDB\Server\3.2\bin"/> <add key="mongodb_conn" value="mongodb://localhost:27017"/> </appSettings> </configuration>
MenuController.csbootstrap
編寫後臺WebApi控制器代碼,向前臺提供接口數據c#
public class MenuController : ApiController { [HttpGet] public object getmenu1() { return "菜單1"; } [HttpGet] public object getmenu2() { return "菜單2"; } [HttpGet] public object getmenu3() { return "菜單3"; } [HttpGet] public object getmenu4() { return "菜單4"; } }
menu1.html安全
編寫前臺展現Html頁面,主界面是經過require.js動態裝載此頁面
<script id="menu1-template" type="text/x-handlebars-template"> <div class="am-u-sm-12 am-u-sm-centered"> <pre>{{data}}</pre> </div> </script>
menu1.js
編寫前臺頁面對應的JS腳本代碼,是採用AMD規範封裝爲一個模塊
define(['jquery', 'common', "handlebars.min", "text!../../handlebars/menu1.html"], function ($, common, Handlebars, html_template) { //通用 function show_common(menuId, para, urls, templates, callback, errorcallback) { if (!urls[menuId] || !templates[menuId]) { $('#content_body').html(html_template);//加載html模板文本 //設置多個url和模板 urls[menuId] = para; templates[menuId] = Handlebars.compile($("#" + menuId + "-template").html()); } common.simpleAjax(urls[menuId], {}, function (data) { var context = { data: common.toJson(data) }; var html = templates[menuId](context); $('#content_body').html(html); if (callback) { callback(data); } }, errorcallback); } // function show_page(menuId, urls, templates) { show_common(menuId, "menu/getmenu1", urls, templates); } return { showpage: show_page }; });