SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

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

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

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

  • X ポスト
  • このエントリーをはてなブックマークに追加

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

  • X ポスト
  • このエントリーをはてなブックマークに追加

はじめに

 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フォルダーは相対パスで指定することが多いです。

次のページ
dll直接配布の問題点

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
実例に学ぶチーム開発におけるNuGet導入のすすめ連載記事一覧
この記事の著者

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

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

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

<個人紹介>新潟県長岡市在住の在宅リモートワークプログラマー。家事や育児、仕事の合間に長岡IT開発者勉強会(NDS)、Niigata.NET、TDDBCなどのコミュニティに関わったり、Web記事や書籍などの執筆を行ったりしている。著書に『アプリを作ろう! Visual C#入門 Visual C# 2017対応』(日経BP社、2017)など。<WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/8735 2015/06/17 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング