アーカイブ

Posts Tagged ‘Silverlight’

あっあれ??バインド済み

今メンテナンスしているシステムでは、WebブラウザーにホストしたSilverlightからローカルコンピューターに対しソケット通信なんかをやっているわけです。必然的にクロスドメインになるので、常駐アプリでローカルポリシーサーバーを立ててあげます。

詳しくはMSDNのこちらを参照

あれ?ポリシーサーバーがバインドできない

    今までは問題無く動作していたんだけれど、ローカルのソケットサーバーで943番ポートをバインドしようとしたらこんな例外が出た。

System.Net.Sockets.SocketException (0x80004005): アクセス許可で禁じられた方法でソケットにアクセスしようとしました。
   場所 System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress)
   場所 System.Net.Sockets.Socket.Bind(EndPoint localEP)

今まで実行できていたのになんでだろう?なにか別のサービスがポートを専有している?とおもい、おもむろにコマンドプロンプトでnetstatを実行

netstat –a –b

プロトコル  ローカル アドレス          外部アドレス        状態

… 略 …

TCP    0.0.0.0:943            XXXX:0            LISTENING    [XamlSpyService.exe]

… 略 …

あー、WPFで作ったアプリのXAMLを確認するのにXAML Spy入れた、確かに入れた。

こいつSilverlightのXAMLを確認するから、独自でポリシーサーバー持つのか。

XAMLを確認するなら

実行中アプリのXAMLを確認するだけなら、XAML SPYを使わなくてもSNOOPでもいいよね。デザインなんかはとても気に入っているのですが、、、さようならXaml Spy

広告
カテゴリー:プログラミング, Silverlight タグ: ,

Silverlight5の信頼されたアプリケーションのブラウザー実行

メモ、どうも日本語資料がなかなか無いんだけれど、八巻さんの資料に載ってた。

