Winform/WPF中內嵌BeetleX的HTTP服務

在新版本的BeetleX.FastHttpApi加入了對netstandard2.0支持,若是程序基於.NetFramework4.6.1來構建WinForm或WPF桌面程序的狀況下能夠直接把BeetleX的HTTP嵌入到程序中,輕易就能實現一個本地化的HTTP服務並提供靜態資源和WebAPI的調用處理;如下簡單地介紹在WinForm/WPF引入BeetleX.FastHttpApi的HTTP服務。javascript

引用Beetlex

組件在1.4.5.8版本後加入了對netstandard2.0的支持,只須要在Nuget上添加這個或更高版的BeetleX.FastHttpApi便可css

添加代碼

只須要幾行代碼便可在程序中添加HTTP服務html

private BeetleX.FastHttpApi.HttpApiServer mHttpApiServer;
        private void Form1_Load(object sender, EventArgs e)
        {
            SetIE();
            mHttpApiServer = new BeetleX.FastHttpApi.HttpApiServer();
            mHttpApiServer.Register(typeof(Form1).Assembly);
            mHttpApiServer.Open();
        }

構建一個HttpApiServer對象,而後把當前程序集註冊到服務中便可完成。vue

服務配置

"HttpConfig": {
    "Host": "",
    "Port": 12345,
    "SSL": false,
    "CertificateFile": "",
    "CertificatePassword": "",
    "MaxBodyLength": 20097152,
    "OutputStackTrace": true,
    "StaticResurceType": "xml;svg;woff;woff2;jpg;jpeg;gif;png;js;html;htm;css;txt;ico;zip;rar",
    "DefaultPage": "index.html;index.htm",
    "NotLoadFolder": "\\Files;\\Images;\\Data",
    "NoGzipFiles": "xml;svg;woff;woff2;jpg;jpeg;gif;png;js;html;htm;css;txt;ico;zip;rar",
    "CacheFiles": "",
    "BufferSize": 8192,
    "WebSocketMaxRPS": 2000,
    "WriteLog": true,
    "LogToConsole": true,
    "LogLevel": "Warring"
  }

默認配置是在端口12345上開啓httpwebsocket服務;運行程序後能夠經過瀏覽器訪問http://localhost:12345便可訪問服務。不過更多狀況是程序內嵌一個webBrowser打開,這樣便可徹底使用html+css+js來構建一個本地UI程序了。java

靜態資源添加

組件經過目錄名來約束資源存儲位置,全部資源必須存放在程序的views目錄下git

靜態文件屬性設置成嵌入程序或編譯複製的方式進行發佈,程序能夠在webBrowser設置服務地址便可打開網頁,效果以下:github

經過這種集成方式WinForm/WPF就徹底能夠用html+css+vue等這些功能進行windows程序UI開發。web

定義Webapi

若是使用內嵌的http+html+css+vue作桌面應用開發,那必然也須要有數據交互的接口;接下來簡單地定義一個接口讓javascript訪問ajax

[Controller]
        public class WebAction
        {
            public object GetStarted(string email)
            {
                return new TextResult($"{email} {DateTime.Now}");
            }
        }

只須要在項目中簡單地添加一個控制器便可,以上GetStarted訪問的訪問路徑是/GetStarted;經過ajax在頁面調用的腳本windows

function GetStarted(email) {
            $.get('/GetStarted?email=' + email, function (result) {
                alert(result);
            });
        }

以上是WinForm/WPF內嵌BeetleX構建的一個桌面應用,是否是感受很簡單?若是你對Beetlex感興趣能夠關注 https://github.com/IKende/FastHttpApi

完整示例代碼

https://github.com/IKende/FastHttpApi/tree/master/samples/WinWebSample

相關文章
相關標籤/搜索