Learn your way! Get started

Dev Apps C# 2008: Enterprise, Mobile, and Security

with experts Ken Getz, Robert Green


Course at a glance

Included in these subscriptions:

  • Dev & IT Pro Video
  • Dev & IT Pro Power Pack

Release date 10/24/2008
Level Intermediate
Runtime 12h 23m
Closed captioning N/A
Transcript N/A
eBooks / courseware Included
Hands-on labs Included
Sample code Included
Exams Included
Platform Internet Explorer Only


Enterprise Solutions

Need reporting, custom learning tracks, or SCORM? Learn More



Course description

This course moves your development skills even further beyond the basics, starting with learning how to extend Visual Studio 2008 and handling issues you will encounter with multiple versions of assemblies and applications. You will learn to create and debug Windows services, and how to create and test applications for Windows Mobile devices. You will become expert working with XML, reading and writing data using the XML DOM and the XML reader/writer classes. Visual Studio 2008 adds new data-related features—you will learn about these new features, and also how to create new custom controls, secure applications, and create setup applications so you can deploy your solutions. You will finish by learning how to analyze code at runtime using attributes and reflection, and how to use the new Visual Studio 2008 client application services.

Learning Paths

This course is part of the following LearnNowOnline SuccessPaths™:
Building Windows Applications

Meet the experts

Ken Getz is a featured instructor for several of our Visual Studio courses. He is a Visual Basic and Visual C# expert and has been recognized multiple times as a Microsoft MVP. Ken is a seasoned instructor, successful consultant, and the author or co-author of several best-selling books. He is a frequent speaker at technical conferences like Tech-Ed, VSLive, and DevConnections and he has written for several of the industry's most-respected publications including Visual Studio Magazine, CoDe Magazine, and MSDN Magazine.

Robert Green is a Visual Studio expert and a featured instructor for several of our Visual Basic and Visual C# courses. He is currently a Technical Evangelist in the Developer Platform and Evangelism (DPE) group at Microsoft. He has also worked for Microsoft on the Developer Tools marketing team and as Community Lead on the Visual Basic team. Robert has several years of consulting experience focused on developer training and is a frequent speaker at technology conferences including TechEd, VSLive, VSConnections, and Advisor Live.

Course outline



Module 1

Item Templates (27:26)
  • Introduction (02:41)
  • Overview (00:55)
  • Creating an Item Template (00:28)
  • Demo: Create a Template (09:24)
  • Managing Item Templates (02:35)
  • Contents Of Item Template File (00:53)
  • Modifying A Template (01:12)
  • Demo: Modifying A Template (08:41)
  • Summary (00:34)
Project Templates (21:53)
  • Introduction (00:51)
  • Templates (00:18)
  • Creating a Project Template (00:16)
  • Managing Project Templates (01:37)
  • Contents of Template File (00:45)
  • Organizing Project Templates (01:19)
  • Demo: Project Template (15:50)
  • Summary (00:53)
Code Snippets (17:27)
  • Introduction (00:57)
  • Snippets Overview (01:08)
  • Using Code Snippets (00:32)
  • Managing Code Snippets (01:02)
  • Creating and Modifying (00:45)
  • Demo: Snippets (11:52)
  • Summary (01:08)

Module 2

Macros (18:29)
  • Introduction (00:54)
  • Using Macros (01:01)
  • Recoding a Macro (00:24)
  • Running a Macro (00:10)
  • Visual Studio Macros IDE (00:13)
  • Demo: Macros (04:42)
  • Properties In DTE Interface (00:52)
  • TextSelection Interface (00:40)
  • Saving Macros (00:34)
  • Macro Projects (00:45)
  • Demo: Saving Macros (07:36)
  • Summary (00:32)
Private Assemblies (25:01)
  • Introduction (01:05)
  • Assemblies (00:50)
  • Version Numbers (00:48)
  • How CLR Locates Assemblies (00:41)
  • Demo: Assembly Manifest (03:02)
  • How CLR Locates Assemblies (01:19)
  • Private Assemblies (01:14)
  • Using Configuration Files (01:03)
  • Demo: Private Assemblies (14:03)
  • Summary (00:52)
Strong Naming (18:42)
  • Introduction (00:50)
  • Strong Naming Assemblies (01:44)
  • Demo: Strong Naming (02:01)
  • Demo: Sign the Assembly (08:14)
  • Demo: Versioning (05:03)
  • Summary (00:49)

