efwplusUI框架,支持在Liunx服務器運行的Web開發框架,C#開發

efwplusUI開發框架

這是一個簡單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數據庫

  • 啓動efwplusNginxHost.exe

  • PC端效果

  • 手機端效果

  • 代碼工程結構

  • 相關配置
<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>
  • 數據庫MongoDB

快速開始

  • 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
    };
});
相關文章
相關標籤/搜索