新しいコミュニティ記事の紹介 -「The Power of Custom Workflow Activities (Part 2)」(英語) (Beth Massi)

水曜日に、Windows Workflow に関する Maurice de Beijer の記事の第 2 部を VB Developer Center (英語) に公開しました。「The Power of Custom Workflow Activities (Part 2)」(英語) で、Maurice はワークフロー アクティビティの開発のさらに詳細な面について取り上げています。 ぜひご覧ください。  -Beth Massi、VS コミュニティ  投稿 : 2008 年 4 月 14 日午後 2 時 18 分 VB チームの Web ログ – http://blogs.msdn.com/vbteam/archive/2008/04/14/new-community-article-the-power-of-custom-workflow-activities-part-2-beth-massi.aspx (英語) より

1

ウィンドウの位置を変更する方法 (Matt Gertz)

“パジャマプログラマ” をサポートする 在宅勤務はすばらしいことです。環境にやさしい人でありたい私としては、現実的に実行できる場合は心から支持したいと考えます。私の現在の仕事は、人と対面するミーティングが多く、実際は在宅勤務する機会があまりありません。しかし、投稿するブログを練るときなどに夕方家で働くので、家から仕事ができる環境をセットアップすることは重要です。 ここで問題となるのは、会社のコンピュータはデュアルモニタであり、家のコンピュータはシングルモニタなことです。そのため、家に帰る前にすべてのウィンドウを第 1 モニタに移動させる決意をしない限り、家から会社のコンピュータにリモートでアクセスすると、必要なウィンドウの多くが画面の外に出てしまうことになります。ウィンドウを “並べて表示” したり “重ねて表示” したりするコマンドは、ウィンドウを現在のモニタから移動するわけではないので、効果がありません。もちろん、該当するウィンドウのアイコンをタスクバーで右クリックして [移動] をクリックし、カーソルキーを押してウィンドウをゆっくりと第 1 モニタに動かすことができますが、実用的な方法ではありません。私が望むのは、「ここへ来い!」の一言で 1 つ以上のウィンドウを手早く移動する方法なのです。 現在この手の操作を行うフリーウェアが多数あることを知っていますが、WPF (Windows Presentation Foundation、以前の “Avalon”) ウィンドウで遊ぶチャンスを探してもいたので、今まで使う機会が少なかった WPF を学ぶ手段として、自作のコードで WPF ウィンドウを統合する時間を取ることにしました。この投稿では、いかにも WPF 的な実演をお見せするつもりはなく、透明、立体表示なども扱いません。この演習は、トリッキーなことに取り組む前に、デザイナやプロパティのバリエーションに慣れるのが主な目的です。 自作コードの目標は、システム上でタイトルが付いたウィンドウをすべて一覧表示し、選択したウィンドウを確実に第 1 モニタ上にある (10,10) の位置に移動するボタンがあるアプリケーションを作成することです (VS2005 以前のバージョンのユーザー向け : ここでは、VS2008 で WPF ウィンドウを使用しますが、このコードがフォームで実行できない理由は少しもなく、きわめて単純に変換できます)。 デザイナで基本アプリケーションを作成する まず、[新しいプロジェクト] をクリックし、[WPF アプリケーション] を Windows プロジェクトの種類の一覧から選択し、名前を付けて (この例では “VBGitOverHere”) [OK] をクリックします。プロジェクトが作成されたら、以前のバージョンでフォーム用に使用していたデザイナとはやや異なる外観のデザイナが表示されます。最上部の外観はフォーム デザイナに似ていますが、最下部に XAML ウィンドウが表示されます。XAML は…

1

VSLive! San Francisco の内容 (Amanda Silver)

