Shizuku Blog ~ techbank.jp版~

~女性エンジニア けろ-みおの苦悩~

ログイン | ID登録 | ヘルプ


ニュース


当Blogにについて

当Blogは、けろ-みおが備忘録として活用しているBlogになります。掲載している内容について、必ずしも正しい情報を公開しているわけではありませんので予めご了承下さい。
当Blogで公開している記事に対して、質問がある場合は、techbank.jp掲示板でお問い合わせ頂くか、techbank.jp ID申請を行い、IDを作成した段階で当Blogにコメントする等してください。
原則、正体がわからない方からのBlogコメント欄を使ったご質問・ご指摘は、承っておりません。
コメント投稿・公開(承認)基準につきましては、 当Blogのコメント投稿についてをご確認ください。
テクニカルコミュニティ(techbank.jp)に設置しているBlogということもあり、皆様のご理解とご協力の程、宜しくお願いします。

自己紹介

けろ-みおと申します。「techbank.jp」の副管理人をやっております。

MVP Profile

0







けろ-みおの関連サイト





このBlogの人気度
フィードメーター - techbank.jpコミュニティ

techbank.jp Blog全体と近いBlog
あわせて読みたいブログパーツ

このBlogと近いBlog
あわせて読みたいブログパーツ

Blog購読者数
スカウター : techbank.jp







 

Silverlightアプリを作成し、デプロイした直後、 Initialize Error 2104 や 2105 エラーが

objectタグ等、XAPファイルを読み込む箇所で発生(正式には、onErrorでイベントハンドリングしたJavaScript で発生)した

場合の対処方法です。(かなりハマった・・・)

 

■Initialize Error 2104 対策

 

IISに対し、xap や xaml ファイルに対するMIME設定すると治る。(IIS6基準で説明)

 

手順1:インターネットインフォメーションサーバーをMMCで開く

 

手順2:Webサイトまたは、仮想ディレクトリのプロパティを開き、[HTTP ヘッダー]タブを選択

 

手順3:[コンテンツに有効期限を設定する]にチェックON、[有効期間]を[1分間]に設定する

   

 

手順4:[MINE の種類]ボタンを押し、xaml, xap 、2つファイルの関連付けを下記のように登録する。

     拡張子: xaml、 MIMEの種類: application/xaml+xml

     拡張子:xap、 MIMEの種類: application/octet-stream

    

 

手順5:[ホームディレクトリ] タブを選択し、[実行許可] に [スクリプトのみ] を選択する

 

■Windows Server 2003 環境で、ASP.NET 2.0 ( .NET Framework 2.0 ) と Silverlight 4 ( .NET Framework 4) を同一サーバーで混在させる時の注意点

 

また、上記とは関係ないですがですが、Silverlight 4 (.NET Framework 4) と ASP.NET 2.0(.NET Framework 2.0)  が

Webサーバー上に混在している Windows Server 2003 を使用している場合は、

アプリケーションプールが他の仮想ディレクトリやWebサイトで使用されていないアプリケーションプールを選択するか、

もしくは別途アプリケーションプールを作成し、設定した方が良いっぽい感じがしました。

ASP.NET 2.0 ( .NET Framework 2.0 ) のWebサイト上に、子であるSilverlight 4 ( .NET Framework 4) の仮想ディレクトリを

設定してもうまく稼働しなかったことが原因ですが、一番のネックは、アセンブリのバージョン相違により、

アセンブリのロードに失敗しやすいことです。

Silverlight 4 ( .NET Framework 4) をデプロイしているWeb.config で <clear /> をいれてみたり、

あるいは、dll参照を追加したり、親(Webサイト等)の設定を継承しないようlocation設定を入れたりしてみましたが、

なかなかうまくいかず断念。ASP.NET やIISの性質上、親の設定が継承されやすいため、

location や <clear />で精査しているだけ面倒です。

可能であれば、ASP.NET 2.0 ( .NET Framework 2.0 ) のWebサイトとSilverlight 4 ( .NET Framework 4) の

Webサイトを分け、さらに、アプリケーションプールを別にするか、親であるWebサイトを.NET Framework 4を

デフォルトにし、子である仮想ディレクトリを.NET Framework 2.0 に設定した方がまだマシでした。

 

■Initialize Error 2105 対策

 

原因は、ClientBin に配置されたxap ファイルの中身にエラー原因があります。

ローカライズされたDLLがXAPファイルに同梱されますが、

そのDLLの参照定義をAppManifest.xamlで行っています。

xapファイルの実態は、ZIPと同じなので、ClientBinフォルダに配置されているxapファイルの拡張子を、

zipに変更し、ファイルを解凍すると、AppManifest.xamlを簡単に取り出すことができます。

 

取り出したAppManifest.xamlで定義されている

<AssemblyPart Source="ja/System.ComponentModel.DataAnnotations.resources.dll" />
<AssemblyPart Source="ja/System.ServiceModel.Web.Extensions.resources.dll" />
<AssemblyPart Source="ja/System.Windows.Controls.Data.Input.resources.dll" />

を下記のように修正します。

<AssemblyPart Source="ja/System.ComponentModel.DataAnnotations.dll" />
<AssemblyPart Source="ja/System.ServiceModel.Web.Extensions.dll" />
<AssemblyPart Source="ja/System.Windows.Controls.Data.Input.dll" />

修正後、解凍したファイルを再びZIP圧縮し、ファイル拡張子を.xap に変更、ClientBinに

再配置すればこのエラーは回避できます。

 

Silverlight 4 で作ったアプリケーションをWindows Server 2003 環境にデプロイするのに、

こんなに苦労するとは思いませんでした。

 

同じ問題で悩む方がいると思うので、今後のために情報を残しておきます。

 

さて、techbank.jp著「はじめてのVisual Studio 2010」 が発売されて、まだ間もないですが、

techbank.jp では、読者サポートや補足、ページ数オーバーで書籍に掲載できなかったネタを

公開する場として、一部の著者さんにBlogエリアを提供することになりました。

今回の執筆に携わった著者の殆どは、既にBlogを書いているメンバーでしたが、

