Crear recursos y vincular con tareas
Mientras trabaja con archivos MPP, es posible que deba crear recursos y vincularlos a tareas de su proyecto. Este artículo demuestra cómo cargar archivos MPP en sus aplicaciones .NET y asignar recursos a las tareas utilizando tanto vsto como aspose.tasks para .net.
Introducción
En la programación de proyectos, la asociación de recursos con tareas permite la planificación de la carga de trabajo, la estimación de costos y el seguimiento del progreso. Los recursos generalmente representan personas, equipos o materiales, y su asignación adecuada es clave para el análisis significativo del proyecto.
Este artículo muestra cómo mediante programación:
- Agregue nuevos recursos a un archivo de proyecto de Microsoft.
- Asigne esos recursos a las tareas.
La funcionalidad se demuestra utilizando tanto la interoperación de VSTO Legacy como el aspositivo moderno. Tasks para la API .NET.
Crear recursos y enlaces a tareas utilizando vsto
Para crear recursos y vincularlos a tareas utilizando Microsoft Office Intop:
- Crea un proyecto Visual Studio.
- Agregue una referencia a Biblioteca de objetos del Proyecto Microsoft 12.0 Desde la pestaña Com.
- Import
Microsoft.Office.interop.msproject
. - Use la muestra de código a continuación.
Las capturas de pantalla antes y después muestran la estructura del proyecto en Gantt y vistas de recursos.
📎 Archivo de entrada: Vista del gráfico Gantt
📎 Archivo de entrada: Vista de hoja de recursos
Ejemplo de código VSTO
1Microsoft.Office.Interop.MSProject.Application projectApplication = new Application();
2object missingValue = System.Reflection.Missing.Value;
3
4projectApplication.FileOpenEx(@"SampleProject.mpp",
5 missingValue, missingValue, missingValue, missingValue,
6 missingValue, missingValue, missingValue, missingValue,
7 missingValue, missingValue, PjPoolOpen.pjPoolReadOnly,
8 missingValue, missingValue, missingValue, missingValue,
9 missingValue);
10
11Microsoft.Office.Interop.MSProject.Project project = projectApplication.ActiveProject;
12
13int iResourceId = 1;
14
15foreach (Task tsk in project.Tasks)
16{
17 string developer = "Developer0" + iResourceId;
18 project.Resources.Add(developer, iResourceId);
19 tsk.Assignments.Add(tsk.ID, iResourceId, missingValue);
20 iResourceId++;
21}
22
23projectApplication.FileCloseAll(Microsoft.Office.Interop.MSProject.PjSaveType.pjSave);
Output file: Gantt chart view
Output file: Resource sheet view
Notas
- Los recursos se añaden secuencialmente y se asignan por tarea.
- El método
Assignments.Add
requiere identificadores de tareas y recursos. - La interoperabilidad COM requiere una gestión cuidadosa del ciclo de vida y de las referencias.
Crear recursos y vincularlos a tareas con Aspose.Tasks para .NET
Para lograr lo mismo con Aspose.Tasks:
- Cree un proyecto de Visual Studio.
- Agregue una referencia a Aspose.Tasks a través de la pestaña .NET.
- Importe el espacio de nombres
Aspose.Tasks
. - Utilice el código de ejemplo que se proporciona a continuación.
1Project project = new Project("New Project.mpp");
2
3// Declare ChildTasksCollector class object
4ChildTasksCollector collector = new ChildTasksCollector();
5
6// Use TaskUtils to get all children tasks in RootTask
7TaskUtils.Apply(project.RootTask, collector, 0);
8
9// Define Resources
10for (int i = 0; i <= 4; i++)
11{
12 // Add resource to project
13 Resource newResource = project.Resources.Add("Developer0" + i);
14 newResource.Set(Rsc.Type, ResourceType.Work);
15
16 // Define assignment
17 ResourceAssignment newResourceAssignment = project.ResourceAssignments.Add((Task)collector.Tasks[i], newResource);
18}
19
20project.Save("CreateResourcesAndLinkToTasks_out.mpp", SaveFileFormat.MPP);
Aspectos destacados
- Los recursos se añaden mediante el método
project.Resources.Add
. - Las asignaciones se vinculan a las tareas mediante
project.ResourceAssignments.Add(task, resource)
. - La API es concisa, completamente administrada y compatible con entornos de servidor.
Tabla comparativa
Feature | VSTO / Interop | Aspose.Tasks for .NET |
---|---|---|
Microsoft Project required | ✅ Yes | ❌ No |
Platform support | 🖥 Windows only | ✅ Cross-platform |
Deployment-friendly | ❌ Requires Office runtime | ✅ Self-contained .NET |
API verbosity | ⚠ High | ✅ Minimal and intuitive |
Assignment method | Assignments.Add(taskID, resourceID) | ResourceAssignments.Add(task, res) |
Output file format flexibility | Limited | ✅ MPP, XML, PDF, HTML, etc. |
Resumen
Crear y asignar recursos es un paso clave para desarrollar un plan de proyecto realista y rastreable. Si bien VSTO ofrece acceso nativo al modelo de objetos de Microsoft Project, presenta limitaciones de portabilidad, escalabilidad y complejidad del código.
Aspose.Tasks para .NET proporciona una API de alto nivel que permite una gestión eficiente de recursos en archivos MPP, sin necesidad de instalar Microsoft Project. Esto lo convierte en la solución ideal para aplicaciones web, servicios y cargas de trabajo .NET multiplataforma.
Para escenarios relacionados, consulte: