ぽっとの陽だまり研究室 : 東海道新幹線のちょっとしたサービス(FMラジオが聞けるんですね)
http://potto.exblog.jp/3393145
知らなかった。
昔、東海道新幹線で東京から博多までいったことがあるが、正直きつかった。。
そのときこれを知っていればもう少し快適だったかもしれない。
私がよく使う新幹線は東北新幹線だが、やっているのかな?
今度、試してみよう。
ぽっとの陽だまり研究室 : 東海道新幹線のちょっとしたサービス(FMラジオが聞けるんですね)
http://potto.exblog.jp/3393145
知らなかった。
昔、東海道新幹線で東京から博多までいったことがあるが、正直きつかった。。
そのときこれを知っていればもう少し快適だったかもしれない。
私がよく使う新幹線は東北新幹線だが、やっているのかな?
今度、試してみよう。
YahooのWebサービスに、Yahooオークションが追加されたようだ。
Yahoo!デベロッパーネットワーク - オークションWebサービス
http://developer.yahoo.co.jp/auctions/
日本最大級のネットオークションなので、このWebサービスを使ったアプリケーションはいろいろ出てきそう。
まだ、検索はないけど。
文字列の空文字チェックはよくやる
if(nanikanomoji.Equals(string.Empty))
//なにかしらの挙動
空文字チェックをString.Equalsでやるべきかどうかは別にして、C#2.0を使うならこう書いた方がいいみたい。
if(string.IsNullOrEmpty(nanikanomoji))
//なにかしらの挙動
Visual Studio2005の新機能:コード分析を行うと、「IsNullOrEmptyを使ってよ」と警告がでる。
.NET Expert#02に特集が組まれていたのだが、最近まですっかり忘れていたもの。
私はまだまだプログラム暦が浅いので、私の作ったソースのコードレビューを行ってもらうと。。
でるわでるわ指摘事項。
「○○は、こういうイベントがあるからそっちでやったら?」
「このメソッドの名前、意味がわからん」
こんな調子で長時間かかってしまう。
そんな不器用プログラマにGotDotNetは、「FxCop」というコード分析ツールを公開してくれている。
FxCop Team Page
http://www.gotdotnet.com/team/fxcop/
これをインストールすると、Visual Studioにコード分析機能が付く。(Visual Studio2005はデフォルトで付いている)
これを行うと、静的にコードを実行してMicrosoftが出している「.NET Framework設計ガイドライン」にコードが則っているか分析する。
悪いところがあれば、すべて警告してくれる。
まぁ、逆に厳しすぎて警告がでないコードの方が少ないと思うが、
これをやれば少しはコードレビューの負担が少なくなるかもしれない?
| .NET Expert #02 | |
![]() | .NET Expert 編集部 技術評論社 2006-03-09 売り上げランキング : Amazonで詳しく見る by G-Tools |
久しぶりにNDocを使おうと思い、プロジェクトの出力にXMLドキュメントをつけてビルドしたら、かなりたくさんの警告が?
なんだろうと思ったら、プロジェクトの中にあるデータセットの自動生成される定義ファイル({例}DataSet1.cs)に公開されているメソッドやプロパティにコメントがないと言っている。
確認したら確かに、ついていない。
自動生成するクラスならせめて簡単なコメントをつけて欲しい。
手作業でつけるには、数が多すぎる!!
これは、Visual Studio2005でも改善されていない。
ASP.NETならGlobal.asaxも同じことが起きる。
これじゃあ、使えないじゃん。XMLドキュメント。。
ちなみに、Visual Studio2003だと、この警告文がおかしい
「c:\inetpub\wwwroot\dataset1.cs(22,18): warning CS1591: 公開されている型またはメンバ 'DataSet1' の XML コメントがありませんん。」
んん??
既にある(既存の)型付きデータセットをプロジェクトに追加する際、
Visual Studio2005では挙動が変わっている。
例えば、DataSet1.csとDataSet.xsdを追加する際
・VS.NET2003だと
追加しただけでは、DataSet1.csとDataSet1.xsdが関連づけられない。
つけるには、例えば
1.DataSet1.csをプロジェクトから削除
2.DataSet1.xsdのプロパティのカスタムツールに「MSDataSetGenerator」を指定
そうすると、DataSet1.xsdをデータセットと認識してDataSet1.cs等を生成してくれる。
・VS.NET2005
追加するだけでOK!
ちょっと、2005になってかしこくなった部分かな
コードスニペット補完を行うには、候補文字を入力してからTabを2連打!
IntelliSense オート コンプリートでコード スニペットを使用するには
1.Visual Studio IDE で、編集するファイルを開きます。
2.コード エディタで、コード スニペットを挿入する位置にカーソルを移動します。
3.コードに追加するコード スニペットのショートカットを入力します。
4.Tab キーを押し、もう一度 Tab キーを押して、コード スニペットを呼び出します。
MSDN(英語)に、Visual Studio 2005 Code Snippetsが置いてある。
Visual Studio 2005: Visual Studio 2005 Code Snippets
http://msdn.microsoft.com/vstudio/downloads/codesnippets/
早速、インストールしてみたが、非常に数が多いのであらかじめフォルダ毎に分けておいた方がいいみたい。
ちなみに、自分で作ったフォルダをコードスニペット用フォルダに指定するには、
ツール→コードスニペットマネジャ
で、追加を行う。
コードスニペットマネジャも言語毎に分かれているので、間違えないようにしないともう一度やる羽目になる。

