List of Figures

Chapter 1: Distributed Architecture

Figure 1-1: The 5- tier logical architecture
Figure 1-2: The five logical tiers running on a single machine
Figure 1-3: The five logical tiers with a separate database server
Figure 1-4: The five logical tiers with separate application and database servers
Figure 1-5: The five logical tiers as used for web applications
Figure 1-6: The five logical tiers deployed on a load-balanced web farm
Figure 1-7: The five logical tiers deployed in a secure web configuration
Figure 1-8: The five logical tiers in a secured environment with a web farm
Figure 1-9: Common locations for business logic in applications
Figure 1-10: Validation and business logic in the data-management tier
Figure 1-11: Business logic spread between the presentation and business-logic tiers
Figure 1-12: Business logic spread between the business-logic and data-access tiers
Figure 1-13: Business logic centralized in the business-logic tier
Figure 1-14: Business object composed of state, implementation, and interface
Figure 1-15: Passing a data table between the business-logic and data-access tiers
Figure 1-16: Using a business object to centralize business logic
Figure 1-17: The business-logic tier tied to the UI and data-access tiers
Figure 1-18: Business logic shared between the UI and data-access tiers
Figure 1-19: Business logic shared between the UI and data-access tiers
Figure 1-20: Calling an object by reference
Figure 1-21: Passing a physical copy of an object across the network
Figure 1-22: Passing a copy of the object to the server and getting a copy back

Chapter 2: Framework Design

Figure 2-1: Mapping the logical tiers to technologies
Figure 2-2: UML static-class diagram for the framework
Figure 2-3: UML component diagram for the framework
Figure 2-4: Relationship between the Invoice, LineItems, and LineItem classes
Figure 2-5: Class diagram showing a more complex set of class relationships
Figure 2-6: A Windows form referencing a business object
Figure 2-7: Handling an event on an object causes a back reference to the form.
Figure 2-8: Data diagram showing many-to-many relationship between tables
Figure 2-9: Class diagram showing many-to-many relationship between classes
Figure 2-10: Separation of ORM logic into a persistence object
Figure 2-11: Business object directly managing persistence to the data store
Figure 2-12: Passing a business object to and from the application server
Figure 2-13: UML static-class diagram for the framework
Figure 2-14: Framework classes directly used by business developers
Figure 2-15: Separating n-Level undo into Core.UndoableBase
Figure 2-16: Class diagram with BindableBase and BindableCollectionBase
Figure 2-17: The IsDirtyChanged event triggering a data-binding refresh
Figure 2-18: Relationship between BusinessBase and BrokenRules
Figure 2-19: The DataPortal provides a consistent entry point to the application server.
Figure 2-20: The client-side DataPortal is used by all business-object base classes.
Figure 2-21: The client-side DataPortal routes requests to the appropriate server-side DataPortal.
Figure 2-22: Class diagram showing relationships between the DataPortal classes
Figure 2-23: UML sequence diagram for the creation of a new business object
Figure 2-24: UML sequence diagram for the retrieval of an existing business object
Figure 2-25: Sending a business object to the DataPortal to be inserted or updated
Figure 2-26: DataPortal returning the inserted or updated business object to the UI
Figure 2-27: UML sequence diagram for the update of a business object
Figure 2-28: UML sequence diagram for direct deletion of a business object
Figure 2-29: Relationship between BusinessPrincipal and BusinessIdentity
Figure 2-30: BusinessIdentity is a subclass of ReadOnlyBase.
Figure 2-31: UML component diagram showing the CSLA .NET assemblies

Chapter 3: Key Technologies

Figure 3-1: Proxy-stub architecture of .NET Remoting
Figure 3-2: The proxy-stub architecture is transparent to clients and objects.
Figure 3-3: Creating the TestServer Class Library project
Figure 3-4: Creating the TestService web project
Figure 3-5: Adding a reference to the TestServer project
Figure 3-6: Adding a web configuration file to the TestService project
Figure 3-7: The WSDL returned from the TestService remoting host
Figure 3-8: Creating the TestClient project
Figure 3-9: Assemblies referenced by the TestClient project
Figure 3-10: Example result from running the TestClient application
Figure 3-11: Referencing System.Runtime.Remoting.dll
Figure 3-12: Example result from running the client application
Figure 3-13: Relationship between Invoice, LineItem, and Customer classes
Figure 3-14: Example result from running the test application
Figure 3-15: .NET AppDomain running inside a Win32 process
Figure 3-16: Enterprise Services context inside a .NET AppDomain inside a Win32 process
Figure 3-17: An object and assembly loaded into an Enterprise Services context
Figure 3-18: A normal .NET assembly loaded into an Enterprise Services context
Figure 3-19: ADO.NET data-provider classes
Figure 3-20: ADO.NET DataSet and related objects
Figure 3-21: Relationship between ADO.NET data providers and DataSet objects
Figure 3-22: ADO.NET objects used to populate a DataSet
Figure 3-23: Data flowing through a DataReader to a DataSet to a web page
Figure 3-24: Data flowing from a DataReader directly into a web page
Figure 3-25: Data flowing from a DataReader into a business object into the web page

