Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

チーム開発でもパッケージ管理を容易に! NuGetを活用してライブラリを効果的に配布しよう

実例に学ぶチーム開発におけるNuGet導入のすすめ 第1回

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2015/06/17 14:00

 NuGetを使うと多くのOSSライブラリを手軽に導入できるため、非常に便利です。しかし、NuGetの真髄はライブラリの導入ではなく、「パッケージ管理」にあります。本稿では、チーム開発における諸問題を解決するために、NuGetがどのように使えるか、実例を元に紹介していきます。初回はチーム開発におけるライブラリ配布の問題点を、NuGetを使ってどのように解決できるかを紹介します。

目次

はじめに

 NuGetが2011年に公開されてから4年経ち、今ではOSSライブラリやマイクロソフト社の公式ライブラリの配布方法として、すっかり定着しました。そのおかげで、我々は新たにアプリケーションを作成する際、まずはNuGet Galleryから便利なライブラリをインストールするところから始めるようになりました。

 ところが組織内の開発に目を移すと、独自ライブラリのdllファイルをファイルサーバーやバージョン管理システム(VCS)のリポジトリで共有する、昔ながらの方法をいまだに多く見ます。これらのやり方では、ライブラリのバージョンアップや配布の際、しばしば問題が起こることもあります。

 そこで本稿では実例を紹介しながら、これらの問題に対してNuGetを活用することでどのように対処できるのか紹介していきます。

 初回の今回は、チーム開発でのライブラリを効果的に配布する方法を紹介します。

本稿の目的

  • チーム開発でこそNuGetを使用すべきということを理解してもらう
  • dll直接配布とNuGet配布を対比してメリットを理解してもらう
  • NuGetの活用法を、実例をもとに理解してもらう

対象読者

  • NuGetを使ったことがある人
  • 組織内でライブラリを管理する人
  • チームの開発環境、プロセスの整備を行う人

対象範囲外

 本稿では以下の事項については説明範囲外とします。参考資料1)~3)のページ等を参照し、事前にやり方を把握しておいてください。

  • NuGetの使い方
  • NuGetパッケージの作成方法
  • NuGetのプライベート・リポジトリの利用方法

ケース1:ライブラリ配布の煩雑さを解消する

 システム開発をチームで行う場合、そのシステムに合わせて独自にライブラリを作成することがよくあります。例えば、システムのアーキテクチャを支える「基盤」部分や、複数の機能から使われる業務ロジックなどを提供するものです。

 これらの独自ライブラリをチームで共有するためには、各々の開発者にライブラリのdllファイルを配布しなければなりません。

 NuGetを使わない従来のdllファイル配布手順は、一例として次のような運用になります(図1)。

図1:dllを直接配布する
図1:dllを直接配布する

1. 提供者がライブラリを共有フォルダーにアップする

 ライブラリ開発者の手によって、最新のライブラリをファイルサーバーやWebサーバー等の共有フォルダーにアップします。

2. 利用者がdllファイルを各自のライブラリ用フォルダーにコピーする

 利用者は1.でアップされたライブラリをコピー、ダウンロードし、各自のライブラリ用フォルダーに配置します。それは例えば次のような構成となります。

(root)  システム開発ルートフォルダー
 |
 +- lib ライブラリ用フォルダー
 |
 +- src ソースファイル用フォルダー

3. 利用者が2.で配置したライブラリを参照設定する

 Visual Studioで自分が担当とする機能のソリューションを開き、ソリューションに含まれる各プロジェクトにて、2.でlibフォルダーに配置したdllファイルの参照設定を行います。この時、libフォルダーは相対パスで指定することが多いです。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 山田 祥寛(ヤマダ ヨシヒロ)

    静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト」代表。 主な著書に「入門シリーズ(サーバサイドAjax/XMLD...

  • WINGSプロジェクト 高野 将(タカノ ショウ)

    <WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2017年5月時点での登録メンバは52名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂き...

バックナンバー

連載:実例に学ぶチーム開発におけるNuGet導入のすすめ
All contents copyright © 2005-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.5