一部Blogエリアをおもちでない著者さんもいましたので、作成させて頂きました。

どうぞ皆様、よろしくお願いします。

IIJIMASさん

http://techbank.jp/iijimas/

チバヒロさん

http://techbank.jp/chibahiro/

IIJIMASさんは、かなり有名な方なので、説明不要としてw・・・というと怒られそうなので簡単に説明すると、

VSTOやMSI、C#がお得意な、とっても優しい方です。

はじめはそんなに親しくなかったのですが、あることがきっかけで、いろいろとお話するようになりました。

今では、techbank.jp のイベント関連のHelpや書籍関連にHelpで積極的に協力して頂いておりますw

一方、チバヒロさんは、私と知り合う前から、この私と当Blogの存在をご存じだったそうで、

さらに、私が現在勤めている会社に以前、お勤めになっていた経験があること等から、

同僚経由で紹介して頂きました。

急なお願いにも関わらず、VS2010のIDE新機能を中心にご執筆頂き、とても感謝しております。

お二人とも、「はじめてのVisual Studio 2010」 書籍の執筆にご尽力いただきましたが、

書籍に掲載できなかった内容や読者サポートやフォローを目的とした記事をUPするとのことですので、

読者の方は是非、お二人のBlogをご購読頂けると有難いです。

どうぞよろしくお願いします。

RSS:http://techbank.jp/Community/blogs/RawMainFeed.aspx

OPML:http://techbank.jp/Community/blogs/Opml.aspx

SSISの複数パッケージで、変数や接続マネージャの設定情報を共有するには、ちょっと面倒なことをやらないと、

ダメみたいっす。

■共通変数定義手順

手順1:

まず、Visual Studio 2008 で、SSIS(Integration Services)のプロジェクトを作成し、

下記のようなプロジェクト構成を用意します。

image

この例では、Package1.dtsx、Packpage2.dtsx が、独自の制御フローやデータフローを定義したものだと想定してください。

そして、Env.dtsx が Package1.dtsx と Package2.dtsx で共通で使用する変数やテキストファイル等の

フラットファイル、データベースの接続設定を定義するパッケージだとお考え下さい。

手順2:

 

Env.dtsx(共通定義用パッケージ)を開き、[制御フロー]のデザイン画面を選択し、[制御フロー]画面の

任意の場所を右クリックします。

メニューに[変数]という選択肢があるので、選択します。

image

手順3:

Env.dtsx(共通定義用パッケージ)のデザイナ画面の左側に

[変数]ウィンドウが表示されるので、試しに、変数a を下記のように設定します。

image

変数名:a

スコープ:パッケージのスコープ名が自動設定されます

データ型:String

値: Hello World

手順4:

開いているEnv.dtsx(共通定義用パッケージ)の[制御フロー]デザイナの任意の場所を右クリックし、

[パッケージの構成]を選択します。

image

手順5:

[パッケージ構成オーガナイザ]画面で、[パッケージの構成を有効にする]チェックボックスをONにします。

image

手順6:

[パッケージ構成オーガナイザ]画面で[追加]ボタンをクリックします。

image

手順7:

[パッケージ構成ウィザード]画面で[次へ]ボタンをクリックします。

image

手順8:

[構成の種類]で、変数の定義や接続マネージャーの情報をどこに格納するか選択します。

設定ファイルで手軽に接続先や変数の内容を変えたい場合は、[XML 構成ファイル]や[SQL Server]がおすすめです。

また、頻繁に設定内容を変更しない場合(永続的に保持したい場合)は、環境変数やレジストリに格納することもできます。

今回は、[構成の種類]で[XML 構成ファイル]を選択し、構成ファイル(*.dtsConfigファイル)の保管場所を指定します。

指定後、[次へ]ボタンをクリックします。

image

手順9:

[エクスポートするプロパティの選択]画面のオブジェクト欄で、変数a をドリルダウンし、

Properties から [Value]プロパティのチェックをONにします。

また、上記手順では紹介していませんが、[データフロー]で使用するフラットファイルやデータベース接続情報を共通化したい場合は、

事前に定義しておき、下記の画面のように、[接続マネージャ]から共通化したい接続設定を選択します。

選択後、[次へ]ボタンをクリックします。

image

手順10:

構成名に任意の名前を入力し、[完了]ボタンをクリックします。

また、[パッケージ構成オーガナイザ]画面に戻ったら、[閉じる]ボタンをクリックし、

Env.dtsx ファイルを保存します。

image

■各々のパッケージで共通変数を参照してみる

手順11:

Package1.dtsx を開き、デザイナの[制御フロー]タブ内の任意の場所を右クリックします。

その後、手順2と同じように、[変数]メニューをクリックします。

手順12:

Package1.dtsxデザイナ画面の左側に

[変数]ウィンドウが表示されるので、変数a を宣言します。

この際、[値]の欄は未入力にします。

image

変数名:a

スコープ:パッケージのスコープ名が自動設定されます

データ型:String

値: 空(ブランク)にしてください。

手順13:

開いているPackage1.dtsx の[制御フロー]デザイナの任意の場所を右クリックし、

[パッケージ構成]を選択します。

image

手順14:

手順5、手順6同様、[パッケージ構成オーガナイザ]画面で、[パッケージの構成を有効にする]チェックボックスをONにし、

[追加]ボタンをクリックします。

手順15:

手順7同様、[パッケージ構成ウィザード]画面で[次へ]ボタンをクリックします。

手順16:

[構成の種類]欄で、手順8で指定した、*.dtsConfig が保管されている場所を指定します。

指定後、[次へ]ボタンをクリックします。

image 

[次へ]ボタンをクリックした際、下記のようなダイアログメッセージが表示されますので、

[既存ファイルの再利用]を選択します。

image

手順17:

手順10同様、構成名に任意の名前を入力し、[完了]ボタンをクリックします。

また、[パッケージ構成オーガナイザ]画面に戻ったら、[閉じる]ボタンをクリックし、

Package1.dtsx ファイルを保存します。

image

■動作検証

手順18:

