新しもの好きプログラマの耳より情報ブログ

仕事でもあるプログラミングについて役に立ちそうな情報を発信していこうというブログです。役に立たなそうな情報はfacebookで。

テスト用redmine環境を作ってC#のスクリプトをテストするまでが、楽々だったのでちょっと感動した

redmine APIを使ったちょっとしたスクリプトが欲しいと思い立つ。慣れてるC#で書きたい。 とはいえ、さすが本番環境で試すわけにはいかないので、とりあえずテスト用のredmine環境が欲しい。Azureアカウントなら持ってる。 こう思ってからスクリプトを書いて…

PowerAppsで体温記録アプリを作ってみたらすごく手軽だったのでお勧め

日々の体温を記録する必要が出たので、Office365ライセンスのPowerAppsで入力アプリを作ってみた。 入力画面を開くと、現在日時とユーザー名を取得してデフォルト値として入力してくれる あとは体温だけ記入して保存ボタンを押せばOK 入力したデータは、自分…

Azure Pipelines等でfindコマンドが「No such file or directory」になる場合の対処方法

次のようにパイプでfindコマンドに文字列を渡した場合に、なぜか「No such file or directory」が返ってくる場合がある。 dotnet tool list -g | find "dotnet-script" >NUL ↓ find: 'dotnet-script': No such file or directory Azure Pipelinesのscript Ta…

TaskDialogにファイルパスを入れると...で省略される問題の原因と対処方法

TaskDialogは長い文字列を自動で折り返す機能を持っているが、これはスペースが無いと折り返せないようだ。 スペースなしの代表的な文字列「ファイルパス」を入れてみると、長い場合はこのように...で省略されてしまう。 スペースを入れなかった場合の画面 …

Yaml.NETのデシリアライズで、対応するメンバが無い場合に例外を出さず処理する方法

以前の記事で書いたとおり、Yaml.NETのデシリアライズは対応するメンバが無い場合に例外を出す処理になっている。(YAMLファイルにある値が、デシリアライズ先のクラスのメンバに無い場合) この処理は、データを増減させると前方・後方互換が無くなるので、…

急にVisualStudioのインテリセンスが異常な動きをした場合、Resharperのキャッシュが原因かもしれない

結論から言うと、Resharperで対象ソリューションのキャッシュを削除する事で解決した。 https://pleiades.io/help/resharper/Configuring_Caches_Location.html VisualStudioを使っていたら、急にインテリセンスの候補が表示されなくなった。マウスでポイン…

SlackとTeamsの使い分け方 社内で併用してみて考えたこと

ビジネスチャットツールの中で比較的メジャーな2つ、SlackとTeamsを社内で使っている。この2つは似ているようでいて、使ってみるとかなり違いがある。社内でも使い分けに悩むという声が上がっているので、違いをまとめてみようと思う。 まとめ Teamsはタスク…

XML,JSON,YAMLの主要シリアライザで、クラスメンバが増減してもデシリアライズできるか調べてみた

結論 OSSを導入できる環境ならJSON.NETで問題なく実現できる。.NET Frameworkだけで使用可能なXmlSerializerも、扱いが少し面倒だが同等に実現できる。 YamlDotNetは、増加は問題ないが減少で問題が出る。 調べた内容 クラスの中身を文字列化してファイル保…

C#で不要な戻り値やout引数を捨てるには_(アンダーバー)を使ったほうが良い

C#で、関数の戻り値やout引数が不要なので捨てたいという場合がある。 今まではnotUseのような適当な名前でダミーの変数を宣言していたが、C# 7.0からはもっと良い書き方が登場していた。 _(アンダーバー)を書けばよい。 これなら型指定もいらないし、書き…

JSON.NETのデシリアライズは、変数が増減していた場合も使える

この記事の内容に加えてXML・YAMLも試してみた、より新しい記事はこちら。 http://suusanex.hatenablog.jp/entry/2019/09/23/171255 JSON.NETのシリアライズ・デシリアライズを採用しようとして、1つ気になる点があったので実験した。.NET 4.5.2 + Newtonsof…

横浜駅近くでIT系技術書のある本屋

技術書もビジネス書も何でも揃っていたブックファースト(旧あおい書店)が、ダイエー横浜西口店と共に閉店してしまった・・・。難民となったので、代わりになる本屋を探してみた。 結論 ソフトウェア工学系なら紀伊国屋そごう横浜店が強い。言語・フレーム…

VisualStudioの完全なアンインストール方法を教わった

VisualStudioのインストール状態がおかしくなってアンインストールもできなくなり、MSサポートに相談した。 完全にアンインストールする手段があると教わったので、メモもかねてブログに残しておこうと思う。 次のツールがあり、これを使うと完全に削除でき…

C#のReSharperで、DI等のメンバ変数代入が楽になってストレスが減った

ReSharperで日々のコーディングが便利になっているが、実に多機能でまだ使い切れていない。 使っていて「お、これはいいな」と思ったものを1つ紹介しよう。 コンストラクタに引数を受け取り、それをメンバ変数に代入して保持しておく。DIも含めて、そういう…

