<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
   <title>アーキテクト360</title>
   <link rel="alternate" type="text/html" href="http://architect360.apricot-jp.com/" />
   <link rel="self" type="application/atom+xml" href="http://architect360.apricot-jp.com/atom.xml" />
   <id>tag:architect360.apricot-jp.com,2008://4</id>
   <updated>2008-10-08T13:08:15Z</updated>
   
   <generator uri="http://www.sixapart.com/movabletype/">Movable Type 3.33-ja</generator>

<entry>
   <title>String.Concatメソッドを使った文字列の連結</title>
   <link rel="alternate" type="text/html" href="http://architect360.apricot-jp.com/500tips/stringconcat.html" />
   <id>tag:architect360.apricot-jp.com,2008://4.370</id>
   
   <published>2008-10-08T13:07:59Z</published>
   <updated>2008-10-08T13:08:15Z</updated>
   
   <summary>文字列の連結には３つの方法がある。一つは「&amp;」演算子や「+」演算子を用いる方法で...</summary>
   <author>
      <name></name>
      
   </author>
         <category term="500プログラミングTips" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://architect360.apricot-jp.com/">
      <![CDATA[文字列の連結には３つの方法がある。一つは「&」演算子や「+」演算子を用いる方法である。この方法はメモリの使用量が多いので、連結する文字列の数が多い場合や長い場合は使わない方がよい。２つ目はStringBuilderを使う方法である。この方法は、高機能でメモリの使用量も少なく高速に処理できるが、多少のコード量が必要である。最後の方法は String クラスの Concat メソッドを使う方法である。単純に文字列を繋げるだけなら最もシンプルなコードで実装できる。下記の例、Concatメソッドを使ったC#とVB.NETのサンプルである。

<textarea name="code" class="c#:nocontrols" cols="60" rows="10">
using System;
using System.IO;

namespace Test
{
    class Program
    {
        public static void Main()
        {
            JoinStrings("今日は ", "晴れです。", "明日も", "晴れです。");
        }

        public static void JoinStrings(params string[] strArray)
        {
            Console.WriteLine(string.Concat(strArray));
        }
       
    }
}
 </textarea>

<textarea name="code" class="VB:nocontrols" cols="60" rows="10">
Imports System.IO

Module Module1

    Sub Main()

        JoinStrings("今日は ", "晴れです。", "明日も", "晴れです。")

    End Sub

    Sub JoinStrings(ByVal ParamArray strArray() As String)

        Console.WriteLine(String.Concat(strArray))

    End Sub

End Module

 </textarea>]]>
      
   </content>
</entry>
<entry>
   <title>ファイルの存在をチェックする</title>
   <link rel="alternate" type="text/html" href="http://architect360.apricot-jp.com/500tips/post_49.html" />
   <id>tag:architect360.apricot-jp.com,2008://4.369</id>
   
   <published>2008-10-08T13:07:21Z</published>
   <updated>2008-10-08T13:07:54Z</updated>
   
   <summary>ファイルの読み書き処理の前に、ファイルの存在チェックをしなければならないときがあ...</summary>
   <author>
      <name></name>
      
   </author>
         <category term="500プログラミングTips" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://architect360.apricot-jp.com/">
      <![CDATA[ファイルの読み書き処理の前に、ファイルの存在チェックをしなければならないときがある。ファイルの存在チェックは、System.IO 名前空間の File.Exists メソッドを使う。File.Exists メソッドは ファイルが存在する場合 True、存在しない場合 False を返す。
なお、ディレクトリの存在を確認するには、System.IO 名前空間にある Directory.Exists メソッドを使う。
<textarea name="code" class="c#:nocontrols" cols="60" rows="10">
using System;
using System.IO;

namespace TestHikisu
{
    class Program
    {
        public static void Main()
        {
            CheckFileExist("c:\\sample.txt");
        }

        public static void CheckFileExist(string path)
        {
            string filepath = path;

            if (System.IO.File.Exists(filepath))
            {
                Console.WriteLine("ファイル存在");
            }
            else
            {
                Console.WriteLine("ファイル存在しない");
            }
        }
       
    }
}


 </textarea>

<textarea name="code" class="VB:nocontrols" cols="60" rows="10">
Imports System.IO

Module Module1

    Sub Main()
        CheckFileExist("c:\sample.txt")

    End Sub

    Sub CheckFileExist(ByVal path As String)
        Dim filepath As String = path

        If System.IO.File.Exists(filepath) Then
            Console.WriteLine("ファイル存在")
        Else
            Console.WriteLine("ファイル存在しない")
        End If


    End Sub

End Module


 </textarea>]]>
      
   </content>
