アクセスカウンタ

プロフィール

ブログ名
かるあ のメモ
ブログ紹介
主にメモっぽいことに使ってます。
会議室で話題を自分なりに整理するためにも使ってます。
この頃は VisualStudio2010 や Silverlight 関連もちょこちょこ触っています。ASP.NET AJAX 4.0 を調べ始めました。

はてなもやってます。
かるあのスニペット
Twitterも始めました。
@karuakun
CodeZineあたりで記事を書いています。
WINGSプロジェクト かるあ (杉山 洋一)
help RSS

ブログのお引越しをします。

2010/10/04 03:05

皆さんこんにちは、連載の途中ですがブログをお引越しさせていただきます。

お引越し先は、先日Windows Live Spaceの移行先として発表された、Wordpress.com上のブログサービスです。アバナードに入ってめっきりブログのポストが減ってしまったのですが、先日の退職を機にまたこっちも頑張っていこうと思っています。

 

以降先はここです。
⇒かるあのメモ on Wordpress http://karuakun.wordpress.com/

 

 

 

 

Googleの解析結果を見ると、ここ数か月(数年?)ほとんど更新がなかったのですが、一応読んでくれている方がいるので、このブログには特に手を加えずそのまま残しておきます。コンテンツの移行も考えたのですが、あまり意味はなさそうなので一からのスタートです。

数年前からブログの投稿にはWindows Live Writerを使っています。ブログサービス上のスタイルなんかを考慮してくれるので、手元で書いた記事がどのように表示されるかを確認しながら、簡単にブログサービスにアップロードできます。画像の貼り付けでブログサービスに画像をアップロードしてくれるのも大きな魅力ですね。

ウェブブログでもWindows Live Writerを使うことができたんだけれど、どうもスタイルが良くないらしくて、Live Writer で書いた記事がどうも崩れるし、いくつか対応されていない機能があるみたい。しかも、どっちが悪いのかバージョンアップのたびに微妙におかしくなっていくし。。。

一番つらいのはスタイルが編集中に適用されないので最終的にどんな記事になるかは、公開してみないとわからないところ、あとなぜか記事に張り付けた画像の自動アップロードができなくなっちゃったんですよね。

そこをとると、MicrosoftがLive Spaceの移行先に選んだだけあって、Windows Live Wirterを使ったWordpressでの記事の投稿は本当に楽ですね。

記事へブログ気持玉 / トラックバック / コメント


MVVM Light Toolkitを使ってみよう。その2 MVVMの復習

2010/10/02 21:24
さて、ぼーっとしているうちに日があいてしまいましたが、MVVM Light Toolkitの使い方を説明する前に、MVVMについて復習しておきましょう。

■ MVVMとは?
Model-View-ViewModelの頭文字をとった、アプリケーションのUI分離パターンの一つです。
UI分離パターンを使うと、各層の依存関係が薄くなり、アプリケーションの修正、複数人数での分散開発、単体テストのしやすさなどの面で利点があります。
また、ExpressionBlend 4からは、デザインツール側でもMVVMがサポートされていることから、デザインツール側でアプリケーションをデザインする際にも各層が分離されているということが重要になってきます。

MVVMでは、有名なMVC(Model-View-Controller)をベースに、バインド機能をより使いやすい形に変換したパターンになっています。

MVC、MVPの詳しい説明に関しては、猪股さんの解説が分かりやすいのでこちらへw。
http://matarillo.com/general/uipatterns.php

実はMVVMの考え方は、この中で解説されているアプリケーションモデルにとても似ています。MVVMでは、MVCが苦手としているModelのデータとViewのデータの同期と、Modeleがもつメソッドの呼び出しなどを、ViewからViewModelへのバインド経由で実行するといった形を取ります。
ViewModel経由でバインドされることで、ModelとViewModelはViewから切り離され、テストや分散開発がしやすい状況になるわけです。

■ 何はともあれ、最初のMVVMアプリケーション
まずはMVVMがどんなものかを理解するためにも、MVVM Light Toolkitを使わないで簡単なMVVMの更新処理を書いてみましょう。



○どんなサンプル?
今回サンプルにするのは、ユーザーの編集画面です。このサンプルでは入力されたデータを保存したり、読出したりするサンプルです。
サンプルではViewModelにロードされたユーザー情報と、データの保存、読み込みと行ったコマンドを、Viewにバインドしユーザーのアクションに応じてViewModelからModelの情報を操作します。



○Model-(データとデータに対する振る舞い)
モデルは特定のドメイン(領域)の問題を解決するために分析されたデータモデルです。
今回は単にユーザーを識別するIdや名前、郵便番号のデータを持つエンティティークラスです。特にこのモデルに対する振る舞いは定義していません。

    public class ユーザー
  {
       public int Id { get; set; }
       public string 名前 { get; set; }
       public string 郵便番号 { get; set; }
   }


○ViewModel -(ViewにバインドしてModelの操作を行う)
Viewに対してバインドを行うモデルとモデルに対するコマンド、他のViewModelに対するメッセージなどを公開します。
プロパティーの実装
View側では、ViewModelで公開されたプロパティーに対してバインドを行うため、ViewModelではユーザークラスをプロパティーとして公開します。
またView側での変更通知を有効にするため、INotifyPropertyChangedインターフェイスを実装します。
public class UserViewModel: INotifyPropertyChanged
   {
       public UserViewModel()
       {
           if (ユーザー == null)
               ユーザー = new ユーザー();
       }

       #region プロパティー
       // Viewにバインドするため、ユーザーモデルをプロパティーとして公開する。
       private ユーザー _ユーザー;
       public ユーザー ユーザー
       {
           get { return _ユーザー; }
           set
           {
               if (ユーザー == value)
                   return;
               _ユーザー = value;
               RaisePropertyChange("ユーザー");
           }
       }
       #endregion

       #region INotifyPropertyChanged
       public event PropertyChangedEventHandler PropertyChanged;
       public void RaisePropertyChange(string propertyName)
       {
           if (PropertyChanged == null)
               return;
           PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
       }
       #endregion

       #region コマンド
       // コマンド
       #endregion
   }


コマンドの実装
プロパティー同様に、Viewからバインドするコマンド(OnSave、OnLoad)を定義し、RelayCommand経由でそれぞれの処理(Saveメソッド、Loadメソッド、)に関連付けます。
コマンド自体はICommandインターフェイスを実装しているクラスである必要がありますが、コマンドごとにクラスを定義するのも大変なので、更新処理をデリゲートとして定義できるRelayCommandクラスを作成しています。(RelayCommandについては後述)
また、SaveメソッドとLoadメソッドはサンプルとして固定データを読み込んだり、Viewで入力されたデータを表示するようにしています。実際にはWCFやWCF RIA Servicesなどを使って、サーバー側のサービス経由でデータの操作を行ないます。
public class UserViewModel: INotifyPropertyChanged
   {
       public UserViewModel()
       {
           if (ユーザー == null)
               ユーザー = new ユーザー();

           OnSave = new RelayCommand(Save, parameter => true);
           OnLoad = new RelayCommand(Load, parameter => true);
       }

       #region プロパティー
       #endregion
       #region INotifyPropertyChanged
       #endregion

       #region コマンド
       public RelayCommand OnSave { get; private set; }
       public void Save(object parameter)
       {
           // 入力されたデータを表示する。
           // 実際はサービスの呼び出しを行ってデータをサーバー側に保存する。
           MessageBox.Show(string.Format(
                   "Id={0}\n名前={1}\n郵便番号={2}",
                   ユーザー.Id, ユーザー.名前, ユーザー.郵便番号));
       }

       public RelayCommand OnLoad { get; private set; }
       public void Load(object parameter)
       {
           // 固定データをユーザークラスにロードする。
           // 実際にはサービス経由でユーザーを検索する。
           ユーザー = new ユーザー
           {
               Id = 1,
               名前 = "かるあ",
               郵便番号 = "181-0013",
           };
       }
       #endregion
   }


○View-(Silverlightの画面)
ViewはViewModelを表示するためのユーザーインターフェイスです。

ViewModelのインスタンス化
View側でViewModelを利用するためにxmlnsでxmlの名前空間(9行目)を定義します。
同時にStaticResourceとしてlocal:UserViewModelを定義(12行目〜14行目)することで、Viewが実態化したさいにViewModelも実体化されます。
<navigation:Page
   x:Class="PlaneMVVMApplication.Views.Hello.HelloView"
   xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
   xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
   xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
   mc:Ignorable="d"
   xmlns:navigation="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation"
   xmlns:local="clr-namespace:PlaneMVVMApplication.Views.Hello"
   Title="HelloView Page">

   <UserControl.Resources>
       <local:UserViewModel x:Key="viewModel" />
   </UserControl.Resources>
   <Grid x:Name="LayoutRoot" DataContext="{StaticResource viewModel}" Height="120" Width="250">
   </Grid>
</navigation:Page>


プロパティーとコマンドのバインド
GridのDataContextに、StaticResourceとして定義したUserViewModelをバインドし、TextBoxやTextBlockにユーザーの各プロパティー情報をバインドします。

また、読み込みや保存と行ったボタンに対し、ViewModelで公開したOnLoadやOnSaveといったRelayCommandをバインドします。
   <Grid x:Name="LayoutRoot" DataContext="{StaticResource viewModel}" Height="120" Width="250">
       <!-- RowDefinitions, ColumnDefinitionsの定義 -->
       
       <TextBlock Text="Id" Grid.Column="0" Grid.Row="0" />
       <TextBlock Text="{Binding ユーザー.Id}" Grid.Column="1" Grid.Row="0" />
       
       <TextBlock Text="名前" Grid.Column="0" Grid.Row="1" />
       <TextBox Text="{Binding ユーザー.名前, Mode=TwoWay}" Grid.Column="1" Grid.Row="1"/>

       <TextBlock Text="郵便番号" Grid.Column="0" Grid.Row="2" />
       <TextBox Text="{Binding ユーザー.郵便番号, Mode=TwoWay}" Grid.Column="2" Grid.Row="2"/>

       <StackPanel Orientation="Horizontal" Grid.Column="1" Grid.Row="3">
           <Button Content="読み込み" Command="{Binding Path=OnLoad}" />
           <Button Content="保存" Command="{Binding Path=OnSave}"  />
       </StackPanel>
   </Grid>

Silverlight 3まではButtonコントロールはICommandインターフェイスを実装していなかったので、コマンドバインディングを使いたいときはMVVM Light ToolkitやPrismが提供するコマンドバインディングを利用する必要がありました。



○サンプルの実行結果
読み込みボタンをクリックすると、ViewModelに定義したLoadメソッドが呼び出され、ユーザーがViewに表示されます。

また、保存ボタンをクリックすると、ViewModelに定義したSaveメソッドが呼び出され、Viewで修正したデータが表示されるのを確認できます。


バインドの機能を利用してUIとViewModelのデータとコマンドをバインドすることで、Viewで入力されたデータの詰め替えとメソッドの呼び出しロジックがSilverlightのコードビハインドからなくなったことを確認できると思います。

○RelayCommand
コマンドバインドでバインドできるコマンドは、ICommandインターフェイスを実装したクラスである必要があります。
ただ、保存や読込といったコマンドごとにクラスを作っていくのは大変なので、多くの場合RelayCommandというユーティリティークラスを各自定義してコマンドをバインドします。

