Assuming I should approach this functionality using XML,what I'm looking for here is; what are the specific xml and .net technologies that I need to learn about to do the job, and please provide a brief walkthrough or pseudo code to help me understand how I should approach it. Once I understand that, I'll post follow-up questions on the actual details of the code as I don't want to ask for too much in one question. This part is mainly to help me learn and understand the approach I should take.
The technologies I'm working with here are asp.net (.net 2.0) using vb and whatever XML technologies it includes, and I can use either SQL Server 2000 or SQL Server 2005 Express.
I'm building an internet application and one piece of it is a screen that allows the user to build the hierarchy or template of a manufacturing product (think cars, planes, etc..)
What I want to do is to allow the user to build the structure of individual "units of work" for each thing someone has to do to make a product. "Units of work" are basically line items that describe the parts and labor that would go into a product. Then I would like them to be able to tie a group of these "units of work" into a block and give it a name, think; "Build carburetor". Then the user could tie a bunch of these "work blocks" together to make a product. Pretty straight forward stuff, however work blocks could contain other work blocks and so on....they could be nested as far as the user would like to take it. Therefore the overall structure could be somewhat jagged. Once a product is defined I would like to be able to save that off as a template so if the user was creating another similar product they could reuse a template and edit it to match the new product.
I'm thinking that XML would be a good approach here as opposed to storing everything in relational tables as the structure could be somewhat "jagged".
I've never done anything with XML which is why I'm asking here before I get started, I know I could get this done in a relational database structure, but I'd love opinions how to approach this using XML under .net 2.0. I've bought an XML book (ASP.NET 2.0 XML) and I'm reading through it, but being so new to this technology I'm not sure what I'm really looking for. I see a lot of ways to read, write, and store XML, and I'm not sure which way I should go or where to start even.
In addition, I was thinking that perhaps I would store the descriptions and attributes of the "units of work" and the "building blocks" in data tables, and use XML as the thing that ties them all together to create a "product template. But that's not a requirement, just a thought.
I could store the XML off as text files on disk, or in the database in a big text string or I could use SQL 2005 to store them as an XML data type in the database, but I'm not sure of the pros and cons of these approaches.
To recap.
The user can define a product template.
The product template ties together a series of building blocks.
Building blocks can contain individual "units of work" (line items) or can contain other building blocks.
The user should be able to add, move, change, and delete building blocks or units of work from the template.
The product template itself should be stored off so the user can work on it, or use it as a base to create a different product template.
I'd really like to build this using the best technology for the functionality, but being new to XML, I'm just not sure!
This answer to this question is explaining to me which XML and .net technologies I need to look at and why, along with some basic structure, pseudo code, or walkthrough of how to approach it. Pseudo code would actually be great as it would help me understand the process and options of using xml.
If I'm way off base here, and you think that XML is not the best way to approach this, you may explain to me why and the alternative approach.
Once I've got that down and I understand it, I'll make separate follow-up questions to get into the actual code involved.
Thanks in advance.