Chapter 4: Business Framework Implementation

Figure 4-1: CSLA .NET component diagram
Figure 4-2: Creating the blank CSLA solution
Figure 4-3: Class diagram showing BindableCollectionBase and BindableBase
Figure 4-4: Adding the CSLA.Core.BindableBase project to the solution
Figure 4-5: CLSA .NET class dependencies
Figure 4-6: Adding the CSLA project to the solution
Figure 4-7: Adding a reference to CSLA.Core.BindableBase
Figure 4-8: Class diagram showing how root, child, and grandchild objects are related
Figure 4-9: Process of deleting a root object and all its children
Figure 4-10: Exposing objects through methods in BusinessBase
Figure 4-11: Edit process where objects are removed and CancelEdit() is called
Figure 4-12: Edit process where objects are removed and ApplyEdit() is called
Figure 4-13: A more complex example with nested edit method calls
Figure 4-14: Result after calling ApplyEdit()
Figure 4-15: Result after calling either CancelEdit() or ApplyEdit()

Chapter 5: Data Access and Security

Figure 5-1: Client-side DataPortal calls server-side DataPortal
Figure 5-2: Server.DataPortal depends on DataPortal_xyz() methods.
Figure 5-3: Process flow to create or load a business object
Figure 5-4: Process flow for saving a business object
Figure 5-5: Referencing the System.Runtime.Remoting assembly
Figure 5-6: Relationship between client-side and server-side DataPortal objects
Figure 5-7: Referencing CLSA.Server.DataPortal
Figure 5-8: Component dependency diagram
Figure 5-9: Referencing the DataPortal and EnterpriseServices assemblies
Figure 5-10: Referencing the ServicedDataPortal assembly
Figure 5-11: Referencing the CSLA framework projects
Figure 5-12: Creating the database
Figure 5-13: The new database shown in the Server Explorer window
Figure 5-14: Naming the Users table
Figure 5-15: Adding an index on the Username column
Figure 5-16: Setting up a one-to-many relationship between Users and Roles
Figure 5-17: Setting security for the ASPNET user
Figure 5-18: Allowing the ASPNET user to execute the Login stored procedure
Figure 5-19: The SecurityDB Database project in Solution Explorer
Figure 5-20: The scripting filter dialog in Visual Studio .NET
Figure 5-21: The SQL script files in the SecurityDB database project
Figure 5-22: Example users and passwords in the Users table
Figure 5-23: Example roles assigned to users

Chapter 6: Object-Oriented Application Design

Figure 6-1: Possible class diagram for the ProjectTracker application
Figure 6-2: Revised class diagram for the ProjectTracker application
Figure 6-3: Assignment class with borrowed data fields from Resource
Figure 6-4: Assignment class with borrowed data fields from Project
Figure 6-5: Assignment class with combined set of borrowed fields
Figure 6-6: Using inheritance to manage Assignment data
Figure 6-7: Revised class diagram for the ProjectTracker application
Figure 6-8: ProjectResource using Resource and ProjectAssignment using Project
Figure 6-9: Read-only collection objects ProjectList and ResourceList
Figure 6-10: Final class diagram for the ProjectTracker application
Figure 6-11: Business objects subclassing BusinessBase
Figure 6-12: Business objects subclassing BusinessCollectionBase
Figure 6-13: Read-only list objects subclassing ReadOnlyCollectionBase
Figure 6-14: RoleList subclassing NameValueList
Figure 6-15: PTracker database in Server Explorer
Figure 6-16: Design of the Roles table
Figure 6-17: Example project roles in the Roles table
Figure 6-18: Design of the Projects table
Figure 6-19: Design for the Resources table
Figure 6-20: Design for the Assignments table
Figure 6-21: Adding the tables to the designer
Figure 6-22: Creating a relationship between Assignments and Projects
Figure 6-23: Database diagram in VS .NET
Figure 6-24: Adding the PTrackerDB project
Figure 6-25: Dialog box that controls what's copied to the database project
Figure 6-26: Setting database security for the ASP.NET account
Figure 6-27: Granting permissions to the ASP.NET account

Chapter 7: Business Object Implementation

Figure 7-1: Root object creation process
Figure 7-2: Process to create a business object
Figure 7-3: Child object creation process
Figure 7-4: Process to create a child object
Figure 7-5: Process to load an object with data from the database
Figure 7-6: Process of loading child-object data from the database
Figure 7-7: How business objects are added or updated
Figure 7-8: Process of adding or updating child objects
Figure 7-9: Process of immediate deletion of objects
Figure 7-10: Comparing simple-root vs. collection-root objects
Figure 7-11: ProjectTracker application static class diagram
Figure 7-12: Referencing the CSLA assemblies
Figure 7-13: Project class subclasses BusinessBase

Chapter 8: Windows Forms UI

