1 名前:デフォルトの名無しさん [2009/06/12(金) 22:12:36 ] Microsoft Silverlight www.microsoft.com/japan/silverlight/ MSDN Silverlight デベロッパー センター msdn.microsoft.com/ja-jp/silverlight/ The Official Microsoft Silverlight Site silverlight.net/ MSDN Silverlight ダウンロード (SDK, Silverlight Tools) msdn.microsoft.com/ja-jp/silverlight/bb187452.aspx CodePlex Silverlight Toolkit www.codeplex.com/silverlight/ 前スレ pc12.2ch.net/test/read.cgi/tech/1227324813/ pc11.2ch.net/test/read.cgi/tech/1210491703/ pc11.2ch.net/test/read.cgi/tech/1203891514/
496 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 17:35:08 ] >>488-490 WPFだとオブジェクトツリーをXPSのライターに渡せばXPSファイルが生成できる事を 検証したんだが、従来のSilverlightだとブラウザの箱庭という制約があって解決できなかった。 印刷フォームの生成とXPSの生成&プレビュー&印刷機能は欲しいな。そうするとクラウド環境の ビジネスアプリも構築できるし。 まあ次期Microsoft Officeで実装される機能と被るから、単体APIとして公開されるのも時間の 問題だと思うけどね。
497 名前:デフォルトの名無しさん [2009/09/10(木) 17:53:48 ] >>479 英語版使ってたせいか、試用期間が過ぎてBlend使えなかった。 製品版出荷されるまで待つか。。
498 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 20:12:15 ] そういや、Office Web Applicationsって印刷どうなるんだ? Azure側でPDF/XPS生成してブラウザでダウンロードさせるのか、 >>496 が予想するXPS印刷がSilverlightに追加され、SLありの環境だと 直接印刷ができるのか。
499 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 20:46:40 ] パッケージ版の発売は 11月らしい。 細かい日にちは不明。
500 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 20:48:40 ] Expression Mediaが入ってないとは
501 名前:デフォルトの名無しさん [2009/09/10(木) 22:11:06 ] >>498 ,496 印刷で思い出したのでURL貼るけど、下記のサイトでは ちょっとややこしいが。 WritableBitmap -> PngEncoder -> HTML Hidden格納 -> ASP.NET Print Controller ?で印刷を実現してる。 画像の貼り付けになっちゃうけど案外これでいいかもと思った。 www.andybeaulieu.com/silverlight/3.0/printablesilverlight/printablesilverlight.aspx
502 名前:501 [2009/09/10(木) 22:31:31 ] Base64を忘れていた。 Client WritableBitmap -> PngEncode -> Base64Encode -> HTML Hidden格納 Server HTML Hidden取り出し -> Base64Decode -> PngDecode -> Print Controlに画像貼り付けだ。
503 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 22:59:40 ] まぁ、印刷サポートは入れるでしょうねぇ。 ユーザー層を考えると、LOBアプリをWeb化するのに使えますと 言うのが一番訴求するだろうし。
504 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 18:17:11 ] どこにこの怒りをぶつけていいのか判らないので、検索で見つけたこのスレに投下。 Silverlightインストール不能。 エラーメッセージID 1622 インストールログファイルに書き込むことができませんでした。Tempフォルダーが存在し、 このフォルダーに書き込むことができることを確認してください。 なんのこっちゃい? 試行錯誤するも解決できず、ついにサポートセンタにTEL。サポートでも わけわからず、こちらと一緒になって試行錯誤すること、およそ2時間。ようやく原因判明。 Tempフォルダをデフォルトから移動させていると(SSD使ってるとか、高速なドライブにTemp をおいて高速化しているとか)、インストールできない!! インストーラにバグがあるようだが、「無論、これは仕様です」 Silverlighとは無縁の人生を送れそうだ。さらば Yahoo, Gyao ばっきゃろー!!
505 名前:デフォルトの名無しさん [2009/09/11(金) 18:57:48 ] >>500 ほんとだExpression Mediaが入ってないですね。 まぁ、Mediaって微妙な製品ですよね。 自分的には使い勝手がいまいちな感じと。これ必要なの?みたいな印象だけど
506 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 19:00:14 ] ・Tempフォルダ関係のエラーが出た ・Tempフォルダを移動している これだけ情報が揃ってたのに、なぜ真っ先にTempフォルダを元に戻して試さなかった…
507 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 19:02:23 ] Designを単体で売り物にできるほど力いれないなら、 BlendにもDesignを同梱して欲しい。 Illustrator使うからイラネって言われそうだがw
508 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 19:39:59 ] >>506 もちろんそう考えて、自分で試行錯誤した時にTempをデフォルトに戻し再起動ログインしてみたが、 だめだったのさ。つか普通そんなとこまで考えないだろ? TempがどこにあるかなんてOS任せで、 他のプログラムが関与するなんてありえないだろ? 新規のユーザアカウントを作ったらインストールでけたということで、どうやら最初からTempは デフォルト固定じゃないとだめみたい。一体どんなプログラムなんだ?
509 名前:デフォルトの名無しさん [2009/09/11(金) 19:57:38 ] DesignとIllustratorでは勝負にならんだろうね。
510 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 20:27:02 ] >>508 > Tempをデフォルトに戻し再起動ログインしてみたが、だめだったのさ。 > 新規のユーザアカウントを作ったらインストールでけた 本当にTempフォルダの移動が原因なのか? とりあえず、情報が曖昧すぎて試すのも面倒だから、 > Tempフォルダをデフォルトから移動 なんて書かずに、 ユーザーの環境変数TEMPをXXXからYYYに変更 システムの環境変数TMPをXXXからYYYに変更 みたいな感じで正確に書いてくれ。
511 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 21:56:53 ] うちはテンポラリフォルダを変えて使ってるけど、トラブルは起きてないよ。 環境はVistaと2000。(2000はランタイムのみ) もうちょっと切り分けて調べた方がいいと思う。
512 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 05:41:05 ] 俺もRAMディスクにTEMPフォルダ置いてるが特に問題なかったな
513 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 15:03:40 ] どうせ TEMP=R:\ とかドライブのルートにしてるってオチだろ・・・
514 名前:508 mailto:sage [2009/09/12(土) 19:00:05 ] 意外と関心があるようなので インスツールできたTempのアドレス D:\Documents and Settings\1\Local Settings\Temp\ (因みにSilverlight関係と思われるファイルがいくつか作成されている) 失敗したTempのアドレス E:\Temp\ D:\Documents and Settings\秘密\Local Settings\Temp\ (環境変数を元に戻した。Silverlight0.logだけが作成されていた) もう一度アカウントをつくってE:\Temp\にしたらやっぱりだめだった。
515 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 19:10:48 ] >>514 そんな初心者っぽい書き方じゃなくて、 コマンドプロンプト開いてSET実行してTEMPとTMPをコピペしろよ。
516 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 21:19:31 ] D:\Documents and Settings\1\Local Settings\Temp\ D:\Documents and Settings\秘密\Local Settings\Temp\ この違いは単純に全角を使ってるか否かだけかな? "秘密"の部分が日本語だったとして。 E:\Temp\ ここはレスから推察するにSSDになるのかな? "E:\Temp\"だからダメなのか、想定された記憶媒体でないから弾いたのか、気になるところ。 つか>>508 はSilverlightでひどい目に会ったのに意外と協力的だよね。 個人的な見解だけど、このスレにはFlash信者が時々アンチとして湧くので ネガティブなレスに敏感なってるように感じる。多少トゲのあるレスにはめげず 書き込んでくれると助かる。
517 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 22:16:11 ] >>516 協力的とか好意的とかそうゆー心情的なものではなくて、技術的な問題には真摯にというポリシー (これも信条か)なので、まともな質問には答えたくなる。 もちろん「秘密」というのは、「そんなの公開できるか」という意味合いであって単なるボカシだ。 管理人はPIYOPIYOエプロンという固定概念の持主だと知れたら恥ずかしいだろ? あとDドライブがSSDであって、寿命の点から煩雑に書き換えしたくないという理由でEドライブ にTempを置いている。(スピ−ド重視ではなく寿命重視ということで)。 しかし>>512 のような事例があるとすると、E:\Temp\にナニかが居るからだというセンも考えられるが
518 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 22:21:40 ] もしこのままSilverlightが順調にシェアを伸ばしたら Flash使いとの醜い争いが本格化するんだろうな。 そういうのはお腹いっぱい
519 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 00:02:21 ] 口汚く罵るしか能が無い奴は、どちらの案件でも開発なんかやったことない 外野の素人だから放置しておけばいいよ。
520 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 01:03:20 ] 話は超・横にそれるが将来的にこの手のはRIAは 処理負荷の高いアプリ→Native Client そうでもないアプリ→Silverlight 携帯端末、家電UI→Flash になるんじゃないかと思う。プラットフォームを切り捨ててる分 Native Client>Silverlight>Flash という速度の壁は越えられないと思う。逆にFlashはどこかでこの二社と 正面からぶつかるのをやめ、最も多くのハードで動く所を長所とした 差別化をしていくんじゃないかな。
521 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 18:18:44 ] Silverlight3でOutOfBrowserできるようになって、 業務で十分使える状況になってきたけど、みなさん 帳票印刷はどーなさるおつもりですか? ブラウザ上で動いていればWeb帳票のソリューション で解決しそうなもんだけどOutOfBrowserからだと 厳しそうな気がすんですが。。。 OutOfBrowser状態からWebページ開いたりできる?
522 名前:デフォルトの名無しさん [2009/09/13(日) 19:33:33 ] 印刷はいまのところ、PDFとかをサーバ側で生成するとかしか無いんでないかな。 Out Of Browserってオフライン時にも実行できるから、 分離ストレージにデータ蓄積してネットワークが接続できたら、 サーバと通信するみたいな使い方を想定していると思う。 そうすると分離ストレージにデータを格納できるSQLServer小型版のSilverlight版が欲しいだよな。
523 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 20:52:09 ] 以下の現象で困っています。分かる方がいらっしゃれば教えてください。 VS2008で Silverlight3.0 Webアプリを作成しているのですが、WebClientでファイルを取得するたびに Tempフォルダに XCP???.tmpという 20MBのファイルが次々追加されてしまいます。 数十秒に一度の頻度で取得するので、大容量になってしまい無視できません。 この XCP???.tmpファイルを作成しないようにする方法、またはすぐに消す方法や情報等がありましたら 教えてください。 これまでに試したこと。 ・Webサーバ(geocities)に、作成した zapファイルを配置して実行すると tmpが作成される。(Debug、Release共に) (VSからのテスト実行では tmpは作成されない。(Debug、Release共に)) ・WebClientの AllowReadStreamBufferingは true、false共に効果なし。 ・ボタンClickの処理で毎回 _webClient = new WebClient();を行っても tmpは削除されない。 ・_webClientをクラス変数ではなく btnStart_Click()内で作成しても効果なし。
524 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 20:53:27 ] 以下はビハインドコードです。XAMLにはボタンのみあり、btnStart_Clickが呼ばれます。 ボタンを押すごとに tmpが次々増えていきます。 (ブラウザを終了すると自動で削除されます) namespace SL_Test1 { public partial class MainPage : UserControl { WebClient _webClient = new WebClient(); public MainPage() { InitializeComponent(); _webClient.DownloadStringCompleted += new DownloadStringCompletedEventHandler(mWebClient_DownloadStringCompleted); // DL完了イベント登録 _webClient.AllowReadStreamBuffering = false; // インターネット リソースから読み取ったデータをバッファリングするかどうか } private void mWebClient_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e) { if (e.Error != null) return; if (e.Cancelled) return; MessageBox.Show(e.Result); } private void btnStart_Click(object sender, RoutedEventArgs e) { _webClient.DownloadStringAsync(new Uri(Application.Current.Host.Source, "hoge.txt"), "hoge.txt"); } } }
525 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 13:45:12 ] データをロードするSilverlightを表示した状態で TMPファイル内を"XCP*.tmp"で検索かけてみたけど出てこなかった。 そのtmpファイル内の内容はなんでしょう?実はエラーログ的な何かとか。
526 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 19:31:45 ] >525 確認ありがとうございます。 > TMPファイル内を"XCP*.tmp"で検索かけてみたけど出てこなかった。 *の部分は2桁以上の16進のようです。 実行するたびに数値が増えていきますが、必ずしも1ずつ増えるわけでもありません。 私は環境変数 TEMPと TMPを C:\Temp に変更しているのですが、このフォルダを見てると、 上で書いているボタンを押すたびに、ファイルが1つずつ増えていってしまいます。 > そのtmpファイル内の内容はなんでしょう?実はエラーログ的な何かとか。 「プロセスはファイルにアクセスできません。別のプロセスが使用中です。」 と出て、メモ帳とかバイナリエディタで確認することができません。作成されたファイル全て。 ログの線だと、どの設定でそうなるのかよくわかりません。 (プロパティはアセンブリ情報くらいしか触ってないはず…) Debugビルドだけでなく Releaseビルドでも同じ現象でもありますし。 通信時なので、非同期通信のデータを溜めておくバッファではないかとも想像しています。 (データ量が多すぎたときに RAMを圧迫しないようにこのファイルに溜めていく?) そうだとしても、設定で通信処理後自動削除、もしくはメソッド等で削除ができないと 溜まるばかりですし。(それを一部試したのが AllowReadStreamBuffering) 以下はM$のFileMonで見たログです。 Process Request Path Result Other iexplore.exe CREATE C:\Temp\XCP23.tmp SUCCESS Options: Create Access: Read iexplore.exe CLOSE C:\Temp\XCP23.tmp SUCCESS iexplore.exe CREATE C:\Temp\XCP23.tmp SUCCESS Options: OverwriteIf Access: 0013019F iexplore.exe DIRECTORY C:\Temp\ SUCCESS FileBothDirectoryInformation: XCP23.tmp iexplore.exe QUERY INFORMATION C:\Temp\XCP23.tmp SUCCESS Length: 0 iexplore.exe SET INFORMATION C:\Temp\XCP23.tmp SUCCESS Length: 20971520 iexplore.exe READ C:\Temp\XCP23.tmp SUCCESS Offset: 0 Length: 32768 ↑ここまでで止まります。 IEを閉じたときには↓ iexplore.exe CLOSE C:\Temp\XCP23.tmp SUCCESS
527 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 19:57:30 ] >>526 > > そのtmpファイル内の内容はなんでしょう?実はエラーログ的な何かとか。 > 「プロセスはファイルにアクセスできません。別のプロセスが使用中です。」 > と出て、メモ帳とかバイナリエディタで確認することができません。作成されたファイル全て。 開けなくてもエクスプローラでファイルのコピーはできることはあるから、 とりあえずコピーして開くとどうなる。
528 名前:523 mailto:sage [2009/09/14(月) 20:08:21 ] >527 作成された直後のも、その前のも以下のメッセージでコピーできません。 「XCP30 をコピーできません。ほかの人またはプログラムによって使用されています。」 消されたファイルは、ゴミ箱にも残ってませんし、Nortonゴミ箱の保護ファイルにも残されていません。 何とか中が見えればいいのですが…。
529 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 20:53:38 ] Debugで作成したものをネット上に置き、DBCon等 デバッグコンソールを表示するソフトを起動してSilverlightを 実行すると、ブラウザ側の警告込みで情報が得られるかもしれません。 後、自分が作成したもの以外のアプリでもされるのでしょうか?
530 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 20:55:31 ] ×後、自分が作成したもの以外のアプリでもされるのでしょうか? ○後、自分が作成したもの以外のアプリでも生成されるのでしょうか?
531 名前:523 mailto:sage [2009/09/14(月) 21:25:08 ] >529 > Debugで作成したものをネット上に置き、DBCon等…(略) DBConから分かりませんので、それも含めて調べてみます。 > 後、自分が作成したもの以外のアプリでもされるのでしょうか? @ITの「Webサービスを利用するSilverlightアプリを作ろう」 ttp://www.atmarkit.co.jp/fdotnet/vblab/silverlight2develop_02/silverlight2develop_02_01.html にあるガソリン情報取得アプリで、住所を入れて価格取得ボタンを押すと、 しばらく間をおいて作成されます。(同じく XCP*.tmp。16進値は前の値から連続しています) 最初はn個一気に作成されます。住所を変えないで再度ボタンを押すと、1つずつ増えていきます。 住所を変更してボタンを押すと、またn個一気に増えます。 同様の現象は出ますでしょうか?
532 名前:523 mailto:sage [2009/09/14(月) 21:34:59 ] 環境を補足しておきます。 OS:WindowsXP SP3 Silverlight:VS2008 SP1用 Silverlight 3 Toolsをインスト 以下はVSのバージョン情報からの抜粋 VS2008:9.0.30729.1 SP .NET Framework:3.5 SP1 Silverlight Projects 2008:9.0.30730.126 記述言語はC#。
533 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 22:24:47 ] 挙動が違いますが、XCP*.tmpファイルは確認できました。 こちらの環境で最大で1つ以上作成されませんでした。 >ttp://www.atmarkit.co.jp/fdotnet/vblab/silverlight2develop_02/silverlight2develop_02_01.html 上記アプリで価格取得ボタンを押した時に作成されますが、しばらくすると消えます。 それ以降、再度ボタンを押しても エクスプローラー上には現れませんでした。(IE8,FF3) 挙動から推察するに、ダウンロードリソースの一時ファイルかと思います。 どこまでも仮説ですが、ハードやウイルスソフトなどの環境要因でダウンロードの終了が Silverlightに通知されず、次のダウンロードリクエストで更に一時ファイルが‥ということが 繰り返されているのではないでしょうか? 起動中のソフトを1つ1つ終了させていくと、どこかで問題が解決するかもしれません。
534 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 22:38:49 ] すいません、質問してもいいですか? シルバーライトのテキストボックスにクリップボードのテキストをVBでPasteできないんですか?
535 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 23:35:22 ] 自己解決、出来ました。
536 名前:523 mailto:sage [2009/09/14(月) 23:50:45 ] > 533 検証ありがとうございます。 tmpファイルが1つしか作成されないということは、IE7と8の差、もしくはIEのオプション設定が 怪しいのかも。 (スクリプトデバッグのON/OFFでは変化ありませんでした。スクリプトエラー表示をONにしても 何もエラー表示なしです。) IE8必須にするにはまだ時期尚早と考えてますので、IE7でもう少し粘って調べてみます。 > どこまでも仮説ですが、ハードやウイルスソフトなどの・・・(略) ダウンロードは mWebClient_DownloadStringCompletedが発生しているので終了通知は受け取っていると 思います。 とすると、随時の削除通知がOSに伝わってないとしたら・・・。 ブラウザ終了時に tmpが消えるのも不自然ということか・・・。 ウイルスソフトだとちょっと困りますね。 (NTT提供の TREND MICRO セキュリティ対策ツールVer16を使用。アップデート済) > 起動中のソフトを1つ1つ終了させていくと、どこかで問題が解決するかもしれません。 OS起動時の新鮮な時に試してみます。
537 名前:523 mailto:sage [2009/09/15(火) 00:10:19 ] > 529 DBCon試してみました。 (これすごく役に立ちます。今まで別途テキストボックス作って出してました。ありがとうございます。) 特にエラー等は検知できませんでした。 mWebClient_DownloadStringCompleted() 処理で例外も発生していませんでした。 <DBConメモ> Debugビルドでは、以下で出力した内容を表示してくれます。 Debugger.Log() Debug.WriteLine() Releaseビルドでも、以下は取得できます(出力しています?)。(レベル引数は5で試しました) Debugger.Log() (Console.WriteLine()はどちらのビルドでも不可)
538 名前:デフォルトの名無しさん [2009/09/15(火) 15:14:01 ] 黒で塗りつぶされた四角形を作るクラスを作りたいのですが、 どうもうまくいきません。(表示されない) どこが悪いか教えていただけませんでしょうか? 黒塗りの四角形のクラスは以下のとおりです。 using System.Windows; using System.Windows.Controls; using System.Windows.Media; using System.Windows.Shapes; namespace SilverlightApplication1 { public class Block : Shape { Rectangle colorRectangle = new Rectangle(); SolidColorBrush testBlack = new SolidColorBrush(); public Block() { testBlack.Color = Color.FromArgb(0xFF, 0x00, 0x00, 0x00); colorRectangle.Width = 100; colorRectangle.Height = 50; colorRectangle.Fill = testBlack; } } } このクラスをメインプログラムから、以下の命令で読み出します。 Canvas.SetLeft(testblock, 550); Canvas.SetTop(testblock, 100); testblock.Height = 100; testblock.Width = 50; canvas.Children.Add(testblock);
539 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 15:21:15 ] 無理 Shapeの派生クラスは作れない
540 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 15:29:07 ] そもそも、クラス内で作っているcolorRectangleがどこにも使われていない件について。 public class Block { Rectangle colorRectangle = new Rectangle(); SolidColorBrush testBlack = new SolidColorBrush(); public Block(Panel owner) { testBlack.Color = Color.FromArgb(0xFF, 0x00, 0x00, 0x00); colorRectangle.Width = 100; colorRectangle.Height = 50; colorRectangle.Fill = testBlack; owner.Children.Add(colorRectangle); } } とかにして、 Block block = new Block(canvas); で出るんでないかな。
541 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 15:56:04 ] わざわざクラスを作る必要もない 各プロパティを設定するスタイルをXAMLのリソースで宣言して Rectangleに設定すればいいだけ
542 名前:523 mailto:sage [2009/09/15(火) 19:23:20 ] 試しに会社のPC & ネット環境から見に行くと、私が↑で書いたプログラムだと tmpは1、2個程度で それ以上増えませんでした。 しかし、@ITのサイトは住所を変更しなくてもボタンを押すたびに次々増えていきました。 現象に統一性がないのがアレですが、IEもしくはPC環境の問題も絡んで面倒なことになりそうな 気がしてきました。;; (IEの設定は持ち帰りましたので、この後調べます。) ちなみに自PC起動直後に試してみたところ、両サイトとも tmpが10個前後まで増えたあと、 急に2、3個に減りました。(しばらく待ってもゼロ個になることはありません) 現象が変わってます。ん〜〜、よくわかりません。 コンピュータなんだから、毎回同じ動きしてほしいものです。w 取り急ぎ報告まで。
543 名前:523 mailto:sage [2009/09/15(火) 22:49:45 ] 対処療法ですが、tmpの作成個数を抑える方法が見つかりました。 それはガベージコレクション(以下GC)。 通常は自動にまかせて問題ないし、メモリにしか関係しないと思っていました。 (少なくとも私はメモリを食いつぶされた経験はありません。今回もメモリは十分残っていました。) 私の↑のプログラムで言えば、mWebClient_DownloadStringCompleted(…)の処理の最後に以下を記述します。 GC.Collect(); すると、最新の tmpのみ残りそれ以前のは即時削除されました。 元々問題となっていた、ループ中で通信して数十GBも食いつぶすプログラムでは、10〜15個 tmpが溜まった後 最新以外が一気に消えるという繰り返しになりました。 (こちらも GCは通信処理の末尾に記述) このプログラムの処理をもう少し詳しく書くと、 (1) メインの処理は、0.5秒間隔のTimerで常にある処理をしている。 (2) 上記処理を行いながら、約10秒ごとに非同期でファイルを取得する。← DownloadStringAsync のようなことをしています。 この場合は、(2)で毎回GCを行っても、必ずしも削除されるわけではないようです。 Bestな解決方法とは言えませんが、とりあえず回避はできるようですので〆ようと思います。 (ここはずっと見てますので、根本解決が見つかれば書き込んでいただければ幸いです。) 協力してくださった皆様、ありがとうございました。m(_ _)m GCが tmp削除に関連している理由は予想しかできないので書きませんが、この対処方法を見つけた時は、 「何でやねん」と叫んだことを付記しておきます。w
544 名前:デフォルトの名無しさん mailto:sage [2009/09/16(水) 00:03:33 ] Dispose関係じゃね
545 名前:デフォルトの名無しさん mailto:sage [2009/09/16(水) 00:38:23 ] 他のSLアプリでも起きてるので環境だと思う。 めちゃくちゃメモリが乗っかっててGCが発生しにくいとか。
546 名前:デフォルトの名無しさん mailto:sage [2009/09/16(水) 01:01:05 ] こういう時は、多少面倒でもWebRequestを使ったほうが良いかもしれないな。
547 名前:デフォルトの名無しさん mailto:sage [2009/09/16(水) 01:03:13 ] > 他のSLアプリでも起きてるので環境だと思う。 全く根拠になってねぇ
548 名前:デフォルトの名無しさん mailto:sage [2009/09/16(水) 03:30:50 ] >>547 ごめん。言い直すよ。 他のSLアプリでも起きてるので環境だと思う。根拠はない。
549 名前:デフォルトの名無しさん mailto:sage [2009/09/16(水) 06:43:07 ] 他のSLアプリも馬鹿が作ってたらその理屈は通らないだろw
550 名前:デフォルトの名無しさん mailto:sage [2009/09/16(水) 10:14:31 ] GCでアンマネージリソースが廃棄されると言われると、 普通の人はファイナライザで廃棄されてるんだなと考える。 そしてリクエスト毎にwebclientをnewし、不要になったものからDisposeしてみることから試すと思う。 やってみてないけど。
551 名前:デフォルトの名無しさん mailto:sage [2009/09/16(水) 14:34:47 ] WebClientがIDisposableを実装していれば、そんな答えはとっくに出てるよ
552 名前:デフォルトの名無しさん mailto:sage [2009/09/16(水) 14:57:53 ] そうか? wc内部のDisposeが怪しいと思っているならなんとかなるんじゃね?と模索してみたり、突然GCで解決してみるわーという解を出すあたり試してなかったんじゃないの? 確かにsl版には無いな
553 名前:523 mailto:sage [2009/09/16(水) 22:45:22 ] > 545 > めちゃくちゃメモリが乗っかっててGCが発生しにくいとか。 もし tmp1ファイル当たり100Byteメモリ消費するとしたら、20GB分のファイルが溜まるまでに 消費するメモリは 100KBにしかならないので、その可能性もありますね。 (他の消費はムシとする) メモリは1GB程度は空いている状態で実行してました。 (時間経過によるメモリ消費の増加具合はよく覚えていません。タスクマネージャのグラフを 出してましたが、「メモリ減ったな…」と感じるほどには消費されていなかったはず。) > 546 行き詰ってしまったときはそれを覚悟してました。 しかし、簡単に使える WebClientを捨てがたく、粘ってみた次第です。w > 550,552 Disposeの件は、書かれているように Silverlightには無いのです。 無いものは試せません。w また、リクエスト毎newは試したと最初に書いてあります。 自身でSL版には無いと書かれているのに、552の2行目は何を試すべきだったと書いてあるのか ちょっとよくわかりません。
554 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 00:30:02 ] まあ、後出しなら何とでも言えが、それなのに的外れと。w
555 名前:523 mailto:sage [2009/09/17(木) 00:31:34 ] る
556 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 00:48:11 ] >>553 GCに頼るよりかは自作するかcodeplex探索するほうがはるかに適切だろ
557 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 15:07:15 ] 点の数が500ぐらいのpolylineを20本ぐらい表示させてマウスの動きにあわせてPOINTCOLLECTIONを設定し直すだけでもっさもっさなんですが、何かやり方が根本的に違うんでしょうか? ちなみにcanvasにaddしてます。
558 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 21:21:23 ] 多分限界だと思う。今の所Flashに毛が生えた程度の速度しか出ないと俺は思ってる。 Silverlight4に期待したい。
559 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 21:28:35 ] WriteableBitmapに描くようにしてみたら
560 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 21:38:31 ] てか、描画周りはFlash速いよ。 速い書き方を知ってる人が書けばの話だけど。
561 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 21:56:30 ] PolyLineではなく、PolyLineSegmentを使ってみては?
562 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 22:03:57 ] WritableBitmapはピクセル操作はできても書けないんじゃなかったっけ? 自前でGraphicsAPI作ればいいのか。 ・・・orz
563 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 22:06:24 ] Renderメソッドで描けるよ もちろん自前でピクセルで描けるなら一番速いだろうが
564 名前:デフォルトの名無しさん [2009/09/17(木) 22:53:35 ] MediaElementを使って、wmvやmp3を読み込んで再生したいです。 そもそも読み込みがうまくいっていないようなのですが、どこがおかしいのでしょうか? どうかよろしくお願いします。 public class Test : Application { Canvas canvas = new Canvas(); MediaElement sound = new MediaElement(); private String url = "pattern02.wmv"; public Test() { RootVisual = canvas; init(); } public void init() { sound.Loaded += new RoutedEventHandler(mInit); } public void mInit(object sender,RoutedEventArgs e) { sound.Source = new Uri(url); sound.Play(); this.canvas.Children.Add(this.sound); } }
565 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 23:02:01 ] >>554 やっちゃったかw
566 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 23:04:14 ] >>565 Webサイトのプロジェクト作った? 開発用Webサーバ上で動かしてる? 読み込むファイルはそのWebサイトプロジェクトのClientBinフォルダの中に入れた?
567 名前:デフォルトの名無しさん [2009/09/17(木) 23:07:31 ] >>566 レスありがとうございます。 wmvは、C#のコードと同じフォルダに入れました。 Webサイトのプロジェクトは作っていませんorz Web上で動かしても、wmvの読み込みを開始しようとすると、他のコンポーネントが消えて 真っ白になっちゃうんですよね。
568 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 23:31:45 ] >>564 sound.Loadedの先でSourceを設定してるのが悪いかと。 読み込むファイルの設定を、読み込みが完了したときに呼ばれるとこでしたら駄目でしょ。
569 名前:デフォルトの名無しさん [2009/09/17(木) 23:48:46 ] >>568 さん レスありがとうございます。ご指摘のとおり、Sourceの設定をsound.Loadedの前に持ってきました。 しかし今度はデバッグ中に、UriFormatException はユーザーコードによってハンドルされませんでした。 「無効なURI: URIの形式を決定できませんでした。」というエラーがでます。 C#と同じディレクトリにwmvファイルを持ってきているのですが、URIの指定がまずいのでしょうか? ファイルの置き場所が悪いのですか? public class Test : Application { Canvas canvas = new Canvas(); MediaElement sound = new MediaElement(); private String url = "pattern02.wmv"; public Test() { RootVisual = canvas; init(); } public void init() { sound.Source = new Uri(url); //sound.Sourceをこっちに移しました sound.Loaded += new RoutedEventHandler(mInit); } public void mInit(object sender,RoutedEventArgs e) { //sound.Sourceは、ここにあった sound.Play(); this.canvas.Children.Add(this.sound); } }
570 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 00:35:03 ] 今度はLoadedイベントハンドラの追加より前でSource入れてるし。 Silverlight以前にプログラミングの基礎をしっかりやった方が良いのでは・・・
571 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 00:37:35 ] >「無効なURI: URIの形式を決定できませんでした。」というエラーがでます。 new Uri(url, UriKind.Relative);
572 名前:571 mailto:sage [2009/09/18(金) 00:39:37 ] つーかこれ、わざわざCanvasとか作ってるとこみるとxaml無でコードのみでやってんの?
573 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 00:54:56 ] >>560 まじ?点の数が500ぐらいのpolylineを20本いけちゃう? そしたら即SilverlightからFlashに乗り換える。
574 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 07:32:52 ] >561 後で試してみます(=゚ω゚)ノ
575 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 09:02:20 ] >>573 環境によるだろ
576 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 12:37:06 ] それをいったらいけちゃうの定義も曖昧だろw 小さい言葉遊びは置いといて、んじゃあFlashでこれは描画速い! っていうサイトない?Silverlightでコレはムリだろ、みたいな。
577 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 12:39:34 ] 確かFlashだとポリラインてmoveTo、LineToの繰り返しで引くんだよね? さすがにCanvasにaddするよりは速いだろうけど、 WritableBitmap.Renderより速いかはわからない。 Flashでも高速描画したいときはBitmapData.drawってやるようだし、 大して変わらない可能性もあるかと。
578 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 15:20:09 ] つーか、とっととDrawContextとか実装しておくれよ…
579 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 18:16:47 ] あれ?WriteableBitmap.Pixels でピクセルバッファに直接アクセスできるけど、そういう話じゃない? SetPixel、GetPixel なんかも簡単に作れるし、DDA で Line するのも難しくない。 つか、「WriteableBitmap SetPixel Line」 でググるとすぐにサンプルが見つかるけど。
580 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 18:31:54 ] 線が毎フレーム動いてるようならWritableBitmap.Renderでは速くならないと思うし、 動かない線をキャッシュするならBitmapCacheだけで十分じゃないかな?
581 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 18:54:41 ] >>578 WPFのDrawingContextで毎フレーム更新したら糞遅いよ どっかでMSの中の人が「最も効率の悪い方法」とコメントしてた記憶がある
582 名前:デフォルトの名無しさん [2009/09/18(金) 20:41:14 ] Json文字列をDataGridに入れるソースなのですが、もうすこしサッパリならないでしょうか? わざわざjoからjaを取り出さなくてもいい方法とか、わざわざenumを作らなくてもいい方法とか あれば教えてください。 public partial class MainPage : UserControl { public MainPage() { InitializeComponent(); string json = "{'title':'Hello!', 'array':[{'id':1, 'name':'aaa'}, {'id':2, 'name':'bbb'}, {'id':3, 'name':'ccc'}]}"; JsonObject jo = (JsonObject)JsonValue.Parse(json); JsonArray ja = (JsonArray)jo["array"]; IEnumerable<test> enum = from obj in ja select new test { ID = (int)obj["id"], NAME = (string)obj["name"] }; mygrid.ItemsSource = enum; } } public class test { public int ID {get; set;} public string NAME { get; set; } }
583 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 20:41:52 ] 凄い質問スレな雰囲気。
584 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 21:36:14 ] まあいいんじゃねえの 有用なドキュメントもないし 俺もSilverlight用アップローダでも作って支援しようかなあ
585 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 22:18:09 ] >>576 言葉遊びとかそういう問題じゃないだろこれは
586 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 22:25:56 ] json扱うならDLR系の言語使ったほうが楽だろうなー
587 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 23:58:20 ] >581 そなのか(´・ω・`) 毎フレームでShapeを削除/追加するよりはましかと思ったんだけど・・・ 軽い描画命令が欲しいお(´;ω;`)ウッ… 株式チャートを作りたいんだお・・・
588 名前:デフォルトの名無しさん mailto:sage [2009/09/19(土) 01:11:52 ] 自作するより持ってきたほうが楽な気が。
589 名前:デフォルトの名無しさん mailto:sage [2009/09/19(土) 01:17:34 ] 細かい機能で不満が出るかもしれないけど、まずは置いておいて、 全体をまず作りこんでからでもいいと思いますし。 一例 visifire visifire.com/silverlight_chart_designer.php 下の「Gallery」からサンプルが見れます。
590 名前:デフォルトの名無しさん mailto:sage [2009/09/19(土) 04:39:47 ] シルバーライト3で Service参照 を設定しプログラムしたときに IISのサイトのバインドが2つ以上あるとエラーで実行できないのですが これの回避方法はありませんか? Service の endpoint は正しく設定してあります。 例 IISバインド www.サイト名.co.jp www2.サイト名.co.jp
591 名前:デフォルトの名無しさん mailto:sage [2009/09/19(土) 07:57:41 ] >504 ありがとう。 IEじゃヤフ、GYAO見れるんだが火狐で見れないのが不思議だった。 インストールされているらしいのに。 TEMPディレクトリか・・・・ 気がつかなかった。 だいたいtmpなんてC:直下に置いておくものだろ。 それも奥の方にいくつもある窓の作法なんかに従うなんて出来ない。 理由が分かって少しすっきりしたw
592 名前:デフォルトの名無しさん [2009/09/24(木) 17:19:55 ] <Grid x:Name="LayoutRoot"> <Grid.RenderTransform> <ScaleTransform ScaleX="2"></ScaleTransform> </Grid.RenderTransform> <Rectangle Fill="Blue" Stroke="Red" StrokeThickness="3" /> </Grid> ScaleTransformでRectangleを横方向に拡大しているXAMLです。 拡大後のRectangleの幅を取得したいのですが、ActualWidth や RenderSize.Width では 元々の幅しか取得出来ません、どうにか取得する方法は無いでしょうか?
593 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 01:30:01 ] 2倍すればいいんとちゃうの?
594 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 02:08:58 ] Layoutの方を使う
595 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 20:06:37 ] こっちに張っていいのかな? Microsoft Expression Encoder 3 ttp://www.microsoft.com/downloads/details.aspx?FamilyID=b6c8015b-e5de-46c0-98cd-1be12eef89a8&DisplayLang=ja
596 名前:デフォルトの名無しさん [2009/09/27(日) 04:33:52 ] 初心者ですまん。 WPFってWebアプリも作れるよね? じゃあSilverLightの違いって何? SilverLightには4M制限があり、 その為、WPFの機能縮小版であると言うところまでは調べれたんだけど・・・。