C#
今日、Visual Studioを起動するとアップデートが来ていたので、早速インストールした。 ReSharper :: What's New in ReSharper 6 結構いろいろと変わってるんだな。 ReSharper SDKなんてのもあるんだ。
Phone7.FxのBindableApplicationBarだが、残念ながら使えなかった。 まず第一に、XAML上、PhoneApplicationPage#ApplicationBarプロパティにセットできないということ。※もう一つは、他のコンテナ(Grid)上に配置しても何故か私の環境では表示できないという…
Windows Phone 7のApplication BarはVisual Studioが用意するテンプレートに最初からサンプルコードとして埋め込まれており、コメントを外すことですぐに使える。用意されたApplicationBarにチェックとキャンセルのアイコンを配置した例(Blend 4) ただ、この…
これまでの日記でWindows Phone 7に関して書いてきたコード片を全てGoogle Codeにアップすることにした。Mandarine-wp7 - library framework for Windows Phone 7 | Google Code Hosting"Mandarine"というプロジェクト名はWindows Phone 7.5のコードネームが…
やることはこのFileTargetクラスからログのアーカイブとローテーションの機能を抜き出してIsolatedStorageTargetクラスにポートすることである。 ということで早速やってみた。ただし、FileTargetのアーカイブ/ローテーション機能をIsolatedStorageTargetに…
NLog – Advanced .NET Logging NLogにも大分慣れてきた。設定ファイル(NLog.config)もかなり考えられており、内部のパーサと拡張構文(${〜})によるプロパティの設定も柔軟性がある。 例えばログターゲット(Target)のレイアウトプロパティだがフォーマット文…
前回までのエントリでIsolatedStorageにログを出力できるようにはなったが、単一のファイルをログを出力し続けるとサイズがどんどんと膨らんでいくことになるので、なんらかのログのアーカイブ戦略を立てなくてはならない。 ログのアーカイブとローテーショ…
次回ではNLogを使って実際にログを出力してみよう。 using (IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForApplication()) { using (Stream stream = new IsolatedStorageFileStream("Mandarine.log" , FileMode.Append, FileAccess.Writ…
NLog.config <nlog> <extensions> <add assembly="Mandarine"/> </extensions> <targets> <target name="target1" type="IsolatedStorage" layout="${longdate} ${callsite} ${level} ${message}"/> </targets> <rules> <logger name="*" minlevel="Debug" writeTo="target1" /> </rules> </nlog> #if !WINDOWS_PHONE strin…
ソースコードを調べたたのだが(やっぱりソースコードが無いとね)、Windows Phoneでは要素の要素 assembly属性には対応していないようだ。 無念。 NLog.Config.XmlLoggingConfiguration.cs #if !WINDOWS_PHONE : string assemblyName = addElement.GetOptiona…
NLogのTargetをIsolatedStorageFileにしたくて調べていたのだが、中々上手く行かん。 他のアセンブリからターゲットクラスを呼び出す時点でエラーが出てしまう。 NLog.config <nlog> <extensions> <add assembly="Mandarine"/> </extensions> <targets> </targets></nlog>
Androidで言うところのLogCatと同じようにアプリケーションのログを採取したいがWindows Phoneにはそのようなものは無いようだ。 ASP.NETやWindowsFormsではLog4Netを使用していたが、Log4Netはちょっと重めなのでもう少し軽くて簡単に使えるロガーを探して…
さて少し空いてしまったが、残った処理をテンプレートに実装していこう。前回はクラスの定義部までを生成した。 MyViewModel_Generated.cs (自動生成結果) using System; using System.Windows; using System.Windows.Controls; using System.ComponentModel…
前回は属性(アノテーション)の定義が出来たので、話をテンプレートに戻そう。次に行うのはこの属性をマーカとして使い、生成対象のクラスを見つけることだ。1. ソリューション中のプロジェクトを列挙する 2. プロジェクト中のクラス情報を列挙する 3. Proper…
さて、ViewModelの自動生成の続きだ。おさらいになるが、自動生成するViewModelは対象のネームスペース、クラスを決定しなくてはならない。そして生成するプロパティ(名前、型、デフォルト値)を決めたい。そのためにはテンプレート(ジェネレータ)側に何らか…
Windows Phone 7でのXAMLページの遷移、通常であればPhoneApplicationPageのコンテキストで以下のように書くだろう。 PhoneApplicationPage.NavigationServiceプロパティを使う NavigationService.Navigate(new Uri("/Page2.xaml", UriKind.Relative)); これ…
自身で定義したViewModelにIDataErrorInfoを実装すると発生するTypeLoadExceptionだが、結局原因が分らない。そもそもSystem.ComponentModel.IDataErrorInfoは参照できるものの、元々WPFで使用してきたインタフェースでありWindows Phone 7のProfileでは使え…
ViewModel生成のテストをしているのだが、原因不明のエラーに悩まされている。 以下のXAMLにより直接ViewModelのインスタンスを生成してビューのDataContextにセットしているのだが、 Page1.xaml(抜粋) このXAMLをVisual Studio 2010のデザイナで読ませると…
前回のエントリで書いた通り、T4 Text TemplateによるViewModelの生成のためのジェネレータを作成していく。なお、テンプレート自身はViewModelGenerate.ttという名前とし、共通で使うであろう関数群はUtil.ttという別な名前のテンプレートに定義して、ViewM…
さて、T4 Text TemplateによりJava APTとほぼ同様のことができることが解ったので、早速プロセッサ(というかジェネレータ)を作ることにしよう。実装の手順は以下のようになるだろう。1. Visual Studio ソリューション情報から全てのプロジェクト情報を列挙 2…
以前、Androidアプリで恒常的に使用するXMLからPOJO DTOへマッピングするクラスをAPT(Annotation Processing Tool)を利用して自動生成するエントリを書いたことがある。APTでテンプレートメソッドパターンを生成する その1 APTでテンプレートメソッドパター…
Silverlight4の制限はあるものの、MVVMの実装において重要な責務を担うコマンドバインディングが実現できることが解ったので、次はデータバインディングが実現できるかどうか検証してみよう。 といってもデータバインディング機構そのものはWindowsPhone7で…
WPF のための MODEL-VIEW-VIEWMODEL (MVVM) デザイン パターン - MSDN マガジン February 2009MVVMパターンで使用するコマンドの実装を考えた場合、いろいろなやり方を考えることができると思うが、コマンドの機能毎にICommandの実装を用意する煩雑さとそも…
WindowsPhone7の一般的なアプリケーションはSilverlightベースで開発するのだが、このSilverlightが、特にフレームワーク上のSilverlightとWPFの差が門外漢には良く解らない。WPF との互換性 - Silverlight SilverlightはWPFのサブセットだと理解していたの…
DevQuizのスライドパズルは見事に玉砕した訳だが、その解答をC#で書くのには理由があった。 一つは暫く触っていなかった間にバージョンが上がってより複雑となったC#言語に慣れるためで、もう一つはVisual Studio 2010のプロファイリング機能を試して見たか…
koush's androidmono at master - GitHub android-ruby - Project Hosting on Google CodeAndroidのようなコンパクトなプラットホームは正直に言うとJavaで書くよりC#(というよりC#3.0で)※、もっと言えばRubyで書きたいと思ってしまう。 ※だったらWindows CE…
OpenXMLのラッパーで"ExcelPackage"と呼ばれる、XMLSS.NETに似た実装があったはずと記憶を頼りに探していたのだが、灯台もと暗し、CodePlexだった。ExcelPackage: The convenient way to create SpreadsheetML OOXML on the serverしかし、ざっと見てみると…
Excel Xml Library 3.35 released - Yogesh Jagota's Personal BlogYogesh Jagota's Personal Blogcodeproject A Very Easy to Use Excel XML Import-Export Library.まだソースコードを見始めた所だが、恐らくはXMLSSフォーマットを利用した実装だろう。(XM…
VB.NETからC#に書き直していたのだが、20個ほど進めてから、はたと気がついた。これって、XMLSS -> Object のデシリアライズは出来るけど、Object -> XMLSSのシリアライズ手段が用意されていないんじゃん。 ガーン ちょっと、いやかなーり慌てたな。
以前紹介したFiddler Web Debuggerや、最近ではsvchost viewer、国産では、コロ助※等を始めとして、.NETを使用した&優れたWindowsアプリケーションがここ1〜2年で随分と増えた感がある。これは完成度の高いツールキットであるWindows FormsとClickOnceを使え…