2014年1月25日

前回は, MongoDBにC#からデータを挿入, 検索の仕方を説明しました. しかし, DBを扱う上で必要な基本機能としては, データの更新や削除が必要になってくるかと思います. そこで, 今回は, MongoDBのデータをC#から変更, 削除する方法を説明します. 更新 MongoDBのデータを更新する方法は, 主に2種類です. 一つ目は, 直接クエリで内容を変更する方法, 二つ目は, 検索して取得したデータを変更して, もう一度保存する方法です. 実際にやってみる 直接更新を行いたい場合, MongoCollectionのFindAndModify()を使用します. 検索して取得したデータを行使し, 保存する方法を詳しく説明していきます. 具体的なソースコードを以下に示します. [csharp] //ローカルのMongoに接続 var server = new MongoClient().GetServer(); //データベースを選択 var db = server.GetDatabase("qaramell"); //コレクション取得 var collections = db.GetCollection<Value>("value"); //引数のスプリット List<string> valueList = new List<string>(value.Replace("rn", "n").Split(‘n’)); //ObjectIDを生成 ObjectId id = new ObjectId(valueList[0]); Value […]

, 2014年1月24日

Qaramellのロゴが決定しました.ロゴの使用は以下の通りです. 使用フォント:Sacramento(Googleフォント) 配色: Qから red: rgb(254, 69, 66); yellow: rgb(235, 188, 61); green: rgb(62, 198, 82); mint: rgb(48, 177, 135); sky: rgb(70, 170, 203); blue: rgb(36, 106, 176); purple: rgb(100, 30, 149); pink: rgb(206, 81, 162); です.

