ようこそ Go!Go! ASP.NET へ ログイン | 登録 | ヘルプ

寝ても覚めても.NET(?)

Visual Studio 2005 Team System、主にVisual Studio 2005 Team Foundation Serverを中心とした紹介やらTipsやらを日々つづっていく日記です。
  • DataSet Visualizer

    VS2005だか2008のころだったからか搭載されたデバッグ実行中に
    DataSet内に格納されているデータを参照するための機能

    ウォッチウィンドウ使ったり、イミディエイト使ったりしなくてよくなってずいぶんと楽になりました。
    当然のようにVS2010にもついているわけですが・・・

    まだベータだからかな。
    .NET Framework 3.5で開発してたら、DataSetVisualizer.dllを読み込めませんでした
    的なエラーが表示されてうまく表示できません。

    エラー内容をよくよく見てみると現在のアセンブリは以前のバージョンでビルドされているため
    うんたらかんたら・・・

    .NET Framework 4に変えてみたところ普通に表示できるようになりました。
    なんとなく気になったので書いてみた。

    投稿日時 02-02-2010 04:53 投稿者 libaty | コメント数:0
    タグ
  • Outlook Connector

    最近、スケジュールの管理にWindows Live Calendarなるものを利用しています。
    Windows Live メールをPCにインストールしておけば
    わざわざブラウザを開かなくても予定の確認やら編集ができるし
    逆にどこにいてもWebさえあればこれまた予定の確認やら(以下略

    便利この上ないんだけど、やっぱりOutlookと連携させたいなーと思っていたところ
    Microsoft Office Outlook Connectorなるツールを発見

    Microsoft Office Outlook Connector 12.1

    さっそくインストールしてみたところ・・・
    Windows Live Hotmailと送受信ができないとダメみたい。
    これって日本の企業じゃほとんどアウトじゃ・・・。
    まぁ例にもれず自分とこの会社でもその手の通信は遮断されてるので
    あえなくWindows Live CalendarをOutlookで同期させる企ては失敗に終わりました。

    投稿日時 16-12-2009 11:39 投稿者 libaty | コメント数:0
    タグ
  • 長い闘いに幕

    もうまもなくCodeZineでVisual Studio Team System 徹底活用シリーズの最後が公開されます。
    徹底活用といいつつ、作業項目のこと以外には一切触れませんでしたが、
    最後に扱っているProject Server 2007 VSTS Connectorにはほんとーに苦労させられました。

    記事では割とスマートに(?)内容がまとまっていますが、
    その裏では壮絶な死闘を繰り広げましたw
    まさかこんなに苦労することになろうとは思いもせず・・・

    記事の補足等はできないので、疑問があれば記事のコメント欄にでもおよせいただきたいのですが
    苦労を味わった上でVSTS2010のすばらしさを実感するってのも面白いかもしれませんorz.

    投稿日時 14-12-2009 10:52 投稿者 libaty | コメント数:0
    タグ
  • TFSの作業項目、フィールド内容のコピー方法

    TFSの作業項目を作っているとどうしてもたくさんの項目を定義してしまいがちです。
    本質的には必要最低限まで数を絞り込むのがベストですが、
    それでも数が多い場合・・・今度はあっちの値をコピーできるところはコピーしてしまえ
    というようにできるだけ入力補助をしてあげようという発想になるはずです。

    そこで、作業項目にはCOPYという機能が用意されています。
    たとえば、あるフィールドを2つ定義してみましょう。

    <FIELD name=”フィールド1” refname=”libaty.field1” type=”String”>
    </FIELD>
    <FIELD name=”フィールド2” refname=”libaty.field2” type=”String”>
    </FIELD>

    ここでフィールド1の内容をフィールド2にコピーしたい場合、フィールド2を以下のように変えます。

    <FIELD name=”フィールド2” refname=”libaty.field2” type=”String”>
      <COPY from=”field” field=”libaty.field1” />
    </FIELD>

    このようにすると、作業項目を編集し、保存したタイミングでフィールド2の内容は
    常にフィールド1の内容がコピーされている状態となります。

    ところでこのCOPY機能、実にいろいろな条件をつけることができます。たとえば
    ・指定したフィールドの値が変更されたとき
    ・指定したフィールドの値が特定の値のとき
    ・作業項目がある状態の時
    ・作業項目の状態が遷移するとき

    値が変わったらというのは割と多いケースだと思うので例にとってみましょう。
    フィールド1の内容が変わった場合、フィールド2にフィールド1の内容をコピーする、としてみます。
    この場合、フィールド2は以下のようにかわります。

    <FIELD name=”フィールド2” refname=”libaty.field2” type=”String”>
      <WHENCHANGED field=”libaty.field1”>
        <COPY from=”field” field=”libaty.field1” />
      </WHENCHANGED>
    </FIELD>

    ただし、これには気をつけなければならないことが2つあります。
    1つは値が変わったらという条件が発動するタイミングです。たとえばフィールド1が
    キーボードからの任意入力を受け付けている場合、最初の1文字目が入力されたタイミングです。
    つまりキーストロークに反応しています。
    2つ目はコピーされる値です。1つ目がなぜ注意点かというとキーストロークに反応するということは
    フィールド1の値がまた確定していない可能性があるということです。
    このため、フィールド1の内容が変更されたとき、フィールド2にコピーされるのは
    変更される前のフィールド1の内容となります。変更後の値がコピーされるわけではない
    というところを注意する必要があります。

    まとめると、
    ・確定した後の値をコピーしたい場合には、一番最初に示した通り単純にコピー機能を利用する。
    ・変更されるときにもとの値を保存しておくような場合には、WHENCHANGEDを利用して
    値が変更されるときにコピー機能を利用する。
    となります。

    投稿日時 10-12-2009 02:30 投稿者 libaty | コメント数:0
    タグ ,
  • 作業項目のリンクタイプ

    TFS2010の作業項目にも他作業項目や変更セットへのリンク情報を持たせる機能があります。
    TFS2008までは原則として1つの作業項目に1つのリンクを表示するのみでしたが
    ここんところが大幅に変更されています。

    たとえば、MSFAgileのプロセステンプレートを使ってチームプロジェクトを作った後
    タスクの作業項目を作成すると下側のタブには
    ”実装”と”すべてのリンク”の2つのリンク情報保持用の場所があります。

    注目すべきは実装のほうで、こちらで”リンク先”を選択すると
    下の図のようなダイアログが表示されます。 



    リンクのさせかたそのものも大幅にブラッシュアップされていて
    リンクの種類を選ぶことができます。
    ここでは、子と親のみですが、選んだ要素に応じて、リンクプレビューの視覚化のところに
    リンクの構造の概念図が表示されます。とってもわかりやすいですね。

    ちなみにこのリンクの種類ですが結構いろいろ用意されています。
    フルで表示するとこれくらい。  

     

    作業項目を編集するときにどのリンクの種類を表示するかを制御することができ
    これは、作業項目定義内のレイアウトを決める部分で設定することができます。

    たとえば、以下のような感じ。

    <Tab Label="実装">
        <Group>
          <Column PercentWidth="50">
            <Control FieldName="Microsoft.VSTS.Build.IntegrationBuild" Type="FieldControl" Label="ビルドに統合(&amp;T):" LabelPosition="Left"/>
          </Column>
          <Column PercentWidth="50"/>
        </Group>
        <Control Type="LinksControl" Name="Hierarchy" Label="親と子のタスク(&amp;C):" LabelPosition="Top">
            <LinksControlOptions>
                <WorkItemLinkFilters FilterType="include">
                    <Filter LinkType="System.LinkTypes.Hierarchy"/>
                </WorkItemLinkFilters>
                <WorkItemTypeFilters FilterType="include">
                  <Filter WorkItemType="タスク"/>
                  <Filter WorkItemType="ユーザー ストーリー"/>
                </WorkItemTypeFilters>
                <ExternalLinkFilters FilterType="excludeAll"/>
                <LinkColumns>
                    <LinkColumn RefName="System.ID"/>
                    <LinkColumn RefName="System.WorkItemType"/>
                    <LinkColumn RefName="System.Title"/>
                    <LinkColumn RefName="System.AssignedTo"/>
                    <LinkColumn RefName="System.State"/>
                    <LinkColumn LinkAttribute="System.Links.Comment"/>
                </LinkColumns>
            </LinksControlOptions>

        </Control>
    </Tab>

    これは、タスクの実装タブ内のレイアウト定義情報をもってきたものです。
    注目すべきは赤くなっているところでここがリンクの保持を設定しています。
    ここで、
    ・WorkItemLinkFilters
    ・WorkItemTypeFilters
    ・ExternalLinkFilters
    の3つの組み合わせがさきほどのリンクの種類を制御しています。
    WorkItemLinkFiltersにはあらかじめ用意されているリンクの種類のグループともいうべきものを設定します。
    ExternalLinkFiltersにはリンクの種類のグループには属さないけどリンクの種類として表示可能なものを設定します。
    WorkItemTypeFiltersにはリンクとして有効な作業項目の種類を設定します。

    この例では、
                <WorkItemLinkFilters FilterType="include">
                    <Filter LinkType="System.LinkTypes.Hierarchy"/>
                </WorkItemLinkFilters>
    の部分で、System.LinkTypes.Hierarchyを設定しているのでリンクの種類として親or子が有効となります。

                <WorkItemTypeFilters FilterType="include">
                  <Filter WorkItemType="タスク"/>
                  <Filter WorkItemType="ユーザー ストーリー"/>
                </WorkItemTypeFilters>
    の部分で、作業項目のタスクとユーザーストーリーを関連付けられる作業項目として設定しています。

                <ExternalLinkFilters FilterType="excludeAll"/>
    の部分で、リンクの種類のグループに含まれないものは除外すると設定しています。


    さて、では設定可能なものは?
    WorkItemLinkFiltersに設定可能なものは
    ・Microsoft.VSTS.Common.TestedBy
    リンクの種類は テスト担当者、テスト が有効になります。
    ・Microsoft.VSTS.TestCase.SharedStepReferencedBy
    リンクの種類は テスト ケース、共有ステップ が有効になります。
    ・System.LinkTypes.Dependency
    リンクの種類は 後続処理、先行処理 が有効になります。
    ・System.LinkTypes.Hierarchy
    リンクの種類は 子、親 が有効になります。
    ・System.LinkTypes.Related
    リンクの種類は 関連 が有効になります。

    ExternalLinkFiltersに設定可能なものは
    ・Workitem Hyperlink
    リンクの種類は ハイパーリンク が有効になります。
    ・Fixed in Changeset
    リンクの種類は 変更セット が有効になります。
    ・Result Attachment
    リンクの種類は 結果の添付ファイル が有効になります。
    ・Source Code File
    リンクの種類は バージョン付き項目 が有効になります。
    ・Test Result
    リンクの種類は テスト結果 が有効になります。

    他にもありそうなんですが、とりあえずここまでわかったというところで力つきました。

    投稿日時 04-12-2009 07:59 投稿者 libaty | コメント数:0
    タグ
  • TFS 2010 Power Tools デビュー

    何かと大変なTFSのプロセステンプレートのカスタマイズ。
    そんな大変さを軽減してくれる便利なPower Toolsに
    TFS 2010 Beta 2用がデビューしました。

    bharry’s blogより
    TFS 2010 Power Tools are Available

    ダウンロードはこちらから
    http://visualstudiogallery.msdn.microsoft.com/en-us/0e69a28f-020c-488b-80b3-f4c89a20621d

    もちろん他にもいくつか便利な機能はありますが・・・。
    なにはともあれ、これでxmlの手書き生活から解放される!!

    なお、Betaツールなのでフィードバック大歓迎みたいです。
    きっと英語onlyだと思いますがこちらから。
    https://connect.microsoft.com/VisualStudio

    投稿日時 04-12-2009 09:12 投稿者 libaty | コメント数:0
    タグ
  • TFSの作業項目のリストに潜むわな

    TFSの作業項目にはドロップダウンリストから選択して入力できるようにするための定義があります。

    ドロップダウンリストを使いたいフィールド定義にちょちょっと制約を追加すればOK。
    たとえば、

    <FIELD name=”リストで入力” refname=”libaty.listsample1” type=”String” />

    というフィールドがあるとすると

    <FIELD name=”リストで入力” refname=”libaty.listsample1” type=”String”>
      <ALLOWEDVALUES>
        <LISTITEM value=”一番目” />
        <LISTITEM value=”二番目” />
      </ALLOWEDVALUES>
    </FIELD>

    のようにしておくことで、ドロップダウンリストからの入力ができます。
    ALLOWEDVALUES制約だとリスト内の項目からしか選択できないので
    任意入力もさせたい場合にはSUGGESTEDVALUES制約が使えます。


    で、実際に表示してみると・・・。

    ・わなその1
    ドロップダウンに表示されるリスト項目は勝手にソートされて表示されます。
    作業項目定義として作成した順番にはなりません。
    これ以外にわなです。

    ・わなその2
    ドロップダウンリストなんで空白を選択させたいと思うこともあります。
    でも、
      <LISTITEM value=”” />
    だったり
      <LISTITEM value=” ” />(半角または全角空白)
    だったりを定義しようとするとTFSに登録する段階ではじかれてしまいます。

    こんなときは、空白を選択させることを任意の値を入力させることととらえて
    SUGGESTEDVALUES制約を使うのがてっとりばやいです。

    投稿日時 03-12-2009 09:37 投稿者 libaty | コメント数:0
    タグ
  • Forza Motersport 3

    レースゲーム好きなりばてぃさんは最近がっつりはまってます。
    xbox 360用レースゲーム「Forza Motersport 3」

    ナオキいわく痛車として有名なゲームらしいですが。

    レースゲームをやったことない人に対しては面白い機能が何個かあり。
    その中でも特に・・・
    「オートブレーキシステム」
    レースゲームにはあるまじき、カーブに差し掛かると自動的にブレーキがかかります。
    EASYレベルの設定で始めると
    デフォルトでONなので、一瞬なにが起こってるのかわかりませんでした。

    上級者に向けてはABS, TCSのシミュレーションが結構しっかりしてて
    フルブレーキしたらがっちりロックかかるし
    ステアリング切りながらアクセルを強く踏み込もうものならきれいにドリフトしてくれます
    俗にいうハンドルがなくてもxboxのでっかいほうのLボタンとRボタンで
    アナログ的な制御ができるので割と楽しめるかも。

    このご時世にネットワークがなければ遊べないゲームはあまり好きじゃありませんが
    なくても十分です。

    投稿日時 30-11-2009 11:57 投稿者 libaty | コメント数:0
    タグ
  • TFS2010の作業項目管理

    今までのTFSでは、コマンドラインから作業項目を管理しようと思うと
    ・witimport.exe
    ・witexport.exe
    ・tfsfieldmapping.exe
    ・glimport.exe
    ・elexport.exe
    の5つのコマンドラインツールが必要でした。
    それぞれの名前からおおよそイメージつくものもあるかもしれませんが

    作業項目の登録・変更はwitimport.exeを
    登録済み作業項目の取得はwitexport.exeを
    作業項目内のフィールドの編集にはtfsfieldmapping.exeを
    作業項目で使うグローバルリストの登録・変更はglimport.exeを
    登録済みグローバルリストの取得はglexport.exeを

    と、用途ごとにそれぞれのツールに指定されたオプションをつけて利用しなけければいけませんでした。


    TFS2010ではこれはまとめて witadmin.exe に統合されているようです。
    コマンドラインで
      witadmin.exe /?
    とすると、利用可能なコマンド一覧が表示され、
    そこには上記5つのツールでやっていたようなコマンドがすべて含まれています。

    そもそも、witimport.exeが見つからなくて探してたら見つけたわけですが・・・。
    まぁ一つに統合されるのはいいことのような気はします。

    投稿日時 30-11-2009 11:47 投稿者 libaty | コメント数:0
    タグ ,
  • MicrosoftがTeampriseを買収

    ITProニュースより

    Microsoft, Visual Studio向け開発支援ツール「Teamprise」の関連資産を買収
    http://itpro.nikkeibp.co.jp/article/NEWS/20091110/340289/


    TeampriseはEclipseからTFSを使えるようにするツールなんかを提供している。
    確か、今は同梱されてるTeam System Web Accessももとはここのじゃなかったけかな?

    いずれにしてもこれでますますEclipseからTFSを使う敷居が下がるということで。
    なんともすばらしきかな。
    Visual Studio Ultimate with MSDN会員には無償提供っぽいところもいい感じです。


    ここら辺でも紹介されています。
    http://blogs.msdn.com/tanishi/archive/2009/11/10/teamprise-client-suite-microsoft.aspx
    投稿日時 10-11-2009 01:59 投稿者 libaty | コメント数:1
    タグ
  • Document Map MarginはRTMから外れたっぽい

    Visual Studio 2010の新機能の1つとして注目されていたDocument Map Margin。

    Tech Days 2009のときなんかはスライドのみの紹介でした。
    参考:Visual Studio 2010はこうなる -Tech Days 2009 セッションレポート-

    Tech Ed 2009では存在すら発表されていなかったような・・・

    Microsoft Code Gallaryのページもずいぶんと更新がとまっています。
    http://code.msdn.microsoft.com/vslangfutures/Wiki/View.aspx?title=Document%20Map%20Margin


    で、以下のサイトをご参考。
    http://blogs.msdn.com/jasonz/archive/2009/10/19/announcing-vs2010-net-framework-beta-2.aspx

    ここのコメントのやりとりを下の方まで見ていくと

    Does anyone know how to show the 'Document Map Margin' or isn't it in this release?
    ->The beta2 is so bad !!!.......
    ->the Docment Map Margin won't ship with the final release, but we are looking at making it a free extension when we RTM.

    というやりとりがあります。
    #最後のコメントはこのブログのブロガーの返信

    というわけでRTMでのリリースは見送ったってことですかねー
    さらにもうひとつ下を見ると

    I'd love to get your feedback; can you be more specific on what is bad with the release?  now is the time to weigh in so we can fix any issues you have before we RTM.  thanks!

    という書き込みが。
    #先にあげた2番目のコメントに対するブロガーさんの返信。

    そうはいってもプレビューリリースはするよーってことですかね。楽しみに待ちますか。

    投稿日時 10-11-2009 01:12 投稿者 libaty | コメント数:0
    タグ
  • TFS2010はWeb Accessがデフォルトインストール

    先日、TFS2010 β2 EnglishをStandard Single Server構成でインストールしてみました。
    今まではTeam System Web Access(ブラウザから作業項目とかを見れるやつ。Trackみたい感じ?)は
    別途インストールする必要がありましたが、
    インストール後のコンフィグレーションの過程で自動的にセットアップされていました。
    デフォルトのアドレスは

      http://tfs2010server:8080/tfs/web/

    でした。
    80にならないあたりがなんともなーな感じですが、まぁ全部まとめて入れてくれたことには1票上げたいと思います。
    でも、80に入れようとしたらカスタム構成?でちまちまやらないといけないと思われる・・・。
    投稿日時 04-11-2009 03:03 投稿者 libaty | コメント数:2
    タグ , ,
  • WCFでラウンドトリップのタイムアウト値を設定するには

    WCFのタイムアウト設定でどはまって、
    松崎さんにも助けてもらったのでメモがてら

    :やりたかったこと

     クライアント側でサーバーに対してリクエストを発行してから
     処理結果を受け取りきるまでに渡るタイムアウト値を設定する


    :結論

     クライアント側のバインディング設定でSendTimeout値を操作すればよい


    :困ったこと

     いろいろ調べるとWCFのバインディングには基本的なものでも以下の4つがあった

     ・OpenTimeout
     ・CloseTimeout
     ・SendTimeout
     ・ReceiveTimeout

     でも、どれがどういう用途と使われているのかさっぱりわからない。
     グーグル大先生Bingに聞いてもさっぱりわからない。

     で、泣きついたところ、
     OpenTimeoutは、サービスとの接続を確立しようとしたときに発生する例外をどの程度待機するか
     CloseTimeoutは、その逆
     ReceiveTimeoutは、サービス側で設定するものでどれだけの時間、クライアントからのメッセージ受信待機をするか
     SendTimeoutは、その逆

     さらにOperationTimeoutというものがあるからそれが、やりたいことに該当するだろうとの助言をいただきました。

     いろいろ調べていくと
     ・OperationTimeoutはIContextChannelクラスのプロパティである
     ・OperationTimeoutを直接、構成ファイルから設定する方法はないっぽい
     ということがわかり、ChannelFactoryを使う場合は以下のようなコードになりました。

    ChannelFactory factory = MyCreateFactory<IMyService>(); //アドレス指定、バインディング読み込みなどを行う
    IMyService proxy = factory.CreateChannel();
    IContextChannel channel = proxy as IContextChannel;
    channel.OperationTimeout = new TimeSpan(00, 01, 00); //タイムアウト値の設定

    proxy.ExecuteService();


     このようにすれば、OperationTimeoutの設定を行え、任意の時間でタイムアウトを設定することができました。

     ところで・・・OperationTimeoutの初期値って・・・???
     気になったので調べてみたところ、
     初期値は 60 秒でした。

     SendTimeoutと同じか―と思いながら、構成ファイルでSendTimeoutの値を変更すると・・・
     なんとOperationTimeoutの値も変更されておりましたー
     ってことは、OperationTimeoutの初期値 = SendTimeoutの設定値ということみたいです。

     もちろん、上記、コードを利用して、後からいくらでも変更できましたが
     特に支障なければSendTimeoutの設定で流用してもいいかもしれません。

    投稿日時 02-11-2009 02:28 投稿者 libaty | コメント数:2
    タグ
  • はじめてのHalo

    タイトルの通りですが、なんかバカ売れしてるらしいHaloシリーズのお話です。

    もう1カ月近くまえだと思いますが、Haloシリーズ最新作 Halo 3 ODSTなるものが発売されておりました。
    http://www.xbox.com/ja-JP/games/splash/h/halo3odst/

    なんとなく触発されてみて少しやってみた感想。
    書いてる人の基本感覚 : ガンシューティング系は苦手

    絵が綺麗。でも小さいテレビでは相変わらず厳しい。
    Halo 3の続編のようなそうでもないような。
    いずれにしても前作の内容を知った上でやるともっと楽しそうな予感。
    やっぱりガンシューティング系といわれる類のものは苦手。好きな人にはたまらないかも。

    メタルギアソリッドとか(ちょっと違うかな?)とかそういう類が好きな人には面白いと思った。
    ドラクエ、FFみたいなRPGしかやらない、できない人にはちゃんとストーリーはあるもののちょっと難しいかも。

    投稿日時 19-10-2009 05:06 投稿者 libaty | コメント数:0
    タグ
  • MultiRowはグリッドにあらず

    最近、はじめてグレープシティ社のMultiRowというコンポーネントを利用してみてます。
    グレープシティのホームページでは「表計算/グリッド」というカテゴリで紹介されている同製品ですが
    いやー.NET標準のDataGridViewとか、SPREADなんかとはまったく趣きが異なりますね。

    デザインの仕方もどちらかというと帳票をレイアウトしているのに近い感覚です。
    さらにコントロールを直接画面に貼っただけでは何もできず、
    まずは、テンプレートと言われるものを別に作成しておく必要がある点も感覚が全然違います。

    簡単には、貼りつけたいフォームと同一プロジェクト上に
    新しい項目の追加でMultiRowテンプレートというものを追加します。
    そうするとMultiRowのデザイン画面が表示され、
    ここで、ヘッダーや明細行をデザインしていくのですが、
    グリッドのデザインというよりは帳票のデザインと言った方がしっくりくる感じです。

    テンプレートができあがったら、これを利用したいフォームに
    MultiRowのコントロールを配置して、この中で先ほど作成したテンプレートを利用するように設定します。
    これで、画面上でデザイン済みのMultiRowが使えます、と。

    ただ、多段行にわたるデータを綺麗に見栄え良く表示させたい場合には、
    DataGridViewとかSPREADなんかを使うよりもよっぽど効率いいなーとは思いました。
    SPREADなんかだとセルの結合やらなんやらをがんばって、
    何行分が論理的に1行データだからその単位で行を追加して
    とかわけわからんコードが山のように必要になりますが、MultiRowならそんなのものほとんどコードいらず。

    業務アプリケーションに求められるグリッドは割とMultiRowの方が相性いいんじゃないかと思いました。


    後は、InputManも持ってればそのコントロールと同様の機能を持ったセルを配置することができるってのもおっきなポイント。
    入力操作性の統一感が段違いにあがってかなりいい感じ。
    投稿日時 02-07-2009 08:20 投稿者 libaty | コメント数:0
    タグ
続きを見る 次のページ »
SkinName:iroha_Blog2
Powered by Community Server, by Telligent Systems