Module 3

Shared Assemblies (10:27)
  • Introduction (01:03)
  • Overview (01:19)
  • Global Assembly Cache (00:49)
  • References Assemblies (01:05)
  • Demo: Shared Assemblies (04:53)
  • Summary (01:15)
Windows Services (19:15)
  • Introduction (00:54)
  • Introducing Window Services (00:48)
  • Windows Services and .NET (00:36)
  • Things to Consider (02:01)
  • Steps for Building Services (00:28)
  • Demo: Simple Windows Serv (13:53)
  • Summary (00:33)
File Watcher Service (22:01)
  • Introduction (01:06)
  • FileWatcher (00:59)
  • FileSystemWatcher Class (01:38)
  • Event-Handling Code (00:10)
  • OnStart Event Procedure (00:12)
  • Debugging Your Service (01:24)
  • Demo: FileWatcher Service (08:04)
  • Passing Parameters (00:54)
  • Demo: Debugging Service (05:26)
  • What"s Next? (01:20)
  • Summary (00:45)

Module 4

Device Development (27:40)
  • Introduction (00:48)
  • .NET Compact Framework (01:50)
  • VS Devices Development (01:06)
  • Device Emulators (01:10)
  • Demo: Device Development (14:04)
  • Compact Framework Classes (01:57)
  • Demo: Status Namespace (06:11)
  • Summary (00:31)
Mobile Database Apps (13:21)
  • Introduction (00:46)
  • Overview (00:24)
  • SQL Server Compact 3.5 (00:39)
  • Mobile Database Applications (01:09)
  • Demo: Mobile Database App (09:15)
  • Summary (01:06)

Module 5

Reading XML (49:42)
  • Introduction (00:55)
  • Getting Started (01:20)
  • XML Document Object Model (01:01)
  • Tree-Based XML Handling (03:50)
  • Non-Cached XML Handling (00:31)
  • What is the XML Dom? (00:54)
  • Sample File (00:12)
  • Demo: Sample XML File (04:40)
  • Load XML Data (00:54)
  • Node"s Children (01:18)
  • Demo: Load XML Data (04:40)
  • Iterate through All Nodes (00:18)
  • Retrieve Element Nodes (01:14)
  • Examining the Results (00:43)
  • Retrieve Just Text Nodes (00:42)
  • Demo: Visit All Nodes (07:56)
  • Nodes Matching a Criterion (00:40)
  • Getting Started with XPath (01:08)
  • More About XPath (01:38)
  • Demo: Searching Using XPath (02:05)
  • Content Includes Namespace (01:07)
  • Demo: XML Namespaces (04:54)
  • Reference to Specific Node (00:26)
  • Navigate to Related Nodes (00:50)
  • Retrieve Attributes of a Node (00:49)
  • Demo: Node Attributes (04:08)
  • Summary (00:35)
Writing XML (18:27)
  • Introduction (00:40)
  • Create XML Programmatically (00:26)
  • Adding Nodes (01:06)
  • Add or Delete Elements (00:34)
  • Remove All Nodes (00:18)
  • Demo: Creating XML (05:18)
  • Add or Delete Attributes (00:53)
  • Modify Element"s Value (00:34)
  • Modify Attribute"s Value (00:17)
  • Demo: Modifying Values (04:36)
  • XML Isn"t Well Formed (00:20)
  • Handle XML Loading Errors (00:40)
  • Demo: Bad XML (01:44)
  • Summary (00:56)

Module 6

XML Reader (31:51)
  • Introduction (00:57)
  • Reading XML With XmlReader (00:47)
  • XmlReader Properties (00:57)
  • XmlReader Methods (02:58)
  • Demo: Reading XML (14:05)
  • XmlReaderSettings Class (00:21)
  • XML Schema (01:39)
  • Validate XML Against Schema (01:02)
  • Demo: Validate XML (07:59)
  • Summary (01:01)
XMLWriter (15:06)
  • Introduction (00:48)
  • Writing XML With XmlWriter (00:52)
  • XmlWriter Methods (01:31)
  • XmlWriterSettings Class (00:53)
  • Demo: Writing XML (10:36)
  • Summary (00:25)
Querying XML (15:59)
  • Introduction (01:10)
  • XPathNodeIterator Class (00:44)
  • XPath Expressions (01:44)
  • Compiled XPath Queries (00:28)
  • Demo: Querying XML (10:34)
  • Summary (01:16)