RelayCommandのサンプル
   public class RelayCommand : ICommand
   {
       public event EventHandler CanExecuteChanged;
       private Func<object, bool> _canExecuteAction;
       private Action<object> _executeAction;

       public RelayCommand(Action<object> executeAction, Func<object, bool> canExecuteAction)
       {
           this._executeAction = executeAction;
           this._canExecuteAction = canExecuteAction;
       }

       public bool CanExecute(object parameter)
       {
           return _canExecuteAction(parameter);
       }

       public void Execute(object parameter)
       {
           _executeAction(parameter);
       }

       public void RaiseCanExecuteChanged()
       {
           if (CanExecuteChanged != null)
           {
               CanExecuteChanged(this, EventArgs.Empty);
           }
       }
   }


○次回予告
Silverlight 4になり、ボタンなどの一部のコントロールにコマンドバインディングがサポートされましたが、それ以外のイベントに対するコマンドのバインドはサポートされていません。

また、ViewModelのベースクラスやRelayCommandなど自前で作る必要がありますし、ViewModelの定型コードを書くためのスニペットなども複数人で開発する際は書かせないでしょう。ここらへんを楽にしてくれるのが今回紹介するMVVM Light Toolkitというワケですね。
ということで、次回から実際にMVVM Light Toolkitを使ってどんなふうに実装していくかを見ていきます。

○参考
日本語
Model-View-ViewModel デザイン パターンによる WPF アプリケーション
設計パターン - モデル - ビュー - ビューモデル (MVVM: Model-View-ViewModel) の問題点とその解決策
英語
Getting Started with the MVVM Pattern in Silverlight Applications - Dan Wahlin's WebLog
UNDERSTANDING THE MODEL-VIEW-VIEWMODEL PATTERN
記事へナイス ブログ気持玉 4 / トラックバック 1 / コメント 0


MVVM Light Toolkitをインストールしてみる。

2010/09/11 23:26

こんにちは、もう夏も終わりですね。かなり久々なエントリーです。

MVVM Light ToolkitはWPFやSilverlight、Windows Phone 7でMVVMでアプリケーションを作成するためのフレームワークです。

なんとなく、こいつを使ってサンプルでも作ってみるか!!という感じなので数回ほどMVVM Light Toolkitを取り上げてみます。

 

0.MVVM Light Toolkitのダウンロード

MVVM Light Toolkitの2010/09/11時点の最新版はV3 SP1

http://mvvmlight.codeplex.com/

 

1.MVVM Light Toolkitのバイナリーを展開

GalaSoft.MvvmLight.Binaries.V3.zip を展開して、とりあえず次のフォルダーに配置する。
(UACの制御がかかると思うので注意。)

    C:\Program Files\Laurent Bugnion (GalaSoft)\Mvvm Light Toolkit

 

2.Visual Studioのテンプレートを展開

GalaSoft.MvvmLight.Templates.V3.VS10.zip を展開して、ユーザーテンプレートフォルダーに配置する。
ユーザーテンプレートフォルダーは、Visual Studio 2010の場合、デフォルトではここ。

%UserProfile%\Documents\Visual Studio 2010\Templates\

Visual Studio 2010の場合は、ここで確認する。
Visual Studio のメニュー[ツール]⇒[オプション]⇒[プロジェクトおよびソリューション]⇒[ユーザー プロジェクト テンプレートの場所]
Visual Studio のメニュー[ツール]⇒[オプション]⇒[プロジェクトおよびソリューション]⇒[ユーザー アイテム テンプレートの場所]

 image

3.スニペットの展開

GalaSoft.MvvmLight.Snippets.V3.zip を展開して、ユーザーのコードスニペットフォルダーに配置する。

ユーザーのコードスニペットフォルダーは、Visual Studio 2010の場合、デフォルトではここ。

%UserProfile%\Documents\Visual Studio 2010\Code Snippets\Visual C#\My Code Snippets

Visual Studio 2010の場合は、ここで確認する。

Visual Studio のメニュー[ツール]⇒[コードスニペット マネージャー]⇒言語をC#に変更⇒My Code Snippetsを選択

image

4.Expression Blend のテンプレートの展開

GalaSoft.MvvmLight.Templates.V3.Blend4.zip または、GalaSoft.MvvmLight.Templates.V3.Blend3.zipを展開して、Expression Blendのテンプレートフォルダーに配置する。

%UserProfile%\Documents\Expression\Blend4 (または、Blend3)

5.確認

Visual Studio や Expression Blendで新しいプロジェクトを作成しようとすると、プロジェクトテンプレートにMVVM Light Toolkitのテンプレートが追加されます。

image

image

 

と、今日はここまで。

記事へブログ気持玉 / トラックバック / コメント


DataAnnotationsでリソースから文字列を取得する。

2010/05/09 15:36

まぁ、そのまんまなんですが。リソースに指定できるフォーマットがよくわからなかったのでまとめておく。



リソースからのエラーメッセージの取得


DataAnnotationでエラーメッセージをリソースから取る時は、各検証属性のErrorMessageResourceNameプロパティーとErrorMessageResourceTypeプロパティーに値を設定すればいい。たとえばRangeAttributeのエラーメッセージをリソースから取得する場合はこんな風にする。




[Range(typeof(int), "20", "150", ErrorMessageResourceName = "RangeErrorMessage", ErrorMessageResourceType=typeof(ErrorMessage))]
public string Age
{
 get { return _age; }
 set
 {
   Validator.ValidateProperty(value,
     new ValidationContext(this, null, null) { MemberName = "Age" });
   _age = value;
   OnPropertyChanged("Age");
 }
}

こうすれば、ErrorMessageResourceに定義したRangeErrorMessageの文字列をエラーとして表示してくれる(※1)。RangeErrorMessageが「年齢は20から150の間で入力してください。」のように定義されていれば


image

検証結果はこう表示される。


image

※1) リソースはアクセス修飾子を「Public」にしておかないと、リソースが見つからないという実行時エラーが発生するので注意。



リソースからのエラーメッセージの取得


とはいえ、検証対象のプロパティー名「年齢」とか、値の範囲対象となる「20」や「150」はリソースにじかに書きたくない。この場合はこんな風にリソースを定義すればいい。

image 

 

エラーメッセージの整形

検証属性を使ったエラーメッセージの表示は、各検証属性のFormatErrorMessageメソッドに定義されたフォーマットで整形が行われるので、各検証属性のこのメソッドの定義を確認すればいい。たとえばRange属性の場合、リソースの文字列に対して、検証が失敗したコントロールの名称(Display属性が定義されていればそのName)、Range属性に指定した最小値と最大値の3つをもとに整形が行われている。各検証属性でどのような整形が行われているかはこんな感じになっている見たい。

No検証属性123
1RequiredAttributeエラー対象の名前  
2RangeAttributeエラー対象の名前最小値最大値
3RegularExpressionAttributeエラー対象の名前正規表現パターン 
4StringLengthAttributeエラー対象の名前最低長最大長
5CustomValidationAttributeエラー対象の名前検証メソッドから
返されたメッセージ
 


あわせて読みたい(自作自演)。値の検証に関しては4ページから。


Silverlight 3で強化されたスタイルと値の検証

記事へブログ気持玉 / トラックバック / コメント


Visual Studio インストールのおまけ(今回はVBの仕様書も)

2010/04/19 18:52

Visual Studioをインストールすると、次のディレクトリにVisual Studioのアイコン集とC#の仕様書そして今回からはVBの仕様書というおまけが一緒にインストールされます。

 

■VS2010ImageLibrary

高品質なアイコン集です。今回のバージョンからは一部ですが、XAMLで定義されたアイコンも格納されています。ImageLibraryはVisual Studioをインストールした次のディレクトリーに存在します。

⇒ %ProgramFiles(x86)%\Microsoft Visual Studio 10.0\Common7\VS2010ImageLibrary\1033

 

■C#の仕様書

Visual Studio 2008では C#2.0 の仕様書と C# 3.5の仕様書の両方がインストールされていましたが、Visual Studio2010ではC#4.0で統合された仕様書が格納されているようです。C#の仕様書はVisual Studioをインストールした次のディレクトリーに存在します。

⇒ %ProgramFiles(x86)%\Microsoft Visual Studio 10.0\VC#\Specifications\1033

 

■VBの仕様書

Visual Studio 2008 まではVBの仕様書は添付されていなかったんだけれど、Visual Studio 2010 からは次のディレクトリーにインストールされています。Visual Basicの仕様書って初めて見た−。早く日本語で読みたい。。。

⇒ %ProgramFiles(x86)%\Microsoft Visual Studio 10.0\VB\Specifications\1033

 

ImageLibrary、両仕様書ともに日本語のVisual Studioを利用している場合は末尾の1033が1041になります。ImageLibraryはともかく、仕様書が日本語で読めるのは嬉しいですよねー♪

記事へブログ気持玉 0 / トラックバック 0 / コメント 2


Silverlight4 リリース

2010/04/16 11:23

予定通りSilverlight4がリリースされましたね。このバージョンから正式なChromeのサポートが追加されたので、記念スクリーンショット。

image

ランタイムのダウンロードは以下から

http://www.microsoft.com/japan/silverlight/download.aspx

 

Visual Studio 2010のSilverlight開発ツールであるSilverlight4 Toolsは現在RCで公開中のようです。

http://go.microsoft.com/fwlink/?LinkID=177428

上のリンクだと、ブラウザの言語設定が日本語の場合、Beta2にとばされる。。。下のリンクだと直に英語版に飛ぶ

http://www.microsoft.com/downloads/details.aspx?FamilyID=bf5ab940-c011-4bd1-ad98-da671e491009&displaylang=en

 

Silverlight 4 SDKはRTMされてるみたい。

http://go.microsoft.com/fwlink/?LinkID=169408

 

ドキュメント類はここ(オンラインはまだ4じゃないかな?日本語だから?)

⇒ Microsoft Silverlight 4 Online Document

http://msdn.microsoft.com/ja-jp/library/cc838158(v=VS.95).aspx

⇒ Microsoft Silverlight 4 Offline Document(英語)

http://msdn.microsoft.com/ja-jp/library/cc838158(v=VS.95).aspx

 

また、デザインツールであるExpression Blend 4は現在RCで公開中です。

http://www.microsoft.com/downloads/details.aspx?FamilyID=88484825-1b3c-4e8c-8b14-b05d025e1541&displaylang=en

記事へかわいい ブログ気持玉 1 / トラックバック 0 / コメント 1


NavigationFrameworkで違うアセンブリに含まれるページに移動する

2010/03/29 00:05
グローバルサミットぐらいに調べてから寝かしてたらすっかり漬かっていたので、とりあえず引っ張りだしてみる。

本当は違うアセンブリ(dll)を動的に読み込んで、そのアセンブリに含まれるページに移動させようと思ったんだけれど、どうも単にアセンブリを読み込んで移動するだけではだめらしい。とりあえず前段として他のアセンブリに移動するためにはこんな風に記述する。


<StackPanel>
  <HyperlinkButton NavigateUri="/DynamicAssembry;component/Page1.xaml" Content="違うアセンブリ"/>
</StackPanel></pre>StackPanel


で、まぁマッピングをしておくとすっきりするかな。

<navigation:Frame x:Name="ContentFrame" Source="/Home">
  <navigation:Frame.UriMapper>
   <uriMapper:UriMapper>
    <uriMapper:UriMapping Uri="" MappedUri="/Views/Home.xaml"/>
    <uriMapper:UriMapping Uri="/{assemblyName};component/{path}" MappedUri="/{assemblyName};component/{path}" />
    <uriMapper:UriMapping Uri="/{pageName}" MappedUri="/Views/{pageName}.xaml"/>
   </uriMapper:UriMapper>
  </navigation:Frame.UriMapper>
