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

からめもぶろぐ。

SharePoint が得意なフレンズなんだね!すごーい!

C#

CSOM で実行される Web リクエストを取得する

CSOM では内部的に Web リクエストを発行していて、どういうリクエストが流れているかを見るためには Fiddler などのツールを使わないといけないのですが、とても面倒くさいので、コードから取得できるようにしてみました。ちなみに ExecutingWebRequest イ…

ASP.NET MVC の Repository パターン再考

ASP.NET MVC が出始めた頃、Repository パターンが話題になりました。その後、あまり Repository パターンについての議論がされていないようなので、改めて Repository パターンについて考えてみたいと思います。 Repository パターンの基本 Repository パタ…

UWP から SharePoint Online REST API を実行する

UWP から SharePoint Online REST API を実行するサンプルを作りました。出退勤の打刻を SharePoint リストに送るプログラムです。OAuth 2.0 で認証しているので認証から API 実行までの流れが確認できると思います。なお access_token の更新には対応してい…

SharePoint 2013 REST API を対話なしで認証する

SharePoint 2013 では REST API が使用できるのですが、MSDN ではプロバイダー ホスト型 SharePoint アドインから OAuth 認証で使用する場合の説明がほとんどです。例えば、バッチ プログラムのような、特定のユーザーを指定して対話なしでアプリケーション…

SPWeb.AllowUnsafeUpdates は使うべきではない

SPSecurity.RunWithElevatedPrivileges メソッドを使うときに必ず一緒にお世話になる SPWeb.AllowUnsafeUpdates プロパティですが、エラー回避のために何も考えずに使っている例が多々あると思います。何も考えずに使っているこのコードが何をしているのかを…

続・WindowStyle を None にしてカスタムウィンドウを作ってみる

前回の記事の続きです。Win32 API を駆使してカスタム ウィンドウの動作を制御していたのですが、実はまだ問題がありました。実は、最小化または最大化したときにアニメーションが行われないのですよね。文字だけだと伝えにくいのですが、パッと出てパッと消…

WindowStyle を None にしてカスタムウィンドウを作ってみる

WPF でタイトル バーをカスタマイズしたいということはあるのですが、割と簡単にできそうな WindowStyle プロパティを None に指定する方法があまりに残念であることと、WindowChrome クラスもあまり精度が高くないようなので (ちょっと試した感じではリサイ…

カスタム属性の拡張メソッドが追加されている件について

C#

Twitter で以下のようにつぶやいていたのですが、.NET 4.5 からカスタム属性を取得するためのジェネリックな拡張メソッドが追加されました。http://t.co/BY4eIGPsqM こんなのが追加されてたんだ— からめも (@karamem0) March 1, 2013これまでは var asm = As…

LINQ to Entities クイック リファレンス

この記事は「C# Advent Calendar 2012」の参加記事です。atnd.orgLINQ to Entities におけるクエリの記述方法は LINQ to Entities でのクエリ に記載があるのですが「SQL ではこうやりたいのに!」というときの逆引きリファレンスがなかったので、まとめてみ…

Json メソッドで POCO エンティティを返すかとどうか

ちょっとこんなやり取りがありました。Json() メソッドで返そうとしたときに、POCOエンティティが循環参照してるとクライアント側に何も帰ってこないのも割合困る。今は無理やりnull突っ込んでるけど。— からめも (@karamem0) September 23, 2012ちなみに、…

knockout.js でページの再読み込みに対応する

前回の記事の続きです。blog.karamem0.jp前回の状態だと、ページを再読み込みすると、検索結果がすべて消えて初期状態に戻ってしまうという問題点がありました。それではやはり使い勝手が悪いので、対応を考えてみたいと思います。 簡単に言ってしまうと、デ…

knockout.js を使って検索をしてみる

前の記事とだいぶ時間が空いてしまいましたが、引き続き knockout.js を弄ってみます。blog.karamem0.jp今回は検索をしてみたいと思います。 サンプル コード Models/Person.cs 簡単な Model を作成します。 public class Person { public string Id { get; …

knockout.js を使ってページングを実装してみる

knockout.js がいい感じに便利で楽しいので、いろいろ試してみました。今回はページングを実装してみます。 サンプル コード Shared/_Layout.cshtml knockout.js を呼んでおくのを忘れずに。knockout.js は NuGet で入手できます。 <html> <head> <title>@ViewBag.Title</title> <script src="@Url.Content("~/Scripts/jquery-1.7.2.min.js")" type="text/javascript"></script> </head></html>

XmlSerializer と DefaultValueAttribute は一緒に使うとよくないことが起きるらしい

C#

いまさらなのですが DefaultValueAttribute 属性が付けられたフィールドを XmlSerializer でシリアライズすると、XML に値が書き込まれないらしいです。しかも、デシリアライズするときも何もしてくれないので、データが消えてしまいます。再現するコードを…

SharePoint 2010 で人の検索ボックスを使って簡易メール フォームを作ってみる

SharePoint のコントロールで飛び抜けて使い勝手がいいのは「人の検索ボックス (PeopleEditor)」と呼ばれるコントロールです。Active Directory のユーザーやグループを検索してくれる優れものです。見た目は以下のような感じで、標準でもいろいろなところで…

DirectorySearcher の PageSize と SizeLimit をいじってみる

C#

前回の記事の続きです。blog.karamem0.jpActive Directory のすべてのユーザーオブジェクトを列挙する次のようなコードを考えてみます。 public static class Program { private static void Main(string[] args) { using (var entry = new DirectoryEntry("…

System.DirectoryServices 名前空間を使って LDAP 検索をする

C#

System.DirectoryServices.dll を参照設定すると LDAP (Lightweight Directory Access Protocol) による Active Directory 検索ができるようになります。やってみたらそれほど難しくはありませんでした。 ユーザーの検索をしてみる domain.local ドメインに…