読者です 読者をやめる 読者になる 読者になる

Morning Girl

Windows, C#, .NET, Dynamics CRM etc..

【Dynamics 365】【8.2新機能】サーバ間(S2S)認証を試してみた

Dynamics 365の開発者向け新機能、Server to Server (S2S)認証を試してみました。 以下のMSDNで手順とともに紹介されています。 サーバー間 (S2S) の認証を使用して Web アプリケーションを作成する チュートリアル: マルチ テナント型のサーバー間認証の…

【Azure】【Storage】【NLog】Azure Table StorageにNLogを出力してみた

前回のSendGridでNlogを飛ばすのにつづいて、 Azure Table StorageにNlogを出力するライブラリがあったので、使ってみました。 github.com (他にもhttps://github.com/harouny/NLog.Extensions.AzureTableStorageがありますね。一応違うものなのでご注意) …

【Azure】【SendGrid】【NLog】AzureのSendGridとNLogを組み合わせてエラーログをメールで飛ばしてみる

最近会社でAzureを組み合わせてなんちゃらかんちゃらとしています。 ただ、Web Appsとかでうんちゃかしているときに、ちょっと困ったのが、Log周り。 普段使い慣れているNLogを組み合わせて、もうちょっとクラウドライクに攻めらないかと思い、今回NLog+Azu…

【Dynamics CRM】【Azure】【SharePoint】Dynamics CRMのPluginからSharePoint REST APIを操作する

以前の記事でDynamics CRM PluginからAzure ADのoAuth認証を紹介しましたが、実践編?みたいな形ということで、実際にSharePointのREST APIを操作してみました。 やっていることは、基本的にAzure ADとShraePoint REST APIの使い方ですが、Dynamics CRM関連…

【VSTO】【Excel】【C#】【Dynamics CRM】Excelアドインを触ってみた

お仕事でExcel連携をやりそうになったので、以前から試してみたかったVSTOを触ってみました。ほんと、とりあえず触ってみたという感じですが。 ■Office ソリューションの開発の概要 (VSTO) https://msdn.microsoft.com/ja-jp/library/hy7c6z9k.aspx ■Excel …

【Dynamics CRM】【Azure】Dynamics CRMのPluginでAzure ADの認証を通してみた

Dynamics CRMではWeb APIとして、Azure ADの認証を通ることでアクセスできるAPIが提供されていますが、ほかのOffice365アプリケーションでもいろいろと提供されています。 Office 365 API リファレンス https://msdn.microsoft.com/ja-jp/office/office365/h…

【Dynamics CRM】【Azure】Dynamics CRMとAzure Service Busの連携 その3

前回の記事の続きです。 kageura.hatenadiary.jp なお、いろいろとごちゃごちゃしている間に、Office365勉強会でLTをやってみたりしてました。 ただ、基本的にこのBlogで書いていることのまとめです。。。 docs.com 必要なもの 以下のNugetから必要なライブ…

【Dynamics CRM】【Azure】Dynamics CRMとAzure Service Busの連携 その2

前回、Dynamics CRMとAzure Service Busの連携概要をお伝えしました。 今回は実際にDynamics CRMへAzure ServiceBusの連携設定をする手順を記載していきます。 Azure Service Bus連携の前準備:認証方式 Azure Servie Busと連携する際に認証を通す必要があり…

【Dynamics CRM】【Azure】Dynamics CRMとAzure Service Busの連携 その1

思いのほか地味(?)にて提供されている機能ですが、Dynamics CRMはAzure(のService Bus)と統合して、Plugin経由で連携することが可能です。 以下のように、「Microsoft Dynamics CRM との Azure 統合」という御大層な名前の資料があるのですが、Azureの…

【Dynamics CRM】【XrmTooling】XrmToolingを使用したDynamics CRMへの接続

出ていたのは知っていたのですが、あまり積極的に使っていなかったSDKのXrmTooling そもそもOnlineならシンプルにXrm.ClientのCrmConnectionで試す感じで(以下の記事のように)もいいじゃないと思っていたのですがー kageura.hatenadiary.jp SDKの8.0(もし…

【勉強会】dotnetConf 2016 Japanに行ってきた

dotnetConf 2016 Japanに行ってきましたので、メモ書き。 csugjp.doorkeeper.jp 基本的にはリリースされたばかりの.NET Coreが中心。 .NET Core公式 .NET - Powerful Open Source Cross Platform Development blogs.msdn.microsoft.com 他、今猛烈に押されて…

【C#】【Visual Studio】Visual Studio でJSONからクラスを生成

以前オープンなWebAPI(たしかどっかの議員だったか市議だったかが取得できる)を使って、アプリを試しに作ってみてた際に、JSONで取得したデータを格納するためのクラスを作成するのに、クソ面倒臭かったことがありました。 その後、ぷらーっとはてなを回っ…

【Dynamics CRM】【C#】【7.1新機能】UpsertRequest

Dynamics CRM 2015 Update1の新機能。続いてはもう一つの目玉機能と思っている、UpsertRequest。 SDK関係新機能の中ではとりわけわかりやすい追加機能の一つかと思います。 Requestに含めたEntityの代替キー指定で、レコードが既に存在していればUpdateを行…

【Dynamics CRM】【C#】【7.1新機能】ExecuteTransactionRequestの活用

Dynamics CRM 7.1のSDK関係新機能の目玉(と思ってる)、[ExecuteTransactionRequest]をやってみました。 Dynamics CRMのSDKを利用したアプリケーションでは、基本的にトランザクションのサポートが無く、ロールバックを考慮することが大変面倒でした。 (…

【Dynamics CRM】【C#】【7.1新機能】代替キーの使い方

Dynamics CRM 2015 Update1で結構SDK周りの拡張が行われました。 その中でも地味ながら、うれしい拡張が代替キーと思われます。 代替キー概要 Dynamics CRMのSDKを用いてレコードのUpdateを行う場合は、Guidを指定する必要がありました。 たとえば、取引先担…

【Dynamics CRM】【Plugin】【7.1新機能】Pluginトレースログ

Dynamics CRM7.1(2015SP1)からPluginのトレースログを簡単に残すことができる機能が追加されました。 今までは ・同期Pluginの場合、例外発生ダイアログが表示され、そこからエラーログをダウンロードする、 ・非同期Pluginの場合、システムジョブのPlugin…

【C#】【CsvHelper】CsvHelperによるマッピングクラスを利用したCSVファイルの取り込み

前回CsvHelperを利用しつつも、マッピング用クラスは利用せずに取り込む方法を記載しました。 【C#】【CsvHelper】CsvHelperによるマッピングを利用しないCSV取り込み - Morning Girlkageura.hatenadiary.jp 今回はマッピング用のインターフェース[CsvHelper…

【C#】【CsvHelper】CsvHelperを利用したCsvファイルの生成

CsvHelperの続きです。 今度は単純にCsvファイルの生成方法を確認してみました。 CsvHelperjoshclose.github.io 概要 csvファイルの生成はFile.Createによって行ってしまいます。 CreateTextの戻り値のStreamWriterを利用して、TextWriterオブジェクトを生成…

【C#】【CsvHelper】CsvHelperによるマッピングを利用しないCSV取り込み

Csvファイルの取り込み、書き込みでいいライブラリは無いものかと探していたところ、CsvHelperにたどり着きました。 CsvHelperjoshclose.github.io 基本的な使い方としては、データの格納クラスとマッピングするためのクラスを作成して利用するのがベターの…

【C#】【Dynamics CRM】Pluginにおけるトレースと例外処理

Dynamics CRM Pluginでの例外処理、例外の確認方法が同期・非同期などで異なるので、その点について確認していきたいと思います。 例外処理結果の違い Dynamics CRM Pluginで例外をスローすると、同期・非同期で結果の表示方法が違います。 同期であれば、We…

【C#】【Dynamics CRM】PluginにおけるPre・PostEntityImagesの利用

Dynamics CRM Pluginでは、例えばUpdateに登録したPluginの場合、ContextのInputParameterに送られてくるデータは更新されたデータのみになります。 しかしながら、シナリオによってはUpdateする前の値と比較し何かしらの処理を行いたい、もしくはUpdate後の…

【C#】【Dynamics CRM】【Azure】Azure Webサービス Webジョブで定期実行

Dynamics CRM でお客さんがやりたいことリストのトップへ常に名を連ねるものが外部データ連携だと思います。 SFA的に使うにしても、やはり何かしらのデータを外部から持ってこないと始まるものも始まらない、みたいな感じはどこでもありますね。 基本的なア…

【C#】【Dynamics CRM】PluginのContextを用いた関連レコードの作成

個人的にPluginのよくあるパターンとして、CreateMessageに設定して、作成されるレコードに関連づいたレコードを作成する、というものがある気がします。 もちろん、ワークフローでも可能なアプローチですが、例えば一括で複数件の関連レコードを作成する、…

【C#】【Dynamics CRM】PluginのContextについて

Dynamics CRM Pluginは各Messageの処理に関連付けて登録し、処理を実行します。 その実行する際に、実行ContextがPluginにパラメータとして渡ってきます。 Contextには様々な種類のデータが格納されて来ますが、そのContextの概要とContextの中で重要な位置…

【C#】【Linq to SQL】Linq to SQL によるCRUD操作

SQL ServerへのCRUD操作をちゃんと把握したく、改めて色々と調べてました。 ADO.NETによる接続ライブラリは大きく分けて3種類の模様です。 DataSet Linq to SQL Entity Framework 最初は[1.]をやろうと思って調べていたんですが、なんか色々と回りくどい、面…

【C#】【Dynamics CRM】Pluginの作成(概要)

今までいくつかのプロジェクトでDynamics CRM のPluginを作成してきたけども、認識として曖昧な部分もあったので、改めて全体的な内容を確認し直して、書き留めておきたいと思います。 Dynamics CRM におけるPluginの概要 Dynamics CRMではレコードの作成時…

【C#】【Dynamics CRM】並列処理の実行結果比較

今回はDynamics CRMで実際に並列処理結果を比べたらどうなるの? というのをやってみました。 実施方法は3種類。 ・一つ目は単純にforを回して、レコードをCreateし続けるもの。 ・二つ目は前回作成したParallel.ForによるCreate。スレッド数の制限は無し。 …

【C#】【Dynamics CRM】Parallel.Forによる並列処理

前回Dynamics CRMのExecuteMultipleRequestによる一括実行を書き留めましたが、今回は.netの並列処理の1つであるParallel.For処理方法を記載してみたいと思います。 詳しくはやっぱりDynamics CRM team Blogで実践されてますが、ここはやっぱり自分でも試し…

【C#】TPL:Parallelによる並列処理

前回Dynamics CRM のExecuteMultipleRequestによる一括処理を調べて、この次は並列処理かな! と思ったのですが、 そもそもDynamics CRMで並列処理、という前に、並列処理そのものの理解を深めないといけないな、ということで。 .NET Frameworksによる並列処…

【C#】【Dynamics CRM】ExecuteMultipleRequestによる一括実行

Dynamics CRMにおいて、C#などの外部プログラムでCUD操作を行う際、基本的に1件ずつレコードを処理する形になります。 ですが、ExecuteMultipleRequestクラスを利用することで、Dynamics CRM各Execute Messageの一括実行が可能になります。 これが意外と性能…

【C# 】【Dynamics CRM】事前バインディングのエンティティフィルタリング

前回すべてのエンティティの事前バインディング方法を記載したので、今回は特定のエンティティに絞った事前バインディングの方法を確認しておきたいと思います。 概要 Dynamics CRM SDKで提供されているサンプルコードのCrmSvcUtilExtensionsフォルダのBasic…

【C#】【Dynamics CRM】事前バインディングの手順

Dynamics CRMでは.NETプログラム(CS・VB)を作成する際、事前バインディングという手法(ツール?)を提供しています。 毎度毎度やり方を確認しているので一度ちゃんとまとめておきたいと思います。 今回はDynamics CRM Onlineにて実施。 実施環境 Windows …

【C#】【Dynamics CRM】QueryExpression によるページングの指定

Dynamics CRM から組織サービス経由で大量のデータを取得(RetrieveMultiple)する場合、標準で取得件数5000件制限が付与されています。 予めフィルターしたデータを取得するのであれば、あまり問題にはなりませんが、 5000件を超えるデータを取得することが…

【C#】Settingファイルの使い方

C#

ユーザー固有の設定情報を保存する場合はどうすればいいのか? というなんとも初歩的なところがわからなかったので、色々と調べていました。 初めはある知識だけで、app.config改変できるんじゃね!? と思っていたら、 ConfigurationManagerクラスにそんな…

【C#】【Dynamics CRM】BlukDeleteJobの作成

Dynamics CRMのデータを一括削除する必要があったので、 その辺りを調べていたのだけど手法としては3つあるかなぁと。 Dynamics CRM における削除手法 単純にservice.Delete にGuidを渡してあげる BlukDeleteJobを生成する。 ExecuteMultipleをDeleteに渡し…

【C#】【Dynamics CRM】Metadataの取得

Dynamics CRMのプライマリフィールドを調べたい! とうことで、Metadata取得周りを漁っていたのですが、随分めんどくさかったので、簡単にまとめました。 概要 まず理解する必要があるのは【MetadataFilterExpression】【MetadataPropertiesExpresion】の2つ…

【C#】【Dynamics CRM】

毎度毎度仕事でDynamics CRMへコネクションするのだけど、 毎度毎度調べ直している気がするので、接続方法を少しづつ書き留めておこうと思う。 概要 とりあえず、一番簡単にDynamics CRM Onlineへ接続する方法 CrmConnectionクラスのParseメソッドにそのまま…

【C#】C#でMDBファイルへ接続

仕事でMDBファイルへ接続して、うんちゃらかんちゃらするものがあるとのことで とりあえず簡単に接続する方法を調べた。 概要 基本的にはADO.NETでOleDbConnectionに接続文字列を渡して、Connectionを確立するらしい。 参考URL 下記サイトが様々なデータベー…

【C#】NLogでMail通知

NLogでメール通知ってどうやるんだろうなぁ。 やっぱSMTPサーバ立てないとダメかなぁと思っていたら、Gmailでできるやん! というのがあったので、やってみた。 参考 まんまだけど、下記公式Wikiを参考。 NLog/NLoggithub.com NLog Config まずNLogコンフィ…

【C#】ロギジングライブラリのNLogを使ってみた

仕事でLog出力も備えたアプリを作成する必要があったので、メジャーどころ(?)なNLogを使ってみた。 これは便利!(っていっても他のものを使ったことが無いので、比較的なことはできてないけど) 公式 NLog NLogwww.nuget.org VisualStudioであれば基本的…

【C#】CoreTweetやってみた

最近、ちょこちょことCoreTweetを試している。 よーやくプログラムをマシに触れるようになってきた気がするよ。 ■CoreTweet(日本語版GitHub) CoreTweet/CoreTweetgithub.com 一番ありがたいおまとめは、下のサイト .NET向けのTwitterライブラリ「CoreTweet…