</navigation:Frame>


こんな風になる。

<HyperlinkButton NavigateUri="/DynamicAssembry;Page1.xaml" Content="違うアセンブリ" />


C#とかから遷移する場合もHyperLinkButtonと同じように使える。ページマッピングが定義されている場合にそっちをゆうせんするのも同じ。

DLLを動的に読み込んでって出来るのかな。単なるメソッドのコールは問題ないんだけれどページに移動すると、ページがないとかって怒られるんだよね。XAPにしてから読み込むとうまくいくっぽいから、DLLのマニフェストとかそのあたりだと思うんですけれど。。。

あっ、こっちはえいごだけれど絵つきで分かりやすいかも。
http://www.davidpoll.com/?p=88
記事へなるほど(納得、参考になった、ヘー) ブログ気持玉 2 / トラックバック 0 / コメント 0


HTML5に対するSilverlight、Flashの優位性

2010/03/26 11:12

CodeZineのこの記事を見ていて、あっこれはFlashに限らずブラウザーのプラグインとして提供されるもの(例えばSilverlight)に関して当てはまるなーと思ったので、こちらにもメモを

遂に登場したAdobe Flash Builder 4〜担当者が語るAdobe技術での開発メリット〜

この記事の中で触れられているHTML5に対するRIA技術のメリットは次の3つ

  1. 革新を起こすスピードが早いこと。
  2. 起こした革新を開発者に短時間で採用してもらえること。
  3. ブラウザとの一貫性を担保できる

そう、HTML5って標準規格なんで実装自体はブラウザーの開発元に依存されるのでどうしてもブラウザーによって動きが変わってしまう。まぁ、ブラウザーで一貫性を担保できるってのはホントか??と疑問に思うところもあるわけだけれど。

さらに標準規格ゆえ、一度決めるとおいそれと変更ができない(はず)。その点、企業手動であるFlashやSilverlightは今利用者が何を求めているかを吸い上げることができるし、標準規格ゆえの方々の思惑から自由になれるので対応が早いってのはうれしい。

記事へなるほど(納得、参考になった、ヘー) ブログ気持玉 8 / トラックバック 0 / コメント 0


RoboCodeで.NETのサポートが開始に

2010/02/28 15:34

RoboCodeは戦車の動作アルゴリズムを書くことで、同じフィールドにいるロボット同士を闘わせるゲームです。僕が専門学校の時に一時期はやってみんなでわいわいやった記憶があります。

アルゴリズムといっても記述するコードはとてもシンプルで、通常時の動作、敵発見時の動作などを発生したイベントを補足してコードを記述します。元々はJavaのみのサポートだったのですが、最新版で.NETのサポートが行われたそうです。

ということで、インストールのメモ

  1. Jreのインストール
    RoboCode自体はJavaで動作するので、とりあえず入っていない人はJREをインストール。最新版入れておけばとりあえずOKみたい。
    http://www.java.com/ja/download/
  2. PathとJAVA_HOMEの設定
    勝手に入れてくれると思ってたんだけれど、自分でやる必要があるみたい。ということで、コンピューターのプロパティー>詳細設定>環境変数を選択
    image

    PATHとJAVA_HOMEを設定
    image
    image 
  3. RoboCodeのインストール
    RoboCodeのダウンロードページ<http://sourceforge.net/projects/robocode/files/>からrobocode-1.7.2.0-Beta-setup.jarrobocode.dotnet-1.7.2.0-Beta-setup.jarをダウンロード

    Windows環境で動作させるなら、robocode-1.7.2.0-Beta-setup.jar→robocode.dotnet-1.7.2.0-Beta-setup.jarを順番にインストールすればインストールは終了
  4. とりあえず動かしてみる
    インストールするとデスクトップにRobocodeのアイコンができるのでこいつをダブルクリック
    image

    メニューのBattle>New(Ctrl+N)から闘わせたいロボットを追加してStart Battleをクリックすればバトル開始!!
    image 
    image

    単純なアルゴリズムであっても、これだけたくさんのロボットがフィールドにいると動きに多様性があっておもしろいです。
  5. カスタムロボの作成
    .NETで戦車のアルゴリズムを記述するには、Roboのベースクラスを継承して独自のロジックを入れてあげればOK。
    とりあえず順番に作ってみましょう。

    1) Classライブラリーとしてプロジェクトを作成
    Visual Studioのファイル > 新規作成 > プロジェクト からクラスライブラリーを選択してOKボタンをクリック
    image 

    2) 参照設定でrobocode.dllを追加
    プロジェクトのコンテキストメニューから参照の追加を選択して、
    image

    参照タブからrobocode.dllを選択してOKボタンをクリック
    image
    robocode.dllはデフォルトのインストールだったらたぶんここにある
    image
    "C:\robocode\libs\robocode.dll"


    3) カスタムロボ用のクラスを作成
    プロジェクトのコンテキストメニューから追加>新しい項目を選択
    image 
    クラスを選択し、作成するロボットの名前を入力して追加ボタンをクリック
    image 

    RoboCodeAPIのヘルプはRoboCodeをインストールしたディレクトリーにあるの(C:\robocode\RobotAPI.chm)で、詳しくはこのドキュメントを参照するとして、とりあえずRobocode.Robotクラスを継承してこんな感じで書いてみた。→なんかレイアウトが崩れるので、ソースは最後に移動

    いまいちそれっぽく動くかわからないけれど、とりあえずこれでロボの作成は終わり、次にRobocodeにこいつを読み込ませてみる。


    5.) ビルドしたアセンブリーをRoboデータベースに登録


    RoboCodeのメニュー> Options > Preferencesを選択


    image


    Development Options タブでAddボタンを押してビルドしたアセンブリーがあるフォルダーを追加してあげる。


    登録したらFinishボタンをクリックしてダイアログを閉じる。


    image


     



    6.) 早速バトル



    メニューのBattle>New(Ctrl+N)を選択すると、Robotsの中にさっき作ったRoboAsaがいるので、戦闘に参加させたいロボットと一緒にAddボタンでSelected Robotsに入れてあげたらStart Battleボタンでバトル開始!!



    image


    image


    なんとRoboAsaが最後まで残りました!!


    image 


     





もしカスタムロボがロードされない場合は。。。


もしStart Battleボタンを押してもゲームが始まらない場合は、アセンブリのロードに失敗している場合があります。


RoboCodeを起動したコマンドプロンプトにメッセージが出ているかもしれないのでチェックしてみる。


僕の時は最初にPathの設定とJAVA_HOMEを設定してなかったのでjni4netがExceptionをはいていました。


とりあえず、コンソールを確認してみましょう。


 



参考URL




using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Robocode;

namespace SampleRobo
{
   public class RoboAsa: Robot
   {
       public override void Run()
       {
           this.BodyColor = System.Drawing.Color.Azure;
           while (true)
           {
               this.Ahead(100);
               this.Back(200);

               this.TurnLeft(90);
               this.TurnRight(180);

               this.Fire(1);
               this.Fire(1);
               this.Fire(1);
           }
       }

       public override void OnScannedRobot(ScannedRobotEvent evnt)
       {
           this.Fire(1);
           this.Fire(1);
           this.Fire(1);
       }
   }
}
記事へ面白い ブログ気持玉 1 / トラックバック 0 / コメント 0


Azureを調べるならフォローしておきたいアカウント

2010/01/14 17:20

気が向いたら更新していきます。

isshiki @IT Insider.NET の編集長の一色さんのアカウント
nakama00 NETエンタープライズWebアプリケーション 開発技術大全の著者、赤間さんのアカウント
shin135 Azureエバンジェリストの砂金さんのアカウント
Nakada_itpro 長男
normalian 割と変態

 

割と日本語の記事も豊富になってきましたね。

@IT .NET 未来展望台 

安い? 高い? Windows Azure Platformの料金体系

初めてのWindows Azureテーブル・ストレージ開発

初めてのブロブ&キュー・ストレージ開発

SQL Azureの機能と制約を理解する

CodeZine Windows Azureで作成するアプリケーションの基礎

Microsoft SQL Server 2008 R2 自習書シリーズ

SQL Azure 入門

Azureの鼓動

Masaki Iwata's blog

とあるコンサルタントのつぶやき

Part 1. マイクロソフトのクラウドコンピューティング "S+S" 概要 その1

Part 2. Windows Azure Platform 概要 その1

記事へブログ気持玉 / トラックバック / コメント


TechEd Japan 2009 の資料が期間限定で無料公開中

2009/12/17 17:24

TechEd Japan 2009 の全セッションがWebで期間限定で無料公開されています。単にセッションが見れるだけでなく、Silverlightを使ったシアター風の作りになっていて面白いです。

http://vepexp.microsoft.com/techedjapan09

シアター内の関連資料からは、セッションのPDFがダウンロード出来るようです。共有するを選ぶと、ソーシャルブックマークで共有もできますね。そういえば、このあたりの外部のWebサービスを使って共有するパターンって結構増えていますね。

記事へナイス ブログ気持玉 1 / トラックバック 0 / コメント 0


Visual Studio 2008のインストール順序

2009/12/16 16:50

今更Visual Studio 2008のインストールについて書くのもなんだなーと思いながら、何気に今開発環境を構築する際には各アプリケーションのインストール順序が結構めんどくさかったりするわけで、うちの環境を再構築するときにどうやるんだっけ?とか思いながらかなり適当だけれどここにメモっておこう。

  1. 何はともあれ、日本語版Visual Studio 2008のインストール
  2. 英語版のVisual Studio 2008のインストール
  3. TeamExplorerのインストール
  4. Visual Studio 2008 SP1 のインストール、念のため英語も
  5. SQL Server 2008 のインストール
  6. Visual Studio 2008 Database Edition GDR2 のインストール
  7. Silverlight 3 Tools のインストール
  8. Expression Studio 3 のインストール

英語版を入れているのは、とりあえずRIA Servicesやらを試したいから。

Visual Studio のツールメニューの国際化から使用言語を切り替えることが可能。

■SP1のインストール

一つ目の注意点が、いつSP1を当てるか。

手順の5以降はSP1がインストールされていないと、インストール要件のチェック時に弾かれるんだけれど、SP1を当てた後に英語版のVisual StudioやTeamExplorerを入れてしまうと、SP1がインストールされていないと勘違いしてしまうので注意。

 

■Silverlight

二つ目がSilverlight、現在GDR2が出ているわけだけれど、インストールできるToolsはGDR以前の物。これに対しては、GDR2適用済みのパッチをあてればいいんだけれど、Silverlight 3 Toolsを入れた後にExpression Blend3を入れるのがお手軽でいい。

記事へブログ気持玉 / トラックバック / コメント


18日のAzureハンズオンセミナーはLiveMeetingを使ったライブ形式で行われるらしいです。

2009/12/16 13:38

Azureの鼓動より、大好評につき年内最終回のAzureハンズオンは無償ライブ配信。18日金曜日14時開始とのことで、Azureの本番稼動に向けてMicrosoftが無償で行っていているAzureセミナーですが、最終日である18日の14時から16時のセミナーは、Windows LiveMeetingを使ったライブ形式で行われるらしいです。

僕もOpenDayでほぼ同じ内容のハンズオンを受けたのですが、開発トークンのとり方からWebRole、WorkerRoleの基礎までをハンズオン形式(しかも講師は砂金さんや中原さん)で無料で受けられるとてもいい機会です。

あいにくと、18日は会社の合宿ともろかぶりなので僕は受けられませんが、もし時間が取れるようでしたら会社の開発グループみんなで試聴するってのもありかもしれませんよ。

申し込みはここから→【Live Meeting】 Cloud Bootstrap セミナー&ハンズオンラボ 〜 最先端の “雲” に乗る!

記事へブログ気持玉 / トラックバック / コメント


Silverlight のサポートライフサイクル

2009/12/15 17:14

マイクロソフトのサポートオンラインで、Silverlightに関するサポートライフサイクルのお知らせが掲載されています。(Microsoft? Silverlight? サポート ライフサイクル ポリシーのお知らせ)

これまで独自路線だったSilverlightも、ビジネス分野での利用を前提にサポートライフサイクルを他の製品同様、明確化したって感じでしょうか。

Silverlightのバージョン 無料サポート
Silverlight 1 2010/10/12まで
Silverlight 2 2010/10/12まで
Silverlight 3 メインストリーム

ふらふらしてたらこんなページに行き着きました。多分前にも見たことはあるとおもうんだけれど、忘れそうなのでメモっておきます。

マイクロソフト サポートオンライン Silverlight サポートページ

バージョン別機能比較

記事へブログ気持玉 / トラックバック / コメント


Silverlight3 の連載をしています。

2009/12/01 21:22

PDCでSilverlight4 Beta1 の発表が有ったわけですが。とりあえずリリースされている最新版であるSilverlight3の入門記事をCodeZineで連載しています。

現在は1回から3回まで公開されています。

■Silverlight徹底入門

  1. Silverlight 3がやってきた(1/4):CodeZine Silverlight 3がやってきた(1/4):CodeZine このエントリーをはてなブックマークに追加
  2. Silverlight 3に新しく追加されたコントロール(1/4):CodeZine Silverlight 3に新しく追加されたコントロール(1/4):CodeZine このエントリーをはてなブックマークに追加
  3. デザインツールの進化 ― Expression Blend 3入門(1/5):CodeZine デザインツールの進化 ― Expression Blend 3入門(1/5):CodeZine このエントリーをはてなブックマークに追加
  4. Silverlightのオフライン機能による新しい可能性(1/5):CodeZine Silverlightのオフライン機能による新しい可能性(1/5):CodeZine このエントリーをはてなブックマークに追加
  5. Silverlight 3で作る業務アプリケーションの要 「ナビゲーションフレームワーク」(1/6):CodeZine Silverlight 3で作る業務アプリケーションの要 「ナビゲーションフレームワーク」(1/6):CodeZine
  6. Silverlight 3で強化されたグラフィックとメディア機能(1/4):CodeZine Silverlight 3で強化されたグラフィックとメディア機能(1/4):CodeZine

第1回ではSilverlightの歴史とSilverlight 3の開発環境の整え方を、第2回では追加されたコントロールの使い方をざっと紹介しました。そして今日公開された第3回は、Silverlight3の目玉の一つであるExpression Blend 3 With SketchFlow の新機能(もちろんSkechFlow込み)と、カスタムビヘイビアーの作成方法などを紹介しています。

Silverlight 4もかなり機能がてんこ盛りですが、Silverlight 3もなにげに新機能はかなりあるので次回以降もご期待下さい。

 

Silverlight 2の記事も絶賛公開中ですのでこちらもどうぞー

Silverlight 2で作成する業務アプリケーション入門のバックナンバー

記事へブログ気持玉 0 / トラックバック 0 / コメント 2


Azure関連の書籍

2009/11/30 11:00
この頃はAmazonの配送用の箱がやけにたまっています。微妙に段ボールって捨てにくいんだよね。OpenDayなんかで良書を紹介されたり、職種が動く書籍がぽこぽこ出ているので、また本棚から本があふれ出した。。。

両方とも進められた書籍だったんだけれど、何となくしかAzureを理解していない僕にとってはかなりちょうど良い書籍でした。

1冊目:雲の世界の向こうをつかむ クラウドの技術

雲の世界の向こうをつかむ クラウドの技術
アスキー・メディアワークス
丸山不二夫

ユーザレビュー:
クラウド提供側の現時 ...
amazon.co.jpで買う
Amazonアソシエイト by ウェブリブログ



OpenDayの砂金さんセッションで紹介されていた書籍、Windows, Google, AmazonのKeyValueStoreの解説をかなり詳しく行っています。後ろでどんな技術が動いているのかを突っ込んで知りたい方にはかなりおすすめな書籍です。


2冊目:Microsoftのクラウドコンピューティング Windows Azure入門


Microsoftのクラウドコンピューティング Windows Azure入門
アスキー・メディアワークス
砂金 信一郎

amazon.co.jpで買う
Amazonアソシエイト by ウェブリブログ



先ほどの本を紹介していただいた砂金さんやるいびるさんが執筆なさっている日本初のWindows Azureの入門本、今まさに読んでいる途中なんだけれど、クラウドへの配置の注意点からVisual Studioを使ったAzureのサンプルの解説まで、これからAzureをさわってみようってひとにはうってつけ。