Silverlight 5でぶり返すWPF不要論(http://www.slideshare.net/Yamaki/silverlight-5wpf)16ページあたり

というか、MSDNに日本語の記述がない。。。消え行く技術には厳しいのか。

#この記事書くまで、このサイトのカテゴリに「メモ」がなかったことに気づいた。。。

カテゴリー:メモ, Silverlight タグ:

.NET関連のUserVoice

製品に反映するためにユーザーの声をあつめるサービスににUserVoiceがあります。

Microsoftで言えば、公式なフィードバックはMicrosoft Connectで受け付けていますが、UserVoiceにもMicrosoftが幾つかのフォームらを開設しています。既に役目を終えたところもあると思いますが、サラっと検索て出てきた.NET関係のUserVoiceを上げておきます。

都度追加予定…

.NET User Voice

ASP.NET

SQL Server

Data Developer

Windows Phone

Windows Azure

あれ?Azureは独自にホスティングしているのかな?

番外

なんかUserVoiceを探してたら、こんなフィードバック募集もあった。

.NET開発者中心/Insider.NETへの読者フィードバック

ココにフィードバックすれば、@ITで記事になるのかな?

カテゴリー:プログラミング タグ: , ,

Mango Sdk BetaでMVVM Lighttoolkitを使おう

Mango Sdk Betaがでてからしばらく立ちますが、WPF/Silverlight/Windows Phoneに対応したMVVMのツールキットであるMVVM LighttoolkitもMangoに対するパッチが公開されています。

バイナリーのインストール

パッチといってもバイナリーの置き換えになるようですが、安定版の MVVM Light Toolkit V3とプレビュー版の MVVM Light Toolkit V4ともにリリースされています。それぞれ次のリンクからダウンロード出来きます。

ただ、V3とV4はアセンブリが同じ名前なので、もし同居させたいならデフォルトとは違うフォルダーにインストール擦る必要がありますが、その場合、後述のテンプレートの参照先がおかしくなってしまうので、気をつけましょう。

MVVMの通常のインストールと同じように、ダウンロード後にC:\Program Filesに解答してあげましょう。MVVM LightTool V3のインストール方法はこちら。→ MVVM Light Toolkitをインストールしてみる。

V3を利用する場合は、NuGetで次のコマンドを実行すれば、インストールの作業をしなくても利用できます。

Install-Package MvvmLight

 

プロジェクトテンプレートのインストール

プロジェクトテンプレートには、通常のVisual Studio用のテンプレートと、Windows Phone用のVisual Studio Express用の2つがあります。

Visual Studio用は、Visual Studioのオプション→Tools→Options→Project and Solutionsにある、User Project Locationで確認できます。

image

デフォルトでは、ここが指定されています。

%UserProfile%\Documents\Visual Studio 2010\Projects

テンプレートをインストールすると、MvvmLight (WP7.1) がテンプレートに追加されます。

image

カテゴリー:Silverlight タグ: ,

CodeZine: Silverlightによるデスクトップアプリケーション

2011年4月5日 1件のコメント

今回から3回に分けてブラウザー外実行です。

Silverlightによるデスクトップアプリケーション
Silverlight 4で作る新しいRIAアプリケーション(8)
http://codezine.jp/article/detail/5770

#wordpress のクイック投稿って機能を使ってみた。

カテゴリー:雑記, Silverlight タグ:

VB.NETにMVVM LightToolkitのテンプレートを追加しよう

MVVM LightToolkitのVB用テンプレートがないと聞いたので、とりあえずViewModelのテンプレートを作ってみました。

Visual Studioのテンプレートを作るのは簡単です。

  1. もともとになるプロジェクトやファイルを作って、
  2. 置き換えようのパラメーターをソースに適用して、
  3. ウィザードからテンプレート化して、
  4. UserTemplateフォルダーに置く
  5. だけ。

ということで、やってみます。

1.テンプレートのもととなるプロジェクトを作る。

まずは、テンプレートのもととなるプロジェクトを作ります。

本来のMVVM LightToolkitのプロジェクトテンプレートから作られるプロジェクトは、アセンブリの参照以外にも、MVVM LocatorやMVVM Viewなどが最初からプロジェクトに追加されていますが、今回は単にMVVM LightToolkitのアセンブリが追加され、ViewModelが一つ追加されたものを作ります。

MVVM LightToolkitに必要なアセンブリは、次の3つです。

  • GalaSoft.MvvmLight.Extras.SL4.dll
  • GalaSoft.MvvmLight.SL4.dll
  • System.Windows.Interactivity.dll
  • Select the file to reference

テンプレートにする、ViewModelクラスを作成します。ViewModelBaseクラスを継承する以外は、特に記述するものもないのですが、C#のテンプレートにならってこんなクラスを追加してみました。C#ではクラスファイルには名前空間を含めますが、VBではアプリケーションレベルでは既定の名前空間を使うのが習わし?になっているので名前空間は定義していません。

Option Explicit On
Option Strict On
Option Infer On

Imports GalaSoft.MvvmLight

Public Class Class1
    Inherits ViewModelBase

    Public Sub New()
        'if (IsInDesignMode)
        '    ' Code runs in Blend --> create design time data.
        'Else
        '    ' Code runs "for real": Connect to service, etc...
        'End If
    End Sub

    'Public Overrides Sub Cleanup()
    '    ' Clean own resources if needed
    '    'MyBase.Cleanup()
    'End Sub
End Class

とりあえず、この状態でビルドが通ることを確認したら、テンプレートのもととなるプロジェクトの作成は終了です。

2.換えようのパラメーターをソースに適用する。

テンプレート化するアイテムは、アイテムの追加ダイアログで指定したファイル名をクラス名につけたいので、次のように修正します。

Option Explicit On
Option Strict On
Option Infer On

Imports GalaSoft.MvvmLight

Public Class $safeitemname$
    Inherits ViewModelBase

    Public Sub New()
        'if (IsInDesignMode)
        '    ' Code runs in Blend --> create design time data.
        'Else
        '    ' Code runs "for real": Connect to service, etc...
        'End If
    End Sub

    'Public Overrides Sub Cleanup()
    '    ' Clean own resources if needed
    '    'MyBase.Cleanup()
    'End Sub
End Class

クラス名をClass1から、定義済みテンプレート名である、$safeitemname$に変更しています。このほかのテンプレート名は、MSDNを参照してください。また、カスタムテンプレートを定義することもできます。

3.ウィザードでテンプレート化する。

テンプレートウィザードを開始するには、Visual Studioのファイル⇒テンプレートのエクスポートを実行します。

image

今回は、アイテムテンプレートを追加するので、ラジオボタンで項目テンプレートを選択します。

テンプレートのエクスポート ウィザード

アイテムテンプレートに含むファイルを指定します。今回は先ほど修正したMVVMViewModel.vbを選択します。

テンプレートのエクスポート ウィザード (2)

このファイルが参照するアセンブリを選択します。ここでは上記の3アセンブリを参照します。

テンプレートのエクスポート ウィザード (4)

テンプレートの情報を定義してテンプレートの作成は完了です。

テンプレートのエクスポート ウィザード (5)

4.UserTemplateフォルダーに置く

テンプレートを自動的にVisual Studioにインポートを選択すると、今回作成された項目テンプレートが、下記の場所に作成され、Visual Studioに自動登録されます。

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

 

テンプレートを適用する。

アイテムの追加ダイアログに作成したテンプレートが表示されます。

新しい項目の追加 - SilverlightApplication2

プロジェクトのテンプレートを作る。

プロジェクトテンプレートの作り方は、基本的に項目テンプレートと同じです。

テンプレートのウィザードの最初で、プロジェクトテンプレートを選択するだけです。

テンプレートの構成

Visual Studioのテンプレートファイルは単なるZipファイルです。解凍するとテンプレートの構成を書いたvstemplateファイルと、テンプレートに含まれるファイルやアイコンが解凍されます。

image

このvstemplateファイルはを修正することで、アイテム追加時のカスタム動作を追加することができます。

詳細はこちら⇒プロジェクトと項目テンプレートのカスタマイズ

カテゴリー:Silverlight タグ: ,

MVVMとはを学ぶ上でこれ以上無い資料が公開中

この前の勉強会でメッセージ通信の話をしていた @ugaya40 さんが、MVVMパターンと他のUIパターンというタイトルで資料を公開されています。なんというか、この前の勉強会の前半で僕が言いたかったことが凄まじく良くまとまっています。

MVVMってなに?MVCやMVPと何が違うの?何が嬉しいのって部分で悩んでいる方。必読です!!

MVVMパターンとイベント駆動開発、そしてMVC/MVP/PMパターンとの関係 – 何故MVVMなのか
http://ugaya40.net/wpf/mvvm-mvc-mvp-pm-eventdriven.html

カテゴリー:Silverlight タグ: ,