Click here to Skip to main content
15,894,106 members
Articles / Programming Languages / C#

Implementing A Data Model and Business Layer that Supports State Management

Rate me:
Please Sign up or sign in to vote.
4.58/5 (7 votes)
29 Aug 2007CPOL10 min read 51.9K   530   49  
This article describes a technique to develop business layer logical entities that have in-built state management capabilities. It focuses on how to re-use components to make development of new business logic and data modelling layers easier.

Microsoft Visual Studio Solution File, Format Version 9.00
# Visual Studio 2005
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Citrus.Core", "Citrus.Core.csproj", "{D80E7206-B1B3-49B0-8D21-255942EEAD4D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Citrus.Core.Test", "..\Citrus.Core.Test\Citrus.Core.Test.csproj", "{D7DFFAB3-955B-4AC9-8C9F-4A279C310565}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Citrus.Core.Test.Domain", "..\Citrus.Core.Test.Domain\Citrus.Core.Test.Domain.csproj", "{6C3A29B8-42CF-4965-8BF2-1C8634E42EEE}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Citrus.Core.Test.Data", "..\Citrus.Core.Test.Data\Citrus.Core.Test.Data.csproj", "{78BA9D75-ED11-448F-BAB6-F433C178D269}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Citrus.Core.Test.Model", "..\Citrus.Core.Test.Model\Citrus.Core.Test.Model.csproj", "{C44FA9F3-D16E-4599-82D9-5AFCF6BD785C}"
EndProject
Global
	GlobalSection(SolutionConfigurationPlatforms) = preSolution
		Debug|Any CPU = Debug|Any CPU
		Release|Any CPU = Release|Any CPU
	EndGlobalSection
	GlobalSection(ProjectConfigurationPlatforms) = postSolution
		{D80E7206-B1B3-49B0-8D21-255942EEAD4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{D80E7206-B1B3-49B0-8D21-255942EEAD4D}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{D80E7206-B1B3-49B0-8D21-255942EEAD4D}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{D80E7206-B1B3-49B0-8D21-255942EEAD4D}.Release|Any CPU.Build.0 = Release|Any CPU
		{D7DFFAB3-955B-4AC9-8C9F-4A279C310565}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{D7DFFAB3-955B-4AC9-8C9F-4A279C310565}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{D7DFFAB3-955B-4AC9-8C9F-4A279C310565}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{D7DFFAB3-955B-4AC9-8C9F-4A279C310565}.Release|Any CPU.Build.0 = Release|Any CPU
		{6C3A29B8-42CF-4965-8BF2-1C8634E42EEE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{6C3A29B8-42CF-4965-8BF2-1C8634E42EEE}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{6C3A29B8-42CF-4965-8BF2-1C8634E42EEE}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{6C3A29B8-42CF-4965-8BF2-1C8634E42EEE}.Release|Any CPU.Build.0 = Release|Any CPU
		{78BA9D75-ED11-448F-BAB6-F433C178D269}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{78BA9D75-ED11-448F-BAB6-F433C178D269}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{78BA9D75-ED11-448F-BAB6-F433C178D269}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{78BA9D75-ED11-448F-BAB6-F433C178D269}.Release|Any CPU.Build.0 = Release|Any CPU
		{C44FA9F3-D16E-4599-82D9-5AFCF6BD785C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{C44FA9F3-D16E-4599-82D9-5AFCF6BD785C}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{C44FA9F3-D16E-4599-82D9-5AFCF6BD785C}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{C44FA9F3-D16E-4599-82D9-5AFCF6BD785C}.Release|Any CPU.Build.0 = Release|Any CPU
	EndGlobalSection
	GlobalSection(SolutionProperties) = preSolution
		HideSolutionNode = FALSE
	EndGlobalSection
EndGlobal

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 Code Project Open License (CPOL)


Written By
Web Developer
United Kingdom United Kingdom
I work as a Technology Lead for an IT services company based in India.

Passions include programming methodologies, compiler theory, cartooning and calligraphy.

Comments and Discussions