studio Odyssey



スタジオ日誌

日誌的なもの

2017.11.04

 ASP.net Core 2.0で、swaggerつかって、クライアント側で、REST APIを使って、Client Proxyを作って、Windows Forms でいろいろする。

 いや、まぁ、WPFでもいいですし、UWPでもいいんですけどね。あと、今回ご紹介する方法は、swagger.json のURLをAPI毎に任意にわけるとか、そんな感じの事もします。けども、swaggerの使い方とかは触れないので、swaggerの使い方を知りたい人は回れ右で、他のもっと親切なサイト様へどうぞ。

 でで。

 やりたいことしては、REST APIを使って、Client Proxyしたいので、まずは、ASP.net Core 2.0 で、Web APIサイトを作りますですます。あ、Visual Studio 2017です。15.4.2です。当然、.net Coreあたりの開発はインストールしておいてくださいね。Azure系のも必要です。(REST API Proxyを作るのに使うんだっけな)まぁ、最新にしておけって事ですよ。あ、C#です。

続きを読む <ASP.net Core 2.0 で、Web API とClient Proxy>

2012.05.06

げー、二年前かぁ

Written by
しゃちょ
Category
C#
TRPG
プログラム
Tags

 ちょこ@DXをちょっと直したけど、初めてこれがこのブログに出たのって、2年も前なのね。

 もう、バージョンアップだろ。つーか、IRC周りとか、チョコアでなくて、SmartIRC.netとかで実装すればいいじゃんっていう気もする。面倒だからしないけど。

 つーか、コード汚いし、バグだらけだし。

 これって、確か、DataGridで並び替えとか、ドラッグアンドドロップとかのテストのために作ったんだよなー。仕事の技術検証のついで。フレームワークも2.0だから、Func<T>ないし。今なら、ラムダ式で書いちゃうよっていうのが散見される。まー、何も考えずに書いたしなー。

 ちょっと直したコードとexeは、ブログのどっかにある。exe持ってく時は、上書きする前に、dxdb.mdfをどっかに待避しておいてください。戻せば、データ消えないよ。

 まぁ、別に自分はこれで困らないので、困ったらその時考える。それこそ、HTML5で書いた方が、タブレットで使えていいよね。あ、IRC連動どうすんだ...普通には、socket通信できねーだろ。結局何かコンポーネント必要になるなら、作るのめんどくせぇし、いらねーや。

2011.12.31

 この記事は大分古いので、C# 8.0以降が使える環境であれば(.net core 3.0以降)、interfaceのデフォルト実装を調べた方が幸せになれます。


 「C#でMix-inってできねーの?」と言われた。

 C#は、多重継承とか、Mix-inみてーな事はできねー言語なんだよ!言語作成者がそういう事やらせたくないって思ってるからな!

 なんだよ、つかえねー!と思われると嫌なので、「Mix-inっぽいことなら出来る」と答えておいた。ぽいことは出来る。C#3.0以降になっちゃうけど、そろそろ、新規でC#2.0の仕事はないだろ。

 というわけで、C#でMix-inぽいことに挑戦してみた。というのも、「できる」とは知っていても、使ったことがなかったから。だって、必要になったことないもん!

続きを読む <「C#でMix-inってできねーの?」と言われた>

 .netプログラミングの話。

 ToolStripControlHostの中に入れたButtonのアクセラレーターキーは、ToolStripに入っていると、フォーカスのあるコントロールのValidating等のイベントが起こらない。

 考えてみれば当たり前なのだが、マウスクリックだとフォーカス移動が発生するので、起こるんだよねー。なかなか気づかない。

 どうすればいいのかというと、

protected override bool ProcessMnemonic(char charCode)
{
   if (this.CausesValidation && System.Windows.Forms.Control.IsMnemonic(charCode, this.Text))
   {
      this._defaultButton.PerformClick();
      return true;
   }
   return base.ProcessMnemonic(charCode);
}

 こんな感じに、ProcessMnemonicをオーバーライドして、処理してあげればいい。_defaultButtonは、ホストされているコントロールね。

 PerformClickも同様なので、必要であればnew で再定義して、同じようにホストされている側を直接呼んであげればいい。

 なかなか気づかないよなー。普通のボタンなら、ちゃんと起こるし。

2010.07.28

 非バインドのDataGridViewで、普通にAddしていくと、すげー遅いんで、なんとか描画を止めて追加とか出来ないかなぁと思っていろいろ探していたんだが、あんまりいい方法がない。

 初心に返って、RowsのAddRangeで追加すればいいのだが、これが、params DataGridViewRow[] なんだよね。

 どうやって、DataGridViewのカラムの状態を作るのかわからなかったのだが、ちょっと調べてみると、DataGridViewRowに、CreateCellsというメソッドが。

 引数にはDataGridViewを取るんだけど、これで、カラムの状態がコピーされるのね。Alternateもちゃんと行くし、これでAddRangeで追加すれば、かなり高速。

 以下、コード。こんな書き方しないだろうけどね。

続きを読む <非バインドのDataGridViewで高速に行を追加する>

2010.07.20

ちょこ@DX

Written by
しゃちょ
Category
C#
TRPG
Tags

 フィードバック部分の修正をしました。(ChocoatDX

 以下、修正されていないです。

 

続きを読む <ちょこ@DX>

2010.07.06

ちょこ@DX3をちまちまと

Written by
しゃちょ
Category
C#
TRPG
Tags

chocoatdx3_1.gifちょこ@DX3をバージョンアップ。

これで、エフェクトのコンボ周りも使えるようになったので、だいたい、機能的に使えるかなぁ。

利用可能なexeはここ。 ChocoatDX.zip

ソースコードは、相変わらず、ブログのどっかにあるよ。(トラックバック飛ばしている先にある)

まぁ、説明はないけど、見ればだいたいわかるんじゃないかなぁと思う。

実際、これでまだセッションしてないので、実際にセッションしてみないと、使い勝手がいいのかどうかはわからないけれど。

2010.06.22

UPnPサンプル

Written by
しゃちょ
Category
C#

ごく一部から、ちょこ@DCC Sendの、UPnPの部分、まぁ、ポートを開く部分ですが、ここのコードの解説をして欲しいという話があったので、UPnPのコードの話です。

 キーワード的には、C#、ポート、開く、とかポートマッピングとかかなぁ。

 まふ、C#のプログラムに興味のない方は回れ右。とりあえずコードだけあればいいよと言う人はこちら。(UPnPSample.zip)

それ以外の方は、続きを読む。

続きを読む <UPnPサンプル>

2010.06.05

ちょこ@DX

Written by
しゃちょ
Category
C#
TRPG
Tags

chocoatdx.gifっていうかですね、そもそもちょこ@は、CHOCOAとの連動とか、UPnPのテストとか、NAT変換の実装とか、そんな事のために作ったんじゃないわけですよ。

ダブルクロス3rdで、オンラインセッションして遊ぶときに、ダイスの数を数えられない女がいるから、そのサポートツールを作りたかっただけなんですよ。

オイ、誰だ、「また、計算できない女か」とか言った奴は!そこに直れ!ごめんなさい。

続きを読む <ちょこ@DX>

2010.06.01

ちょこ@DX

Written by
しゃちょ
Category
C#
TRPG
Tags

 DX用のちょこ@拡張に機能追加というか、それっぽく動くようにしました。

 だいたいいいかな。

 あとはコンボデータとセーブと、細かい調整だけど、面倒だなぁ、この辺。セーブは、SQL Server Compactにするかも。仕事で使いそうなので、テストもかねて。

 ソースコードは上げ直したので、ブログのどっかにあるよ。

1  2