ページ

2003年9月20日土曜日

Revamping the RSS Bandit Application


Revamping the RSS Bandit Application



MSDNにRSS Banditの改良についての記事がありました。
#といいつつ、私はSharp Reader使ってるんですが(^^;

2003年9月19日金曜日

マイクロソフト MVP Night


マイクロソフト
MVP Night - 本格稼働した日本版 MVP プログラムのすべて



TechED横浜のときに行われたMVP Nightの記事です。
実は、私も「MVPの声」のところに載ってたりするんですが



# そういやここにMSMVPのことについて全然書いてなかったな(^^;

The .NET Show - Managed Code


The .NET Show -
Managed Code



例によって、まだ見てないんですが(^^;
Technobabbleのコーナーは33分間、Brad Abrams氏とAnders Hejlsberg氏のお話です。 Brad Abrams氏は、(CLRなどの)Lead
Program Managerだそうです。 Anders Hejlsberg氏は、知っている人は知っている、BorlandでTurbo PascalとDelphiを作り、Microsoftに移ったあとC#を設計したという、有名な方ですね。かなりおもしろそうです。
ちなみに、このThe .NET Showはtranscriptが表示できます。

2003年9月6日土曜日

GotDotNet Blogs


GotDotNet Blogs



C#、VS.NET、CLR、GotDotNet Workspaceなどなど.NETに関係するMicrosoftの方たちのblog集。Dr. GUIまで(^^
めちゃくちゃ盛りだくさん。つか、盛りだくさん過ぎて、まだほとんど読んでません。これからじっくり読んでいこう。

2003年8月28日木曜日

[INFO] .NET 関連の「サポート技術情報」 (Microsoft Knowledge Base) 資料の 検索キーワード


[INFO] .NET
関連の「サポート技術情報」 (Microsoft Knowledge Base) 資料の検索キーワード


こんなKBがありました。

Microsoft.com Web Services SDK, Version 1.0, for Visual Studio .NET 2003


Microsoft.com
Web Services SDK, Version 1.0, for Visual Studio .NET 2003



microsoft.comのWeb Service(MSDN、Technet、その他のmicrosoft.comのサイト)にアクセスできるようにするSDKだそうです。ただし、Version
1.0はテストの目的でmicrosoft.com/downloadsにのみ対応しているとのこと。
で、ちょこっとさわってみました。



microsoft.comのWeb Serviceにとっても簡単にアクセスできるようにするmanagedなクラスライブラリ、ドキュメント、それにサンプル(WindowsFormsアプリ、Webアプリ、RSSを作成するWebアプリ)が入ってます。
ただ、このサンプルを動かすにはWeb
Services Enhancements (WSE) 1.0 SP1 for Microsoft .NET
が必要です。それと、developer's tokenというのをもらっておいてapp.configやweb.configに書き込んでおく必要があります(developer's
tokenをどこでもらえるかはドキュメントに書いてあります)。あと、IISの仮想フォルダも自分で作ってあげる必要がありました。
これくらいでサンプルはさくっと動きました。
今はまだdownloadsだけなので 'ふ~ん' くらいですが(^^; これからどういう風に進化していくのかちょっとたのしみです。

2003年8月13日水曜日

Export Managed Code as Unmanaged


C# Cornerより
Export
Managed Code as Unmanaged



C#で作ったDLLはmanagedだから当然C++とかのunmanagedなものからは直接呼べない。COMとかとして呼び出す必要がある。
けど、ILを直接変更すればexportできるよ(だからunmanagedから直接呼べるようになる)。



という内容みたい(まだ読んでないんだけど(^^; 覚え書きとしてあげておこう(^^; )

2003年7月31日木曜日

Whidbeyの次のOrcas


Orcasってのは、サンファン諸島(San Juan Island)にあるオーカス島ってことみたいですね。 オルカ(しゃち)・ウォッチングができるってことなので、Orcasっていう島の名前もそっから来てたりするのかな?



どうもです>かおくさん

Profiling Managed Code with the CLR Profiler


MSDN TV(英語)より
Profiling
Managed Code with the CLR Profiler



CLR Profilerの解説というより「GCがいかに遅いか」という内容ですが、なかなかおもしろいです(もっとちゃんと英語が聞き取れれば、さらにおもしろいんだろうけど(^^;
)。
ついでに自動メモリ管理あたりも押さえておくべし。



訂正です。
上記の打ち消し線を入れた『「GCがいかに遅いか」という内容ですが』の部分ですが、これは不適切な表現でした。というか、このMSDN TVの中でそんなことは言ってません。
内容自体は、マネージドヒープとガベージコレクタがどんなふうに動くのかCLR Profilerやパフォーマンスモニタを使って調べよう、というようなものです。その例としてループの中でStringを+=で結合していくのと、StringBuilder.Appendを使って結合していくコードを取り上げています。もちろん、前者がヒープを多量に使う例、後者がヒープをあまり使わない、効率的な例です。
で、これを見て、「あんまりGCにお仕事をさせないように気をつけなくちゃいけないなぁ」と思ったもので、おもわず「GCがいかに遅いか」なんていい加減なことを書いちゃいました(というか、日本語としても間違ってますね(^^;
)。
コメントありがとうございました。

2003年7月30日水曜日

2003年7月16日水曜日

Web Services Enhancements (WSE) 2.0 Technology Preview


Web
Services Enhancements (WSE) 2.0 Technology Preview



.NET FrameworkにWS-Security、WS-Policy、WS-SecurityPolicy、WS-Trust、WS-SecureConversation、WS-Addressingの機能を追加します。
と言っても私もこれらの詳細はしりません(^^;
WS-SecurityなんかはOASISにsubmitしてるってことだけど、もうrecommendationと言えるようなレベルなんだろうか?誰か教えてください。

Attribute Based Programming - Extending Enums


GotDotNetのUser Samplesより
Attribute
Based Programming - Extending Enums



属性を使ったプログラミングです。
SqlParameterの生成時に必要な情報をenum DalParameterTypeの要素に属性で与えておくことによって一元的に管理できるようにしています。
やっぱり属性はおもしろいなぁ。

Interop Declarations for Windows.h


GotDotNetのUser Samplsより
Interop
Declarations for Windows.h



C#でWin32 APIを使おうとすると、引数とかを調べてDllImportやstructを書かなくちゃいけません。それを一通り定義しておいてくれたファイルです。こりゃ便利。

Dynamically invoke XML Web Services


GotDotNetのUser Samplesより
Dynamically
invoke XML Web Services



XML Web Serviceを使うときはVS.NETで「Web参照の追加」をするのが一般的ですが、この場合、その時点でプロキシクラスのソースが自動生成されます。このサンプルではそれを動的にやってしまおうっていうものです。コンパイル時にプロキシクラスを作るのではなくて、実行時にメモリ上にプロキシクラスを作ってしまおうってことです。
ServiceDescriptionクラスを使ってWSDLからコードをメモリ上に生成して、CSharpCodeProviderでコンパイルして、プロキシクラスのインスタンスを作ってるようです。なるほどねぇ。

2003年7月14日月曜日

おや、久しぶり


では、さっそく背景を花柄に...しませんって(笑)>りょんりょん

2003年7月8日火曜日

Borland C#Builder


ついに出ますか



Borland C#Builder

News Release

BlogXをInline Comment(勝手に命名)表示にする


このblogではコメントも一緒に表示してますが、とりあえず、そうするために改造した部分を上げておきます。ほんとはもうちょっとちゃんとまとめたいんだけど、あまり時間がないのでとりあえず



EntryView.ascx.csの188行目に



if (entryComments.Count > 0) {
    bool obfuscateEmail = SiteConfig.GetSiteConfig().ObfuscateEmail;
    HtmlGenericControl commentsView = new HtmlGenericControl("div");
    commentsView.Attributes["class"] = "commentview";
    foreach (Comment c in entryComments)
    {
        SingleCommentView view = (SingleCommentView)LoadControl("SingleCommentView.ascx");
        view.Comment = c;
        view.ObfuscateEmail = obfuscateEmail;
        commentsView.Controls.Add(view);
    }
    entryFooter.Controls.Add(commentsView);
}



と追加するだけです。
これだけだとコメントを追加するページでコメントが二重に表示されるのでCommentView.aspx.csの147行目からを



//foreach (Comment c in extra.GetCommentsFor(entryId))
//{
//    SingleCommentView view = (SingleCommentView)LoadControl("SingleCommentView.ascx");
//    view.Comment = c;
//    view.ObfuscateEmail = obfuscateEmail;
//    root.Controls.Add(view);
//}



のようにコメントアウト。
BlogXは結構きれいにascxとかにまとめられているので、これだけで出来ちゃいます。

Visual C# .NET Code Samples


Visual
C# .NET Code Samples



なんかサンプルがたくさんある。

MSDN Releases RSS Feeds


こんなのがあったんだ。



MSDN Releases RSS Feeds

2003年7月5日土曜日

BLOGROLLって何?


右側に出てるBLOGROLLってなんだろう?



ググってみると、どうやらリンク先のblogが更新されたかどうかわかるようになっているリンク、といったものみたい。けど、今のBlogXのこの部分の実装ってどうみても単にリンクをはってるだけにしか見えない。まだ未実装なのかな?
とりあえず、MVPな人のblogを入れてみた。



しかし、デフォルトでDon Box大先生のblogが入ってるのはどうしてなんだろう(^^

WinBlogXも日本語OKにしてみた


WinBlogX(BlogXに書き込んだり設定を変えたりするためのWindowsクライアント)は日本語がダメダメ。なので、ちょっといじってみた。




  • Edit Server Filesダイアログの右側のテキストボックスが化けるのは単に英語のフォントになってるから。MS UI GothicあたりにしておけばOK。


  • BlogEditorのHTML表示は、WinBlogXControlsのほうのHtmlEditorクラスのフォント。HtmlEditor.csをデザインで開いて、「HTML」タブをクリックして下の白いところ(HTMLを表示するところ)のフォントをMS
    UI Gothicあたりに しておけばOK。


  • メインの画面(SimpleBrowser.cs)とBlogEditorダイアログのHTML表示が化けるのは同じ原因。WinBlogXControlsのほうのHtml\HtmlControl.csの642行目くらいの
    IntPtr hglobal = Marshal.StringToHGlobalUni(content);

    をコメントアウトして変わりに
    IntPtr hglobal = Marshal.AllocHGlobal(content.Length
    * 2 + 2);
    Marshal.Copy(new Byte[] { 0xff, 0xfe }, 0, hglobal, 2);
    char[] buf = new char[content.Length];
    content.CopyTo(0, buf, 0, content.Length);
    Marshal.Copy(buf, 0, new IntPtr(hglobal.ToInt64() + 2), content.Length);


    としてやる。
    簡単に言うと、これは文字列からIStream*を作って、そいつをIEのIPersistStreamInitに流し込むんだけど、日本語が含まれているときはちゃんとBOMをつけてやらないとダメってこと。



一応これで日本語もOKみたい。けど、ちょっと使い難いとこもあるなぁ。

BlogXを動かしてみました

河端さんに影響されて(^^)BlogXを動かしてみました。

CSSやらHTMLやらを自分好みに修正して、あとコードもちょっと修正しました。とりあえずはこんなもんでいいでしょう。