</entry>
<entry>
   <title>テキストエディタでブロック（BOX）選択する方法</title>
   <link rel="alternate" type="text/html" href="http://architect360.apricot-jp.com/900/box.html" />
   <id>tag:architect360.apricot-jp.com,2008://4.368</id>
   
   <published>2008-10-07T13:46:33Z</published>
   <updated>2008-10-07T13:46:59Z</updated>
   
   <summary>Visual Studio のテキストエディタでブロック選択がができる。ブロック...</summary>
   <author>
      <name></name>
      
   </author>
         <category term="900その他" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://architect360.apricot-jp.com/">
      <![CDATA[Visual Studio のテキストエディタでブロック選択がができる。ブロック選択とは任意の位置から矩形で選択した部分の文字を選択することである。
これを使うと、必要な部分だけをまとめてコピーしたり、切り取ったりできるので便利である。方法はAlt キーを押しながらマウスでドラッグする。


<a href="<$MTBlogURL$>img/BOXSELECT.JPG" rel="lightbox"><img src="<$MTBlogURL$>img/t_BOXSELECT.JPG" ></a>
]]>
      
   </content>
</entry>
<entry>
   <title>テキストファイルをロードし文字列を読み込むサンプル</title>
   <link rel="alternate" type="text/html" href="http://architect360.apricot-jp.com/500tips/post_48.html" />
   <id>tag:architect360.apricot-jp.com,2008://4.367</id>
   
   <published>2008-10-07T13:45:07Z</published>
   <updated>2008-10-07T13:45:39Z</updated>
   
   <summary>テキストファイルから文字列を読み出す方法には幾つか方法がある。下記の例は1行づつ...</summary>
   <author>
      <name></name>
      
   </author>
         <category term="500プログラミングTips" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://architect360.apricot-jp.com/">
      <![CDATA[テキストファイルから文字列を読み出す方法には幾つか方法がある。下記の例は1行づつ読みだす方法である。
なお、1文字ずつ読み出す場合はReadメソッドを、ファイル全体を読み出す場合はReadToEndメソッドがある

<textarea name="code" class="c#:nocontrols" cols="60" rows="10">
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
using System.IO;

namespace TestHikisu
{
    class Program
    {
        public static void Main()
        {
            LoadFile("c:\\sample.txt");

        }

        public static void LoadFile(string path)
        {
            //ファイルパスのテキストファイル(UTF-8)のストリームを読み込みモードで作成する。
            FileStream stream = new FileStream(path, FileMode.Open, FileAccess.Read);

            //output.txt を読み込む為のreaderを宣言する。(この場合はutf-8)
            StreamReader reader = new StreamReader(stream, System.Text.Encoding.GetEncoding("utf-8"));

            string strLine = null;

            //EOFまで
            while ((reader.Peek() > 0))
            {

                //1行分の文字列を読み込む。
                strLine = reader.ReadLine();

                //読み込んだ文字列を表示する。
                Console.WriteLine(strLine);

            }

            //readerを閉じる。
            reader.Close();

            //streamを閉じる。
            stream.Close();

        }



    }
}

 </textarea>

<textarea name="code" class="VB:nocontrols" cols="60" rows="10">
Imports System.IO

Module Module1

    Sub Main()
        LoadFile("c:\sample.txt")

    End Sub

    Sub LoadFile(ByVal path As String)
        'ファイルパスのテキストファイル(UTF-8)のストリームを読み込みモードで作成する。
        Dim stream As New FileStream(Path, FileMode.Open, FileAccess.Read)

        'output.txt を読み込む為のreaderを宣言する。(この場合はutf-8)
        Dim reader As New StreamReader(stream, System.Text.Encoding.GetEncoding("utf-8"))

        Dim strLine As String

        'EOFまで
        Do While (reader.Peek > 0)

            '1行分の文字列を読み込む。
            strLine = reader.ReadLine()

            '読み込んだ文字列を表示する。
            Console.WriteLine(strLine)

        Loop

        'readerを閉じる。
        reader.Close()

        'streamを閉じる。
        stream.Close()

    End Sub

End Module
 </textarea>]]>
      
   </content>