Module 7

Hierarchical and Caching (40:26)
  • Introduction (00:59)
  • Work with Related Data (02:38)
  • TableAdapterManager (01:01)
  • Demo: TableAdapterManager (00:30)
  • View DataSet (00:10)
  • View Relations (04:54)
  • AutoIncrement Properties (02:46)
  • Connected Scenarios (02:00)
  • Synch Local Data (01:15)
  • Synch Services for ADO.NET (01:14)
  • SQL Server Compact 3.5 (00:40)
  • Set Up Synchronization (00:54)
  • Demo: ADO.NET Synch (01:23)
  • Add Local Database Cache (01:24)
  • Configure Tables (03:41)
  • Explore Solution Files (00:51)
  • Rebind Data Controls (04:21)
  • Synchronize Database (04:59)
  • Test Synch/Remote Data (02:34)
  • SyncStatistics Class (00:41)
  • SyncDirection Property (01:03)
  • Summary (00:18)
Ntier Data (33:10)
  • Introduction (00:42)
  • Overview: 2-Tier (01:10)
  • Overview: N-Tier (02:24)
  • Demo: Split DataSet Code (03:14)
  • Create N-Tier App (00:20)
  • Define 2-Tier DataSource (00:59)
  • DataSet Project Property (01:36)
  • Create Multi-Tier Form (00:29)
  • Define N-Tier DataSource (03:31)
  • Test N-Tier App (00:46)
  • LINQ to SQL (01:02)
  • LINQ to SQL Mappings (00:49)
  • DataContext Class (00:44)
  • Entity Classes (00:13)
  • Object Relational Designer (00:35)
  • Demo: LINQ to SQL (02:46)
  • View Designer Class (02:12)
  • Create Front End (04:49)
  • Configure Behavior (04:26)
  • Summary (00:14)

Module 8

Custom Controls Inheriting (27:47)
  • Introduction (00:57)
  • Control Creation in Forms (01:51)
  • Inherit Exhisting Control (00:49)
  • Required Steps (00:54)
  • TextBox with Required Input (01:14)
  • Demo: Textbox Control (11:15)
  • Adding Finishing Touches (00:22)
  • Toolbox Bitmap (01:31)
  • Hiding a Property (00:20)
  • Property Category (00:24)
  • Demo: Finished Sample (07:23)
  • Summary (00:43)
Custom Controls Drawing (21:55)
  • Introduction (00:47)
  • Inherit Conrol Base Class (00:33)
  • Required Steps (00:44)
  • Control Properties (00:25)
  • Drawing the Control (01:08)
  • Demo: Resizable Checkbox (07:31)
  • Default Values (00:33)
  • Simple Types (00:30)
  • Other Types (01:20)
  • Raising Events (00:28)
  • Hiding Properties (00:36)
  • Ease-of-Use Features (00:47)
  • Demo: Features (05:39)
  • Summary (00:48)
Custom Controls Composite (11:44)
  • Introduction (00:41)
  • Creating Composite Controls (00:45)
  • Required Steps (00:47)
  • The Sample Control (00:35)
  • Demo: Label/Textbox Conrol (07:47)
  • Summary (01:06)

Module 9

Code Access Security (24:26)
  • Introduction (01:06)
  • Overview of Security (00:47)
  • Evidence (00:33)
  • Security Zones (02:02)
  • Security Policy (00:19)
  • Security Policy Levels (00:52)
  • Code Groups (01:10)
  • Permission Sets (00:51)
  • Security Policy Overview (01:13)
  • Demo: Code Access Security (05:33)
  • CLR Grants Permissions (00:50)
  • Configuring Security Policy (01:35)
  • Demo: Granting Permissions (07:14)
  • Summary (00:14)
Permissions (13:19)
  • Introduction (00:59)
  • Checking For Permissions (01:26)
  • Code Access Permissions (00:57)
  • Using Declarative Syntax (00:41)
  • Demo: Check Permissions (08:39)
  • Summary (00:35)
Role Based Security (17:46)
  • Introduction (00:48)
  • Overview (00:32)
  • Identity (00:28)
  • WindowsIdentity Class (00:19)
  • GenericIdentity Class (00:22)
  • Principal (00:29)
  • WindowsPrincipal Class (00:35)
  • GenericPrincipal Class (00:24)
  • PrincipalPermission (00:47)
  • Demo: Role-based Security (12:17)
  • Summary (00:41)

