首頁 三十天.NET❤️Azure漸進式開發專案 輕量高效.NET Core開源Blog引擎:Miniblog.Core
首頁 三十天.NET❤️Azure漸進式開發專案 輕量高效.NET Core開源Blog引擎:Miniblog.Core
×

IT鐵人賽連結:https://ithelp.ithome.com.tw/articles/10200987

11.規劃Electron.Net+Miniblog功能開發

今天先來規劃要使用Electron.Net來做什麼
主要完成四個功能

  • [完成] 使用metaweblog+XML-RPC讀取所有文章內容
  • [完成] 支持HTML轉MarkDown,MarkDown渲染
  • [完成] 使用metaweblog+XML-RPC更改文章

其中跟metaweblog通訊會使用到XmlRpc技術,它可以讓我們藉由呼叫網路API方式獲取文章資料。

舉例:
在metablog實做GetPost接口,邏輯很簡單:
1.驗證帳號密碼
2.回傳指定文章資料

        public WilderMinds.MetaWeblog.Post GetPost(string postid, string username, string password)
        {
        	/*驗證帳號密碼*/
            ValidateUser(username, password);

			/*回傳文章資料*/
            return _blog.GetPostById(postid);
        }

接著使用C# - XML-RPC.Net套件
客戶端只需要實做metaWeblog.getPost方法、三個參數(帳號、密碼、指定文章ID),就可以跟伺服器獲取指定文章資料。

        public Post getPost(string postid, string username, string password)
        {
            return _metaweblogWeblogService.GetPost(postid, _username, _password)
        }

接著要如何渲染就是.net core web的強項了,_layoutHtmlHelper都可以在Electron.Net中使用。

【舉例】
合併前面的讀取文章範例,使用熟悉的MVC架構來讀取文章,渲染在Post.cshtml頁面上:

namespace ElectronNETDemo.Controllers
{
    public class BlogController : Controller
    {
        private static readonly MetaweblogWeblogService _metaweblogWeblogService = new MetaweblogWeblogService();
        private static readonly string _username = "demo";
        private static readonly string _password = "demo";
        public IActionResult Post(string postid)
        {
            /*驗證帳號密碼*/
            ValidateUser(_username, _password);

            /*回傳文章資料*/
            return View(_metaweblogWeblogService.GetPost(postid, _username, _password));
        }
    }
}
@model ElectronNETDemo.Models.Post

@{
    ViewData["Title"] = "抓取Blog文章";
}

<div>
    <h4>文章名稱 : @Model.title</h4>
    <hr />
    <div>文章簡介</div>
    <div>@Model.mt_excerpt</div>
    <hr />
</div>

登登登,就可以在桌面程式顯示Blog的文章啦!
2018-10-11.23.46.57-image.png

能沿用.NET Core MVC開發桌面程式感覺真的舒服。


留言


Comments are closed