</entry>
<entry>
   <title>任意の数の引数を受け取るメソッド</title>
   <link rel="alternate" type="text/html" href="http://architect360.apricot-jp.com/500tips/post_47.html" />
   <id>tag:architect360.apricot-jp.com,2008://4.366</id>
   
   <published>2008-10-07T13:42:50Z</published>
   <updated>2008-10-07T13:44:38Z</updated>
   
   <summary>任意の数の引数を受け取るメソッドを作るには、C#ではparams、VB.NETで...</summary>
   <author>
      <name></name>
      
   </author>
         <category term="500プログラミングTips" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://architect360.apricot-jp.com/">
      <![CDATA[任意の数の引数を受け取るメソッドを作るには、C#ではparams、VB.NETでは ParamArray キーワードを使う。
引数は１次元配列として定義する。引数の省略を可能とする Optional キーワードと同時に使うことはできない。

以下の例は、任意数の数のString 型引数を渡すと、引数の文字列を接続して出力するサンプルである。

<textarea name="code" class="c#:nocontrols" cols="60" rows="10">
using System;
using System.Collections.Generic;
using System.Text;

namespace Test
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(CreateMessage("今日は", "雨です。", "明日は","晴れです。"));
        }


        //任意の数の引数を受け取り連結した文字列を返す
        static string CreateMessage(params string[] args)
        {
            if (args == null)
                return string.Empty;
            else
                return string.Concat(args);
        }

    }
}
 </textarea>

<textarea name="code" class="VB:nocontrols" cols="60" rows="10">
Module Module1

    Sub Main()
        Console.WriteLine(CreateMessage("今日は", "雨です。", "明日は", "晴れです。"))
    End Sub

    ''任意の数の引数を受け取り連結した文字列を返す
    Function CreateMessage(ByVal ParamArray args() As String) As String
        If (args Is Nothing) Then
            Return String.Empty
        Else
            Return String.Concat(args)
        End If
    End Function

End Module
 </textarea>
]]>
      
   </content>
</entry>
<entry>
   <title>警告：キー項目のデータタイプ設定に不整合が見つかりました</title>
   <link rel="alternate" type="text/html" href="http://architect360.apricot-jp.com/200/post_46.html" />
   <id>tag:architect360.apricot-jp.com,2008://4.362</id>
   
   <published>2008-10-01T13:51:17Z</published>
   <updated>2008-10-01T13:51:50Z</updated>
   
   <summary>XEADを使ってデータモデリングをしていると、下記のエラーがCreate文に追加...</summary>
   <author>
      <name></name>
      
   </author>
         <category term="200データモデリング" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://architect360.apricot-jp.com/">
      <![CDATA[XEADを使ってデータモデリングをしていると、下記のエラーがCreate文に追加されていた。

<blockquote>
警告：キー項目のデータタイプ設定に不整合が見つかりました。FOREIGN KEYステートメント上の
項目名に(?)と示されている部分に関して、関連するキー定義同士のデータタイプ構成を調べてください。
詳しくはヘルプのキー定義に関する説明を参照してください。
</blockquote>
原因は複数のキー項目が同じデータタイプだとだめらしい。このデータタイプとは、データタイプ一覧で表示されるデータタイプのことで、テーブルのカラムの型ではない。したがって、２つInt型のキーがある場合は、２つのデータタイプを定義してSQL表現をInt型にすればよい。]]>
      
   </content>
</entry>
<entry>
   <title>DataGridView 画面のサイズ変更とともに列の幅も変更するには</title>
   <link rel="alternate" type="text/html" href="http://architect360.apricot-jp.com/500tips/datagridview.html" />
   <id>tag:architect360.apricot-jp.com,2008://4.360</id>
   
   <published>2008-09-15T12:51:36Z</published>
   <updated>2008-09-15T13:44:18Z</updated>
   
   <summary>画面の大きさを変えた時DataGridViewも連動して大きさを変えるには、An...</summary>
   <author>
      <name></name>
      
   </author>
         <category term="500プログラミングTips" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://architect360.apricot-jp.com/">
      <![CDATA[画面の大きさを変えた時DataGridViewも連動して大きさを変えるには、Anchorプロパティを変更してLeft,Rightにもアンカーをセットする。しかし、これだけではDataGridView内の列の幅は連動して大きくならない。画面のサイズ変更と同時に、列の幅も変更させるには、AutoSizeColumnModeをFillに変更するとよい。

<IMG src="<$MTBlogURL$>img/AUTOCOLUMN.JPG" border="0">
]]>
      
   </content>