Figure 8-1: Referencing the ProjectTracker.Library and CSLA assemblies
Figure 8-2: Adding the App.config file to the project
Figure 8-3: Main menu layout
Figure 8-4: Setting the names of the menu items
Figure 8-5: Setting up the Status panel
Figure 8-6: Setting up the User panel
Figure 8-7: Layout of the Login form
Figure 8-8: Layout of the ProjectSelect form
Figure 8-9: Layout of the ProjectEdit form
Figure 8-10: Adding a ListBox to display broken rules
Figure 8-11: Example of the ProjectSelect form in use
Figure 8-12: Example of the ProjectEdit form in use
Figure 8-13: Layout of the ResourceSelect form
Figure 8-14: Layout of the ResourceEdit form
Figure 8-15: Example of the ResourceSelect form in use
Figure 8-16: Example of the ResourceEdit form in use

Chapter 9: Web Forms UI

Figure 9-1: The three basic data-access models
Figure 9-2: Data flowing directly from a DataReader into a web form
Figure 9-3: Data is loaded into an intermediate object, followed by the web form.
Figure 9-4: Load-balanced web-server farm with centralized state server
Figure 9-5: Load-balanced web farm with centralized state database
Figure 9-6: Adding the PTWeb project
Figure 9-7: Referencing the CSLA and ProjectTracker.Library assemblies
Figure 9-8: Layout of the Default.aspx page
Figure 9-9: Layout of the login.aspx page
Figure 9-10: Example display from default.aspx
Figure 9-11: Layout of the projects.aspx web form
Figure 9-12: Properties for the Project ID column
Figure 9-13: Properties for the Project Name column
Figure 9-14: Properties for the Remove column
Figure 9-15: Choosing the Colorful 2 formatting scheme
Figure 9-16: Example display from the project.aspx web form
Figure 9-17: Layout of the ProjectEdit.aspx web form
Figure 9-18: DataBindings dialog box for txtID
Figure 9-19: Example display from the ProjectEdit.aspx page
Figure 9-20: Layout of the ChooseRole.aspx web form
Figure 9-21: Example display from the ChooseRole.aspx page
Figure 9-22: Layout of the AssignResource.aspx web form
Figure 9-23: Example output from the AssignResource.aspx page
Figure 9-24: Layout of the Resource.aspx web form
Figure 9-25: Example output from the Resources.aspx page
Figure 9-26: Layout of the ResourceEdit.aspx web form
Figure 9-27: DataBindings dialog box for txtID
Figure 9-28: Example output from the ResourceEdit.aspx page
Figure 9-29: Layout of the AssignToProject.aspx web form
Figure 9-30: Example output from the AssignToProject.aspx page

Chapter 10: Web-Services Interface

Figure 10-1: Accessing our application from Windows and Web Forms interfaces
Figure 10-2: Accessing our application from another application through a web-service interface
Figure 10-3: XML messages are passed to and from the service
Figure 10-4: Web-service interaction is abstracted behind a proxy object
Figure 10-5: Exposing a service from every tier in our application
Figure 10-6: Accessing the data through a web service
Figure 10-7: N-tier logical architecture with a web-services interface
Figure 10-8: Directly returning a business object's data to the consumer
Figure 10-9: Using a facade to define the data returned to the consumer
Figure 10-10: Creating the PTService project
Figure 10-11: Referencing the CSLA and ProjectTracker.Library assemblies
Figure 10-12: Adding the ProjectTracker web service
Figure 10-13: Example output from the ProjectTracker test web page
Figure 10-14: WSDL for the GetResourceList method
Figure 10-15: Adding a web reference for ProjectTracker.asmx
Figure 10-16: Security exception due to lack of valid credentials

Chapter 11: Reporting and Batch Processing

Figure 11-1: Static class diagram of batch-queue subsystem
Figure 11-2: Activity diagram for submitting a batch job
Figure 11-3: Relationship between the service and batch entries
Figure 11-4: Composition of a BatchEntry object
Figure 11-5: BatchEntries is a collection of BatchEntryInfo objects
Figure 11-6: Two ways for a client to submit a work job to the queue
Figure 11-7: Adding references to the BatchQueueTest project
Figure 11-8: Adding an Installer class to the project
Figure 11-9: Use the Services control panel to start or stop the service.
Figure 11-10: Completed batch job log entry
Figure 11-11: Data sources supported by ObjectAdapter
Figure 11-12: Process of getting an IList from which to copy the data
Figure 11-13: Using the DataSet designer to define our report data
Figure 11-14: Example Crystal Reports layout for a ProjectReport
Figure 11-15: A Crystal Reports report generated based on business objects

NetRun

Figure A-1: The Start image from book Run dialog box to run an application from a URL
Figure A-2: Running an application using NetRun
Figure A-3: Process flow followed by the NetRun application
Figure A-4: URL for a .NET application
Figure A-5: .NET Framework Configuration tool


Expert C# Business Objects
Expert C# 2008 Business Objects
ISBN: 1430210192
EAN: 2147483647
Year: 2006
Pages: 111

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net