Module 10

Setup Projects (12:42)
  • Introduction (00:54)
  • Windows Installer Deployment (01:14)
  • Setup Project Properties (02:17)
  • Demo: Setup Project (07:46)
  • Summary (00:28)
Customize Setup Projects (31:03)
  • Introduction (00:37)
  • Deployment Editors (01:26)
  • File System Editor (00:37)
  • User Interface Editor (02:31)
  • Demo: Customizing Setup (13:22)
  • Launch Conditions Editor (01:12)
  • Prerequisites (01:02)
  • Demo: Add Launch Conditions (09:40)
  • Summary (00:33)
Custom Actions (12:20)
  • Introduction (00:42)
  • Custom Actions Editor (01:21)
  • Custom Actions (00:52)
  • Demo: Add a Custom Action (08:28)
  • Summary (00:55)

Module 11

Attributes (35:27)
  • Introduction (00:52)
  • Introducing Attributes (00:28)
  • Attributes in VB 6 (01:02)
  • Attributes in .NET (00:50)
  • Attribute Syntax (03:39)
  • Attributes as Classes (01:23)
  • Abbreviate the Class Name (00:34)
  • Attributes in Managed Code (00:12)
  • DebuggerStepThrough Attr (00:25)
  • Obsolete Attribute (00:50)
  • Were are Attributes Applied? (01:03)
  • Demo: Attributes (04:11)
  • Custom Attributes (00:23)
  • Custom Attributes Class (00:35)
  • Follow the Rules (00:54)
  • Demo: AuthorInfoAttribute (06:00)
  • Retrieving Attribute Values (00:30)
  • The System.Type Class (01:13)
  • Reflection.MethodInfo (00:45)
  • Attribute Class"s Methods (00:55)
  • Demo: Dump Attribute Info (07:57)
  • Summary (00:34)
Reflection (39:05)
  • Introduction (01:02)
  • Introducing Reflection (01:27)
  • Assemblies, Modules, Types (01:00)
  • Reflection Classes (01:42)
  • Reference to an Assembly (00:42)
  • Working with Types (00:37)
  • Retrieving a Type Object (01:03)
  • Retrieving Type Properties (00:44)
  • Retrieving Type Members (00:26)
  • Demo: Assembly Info (08:50)
  • Perform Late Binding (00:33)
  • Why Use Late Binding? (01:05)
  • Why Not Use Late Binding? (00:23)
  • Late Binding Sample (01:04)
  • Demo: Late Binding (17:05)
  • Summary (01:14)

Module 12

Client App Services (35:28)
  • Introduction (01:11)
  • Manage Members / Roles (01:41)
  • Configure Web Site Security (00:48)
  • Demo: Web Site Security (00:17)
  • Run aspnet_regsql (00:14)
  • ASP.NET SQL Server Wizard (00:41)
  • Create Web Site (01:19)
  • Set Web Site Properties (00:43)
  • Set up Security (00:08)
  • Web Site Administration Tool (01:15)
  • Create Roles (00:21)
  • Add Users/Access Rules (01:26)
  • Manage Roles (01:29)
  • Windows Application Features (00:47)
  • Role Based Security (00:58)
  • Project Settings (00:48)
  • Client Application Services (01:22)
  • Authentication (01:37)
  • Enable Client App Services (02:09)
  • Configure Web Site to Listen (00:57)
  • Use Authentication Service (04:14)
  • Modify Login Form (01:27)
  • Use Credentials Provider (05:56)
  • Code to Logout (02:21)
  • Summary (01:07)
Roles Settings CustomProvs (33:51)
  • Introduction (00:42)
  • Overview: Roles (01:05)
  • Overview: Settings (01:21)
  • Demo: Remote Roles/Profiles (02:26)
  • Use Roles Service (03:02)
  • Add/Define Settings (01:41)
  • Bind Settings (02:13)
  • Save Settings (01:06)
  • Run Application (01:40)
  • Use Profile Service (01:09)
  • Load Web Settings (01:42)
  • Test Web Settings (02:15)
  • Custom Membership Providers (01:33)
  • Custom Role Providers (00:55)
  • Demo: Membership/Role Prov. (02:02)
  • View User.xml/Roles.xml (01:12)
  • Create Membership Provider (04:44)
  • Create Role Provider (02:29)
  • Test the Providers (00:-23)
  • Summary (00:49)