</entry>
<entry>
   <title>型付データセットのメリット</title>
   <link rel="alternate" type="text/html" href="http://architect360.apricot-jp.com/500tips/post_45.html" />
   <id>tag:architect360.apricot-jp.com,2008://4.359</id>
   
   <published>2008-09-09T12:37:39Z</published>
   <updated>2008-09-09T12:38:19Z</updated>
   
   <summary>型付データセットのメリットをまとめてみた。 型付データセット（型指定されたデータ...</summary>
   <author>
      <name></name>
      
   </author>
         <category term="500プログラミングTips" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://architect360.apricot-jp.com/">
      <![CDATA[型付データセットのメリットをまとめてみた。

<ol><li>型付データセット（型指定されたデータセット）では、型指定が厳密であり、IntelliSenseによる補完機能が利用できる</li>
<li>defaultvalueプロパティを利用しデザイナでデフォルト値を指定することができる。</li>
<li>DataTableに主キーの設定があれば、その列名を利用したFindメソッドが用意される。</li>
<li>型付データセットDataTableに主キーの設定があれば、その列名を利用したFindメソッドが用意される。</li>
<li>データテーブル間にリレーションがある場合、親および子テーブルをたどるメソッドが用意される。OrderTableとOrderDetailテーブルに親子関係がある場合、親テーブルの行にGetOrderDetailRowsというメソッドが用意される。このメソッドによって、ループで処理せず子テーブルの要素を取り出すことができる。</li>
<li>列の値がNullかどうかをチェックするメソッドが用意されている。</li>
<li>.NET Framework 2.0からはパーシャルクラスによって、型付データセットに任意のメソッドなどを追加することができる。</li>]]>
      
   </content>
</entry>
<entry>
   <title>DataGridView　1回のクリックでドロップダウンリストを表示させる</title>
   <link rel="alternate" type="text/html" href="http://architect360.apricot-jp.com/500tips/datagridview1_1.html" />
   <id>tag:architect360.apricot-jp.com,2008://4.358</id>
   
   <published>2008-09-07T13:14:42Z</published>
   <updated>2008-09-07T13:15:14Z</updated>
   
   <summary>DataGridViewのテキストボックス（DataGridViewComboB...</summary>
   <author>
      <name></name>
      
   </author>
         <category term="500プログラミングTips" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://architect360.apricot-jp.com/">
      <![CDATA[DataGridViewのテキストボックス（DataGridViewComboBoxColumn）は、通常2回クリックしないとドロップダウンのリストが表示されない。1回のクリックでリストを表示させるには、セルをクリックしたときにF4キーを押す操作を実行すればよい。

<textarea name="code" class="c#:nocontrols" cols="60" rows="10"> 
        private void DataGridView1_CellEnter(object sender, DataGridViewCellEventArgs e)
        {
            //1回のクリックでドロップダウンリストを表示させる処置
            DataGridView dgv = sender as DataGridView;

            if (e.ColumnIndex >= 0)
            {
                if (dgv.Columns[e.ColumnIndex] is DataGridViewComboBoxColumn)
                {
                    SendKeys.Send("{F4}");
                }
            }
        }

</textarea>]]>
      
   </content>
</entry>
<entry>
   <title>DataGridView　1回のクリックでエディットモードにする</title>
   <link rel="alternate" type="text/html" href="http://architect360.apricot-jp.com/500tips/datagridview1.html" />
   <id>tag:architect360.apricot-jp.com,2008://4.357</id>
   
   <published>2008-09-07T13:13:41Z</published>
   <updated>2008-09-07T13:14:15Z</updated>
   
   <summary>DataGridViewのテキストボックス（DataGridViewTextBo...</summary>
   <author>
      <name></name>
      
   </author>
         <category term="500プログラミングTips" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://architect360.apricot-jp.com/">
      <![CDATA[DataGridViewのテキストボックス（DataGridViewTextBoxColumn）は、通常2回クリックしないと編集モードにならない。Excel風に1回のクリックで編集できるようにするには、セルをクリックしたときにF2キーを押す操作を実行すればよい。

<textarea name="code" class="c#:nocontrols" cols="60" rows="10"> 
        private void DataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            //1回のクリックでエディットモードにする処置
            DataGridView dgv = sender as DataGridView;

            if (e.ColumnIndex >= 0)
            {
                if (dgv.Columns[e.ColumnIndex] is DataGridViewTextBoxColumn)
                {
                    SendKeys.Send("{F2}");
                }
            }

        }

</textarea>
]]>
      
   </content>