マイクロソフトが無料で開催しているハンズオン(http://www.microsoft.com/japan/msdn/vstudio/campaign/valueup/cloud.aspx?rss_fdn=MSDNTopNewInfo)と併せて勉強すれば、Azureの準備は万全??
記事へブログ気持玉 / トラックバック / コメント


Silverlight 4 すげーー

2009/11/19 13:05

昨日はPDC09 2日目のキーノートでかなりTwitterも騒がしかったですね。
たぶんそのうちここでビデオの配信が始まるはず。 http://microsoftpdc.com/Sessions/Key02
事前にSilverlight関連の新機能については知る機会があったのですが、
実際あそこまで完成度の高いデモを見せられると、ホントSilverlightすげーーーー
と叫びたくなる気持ちわかってもらえたんじゃないかと。

 

先にダウンロード関連リンク

Silverligh4 ビデオ

この方のブログで大体のコードサンプルなどがすでに掲載されています。

そんで、昨日の発表の自分用メモ

プリンターやら、WebCamやら、WebブラウザーコントロールなんかはHTMLとのHTML-DOM連携でどうにかなってはいたけれど、Silverlightに正式に組み込まれることでブラウザー外実行時にもちゃんと動くようになったわけですね。
あとはブラウザー外実行の権限昇格時の強力さが、ほかのRIA技術とはまったくの別技術といっていい気がする。
COMInterOpやデバイスのイベント検知、ファイルシステムの操作なんてホント何でもありだよね。

 

#げ、スタイルの都合で、トップだと備考欄が見えない。。。

#備考欄にいろいろ書いたのでこちらにどうぞ

分類 追加、修正機能 備考
Media Webcam and Microphone 要望の多かったWebカメラとマイクのサポートですね。
  Multicast Streaming  
  Output Protection  
  Offline DRM 動画業者向け?これは人によってはうれしいかな?
  QuickTimeのIIS Smooth Streaming SmoothStreamingの技術は圧倒的
Application Development Printing HTML-DOM連携が必要なくなった
  Rich Text リッチテキストコントロール。
  Clipbord Access HTML-DOM連携が必要なくなった
  Right Click 右ボタンクリックのイベント補足、コンテキストメニューの表示
  Mouse Wheel Silverlight3でも対応はあったけれどさらに強化
  Drag/Drop デスクトップのファイルをSilverlightアプリケーションにドラッグ&ドロップして、ファイルの中身を表示するとか
  Bidi & RTL もちろん装飾情報などを込みで Wordなんかにもコピーできる。
  HTML Webブラウザーコントロール
  Commanding and MVVM コマンドバインディングの正式サポート
  Additional Controls Webブラウザーコントロールで表示した内容を、ブラシとして使える。Flashの動画をSilverlightでパズルにしたり
Data & Networking Share Assemblies Across SL and .NET 4 CLR4と互換のあるアセンブリ→通常の.NETで作成されたアセンブリをそのまま参照設定できる
  Data Binding Improvements  
  UDP Multicast Support  
  REST Enhancements  
  WCF Improvements  
  WCF RIA Services  
Visual Studio 2010 WYSIWYG Design Surface VS2008から格段に進化
  XAML IntelliSense Improvements  
  Data Binding, Layout, Styles 定義したデータソースをドラッグ&ドロップでUI作成、バインドするコントロールのUIやスタイルをマウスで変更したり
  REST Services Integration  
  WCF RIA Services Integration  
TrustedApplications Custom Window Chrome  
  Local File System ローカルファイルシステムへのアクセス
  Cross-Site Networking  
  Keybord in Full Screen Mode フルスクリーンでのキーボードサポート、ゲーム用かな?
  Hardware Device Access カメラがPCにUSBで接続されたら、イベントを検知してファイルをSilverlightアプリケーションで読み込むとか。。。
  COM Automation Support 何でもあり、Excel COM-InterOpしたり、C#4.0 のdynamic大活躍。まるでVB6を見ているようだ
New Sandboxed Feature Windowing APIs Windowの形やサイズを変えられる
  Notification Popups Windowsの通知エリアに通知を表示する。
  HTML Support  
  Drop Target デスクトップのファイルをSilverlightアプリケーションにドラッグ&ドロップして、ファイルの中身を表示するとか
Silverlight 4 Performance Twice as Fast  
  30% Faster Startup 起動が早い、サイズも5Mぐらいに収まるらしい
  New Profiling Support  
記事へ面白い ブログ気持玉 5 / トラックバック 0 / コメント 0


Visual Studio 2010 Beta2 と Silverlight Toolkit

2009/10/20 08:39

MSDN で Visual Studio 2010 の Beta2 が公開されています。

現在は英語版のみ。

Visual Studio 2010 and .NET Framework 4 Beta 2

 

同時にVisual Studio 2010に対応したSilverlight ToolkitのOctober 2009がリリースされています。

 

Silverlight Toolkit October 2009

記事へブログ気持玉 / トラックバック / コメント


Excel VBA からSharePointのアイテムを検索する

2009/10/02 01:33

今までSharePointのアイテムをExcelからどうこうしたいなら、VSTOを使わないと無理だろう、と思っていたんだけれど、Excel VBA からもSharePointのアイテムにアクセスする方法があったらしい。

Excel VBA には現在のブックを示すThisWorkBookオブジェクトがあるんだけれど、こいつが持っているSharedWorkSpaceオブジェクトを使うとSharePointのアイテムにアクセスできるみたい。

たとえば、ThisWorkBook.SharedWorkSpace.Connectedで現在サイトに接続しているかチェックできるし、ThisWorkBook.SharedWorkSpace.FilesにアクセスすればそのExcelが格納されているDocumentListにアップロードされているファイルの一覧にアクセスし、削除したり開いたりすることができる。

GoogleでThisWorkBook.ShareWorkSpaceを調べると次の書籍が引っかかる。どれも英語の書籍ですが、GoogleBooksで中身をみることができるので気になる人は一度眺めてみるといいかも。

 

Essential SharePoint → Google Books



Essential Sharepoint
Oreilly & Associates Inc
Jeff Webb

amazon.co.jpで買う
Amazonアソシエイト by ウェブリブログ



Essential SharePoint 2007→ Google Books



Essential Sharepoint 2007
Oreilly & Associates Inc
Jeff Webb

amazon.co.jpで買う
Amazonアソシエイト by ウェブリブログ



Programming Excel with VBA & .NET → Google Books



Programming Excel With Vba And .net
Oreilly & Associates Inc
Jeff Webb

ユーザレビュー:
リファレンスマニュア ...
amazon.co.jpで買う
Amazonアソシエイト by ウェブリブログ


記事へなるほど(納得、参考になった、ヘー) ブログ気持玉 1 / トラックバック 0 / コメント 0


ASP.NET AJAX 4.0 プレビュー記事

2009/09/16 10:39

なんだか、最近は全くエントリーができていませんが、CodeZineの連載は細々と続けさせてもらっています。今回はすでに最新バージョンが出てしまっていますがVisual Studio 2010に含まれるASP.NET AJAX Preview 4 を対象にした ASP.NET AJAX 4.0 プレビューを書かせてもらいました。

Preview5では、ダイナミックなテンプレートやクロスサイトリクエスト、ASP.NET 3.5のScriptManagerとのからみの部分が実装、強化されているようです。

この記事実際に書いていたのは2ヶ月半ぐらい前まさにはてなの方でこのエントリーをした頃に書いていました。

後編の最後にも書きましたが、この頃はASP.NET AJAX に限らずASP.NET全般が今までの技術者をどうにか残しつつ、既存のWeb技術とどうなじんで行くかと言った部分がASP.NETのテーマになっているように思います。

ASP.NET AJAX は Silverlight やサーバー側の ASP.NET に比べ若干開発環境が弱い部分もありますが、プレーンなHTMLなんかとはかなり相性がいい技術です。興味を持っている人の学習の手助けになれればうれしいなーと思っています。

#ただ、後編は少し記事が発散しすぎているかも。。。
#個別質問はできるだけ受けますので、おきがるにどうぞー





Professional Microsoft Office SharePoint Designer 2007 (Wrox Programmer to Programmer)
Wrox
Woodrow W. Windischman

ユーザレビュー:

amazon.co.jpで買う
Amazonアソシエイト by ウェブリブログ
記事へブログ気持玉 / トラックバック / コメント


TechEd Japan 2009 BoFスケジュール公開

2009/07/29 14:05

TechEd Japan 2009 のBoFスケジュールが公開されたそうです。

TechEd Japan 2009 ? Birds of a Feather セッションスケジュール公開

併せて例のExcelを更新しました。

僕は、ひろえむさんのコミュニティから28日の朝1のセッションで、「どうすればできる?〜VB6から.NET開発へ〜」というセッションを担当する予定です。

ほかにも27日の15:15からはこみゅぷらすの「美しいソースコードのための考え方 〜マルチパラダイム時代のプログラムの書き方〜」があるし、

28日の15:15からは小野さんとナオキさんの「ASP.NET Web Form V.S. ASP.NET MVC In Japan」なんてのもあります。

TechEdでは本セッションも目白押しですが、通常のセッションでは味わえない体験できないができるので、もしお時間があればBoFのほうにも足を運んでみるとおもしろいですよ。

去年ライトニングトークスは各セッションの最終セッションと同じ時間にやっていたんですが、今年は最終セッションが終わった後に時間をとっているようですね。(最終日のぞく)参加しやすくなって盛り上がりそうだなー。

そういえば、今年のTechEdってYokohamaって字が無くなったんだね。

ずっとTechEd 2009 Yokohama だと思ってた。

記事へ驚いた ブログ気持玉 2 / トラックバック 3 / コメント 4


Expression Studio 3(英語版)がMSDNサブスクリプションダウンロードに登場

2009/07/24 11:49

昨日Windows7と同時にRTMされたExpressionBlend3ですが、MSDNサブスクリプションダウンロードに英語版のExpressionStudioが登場しています。

Microsoft Expression Studio 3 Setup-1

Expression Studio は Expression Web, Expression Blend + SkatchFlow, Expression Design, Expression Encoderの統合パッケージです。日本語版は今回のReMixで9月提供がアナウンスされましたが、まだ少し時間があります。すぐに新機能にさわりたい人は今回の英語版をインストールしてさわり倒しましょう。

Microsoft Expression Studio 3 Setup-2

SuperPreview 初体験。EXEは別になって居るみたいですね。

Microsoft Expression Web 3 SuperPreview

記事へブログ気持玉 0 / トラックバック 0 / コメント 1


Silverlight 3 Tools の XAML プレビュー画面

2009/07/22 15:46

Silverlight 3 Tools では Visual Studio の XAML プレビュー画面がサポートされていないっていうのは確認してたんだけれど、実はサポートされていないだけで一応機能としては残っているようです。

ネタ元→ XAMLプレビュー画面

MSDNフォーラムでSilverlightSquareさんがリンクにあげているフォーラムの投稿によると、デザイナの下のフレーム上にカーソルを持って行くと、カーソルが矢印から垂直のカーソルに変わるからそこをドラッグして上げてみろと言うこと

 SL3 RTW : Designer is missing in Visual Studio 2008 !!!

 

Visual Studio の XAML エディタの下の方にマウスカーソルを持って行くと

image

マウスカーソルの表示が、こうなる

image

ドラックして持ち上げるとこんな画面が出てくる

image

Resume loading the designer のリンクをクリックすると一応出てくる。

image

まぁ、Visual Studioを再起動するとデザイナはまた隠れちゃうし、XAMLの再現性がいまいちだったり、理解できないXAMLがあるとするにギブアップしちゃうのは今まで通りだし、Silverlight 3 からのナビゲーションフレームワークは当たり前だけれど表示できない。

MS的にはVisual Studio 2008 の XAML プレビュー機能はいまいちなんでサポート対象外ってことにしたんでしょうね。まぁそこはVisual Studio 2010に期待ってことで。

記事へなるほど(納得、参考になった、ヘー) ブログ気持玉 12 / トラックバック 0 / コメント 2


TechEd 2009 Yokohama のセッションを Excel にしてみた

2009/07/21 18:37

去年に引き続き、自分の受講したいセッションの整理用にTechEd2009のサイトを見ながら、セッションスケジュールを時間で串刺しで見れるExcelを作ったのでSkyDriveに置いておく。まだ一部のオープンステージとBoFの予定が入っていないので、そのうち気が向いたときに更新しときます。

今年は開催日数が4日から3日に短縮されたので、聞きたいセッションがかぶることかぶること、少なくとも各コマで2つ以上は聞きたいものがかぶっています。

あとは、BoFがどこに入るかだなー。

記事へナイス ブログ気持玉 2 / トラックバック 0 / コメント 1


Silverlight2 と Silverlight3 の開発環境の同居

2009/07/18 15:16

先日のReMix Tokyo 2009 の日にSilverlight 3 Tools の日本語版が出たわけだけれど、前からアナウンスがあったようにRTM版の2 Tools でも、Visual Studio 2008ではSilverlight開発のマルチターゲッティングがサポートされないみたい。(Silverlight 3 Toolsをインストールすると、インストールの段階でSilvelright 2 Toolsはアンインストールされる。)

しかもSilverlight 3 と 2 のマルチターゲッティングは Visual Studio 2010 からなのに、Silverlight Tools はVisaul Studio2008用だけなのでVisual Studio 2010 では利用できない。Visual Studio2008 に対しては Tools の切り替えを行うバッチが紹介されていたりしたけれど、timheuerのブログでこんなエントリがあった。

Building Silverlight 2 and 3 applications with Visual Studio 2008

 

■ Visual Studio 2008

このエントリーでは、Silvelright Tools は 2 と 3 で同居はできないけれど、SDKは同居できるのを利用してプロジェクトファイルのカスタマイズとビルドイベントを利用してSilverlight 2 とSilverlight 3 の切り替えを行っているようです。

構築手順としてはこんな感じ(これは少なからずVSに対するハックなので、自己責任でとのこと)

まず、Silverlight 3Tools をインストールされていることが前提(これには、Silverlight 3 SDKが含まれます)。

  1. Silverlight 2 SDK をインストール
  2. Silverlight 2 のプロジェクトを作成
  3. 作成したプロジェクトファイルをコピーして、Silvelright2用にプロジェクトファイルを編集
  4. Silvelright2用にコンパイルを行うようにビルド後イベントを作成

 

■ Visual Studio 2010

このエントリー中でも触れられているけれど、Visual Studio 2010のベータ版は正式にSilvelright3の開発環境として整えられたわけではないので、Silverlight3から登場したナビゲーションフレームワーク用の開発テンプレートなんかはインストールされない(Silverlight 2 Tools は 2008用のものだから当たり前か)。

必要だったら、2008にインストールされたテンプレートをエクスポートして2010に持ってくる必要があるみたい。

記事へナイス ブログ気持玉 1 / トラックバック 0 / コメント 0


Silverlight 3 用のSilverlight Toolsが提供開始

2009/07/16 08:07

今日のReMix Tokyo 09とあわせてか、先日リリースされたSilverlight3の日本語開発環境がリリースされています。

残念ながら、RIA ServicesやExpression Blend の日本語版はまだなようです。

Silverlight 3 Tools

Microsoft Silverligh 3 ソフトウェア開発キット (SDK)

リンク先が間違っていたので修正

記事へナイス ブログ気持玉 2 / トラックバック 1 / コメント 0


.NET RIA Services を学ぼう

2009/07/14 12:07

Silverlight 3.0 のRTWと同時に.NET RIA Servicesの新しい版が公開されました。.NET RIA ServicesはRIA(ASP.NET AJAXやSilverlight,WPF,WindowsForms)でn階層の業務アプリケーションを作成するためのデータ中心のアプリケーション基盤です。現在のところはSilverlightに対応しています。

少し前からちょこちょこさわっているんですが、July 2009 PreviewがGoLiveライセンスで提供されたりとだんだんと動きが活発になってきたので、自分のメモがてらちょっとだけまとめておきます。

----追記
コメントで、小野さんからCodePlexで公開されているDynamic DataのPreview版では、Dynamic DataがRIA Servicesのクライアントに使えるよーというのを教えてもらいました。
ASP.NET Dynamic Data Preview 4 Refresh

■ インストールなどなど

今のところインストール用件が若干厳しくて、.NET RIA Services をさわるには、英語版のVisual Studioが必要です。

現在Visual Studioの日本語版を利用している場合は、英語版のセットアップを行うと必要なコンポーネントだけ追加インストールされます。ただし、英語版をインストールしたら、英語版のサービスパックとSilverlight Toolsもインストールする必要があるのでお忘れ無く。

■ .NET RIA Services のロードマップ

.NET RIA Services は今のところVisual Studio 2008 SP1向けに提供されていますが、正式にサポートされる開発環境はVisual Studio 2010になるようです。今のところリリースは2010年の初頭に予定されています。

■ ドキュメント

最新版の情報を得るにはやはり英語リソースになってしまいますが、次の2つのリソースは日本語で提供されています。

英語ですが、Brad AbramsのブログでRIA Servicesの連載が始まっています。

Business Apps Example for Silverlight 3 RTM and .NET RIA Services July Update Summary

この人はMix 09でもRIA Servicesに関する講演を行っていて、そのときのセッションが公開されています。(このときのRIA ServicesのバージョンはMay Preview)

Silverlightの開発者サイトにもRIA Servicesのビデオがあります。

■ サンプル

CodePlexにRIA Services用のサンプルプロジェクトが大量にあります。

■ 関連ダウンロード

Silverlight はテーマによってがらっとスタイルを変えることができますが、Expression のサイトで、Silverlightのテーマ集が配られています。RIA Services がベースにしているNavigationFramework用のテーマもいくつかあります。

Silverlight 3 からはいくつかのコントロールがSilverlight Toolkitに移動されています。Ajax Control Toolkit同様、Silverlightの開発では必須になりそうな感じですね。


記事へブログ気持玉 0 / トラックバック 0 / コメント 2


Silverlight Tools 3 では System.Web.Silverlight は別提供

2009/07/13 18:10

今までASP.NETでSilverlightを利用する場合は、System.Web.Silverlight.dllに含まれる、asp:silverlight や mediaplayer なんかのサーバーコントロールを使ってSilverlightをWebFormに配置していたと思うんだけれど、Silverlight Tools(SDK) 3 からはこの System.Web.Silverlight は Silverlight Tools のリリースには含まれなくなったそうです。

Silverlight ToolsのインストールディレクトリにあるChanges.docxを見ると、通常のHTMLにSilverlightを組み込む場合と同じように、objectタグを直で書くようにしてねーと書いてあります。

Silverlight 3 Released! What is new/changed?(Silverlight 3、βからRTMでの変更点)を見るとコントロール側からJavascriptでがりがり描画するより、objectタグでかけた方がフレキシブルだよねとのこと。

これを知らずにはまりました。
通常はアップデートウィザードがうまくやってくれるっぽいんだけれど、Silverlight Tools 3のインストールがうまくいっていない場合(というか、別のバージョンの Toolsが入っている場合)Silverlightのプロジェクトを新規作成すると、今まで通りのasp:silverlightを使ったテンプレートでプロジェクトが作成されてしまい、System.Web.Silverlight.dllがないからASP.NETのRegisterタグで名前解決に失敗すると言う事態になりました。

これは古いバージョンのToolsやSDKなんかを削除して、Silverlight3を入れ直したらうまくいった、このあたりVisual Studio 2010ではうまくやってくるのかな?

本来であれば、Silverlight2からSilverlight3へプロジェクトをアップデートした場合。プロジェクトをアップデートする際にbinディレクトリのSystem.Web.Silverlight.dllは消さないからそのままで動くよーとは書いてあります。。。

今後このコントロールはリリースにはふくまれないので、Silverlight Tools(SDK) 2 の物を利用するか、CodePlexのASP.NET Server Controls for Silverlight - Samplesに含まれる物をダウンロードして利用することになりそうです。

記事へなるほど(納得、参考になった、ヘー) ブログ気持玉 4 / トラックバック 0 / コメント 0


Silverlight 3.0 の開発関連ツールのインストールはもうちょっと待った方がいいかも

2009/07/10 11:50
追記
Silverlight Tools 3.0 を入れる前に、Silverlight 2.0 の Silverlight Tools や Silverlight SDK をアンインストールしておくとこの問題は起きませんでした。Silverlight Tools 3.0 は Beta の時と同じように同居はできないようです。
Visual Studio 2010 からは、Silverlight のプロジェクトを作成するときにバージョンを選択できますが、Visual Studio 2008 で開発する場合は選択できないので、今まで通りアンインストール、インストールの必要がありそうです。



 さっきの記事で、Silverlight Tools やら SDK やらのリンク先を載せたけれど、日本語版のVisual Studioにインストールしたところ、微妙にUIがぶっ壊れてたり、コンパイルしようとしたらアセンブリが足りない?なんてことが起きたので、日本語版のSilverlight Toolsが出るまでは待った方がいいかも。

たしか、Silverlight Tools 2.0 を入れると、プロジェクトの新規作成の時はこんなダイアログが出てきてホストするテストページを選択できたんだけれど、

Silverlight アプリケーションの追加

Silverlight Tools 3.0 だとこんなことに

Silverlight アプリケーションの追加 (2)

細い線みたいなところをクリックすると、ホストするWebページをWebアプリケーションにするか、Webサイトにするかのドロップダウンリストが出てくる。

Silverlight アプリケーションの追加 (3)

記事へなるほど(納得、参考になった、ヘー) ブログ気持玉 2 / トラックバック 0 / コメント 0


Silverlight 3.0 リリース〜!

2009/07/10 10:45

かねてから予告があったとおり本日Silverlight3.0のRTW版が公開されました。Silverlight2.0のときもだけれど、結構あっさり出たなーというイメージ。

次のULRでインストールが可能です。

Silverlightをインストール
http://www.microsoft.com/silverlight/resources/install.aspx

image

で、とりあえずまだ英語版なんだけれど、ほかの諸々のリソースのダウンロード先はここ。

Silverlight 3 Tools

Microsoft? Silverlight? 3 Software Development Kit

Expression Blend 3 + SketchFlow RC

Deep Zoom Composer

Data-Driven RIA with Silverlight 3

 

追記
すでに3.0以前のSilverlightSDKをインストールしている場合、Silverlightをインストールのページからはダウンロードできるインストーラーだとだめみたい。

もう一つ追記
Silverlight 3.0 の開発関連ツールのインストールはもうちょっと待った方がいいかも

これはVisual Studio 2008の場合Silverlight Tools 2.0 の上に上書きで3.0をインストールした場合に起きる問題でした。

記事へガッツ(がんばれ!) ブログ気持玉 1 / トラックバック 1 / コメント 0


VirutalPC上のPCにMSI形式のファイルをインストールすると怒られる?

2009/07/02 16:27

何となくTFS以外のCI(断続的インテグレーション)環境を作ろうと思って、TeamCity + VisualSVN の環境をVirutalPC上のWindows Server 2008に作成していたわけです。

とりあえずVisualSVNのインストールとTeamCityのインストールが終わったので、VisualStudio用のSubversionプラグインであるAnkhSVNをインストールしようとしたら、こんなメッセージが出てインストールできない。

Please wait while the installer finishes determining your disk space requirements

image

もちろんディスク容量は全然問題ないし、今はAdministratorで作業中なので権限の問題もないはず。エラーメッセージ全部を検索ボックスに入れてGoogle先生に聞いてみたらこんなページが出てきた。

Windows Installer doesn’t finish determining disk space requirements

コマンドラインでインストーラー起動すればいけるよと書いてあるので、AnkhSVNのインストーラーをこんな風に起動してみる。

msiexec /qr /i C:\temp\AnkhSvn-2.1.6941.125.msi

とりあえず、AnkhSvnのインストールはうまくいったんだけれど、そもそもほかのMSI形式のインストーラーではこけないので、特定のバージョンで作られたインストーラーか、特定機能を使っているインストーラーで起こるのかな??

きっと とっちゃん あたりが教えてくれる気がする。

#上記のページのリンクとして、VirutalPCの拡張機能が入っているとだめ?みたいなエントリへのリンクがあるけれど、僕の処ではこの問題は起こっていない。Cannon Install Programs on Virtual PC

記事へナイス ブログ気持玉 1 / トラックバック 1 / コメント 5


Silverlight 2 プロジェクトで、起動の方法を変える。

2009/07/01 11:20

Visual Studio 2008 で Silverlight プロジェクトを作成した場合、こんなダイアログが出てきて、ビルド時にデバック用ページを自動的に作成してデバックを行うか、テスト用のページを作成するかを聞かれます。

Silverlight アプリケーションの追加

これは後から変更できるんだけれど、MSDNにもこの変更方法がなかなか見つからない。というか、僕は見つけられなかったので、メモがてらかいておく。

Silverlightのプロジェクトのプロパティ-デバックの画面を見ると、テストページを自動的に生成するか、ページを指定するかを設定する画面があるけれど、ここで起動するページを指定しても単にスタートページが切り替わるだけで、そのページに最新のアセンブリを配置してくれなかったりとテスト用のページを作成したときとは動きが違う。

clip_image001

自動に作成されたテストページからSilverlight起動するか、通常のASP.NETのアプリケーションからSilverlightを起動するかは、ホストするASP.NETアプリケーションの設定がすべてで、特にSilverlight側のアプリケーションに設定する項目はない。(たぶんここが見つけにくい原因)

SilverlightのSDKをインストールすると、ASP.NETプロジェクトのプロパティにSilverlightアプリケーションタブが出てくるので、ここで追加ボタンから対象のSilverlightアプリケーションを選択してあげる。

clip_image001[4]

image

あとは、次の4つの作業を行えば自分で作成したASP.NETのページからSilverlightを呼び出すことができる。

  1. ASP.NETプロジェクトをスタートページに設定
  2. SilverlightをホストするページをASP.NETプロジェクトに配置
  3. ScriptManagerをページに追加
  4. Silverlightコントロールをページに追加

ホストするASP.NETのページは、たぶんこんな感じになる。



<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication1._Default" %>
<%@ Register Assembly="System.Web.Silverlight" Namespace="System.Web.UI.SilverlightControls"
    TagPrefix="asp" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server" />
    <div>
        <asp:silverlight ID="Silverlight1" runat="server" Source="~/ClientBin/SilverlightApplication1.xap" />
    </div>
    </form>
</body>
</html>
記事へブログ気持玉 / トラックバック / コメント


こみゅぷらす CLT 2009無事終了

2009/06/29 01:26

去年に続き3年目のCLTの開催となりましたが、今年も無事終了しました。

一昨年、去年は結構内輪色が強いイベントだったのですが、今年はTechFieldersの流れでMicrosoftさんに後援をいただいたおかげで当日は80人前後の方にお越しいただきました。

参加いただいた方には当日至らないところもあり、ご迷惑をおかけしましたが、セッション自体はどれもすばらしく、普段の技術セミナーとは一味違った面白しろさを提供できたのではないかと思っています。

今回はid:yoshiomsさんの提案で、ノベルティとしてこみゅっぷらす特製ポケットティッシュを作ってみました。ちなみにメンバーの自腹で、当日は200個前後置いておいたのですが、yoshiomsさんの自宅には後800個ほど眠っているそうです。

RIMG0600  RIMG0602

個人的には、LTで「Visual Studio 2010 のスタートページをいじってみる」なんてものをやりました。当初はLTだし、いろんなスタートページの使い方をさらーっと紹介できればいいかなーなんて思ってたんですが、C# Users Group の例の飲み会後、id:shiba-yanあたりを中心に(?)痛IDEが盛り上がっていたので、これはスライドに入れねば(w)と思って無理やりくっつけたら、LTなのにスライドが20枚w

痛IDE効果でLTの発表者6人の中で一番をいただきました〜。拍手いただいたかたがたありがとうございます。商品として、小高さんの新書をいただけるということで今からわくわくしています。♪一応発表時のスライドをあげておきます。shibayanには一応公開するよーと許可は取ったのですが、スライドは当日発表時の物をSkyDriveにアップロードしました。

で、今日の岩永さんのブログをみたら、あのあとさらに痛IDEで盛り上がったとかw

 

----- 追記
当の しばやん がこんなエントリを始めたようだ。

さらにわんくまのかずきさんがMEFについてエントリをしてる。

---- さらに追記

どうせならHUBにしてしまおう

どうもわんくまの こくぶん さんも同日の勉強会で痛IDEのLTをやったらしい

で、僕のPPTにあるリンク先もここに抽出しとく。
記事へブログ気持玉 / トラックバック / コメント


リモートデスクトップでクリアタイプフォントを使う

2009/06/22 17:49

MOSS なんかの開発をしていると、基本 VirtualPC での作業となるわけだけれど、VitualPC だとフォントスムージングがきかないのでクリアタイプフォントが汚くなるとお嘆きのあなた。

リモートデスクトップの設定をし忘れていませんか?
リモートデスクトップには接続するサーバーのネットワーク帯域にあわせていくつかの設定を持っています。

たとえばローカルの仮想PCに接続する場合なんかは、ネットワークの負荷なんてものはほぼないのだから、動作が許す限り使いやすい環境でコーディングしたいわけです。

僕はとりあえず仮想PCにリモートデスクトップで接続するときは、
エクスペリエンスタブの設定はすべてONにしています。

Remote Desktop Connection

参考
リモート・デスクトップの描画設定を変更してレスポンスを向上

記事へナイス ブログ気持玉 1 / トラックバック 0 / コメント 0


Web ブラウザで動作する IDE - CodeRun

2009/06/12 23:50

Twitter で、@aspnet_code からフォローが飛んできた。とりあえずプロフィールにリンクがある場合は見に行ってみるんだけれど、リンク先のcoderunがすごい!!こんなことやっている時間がないのに、ちょっとはまってしまった。

coderun は Webブラウザーで動作するVisualStudioライクな無料のIDEで、ASP.NET 3.5, PHP 5.1 をサポートするらしいです。IDEというぐらいなので、もちろんブレイクポイントやウォッチ式、インテリセンス、コードの色づけなどをサポートしてくれます。

しかもソリューションエクスプローラー(?)からDeployを選択すると、ビルドしたアプリケーションをcoderun上のWebサーバーにデプロイして動かすことができます!!

今のところ言語としてはC#のみのサポートのようですが、通常のASP.NETだけでなく、Silverlightアプリケーションや、WCFサービス、Facebookアプリケーション、なんかも作ることができます。

記事の締め切りが月曜に迫ってこんなことをやっている時間なんてないのに、なんでこんなおもしろそうなサービスがいま飛び込んでくるんだー!!

image

記事へ驚いた ブログ気持玉 5 / トラックバック 1 / コメント 1


ASP.NET AJAX 4.0 のClientScript一覧

2009/06/12 01:43

ASP.NET AJAX 4.0 では既存のMicrosoft AJAX LiblaryにADO.NETとの連携ライブラリとテンプレート、バインディング用のライブラリが追加されています。

ASP.NET AJAX の基本スクリプトは System.Web.Extensions.dll にリソースとして入っているので、こいつをAJAX Class Browserに読み込ませてみる。

ASP.NET AJAX は次の11このスクリプトで構成されています。

  • MicrosoftAjaxCore.js
  • MicrosoftAjaxComponentModel.js
  • MicrosoftAjaxSerialization.js
  • MicrosoftAjaxGlobalization.js
  • MicrosoftAjaxHistory.js
  • MicrosoftAjaxTemplates.js (新規)
  • MicrosoftAjaxNetwork.js
  • MicrosoftAjaxWebForms.js
  • MicrosoftAjaxWebServices.js
  • MicrosoftAjaxApplicationServices.js
  • MicrosoftAjaxAdoNet.js (新規)

MicrosoftAjaxTemplates と MicrosoftAjaxAdoNet 以外は AJAX 3.5 までの MicrosoftAjax と MicrosoftAjaxTimer、MicrosoftAjaxWebForms をリファクタリングしたもののようです。

ScriptManagerのScripts要素に上の11このファイルを追加してあげると、こんな風に表示されました。System.Web.Extensions の参照をちょっとだけ修正しました。

20090611.2

記事へブログ気持玉 / トラックバック / コメント


Chrome のブックマークを LiveMesh で同期する。

2009/06/06 16:49
すいません、この方法ではうまく同期できませんでした。

Google Chrome は Google Toolbar が無い(というか、拡張ツールバー関連がない)ので、ブックマークはそれぞれのコンピューターで管理する必要があります。

とはいえ、Chrome のブックマークは一つのファイルとして管理されているので、こいつをほかのコンピューターと同期する仕組みがあれば、どのPCにインストールされているPCでも同期できるんじゃないか?と思うわけです。

ちょうどよく僕のPCにはLiveMeshが入っています。こいつの機能の一つに、複数コンピュータのファイルを同期してくれる機能があるので、今回はLiveMeshを使って、Chromeのブックマークファイルを同期させます。

Chromeの個人別のブックマークファイルは次の場所にあります。


%UserProfile%\AppData\Local\Google\Chrome\User Data\Default\Bookmarks

あとはこいつを複数PCで同期してくれるフォルダに突っ込んで、シンボリックリンクを張ればOKなはず。

たとえば

%UserProfile%\Document\LiveMesh\Google\

以下のフォルダが、LiveMeshで同期されるとしたら、こんな風にシンボリックリンクを作ってあげればいいです。

ひとつ前のエントリと同じように、コマンドプロンプトを管理者権限で起動し、次のコマンドをタイプします。

mklink "%UserProfile%\AppData\Local\Google\Chrome\User Data\Default\BookMarks" "%UserProfile%\Documents\LiveMesh\Working\Google Chrome\Bookmarks"

Chrome を起動すると Bookmarks ファイルがない場合自動的に作成されてしまうので、上記作業をする際はChromeを終了後、DocumentフォルダのBookmarkファイルを削除してから行ってください。

記事へなるほど(納得、参考になった、ヘー) ブログ気持玉 1 / トラックバック 0 / コメント 1


シンボリックリンクでChromeとIEのダウンロードフォルダを同じにする。

2009/06/06 08:47

この頃Google Chromeを使い始めました。Google Toolbar が無いのは気になるけれど、起動は早いしお手軽なので今のところIE8と併用しています。

で、IE8とChromeを併用しているとちょっと気になることが。

ファイルダウンロードを行う際のデフォルトの保存先がそれぞれ次のように異なることです。

  • IE: %UserProfile%\Downloads
  • Chrome: %UserProfile%\Documents\Downloads

まぁChromeの設定を変えて、IEと同じフォルダにファイルを保存するように変更すればいいんだけれど、そういえばVistaからシンボリックリンクがサポートされていたよなー。ということで、シンボリックリンクで解決してみました。

Vistaにおけるシンボリックリンクの説明は、@ITの「Windows Vista/Windows Server 2008でシンボリック・リンクを作成する」を参照してください。

もちろんVistaの後継であるWindows7でも同じようにシンボリックリンクを作成できます。



1.コマンドプロンプトの起動

@ITの説明にあるようにまずはコマンドプロンプトを管理者権限で立ち上げます。ここでひとつTips、コマンドプロンプトを起動する際には、Windowsの検索ボックスでcmdと入力した後Shift+Ctrl+Enterで起動すると、管理者権限でコマンドプロンプトを起動することができます。

20090606.1



2.シンボリック作成のコマンドの確認

シンボリックリンクを作成するためのコマンドはmklinkです。

引数なしでmklinkとタイプすると、mklinkのヘルプが表示されます。

20090606.2



3.シンボリックリンクの作成

実際にシンボリックリンクを作成します。

ChromeのダウンロードフォルダをIEのダウンロードフォルダにリンクさせたいので、コマンドプロンプトで次のようにタイプします。


mklink /D %UserProfile%\Documents\Downloads %UserProfile%\Downloads

ここで、すでにChromeのダウンロードフォルダが存在すると「既に存在するファイルを作成することはできません。」と表示されるのでChromeのダウンロードフォルダをエクスプローラやコマンドラインから削除してください。



そういえば、シンボリックリンクを使用した作業効率のアップに関しては、プロダクティブ・プログラマでもちょっとだけ触れられていました。この中ではWindowsXPなどでシンボリックリンクを作成する方法や、そのほかにも作業効率を上げるための方法が掲載されているので、一度目を通してみると面白いかもしれません。




記事へナイス ブログ気持玉 1 / トラックバック 1 / コメント 0


本番環境とテスト環境のweb.configの切り替え

2009/06/03 10:01

以前 kkamegawa さんのところでこんなエントリがあって、

〜.configってファイルをセットアップにまぜるとき

Visual Studio 2008 Web Deployment ProjectsMSBuild CommunityTasks の XmlMassUpdate の記事が NAgile さんと NAndu さんの記事にあるよーなんて話をしてたんだけれど、Visual Web Developer Team Blog に Visual Studio 2010 でデプロイを行うときの詳しい手順が書かれた記事を発見

 

Web Deployment: Web.Config Transformation

 

英語なんだけれど、画像とWeb.configの定義の部分をみれば、どんなふうに実現しているかもわかるはず。

この記事で最初にリンクとして示しているサイトもわかりやすいので、デプロイで悩んでいる人はぜひ一度見てみるといいと思います。

 

---追記

特にVishal Joshi's TangentにはWebサイトのデプロイ関連の記事が豊富にエントリされているので参考になります。

記事へナイス ブログ気持玉 1 / トラックバック 0 / コメント 0


Groove のファイルを検索したい。

2009/05/25 23:34

この頃お手軽なこともあり、ファイル管理にGrooveを使うことが多いんです。
どこにいてもファイルを参照できるのはうれしいんですが、ファイルの検索ができないというかなり大きな問題があります。

CodePlexをさまよっていたらいくつか見つけたので紹介。

■ GrooveSearch
http://groovesearch.codeplex.com/
ワークスペースを指定して、ファイル名から検索を行うことができます。
中身までみてくれないけれど、リアルタイムで自分のワークスペースを検索してくれるのと、
検索結果のクエリと結果を保存して、ファイルの更新までできるのはうれしいかも。 ソースはCodePlexでは珍しくVB.NETで書かれているみたい。

■ Groove Web Services V12 Helpers
http://gwsv12helpers.codeplex.com/
なんだか、バイナリーがいっぱいあって見切れていませんが、GrooveAPIを使いやすく提供しているライブラリ群のようです。上の GrooveSearch は、この Groove Web Services V12 Helpers のライブラリを使って実装されているみたい。

こいつの中のGrooveDataExportersProjectsを使うと、Grooveのファイルをローカルファイルにエクスポートすることができます。
その後はWDSあたりのインデックス作成と絡めればWindowsの検索からファイルを引っかけられます。WDSを使うのでファイルの中身の検索もできます。

■ GroovyDesk
CodePlex ではなく、商用のソフトのようですがこんなのもありました。
http://www.groovydesk.com/
こいつの開発が完了していれば、こいつが一番楽だったのかも。
今のところGoogleDesktopSearchからの検索に対応しているとか。(試していないのでわかりません。)
WindowsDesktopSearch版も開発中とのことですが、去年の5月からリリースが止まっています。。。

記事へなるほど(納得、参考になった、ヘー) ブログ気持玉 2 / トラックバック 0 / コメント 0


Visual Studio で新しいバージョンに慣れる

2009/05/21 12:52

Visual Studio の新しいバージョンを入れたときに、新しいフィーチャーを確認するのには次の3つの方法があります。

1.Visual Studio のサンプルを確認する。

2.トレーニングキットを確認する。

3.言語仕様を読む

Visual Studio のサンプルはコードサンプルだけなので、機能を知るにはソースを読む必要があります(ただし、日本語版のVisual Studioをインストールすれば、サンプルのコメントは日本語になっている)。

 

1.Visual Studioのサンプルを確認する。

Visual Studio のインストールフォルダの Samples フォルダには、VB, CS, VC などのプログラム言語ごとのフィーチャーやチーム開発、テストなどのサンプルプロジェクトがZIP形式で保存されています。

Visual Studio 2010 Beta1 は現在のところ英語版での提供なので、次のフォルダにサンプルが存在します。(日本語版は最後の1033が1041になります。)

C:\Program Files\Microsoft Visual Studio 10.0\Samples\1033

Visual Studio 2008 の時であれば LINQ やそれに伴うフィーチャー(匿名型やラムダ式)などのサンプルが豊富にありました。Visual Studio 2010ではVBではコレクション初期化子や自動プロパティなどが追加されていました。

 

2.トレーニングキットを確認する

Microsoft では新しい製品のトレーニングキットをダウンロードセンターからダウンロードできます。

ダウンロードセンターで Traning Kit の検索結果

Visual Studio 2010 の Beta1 がリリースされたタイミングで、CTP用のトレーニングもアップデートされています。

Visual Studio 2010 and .NET Framework 4 Training Kit - May Preview

この中には、Visual Studio 2010 と .NET Framework 4 の HansOn リソース(サンプルコードとPPTスライド)が大量に含まれています。上のサンプルコードよりは概要を簡単につかめるのでお手軽かもしれません。(英語だけれど)あっあとF#関連のサンプルとドキュメントはトレーニングキットの方にしかないです。

 

3.言語仕様を読む

Visual Studio 2010 をインストールすると、VBとCSの言語仕様が次の場所に保存されます。言語使用なのでトレーニングキットのように学び方は教えてくれないけれど、こいつが一番使用できます。

VB
C:\Program Files\Microsoft Visual Studio 10.0\VB\Specifications\1033\Visual Basic Language Specification 10.0.docx

C#
C:\Program Files\Microsoft Visual Studio 10.0\VC#\Specifications\1033\CSharp Language Specification.docx

おそらく、日本語のRTMまでにはこいつらも日本語になることを期待!!

記事へなるほど(納得、参考になった、ヘー) ブログ気持玉 2 / トラックバック 0 / コメント 1


Visual Studio 2010 のインストール時に Error1330 が発生する

2009/05/20 14:08

Virutal PC 上の Windows Server 2008 に Visual Studio 2010 Beta1 をインストールしようとしたら、こんなエラーメッセージが表示された。

20090520_2

Error 1330.A file that is required cannot be installed because the cabinet file d:\cab57.cab has an invalid digital signature. This may indicate that the cabinet file is corrupt

MSDN からダウンロードした ISO ファイル(en_visual_studio_team_system_2010_team_suite_beta_1_x86_dvd.iso)をマウントしてるんだけれどな。

そういえば、Visual Studio 2008 の時も似たような問題ではまったなー。とりあえずISOファイルの内容をローカルドライブにコピーして再インストールしたら正常に終了

20090520_4

記事へなるほど(納得、参考になった、ヘー) ブログ気持玉 2 / トラックバック 0 / コメント 1


クリスタルレポートはどこへ行った?

2009/05/20 11:10

Visual Studio 2005 が出た頃から、デフォルトだとVisual Studio のインストール時にクリスタルレポートが同時にインストールされるようになったわけだけれど、僕はクリスタルレポートを使わないのでいつもインストール時にインストール対象から除外していた。

Visual Studio 2010 のインストールオプションをみたら
あれ?クリスタルレポートが見あたらない。。。

20090520

別の問題でまだインストールが完了していないので、インストールされるかどうかわからないけれど、オプションにでないだけで、インストールされちゃうのかな?

記事へなるほど(納得、参考になった、ヘー) ブログ気持玉 5 / トラックバック 0 / コメント 0


ASP.NET AJAX を調べよう

2009/05/19 22:23

ASP.NET AJAX 4.0 を調べるので、リンクなど

■ データ駆動型 Web アプリケーションに対する新しい AJAX サポート
http://msdn.microsoft.com/ja-jp/magazine/cc972638.aspx

■ ASP.NET 4.0 ホワイトペーパー
http://www.asp.net/learn/whitepapers/aspnet40/

■ ASP.NET AJAX 4.0 Preview 4
http://aspnet.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=24645

■ MSDN の AJAX 4.0 関連のリファレンス
ASP.NET AJAX の概要

■ MIX09 の ASP.NET 4.0 のスライド
T46F:ASP.NET 4.0+ What's Next?

あれ、こんな記事も引っかかった。w
最初の一回だけでやめちゃってたのね(汗
http://karua.at.webry.info/200808/article_4.html

僕が以前見たのは、CodePlex で公開されていたやつ。.NET Framework に組み込まれたやつをさわるのは今回が初めてなのんだけれど、違いってあるのかな。

記事へ面白い ブログ気持玉 1 / トラックバック 0 / コメント 0


Silvelright + Prism のポッドキャスト

2009/05/17 15:15

RSSを眺めていたら、Prism を使った Silverlight 開発のポッドキャストを公開しているページが合ったので眺めていた。動画だと英語がわからなくてもだいたい何をやっているかはわかるので、良い感じ。

Silverlight Prism
Prism for Silverlight - An Intro to Composite Applications

Silverlight3.0 なら Navigation Framework も良い感じなんだけれどね、Silverlight2.0 ならPrismかな。

 

内容はこんな感じ

1.アプリケーションをまとめる Shell.Xaml
    Prism は Shell に モジュールを登録してコンポジット名開発を行うので、まずは Shell.xamlの作成

2.Shell.Xaml の修正
    Prism 用 DLL を参照、
    xmlns の名前空間インポート
    アプリケーションのコンテナを作成

3.Bootstrapper の作成
    最初に起動される子
    Shell.Xaml を Unity Container から取り出して表示
    起動するときは、Application.Xamlを変えなきゃだめだね

4.モジュールの追加
    Bootstrapper の GetModuleCatalog をオーバーライド
    モジュールカタログに、Shellで起動するModuleを登録
    モジュールを作って、表示するViewを作って
    Viewに表示する用のViewModelを作って
    (おっ、ここでも Model-View-ViewModelだ〜)

5.サービスの追加
    サービス用のクラスを作って
    Unity でインジャクションするから、サービス用のInterfaceを作って
    ViewModel がわで 実体化

6.Shellに配置するViewを修正
    xmlns の定義に Prism のタグを登録
    ViewModel をバインド

ダウンロード先

Liveコーディングってすごいよな−、ぼくだったら一度コンパイルに失敗したら焦ってなにもできなそうだ

記事へブログ気持玉 / トラックバック / コメント


インストール中に、Windows Debug Manager が原因でインストールが止まる

2009/05/14 16:48
なんだか、開発PCの調子が悪くPCを作り直しているんだけれど、
Visual Studio 2008 SP1 のインストール中にこんなダイアログが出てきてインストールが中断してしまった。

画像


Windows Debug Managerはサービスなので管理ツールから止めてやればインストールは再開されるんだけれど、こいつって何者?

停止は管理ツールから
画像


IEのスクリプトデバックなんかに使われる奴だったのね。
Office XP で Machine Debug Manager をオフにする方法<http://support.microsoft.com/kb/321410/ja>


人によってはDCOMの設定をしないと止められないらしい、これはさすがにめんどくさいな
Machine Debug Manager をオフにする方法(mdm.exeを起動させない方法)<http://d.hatena.ne.jp/holidays-l/20080704/p2>
記事へ面白い ブログ気持玉 1 / トラックバック 0 / コメント 0


OneCare サービス終了のメールが来た

2009/05/13 02:16

OneCareからこんなメールが来た

Windows Live OneCare をご利用いただき、ありがとうございます。Windows Live OneCare は 2009 年に販売を終了し、2010 年にサービスを終了いたします。これまでのご愛顧に感謝いたしまして、サービス終了まで Windows Live OneCare を引き続きお客様にご利用いただけるよう、有効期間を 6 か月間、無料で延長いたします。

今更なんですが、OneCareってサービス終了なんですね。サービス終了のプレスリリース自体は去年末にすでに出ていたとは。。。結構ショックです。しかしここまで自分が浦島状態とは思いませんでした(汗

記事へブログ気持玉 0 / トラックバック 1 / コメント 4


Silverlight 3 のオフライン機能を突っついてみる その3

2009/04/14 11:14

アプリケーションの状態を取得する。

Silverlight でアプリケーションが、Offline(Detach)なのか、OnLineなのかを調べるためには、Application の ExecutionState を調査する。

たとえば、プログラム起動時に、アプリケーションの状態を取得する場合は、App.xaml.cs 中で、this.ExecutionState の値を調査すれば解るし、各ページからアプリケーションの状態を調査する場合は、System.Windows.Application.Current.ExecutionState の値を調査すれば良い。

ExecutionStateは次の5つが有るんだけれど、DetachedUpdatesAvailableがいまいち解らない。こいつ何時発生するんだろう。。。

Detached    デタッチで稼働中
Detaching    デタッチ中
DetachFailed    デタッチに失敗
RunningOnline    オンラインで稼働中
DetachedUpdatesAvailable    ???

 

アプリケーションの状態の変化をイベントで検出する

アプリケーションの状態が変化したときに何かの処理を行い体場合は、Application の ExecutionStateChanged イベントを設定する事で検知が出来る。例えば、App.xaml.cs 中でイベントを捕捉したいなら、こんな風に書けばいい。


this.ExecutionStateChanged += (sender, e) =>
{
   switch (ExecutionState) {
       case ExecutionStates.Detached:
           MessageBox.Show("Detached");
           break;
       case ExecutionStates.DetachedUpdatesAvailable:
           MessageBox.Show("DetachedUpdatesAvailable");
           break;
       case ExecutionStates.DetachFailed:
           MessageBox.Show("DetachFailed");
           break;
       case ExecutionStates.Detaching:
           MessageBox.Show("Detaching");
           break;
       case ExecutionStates.RunningOnline:
           MessageBox.Show("RunningOnline");
           break;
       default:
           break;
   }
記事へなるほど(納得、参考になった、ヘー) ブログ気持玉 4 / トラックバック 0 / コメント 1


SilverlightとWindowsFormsのServiceReferenceの違い

2009/04/13 15:39

CodeZineのこの記事で作った方法だと、WindowFormsアプリケーションでサービス参照の追加時に非同期メソッドが追加されないんです。と質問を受けたのでちょっと確認。

通常、Visual Studio のサービス参照の追加から下のような画面を表示して、WebサービスやWCFサービスの参照設定を行う訳だけれど、Silverlightは非同期通信のみのサポートになるため、WindowsFormsなんかで作成するときと「詳細設定...」ボタンをクリックしたときの動作が変わります。

image

WindowForms

image

  • 非同期操作の生成チェックボックスをONにしないと非同期メソッドがProxyクラスに追加されない。
  • Web参照の追加ボタンから、Visual Studio 2005 で作成するWebサービス参照と同じProxyクラスを追加できる。

Silverlight

image

  • Silverlight は非同期通信のみのサポートなので、デフォルトで非同期操作の生成チェックボックスがONになり、レーアウトされ変更できない。
  • Silverlightでは、WCFのみのサポートとなるため、Web参照の追加ボタンは表示されない。
記事へなるほど(納得、参考になった、ヘー) ブログ気持玉 1 / トラックバック 0 / コメント 2


Silverlight 3 のオフライン機能を突っついてみる その2

2009/04/13 14:54

アプリケーションのネットワーク状況を検知する。

Silverlight 3 では、起動している Silverlight 3 アプリケーションのネットワーク状況を取得するプロパティが有ります。現在のアプリケーションのネットワーク状況を主とする場合、System.Net.NetworkInfomation.NetworkInterface クラスの GetIsNetworkAvailable メソッドを使用して調査を行います。

また、イベントハンドラを登録しておけば、ネットワークの状況が切り替わった際に検知を行う事が出来ます。

次のコードは、MainPage.xaml が読み込まれた際にネットワークの状況を検知するイベントハンドラを登録し、現在のネットワークの状況をMessageBoxで表示するコードです。


public MainPage()
{
    InitializeComponent();
    NetworkChange.NetworkAddressChanged += NetworkChange_NetworkAddressChanged;
}

public void NetworkChange_NetworkAddressChanged(object sender, EventArgs e)
{
    if (NetworkInterface.GetIsNetworkAvailable())
        MessageBox.Show("生きてる");
    else
        MessageBox.Show("死んだ");
}
記事へなるほど(納得、参考になった、ヘー) ブログ気持玉 3 / トラックバック 0 / コメント 0


続きを見る

トップへ

月別リンク

かるあ のメモ/BIGLOBEウェブリブログ
[ ]