C++/CLIも含めた.NET CoreやStandardの呼び出し状況(現時点)

.NET CoreやStandardがどんどんバージョンアップしているが、既存のコードの保守で組み込むには.NET Frameworkとの共存がどうなっているかがポイントになる。 C#に加えて、C++/CLIとの組み合わせでどうなるかを調べてみた。 https://www.slideshare.net/keit…

Git for WindowsでAzure DevOpsへアクセスする時、Azure ADの認証画面が出ない問題の解決方法

Web上でも事例が見つからない問題で悩み、一応解決方法を見つけたのでブログに書いておく。 Git for WindowsでAzure DevOps(旧VSTS)のgitリポジトリへアクセスした場合に、Azure ADの認証ダイアログが出ずに二要素認証ができないという問題が起きた。一部…

AIがプログラマの新技術習得まで助けてくれる時代になったようだ

VisualStudioを使ってる人ならおなじみIntellisenseについて、AIで推奨を出してくれる機能を追加するとBuildで発表されていた。Intellicodeという名前で、まだプレビューだがすでに使えるようだ。 どんなものかお手並み拝見と思っていたが、次の記事を見て驚…

std::threadとラムダ式を使ってみたら、ネイティブC++がいつの間にかだいぶ便利になってることに今更気づいた

いまさら感があるが、std::threadの便利さに恐れ入ったので記事を書く。感覚的には、C#のSystem.Threading.Thread+ラムダ式と同じくらいの感じで高速に書けそう。使ってる人にとっては常識的な話なので、そういう人はスルーしてください。 ごく簡単な処理を…

外部設計の品質の測り方について、良い視点をもらった

プロジェクト管理の勉強会で印象に残った話。 外部設計の品質の測り方 要件ごとに、粒度と網羅度で採点する 粒度は、FP算出できる程度まで細かくなっているかどうか 網羅度は、その粒度において要件の内容を網羅するだけの記述があるかどうか これらの観点を…

Xamarinを使う前にCordovaも検討したほうが良さそう

ちょっと勉強会でクロスプラットフォーム開発の話を聞いてきたので、ポイントをまとめてみる。私はC#にかなり慣れているのでまずXamarinで一度作ったことがある。WCFも使えたので共通コード部分はかなり書きやすかった印象がある。しかし一般的にはXamarinは…

JenkinsをWindowsサーバーに入れるときに引っかかった点

Jenkinsを新しくWindowsサーバーにインストールして、最新版で新しいプラグインを使おうと考えた。 その程度のことなのにいくつも引っかかる点があって結構時間がかかってしまったので、気を付けるべき点としてまとめておこうと思う。 なお、インストールはJ…

コーディング慣れしていると常識だが、初心者には意外と分からない点

チームメンバーの一部の書くコードがトラブルを出しすぎてまともに商用に使えないレベルなので、半年ほど徹底的なコードレビューに取り組んできた。 どの指摘も「プログラマならできて当たり前」と思っていたのであえて教えたりしていなかったが、どうやら当…

C#6.0をさっそく使いたくなったポイント

C#6.0の記事をMSDNで見たところ、細かいところでコードを書きやすくなる便利な改善が入っていて俄然楽しみになった。特に気になった機能をいくつか簡単なコード例付きで説明する。間違っているかもしれないので、原典は最後にリンクするURLを見て欲しい。

ASP.NET Identifyでパスワード0文字を許容する方法

ASP.NET Identityのユーザー情報に既存のDBのレコードを使うものを作ってみた。この方式だと、ロールごとにページのアクセス権を管理したり一定時間でセッションをタイムアウトしたりといった機能をASP.NET Identityがよろしくやってくれるので独自にユーザ…

ASP.NET MVCのRazorでMicrosoft AJAXを使うには依存スクリプトの明示的な読み込みが必要

ASP.NET MVCのRazorでMicrosoft AJAXを使ってみようとして、「部分更新が動かないが、特にエラーも出ない」という困った状況になってしばらくググる羽目になったので、動かすまでに必要なことの情報をまとめておく。使用環境はVisual Studio 2013 Update3。 …

ASP.NET MVCでjsファイルをViewと同じフォルダに置きたければ工夫が必要

ASP.NET MVCを勉強中で、ちょっとしたサンプルを作っている。その中で、JavaScriptを外部ファイルとして追加する時にファイルが見つからずに読み込めないという意外な現象ではまったので紹介する。 MSDNの解説などにある通りに「jsファイルは全部Scriptフォ…

C#で作るWebアプリの選択肢と、xbap形式の使いどころの無さ

C#で作るWebアプリの選択肢として、完全信頼のxbap形式というものがある。 これを仕事で使ってみた感想と、Webアプリのその他の選択肢との比較をまとめてみた。 xbap形式(WPF)を選択肢に含めた比較情報は少なかったので、役に立つのではないかと思う。 ただ…