</entry>
<entry>
   <title>メソッドの抽出の使い方</title>
   <link rel="alternate" type="text/html" href="http://architect360.apricot-jp.com/500tips/post_44.html" />
   <id>tag:architect360.apricot-jp.com,2008://4.356</id>
   
   <published>2008-09-07T13:01:11Z</published>
   <updated>2008-09-07T13:01:40Z</updated>
   
   <summary>長すぎて読みにくいコードがあるときはメソッドの抽出を行うとよい。Visutal ...</summary>
   <author>
      <name></name>
      
   </author>
         <category term="500プログラミングTips" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://architect360.apricot-jp.com/">
      <![CDATA[長すぎて読みにくいコードがあるときはメソッドの抽出を行うとよい。Visutal Studio2005以上なら、コードエディタ上でメソッドの抽出が行える。下記のサンプルコードは、if文である条件を判定しているが、長くて分かりくい。このとき、if文のカッコの中をすべて選択し、右クリック[リファクタ]-[メソッドの抽出]を選ぶと、メソッド名を入力するダイアログが表示されるので、処理の説明になるようなメソッド名を入力する。すると、カッコの中はメソッド名で置き換えられ、新しいメソッドが作成される。新しいメソッドの中身は、選択した部分が移行される。

長くて読みにくいコードがある。一目で何をしているのか分かりくい。
<textarea name="code" class="c#:nocontrols" cols="60" rows="10"> 
if (DataGridView1.Columns[e.ColumnIndex].DataPropertyName == dt.COMMANDColumn.ColumnName)
{
    //なんらかの処理
 }
</textarea>

メソッドの抽出を実行する。
<a href="<$MTBlogURL$>img/METHODPICUP1.JPG" rel="lightbox"><img src="<$MTBlogURL$>img/t_METHODPICUP1.JPG" ></a>

メソッド名の入力する。
<a href="<$MTBlogURL$>img/METHODPICUP2.JPG" rel="lightbox"><img src="<$MTBlogURL$>img/t_METHODPICUP2.JPG" ></a>

メソッドを抽出した後のコード。
<textarea name="code" class="C#:nocontrols" cols="60" rows="10"> 
if (IsCommandColumn(e, dt))
{
    //なんらかの処理
}

//作成されたメソッド
private bool IsCommandCountColumn(DataGridViewCellValidatingEventArgs e, DataTableXX dt)
{
    return DataGridView1.Columns[e.ColumnIndex].DataPropertyName == dt.COMMANDColumn.ColumnName;
}
</textarea>

]]>
      
   </content>
</entry>
<entry>
   <title>コードスニペットをキーボードから入力する方法（C#)</title>
   <link rel="alternate" type="text/html" href="http://architect360.apricot-jp.com/500tips/c.html" />
   <id>tag:architect360.apricot-jp.com,2008://4.355</id>
   
   <published>2008-09-04T12:50:20Z</published>
   <updated>2008-09-04T12:58:01Z</updated>
   
   <summary>コードスニペットを簡単にキーボードから入力する方法があったのでメモする。たとえば...</summary>
   <author>
      <name></name>
      
   </author>
         <category term="500プログラミングTips" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://architect360.apricot-jp.com/">
      コードスニペットを簡単にキーボードから入力する方法があったのでメモする。たとえば、try-catch句を作成したい場合、tryだけキーボードから打ち込んで、TABキーを２回押すと、あら不思議！try-catch句ができあがる。常識！？

http://msdn.microsoft.com/ja-jp/library/z4c5cc9b(VS.80).aspx



      
   </content>
