ラベル Silverlight の投稿を表示しています。 すべての投稿を表示
ラベル Silverlight の投稿を表示しています。 すべての投稿を表示

2010年4月21日水曜日

Silverlightのリフレクション制限

今日の気づき。

このフォーラムにもありますが、Silverlightで private / protected のメンバーにリフレクションでアクセスしようとすると、MethodAccessExceptionで弾かれちゃいます。

他のプラットフォームのように使えないのは残念ですがセキュリティ上の制限なんで仕方ないですね。

MSDN Security Considerations for Reflection

 

#ていうか更新久々過ぎ

2009年7月10日金曜日

Silverlight3 RTW と Silverlight ToolKit 7月版

RTWでましたね。

Microsoftのサイトからダウンロード(Silverlight3 RTW 3.0.40624.0)になってます。

開発に必要なSDKやToolsはいまのところ英語版のみダウンロード可能になってます。 →ダウンロードリンク

それでも一応、日本語版VS2008の環境に入れてみましたが、まだデバッグまわりがちゃんと動かなかったです。そのへんは日本語版まちでしょうか。

RTWと同じタイミングでSilverlight ToolKitの最新版(2009 July Ver)もCodePlexに出ています。

注意点としては多くのコントロールが整理されてアセンブリが変わってます。Silverlight3betaで作っていたプロジェクトについては各XAMLのXMLNS属性を変更してあげる必要があります。 →変更点リスト

2009年6月10日水曜日

.NET RIA Servicesのロードマップ

http://silverlight.net/forums/t/101160.aspx

 

MSフォーラムに投稿されてたのでメモ。

気にしていたADO.NET DataServicesのサポートはPDC2009 beta バージョンから、ということは今年の暮れでしょうか。

でも July 2009 CTP でもいろいろな機能強化や、Data Services とのインテグレーションを見越したライブラリ整備が行われるとのことでこちらを楽しみに。

RTWはまだもう少し先(来年初頭でVS2010& .NET4.0準拠)のようですが。

2009年5月22日金曜日

VS2010beta & CLR4.0

 

英語版の公開がはじまりましたね。とりあえず入れてみました。

startup

スタートアップ画面

project

新規プロジェクトテンプレート

Silverlight

Silverlightのデザイナー。プレビューだけではなくデザイン機能が付きました。プロパティシートもかなり進化。

SLProject

Silverlightプロジェクトプロパティ。Silverlightのバージョンも選択可能になってる。

 

ここまでの作業で1回VS2010がお亡くなりになりましたが(笑)、それをのぞけばそこそこ動く感じです。

2009年5月14日木曜日

EF4.0に向けて

ADO.NET Team blogが続々と更新されてるので要チェック。

Entity Framework(EF)4.0では、よりPOCOなエンティティモデル(=余計なインターフェースや親クラスをもたない、よりPlain Old なObject)や、モデルファースト(作ったモデルをもとにDBスキーマを生成)なんかが可能になるとのこと。それじゃEntityの代わりに変更追跡を担当するのは誰?みたいな話もこれからでてくるようです。

N-Tierでの利用などのアーキテクチャ見地のことについてもすこし言及があります。このへんになるとSilverlightではとくに.NET RIA Servicesとのカラミもあると思います。いまのところ.NET RIA ServicesはEFまたはLINQtoSQLをもとに独自のサービス/プロキシをつくりますが、5月のMSDNマガジンのRIA Servicesの記事にもいずれは両者が連携するとの記述があります。

(Building A Data-Driven Expense App with Silverlight3より一部引用)

In future releases, .NET RIA Services will also work with ADO.NET Data Services.

なのでADO.NET DataServicesをベースとしてその上にRIA Servicesの機能性を展開するようなアーキテクチャガイドラインになるといいですね。Silverlight3が多くの開発者を取り込んでブレイクするためにはこのような「速成フレームワーク」の存在は欠かせない部分だと思います。

2009年4月13日月曜日

.NET RIA Services Overviewを読んで

 

Microsoft .NET RIA Services Overview ~ Mix09 Preview

 

Mix09のタイミングで公開開始されたPDFを一通り読んでみたので、忘れないようにメモ。

 

  • N-Tierアーキテクチャでのレイヤ間モデル・ビジネスロジック共有のためのフレームワーク&ガイドラインといったところで、とくにSilverlightにフォーカスしたもの。
  • EntityFrameworkまたはLINQtoSQLをサポートし、サーバーサイドでのモデルとビジネスロジック実装をクライアント側からも共有できるように、Proxyの自動生成を行う。
  • サーバー側実装はDomainServiceクラス(EF/LTSの選択によって継承元が異なる)に行う。
  • DomainServiceを参照するクライアントプロジェクトではビルド時に自動的にProxyクラスが生成される。また、Entityだけではなく、BLもProxyに反映される。
  • クライアント側ではDomainContextクラスを使用する。DomainContextではEntityの状態管理、変更トラックなどを行う。
  • クライアント側でもサーバー側と同じNameSpace、クラス名でモデルへアクセスできる。またINotifyPropertyChangeも自動的に実装される。
  • サーバー側のCRUD処理については、DomainContextにも同様のメンバが用意される。ただし更新系についてはあくまでContext内の状態変更を行うだけなので、サブミットされるまでは実際に更新されない。
  • クエリ系メソッドはクライアント側ではご丁寧に名前が変更される(Get,Fetch,RetrieveなどからLoadに)。サーバー問い合わせが非同期で行われているんだよ!との注意喚起を促すため。
  • 全般に規約が重視されているので、ファイル名やメンバ名などに注文がつく(属性によって回避可)。開発者の労力削減とチーム開発での可読性を向上する狙い。
  • カスタムのビジネスロジックも共有可能。その場合CustomやServiceOperationなどの属性を付加する。
  • EntityのバリデーションはSystem.ComponentModel.DataAnnotationsに含まれる属性でマーク可能。もしお手製が必要なら共有クラスにValidatorを追加する。

 

なんて感じでかなりパワフルなプロキシを作ってくれるという代物です。

自動生成のプロキシに依存する部分が大きいだけに、ここがスキ・キライが分かれるところかもしれません。

でもBLの共有も含めてひとくくりにレイヤの壁を取っ払いたいときには、現実的で手っ取り早いアーキテクチャではないでしょうか。

規約ベースなところも好感で、小規模・短納期のプロジェクトでは主流になっておかしくないと思います。

 

また、最後のほうに Silverlight用の DomainDataSource の説明があって、RIA ServicesおよびDataGridと連携して、

  • データの自動ロード
  • コントロールへのパラメーター割り当て
  • ソート
  • グループ化
  • フィルタリング
  • ページング
  • エディット

 

などがXAMLで記述できるとのこと。

Validatorによる検証も含めて、DomainドリブンなUIがSilverlight上でもサクッと実現できるのは非常にいい感じです。

あとはADO.NET DataServicesとの棲み分けが気になるところですね。

まだ日本語環境対応版の気配がないんで、仮想環境に英語版VSをインストールして試してみようかと思います。

2009年3月9日月曜日

PRISM2にSilverlightが

PRISMがVersion2になって、ガイダンスの対象としてSilverlightが追加されていました。

 

PRISM2 (download)

http://www.microsoft.com/downloads/details.aspx?FamilyID=fa07e1ce-ca3f-4b9b-a21b-e3fa10d013dd&DisplayLang=en

infoqの記事

http://www.infoq.com/jp/news/2009/03/PRISM-2-Silverlight

原文

http://www.infoq.com/news/2009/02/PRISM-2-Silverlight

 

ヘルプを読んでいるところですがWPFとSilverlightとの違いをどう凌ぐかについてもかなり言及してあって面白い。

WPF的なMVVMをSilverlightで実現するのに欠かせないCommandパターンについてもPRISM的なアプローチが説明されてるので、サンプルを含めてちゃんと読んでみようと思います。

 

ちなみにその他のCommandパターン実装例

nikhilk.net

http://www.nikhilk.net/Silverlight-ViewModel-Pattern.aspx

Code Plex の Silverlight Extensions

http://www.codeplex.com/SLExtensions

2009年1月12日月曜日

Amazonから届いた・・・

注文してた Silverlight2 Recipes がとどきました。

 

Silverlight2のレシピ集。この手の本はいまんとこ英語版を注文しないとって感じですが、今年の年末くらいにはたくさん日本語版が出てるといいなぁ。

いま2/3くらい目を通したところですが、インストールやBlendの使い方からコントロールのカスタマイズやサービス連携といった実用的なところまで幅広くカバーしてる印象。

Q/A方式なので情報が探しやすい&わかりやすいのでSilverlight2開発のときは横に置いておくと重宝しそうです。あと、これからSilverlightプロジェクトをはじめるって立場の人にも、一通りSilverlightにおける方法論を確認するためにも有用だと思う。

2008年10月20日月曜日

Silverlight2からADO.NET DataService

Silverlight2からADO.NET DataServiceへ接続しようとしてて気づいた点。
現状(RC0)ではSilverlightからクロスドメインのADO.NET DataServiceへの接続はサポートされないようですね。

既存のDataServiceへ接続しようとすると、ポリシーファイル置いても何してもダメだったけど、
SilverlightをホストしてるWebサイト上にDataServiceを追加したら何も問題なし。

探してたらMSDNフォーラムにこんなのがありました。

(一部引用)
There is no support for accessing cross-domain ADO.NET Data Services using the Silverlight client library in this  release.
The networking stack provided by Silverlight allows you to access cross domain data services. so, if you dont use the DataServiceContext and  instead use HttpWebRequest to access the data service then you will have cross domain access to the data service.
Cross-domain access to ADO.NET Data Services with the Silverlight client library is not allowed in SL2 RC0/RTM bits.

DataServiceContextを使わずにHttpWebRequestでならアクセスできるみたいですが・・・

まあ現状では、DataServiceの配置をSilverlightと同ドメインにするべし。
でもデバッグで開発サーバー使っていると、
別プロジェクトでクロスドメインになっちゃうから面倒くさいですね。。。