CSLA Silverlight Video Series Index
SL01 - Introduction
00:00 Intro
00:34 CSLA framework overview
04:50 A brief history
05:33 CSLA .NET primary features
06:12 Data Binding
06:25 Validation Rules
07:18 Authorization rules
08:25 N-level undo
10:12 LINQ
11:22 Mobile objects
11:52 Abstract persistence
13:13 Who uses CSLA .NET
14:28 Which version to use
15:59 Architectural concepts behind CSLA
20:23 Silverlight architectures
21:30 Stand alone client application Overview
22:07 Solution architecture - Intro
23:44 Edge Application
24:40 Solution architecture overview for 2,3,4-tier application
26:56 Solution structure for a 4-tier model
27:34 Overview on how to set up your environment to use CSLA
29:42 Silverlight components download
31:17 CSLA download
35:10 How & where to unpack the downloaded CSLA files
37:33 Building the CSLA DLL's
41:34 Building a Silverlight project
46:10 Overview of the project structure
47:35 CSLA reference
48:43 CSLA controls
50:20 CSLA reference (Web application)
51:30 Episode Summary
SL02 - Basics
00:00 Intro
00:27 Business class structure
02:45 XAML data binding
03:07 CSLA .NET controls
08:30 Async server interaction
12:48 Basic elements of a SL application using CSLA
14:45 Client bin directory
16:26 Startup project, start page
17:47 Webservice.asmx file
18:15 Service reference & ServiceReference.ClientConfig
20:13 Business class _ TestObject.cs
21:35 "Using" statements, namespace
22:50 Class definition
23:49 Code regions for organization
26:49 Business Methods region
27:05 Business methods _ Property structuring
28:19 Business methods property _ Get and Set blocks
32:36 Business Rules region
34:28 Authorization Rules region
35:35 Authorization Rules _ Role based authorization
36:31 Authorization Rules _ Per-type authorization
37:19 Factory Methods
37:48 Factory Methods _ New Object
41:12 Factory Methods _ Get object
42:30 Data Access _ Overview
44:20 Data Access _ DataPortal Fetch
46:45 Business Object review
47:33 User Interface _ Overview
50:08 User Interface _ Data provider control
52:05 User Interface _ Data context & data binding
56:25 User Interface _ Running the application
59:02 User Interface _ Button controls
61:24 Episode Summary
SL03 - Client only Arch
00:00 Intro
00:32 Architectural models
01:40 Stand Alone architecture
02:21 Edge architecture
03:15 Demo001
05:50 Service reference
06:41 Factory Methods _ Data portal
10:50 Data Access _ Service
13:20 Data Access _ Service - get data completed event
19:04 Data Access _ Service - insert/update/delete
21:49 Data Access _ Isolated Storage
23:19 Data Access _ Isolated Storage - getting the user stores
24:40 Data Access _ Isolated Storage - reading the data
26:14 Data Access _ Isolated Storage - insert/update
28:50 Data Access _ Isolated Storage - delete
30:01 Demo002
31:25 Adding a SL class library to an existing solution
32:02 Service references & client config
35:20 Cleaning up the SL client application _ due to the location of the business object
37:31 Busy animation control
39:18 Running the application
41:20 Demo003
42:42 Solution structure
43:42 Business assembly _ TestObject class
45:20 Business assembly _ TestObjectdata class
46:27 Business assembly _ TestObjectdata - create method
48:05 Business assembly _ TestObjectdata - fetch method
49:50 Business assembly _ TestObjectdata - fetch method, Id property (breaking encapsulation)
53:30 DataAccess assembly
54:05 DataAccess assembly _ TestObjectData
55:27 Business assembly _ Editing the ObjectFactory
57:35 Episode Summary
SL04 - NTierArch
00:00 Intro
00:26 N-Tier architectural models
00:54 2 Tier application
01:41 3 Tier application
02:11 Solution structure
03:22 Demo004 client server application (3 Tier)
05:11 Business.Server
06:50 Business.Server _ references
07:36 Business.Client
08:07 Business.Client _ linked files (TestObject.cs)
12:28 Partial classes
15:15 Complier directives (alt. to partial classes)
17:32 Construction of Client and Server projects
21:10 Publish project to IIS server
22:16 Demo.Web references
23:42 WCF endpoint
26:14 Silverlight service endpoint
28:27 Binding configuration
30:29 Server configuration re-cap
30:52 Client configuration
31:58 Configure the client for WCF
35:10 Running the application
37:08 Canvas overlay _ to stop users from clicking buttons multiple times
41:00 Compression
41:59 Business.Client configuration
44:39 Business.Server configuration
46:00 configuring the client and server to use the compression classes
48:57 Observer object with a mobile factory attribute
54:49 4 Tier application
56:48 Demo005 application (4 Tier)
59:28 defining a client element inside the service model
64:42 Episode summary
SL05 - Objects
00:00 Intro
00:28 Object stereotypes
06:03 Other kinds of objects
09:25 Typical object factory class
11:00 Demo006
11:56 Navigator (SL 3 - deep linking)
15:23 Navigator Xaml
20:20 Project structure re-cap
21:42 TestObject class
23:21 Business properties
26:40 Optional RegisterProperty parameters
27:53 ProductEdit _ Business rules
29:11 Custom business rules
31:28 Bypass authorization/validation/business rule processing
33:53 Asynchronous validation rule
39:10 Server call results
40:42 Running the demo
43:10 Command object
47:25 Read/Load properties
49:34 Server code Command Object _ CheckProductId.Server
52:00 Categories editable root
53:00 Factory method (client only code)
54:04 Add new core method
56:30 Categories server only code
57:10 CategoryEdit
59:10 Checking for Children objects
61:00 Editable collection categories xaml datagrid
64:55 Buttons _ delete/Add/Save/Cancel (InvokeMethod)
67:30 Dynamic collection categories
69:49 DynamicCategories.Client.cs
70:50 DynamicCategoryEdit.Client.cs
73:48 DynamicCategoryEdit.Server.cs
76:55 Read only list object and child object
78:12 ProductList.cs
78:50 ProductList.Server.cs
79:29 ProductList.Client.cs
80:23 ProductInfo.cs (Read Only)
82:15 ProductInfo.Server.cs
83:30 Running the application
84:55 Name/value list base
86:57 CategoryList.cs
87:36 CategoryList.Server.cs
88:38 CategoryList.Client.cs
89:15 Name/value XAML custom combobox binding example
91:41 Standard combo box
92:16 Enhanced combo box
94:23 Combo box class (ComboBox.cs)
96:30 Episode Summary
SL06 - DataAccess
00:00 Intro
00:26 Data access
01:26 Data access technologies
04:11 Invocation of data access
05:30 DAL location
09:17 Data access region
09:56 Object factory class
10:52 Demo006 (DAL imbedded in BO)
12:11 TestObject.Server.cs           -  "DataPortal_..."  ado.net
14:48 TestObject.Client.cs            -  "Begin.Fetch..."  ado.net
16:33 Connection manager class
18:15 Parameterized queries
19:07 Data reader
20:47 Bypass property checks
21:57 LoadProperty
23:03 CheckRules
24:15 TestObject.Server.cs          -  "DataPortal_Insert"  ado.net
28:54 TransactionalTypes
33:42 TestObject.Server.cs          -  "dataportal_update"  ado.net
34:25 TestObject.Server.cs          -  "dataportal_deleteself"  ado.net
35:48 TestObject.Server.cs          -  "dataportal_OnDataPortalInvokeComplete"
37:20 Categories.Server.cs          -  (COLLECTION OBJECT) "dataportal_fetch"
39:03 CategoryEdit.Server.cs      -  "Child_Fetch"
40:48 Categories.Server.cs          -  (COLLECTION OBJECT) "dataportal_Update"
42:15 CategoriesEdit.Server.cs  -  "Child_Insert/Update/DeleteSelf"
44:06 OrderEdit.Server.cs            -  "Parent/Child_Fetch"
47:08 LineItems.Server.cs            -  "Child_Fetch"
51:00 OrderEdit.Server.cs            -  "Child_Insert/Update"
54:10 Running the application
55:08 ProductList.Server.cs         -  (READ ONLY OBJECT) "DataPortal_Fetch"
58:12 Demo007 (BO calls object factory)
60:03 Categroies.cs                        -  Fetch
61:50 Inherits from Csla.Server.ObjectFactory
65:40 LoadProperty/ReadProperty
66:40 CategoryEdit.cs                    -  Scope change from private to public
68:35 TestObject.cs                        -  Create
70:52 Update/Insert/Delete
72:37 Concurrency _ Optimistic, first write wins (Timestamp)
74:25 Timestamp
75:46 Timestamp Property
76:35 Scenario walk through
79:15 Demo008 (object factory pluggable DAL and Entity Framework)
79:48 Overriding default object factory interpreter
80:45 Factory loader uses web.config setting to load correct DA object
84:51 Why did we do this ?, because ...
86:33 Entity framework
89:17 Context manager
92:48 ProductEdit.cs              -  "DoInsert"
94:07 TestObject.cs               -  "DoInsert"
95:40 TestObject.cs               -  "DoUpdateReFetch"     (Method 1)
99:20 TestObject.cs               -  "DoUpdateFakeAttach"  (Method 2)
105:2 TestObject.cs               -  "DoDelete"
108:2 Episode Summary
SL07 - Security
00:00 Intro
00:30 Authentication
01:00 Supported techniques
01:00 Windows
01:45 ASP.NET Membership Provider
02:20 Custom
02:53 CSLA .NET types
03:58 ApplicationContext.User
04:28 BusinessPrincipalBase
04:45 CslaIdentity
05:11 CSLA .NET pre-built types
05:21 MembershipIdentity
05:43 WindowsIdentity
06:14 UnauthenticatedPrincipal / UnauthenticatedIdentity
06:57 Authorization
08:06 Per-type
08:31 Per-property
08:52 CSLA .NET controls
09:25 CSLADataProvider
09:47 PropertyStatus
10:30 ObjectStatus
11:00 Demo 'Authorization'
12:58 TestPrincipal
13:24 TestIdentity
15:10 TestObject
15:30 AddObjectAuthorizationRules
19:04 AddAutorizationRules
24:22 Silverlight UI
Validation Rules
25:50 CanRead, CanWrite
28:20 Rule priorities
29:22 StopProcessing rule
31:01 ProcessThroughPriority
31:50 XAML
32:29 PropertyStatus control
36:10 CSLA:InvokeMethod _ Save & canSave
37:58 Code behind _ Csla.ApplicationContext.User
40:51 Refresh Vs. Rebind
43:12 Demo 'RemotePortalWithMobileFactory' - XAML intensive, UI way of looking at things
44:55 Object status control
45:52 Details template
46:30 Running the application
47:58 Details template _ VisualStateManager
53:06 Authentication
53:23 Demo 'Membership'
54:10 ASP.net Web Site Administration Tool_Security - Manage users and roles
56:17 Page.Xaml.cs - Business.AppPrincipal.Login in UserControl_Loaded
57:00 Login Method
58:50 GetMembershipIdentity
61:13 AppPrincipal class - Serializable
65:00 Demo 'WinAuth'
66:05 Login method
66:55 Windows identity
67:07 Populate windows identity
70:07 Web.Config
71:35 authentication mode="Windows" & identity impersonate="true"
72:35 Running the application
73:20 Demo 'CustomAuth'
73:53 AppPrincipal class
74:26 AppIdentity class
76:03 If the credentials are not correct, there is no failure that causes an exception
76:43 Should be using HTTPS/SSL to hide the users credentials
77:48 Running the application
78:15 Re-iterate key points
80:12 Episode summary