1 名前:デフォルトの名無しさん [2009/12/05(土) 20:03:13 ] Microsoft Silverlight www.microsoft.com/japan/silverlight/ MSDN Silverlight デベロッパー センター msdn.microsoft.com/ja-jp/silverlight/ The Official Microsoft Silverlight Site silverlight.net/ CodePlex Silverlight Toolkit silverlight.codeplex.com/ 前スレ pc12.2ch.net/test/read.cgi/tech/1244812356/ pc12.2ch.net/test/read.cgi/tech/1227324813/ pc11.2ch.net/test/read.cgi/tech/1210491703/ pc11.2ch.net/test/read.cgi/tech/1203891514/
692 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 01:29:31 ] 他はともかくC#も初めてか。 それでよくぞここまで。すげーな。
693 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 01:31:07 ] >675に貼った参考先のように var binding = new BasicHttpBinding(); var address = new EndpointAddress(new Uri(Application.Current.Host.Source + "/../../Service/SampleService.svc")); var client = new ServiceReference1.SampleServiceClient(binding, address); みたく書けば外部からもlocalhostからも繋がらないかな?
694 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 01:32:42 ] 検索、エンター押したらとかじゃなくて1文字打つごとに走るんだw
695 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 01:38:47 ] あれだ、labelのtargetとしてTextboxを指定しとくと 必須だと太字になったり、エラー時に赤くなったりするよ
696 名前:元634 mailto:sage [2010/03/07(日) 01:41:35 ] >>687 >>689 注文送信処理のところで連続して非同期でWCFをコールする場合の、 client.CloseAsync(); の行をコメントアウトしてみます。 Silverlightに搭載されている非同期IOにおける遅延の仕組みと、 小まめなCloseのコールは相性が良くないのかも知れません。 とりあえず、暫定的に自動のDispseとGCにまかせたものを配置しました。
697 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 01:45:16 ] 連続で非同期でコールする必要があるのはなんで?
698 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 01:48:31 ] >>692 XAMLが意外に扱いやすいし、扱うべきコンセプトを理解していれば、MSの命名規則の好みを除けばすぐ慣れるよ 俺もそうだった あとsilverlight要素をページ中の幅100%高さ100%で指定したとき、 ページ全体のスクロールバーが出たり消えたりする件はどうにかならんのかなあ
699 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 01:52:49 ] >>696 直ってないみたい。また同じエラーが出た
700 名前:元634 mailto:sage [2010/03/07(日) 01:54:25 ] >>692 俺自身マジで必死だったよ。むかーし、CとASMはやってたけど、ある仕事で C++という嘘オブジェクト指向を使ったら脳みそが解離と苦しんだから、 プログラムから長い間離れてたし。俺にとってC++は精神的テロ言語と認定w >>693 WCF構成ファイルでエンドポイントを列挙できるといいね。でもあのファイルって 難解&難読で嫌いなんだよなー。本音ではコードで書きたい。。。 >>694 そこはちょっと、こだわりだったりするw 前に使っていたMacの影響かも。
701 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 02:00:32 ] >700 >675のなかむらさんのブログ見てみて 構成ファイルを書かずにWCFサービスをIISにホストさせる とか色々C#、Silverlight、WPF、WCF関連で勉強なるエントリーあるから
702 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 02:04:33 ] >>701 部外者だが参考になった
703 名前:元634 mailto:sage [2010/03/07(日) 02:08:59 ] >>697 注文明細は1〜Nの行数不定のレコード数になるので、WCF内で注文書と分けて foreachで ストアドを呼んでいます。 あ・・・、そうなるとWCF内での処理で不用意にチャネルを閉じてしまってる恐れがあるな。 >>699 お手数おかけします。 こちらでは、Silverlightのクライアントからの注文内容の送信処理において、 WCFサービスでのデータ処理、ストアドプロシージャでの注文受理&登録を見直してみます。
704 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 02:13:39 ] >>703 WCFの戻り値を public class Tables { public List<注文書> hoge public List<注文明細> hoge2 } とかすれば1回のコールで両方取って来ることが出来る。 あと明細行が複数あってもforeachでまわさず1回で取れると思うけど。
705 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 02:17:36 ] >>688 ヘアピンNAT対応ルータでないと、自宅鯖にローカルからアクセスはできないね。
706 名前:元634 mailto:sage [2010/03/07(日) 02:22:21 ] とりあえず、>>660 さん報告の以下の不具合は宿題とさせて下さい。 ・注文内容の送信後、高頻度でHTTP要求が中止される不具合 ・氏名とフリガナのValidation抜け 夕食後には更新できればと思います。今夜はお付き合い有難うございました。
707 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 02:24:14 ] おつかれー。 また楽しみに待ってます。
708 名前:660 mailto:sage [2010/03/07(日) 02:28:01 ] おつー
709 名前:元634 mailto:sage [2010/03/07(日) 02:33:01 ] >>704 WCF内でストアドから既存の明細行のSELECT結果を取得する場合は、コレクション型で受け取れるんですけど、 新規の明細行をINSERTさせるストアドがコレクション型を認識できないみたいなので、仕方なくforeachで回して 明細行をINSERTさせています。
710 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 02:38:13 ] >>709 ああ、勘違いしてた。 登録処理の話だねスマン。 けどwcfのinputパラメータを注文書とList<明細>にしとけば wcfのコール自体は1回で済むし wcf内部ではシリアルで処理をかけるよね
711 名前:デフォルトの名無しさん [2010/03/07(日) 03:26:25 ] Silverlight3インストール失敗1510 ださく
712 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 03:50:59 ] >>709 BULK INSERTとか、 SQLserverならなんとかなるし、 ODP.NETを使っているなら配列型でOK
713 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 08:19:28 ] 注文情報入力のところ、バリデーションのエラーメッセージが邪魔で 右側の入力欄をフォーカスしづらくない? 入力してから適当なとこクリックしないと表示が消えない。 しかし結構サクサク動くもんだねぇ。
714 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 10:18:48 ] MediaElementを使った動画がサイトを一度開いただけだと再生されなく、リロードすると正常に再生される。 何故でしょう。
715 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 10:23:20 ] これはなかなかすごいねぇ。。ブラウザの進む、戻るとかもちゃんと使えるんだ。 Flashとかにはそんな機能あったっけ? あえてケチをつければ、なんか商品情報の読込がちょっと遅いかなぁ。 自分の回線が遅いだけかもしれないけど。 イメージだけあとから表示してみたらどうかな。 あと、カートとかいっぱいにすると、カートの一覧にスクロールバーが出ちゃうんだけど、 その辺は縦に延ばすことは難しいかな。silverlightだと無理かな?
716 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 10:38:08 ] なんかそのうちホームページもかなりの部分をsliverlightで実装できそうだねぇ。 ともあれお疲れ様でした。
717 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 11:13:15 ] >>715 進む/戻るはFlashでもできるよ。 ttp://www.nissanusa.com/cube/ カートの一覧を伸ばしたりするのも難しくはないよ。
718 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 11:38:22 ] しかしこうやってしっかり動いてるの見るとなんか勇気付けられるなぁ。
719 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 11:53:16 ] >>717 別ページに飛ばして別Flashって意味じゃなくて、 単一のSilverlight内の状態遷移に対して戻る・進むできるんだけど、 それもFlashで可能?
720 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 12:17:05 ] >>719 提示されたURLみたかんじ、Silverlightと同じような挙動してる(と思われる) ただChromeだと上手く戻ってくれないなぁ。 [INTERIOR PHOTOS] を選択してから戻るを押すと、IEは戻るけどChromeだともどらない。 IEだとSilverlightのもFlashのもURLが変ってカチって音がして前のページ表示してくれるね。
721 名前:元634 mailto:sage [2010/03/07(日) 13:56:49 ] ご注文いただき有難うございます! これはご注文確認のメールです。 注文受付日時:2010/03/07 8:17:00 注文受付番号:1401 ▼お客様情報 ------------------------------------------------------------------------ aaa aaaa 様 電話番号: 0111-11-1111 メールアドレス: yeye@aaaa.com 郵便番号: 111-2222 住所: 岩手県aaaaaaaaaaaaaaaaaa ------------------------------------------------------------------------
722 名前:元634 mailto:sage [2010/03/07(日) 13:58:04 ] ▼ご注文内容 ------------------------------------------------------------------------ 商品1: 「HTML & CSS ビジュアル・リファレンス 改訂版」 単価: 2,310円 数量: 1個 金額: 2,310円 ------------------------------------------------------------------------ 商品注文金額: 2,310円 ▼支払方法 ------------------------------------------------------------------------ 銀行振り込み ------------------------------------------------------------------------ +送料 : 525円 +手数料: 0円 支払合計金額: 2,835円(消費税込) ================================== Mogi-Shop! モギショップ 〒XXX-XXXX 東京都XXXXXXXX 0X-XXXX-XXXX mogi-shop.co.jp ==================================
723 名前:元634 mailto:sage [2010/03/07(日) 14:05:52 ] 商品をカートに入れて「お届け先」の入力で実在するメールアドレスを入れて注文を送信すると、 ↑の様な確認メールが配信されます。
724 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 14:32:28 ] ちゃんと届いたよ。 瑣末なところで気になったところでは、フォーカスのあるフォームの背景色を変えて分かりやすくしてほしいとか、 クライアントごとのスタイルシートの入れ替えどうやるのとか、その辺かな。 あとはHTTPS経由での通信法はデモれないとこの先困るはず 通信販売のサイト安全性の検証・承認は、そっち系の実務をやったことがないので残念ながらわからんが、 たぶん気にする必要はあるはずだ。
725 名前:元634 mailto:sage [2010/03/07(日) 14:46:42 ] >>710 そうですね。 >>713 そうそう! 俺もこのTextBox周辺の視界を遮るポジションに表示されるValidationエラーのポップに困ったよ。 キー入力が開始されると即消えるとか、キーやマウス放置後2秒経過すると自動で表示が消えるとか、 タイムアウト制御が働かくと、ユーザーのリッチエクスペリエンスが向上しそうだと感じたっす。 >>715 そうなんですけどねー(汗。 ただ、今回のSilverlightクライアントでは、何も工夫していないです。 商品の詳細情報での表示レスポンスは、WebブラウザのHTMLレンダリングエンジンの様に、imageだけを 別スレッドで取得するなどの工夫を施せば、体感上の改善が見込めそうですね。 >>718 今のところ、Silverlightを採用している企業って、メディア配信のGyaoや、Yahoo!オークション次世代版 開発くらいしか知りません。 カタカナや英語が大の苦手な、純やまと気質な日本の企業なんて、完全に広告代理店に丸投げだろうし、 米国ですら目にするのはコントロールのサンプル集ばかりのような気がするんですよね。 あと、個人の開発者もデザインパターンのノウハウ蓄積でまだ様子見しているのかな。試作サイトすら 中々お目にかかれないです。
726 名前:元634 mailto:sage [2010/03/07(日) 14:56:40 ] >>724 実務でHTTPSを省くと間違いなく「なりすましに無防備」という扱いをされるから、HTTPSは必須ですね。 自己CAの証明書でも検討してみようと思う。 しかし、 ビジネス法務、指針、勧告、ITテクノロジ、Webデザイン、プログラム、.NET、SQL、etc で、 頭がいっぱいでーすw でも、Mogi-Shop!の2つのデモを通して、Silverlightの可能性を体感してもらえたら、嬉しいっすよ。 今回、俺自身の個人的な目標に掲げた狙いの一つ(とにかく知ってもらう)でもあるし。 それと何たって、新技術のソフトウェアには普段からこういう「たたき台」のニーズを感じたんだよね。 「ナニコレ(爆」、「こうはできないの?」、「へぇーこんな使い方もアリか…」、etc 俺自身にとっても、すげー勉強になるし、叩く人にとっても様々な新感覚や新発見ができると思うし。
727 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 15:03:39 ] >>725 これと www.microsoft.com/japan/silverlight/caseStudy.aspx これを www.microsoft.com/japan/events/techdays/2010/keynote/live.aspx 見てみるといいよ<国内の採用事例。 やっぱメディア系が多いのは確かだけど、業務とか教育もちらほら。 面白いのだと、Sony がカメラと肌色認識使ったタッチなし入力のデモやってたり。 あと、最近だと、 www.mgstage.com/ (18禁注意) もSilverlight。
728 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 15:15:07 ] >>727 mstage、トップはFlashでストリーミング部分だけsilverlightなのね。 やっぱデザイナーにまかせる部分はFlashが強いのか。
729 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 15:31:17 ] 流れ早いなぁ。もうとっくに過去の話題になってると思うけど、 silverlightの場合BackgroundWorkerが便利なんだよね。 差異が多いスレッド周りもWCFやWinFormと共通にかける。 void bgworker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { textBlock1.Text = e.Result.ToString(); // RunWorkerCompletedは自動的にUIスレッドに同期する。 } void bgworker_DoWork(object sender, DoWorkEventArgs e) { ServiceReference1.Service1 sv = new ServiceReference1.Service1Client(); IAsyncResult art = sv.BeginDoWork1(null, null); sv.EndDoWork1(art); IAsyncResult art2 = sv.BeginDoWork2(null, null); sv.EndDoWork2(art2); e.Result = r; }
730 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 15:34:02 ] ありえないメアドで注文したらTimedOutになった。 [HttpRequestTimedOutWithoutDetail] 引数:http//118.152.77.25/IISHost/Service1.svc デバッグ用のリソース文字列は利用できません。キーや引数に関する情報が問題の診断に役立つ場合があります。 go.microsoft.com/fwlink/?linkid=106663&Version=3.050106.0&File=System.ServiceModel.dll&Key=HttpRequestTimedOutWithoutDetail を参照してください。 それにしてもよくできてる。処女作とは思えん。
731 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 15:35:38 ] 印刷はできないのかな?
732 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 15:40:22 ] >>659 マシン環境がWin7とSQLServer2008だけどライセンス的にどうなんだろ。 Win7のEURAを見れる人いる?サーバーな使い方はOKなんかな。 SQLServerはExpressなら良さそうだけど。
733 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 15:41:57 ] クライアントOSでも、同時接続数に制限があるだけで ライセンス的に問題は無いはず
734 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 15:49:13 ] すまん、印刷できた 悪かった
735 名前:元634 mailto:sage [2010/03/07(日) 15:54:50 ] >それにしてもよくできてる。処女作とは思えん。 失業してからニート呼ばわりされるのが怖くて必死モードっすよ >>731 注文内容の送信が完了したら、 [注文結果を印刷] [このまま閉じる] の2択処理を提供するシナリオだったけど、Silverlight 3の範囲内では無理だったので、 まだ実装していないです。WPFの方でサポートされているXPS Document はどうやっても使えなかったし、 Silverlightで使えないアセンブリは足掻いても取り込めなかったので。 実装する場合は、プロジェクトをSilverlight 4に変更するだけで大丈夫だろうと楽観視してます。 業務アプリの方は、既にSilverlight 4 betaでプロジェクトを組んでいるので、 注文明細の印刷デモ(A4サイズ固定)が動きます。 思う様に時間とお金を割けないので、用紙の印刷可能エリアへのAuto Fittingは未対応です。
736 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 15:57:10 ] >>733 XPだとDBを介したサービスはアウトだったと記憶してるが、Win7からは違うんでしょうか
737 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 16:13:57 ] >>736 どこでそういった記述を見られたのでしょうか
738 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 16:30:48 ] >725 つwww.freestockcharts.com/
739 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 16:48:33 ] >>737 EULA.txtに(明確ではないが)書いてある。 解釈は下記リンクと同じかな。 ttp://itpro.nikkeibp.co.jp/article/COLUMN/20060811/245694/?ST=start
740 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 16:52:57 ] これか。 >例えば,通常のファイル共有や,インターネット情報サービスに含まれるFTPを使ったファイル・サーバーとしては利用できますが, >それ以外のプロトコルを使って独自形式のファイル・サーバーを構築すると問題になることがあります。 >例えば,データベースと組み合わせた独自のファイル・サーバーやアプリケーションを搭載したサーバーは, >Windows XPでは利用できません。 「それ以外のプロトコルを使って」「独自形式のファイル・サーバーを構築する」と問題になることがあります。 例えば,「データベースと組み合わせた独自のファイル・サーバー」 ってことだから、DBを介したサービスがダメという話では無いよね。
741 名前:元634 mailto:sage [2010/03/07(日) 17:45:41 ] >>732 >>736 >>737 いかなる有償の商用役務(サービス)も、無償でも利用者の受益になる利便上の 役務(DBを利用したファイル共用サービス等)は、一切提供していないから あまり突っ込まないで〜 >>706 の不具合ですが、とりあえず以下の修正を施したものを配置しました。 ・注文内容の送信後、高頻度でHTTP要求が中止される不具合 → 中間層の設計に思い切った外科手術が必要なので、暫定でエラーの捕捉機会を増やしました。 ・氏名とフリガナのValidation抜け → 氏名は、「漢字」を文字種フリー入力に。「カナ」だけ検証を追加しました。 .NETと業務系は初めてなので、Silverlightや.NETのアーキテクト等をブラックボックス化したまま外部設計を してしまいました。 そしてそのままソフトウェアデザイン→コーディングを強行したので、実装で無理が生じています。 実際にこうやって幾つか経験しないと、利用者にもプログラマにも優しいデザインパターンの習得はできないですね。
742 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 18:10:46 ] >>740 「データベースと組み合わせたアプリケーションを搭載したサーバー」 >>741 これも勉強だw
743 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 18:19:10 ] >>742 全然違うよ。 「ファイルサーバーを立てるなら、IISのFTP機能以外を使っちゃダメな場合がある」と言ってるだけ (例:DBと組み合わせる等)
744 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 18:20:19 ] Apache MS EURA で検索すると、実質サーバになりうるソフトはことごとくアウトに見えるな 10台とかムリだし
745 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 18:29:07 ] IISあれば他のサーバーソフト入れる必要が無いし windows7なら同時に20台までOK。 商用サービスじゃなきゃ十分だと思うけど。
746 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 18:38:18 ] >>742 許可された以外の方法を用いてサービスを提供するのが駄目なのであって、DBは関係ない。 IISは許可されているので、例えば「IISでWebDAVを提供、バックエンドにDBを利用」なんてのは問題ない。
747 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 18:47:26 ] >>746 そうなるとクライアントOSとサーバーOSの違いって何ってなる。 サーバーOSのほうがCAL買わなきゃならないから損じゃないか? まあ例えクライアントOSで接続することが可としても、SQLServerのCALは必要だよね。
748 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 18:55:42 ] なんで根拠も無く「DB使えない!」て頑張ってるのか知らんが サーバー用じゃなきゃ機能面での制限はいっぱいある www.atmarkit.co.jp/fwin2k/win2ktips/207rest_iis_pro/rest_iis_pro.html DBもExpressEditionなら無料で商用利用も可(当然いろいろ劣っている)
749 名前:元634 mailto:sage [2010/03/07(日) 18:55:53 ] いつのまにか登録商品の一部がコピー登録で増えてるw 本当は、業務アプリ側で商品を新規登録した直後は、ショップ側では陳列されない状態でDBに入れる予定なんだ。 そんでもって、新規登録の作業後に、アクティブ化の操作をすると、初めて陳列状態になって、 ショップ側に陳列されるようになる塩梅。陳列下げも業務アプリ側で操作。 そこらへんの一連の動作がデモ可能になれば、叩き台の成熟としたいなーと思う。 それ以上は細かい販売制御とか、売上票だとか、実務領域に入って仕事になっちゃうし・・・。
750 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 18:56:01 ] 調べてみたらクライアントOSのIIS自体に制限があるよう。 なんか勘違いしていた。確かにデータベースうんぬんはサーバーとして扱うこととは無関係だ。 ただしデータベースのCALは必要。
751 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 19:00:47 ] こういうOSのEURA制限って日本語版だけじゃなかったっけ 英語版などにすればOK?
752 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 19:05:14 ] >>719 よく見れば分かるけど、別ページには飛んでないよ。 変化するのは#から後ろだけで、URL的には同一ページ内の アンカーの移動という扱い。 これはSilverlightでも一緒。
753 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 19:33:57 ] 自分もボチボチ作ってるけど結構見落としに気づかされた。
754 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 20:02:37 ] 君のHPにまとめてくれ
755 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 20:08:35 ] <navigation:Frame>だね。 ASP.NETのマスターページを使った事がある人なら、似たようなナビゲーション遷移を実現できるよ。 Silverlight 4 の OutOfBrowserモードなら、2ch専用リッチクライアントも 可能なんだろうな。wktk
756 名前:元634 mailto:sage [2010/03/07(日) 21:24:21 ] こんなのを見つけた。 download.microsoft.com/download/2/9/4/2941f55e-24a9-40fa-8e8d-791bd7a4e02f/Jp-BreakingChangesB1ToB2.pdf 日本語での各種情報提供も、Silverlight 3 以降、すっかり止まっちゃったね。 ところで、非同期な ServiceClientのCloseAsync()メソッドって、〜Completed() Delegateメソッド内での 結果処理の終わりで呼ぶのが常識? 俺、全部の処理で 〜Async()メソッドの直後に続けて呼ぶコードを記述しちゃってたよ。アチャー もしかして、「・・・チャネルが閉じられ・・・」エラーはこれが原因かもしれん!!!
757 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 22:30:24 ] Close(CloseAsync)は未完了の操作を完了してから閉じるはず 問答無用で閉じるのはAbort
758 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 22:52:45 ] 閉じなきゃいけなかったんだ…
759 名前:元634 mailto:sage [2010/03/07(日) 23:26:01 ] >>757 今までは、↓のように書いていたけど、 ServiceClient sc = new ServiceClient(); sc.〜Completed += new … (sc_〜Completed); sc.〜Async(); sc.CloseAsync(); さっき、↓の様に sc_〜Completed()内でCloseAsync()を呼ぶ様にプロジェクト全体を書き換えたら 安定度がアップしたけど、気のせいなのかな。 void sc_〜Completed ( sender, e ) { if ( !e.Canceled ) { if ( e.Error == null ) { if ( e.Result … ) { 正常系 期待結果処理 ; } else { 正常系 非期待結果処理 ; } } else { 異常系 例外結果処理 ; } } else { ユーザ操作キャンセル 例外処理 ; } ((ServiceClient)sender).CloseAsync(); }
760 名前:元634 mailto:sage [2010/03/07(日) 23:30:28 ] >>758 Microsoftによれば、CloseAsync()を呼ばずに自動Disposeお任せも「準推奨」でOKとのこと。
761 名前:デフォルトの名無しさん [2010/03/07(日) 23:36:22 ] >>759 リファクタリングしてくれ。ガード節での置き換えな。 うちの会社でそれやったら………俺が2chで愚痴る。
762 名前:元634 mailto:sage [2010/03/07(日) 23:40:59 ] あ、いや・・・すまん けど、2chの「改行が多すぎます」エラー対策で申し訳ないっすw(_ _)
763 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 23:49:05 ] >>761 プッ
764 名前:元634 mailto:sage [2010/03/08(月) 00:45:20 ] 俺のネタが発端で、ココ本家Silverlightスレが1日で100レス以上も伸びました。 ココこそ、正統派「Silverlight登場で.NET使い大勝利」なスレだと感じた次第・・・ 貴重な週末の夜に遅くまで引き留めてしまい、たいへん恐縮でした。 また、バグ出し&叩きを有難うございました。独りでは決して顕在化できなかったであろう 致命的なコード上の潜在不具合も、大部分が解消したと思います。 あー、早く失業から脱出して同業に戻りたいーーー!
765 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 14:27:54 ] >>760 その記述見たこと無いわ 良かったらどこにあったか教えて欲しい
766 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 15:18:58 ] Breaking Changes for SL Beta 2 * 内容はSL2 b1→b2での非互換な変更 ttp://download.microsoft.com/download/2/9/4/2941f55e-24a9-40fa-8e8d-791bd7a4e02f/Jp-BreakingChangesB1ToB2.pdf 多分この辺りの話し。これ以降の変更はないはず ただし、Closeしないと接続方法と利用方法によってはリソースリークすることがあるので注意
767 名前:元634 mailto:sage [2010/03/08(月) 17:05:42 ] >>765 >>756 で見付けた過去のドキュメントの中に記されていたと思うよ。 これを見て、Silverlightは 2 で大きく変わったんだと気付いた。 推奨 適切にCloseAsync()を呼ぶ 準推奨 CloseAsync()を呼ばない(お任せ) 非推奨 Close()やDispose()を呼ぶ Completed()に入る前の変なタイミングにCloseAsync()を置いていても何となく動いていたのは、 たまたま.NETのガベイジコレクション機構での回収ラグに助けられていただけの様な気がする。 昨夜に該当箇所をすべて書き換えてから、今のところWCF通信が途絶える現象は発生していない。 意地悪く、通信処理を時系列的にオーバーラップさせてみたけど平気なようだ。 他の原因もあった可能性も考えられるけど、この修正によってロバスト達成が得られたと思う!
768 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 17:39:38 ] proxy.DoWorkAsync(); proxy.CloseAsync(); でエラーになるとすればそれはフレームワークのバグだから報告するといい。 と、ここまで書いて思いついたんだが、 proxy.DoWork1Completed += (sender, e) => { proxy.DoWork2Async(); }; proxy.DoWork1Async(); proxy.CloseAsync(); みたいなアホなことしてたということはないか?
769 名前:元634 mailto:sage [2010/03/08(月) 17:50:49 ] >>768 昨夜までの修正前のコードに、それと等価になるケースは 1箇所あったんだよなー orz。正常かつ期待ルートを通らない場合に。
770 名前:元634 mailto:sage [2010/03/08(月) 17:57:47 ] あ、でも proxy = new をかけてた筈だ。 CloseAsync()を呼んだ後のproxyを再利用する事はしていない。
771 名前:元634 mailto:sage [2010/03/08(月) 18:06:56 ] Bug Trackingなんて最近はやってないな。 昔、某N社がLinuxカーネルの評価検証をしていた部門にはお邪魔した事があったが。 曲芸のようなスレッディングを展開するベンチのオンパレード。 コンソーシアムと保守契約事業者にだけバグ情報や独自パッチ、問題回避ノウハウを提供。
772 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 18:12:26 ] とりあえずこれだな social.msdn.microsoft.com/Forums/en/wcf/thread/5546f5c2-55b4-4110-9c5e-4a234660e8b1
773 名前:元634 mailto:sage [2010/03/08(月) 19:13:29 ] >>772 I'm sure of my insight, thank you.
774 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 19:23:49 ] 遅くなったが、>>766 , 767 ありがとう
775 名前:元634 mailto:sage [2010/03/08(月) 20:10:27 ] >>772 さんに申し訳ないので、↓のやり取りを訳してみた。 クリストファーさんの回答を言葉通り信用すれば大丈夫でみたいですね。 > 私のSilverlight アプリケーションでは、[サービスの参照の追加(S)...]で生成されたWCF proxyを使用しています。 > どのタイミングでproxyを閉じるべきでしょうか? > 非同期のレスポンスが到着する前、サービスを呼んだ直後にproxyを閉じることは安全ですか? > > private void proxy_GetUserCompleted(object sender, GetUserCompletedEventArgs e) > { > } > > Proxy proxy = new Proxy(); > proxy.GetUserCompleted += new EventHandler<GetUserCompletedEventArgs>(proxy_GetUserCompleted); > proxy.GetUserAsync(); > proxy.CloseAsync(); > > インターネット上で有用なドキュメントもサンプルも見付けられませんでした。 > アドバイスを頂けたら感謝します! > > ミッシェル ミランダ (美人講師 22才 独身) サービスによる向こうからの通信を待たない場合はproxyを閉じても構わないでしょう。 これ(proxyを閉じても構わない)は、送ったリクエストに対するすべてのレスポンスを取得したと確信した場合も含まれます。 マイクロソフト WCF Silverlight担当 ソフトウェアデザインエンジニア クリストファー スクロセイティより
776 名前:758 mailto:sage [2010/03/08(月) 20:51:32 ] 自分は ○○Client wcf = new ○○Client(); wcf.aaaCompleted += ... wcf.bbbCompleted += ... wcf.cccCompleted += ... みたいに書いて、一切closeせずいろんなとこからwcfを繰り返し利用してたけど エラーみたいなのは無かったなw
777 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 21:00:39 ] マイクロソフト「Flash糞だからイラネ IE9ではHTML5サポートするわ」 tsushima.2ch.net/test/read.cgi/news/1268046336/ Silverlightはどういう位置付けなんだ。
778 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 21:05:26 ] うーん??どうなんだろね。 WebSocket でも WCF 使えそうな気もするしなぁ。 でも個人的に JavaScript + HTML のみでごつい UI 書くの正直辛い。
779 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 21:13:50 ] そのうちガワHTMLでロジックSilverlightみたいになるかもね
780 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 21:16:56 ] >>775 クリスの返信の1行目の訳はミスリーディングだと思う communicationを通信と訳すとおそらく齟齬が生じる > You should close your proxy when you don't expect further communication with the service. そのサービスとこれ以上のコミュニケーションを望まないのであれば、proxyを閉じるべきでしょう これ以上云々というのは現時点を以ってデータの転送を止めるという意味ではなく、 以後オペレーション・コントラクトの呼び出し(i.e. リクエスト)を行わないということ また、事前にリクエストしていたものは(意思の疎通がなくても)滞りなく処理される と解釈するのが正しいはず
781 名前:元634 mailto:sage [2010/03/08(月) 22:20:43 ] >>780 おお、(further communication with the sevice)で一括りか。 その方が自然な気がしてきた。
782 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 07:09:44 ] 言いたい事は解るが「ミスリーディング」って意味違うんじゃ
783 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 09:11:00 ] miss leading だからな。miss reading ではない。
784 名前:Mogi-Shop! mailto:sage [2010/03/09(火) 09:13:57 ] ▽業務->注文受付状況->注文明細を印刷 用紙サイズに合わせた印刷に対応 これは何気に押さえておきたかったポイント age
785 名前:Mogi-Shop! mailto:sage [2010/03/09(火) 09:16:16 ] >>782-783 ミスにリードされるのも、いいかな
786 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 09:20:16 ] あなたのリードで島田も揺れる
787 名前:Mogi-Shop! mailto:sage [2010/03/09(火) 10:49:59 ] アクセシビリティに関して思ったけどあれだね。 業務アプリ画面での商品登録のシーンなんだけど、新たな登録作業や登録済み内容の編集では、 業務アプリはオペレータに専用のChildWindowを出し、そこで登録内容の入力をしてもらって、 オペレータの入力完了の意思表示のタイミングでValidationをした方が良さそうだな。 メイン画面の方は登録内容を確認するための閲覧機能だけにして。 .NETが提供しているValidationメカニズムもそれを想定したスタイルみたいだし。
788 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 11:26:37 ] >>783 misleading だからな。miss leading ではない。
789 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 11:58:21 ] Mr. leading の俺がきましたよ。
790 名前:Mogi-Shop! mailto:sage [2010/03/09(火) 12:28:01 ] つ Miss Lead 独身女性(ひも付き)
791 名前:デフォルトの名無しさん [2010/03/10(水) 19:59:10 ] 韓国人しね
792 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 01:37:43 ] MIX10見てるか〜 Release Candidate of Silverlight 4 available for download today Expression Blend 4 is free upgrade from version 3. Final version of SL4 will ship in April