2017年4月29日土曜日

GitHub を利用したシンタックスハイライト


例えば JavaScript のコードスニペットであれば、GitHub の README.md に下記のように記述します。

```JavaScript
var today = new Date();
var year = today.getFullYear();
```










すると、Preview でみるとこのようにスタイルの適用されたコードが出力されます。





このコードをコピーしてブログ記事に貼り付ければ OK です。当方は Blogger で試していますが、スタイルが組み込まれたコードが生成されているので他のブログでも大丈夫だと思います。


参考情報

Basic writing and formatting syntax > Quoting code
https://help.github.com/articles/basic-writing-and-formatting-syntax/#quoting-code

定義されている言語の一覧
https://github.com/github/linguist/blob/master/lib/linguist/languages.yml


2017年4月5日水曜日

ASP.NET Web API の実装例

ASP.NET Web API の簡単な雛形を作ってみました。

クライアントサイドの実装:
ボタンをクリックして、Web API を呼び出しています。

<input type="button" id="apiButton" class="btn" value="Web Api Test"/>

@section scripts{
    <script>

        function asyncCall() {
            var xhr = new XMLHttpRequest();
            xhr.onreadystatechange = function () {
                if ((xhr.readyState === 4) && (xhr.status === 200)) {
                    var json = xhr.response;
                    console.log(json);
                }
            }
            xhr.open("GET", "/api/items/1", true);
            xhr.send(null);
        }

        var button1 = document.getElementById("apiButton");
        button1.addEventListener("click", asyncCall, false);
        
    </script>
}

サーバーサイドの実装:
ダミーデータからパラメーターとして渡される id からデータを割り出してクライアントへ返します。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;

namespace WebApi.Controllers
{
    public class ItemsController : ApiController
    {
        public IEnumerable<Item> getItem(int id)
        {
            var allItems = getAllItems();
            var item = allItems.Where(x => x.Id == id);
            return item;
        }

        private IEnumerable<Item> getAllItems()
        {
            List<Item> items = new List<Item>();
            items.Add(new Item { Id = 1, Name = "My Item 1", RegisteredOn = DateTime.Today.AddDays(-2), CategoryId = 1 });
            items.Add(new Item { Id = 2, Name = "My Item 2", RegisteredOn = DateTime.Today.AddDays(-3), CategoryId = 2 });
            return items;
        }
    }

    public class Item
    {
        public int Id { get; set; }

        public string Name { get; set; }

        public DateTime RegisteredOn { get; set; }

        public int CategoryId { get; set; }
    }
}

実行結果:

2017年4月2日日曜日

Lenovo E450 に外部ディスプレイを利用するためのドライバー

Lenovo E450 に外部ディスプレイを接続しようとした時に、デフォルトでは外部ディスプレイを認識しませんでした。
Start + P を押したところ、外部ディスプレイに対応していない旨のメッセージが出たので、Lenovo のサポートサイトに行きドライバーをダウンロード。
ドライバーをインストールすると、程なく外部ディスプレイを認識しました。

Intel HD グラフィック ドライバー (Windows 10 64bit) - ThinkPad E450, E550, L450
http://pcsupport.lenovo.com/jp/ja/products/laptops-and-netbooks/thinkpad-edge-laptops/thinkpad-e550/downloads/ds104182

もしくはこちらのリンクも有効です。
http://pcsupport.lenovo.com/jp/ja/downloads/ds104182

ちなみに今回私が使っていた OS は Windows Server 2016 64 bit です。上記ドライバーは Windows 10 に対応しているし、いけるかなと思ってインストールしてみたらいけました。

2017年4月1日土曜日

ASP.NET MVC ActionLink の fragment を付ける方法

ActionLink に fragment を付ける方法を調べたところ、下記のような実装方法がありました。

cshtml での実装
@Html.ActionLink($"Link Text", "MyAction", 
"MyController", null, null, "fragmentString", null, null)

出力結果はこんな感じです。
http://localhost/MyController/MyAction#fragmentString


Including an anchor tag in an ASP.NET MVC Html.ActionLink
http://stackoverflow.com/questions/274586/including-an-anchor-tag-in-an-asp-net-mvc-html-actionlink/274637#274637