引き続きやってます。めでたくレベル2になりました。
Linqも、SelctManyやAggregateの使い方がわかってきた気がします。
一つわからないのが下の様なケース。TakeWhileやAggregateで出来そうな気もするんですが。どうするのがいいんだろう。
・合計がxを越えない範囲で列挙する。
あと、.NET Framework4でBigIntegerが追加されてることを知りました。便利。
#というか反則っぽいなぁ
技術ブログを始めたくてなんとなくスタートです。 たぶん長続きしないはず…
引き続きやってます。めでたくレベル2になりました。
Linqも、SelctManyやAggregateの使い方がわかってきた気がします。
一つわからないのが下の様なケース。TakeWhileやAggregateで出来そうな気もするんですが。どうするのがいいんだろう。
・合計がxを越えない範囲で列挙する。
あと、.NET Framework4でBigIntegerが追加されてることを知りました。便利。
#というか反則っぽいなぁ
Project Eulerなるものを知った。数学の問題をプログラムで解くらしい。
おもしろそうなので、登録してみた。
#そういえば、TopCoderに登録してそのままなことを思い出した。
http://projecteuler.net/
日本語のWikiもあり、問題も日本語化されているようだ。<やった。
http://odz.sakura.ne.jp/projecteuler/index.php?Project%20Euler
番号が若いうちは比較的簡単。出来るだけLinqを使って書くように心がける。
#でもLinqだと無駄が出やすい気がする。スピード重視なら、手続き指向になるのかなぁ。
とりあえず、今日は8問目まで。
いい加減、Azureへデプロイです。
プロジェクトを右クリックメニューより発行を選択。
表示されたダイアログで、「サービスパッケージだけを作成」を選択しOKをクリックします。
.cspkgファイルとcscfgファイルが作成されます。
これを、Azure環境にデプロイします。
まず、Windows Azure Developer Portal(http://windows.azure.com/)にアクセスします。その後、New Serviceをクリックします。
Hosted Servicesを選択します。
Service Labelと、Service Descriptionを入力します。適当でOK.
次にURLと、デプロイ場所を決定し、Createボタンをクリックします。
とりあえず、出来ました。そして、Deployボタンをクリック。
Application Packageに.cspkgファイルを、Configuration Settingsに.cscfgファイルを設定。Deployment Nameを入力したら、Deployボタンをクリック。
デプロイ完了です。最初は、Stoppedなので、Runボタンをクリックしアプリケーションを開始します。
しばらく、待つとデプロイが完了します。ステータスは次のように変更されます。
以上で、すべて完了。
油断すると、すぐ間隔が開いてしまって困ったことです。
前回の続きです。今回は、とりあえず実行するために、デフォルト設定で突き進みます。
まずは、プロジェクトの作成から。
VisualStudio2010を管理者モードで起動し(これ重要!いつも忘れます(^^;))、新しいプロジェクトの作成より、Windows Azure クラウドサービスを選択。
プロジェクトには、とりあえず、ASP.NET Webロールを一つだけ追加。
すると、ソリューションが作成されます。
その後、いきなりF5で実行。ASP.NETで作成されたテンプレートページが表示されます。一見、普通のWeb開発と変わりません。
違いはというと、タスクトレイのアイコンぐらい
右クリックメニューより、Development Fabric UIとDevelopment Storage UIを表示することが可能です。
まずは、Development Fabric UI。
続いて、Develpment Storage UI。
以上で、ローカルでのAzureプロジェクトの実行は完了です。 次は、ようやくデプロイ。
昨日、Azureの申し込みを完了したので、今日は環境の整備。
Windows Azure Toolsをインストールします。
ダウンロードは、下記から。
「Windows Azure Tools for Microsoft Visual Studio 1.2」
http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=2274a0a8-5d37-4eac-b50a-e197dc340f6f
リンク先ページにある、注意事項を参考にしつつインストールしました。
Windows7(x64)×VS2010なので、↓だけ追加でインストール。
http://code.msdn.microsoft.com/KB981002
というわけで、環境の準備は終了。そして今日の作業も終了。
明日はサンプル作りたいな。
MSDNサブスクリプションを利用中の方には特典が用意されています。詳しくは↓。
http://msdn.microsoft.com/ja-jp/subscriptions/ee461076.aspx
幸いにもPremiumの割り当てがあるので、申し込みを行ってみます。
入り口は、MSDNサブスクリプションのページから。
WIndows Azure プラットフォームのリンクをクリックすると、Microsoft Online Service カスターマー ポータルにサインインします。(アカウントがない場合は、ここで作成します。)
すると、ショッピングカートに商品が入っている状態に。あとは、同意するチェックボックスにチェックを入れて、購入手続きへ。(クレジットカード情報等を入力します。なぜか途中のValidationに引っかかって、何回か最初からやり直しましたが…)
あとは、サービスをアクティブにすれば終了。とりあえず、きょうはここまでか。
今更ですが、ダウンロード可能になってました。
http://www.microsoft.com/japan/products/expression/
さて試すか。
SQLServerCeで行ロックがかかっているかの実験。
using (var connection1 = new SqlCeConnection(Settings.Default.Setting))
using (var connection2 = new SqlCeConnection(Settings.Default.Setting))
{
connection1.Open();
connection2.Open();
var command1 = connection1.CreateCommand();
var command2 = connection2.CreateCommand();
using (var tran1 = connection1.BeginTransaction())
using (var tran2 = connection2.BeginTransaction())
{
command1.Transaction = tran1;
command2.Transaction = tran2;
command1.CommandText = "select * from table1 with (updlock) where id = 1";
command2.CommandText = "select * from table1 with (updlock) where id = 1";
using (var reader1 = command1.ExecuteReader())
using (var reader2 = command2.ExecuteReader())
{
while (reader1.Read() && reader2.Read())
{
Console.WriteLine(reader1.GetInt32(0));
Console.WriteLine(reader2.GetInt32(0));
}
}
}
}
確かに。
Visual Studio 2010 Pro Power Toolsをインストールしてみた。 http://visualstudiogallery.msdn.microsoft.com/en-us/d0d33361-18e2-46c0-8ff2-4adea1e34fef
など盛りだくさん。 あと、Alt+↑ とか Alt+↓とかで、コード移動が出来るみたいなのだが試してもよくわからなかった。
Entity Framework4では、外部キーをスカラプロパティーとして公開することが出来ます。
外部キーの使用 (Entity Framework)
http://msdn.microsoft.com/ja-jp/library/ee794150.aspx
でも、追加方法がよくわからずはまったので備忘録。
①追加からアソシエーションを選択すること。
(ツールボックスからではダメ。ここではまった。)
②外部キープロパティーの追加にチェックを付ける
③プロパティーが追加されます。
ところで、追加されたプロパティーが、どのアソシエーションに関連しているかを確認する方法がない?
長らくx64環境からMDBファイルにアクセスすることが出来なかった。
(正しくは、32bitアプリとしてWOW64上で動作する様に、ビルド構成としてx86を指定する必要があった。)
Office2010(x64)をインストールすることにより、64bitのアプリケーションでもMDBファイルにアクセスできるようになる。ConnectionStringで”Microsoft.ACE.OLEDB.12.0”するだけである。
データ接続コンポーネントも、今はベータがとれていないが、そのうちベータがとれるだろう。
(2010 Office system Beta ドライバ: データ接続コンポーネント)
http://www.microsoft.com/downloads/details.aspx?familyid=C06B8369-60DD-4B64-A44B-84B371EDE16D&displaylang=ja
これにより、32bitでは"Microsoft.JET.OLEDB.4.0"、64bitでは"Microsoft.ACE.OLEDB.12.0”と接続文字列を切り替えることにより、どちらの環境でも動作させることが可能になる。
※32bitでも下記ドライバをインストールすれば、"Microsoft.ACE.OLEDB.12.0”で接続が可能。
2007 Office system ドライバ: データ接続コンポーネント
http://www.microsoft.com/downloads/details.aspx?FamilyId=7554F536-8C28-4598-9B72-EF94E038C891&displaylang=ja
なお、32bitで動作しているか64bitで動作しているかは、IntPtr.Sizeで判定が可能だそうだ。
(とあるコンサルタントのつぶやき:Part 2. .NET Framework 2.0 アプリケーションの 64 ビット対応)
http://blogs.msdn.com/nakama/archive/2008/11/06/part-2-net-framework-2-0-64.aspx
なお、アプリケーションの内部から、現在自分が 64 ビット/32 ビットどちらで動作しているのかを知る一番簡単な方法は、IntPtr.Size プロパティをチェックするというものです。
- IntPtr.Size = 8 の場合は 64 ビットモードでプロセスが動作している。
- IntPtr.Size = 4 の場合は 32 ビットモードでプロセスが動作している。
週末を利用して、viliv S5にWindows7をインストールすることを画策中。
とりあえず、ブータブルのUSBメモリを作成中。
最近はMicrosoftがISOからブータブルUSBメモリを作成するツールを配布してるんですな。
ISOのダウンロード販売といい、便利な時代になったもんだ。
http://www.microsoftstore.jp/Form/Guide/downloadTool.aspx