2019/05/19(日)Visual Studio 2019からCordovaが消える

やっと自宅のPCを買い替え、Visual Studio 2019をインストール。
Visual Studio 2019 = .NET Core 3.0と思っていたら、プルダウンに出てこず調べたら未だPreview段階。
ここでインストールしてもまた入れ直す必要出てくるので、それまでの間Cordovaで遊ぼうと思ったらVisual Studio 2019から Apache Cordovaは消えたようです。Visual Studio CodeもしくはVisual Studio 2017を使えと。ずいぶんと思い切ったことをしてくれますね…。

Visual Studio Codeを入れるかどうか迷ってます。

2019/05/08(水).NET 5 = .NET Core vNext

.NET 5の概要が示されコメント欄が盛り上がってます。
.NET Core 3.0の時期バージョンが.NET 5。
4は.NET Framework 4系と紛らわしいのでスキップした、と言うことですが1~3も被っていたわけで、ようは.NET CoreからCoreが取れた、今後.NETと言えば.NET Coreになっていく、と言うことがはっきり示された形。

現在.NET Core未対応のWCF、WebFormあたりが切り捨てられるのか、ちょっとした騒ぎに。
廃止する、と発表されても現場の反応から廃止中止になったこともあるのでまた方針変わるかも知れませんが、新規プロジェクトを作成する時はできるだけ.NET Coreにしておいた方がよさそう。
.NET 5はMonoとくっつくので大規模なコード変更が予想され落ち着くまではしばらくかかりそうなので、当分.NET Core3の大きな変更は無く安心して使えそうな予感(個人の感想です)。

※2019/06/16追記
WCFもオープンソースとしてコミュニティによって.NET Coreに移植されるようです。
これでCore対応されずに残るのはWebFormだけでしょうか?

2019/05/06(月)MSTest、xUnit、NUnit

unittest010.png

Blazor電卓のテストプロジェクトを作成しようとテストでフィルターかけたら同じアイコンで4っつも抽出されました。
今まで使っていたのは.NET Frameworkだったので2番目のはず。
今回はBlazorで.NET Coreなので、MSTest、xUnit、NUnitの3択。

始めて目にする一番上のMSTestを試してみたら、見慣れた感じのプロジェクトができました。
使い慣れたこれでいこうかとも思いましたが、公式ドキュメントではなんとなくxUnit押しな感じ。
例題がちょうどCalculatorなのとやってることはMSTestと違わない(こだわりあるほどMSTestを使い込んでいない)ので、xUnitで行くことにしました。

2019/04/22(月)WebFormでDOMを扱う

ページ内にGridViewが複数あり、一番上のGridViewに表示されたセルのテキストをクリックすると、2番目、3番目のGridView内の同じテキストをハイライトしたい(テキストコピーしてCTRL+Fでページ内検索していたがコピーペーストが面倒)という非常にレアなシチュエーション。
WebFormでjQueryや他のライブラリ使うよりは直接DOMの配列ぐるぐる回した方が楽そう。
<script type="text/javascript">
    function highlightKeyword(keyword) {
        var tbls = document.getElementsByTagName("table");
        // 一番上のテーブルを除く全てのテーブルの全ての行の全てのセル内を置換
        for (var i = 1; i < tbls.length; i++) {
            for (var j = 1; j < tbls[i].rows.length; j++) {
                for (var k = 0; k < tbls[i].rows[j].cells.length; k++) {
                    var str = tbls[i].rows[j].cells[k].innerHTML;
                    // 既にタグが付いてるかも知れないので削除してから追加
                    tbls[i].rows[j].cells[k].innerHTML = str.replace('<span style="background: yellow;">', '').replace('</span>', '').replace(keyword, '<span style="background: yellow;">' + keyword + '</span>');
                }
            }
        }
    }
</script>

2019/04/14(日)ASP.NET WebFormのMenuコントロール その3

WebFormのテストプロジェクトに過去に試したものも統合しておこうとMenuコントロールを追加したら、Bootstrapのバージョン上げた(4.3.1)ためにデザインが崩れてまたやり直し…。

ここまでは順調
menucontrol.png


幅を寄せるをなぜかトグルボタンの位置がずれる
menucontrol2.png


メニューを開くと正常な位置に
menucontrol3.png


なんとなくあと一息、と言う感じだったのでメニューコントロール使わない正常パターンと使った時のずれるパターンでソースを見比べながら頑張りましたが違いが見つけ出せず。

menuコントロールの一番外側がdivになっていたので、CssClassプロパティにcollapse navbar-collapseをセットしていたのですがそれをやめ、divタグで囲んだらちゃんと表示されるようになりまた。
<nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
    <a class="navbar-brand" runat="server" href="~/">テスト用</a>
    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
        <span class="navbar-toggler-icon"></span>
    </button>
    <div class="collapse navbar-collapse" id="navbar">
        <asp:Menu ID="mainmenu" DataSourceID="SiteMapDataSource1"
            runat="server" 
            Orientation="Horizontal" 
            StaticDisplayLevels="2"
            StaticEnableDefaultPopOutImage="False"
            MaximumDynamicDisplayLevels="10" 
            EnableViewState="false"
            StaticMenuStyle-CssClass="navbar-nav mr-auto" 
            StaticSelectedStyle-CssClass="active"
            DynamicMenuStyle-CssClass="dropdown-menu" 
            IncludeStyleBlock="false" 
            SkipLinkText=""
            RenderingMode="List"
            StaticMenuItemStyle-CssClass="nav-link"
            DynamicMenuItemStyle-CssClass="dropdown-item">
        </asp:Menu>
    </div>
</nav>
OK キャンセル 確認 その他