皆さん、私はこれから VSLive! San Francisco の「LINQ Deep Dive and Tips &Tricks」セッションに出かけます。このデモとスライドは、次の URL に投稿してありますので、ご覧ください。 https://code.msdn.microsoft.com/Release/ProjectReleases.aspx?ProjectName=LaunchVB&ReleaseId=805 (英語) VB チーム 投稿 : 2008 年 3 月 31 日 2:19 PM 分類 : Amanda Silver、LINQ/VB9、IDE、Extension_Methods、VB2008、IQueryable、コントロール VB チームの Web ログ – http://blogs.msdn.com/vbteam/archive/2008/03/31/vslive-san-francisco-content-amanda-silver.aspx (英語) より


マイルストーン品質と "ドッグフーディング" (Matt Gertz)

ハードで実り多い仕事の結果、次期バージョンの Visual Studio、Team System、および .NET の開発に備える目標を掲げたマイルストーン品質 (MQ) を達成しました。Visual Basic に限った話題ではありませんが、この場を借りて、他の Visual Studio および .NET 製品同様に Visual Basic にも大いに影響がある、今回の成果を皆さんにご紹介したいと思います。 以前のブログにも書いたように、新しい機能や、その機能の内容がツールやプロセスを次のサイクルに進めるうえで合ったものになっているかどうかなどは、MQ の作業には含まれません。エンジニアリング プロセスを途中で変更すると、多大な混乱が生じるため、コーディングを開始する前にこの仕事を完了していることが重要です。今回の MQ は我々にとって困難なもので、エンジニアリング上の大きな変更が伴いましたが、それだけに順調に達成できた喜びがあります。 以前の投稿で書いたとおり、MQ では “ドッグフーディング” (開発の完了まで未完成のコードを自分たちで使うこと) に時間の多くを割くことを決定しました。その他のセットアップ作業も MQ で行ったのですが、この投稿ではドッグフーディングへの取り組みを中心に書くことにします。ドッグフーディングを実施する理由は次の 3 つです。 1.       利用環境の安定性の向上 : 皆さんが実際に使用される前に、毎日使用する中でバグを見つけることができます。 2.       販売する製品を自分も使う : 皆さんにお勧めするなら、自分たちも使う必要があります。 3.       最良の開発ツールだから使う : 趣味の領域から大企業のソリューション開発まで、すべての開発用途に適する最良の製品開発基盤を提供している自負が私たちにはあります。Visual Studio を開発するための最良のツールは Visual Studio なのです。 今でこそドッグフーディングに慣れたものの、かつてはこれほど早期の段階で実施してきませんでした。通常、最初のベータ版と次のベータ版の間、コードがほぼ完成した後で転換していました。以前のバージョン (全面的に書き換えた Visual Studio .NET 2002 など) では、その段階に至るまでコードを実際に統合できなかったため、この方法に意味がありました。この方法のマイナス面は、ドッグフーディングの開始が遅れれば、カバー範囲を同じにはできないことです。ベータ版では、新しい機能を開発するのではなく、バグの修正のみに特化して注力し、品質の高い機能を開発することが VS、TS、および…

1

LINQ to SQL (および LINQ to Entities) のパフォーマンスの改善 (Tim Ng)

ここ数か月間、VB チームと Data Programmability チームは LINQ to SQL (LINQ to Entities のマニフェスト内にもあります) のパフォーマンス上の問題の解決に取り組んできました。問題というのは、VB LINQ クエリに Null 許容型の列を対象とするフィルタが含まれる場合、LINQ to SQL で生成される T-SQL クエリが最適化されないことです。 たとえば、次のクエリを例とします。Dim q = From o In db.Orders Where o.EmployeeID = 123 Select o.CustomerID このシナリオでは、Orders.EmployeeID フィールドは Null 許容型のフィールド (Integer?) です。VB では、論理演算子 (<、<=、= など) は 3 値論理演算子と見なされるため、等式の比較結果は “Boolean?” 型の値となります。しかし、LINQ 演算子は “Boolean” 型の値が返されることを予想し、”Boolean?” 型ではないため、VB では合体演算子を使用して “Boolean?”…


