NLogプロジェクトサイト: http://nlog-project.org/
はじめに
オープンソースプロジェクトは、JavaScriptやPHP、Rubyなどの軽量言語に多い傾向にあります(Javaは別ですが)。しかし、C#でもたくさんのオープンソースプロジェクトがあるのをご存知でしょうか?
そのほとんどがGitHubで公開されていて、すぐに実践的に使えるレベルのクオリティを持っています。たとえバグがあったとしても、オープンソースなので自分で修正することができます。さらに、修正したコードをコミットしてプルリクエストを出せば、コミュニティにも貢献できて一石二鳥ですね。
この記事では、C#のオープンソースプロジェクトを業務に活用したい方のために、数あるプロジェクトの中から実用的なものを紹介していきます。ぜひご一読して、業務に活用してみてください。
Json.NET
Json.NETプロジェクトサイト:http://www.newtonsoft.com/json
Json.NETレポジトリ:https://github.com/JamesNK/Newtonsoft.Json
「.NET」でJSONを扱うためのライブラリです。ASP.NET MVCのプロジェクトテンプレートに、標準でインストールされているので知っている方も多いでしょう。JSON文字列をオブジェクトに変換したり、逆にオブジェクトをJSON文字列に変換したりできます。
老舗のライブラリで、非常に安定しており、ドキュメントもしっかり書かれていてわかりやすいです。「.NET」でJSONを扱うなら定番のライブラリですね。最近は、Twitterを始めとするWeb APIからデータを取得する機会も多く、必須のライブラリとなっています。Nugetから簡単にインストールできるので便利です。
NLog
NLogプロジェクトサイト: http://nlog-project.org/
NLogレポジトリ:https://github.com/NLog/NLog/
業務でアプリケーションを開発する際には、よくログ出力が必要になります。しかし、自前でログ出力を実装するのは意外と面倒で、デバッグのためのログ出力をデバッグするはめになってしまいます。そこで、NLogなどのロギングライブラリを使うと、堅牢なログ出力が苦もなく手に入ります。同様のライブラリには、log4netがありますが、こちらよりも導入が簡単なのでおすすめです。
基本的な使い方は、Nugetからライブラリをインストールして、設定ファイルを編集し、ログ出力したい箇所に出力メソッドを追加するだけです。インストール時に、デフォルトの設定ファイルが作成されるので、ログの出力先やルールなどをXMLで設定することになります。Fatal、Error、Warn、Info、Debug、Traceの6つのレベルでのログが、同名のメソッド呼び出しによって出力できます。現在も活発に開発が行われており、続々と新機能が追加されています。
NHibernate
プロジェクトサイト: http://nhibernate.info/
レポジトリ:https://github.com/nhibernate/nhibernate-core
Javaで有名なORM(オブジェクトリレーショナルマッパー)のHibernateを、「.NET」に移植したライブラリです。データベース-オブジェクト間の入出力を受け持ちます。元々がJava実装ということもあり、APIや設定方法など”.NETらしくない”部分があります。とはいえ、Javaで実績のあるライブラリなので検討する価値はあります。
同様のライブラリには、EntityFrameworkがありますが、まだ成長途中にあり、プロジェクトによっては枯れたNHibernateの方がよい場合もあります。どちらも同じORMとはいえ、設計や方針が異なるためかなり違いがあります。気軽に変更できる部分ではないため、慎重に比較検討することをおすすめします。
iTextSharp
iTextSharpプロジェクトサイト: http://itextpdf.com/
iTextSharpレポジトリ:https://github.com/itext/itextsharp
特に、社内アプリケーションなど業務関係の開発では、PDFで帳票を出力することが多いです。PDFの帳票コンポーネントは、商用の製品がたくさんありますが、どれもそれなりのライセンス料がかかります。そのため、ちょっとしたPDFの出力ぐらいであれば、オープンソースのiTextSharpを使ってみましょう。こちらも、元々はJavaのiTextを「.NET」向けに移植したものです。
0からPDFを作成できる他、PDFのテンプレートを読み込んで追記することもできます。一般的な帳票コンポーネントとは違い、デザイナーなどはないので、すべてコードで実装する必要があります。文字や画像、線を引くなど基本的なことはできます。ただし、込み入ったデザインを作成することは困難なので、シンプルなデザインにとどめておいたほうがよいでしょう。
NUnit
NUnitプロジェクトサイト: http://www.nunit.org/
NUnitレポジトリ:https://github.com/nunit/nunit
既に知っている方も多いでしょう、ユニットテストフレームワークJUnitの「.NET版」NUnitです。最近では、TDD(テスト駆動開発)の知名度が上がってきたこともあり、ユニットテストを書くことが増えてきました。Visual Studioには標準でMSTestが搭載されていますが、JavaやAndroidでJUnitを使っているなどの理由で、使い慣れたNUnitを使いたい方もいるでしょう。幸いNUnitも拡張機能をインストールすることによって、Visual Studioのテストランナーに統合できるので、MSTestと同様にシームレスに使えます。
Math.NET
Math.NETプロジェクトサイト: http://www.mathdotnet.com/
Math.NETレポジトリ:https://github.com/mathnet
ビッグデータがバズワードになり、業務での統計情報の活用が話題になっています。統計は、従来からあるR言語やPythonを使って行うことが一般的ですが、ちょっとしたことなら使い慣れたC#でやりたいといった方もいるかと思います。
「.NET Framework」に標準で用意されているMathクラスには、高度な数学関数がないため、統計処理には力不足です。そこで、数学関数ライブラリであるMath.NETを使うことで、平均や中央値、標準偏差などの統計処理を簡単に行うことができます。ちなみに、こういった処理は、関数型言語であるF#の方が向いているので、統計に興味がある方はいっしょに学んでみるのもよいでしょう。
Git Extensions
Git Extensionsプロジェクトサイト: https://gitextensions.github.io/
Git Extensionsレポジトリ:https://github.com/gitextensions/gitextensions
マイクロソフトは、独自のソースコード管理からGitに移行しました。今ではVisual Studioに、標準でGitが同梱されるようになりましたが、組み込みのクライアントがいまいち使いづらいです。Git Extensionsは、使いやすいGUIのGitクライアントで、拡張機能も一緒に開発されているので、Visual Studioに統合するのも簡単です。VS組み込みのGitクライアントが、使いづらいと感じている方は一度試してみてはいかがでしょうか?
さいごに
GitHubによると、2015年にはC#の人気が急上昇したようです。マイクロソフトが、GitHubを本格的に使い始めたからでしょうか。C#はあまりオープンソースのイメージがない言語ですが、マイクロソフトがオープンソースに積極的になり、これからイメージも変わってくると思います。みなさんも積極的にオープンソースプロジェクトを活用していきましょう!
本ブログは、Git / Subversion のクラウド型ホスティングサービス「tracpath(トラックパス)」を提供している株式会社オープングルーヴが運営しています。
開発の効率化をしたい!もっと便利なツールを使いたい!そんなお悩みをtracpathで解決!
「tracpath(トラックパス)」は、企業内の情報システム部門や、ソフトウェア開発・アプリケーション開発チームに対して、開発の効率化を支援し、品質向上を実現します。
さらに、システム運用の効率化・自動化支援サービスも提供しています。
”つくる情熱を支えるサービス”を提供し、まるで専属のインフラエンジニアのように、あなたのチームを支えていきます。
No Comments