Mac OS XでASP.NET 5開発環境構築(with Visual Studio Code)

MicrosoftからASP.NETがオープン化されてしばらく経ちました。前々から興味があったので、試しに開発環境構築をしてみます。

ASP.NETは昔は、Windows ServerのIIS上でしか動作せず、業務系のアプリケーション開発でよく使われていそうなイメージがあります。(その程度の知識しか持ち合わせていません…)

しかし、Windows Azureが登場してから、一気にASP.NETを利用する敷居が下がったのではないでしょうか?これまでオンプレミスのみで動作していたところから、クラウド化によってWindows Serverの利用が容易になりました。そして、ASP.NETのオープン化やVisual Studio Codeの様な、LinuxやMac OS Xでの開発環境を提供したことで、これからのWeb開発の選択肢にASP.NETが1つ加わったのではないかと思っています。

これまで、Web開発にはRuby on Railsをずっと使ってきました。最近は業務系のWebアプリケーション開発をよく行っているため、案件によっては社内サーバにデプロイする可能性も増えています。そこで、クラウド上(Windows Azure)とオンプレミス上(Windows Server)のどちらにもデプロイが行いやすい、ASP.NETを採用できないか考えていました。

正直なところ、Visual Studio自体は素晴らしい開発環境だと思うのですが、Windowsの使い勝手が悪く、その点で敬遠していました。Visual Studio Codeも公開され、いよいよ採用のチャンスかなと考えています。

それでは、本題の開発環境構築へ。

Continue reading

HttpWebRequestのレスポンスが遅い

C#でHttpWebRequestを使ってWebAPI通信をしようとしていたのですが、リクエストの発行が異常に遅い。ローカルネットワークのサーバとの通信に5秒ぐらい要しています。

なんでかなーと思って調べたら、デフォルトで自動的にプロキシを検出をしているようです。

HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://x.x.x.x/hogehoge");
 req.proxy = null;

proxyプロパティにnullを放り込んでおけば良いみたいです。
http://kakikukekou.blog83.fc2.com/blog-entry-497.html

C#.NET フォームコントロールのプロパティをまとめて変更する

.NETのフォームアプリで例えば,

textBox1.Text = "";<br>textBox2.Text = "";<br>textBox3.Text = "";<br>textBox4.Text = "";<br>textBox5.Text = "";<br>

という部分があったとします。(ただし親フォームは同一)

わざわざと思いますが,こういったシーンが出てきたときに一々書いたほうが分かりやすいかもしれませんが,1つだけ見落としていたりということがありがちです。

今回はこのようなコードの短縮(?)コードをメモします。

foreach (Control control in tableLayoutPanel1.Controls)<br>{<br>    if (control.GetType() == typeof(TextBox))<br>    {<br>      control.Enabled = true;<br>    }<br>}<br>

というコードになります。

今回の場合は「tableLayoutPanel1」に属する子コントロールの中から,「TextBox」の「Enabledプロパティ」をtrueにする場合です。

この時に注意する点があります。

  • if文で条件分岐しないと,同じ親コントロールに属するButtonとかLabelとかも変更される
  • 親フォームというのは,子フォームから見て1つ上のフォームのこと
1つ気になったのは,同じ.NETなのにVBでは
For Each Control control In tableLayoutPanel1.Controls Then<br>    If control.GetType() Is GetType(TextBox) Then <br>      control.Enabled = true;<br>    End If<br>Next<br>

と書くのですが(手入力なので合ってるだろうか・・・),C#だとGetTypeメソッドが使えなくて「あれ?」ってなりました。
VBとC#の根本的な違いなんですかね???
僕は詳しくないのでわからないのですが。。。

以前にVBで書いたことがあったので,その辺でちょっと突っかかりました。

さらに詳しくは,このページが参考になります。
「Visual Basic 中学校」
http://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard20.htm