ヨーロッパでの Visual Studio 2008 発表イベントの要約 (Amanda Silver)

先週、ポルトガルのリスボンとイギリスのバーミンガムでの Visual Studio 2008 の発表イベントで講演する機会がありました。どちらも熱狂的な雰囲気に包まれていたのは、今回の Visual Studio のリリースのためだったことは疑いようもありません。 TechDays (ポルトガル) TechDays は北米の TechEd (英語) と同様のイベントです。IT プロと開発者向けのこの 4 日間の集いには、エキサイティングなセッション、催し、ハンズオンラボが満載で、エキスパート別のブースもあります。到着したのはカンファレンス最終日で、結局直らなかった時差ぼけのまま、午前 3 時の感覚で自分のセッションを迎えました (数日前シアトルに戻って現地時間に戻ったばかりだったのです)。 小ぶりな部屋に満席の中、Visual Basic の過去、現在、未来についてのプレゼンテーションを行いました。ほとんどのセッションはポルトガル語だったようですが、私は英語でお話ししました。おわかりになっていただけたでしょうか。おわかりにならなくてもご心配なく。スライドとデモを投稿してありますので。 デモでは、エキスパート向けに Visual Basic 2008 を駆け足で紹介するツアーから始め、格段に改良された Intellisense エクスペリエンス、パフォーマンスの向上、統合言語クエリ、XML データ型もお見せしました。それだけでなく、使えば 2008 がもっとよくなるアドインと秘策を、新たにリリースされた DataRepeater コントロールを手始めにご紹介しました。このコントロールが、LINQ にどれほどぴったりかは、次のコードを書けば一発でおわかりいただけるでしょう。         Dim db = New NorthwindDataContext(My.Settings.NORTHWNDConnectionString)            Dim empsByCountry = From emp In db.Employees _                             Where…

2

STAThread 対 MTAThread (WHorst)

最近遭遇したスレッドの問題を皆さんにご紹介しましょう。私と同じ目に遭う人を減らせるかもしれません。 ここで、だれかが書いた C# アプリケーションを例とし、ここでは “DeltaEngine” と呼ぶことにします。DeltaEngine はネイティブ アセンブリを呼び出し、そこから特定のイベントを処理します。 DeltaEngine をライブラリ プロジェクトとして参照するソリューションを作成し、VB プロジェクトからこのプロジェクトを呼び出しました。このプロジェクトの名前を “VBApp” とすると、参照構造は次のようになります。 VBApp (VB) -> DeltaEngine (C#) -> NativeCode VBApp をスタートアップ プロジェクトとして使用してソリューションを実行したとき、ネイティブ コードから DeltaEngine がイベントを取得するのをいつまでも待たされました。しかし、DeltaEngine をスタートアップ プロジェクトとしてまったく同じ呼び出しを実行した場合、予想どおりにイベントを処理することがわかりました。この問題を解決するために長時間を費やしたあげく、お手上げとなったのです。 最終的に、C# プロジェクトは既定でマルチ スレッド アパートメント (MTA) を使用するのに対し、VB プロジェクトは既定でシングル スレッド アパートメント (STA) を使用することを人から指摘されました。DeltaEngine はもともと C# プロジェクトのスタートアップ アプリケーションとして作成されたため、MTA スレッドを前提としていたのです。VB スタートアップ プロジェクトからこのコードの呼び出しを開始したとき、それとは知らずに STA スレッドで実行していたわけです。これが原因で、DeltaEngine コードはイベントの発生後もイベントを待機し、いつまでも待機し続けることになってしまいました。DeltaEngine をスタートアップ プロジェクトとして設定して、同じ呼び出しを実行すると、MTA スレッドを使用するために予想どおりに動作するのです。 解決方法は、VBApp の…


Visual Basic デベロッパー センターに新しい "ハウツー" ビデオが登場 (Beth Massi)