Package1.dtsx ファイルの[制御フロー]に図のような[スクリプトタスク]を[ツールボックス]ウィンドウから配置します。

image

手順19:

配置したスクリプトタスクをダブルクリックし、[スクリプト タスク エディタ]画面を開きます。

[ReadOnlyVariables]という項目に[User::a]と入力します。

(定義した変数aを読み取り専用で使用しますよという意味です)

入力後、画面下にある[スクリプトの編集]ボタンをクリックします。

image

 

手順20:

変数a をメッセージボックスで表示するよう、Mainメソッドに下記のコードを入力します。

(このとき、namespaceは変えないでください。ちなみに下記のコードはC#で記述してます。コードをパクるのは、Mainメソッドの中だけにしてください)

using System;
using System.Data;
using Microsoft.SqlServer.Dts.Runtime;
using System.Windows.Forms;

namespace ST_e339f3c5c4bc49f5b170179dd385a136.csproj
{
    [System.AddIn.AddIn("ScriptMain", Version = "1.0", Publisher = "", Description = "")]
    public partial class ScriptMain : Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase
    {

        #region VSTA generated code
        enum ScriptResults
        {
            Success = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Success,
            Failure = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Failure
        };
        #endregion


        public void Main()
        {
            MessageBox.Show(Dts.Variables["a"].Value.ToString());
            Dts.TaskResult = (int)ScriptResults.Success;
        }
    }
}

手順21:

ScriptMain.cs ファイルを保存し、ScriptMain.cs を開いているVisual Studio の画面を閉じます。

また、手順19で起動した、[スクリプト タスク エディタ]画面の[OK]ボタンをクリックします。

手順22:

Package1.dtsx ファイルを保存し、[デバッグ]メニューから[デバッグの開始]を選択します。

(F5 でもいいです)

スクリプトタスクの実行結果が黄色(正常終了)に変化し、Hello World のメッセージが表示されれば、

共通変数を参照させることに成功しています。

image

 

なお、コマンドラインで、共通変数や共通定義情報が格納されている*.dtsCofig ファイルをロードするには、

DTEXEC /File “C:\SSIS\Package.dtsx” /ConfigFile “C:\SSIS\SSISパッケージ共通定義.dtsConfig”

と指定すると、設定情報をロードできます。

DTEXEC のパラメータの意味については、

MSDNのdtexec ユーティリティをご覧ください。

また、SQL Server 2005 と SQL Server 2008 R2 では、パラメータによって動作が異なります。

MSDNの SQL Server 2008 R2 における Integration Services 機能の動作の変更 あたりも

ご確認頂ければと思います。いろいろと面倒ですが、慣れるしかありませんね。ご参考までにどうぞ。

(クレームをつけられたネタであったため、記事の内容を少し改変し、UPし直します。
前の記事も間違ってないと思っていますが、他の方々への配慮だと思い、改変版をUPします。)

プログラミング言語論やアルゴリズムに元々興味がなかった(動けばそれで良いと思っていたダメタイプ)ので、

今まで知らなかったのですが、BitVector32 と BitArray では、処理速度に違いがあることを知りました。

値の小さいフラグ値を使用する場合は、BitVector32の方が、BitArrayに比べてオーバーヘッドが少なくて、パフォーマンスも良いみたいです。

理由としては、32ビット分しか格納しないからとMSDNに書いてありましたが、どうなんでしょうね。

http://msdn.microsoft.com/ja-jp/library/system.collections.specialized.bitvector32%28VS.80%29.aspx

一方、BitArrayは必要に応じてサイズを決定できるので、大きいサイズのデータを格納するのには向いているというところでしょうか。

ちょっとスピードを測定してみましょうか。下記のようなコードを書いて、1万回と10万回で検証してみました。

C#

public static void DoBitVector32()
{

    DateTime startTime = DateTime.Now;

    for(int i = 0; i<=100000; i++)
    {
        var a = new { trueValue = new BitVector32(-1)[1], falseValue = new BitVector32(0)[1] };
    }

    DateTime endTime = DateTime.Now;
    Debug.WriteLine("DoBitVector32: " + endTime.Subtract(startTime).TotalMilliseconds.ToString() + "ms");
}

public static void DoBitArray()
{

    DateTime startTime = DateTime.Now;

    for(int i = 0; i<=100000; i++)
    {
        var a = new { trueValue = new BitArray(1)[0] = true, falseValue = new BitArray(1)[0] = false };
    }

    DateTime endTime = DateTime.Now;
    Debug.WriteLine("DoBitArray: " + endTime.Subtract(startTime).TotalMilliseconds.ToString() + "ms");

}

Visual Basic

Public Sub DoBitVector32()

    Dim startTime As Date = DateTime.Now

    For i As Integer = 0 To 100000
        Dim a = New With {.true = New BitVector32(-1).Item(1), .false = New BitVector32(0).Item(1) }
    Next i

    Dim endTime As Date = DateTime.Now
    Debug.WriteLine("DoBitVector32: " & endTime.Subtract(startTime).TotalMilliseconds.ToString() & "ms")

End Sub

Private Sub DoBitArray()

    Dim startTime As Date = DateTime.Now

    For i As Integer = 0 To 100000
        Dim a = New With {.true = New BitArray(1).Item(1) = True, .false = New BitArray(1).Item(1) = False}
    Next i

    Dim endTime As Date = DateTime.Now
    Debug.WriteLine("DoBitArray: " & endTime.Subtract(startTime).TotalMilliseconds.ToString() & "ms")

End Sub

結果:

  BitVector32 の結果  BitArray の結果
10,000回  1.0001ms  2.0001ms
100,000回  4.0002ms  16.0009ms

プロセッサやメモリによる違いもあるかもしれませんが、10,000回で約2倍、100,000回で約4倍近く違うんですね。

単純なビットフラグ操作なら、BitArrayではなく、BitVector32を使った方が良いみたいですね。

それから、BitArrayとBitVector32では、処理の記述方法がそもそも違うのと、上記のコードで比較すること自体間違っているという認識は

ありますが、処理の書き方1つで違いがあるということを認識する意味では有効なネタだと私は思っています。

 

ネタ元:http://techbank.jp/Community/forums/t/1129.aspx (techbank.jp 掲示板)

 

techbank.jp 著「はじめてのVisual Studio 2008」に掲載されているAjax Control Toolkit Web Siteプロジェクトテンプレートが、

Visual Studio 2008上で表示されず、プロジェクト作成ができないという問題を複数の読者の皆様から頂きましたので、

解決策をご案内させて頂きます。読者の皆様にはご迷惑をお掛け致しますが、ご確認の程、宜しくお願い申し上げます。

 

■解説対象環境

Windows 7,

Visual Studio 2008 SP1

 

■解決策

 

手順1:

http://ajaxcontroltoolkit.codeplex.com/releases/view/1813 から、

AjaxControlToolkit.zipをダウンロードします。

 

手順2:

ダウンロードしたAjaxControlToolkit.zipを右クリックし、プロパティを開きます。

[全般]タブにある、[ブロックの解除]ボタンをクリックします。

image

 

手順3:

ダウンロードしたAjaxControlToolkit.zipファイルを解凍ソフトを使って、解凍します。

 

手順4:

解凍したファイルから、AjaxControlExtenderフォルダを開きます。

image

 

手順5:

AjaxControlExtender.vsi を解凍ソフトを使って解凍します。

(ちなみに、ALZipという解凍ソフトを使っている場合は、AjaxControlExtender.vsiを右クリックし、

[ALZipで解凍]や[ここに解凍]を選択すると、綺麗に解凍することができます。)

image

 

補足情報:

なお、AjaxControlExtender.vsiをダブルクリックし、インストールすると下記のようなエラーが表示されます。

image

 

「A problem occured while running the installer. Please contact the

content author for problems with the content.

 Error message:

文字列の長さを 0 にすることはできません。」

 

原因はわかりませんが、Windows 7 との相性の問題なのか、

なんらかの展開ファイルが足りないのか詳しく調べていないのでわかりませんが、

上記エラーが発生しても、手順6以降の対応で問題を回避することができます。

 

手順6:

AjaxControlExtender.vsiで解凍された下記4つのZIPファイルを下記の場所に保存します。

※下記の表現で、%UserProfile%いうフォルダ表記がありますが、

 これはOSの環境変数で、%UserProfile% ログインユーザのデフォルトフォルダを示す

 エイリアス(ショートカット)なので、C:\User\Kero-Mio とメンドクサイ入力をせず、

 %UserProfile%と入力すると簡単にログインユーザのデフォルトフォルダにアクセスできます。

 

・AjaxControlExtenderItemVB.zip ファイル

  %UserProfile%\Documents\Visual Studio 2008\Templates\ItemTemplates\Visual Basic

  にコピーします。

・AjaxControlExtenderItemCS.zip ファイル

  %UserProfile%\Documents\Visual Studio 2008\Templates\ItemTemplates\Visual C#

  にコピーします。

・AjaxControlExtenderProjectVB.zip ファイル

  %UserProfile%\Documents\Visual Studio 2008\Templates\ProjectTemplates\Visual Basic

  にコピーします。

・AjaxControlExtenderProjectCS.zip ファイル

  %UserProfile%\Documents\Visual Studio 2008\Templates\ProjectTemplates\Visual C#

  にコピーします。

・AjaxControlToolkitWebsiteCS.zip ファイル と AjaxControlToolkitWebsiteVB.zip ファイル

  %UserProfile%\Documents\Visual Studio 2008\Templates\ProjectTemplates\Visual Web Developer

 

手順7:

Visual Studio 2008 を起動し、確認します。

[ファイル]メニュー - [新規作成] - [プロジェクト]を選択、[新しいプロジェクト]ダイアログを表示し、

[プロジェクトの種類] から [Visual Basic] もしくは、[Visual C#」を選択してください。

[テンプレート]エリアの下の方に「ASP.NET AJAX Control Project」が追加されているのを確認してください。

image

image

 

手順8:

ASP.NET Webサイト プロジェクト に対しても、確認します。

[ファイル]メニュー - [新規作成] - [Web サイト]を選択、[新しいWebサイト]ダイアログを表示します。

[マイ テンプレート]欄に AJAX Control Toolkit Web Site が表示されるのを確認してください。

image

 

これ以降の手順は、「はじめてのVisual Studio 2008」(出版社:秀和システム)の書籍と同じですので、

ご確認ください。

読者の皆様にはご迷惑をお掛け致しましたことお詫び申し上げます。

 

ネタ元: プログラミング入門書 かんたんシリーズ発刊のお知らせ  (野良さんのBlog)

      techbank.jp 監修&執筆書籍一覧(Amazon)

 

■かんたんシリーズ(技術評論社向け)にASP.NETを追加発売!

 

さて、技術評論社から techbank.jp 監修書籍の第一弾として、Visual Basic, Visual C#, Java の3冊を

2010/04 に発売致しましたが、その続編として、今度はASP.NETを7月に発売致します!

 

書籍名: かんたんASP.NET

出版社:技術評論社

著者: まさるさん

執筆協力(校正): かめたろさん

監修: techbank.jp

定価: 3465円

発売日: 2010/07/07 (実質は、7/1ぐらいから購入可能)

 

元々、まさるさんは、ASP.NETをよく理解されている印象を持っていたので、

執筆オファーした私の目に狂いはなかったと確信しています。

また、校正を担当したのも、ASP.NETを知り尽くしている、かめたろさんが担当しましたので、

techbank.jp が自信を持ってお届けするASP.NET入門書籍です。

ネタバレしたいところなのですが、書籍を買って頂ければ良さがわかると思いますので、

ASP.NETのAの字から学んでみたいという方は、是非、この機会に書籍をご覧になってみてください。

 

■はじめてのVisual Studio 2010(秀和システム向け)発売決定!


前作(はじめてのVisual Studio 2008)もtechbank.jp 著で発売致しましたが、

今作(はじめてのVisual Studio 2010)もtechbank.jp 著で発売することが決定いたしました!

 

書籍概要: http://www.shuwasystem.co.jp/products/7980html/2666.html

Amazonでのご予約はこちら

 

前作と違うのは、techbank.jp メンバーによる共著であること、

前作を100ページ以上上回るボリューム感、IDEの操作説明とアプリケーション開発の基礎と

感覚を学ぶことができる体系に仕上げております。

 

書籍名: はじめてのVisual Studio 2010 (TECHNICAL MASTER)

著者: techbank.jp

著者メンバー(順不同):

  野良さん

  けろ-みお

  小町えんじぇるさん

  かめたろさん

  gsf_zero1さん

  Gushwellさん

  IIJIMASさん

  チバヒロさん

出版社 : 秀和システム

執筆協力(校正): ↑のさん、他

監修: techbank.jp

定価: 3000円

発売日: 2010/07/02頃(少し遅れる可能性もあり)

(まだAmazonには情報がUPされてませんが、後、1週間ぐらいでUPされると思います)

 

話題のWindows Azure はじめ、テスト機能(TFSを強く紹介しているわけではありませんが)、

F#やDLR、Webアプリケーションの新デプロイ機能、Intellitraceやマルチモニタといった新機能も取り上げていますが、

WPFやSilverlight、MFCの機能(特にWindows7対応の機能中心)、旧バージョンにある機能についても

同様に取り上げています。

 

今作は、初心者の方が対象というよりかは、他言語や他のIDEを扱ったことがある方を対象としており、

プログラミングを覚えるというよりかは、Visual Studio 2010のIDE操作方法の説明が中心となっています。

是非、Visual Studio 2010 と合わせて、「はじめてのVisual Studio 2010」書籍も

手に取って頂きたく存じます。

 

どうぞよろしくお願いします。

 

最近、ネタの新旧問わず、当ブログの購読者が増え、大変喜ばしいことなのですが、

その反面、海外からのスパムコメントやPINGも増え、非常に悩ましい問題も抱えています。

またスパム投稿ではなく、他購読者がコメントした内容に対し、 誹謗中傷を行ったり、

あるいは技術的な観点が相違することからくる、クレームコメントが

人格否定、人権否定に発展するトラブルも増えています。

 

私がtechbank.jp というコミュニティの運営メンバーであるとはいえ、

techbank.jp というコミュニティ上に設置しているBlogの性質上、

Blogコメントを活用した表立った論争は好ましくないと考えております。

(技術的なディスカッションならOKですが、 論争ということになるとコミュニティの意と反してしまいます)

 

本件に関し、techbank.jp 新管理人である野良さんと相談した結果、

今後、当Blogのコメント欄については、下記の対応を実施することに致しました。

ご不便をお掛け致しますがご理解の程、宜しくお願いします。

 

  •  techbank.jp にID登録されていらっしゃる方(techbank.jp Bloggerメンバー含む)は、
    従来通り当Blogにコメント頂けると、コメント内容がすぐ反映され、どんな内容のコメントでも公開OKと致します。
    (コメントする際は、techbank.jp にログイン してからコメントしてください。)
    (また、techbank.jp IDをお持ちの方がコメントする場合は、下記に記載している制約は一切受けることはありません)

  • techbank.jp に ID をお持ちでない方が当Blogにコメントした場合、
    原則、承認制とします。
    コメントを投稿することはできますが、投稿コメントを公開するかどうかにつきましては、
    techbank.jpの利用規則もしくは、Blog主である私(けろ-みお)の
    客観的判断に基づいて公開するか否かを判断し、論争・トラブル・混乱が起こりえそうなコメント、
    相手に関係なく誹謗中傷を行うようなコメント、日本国憲法に反するコメント、
    社会的マナー(ネチケットは含まない)に反するコメント、
    Blogエントリに対する質問投稿を行うようなコメントは一切、公開(承認)致しません。

  • 一方、技術的な指摘や技術的なディスカッションについては、
    どんな方からの投稿であっても、なるべく投稿されたコメントを公開するよう努めます。
    ただし、議論が熱くなりすぎて、相手への配慮が欠けた言葉尻のきついコメント、
    トラブル・論争に発展する恐れのあるコメントであると判断した場合は、一切、公開致しません。
    (techbank.jp に ID をお持ちの方は除く)

    ※技術的な投稿ミスがあり、ミス投稿に対し、配慮のかけた指摘コメント投稿が
     なされた場合(コメント公開されなかった場合)であっても、
     当該を記事を速やかに修正する対応はさせて頂きます。
     (コメント欄にミス内容を指摘して頂ければ、コメントの承認公開するしない関係なく、
     当該記事を修正する対応は致します。)

  • techbank.jp に ID をお持ちでない方でも、Blog主である けろ-みお が面識ある方の
    コメント投稿につきましては、上記制約関係なく、原則、公開(承認)致します。
    面識あるというのは、リアルでお会いしたことがある方、コミュニティでなんかの接点があり、
    互いにメールアドレス等の連絡先を存じている方、著名人を指します。

  • 今後、techbank.jp に ID をお持ちでない方がコメント欄に質問を投稿する行為を禁止致します。
    質問をどうしてもしたい場合は、techbank.jp 掲示板 (こちらもtechbank.jp IDが必要ですが)をご利用頂くか、
    techbank.jp のID作成申請を行い、申請が承認され、IDが作成された後にコメントする等してください。

  • コメント文面に日本語文字を1文字も含んでいない場合は、スパム投稿とみなし、
    自動的に投稿したコメントを削除致します。
    (techbank.jp Blogシステム全体が現在そのような仕様で稼働している関係上)


以上になります。

要点としては、面識がなく、正体も明らかにできないような方からのコメントは公開できないという趣旨です。

なお、このルールは、当Blogにのみ適用しているルールであり、techbank.jp で公開している

他のBloggerさんのBlogには適用しておりませんので、ご注意ください。

当スタンスにつきましては、Blog左側のメニューにリンクを貼っておきたいと思いますので、

ご一読頂ければと思います。

未熟なブログでありますが、今後とも宜しくお願いします。

 

まだ使い慣れていないので、自分メモ用です。

内容に間違いがあっても、責任は追えません。

 

Windows + → – Windowを右側に配置
Windows + ←  – Windowを左側に配置
Windows + Shift + ↑  – 縦幅の最大化
Windows + Shift + ↓  – 縦幅の最小化
Windows + Home – アクティブウィンドウのクリア
Windows + Space – アクティブウィンドウの一時的な非表示
Windows + T – 各タスクバーのプレビュー表示
Windows + P – プロジェクタ等、ディスプレイの表示先表示
Windows + +  拡大表示
Windows + – 最小表示(等倍表示に戻る)
Shift + タスクバーをクリック: 同じ種類のWindowを新規起動
Windows + D – デスクトップの表示
Windows + M – すべてのWindowの最小化
Windows + U – コンピュータの簡単操作ウィンドウを開く
Windows + F – 検索Windowの表示
Windows + X – モビリティセンターの表示
Windows + R – [ファイル名を指定して実行]を表示
Windows + E – エクスプローラの表示
Windows + L – コンピュータのロック
Windows + Pause [Break] – コンピュータのプロパティ(システム)を開く
Windows + [number] – タスクバーの表示されている左側からの
並び順番号で指定されたWindowを新規起動する
Windows + Tab – Windows Aeroモード

 

PowerShellを使用すると、レジストリアクセスが比較的楽に行えるおかげで、

MSIEXECとの合わせ技で自作アプリケーションのアンインストールやインストールの自動化ツールを

簡単に実装することができます。

MSIファイルの製品コード(GUID)がわからないという場合もPowerShellとレジストリを使って、

製品コード(GUID)を簡単に探せるのはいいですね。

本業で必要だったので作成したツールですが、今後も使う場面があるかもしれないので、

少し加工したサンプルコードをメモっておきます。

(加工後、コードの検証はしていないので、パクる方は、自己責任でお願いします)

 

function global:Invoke-Install 
{
    # このコマンドレットの引数(IISのWebサイトID)を取得
    param($WebSiteId); 

    BEGIN {
        Write-Host "初期化開始"
                
        # MSIファイルの置き場
        $msiPath = "C:\work\MSI"
        
        # ログ出力先
        $LOG_PATH = "C:\work\Log\Setup\"        

        # MSIファイル名
        $msiFiles = @{ "Web" = "WebApplication.msi"; 
                     "Console" = "ConsoleApplication.msi" }

        # MSIファイル名とPATHを生成
        $msiFiles["Web"] = (Join-Path $msiPath $msiFiles["Web"])
        $msiFiles["Console"] = (Join-Path $msiPath $msiFiles["Console"])

        # ログ出力先ディレクトリの作成
        if ( !([System.IO.Directory]::Exists($LOG_PATH)) ) {
            New-Item $LOG_PATH -type directory
        }
    }
    PROCESS  {

        Write-Host "インストール開始"
       
        # 旧バージョンがインストールされているか抽出する(MSI作成者が けろ-みお のものを探す)
        $oldVersionInstalled = (Get-ChildItem hklm:\software\microsoft\windows\currentversion\uninstall | `
                                Where-Object -FilterScript { $_.GetValue("Contact") -eq "けろ-みお"} | `
                                ForEach-Object -Process { $_.GetValue("UnInstallString") })
        
        # 旧バージョンがある場合
        if ( $oldVersionInstalled -ne $null )
        { 
            # 旧バージョンをアンインストール
            foreach( $oldVersion in $oldVersionInstalled )
            {
                $uninstallCommandArray = $oldVersion.split("/")
                $uninstallCommandArray[1] = $uninstallCommandArray[1] -replace "I", ""
                $parameters = "/qn /uninstall " + $uninstallCommandArray[1] + " REMOVE=ALL"
                $uninstallStatement = [System.Diagnostics.Process]::Start($uninstallCommandArray[0].Trim(), "$parameters") 
                $uninstallStatement.WaitForExit()         
            }
        }
        
        # 新バージョンをインストール
        foreach( $installItem in $msiFiles.GetEnumerator() )
        {         
            switch ($installItem.Name)
            {
              "Web" {
                $targetDir = " TARGETSITE=/LM/W3Svc/RRRRR TARGETDIR=SubSystem" -replace "RRRRR", $WebSiteId
              }
              "Console" {
                $targetDir = " TARGETDIR=D:\work"
              }
            }
            
            Invoke-InstallCommand $installItem.value $targetDir $LOG_PATH
        }
        
        Write-Host "インストール完了"
    }
    END {
        Write-Host -NoNewLine "処理を完了するには何かキーを入力してください"
        $null = $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
        Write-Host ""
    }
}

function Invoke-InstallCommand($msiPath, $targetDir, $logPath) {

    [String]$base = "/qn /package %MSI_PATH% %TARGET_DIR% /l+* %LOG_PATH%"
    
    [String]$msiFileName = $(Get-Item $msiPath).Name -replace ".msi", ""
    [String]$timestamp = (Get-Date -f yyyyMMddhhmmss)
    [String]$logFileName = "Install" + "_" + $msiFileName + "_" + $timestamp + ".log"
    [String]$buildLog = (Join-Path $logPath $logFileName)
    
    [String]$parameters = $base -replace "%MSI_PATH%", $msiPath -replace "%LOG_PATH%", $buildLog -replace "%TARGET_DIR%", $targetDir
    
    $installStatement = [System.Diagnostics.Process]::Start("msiexec.exe", "$parameters") 
    $installStatement.WaitForExit() 
}

# IISで既定のWebサイトにインストールする場合は、1を設定します。
# それ以外のWebサイトにインストールする場合は、IIS Web サイトの識別IDを設定します。
$WebSiteId = "2032732802"
Invoke-Install $WebSiteId

 

ポイントは、レジストリのキーをGet-ChildItemコマンドレットで取得できちゃうところですかね。

インストール済みアプリケーションの製品コードはレジストリに格納されるので、

もし、製品コードが毎回変わってしまうようなインストーラーを作成されている場合は

(ようは、Upgradeをサポートしないインストーラーを作られた場合)

上記のサンプルはそこそこ使えると思います。

 

UpgradeをサポートするようMSIを作成している場合は、このツールを改変し、

アップグレード用のMSIEXECをコールすると良いです。

 

それにしても、本業と書籍執筆関連、MCP受験となにかと忙しく、このBlogが放置気味になっています。

更新を楽しみにされていらっしゃる方には申し訳ございません。

また、落ち着いたら、ため込んでいるBlogネタを一気に書きたいと思います。

 

ネタ元:[VS2008] : BI(ビジネス インテリジェンス) プロジェクトテンプレートのインストールパターン

 

VS2005, VS2008 でも、SQL Server のバージョンとSPのバージョンが完全に合致しないと

インストールできないのはわかっていたけど、VS2010でもどうやら状況は同じみたいです。

 

ようは、BIプロジェクトはVS2010から、作成できない、

言い換えれば、VS2010に対応したBIプロジェクトを作成することはできないというわけです。

これは、SQL Server のバージョンが2005、2008、2008 R2、なんであったとしても、

VS2010を使っている以上、BIプロジェクトは作れないということになります。

 

参考元:http://support.microsoft.com/kb/983332/ja

 

せめて、同時期に発売するSQL Server 2008 R2 用のBIには対応してもらいたかったんですけど、

いくらBIが特殊プロジェクトだといっても、対応すべきだと思いますよ。

MSさん、このあたり、検討しておいてくださいね。

本件で完全に参っている、けろ-みお でした。

 

 

素材から全部こだわった techbank.jp TOP ページを再作成しました。

 

新サイトのデザイン:http://techbank.jp/

 

これで、少しは見やすくなったかと。

後は、各コンテンツの親玉になっているMasterページをリニューアルしたデザインにしなきゃ

いけないんですが、今日はもう眠いので、また合間をみつけながら、

少しずつデザイン統一していきます。

 

当面はこのデザインで落ち着こうと考えておりますので、宜しくお願いします。

(できれば新サイトデザインの感想欲しいっす。結構気合い入れて作ってるのでww)

 

平素よりtechbank.jp をご利用頂き、誠に有難うございます。

さて、techbank.jp では、2010/05 から下記の通り、

運営体制を変更させて頂く運びとなりましたので、ご連絡申し上げます。

 

■旧体制

管理人:けろ-みお

副管理人:HIRO、野良

 

■新体制

管理人:野良

副管理人:けろ-みお

 

なお、体制が変わっても運営そのものに変更はないため、利用者の皆様には

従来通りBlogや掲示板、技術本執筆・校正・監修、オフラインイベントの開催等、

続けていく所存でございます。

 

また、受付窓口用メールアドレス:info@techbank.jp もそのままご利用頂けるように

なっておりますので、引き続き宜しくお願いします。

 

昨晩から、techbank.jp サーバーのネットワーク障害が発生し、何度もサーバー再起動をしている中、

ネットワークは回復したものの Webサイトが起動しない状態でした。

ご利用の皆様には先にお詫び申し上げます。

 

さて、ネットワーク回復後、Webサイトにつながらない原因を調べてみると、SQL Server のVIAサポートライブラリが

エラーになっていることが判明。イベントビューアを見ると、こんなエラーが出てると思います。

 

  • SQL Server が VIA サポート ライブラリ [QLVipl.dll] の初期化に失敗しました。
    この失敗は通常、VIA サポート ライブラリが存在しないか、
    または壊れていることを示します。VIA ネットワーク プロトコルを修復するか無効にしてください。エラー: 0x7e。

  • エラー 0x7e、状態コード 0x60 で、TDSSNIClient の初期化に失敗しました。理由: VIA リスナを初期化できません。
    指定されたモジュールが見つかりません。

  • エラー 0x7e、状態コード 0x1 で、TDSSNIClient の初期化に失敗しました。
    理由: 初期化は、インフラストラクチャ エラーが発生して失敗しました。以前に発生したエラーを確認してください。
    指定されたモジュールが見つかりません。

  • ネットワーク ライブラリで内部エラーが発生したので、ネットワーク ライブラリを起動できませんでした。
    原因を判断するには、このエラーの直前に発生したエラーをエラー ログで確認してください。

  • SQL Server は FRunCM スレッドを起動できませんでした。
    関連する可能性のある問題の情報については、SQL Server エラー ログと Windows イベント ログを確認してください。

 

ググってみると意外と対処方法知らない人が多いことがわかったので、誰にでもできる上記対処方法をご案内します。

上記エラーが出た場合、SQL Server のサービスやインスタンスが立ち上がらなくなりますので、

下記の対処方法、応急措置を覚えておくといいかもしれません。

 

なお、エラーの原因はハードウェアがVIAプロトコルに対応していないにも関わらず、VIAを有効にしていた、

もしくは、VIA(Virtual Interface Adapter)がなんらかのハードウェア障害を起こした場合に発生しますので、

そのための対処方法、応急措置手順をご案内いたします。

 

  1. [すべてのプログラム] - [Microsoft SQL Server 2008(または2005)] - [構成ツール] - [SQL Server 構成マネージャ] を開く

  2. [SQL Server Configration Manager] から、[SQL Server ネットワークの構成] を展開する

  3. [MSSQLSERVER] または、各インスタンス毎のプロトコルを選択する

  4. [プロトコル名]から[VIA]を選択し、右クリックで[無効化]をクリックします。
    image

  5. [管理ツール] - [サービス] を選択し、[MSSQLSERVER] または、任意のSQL Serverインスタンスのサービスを再起動または開始します。

 

これで、エラーはなくなると思いますが、もし、VIAをサポートするハードウェアで障害が発生していた場合は、

ハードウェアベンダーに問い合わせた方が良いです。

今回のtechbank.jpサーバーの場合は、一旦VIAを無効にし、TCP/IP のみでSQL Server を再開させ、復旧させましたが、

VIAはサポートしているサーバーを使っているため、明日、ハードウェアベンダーに問い合わせてみようと思います。

 

上記、参考にして頂ければ幸いです。

 

techbank.jp にID登録されていらっしゃる方は、MLを通じて、兼ねてから事情をご存じかと思いますが、

現在、techbank.jp では、JavaScriptとPHP, C++ の入門書籍を執筆&校正頂ける

スタッフの方を募集しております。

MLでだいぶ募ってみたのですが、手を挙げて頂ける方がいなかったため、深刻な人手不足となっております。

 

もし、ご協力頂ける方、もしくは、書籍執筆に興味のある方は、info@techbank.jp 宛にご連絡

頂きたいと思います。

なお、書籍の内容と募集内容につきましては、下記の通りとなっております。

 

■出版社:中堅出版社(2社)

■監修:techbank.jp

 

■著者:1言語1冊1人著者で執筆。

 ※すでに同じシリーズの書籍のうち、VB、C#、Java については、執筆を終え、
  2010/04/25 に techbank.jp 監修本として発売決定!!!

 ※ASP.NET、VC++、XML、UMLについても現在進行中

 ※ただし、Visual Studio 2010 の方は著者が既に決定しており、現在募集しておりません。

 

■募集スタッフ

・JavaScript の執筆者(1名) → 決定!

・PHP の執筆者(1名) → 決定!

・C++ の執筆者(1名)※こちらは、共著になる可能性があります

・C++、またはVisual Studio 2010の書籍校正スタッフ(各3名程度)

 

■報酬

・各書籍の執筆者については、出版社を通じて印税をお支払いします。(詳細はお問い合わせください)

・書籍校正スタッフについては、報酬なし。

 ただし、校正スタッフ(執筆協力者)として、書籍の裏表紙に本名とプロフィールを掲載させて頂くことで、

 御礼とさせて頂きます。

 

■応募条件

下記のすべての条件をクリアされた方のみ応募可能です。

1.執筆者、校正スタッフ共、techbank.jp にID登録して頂けること。

2.日本国内在住されていること

3.著者・校正スタッフ共、社会人で25歳以上の方(業種問わず)、

  もしくは、上記25歳以上という条件に合致しない方は、IT業界で社会人としてお仕事されており、

  ITに対する向上心、興味が強い方

  (高校生、大学生、フリーターの方はNG。フリーエンジニアの方は大歓迎します)

2.書籍発売後、読者からの質問にお答え頂けること(techbank.jp掲示板を利用)

3.執筆者については、競合出版社様で同様の書籍を執筆していないこと

4.他言語の執筆者並び、校正スタッフ、監修スタッフ、出版社側の担当者と

  一切のトラブルを起こさず、監修者/出版社の依頼事項に従って素直に執筆作業を進めることができる方

  (著作権の権利主張、自己主張が激しい方、出版社・監修側のスタンスに常にクレームを言う方の

  ご応募はご遠慮ください)

5.著者、校正スタッフ共、担当する言語を使ったプログラミング経験の有無は問いませんが、

  特定のプログラミング言語で、基礎レベル以上の知識を有していること。

  (プログラミング初心者はNG)

6.メールでの連絡が可能であること

 

■期間/スケジュール/規模

即日~2010/10 頃まで。(スケジュールが厳しいという方は、2010/12 まで延長調整は可能です)

400P~550P 程度の書籍ボリュームです。

 

■書籍発売時期

2011年 春(C++、PHP、JavaScriptの場合)

2010/07 (Visual Studio 2010の場合)

 

■応募方法

著者希望の方:

 2010/04/14までに、info@techbank.jp 宛にご連絡下さい。

 それ以降の応募は今回承りませんので、予めご了承下さい。

校正スタッフ希望の方:

 info@techbank.jp 宛にご連絡下さい。校正スタッフ希望の方は随時募集しております。

 

■選考基準

著者希望の場合 

 ・上記、応募条件をすべてクリアしていること

 ・techbank.jp 運営スタッフ陣の誰かと面談して頂き、問題ないと確認できた場合、

  出版社の方をご紹介します。(関東・首都圏在住者のみ)

 ・なお、地方在住者の方は、SkypeやWindows Live Meeting を使った面談を実施させて頂きます。

 

校正スタッフ希望の場合

 techbank.jp に対してご協力頂ける姿勢をもっているかを確認させて頂くことがありますが、

 通常面談等はございません。ただし、年齢が若かったり、運営メンバーが良く知らない方に関しては

 面談を実施させて頂くことがございます。上記応募条件をクリアしていれば、どなたでもご応募できます。

 

■その他

 本業が正社員でお仕事されている方については、書籍執筆が副業にあたる可能性があり、

 お勤めになっている企業によっては、副業が禁止されているケースがあります。

 もし、執筆者として応募されたい方は、事前にお勤めになられている会社に許可を取ってから

 ご応募ください。万一のことがあっても、techbank.jp では責任を負いかねますので、

 予めご了承ください。

 (ただし、会社によっては、企業名を出すことで執筆OKとしたり、企業名を出さないことで執筆をOKしたり、

 各企業の扱いが異なる場合があります。そういった諸条件がある場合は、応募時にお伝え下さい)

 

 また、本業に影響を与えない範囲で、執筆や校正作業を実施して頂くことを前提としておりますが、

 今回の依頼は、執筆スケジュールが、かなりシビアです。ある程度、執筆者のスピードが求められます。

 

もし、技術本の執筆と校正にご興味ある方、いらっしゃいましたら、是非、ご一報下さい。

たくさんのご応募、お待ちしております。

Posted けろ-みお | no comments
分類:

 

さらなるtechbank.jp Blogger さんを新たにお招き致しましたのでご紹介致します。

 

saltさん

http://techbank.jp/salt/

 

techbank.jp Blog 全体のRSSフィードでもご購読頂けます。

http://techbank.jp/Community/blogs/RawMainFeed.aspx

 

以前から、saltさんのことは、奥主さんが運営しているIIS7&Web勉強会でお互い存じていたのですが

あることがきっかけで、Blogを書いて頂けることになりました。

お得意どころは、XML 関連と聞いておりますが、全般的にいろんなことを知っている方なので、

Developer向けもIT Pro向けも、いろんなネタが公開されるのではないかと思っています。

 

是非、saltさんのBlogを宜しくお願いします。

 

最新投稿をさらに見る 次ページ »