Aspose.tasks vs VSTOを使用して新しいタスクを追加します

Microsoft Project(MPP/XML)ファイルを使用している間、プロジェクトに新しいタスクを追加する必要があることがよくあります。この記事では、.NETアプリケーションにMPPファイルをロードし、従来のVSTO Interop APIと.NETライブラリ用の最新のAsopsion.Tasksを使用して新しいタスクを追加する方法を示しています。

概要

自動化されたプロジェクト計画ワークフローには、プログラムでタスクをプログラム的に管理する機能が不可欠です。この記事では、2つのアプローチを使用して、新しいタスクをMicrosoftプロジェクトファイルに挿入する方法を示しています。

どちらの例も、同じシナリオを示しています - " task1 "という名前の単一のタスクを追加して、構文、依存関係、プログラミングモデルの違いを明確に理解するのに役立ちます。

VSTOを使用してタスクを追加します

次のコードは、VSTO(オフィス用のビジュアルスタジオツール)を使用して、既存の「.mpp`ファイルに新しいタスクを追加する方法を示しています。このアプローチはCOM Interopに依存しており、Microsoftプロジェクトをインストールし、マシンに適切にライセンスする必要があります。

 1Microsoft.Office.Interop.MSProject.Application projectApplication = new Application();
 2
 3object missingValue = System.Reflection.Missing.Value;
 4
 5projectApplication.FileOpenEx(@"C:\Project1.mpp",
 6    missingValue, missingValue, missingValue, missingValue,
 7    missingValue, missingValue, missingValue, missingValue,
 8    missingValue, missingValue, PjPoolOpen.pjPoolReadOnly,
 9    missingValue, missingValue, missingValue, missingValue,
10    missingValue);
11
12Microsoft.Office.Interop.MSProject.Project project = projectApplication.ActiveProject;
13
14Microsoft.Office.Interop.MSProject.Task task;
15task = project.Tasks.Add("Task1", 1);
16
17task.Start = "8/23/2012";
18task.Duration = 3 * 8 * 60;  // Duration in minutes (3 working days * 8 hours/day * 60 minutes)
19task.Text1 = "Task1";
20
21projectApplication.FileCloseAll(Microsoft.Office.Interop.MSProject.PjSaveType.pjSave);

注意事項

Aspose.Tasks for .NET を使用してタスクを追加する

一方、以下のコードは Aspose.Tasks for .NET を使用して同じタスクを実行する方法を示しています。この API は Microsoft Project とは独立して動作し、Web アプリケーション、サービス、コンテナー化された環境に最適です。

 1Project project = new Project("New Project.mpp");
 2
 3Task task = project.RootTask.Children.Add("Task1");
 4task.Set(Tsk.ActualStart, DateTime.Parse("23-Aug-2012"));
 5
 6// Set duration in hours
 7task.Set(Tsk.Duration, project.GetDuration(24, TimeUnitType.Hour));
 8task.Set(Tsk.DurationFormat, TimeUnitType.Day);
 9
10project.Save("AddNewTask_out.xml", SaveFileFormat.XML);

ハイライト

概要

側面VSTO / 相互運用性Aspose.Tasks for .NET
MS Project が必要✅ はい❌ いいえ
依存関係の種類COM (Microsoft.Office.Interop.MSProject)純粋な .NET
クロスプラットフォームサポート❌ Windows のみ✅ Windows、Linux、macOS (.NET 経由)
導入適合性⚠ デスクトップ/サーバーのみ✅ Web、コンテナー、サーバーレス
コードの複雑さ⚠ 高 (冗長、定型コード多用)✅ シンプルで表現力豊か

Aspose.Tasks は、Microsoft Project 形式を扱うための、最新かつスケーラブルでメンテナンス性の高いソリューションを提供します。VSTO から移行することで、導入の柔軟性、信頼性、そして開発者にとってより使いやすい API サーフェスが向上します。

さらに詳しく知りたい場合は、以下のページをご覧ください。

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.