お待ちかねの新しい 48 個のハウツー ビデオ (データベース フォーム、Windows 開発、Office 開発、およびセキュリティ) (英語) が新たなダウンロード形式を加えた 12 種類の形式で Visual Basic デベロッパー センターに登場しました。ビデオを製作してくれた Rob Windsor、Pat Tormey、Steve Hansen に感謝します。 これらに加え、Windows フォーム開発に関するビデオもアップロードしました。1 つは Visual Basic Power Packs の最新版にある新しい DataRepeater コントロール (英語) に関する内容で、もう 1 つは、ご要望にお応えして作成した処理されない例外を処理して電子メールで送る方法 (英語) です。 全ビデオの一覧を参照するには、ハウツー ビデオ シリーズのメイン ページ (英語) に直接アクセスしてください。 ぜひご覧ください。-Beth Massi、VS コミュニティ VB チーム 投稿 : 2008 年 3 月 24…


Silverlight Ux Musings : 新しいコントロール スキンのセット [Corrina Barber]

すぐに使えるコントロール スキンをもう 1 つ用意しました。2 つできるはずだったのですが、1 つのセットはもうひとひねり必要なことがわかり、4 月 14 日にシアトルに戻るまで手を付けられないのです。 この新しいセットは大まかで外観が素朴なだけでなく、わかりにくいかもしれませんが、それでもさまざまなサイトで機能し、サイトの初期モデルに使用してモデルを概略図の外観にすることができます。私はこの手のアプローチを初期モデルの多くに採用します。特に、レビュー担当者には設計の詳細を気にしないでもらいたいときに。 この新しいコントロール セットは、次のスクリーン ショットに示すようなものです。   このコントロールのライブ版 (英語) をご覧いただくか、私の Page.xaml、Page.xaml、Page.xaml.vb、App.xaml をダウンロードし、皆さんのサイトにこのスタイルを導入してください。このセットについてはブログ (英語) にも書いており、スキン コントロールのその他の側面に関する情報を掲載しています。 新しいスキンをぜひお試しください。 VB チーム 投稿 : 2008 年 3 月 23 日 8:36 PM 分類 : Silverlight、Corrina Barber、コントロール VB チームの Web ログ – http://blogs.msdn.com/vbteam/archive/2008/03/23/silverlight-ux-musings-new-control-skin-set-corrina-barber.aspx (英語) より


VS2008 での VB パフォーマンスの問題に対処する修正プログラム (DJ Park)

最近リリースした修正プログラムについてお知らせします。このプログラムは、Visual Studio 2008 の使用時に発生する可能性がある一部のパフォーマンスの問題の解決に役立ちます。 詳細 : 修正プログラムは 3.98 MB のファイルで、http://support.microsoft.com/kb/946344/ja からダウンロードできます。 このプログラムは、次のシナリオのパフォーマンスの問題に対処します。 •        IDE でのソリューションのビルド/リビルドに長い時間がかかる。 •       F5 キーを押してデバッグを開始する際、応答が遅い。 •       コード エディタの応答が遅い。 •       IntelliSense の応答が遅い。 このパフォーマンスの問題は、XML ドキュメントを格納するプロジェクト内にサイズの大きなファイルがあると発生します。デザイナで生成された Web 参照またはデータセット用のファイルを使用する場合、こうした大きなファイルに行き当たることがよくあります。プロジェクトのプロパティの [コンパイル] タブにある [XML ドキュメント ファイルを生成する] オプションをオフにすると、パフォーマンスが向上することがわかった場合、この修正プログラムが問題に対応します。この情報がお役に立ちますように。 – DJ  VB チーム 投稿 : 2008 年 3 月 23 日 1:22 PM VB チームの Web ログ – http://blogs.msdn.com/vbteam/archive/2008/03/23/hotfix-available-for-vb-performance-issue-in-vs2008-dj-park.aspx (英語) より