Click here to Skip to main content
15,881,746 members
Articles / Web Development / CSS

15 Steps to Develop a Product Management System in Only a Day

Rate me:
Please Sign up or sign in to vote.
4.83/5 (51 votes)
23 Mar 2010GPL34 min read 247.7K   4.8K   163  
The article introduces how to easily develop business solutions in RapidWebDev through developing a product management system with the special requirement step by step.
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="SiteMap" targetNamespace="http://www.rapidwebdev.org/schemas/sitemap" elementFormDefault="qualified" xmlns="http://www.rapidwebdev.org/schemas/sitemap" xmlns:mstns="http://tempuri.org/SiteMapConfig.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema">
	<xs:element name="SiteMap" type="SiteMapConfig" />

	<xs:complexType name="SiteMapConfig">
		<xs:sequence>
			<xs:element name="Domain" type="SiteMapDomain" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>
						The infrastructure groups sitemap by organization domain.
						In a complex enterprise application, there typically should have multiple organization domains, e.g. "Internal Organizations" (department/branch/filiale), "Customers", "Vendors".
						We assume that there are different sitemap set for users in each organization domain.
						Take an example, the administrator of "Internal Organizations" is allowed to "Manage Customers", "Manage Vendors", "Manage Internal Users".
						But the administrator of "Customers" is allowed to "Search Ordered Products", "Manage Customer Profile" and "Manage Customer Users".
						In this example, you should configure two "Domain" elements "Internal Organizations" and "Customers".
						Then configure sitemap items "Manage Customers", "Manage Vendors", "Manage Internal Users" into the domain "Internal Organizations" and "Search Ordered Products", "Manage Customer Profile", "Manage Customer Users" into "Customers".
					</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="SiteMapDomain">
		<xs:sequence>
			<xs:element name="Item" type="SiteMapItemConfig" minOccurs="0" maxOccurs="unbounded" />
		</xs:sequence>
		<xs:attribute name="Value" type="RequiredString" use="required">
			<xs:annotation>
				<xs:documentation>The organization domain value defined in PlatformConfiguration. </xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>

	<xs:complexType name="SiteMapItemConfig">
		<xs:sequence>
			<xs:element name="Item" type="SiteMapItemConfig" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Child sitemap items of current sitemap item.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="Id" type="RequiredString" use="optional">
			<xs:annotation>
				<xs:documentation>No need to explicitly set a value here. It's used for system to generate a random value to render navigation menu.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="Type" type="SiteMapItemTypes" use="optional" default="Item">
			<xs:annotation>
				<xs:documentation>Defaults to "SimplePermission"</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="Text" type="RequiredString" use="optional">
			<xs:annotation>
				<xs:documentation>
					SiteMap item displaying text.
					The attribute value supports globalization variable as "$Namespace.ClassName.PropertyName, AssemblyName$" which allows to be rendered depends on the clients globalization setting.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="Value" type="RequiredString" use="optional">
			<xs:annotation>
				<xs:documentation>SiteMap item permission value. The sitemap item is rendered only if the user has the permission value.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="ClientSideCommand" type="RequiredString" use="optional">
			<xs:annotation>
				<xs:documentation>Client side javascript is executed when the user clicks the sitemap link.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="PageUrl" type="RequiredString" use="optional">
			<xs:annotation>
				<xs:documentation>The frame page opens a tab for the page when the user clicks the sitemap link.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="IconClassName" type="RequiredString" use="optional">
			<xs:annotation>
				<xs:documentation>
					Configure a css class name to navigation segment to render a icon before segment header text.
					An css example: ".settings { background-image:url(...); }"
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>

	<xs:simpleType name="SiteMapItemTypes">
		<xs:restriction base="xs:string">
			<xs:enumeration value="Item">
				<xs:annotation>
					<xs:documentation>
						Item means that the permission Api checks whether the user has permission value explicitly equals to sitemap value.
					</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="Separator">
				<xs:annotation>
					<xs:documentation>
						Indicates the sitemap is a separator but not a navigation menu.
					</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="RequiredString">
		<xs:restriction base="xs:string">
			<xs:minLength value="1" />
		</xs:restriction>
	</xs:simpleType>
</xs:schema>

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The GNU General Public License (GPLv3)


Written By
President TCWH
China China
I've worked as a software architect and developer based on Microsoft .NET framework and web technology since 2002, having rich experience on SaaS, multiple-tier web system and website development. I've devoted into open source project development since 2003, and have created 3 main projects including DataQuicker (ORM), ExcelQuicker (Excel Report Generator), and RapidWebDev (Enterprise-level CMS)

I worked in BenQ (8 mo), Bleum (4 mo), Newegg (1 mo), Microsoft (3 yr) and Autodesk (5 yr) before 2012. Now I own a startup company in Shanghai China to deliver the exceptional results to global internet users by leveraging the power of Internet and the local excellence.

Comments and Discussions