チャットができるブログパーツ
dotWowにTwitterクライアント機能を追加しました。
更新を自動で取得しにいき、リロードの必要なく発言が最新になるWEBベースのTwitterクライアントです。
[dotwow - Twitter]beta(日本語のみです)
http://www.dotwow.net/?mode=twitter
ConnectWithTwitterを設定すると、ホームでの発言が、
Twitterの更新になります。
また、コマンドの/homeもTwitterの更新になります。
また、それ以外にも様々な部分の変更しました。
・データベースのクエリーの高速化。
・ローカライズのバグを修正。
・サイトタブの話題のページをはてなブックマークのホットエントリから取得。
・Viewにソーシャルブックマークのコメントを追加
・ServiceBusを修正。
・FireFoxでのバグを修正。
・タグの実装。
・ページ、ダイアログの読み込みを表示時に変更。
一時停止
・ソフトウェア
・ブログパーツ
new CloudApp() のInternational Community Winnerが発表されました
残念ながらdotwowは選ばれませんでした。
日本のawardはまだ発表されていないので、そちらに期待します。
さて、コンテストに参加中はプログラムのアップデートをしてはいけない、
みたいな規約があったので、まだアップデートはしてはいけないのでしょうか?
Windows Azure SDKのJuly CTPがリリースされたのでアップデートをしたいです。
■確認したバグ(いくつか見つかっているのでawardが発表され次第、修正するつもりです。
・一定時間でメッセージが送信できない
ServiceBusの設定の問題?ログ「サーバーによって開始されたシャットダウンが原因で出力セッションが自動的に閉じられたため、このチャネルを使用してメッセージを送信できません。DispatchRuntime.AutomaticInputSessionShutdown を False に設定して自動クローズを無効にするか、リモート サーバーでシャットダウン プロトコルを変更してください。」
・ログが正しく獲得できない。
・ホームにログが正しく反映されない。
・AzureでWebClient経由すると日本語が文字化けしている。
■次回実装する機能
・タグ機能
・IRCやtwitterといった既存のコミュニケーションに参加できるようにします。
障害があった場合や機能の要望があればご一報ください。
.Net Service SDKがJulyCTPにアップデート
ServiceBusが動作しなくなったと思ったら、SDKが新しくなってました。
とりあえずコードの変更の必要はなさげ?
AzureBlogのほうしかRSS登録していなかったので
気が付きませんでした(汗
.NETServiceのほうのブログも登録ですね。
参考 July CTP
http://blogs.msdn.com/netservices/
dotWowサービス公開
「dotWow[ドットワウ] -Say Everywhere」
http://www.dotwow.net/
英語版も作りましたが、英語があやしいので、
誤訳などがありましたら教えて頂ければ幸いです。
ドメインとホストの関係で、サイトのみAzureを使用せず自サバのIISで公開しています。
ルームとは、チャットルームを作成するサービスです。
また、dotWowのサービスは、basicHttpBindingにして、
WindowsAzureProjectでホストするのは大変そうだったので、
ServiceBusを使用してサービスを公開しました。
ServiceBusはルーターやIPなどを気にせずにサービスを公開できるので、非常に便利です。
参考URL
http://msdn.microsoft.com/ja-jp/magazine/dd569756.aspx
Windows Azure Storage、Table編
さてさて、dotwowは現在cloudに移行中のため現在サイトが動きません。
今回は、AzureのStorageのTableを利用する際の覚え書きです。
まずはQue編の時と同じく、
XMLにコンフィグを記載して、StorageClientを使用すると便利です。
次にContextクラスのラッパーとEntityクラスを作りました。
Contextクラス
public class SampleDataContext : TableStorageDataServiceContext { public SampleDataContext(StorageAccountInfo accountInfo) : base(accountInfo) { } public IQueryable<SampleEntity> SampleEntities { get { return this.CreateQuery<SampleEntity>("SampleEntity"); } } public void AddSampleEntity(SampleEntity entity) { this.AddObject("SampleEntity", entity ); this.SaveChanges(); } }
Entityクラス
public class SampleEntity : Microsoft.Samples.ServiceHosting.StorageClient.TableStorageEntity { public SampleEntity() { } public string Name { get; set; } }
Entityに含まれるPartitionKeyとRowKeyはnullにすることができません。
PartitionKeyは一意である必要があります。
また、:/%あたりの記号が使えないようです?
後はLinqが使えるので非常に楽にクエリーが可能です。
・リレーショナルデータベースを使用できない。
1:多の関係を表すのが少々めんどくさいです。
どうやるのがスマートなんでしょう。
・で、コードを書いてみたのですが単品は取り出せるのですが、
まとめて取り出してforeachなどに使用しようとすると、
The requested operation is not implemented on the specified resource.
ってエラーがでました。
直接はさわれないようです。
もう少し調べます。
・new CloudApp()
いつの間にか国の制限がかかっていた。
いつの間にか締め切りが延びてた。
いつの間にか日本は日本で別のアワードを設けてた。
間に合えばいいなぁ・・・。
http://msdn.microsoft.com/ja-jp/azure/dd939048.aspx
あと、日本語インターフェースでいいんだろうか?
WindowsAzureとC#4.0
dotwowのサービスをcloudに移行としようとして、
データベースもWindowsAzureStorageを利用しようということで、
移行するためにinterfaceを実装していたら、
ジェネリックを含むキャストがしたくなったので、C#4.0を利用してみようとしました。
簡単に言うと、
IEnumerable
IEnumerable
というわけでVisualstudio2010Beta1をインストールしてみたのですが、
Azureのプロジェクトが読み込めない・・・。
と、あきらめかけていたら、
ちょうどMay CTP of Windows Azure SDKでVisualstudio2010Beta1にも対応したようなので、インストール。
無事、Azureが読み込みめたのだけども、ジェネリックのキャストができない。
どうやら、.NetFramework4.0で追加されたライブラリを参照に追加してやらないとだめなようだ。
プロジェクトから.NetFramework4.0に変更して「Microsoft.CSharp」を参照追加してやっと
ジェネリックのキャストができました。
が、AzureProjectをビルドしようとすると次のエラーが。
Cloud Service projects currently support Roles that run on .Net Framework version 3.5. Please set the Target Framework property in the project settings for this Role to .Net Framework 3.5.
・・・わざわざ.netFramework3.5用に書き直すのもめんどくさいので、
Azureが4.0に対応するのをまちますかね・・・。