中年プログラマーの息抜き

ブログをはじめました。気の向くままにプログラム関連ネタをメモしていきます。

ASP MVCのViewでコントローラー名やアクション名を取得

f:id:tm-b:20200929012602j:plain

 

はじめに

Razor(レイザー)のレイアウトファイルにページのタイトルなどの出力処理をまとめたいと思い調査したメモ

 

実行中のコントローラー名を取得

@Url.RouteCollection.GetRouteData(Context).Values["controller"]

 

実行中のアクション名を取得

@Url.RouteCollection.GetRouteData(Context).Values["action"]

 

画面タイトルなどデータベースで管理してコントローラーからビューに渡す方法をよく使いますが、アクション数が100個程度であれば、レイアウトファイル内で分岐処理をするほうがお手軽、、まあ十分かなと思い実装を試しました。

 

モデルを介さない値はViewに渡さない

 

Visual Studio Code(CL.exe)を使って、コンソールアプリ(C,CPPファイル)をデバッグ

f:id:tm-b:20200929012602j:plain

はじめに

先日に「Visual Studio Code」の「C/C++extension」をインストールしました。dbgやwindbgなどではなく「microsoft c++ build tools」だけでデバッグ環境を作ってみました。

 

環境変数を追加

動作環境により違うとは思いますけど、今回はこんな感じで設定しときます。

・PATH

C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.27.29110\bin\HostX86\x86

 

・INCLUDE

C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.27.29110\include

C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\ucrt

C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\shared

C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\um

C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\winrt

C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\cppwinrt

 

・LIB

C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.27.29110\lib\x86

C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\ucrt\x86

C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x86

 

VSCode」で目指す環境

実はデバッグ自体はできなくてもよかったんですが、F5ボタンから実行できるようにしたかっただけです。。。CLオプションも適当ですので、あしからず。。

公式ページに記述の説明があったので参考にしました。

Configure Visual Studio Code for Microsoft C++

 

launch.json

{
"version": "0.0.0",
"configurations": [
{
"name": "CPP Launch (console)",
"type": "cppvsdbg",
"request": "launch",
"preLaunchTask": "debug-build",
"postDebugTask": "debug-clean",
"program": "${workspaceFolder}/.debug.exe",
"args": [],
"cwd": "${workspaceFolder}",
"stopAtEntry": false,
"externalConsole": false
}
]
}

 

task.json

{
"version": "2.0.0",
"tasks": [
{
"label": "debug-clean",
"type": "shell",
"command": "del",
"args": [ ".debug.*" ],
"group": "none"
},
{
"label": "debug-build",
"type": "shell",
"command": "C:/Program Files (x86)/Microsoft Visual Studio/2019/BuildTools/VC/Tools/MSVC/14.27.29110/bin/Hostx64/x86/cl.exe",
"args": [
"/Fd:.debug.pdb",
"/Fe:.debug.exe",
"/Fo:.debug.obj",
"/Zi",
"/Od",
"/MD",
"/std:c++17",
"/arch:SSE2",
"${relativeFile}"
],
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": "$msCompile"
}
]
}

 

Build Tool

Build Tool(Build Tools for Visual Studio 2019) はここの下のアコーディオンVisual Studio 2019 のツール」を広げると探せます。

Download Visual Studio 2019 for Windows & Mac

 

まとめ

これで、F5からデバッグ実行可能になります。上で環境変数を設定したので、コマンドプロンプトからc++コンパイル。便利。

Visual Studio Code(VSCode - .NET Core無し)を使って、コンソールアプリ(C#CSファイル)をデバッグ

f:id:tm-b:20200928174150j:plain

 

はじめに

先日に「Visual Studio Code」の「C#extension」をインストールしました。その過程で「.NET Core ランタイム」がインストールされていないと怒られたのですが、開発用PCではないし、資料を作るために少しコードを書いて動作確認したいだけだったので、結局「.NET Core」はインストールしませんでした。

 

VSCode」起動するたびに警告

The .NET Core SDK cannot be located. .NET Core debugging will not be enabled. Make sure the .NET Core SDK is installed and is on the path.

 

解決方法:File > Preferences 画面で「User > Extensions > C# configuration」をたどり「Suppress Dotnet Install Warning」をチェックする。

https://qiita.com/Kosen-amai/items/badd7992228d7f2943ba

 

VSCode」で目指す環境

「.NET Core」をインストールしない(「.NET Framework」はインストール済)と、「デバッグ(実行やブレークポイント停止)」が動いてくれない。 何回も言うのですが、資料を作るために少しコードを書いて動作確認したいだけなので、プロジェクトすら不要なのです。1ファイルを「ビルド&実行&デバッグ」できればそれでよいのです。。。ということで、そういう環境のための設定はこんな感じで! (開発には向いてないと思いますが、その時は「Visual Studio」で十分です。)

 

launch.json

{
    "version""0.0.0",
    "configurations": [
        {
            "name"".NET FW Launch (console)",
            "type""clr",
            "request""launch",
            "preLaunchTask""debug-build",
            "postDebugTask""debug-clean",
            "program"".debug.exe",
            "args": [],
            "cwd""${workspaceFolder}",
            "console""internalConsole",
            "stopAtEntry"false,
            "internalConsoleOptions""openOnSessionStart"
        }
    ]
}

 

task.json

{
    "version""2.0.0",
    "tasks": [
        {
            "label""debug-clean",
            "type""shell",
            "command""del",
            "args": [ ".debug.pdb"".debug.exe" ],
            "group":"none"
        },
        {
            "label""debug-build",
            "type""shell",
            "command""C:/Program Files (x86)/Microsoft Visual Studio/2019/BuildTools/MSBuild/Current/Bin/Roslyn/csc.exe",
            "args": [
                "/pdb:.debug.pdb",
                "/out:.debug.exe",
                "/debug+",
                "/debug:portable",
                "/optimize-",
                "/langversion:9",
                "/platform:anycpu",
                "${relativeFile}"
            ],
            "group":"none",
            "problemMatcher""$msCompile"
        }
    ]
}

 

Build Tool

Build Tool(Build Tools for Visual Studio 2019) はここの下のアコーディオンVisual Studio 2019 のツール」を広げると探せます。

Download Visual Studio 2019 for Windows & Mac

 

まとめ

これで、F5からデバッグ実行可能になります。pdoをクロスプラットフォーム用に作成するのが大切!(/debug:portable)、あとプロジェクトファイルを作らないためMSBuildも不要(RoslynのCSCで十分)