</entry>
<entry>
   <title>問い合わせによる一時変数の置き換え</title>
   <link rel="alternate" type="text/html" href="http://architect360.apricot-jp.com/520/post_43.html" />
   <id>tag:architect360.apricot-jp.com,2008://4.354</id>
   
   <published>2008-09-04T12:49:36Z</published>
   <updated>2008-09-04T12:50:09Z</updated>
   
   <summary>一時変数をやめて式の結果を直接使うことで、コードが短くなり見やすくなる。一時変数...</summary>
   <author>
      <name></name>
      
   </author>
         <category term="520 リファクタリング" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://architect360.apricot-jp.com/">
      <![CDATA[一時変数をやめて式の結果を直接使うことで、コードが短くなり見やすくなる。一時変数をなくすことで、メソッドの抽出、移動などがしやすくなる効果もある。

リファクタリング前・・・colCountとrowCountを一時的な変数として利用している。
<textarea name="code" class="vb:nocontrols" cols="60" rows="10"> 
Dim colCount As Integer = _dtChartData.Columns.Count
Dim rowCount As Integer = _dtChartData.Rows.Count

headerStartCell = worksheet.Cells(ChartInfo.DataRowNo, ChartInfo.DataColumnNo)
headerEndCell = worksheet.Cells(ChartInfo.DataRowNo, ChartInfo.DataColumnNo + colCount - 1)
</textarea>

リファクタリング後・・・一時的な変数を廃止
<textarea name="code" class="vb:nocontrols" cols="60" rows="10"> 
headerStartCell = worksheet.Cells(ChartInfo.DataRowNo, ChartInfo.DataColumnNo)
headerEndCell = worksheet.Cells(ChartInfo.DataRowNo, ChartInfo.DataColumnNo + _dtChartData.Columns.Count - 1)
</textarea>
]]>
      
   </content>
</entry>
<entry>
   <title>構成マネージャの利用方法</title>
   <link rel="alternate" type="text/html" href="http://architect360.apricot-jp.com/500tips/post_42.html" />
   <id>tag:architect360.apricot-jp.com,2008://4.353</id>
   
   <published>2008-09-04T12:37:52Z</published>
   <updated>2008-09-04T12:54:52Z</updated>
   
   <summary>ソリューションエクスプローラを右クリックして[構成マネージャ]を選ぶことで、ソリ...</summary>
   <author>
      <name></name>
      
   </author>
         <category term="500プログラミングTips" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://architect360.apricot-jp.com/">
      ソリューションエクスプローラを右クリックして[構成マネージャ]を選ぶことで、ソリューションのビルド構成を変更することができる。筆者は、DebugモードとReleaseモードの切り替えをするためと思っていたが、もっと便利な使い方があることがわかった。筆者は以前、クライアント・サーバアプリケーションとバッチ処理があるシステムにおいて、２つのソリューションに分けて開発していた。理由は、本番運用されるPCが全く異なることと、ひとつのソリューションにしてしまうと、クライアント・サーバアプリケーションのビルド時に、バッチ処理のアプリケーションも同じようにビルドされるため、スペックの低いPCでは時間がかかったためである。しかし、構成マネージャのソリューションの構成を新規に追加することで、バッチ処理のみのDebug構成やクライアント・サーバアプリケーションのみの構成を作ることができる。構成を切り替えることによって、ビルド時間を短縮することが可能。さらに、がクライアント・サーバアプリケーションとバッチ処理を同時に開発・テストするときは、複数のVisual Studioを立ち上げなくて済むのである。

      
   </content>
</entry>
<entry>
   <title>出来るか分からないことをやりますと言わないために</title>
   <link rel="alternate" type="text/html" href="http://architect360.apricot-jp.com/900/post_41.html" />
   <id>tag:architect360.apricot-jp.com,2008://4.352</id>
   
   <published>2008-09-04T12:35:12Z</published>
   <updated>2008-09-04T12:36:28Z</updated>
   
   <summary>お客さんからシステムに対する新しい修正・追加要望を受けた際、SEとしてはできれば...</summary>
   <author>
      <name></name>
      
   </author>
         <category term="900その他" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://architect360.apricot-jp.com/">
      お客さんからシステムに対する新しい修正・追加要望を受けた際、SEとしてはできれば期待に応えたいと考える。しかし、時間的、技術的制約がある中で「はい。やります（やってみます）。」と答えるのは軽率である。できなかった場合のリスクをすべてこちらで追うことになってしまう。時間的制約がある場合は、優先すべきものが何であるかを聞き、新しい要望を優先する場合の影響度を述べ、到達点の合意を得ることを忘れないようにする。技術的制約がある場合は、技術的にできない場合もあることを述べ、到達可能な妥協点や回避方法について合意するか、技術的制約が解決できる見通しを先に報告することを合意する。


      
   </content>
</entry>

</feed>
