Karakuri.com

ベンチャー企業で働くソフトウェアエンジニアの技術録

WPFやXAMLで画面やウインドウ、ページが表示されたときに自動で処理をスタートさせる方法

WPFにおいてページやウインドウが開かれた時に自動で処理を開始したいときって結構あると思います。しかし意外と最適解が探しても見つからず、苦労したので今までの試行錯誤で得たノウハウを書き残しておきます。

ViewModelのコンストラクタで処理する

最初にやりがちなのはViewModelのコンストラクタで最初に実行する処理のメソッドを呼んでしまう方法です。

public ViewModel()
{
     Start();
}

private void Start()
{
     ....
}

これだとインスタンスを作るときにStartメソッドが走るので、Startメソッドが終了するまでインスタンスの生成が終わらず、当然終わるまではViewとのバインディングも実行されないという状況に陥ります。

var ViewModel = new ViewModel();

結果、ページやウインドウが開かれたときに処理は終わってしまっているわけです。ただ、内容によってはそれで表示されて実行されたように見える場合もあるかもしれません。最悪なのはViewからのコマンド待ちなどがある場合で、フリーズしてしまうこともあります。

続きを読む

C#と.Net Frameworkを使ってPem形式の秘密鍵や公開鍵をXML形式にして暗号化や署名する方法

会社にはRailsエンジニアの方が多いので、技術や仕様がそっちに引っ張られることが多い環境にいます。最近は会社にも馴染んでそうでもなくなってはきましたが。そんな中、通信の暗号化でクライアント側で暗号化するよう要請が。そこで渡されたのがPem形式の鍵。しかし.Net Frameworkはそのままでは使えません。これをXMLにしないと…。でもどうやって?

コンバーターサイトを使って変換する

まず検討したのが、もらった鍵を変換して使う方法。変換して取得したXMLをクライアントで保持すればいいですね。ただ、鍵を得体の知れないサイトに送信するというのは気持ち悪いです。公開鍵ならまだしも、秘密鍵は尚更躊躇しますよねえ。。。
RSA Key Converter - Superdry Developer

続きを読む

Karakuri.comについて

著者について

福岡県生まれ育ちの男の子です。大学、大学院ともに情報工学と生物学を専攻し、卒業とともに神奈川に移住してきました。神奈川に移住してからは機械メーカーでソフトウェア開発者として産業用ロボットの制御プログラムやそれを作成するCAMを開発していました。開発業務はシステムエンジニアリングがメインでしたが、最後の1年は数十年積み重ねられた負の遺産のリファクタリングを中心としていました。

前述の機会メーカーに4年勤めたあとは、入社時点で社員15名程度のFintechスタートアップにアプリケーションエンジニアとして転職しました。現職ではWindowsタブレットで動作するアプリケーションの開発を行なっています。業務範囲はアーキテクチャ設計からドメイン設計、XAMLのコーディングからビジネスロジックの実装、各種デバイスの制御まで全て行なっています。各種デバイスというのは、サーマルプリンターやバーコードリーダー、クレカリーダーやんNFCリーダーなど多種多様です。入社数ヶ月で前職のコーディング量は超えたと思います(笑)。使用言語はC#で開発環境は.Net Framework, WPF, VIsual Studioです。UWPやXamarinで開発リソース不足の打開を図りたいのですが、先に書いたデバイスがデスクトップアプリにしか対応していない場合も多く、やむを得ずWPFアプリケーションとして開発を続けています。

続きを読む