さてみなさん,Backbone.jsやAnglurJSなどの名前は聞いたことがあるでしょうか. これらはみな,MVCフレームワークとよばれ,複雑かつ,大量のコードを書かなくては実現できないリッチUIをWebサービスで実現する際にその負担を軽減してくれるものです. 主にMVCフレームワークは複雑なUIを作成するのにとても役に立つ機能を数多く提供していますが,最大公約数的な機能をひとつあげるならば,バインドです. バインドはイベントのバインド,モデルのバインドの2種類あり,両方とも提供されている場合が多いです. イベントのバインドとは,ご察しの通り,onClickなどのDOMイベントをJavaScriptオブジェクトと紐づけることです. モデルのバインドとはID名などをJavaScriptオブジェクトのプロパティに持たせ,それをDOMオブジェクトに反映させることです. 前者はViewとControllerのバインド,後者はModelとViewのバインドと呼ぶことができるでしょう. さて,本題となるSkeleton.jsですが,これもMVCフレームワークです.特徴としては500行程度の非常に軽量なMVCフレームワークだということです. 今回,Qaramellを作成するにあたって,開発しました.今回から数回に分けてこのSkeleton.jsの機能を説明していきます. Skeleton.js – GitHub JavaScriptにもしっかりとしたクラスほしいよね 今回ご紹介する機能はClassです.JavaScriptの有名なライブラリを見ても何らかの形で独自のクラスが定義されていることと思います.JavaScriptはもともとプロトタイプ継承を採用していますが,使い慣れている継承機能を持ったクラスがほしいと思い作成しました. 使用方法 まず,Skeleton.jsを読み込み,そのあと,アプリケーションを書くJavaScriptファイルを読み込みます. [html] <script type="text/javascript" src="skeleton.js"></script> <script type="text/javascript" src="app.js"></script> [/html] 以下,app.js内での作業となります. 継承 Classが提供することは,Classの継承機能をを継承した子クラスを作成することです.ためしに,Classを継承したMyClass1を作成してみましょう. [javascript] var MyClass1 = Skeleton.Class.extends(); var MyClass2 = MyClass.extends(); [/javascript] Classを継承したMyClassはClassと同様に継承機能を保有します. 属性 Classは次の3種類の属性を提供しています. プロパティ 共有プロパティ 静的プロパティ それぞれ,次のように定義します. [javascript] var MyClass3 = Skeleton.Class.extends({ constructor: function(){ this.property = "プロパティ" } […]

2014年1月22日

独自ドメインを取ったら、そのドメインのメールアドレスも使いたいもの。いつまでも@gmail.comを使っているのは、ちょっとアレですよからね。フリーアドレスは信頼性も低いですし。 ということで今日は Outlook.com を使って独自ドメインのメールアドレスの取り方を紹介します(2014年1月21日現在の方法です)。 用意するもの 以下のものを事前に用意してください。 Microsoft アカウント(新規登録 – Microsoft アカウントで登録してください) 独自ドメイン(今回はお名前.comで ryutamatsuno.com 用意しました) 取得方法 まずは、Windows Live アドミン センターにアクセスして、サインインします。 画面中央のドメインの登録をクリックして取りたいドメイン名を入力します。 進んでいくと、以下の画面が表示されて、DNSレコードの設定を促されます。 いくつか設定するものはあるんですが、今回は以下の3つを登録します。 メールの設定 (必須) ドメイン所有者の証明 (任意) サーバーの信頼 (推奨) お名前.comのDNSレコードの設定にアクセスして、設定します。こんな感じ。 ここでしばらく待ちます。10分程度でしょうか。 ツイッターでも見ながら待ちましょう。 しばらくしたら、2つ上の画面、windows liveのドメイン設定の画面中の更新というボタンをクリックします。 だめだったらもうしばらく待ちましょう。 うまくいったら以下の画面にうつります。 追加ボタンをクリックして、アカウント情報を入力します。 今回は postmaster@~~で登録します(サーバー証明書を取る祭に必要になることがあるアカウントです)。 これでOKボタンを押したら、アカウントの追加は完了です。 右上のアカウントのところからサインアウトして、Outlook.com にアクセスして先ほど登録したアカウント (postmaster@ryutamatsuno.com) でログインしてみましょう。 誕生日の設定とセキュリティの入力をすると、Outlook にたどりつけます。 おつかれさまでした。 終わりに 今回は独自ドメインでのメールアドレスの取得方法を紹介しました。 次はhttps通信をするためのサーバー証明書の取り方を解説する予定です!楽しみにお待ちください!

2014年1月21日

最近流行ってますよねNoSQL. ということで, NoSQLなDBであるMongoDBとC#を連携する方法を簡単にまとめてみようかと思います. MongoDBのインストール ここからMongoDB本体を入手しましょう 適当な場所にダウンロードしたファイルを解凍して配置します. 適当な場所にdata, logsフォルダを作成 mongodb.exeをコマンドプロンプトから起動します.(オプションに –dbpath=dataのパス) これで, ポート番号27017(デフォルトポート)をリッスンしているMongoDBサーバが立ち上がります. 別のコマンドプロンプトでmongo.exeを起動 この際に, exception: connect failed のように表示されなければMongoDBの起動に成功です. プログラムとつなぐ準備 大概DBをプログラムから触る場合プロバイダが必要ですが, MongoDBも例に漏れず必要です. NuGetからちゃちゃっと入手しましょう. “Official MongoDB C# driver” というプロバイダが出てくるのでインストールしましょう. これで準備完了です. MongoDBの扱い方 MongoDBを操作する場合, 通常のRDBに比較的近いように操作できます. 動作としては, MongoDBサーバと接続 データベースに接続 コレクションを取得 という流れになります. ここでいうコレクションとは, RDBでいうところのテーブルのようなものだと思ってください. この動作をプログラムで示します. [csharp] var client = new MongoClient();//データベースサーバに接続 var db = client.GetServer().GetDatabase(value);//dbの接続(ないと自動生成) var collection = db.GetCollection("values");//コレクションを取得 [/csharp] ここでいうvalueは, […]

サービスとブログを同じドメインで運用する場合,サブドメインをWAWSに割り当てる必要があります. 今回はblog.mydomain.comをCNAMEでAzure websitesに紐づける方法を説明します. 構成 さて,Webサービスを公開する際に,ドメインを取得してサービスに割り当てることと思いますが,同時に同じドメインでブログも運営したいケースがあると思います. つまり, www.mydomain.com,もしくは,mydomain.comをサービスのインスタンスに,blog.mydomain.comをブログのインスタンスをさすようにDNSを設定することになります. 今回はblog.mydomain.comがブログのインスタンスをさすような設定方法を紹介します. 作業フロー 今回の作業のフローです. ただし,ブログのアドレスがmyblog.azurewebsites.netと,DNSレジストラーより取得したドメインをmydomain.comとします. また,DNSレジストラーはお名前.comを想定しているので,DNS管理画面はお名前.comのDNS管理画面となります. Azureポータルサイトへログインする ポータルから,ブログのスケールを「無料」から「共有」に変更する DNS管理画面から表1に示すレコードを追加する DNSが反映されるまで待つ ポータルのドメインの管理からblog.mydomain.comを追加する 表1 挿入するDNSレコード ホスト名 TYPE TTL VALUE awverify.blog.mydomain.com CNAME 3600 awverify.myblog.azurewebsites.net blog.mydomain.com CNAME 3600 myblog.azurewebsites.net 作業 DNS管理画面から表1に示すレコードを追加する ポータルから,ブログのスケールを「無料」から「共有」に変更する Azureポータルサイトの設定したいWebsitesインスタンスのダッシュボードを開き,スケールタブを表示します. 図のように無料から共有にスケールを変更し,変更を保存します. DNS管理画面から表1に示すレコードを追加する お名前.comのDNS管理画面へアクセスし表1のレコードを挿入します.TTLは適度な長さに変更します. DNSが反映されるまで待つ DNSが反映されるまで待ちます.すんなり行く場合もありますが,遅い場合が多いです.気長に待ちましょう. ポータルのドメインの管理からblog.mydomain.comを追加する Azureポータルサイトの設定したいWebsitesインスタンスのダッシュボードを開き,構成タブを表示します. ページの中ほどにある「ドメインの管理」をクリックします. モーダルが現れるので,blog.mydomain.comを入力します.DNSが反映されていれば右に緑色のチェックマークが出るので右下のチェックマークで完了させます. 以上で,blog.mydomain.comからブログへアクセスできるようになります. サービスのDNS設定 www.mydomain.com,もしくは,mydomain.comをサービスのインスタンスをさすように設定する方法は様々なサイトで紹介されています. おすすめなサイトはこちら,Windows Azure Web サイトで独自ドメインを使ってみる – しばやん雑記です.

CATEGORIES