どうでもいいけど、日本語MSDNもFireboxでサイドバーが崩れないようにして欲しい。。
コーディング規約というものがあるが、私の開発プロジェクトにも規約がある。
その中にこういった規約が存在する。
public partial class _Default1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
for (int i = 0; i < length; i++)
{
}
}
}
上記のようなカッコの使い方はせず、
public partial class _Default2 : System.Web.UI.Page {
protected void Page_Load(object sender, EventArgs e) {
for (int i = 0; i < length; i++) {
}
}
}
と書きましょう。と
ただ、VS.NET2005(2003もそうだが)のデフォルトはクラス_Default1になっているので、
_Default2のようにに書いても、自動整形が走ると_Default1に戻る。
これを_Default2にようにするには、もちろんツール→オプションである。
以下をいじる。
1.ツール→オプション→テキストエディタ→使う言語(C#とか)→書式設定→改行 を選択
2.いろいろチェックが入っているので、すべてはずす

IE7は、タグブラウズ機能を持つが、正式版の提供はまだだ。
β版をインストールして試してみるものいいが、またなんかあったときIE6に戻すのはめんどくさい。
そう思っていたら、Yahoo ToolBarの最新版にタグブラウズ機能を追加されていることを知った。
・米Yahoo、IEにタブブラウジング機能を追加する最新ツールバー (MYCOM PC WEB)
http://pcweb.mycom.co.jp/news/2006/03/28/101.html
今のこと、英語版しか出ていないようだ。
・Yahoo! Toolbar
http://toolbar.yahoo.com/
早速インストールしてみたら、確かにタグが付いた。
しかも、IE7β版のように「+Add Tab」付きで。

GoogleDesktop3の日本語バージョンが登場したので、早速インストールしてみた。
あるページを見ていたら、「Ctrlキー2回でクイック検索ができる」とあったので、やってみたら確かにできた。
私は常にブラウザを開いているので、そんなに重宝しないかもしれないが、フォントが大きいので、見やすいかもしれない。
これぐらいの大きさ(実物大)↓

今回新しく追加された機能のうち、「複数のコンピュータ上のデータ検索」はインストールしているマシンの性質上使わなかったが、この機能を知らないで有効にしていると、ある意味Winnyと同じだなと思う。
Web画面のテストなんかを行うとき、そのページのDOMの構造やエレメントの名前なんかがソースではなく画面上で見られると便利な場合がある。
そういうとき、今までは主にFireFoxの拡張機能(Web Developerとか)を使っていたが、IEでもそういったツールがあった。
・Internet Explorer Developer Toolbar(英語)
これをインストールすると、ページのDOM構造やHTMLエレメントの属性値の確認、イメージやクッキーの有効無効なんかがボタン1発でできるようになる。
今まで、Ajaxを使う場合にあった、こういう条件分岐がなくなる。
また、ActiveXを無効にされていた場合も、XMLHttpRequestが使えるようになる。
if (window.XMLHttpRequest) { // ネイティブで XMLHttpRequest をサポートしているブラウザ
var xmlHttp = new XMLHttpRequest();
} else if (window.ActiveXObject) { // Inetnet Explorer
var xmlHttp = new ActiveXObject("Microsoft.XMLHTTP")
}
まぁ、すべてのユーザーがIE7に変わるわけではないので、
この条件分岐は、まだ必要だろうが
ヴァイオリンとチェロのための協奏曲
| ブラームス:交響曲第2番 | |
![]() | アンチェル(カレル) チェコ・フィルハーモニー管弦楽団 ブラームス コロムビアミュージックエンタテインメント 2006-01-18売り上げランキング : Amazonで詳しく見る by G-Tools |
ASP.NET2.0に限った話ではなく、.NET FRAMEWORK1.1と2.0では、構成ファイルのAppSettingsの値の取得方法が異なる。
【1.1】
string val = ConfigurationSettings.AppSettings["KEYNAME"];
【2.0】
・ASP.NETだと
System.Configuration.Configuration config = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("/WebSite1"); //OpenWebConfigurationの引数は、そのアプリケーションのディレクトリ名を設定
string val = config.AppSettings.Settings["KEYNAME"].Value;
・windowsアプリだと
System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
string val = config.AppSettings.Settings["KEYNAME"].Value;
ちなみに、2.0を使った場合でも、ConfigurationSettings.AppSettingsは互換性の確保としていちおう残ってはいる。(obsolete属性)
ASP.NET2.0に新たに追加された、「OnClientClick」プロパティを使うと、buttonコントロールがレンダリングされ生成されたinputタグのonClick属性の値を設定することができる。
(例)
buttonコントロールのOnClientClickプロパティに「alert('OnClientClick');」をセット
生成後
<input type="submit" name="Button1" value="Button" onclick="alert('OnClientClick');" id="Button1" /></div>
なお、ASP.NET2.0より低いバージョンでは、buttonコントロールのAttributesを使用して、設定する方法がある。
Button1.Attributes.Add("onclick", "alert('add')");
せっかく、onClick専用のプロパティを作ってくれたのならば、alertでOKを押されてもPOSTBACKしないコードもレンダリング時に付加してくれるモードとかもあったらいいなと思うがそれはない。
VisualWebDeveloper2005でWebページを新規作成した場合、aspx側のHEADタグの属性がrunat="server"になっている。
デフォルトでこうなる↓
<head runat="server">
<title>無題のページ</title>
</head>
この状態だと、titleなどのタグはPage.Headerを使ってアクセスできるようになる。
Header.Title = "タイトルをコード側からセット";
ただ、HEADタグにアクセスする必要がない場合は、余計なレンダリング処理をさせないために、runat="server"は消しておいた方がいいかもしれない。(貧疎なプログラミング的発想?)
ちなみに、ASP.NET1.1で似たようなことをやるには、こんな感じ。
【aspx側(runat="server"をつける)】
<title runat="server" id="title"></title>
【コードビハインド側】
protected HtmlGenericControl title;
private void Page_Load(object sender, System.EventArgs e) {
if (!IsPostBack)
title.InnerText = "ページのタイトル";
}
Sorry. I'm so sorry. We can't ask you to forgive us. This is too cruel...
覚えておこう。
GotDotNet Japan 掲示板:cookie値->フォーム表示 で文字化け
見ている限り、.NET Framework2.0の不具合のように思える。
ここでやっているように、1バイト文字だけにしてCookieを読取・保存するのがとりあえずの回避法?
Ajax非互換性データベース
第5回 “どのブラウザでも動くAjax”を共有財産として育てよう
ブラウザのバージョンや種類が増える度に増えていく非互換性。Ajaxに限らずこういったものは最新の情報が欲しいもの。
去年は宇都宮で花見をやっていない。今年はやろう。
(?:)を使うと、グループ化されるがキャプチャされなくなる。
【(?:)を使わない場合】
string sample = "http://sample:8080/dsample/sample.html";
Regex rg = new Regex("(\\w+):\\/\\/([^/:]+)(:\\d*)?([^# ]*)");
Match m = rg.Match(sample);
//m.Result("$1")は http
//m.Result("$2")は sample
//m.Result("$3")は :8080
【(?:)を使った場合】
string sample = "http://sample:8080/dsample/sample.html";
Regex rg = new Regex("(?:\\w+):\\/\\/([^/:]+)(:\\d*)?([^# ]*)");
Match m = rg.Match(sample);
//m.Result("$1")は sample
//m.Result("$2")は :8080
//m.Result("$3")は /dsample/sample.html
//一番目のクラス(?:\\w+)はキャプチャされなくなる
string sample = "http://sample:8080/dsample/sample.html";
Regex rg = new Regex("(\\w+):\\/\\/([^/:]+)(:\\d*)?([^# ]*)");
Match m = rg.Match(sample);
Label1.Text = string.Format("{0}{1}{2}{3}", m.Result("$1"), m.Result("$2"), m.Result("$3"), m.Result("$4"));
//m.Result("$1") 「http」
//m.Result("$2") 「sample」
//m.Result("$3") 「:8080」
//m.Result("$4") 「/dsample/sample.html」
//m.Result("$0") 「http://sample:8080/dsample/sample.html」
お国が始めたブログ協会。眞鍋かをりはいない。
ドラえもんの「暗記パン」の現代版。
2006/03/01時点ではディレクトリーツリー機能のみ。
検索機能が出ると、いいな。
FOR...LOOP文を使わなくても、複数表にINSERTはできる。
