|
Microsoft .NET for Programmers Fergal Grimes 2002 | 386 pages ISBN: 1930110197 |
|||
![]() |
$34.95 | Softbound print book | |
![]() |
$17.50 | PDF ebook | |
Table of Contents
preface xiiiacknowledgments xviii
author online xix
about the cover illustration xx
- 1 Introduction 1
- 1.1 Developing for the .NET platform 2
- A language-independent platform 2, .NET and managed code 3
- 1.2 A first .NET program 4
- Compiling the C# Hello program 5, A Visual Basic .NET Hello program 5
- 1.3 The platform vs. the programming language 6
- 1.4 Exploring the . NET Framework class library 7
- An overview of important namespaces 7, Programming with the .NET Framework classes 9, What happened to ASP and ADO? 10
- 1.5 Putting .NET to work 11
- 1.6 Summary 14
- 2 Understanding types and assemblies 15
- 2.1 Introducing types 16
- 2.2 Value vs. reference types 18
- The C# struct 19, Boxing and unboxing 20
- 2.3 Exploring System.Object 21
- Overriding System.Object methods 22
- 2.4 Understanding finalization 23
- Coding a finalizer 23, Finalization and the Dispose method 24
- 2.5 Introducing assemblies 26
- Creating a multifile assembly 26, Disassembling with ILDASM 28
- 2.6 Private vs. shared assemblies 29
- Shared assemblies and versioning 29, Generating a strong name for a shared assembly 30, Installing shared assemblies into the global assembly cache 32, Creating an application configuration file 33
- 2.7 Downloading assemblies 35
- Downloading the Person assembly from the Web 36
- 2.8 Programming in IL 37
- Inspecting generated IL 37, Boxing and unboxing in IL 38, Coding IL programs 39, Generating native images 41
- 2.9 Types, assemblies, and reflection 41
- An example of reflection 41, The System.Reflection.Emit namespace 43
- 2.10 Building a simple compiler 44
- The AL language 44, Translating AL to IL 45, Dynamically generating an assembly 46, Coding the AL compiler 46, Building and testing the AL compiler 54
- 2.11 Summary 54
- 3 Case study: a video poker machine 55
- 3.1 Playing video poker 56
- Winning poker hands 57, A profitable video poker machine 58
- 3.2 The Poker.Card class 58
- Designing the Card class 58, Coding the Card class 59
- 3.3 The Poker.Hand class 61
- Designing the Hand class 61, Coding the Hand class 61
- 3.4 SimPok: a simple poker game 68
- The Poker.SimpleMachine class 68, The SimPok console interface 69
- 3.5 ComPok: a COM-based poker game 70
- Registering the poker assembly as a COM object 70, Console poker using COM and VBScript 71, RegAsm and the registry 72
- 3.6 IEPok: an Internet Explorer poker game 73
- Downloading assemblies using Internet Explorer 73, Coding the IEPok application 74
- 3.7 Designing a complete game 76
- Video poker: the poker engine and its interfaces 76
- 3.8 Summary 77
- 4 Working with ADO.NET and databases 78
- 4.1 The ADO.NET namespaces 79
- The OLE DB and SQL Server managed providers 79
- 4.2 The ADO.NET DataSet 80
- Creating and using a DataSet 80, A simple example 81
- 4.3 DataSets and XML 83
- The DataSetís GetXml and GetXmlSchema methods 83
- 4.4 Updating the database using a DataSet 85
- Committing changes 86
- 4.5 Updating the database directly 87
- 4.6 The DataReader 88
- 4.7 The Poker.Bank class 89
- Logging errors and warnings 91, Creating the Poker.Bank class 92, Testing the Bank class 99
- 4.8 Using XML serialization to create a report 101
- Serializing an object to an XML document 102, Performing an XSL transformation 103, The XmlRep program 106
- 4.9 The Poker.Machine class 109
- 4.10 The Poker.Bet class 112
- 4.11 Building the poker DLL 113
- 4.12 ConPok: 3-tier client/server poker 114
- 4.13 Summary 116
- 5 Developing remote services 117
- 5.1 Introduction to remoting 118
- Remoting and application domains 118, Marshaling objects 118, Hosting remote objects 119, Creating a remote service 119, Creating the client 121, Testing the service 122
- 5.2 Implementing server-activated remote objects 123
- Coding a SingleCall HelloService 123, Testing the SingleCall HelloService 124
- 5.3 Configuring remoting 124
- Using remoting configuration files 124, Coding HelloService 125, Coding the new client 126
- 5.4 Implementing client-activated remote objects 127
- Configuring the service for client activation 127, Configuring the client for client activation 128, Coding the new client 129, Testing the client-activated service 129
- 5.5 Client activation and leasing 130
- Understanding leasing 131, Amending the lease 133, Using a sponsor to amend lease duration 133
- 5.6 Handling remote events 136
- The EchoObj class 136, The EchoService class 137, The EchoClient class 137, Testing the EchoService 138
- 5.7 Hosting objects in Internet Information Server 140
- Providing a public interface for a remote service 140, Coding the, Compiling the Base64 string encoding application 142, Deploying the StringEncoder service on IIS 142, Testing the IIS-hosted encoder 143
- 5.8 RemPok: a remote poker game 144
- Developing the remote poker service 144, The remote poker machine configuration file 145, The RemPok poker client 146, Testing the remote poker machine 148
- 5.9 SvcPok: a remote poker game as a Windows service 149
- Coding the poker Windows service 150, Installing the poker Windows service 153, Creating the client 154
- 5.10 QuePok: a message queue-based poker game 155
- Designing an MSMQ-based poker service 157, Creating the PokMsg and PokerQueue classes 158, Creating the QuePokService service 159, Creating the QuePok client 160, Compiling and testing the QuePok service 161
- 5.11 Summary 163
- 6 Developing XML Web services 164
- 6.1 Introduction to XML Web services 165
- 6.2 Creating a first Web service 165
- Creating the service 165, Testing the service 167
- 6.3 Creating an HTTP GET client 169
- 6.4 Using WSDL to describe a Web service 170
- WSDL types 170, WSDL messages 171, WSDL portTypes 172, WSDL bindings 172, WSDL services 173
- 6.5 Coding a SOAP client 173
- Generating the Web service proxy 175, Coding the client 177, Compiling and executing the client 178, Creating an asynchronous client 178
- 6.6 The WebMailService example 179
- 6.7 Managing service state 181
- Creating a stateful Web service 181, Creating the stateful client 184, Testing the stateful service 185, Example: logging into a Web service 186, Maintaining state without cookies 188, Emulating singleton activation 189
- 6.8 Enabling Web service discovery 190
- Generating a DISCO document 191, Creating a default.disco file 192, Processing a default.disco file 193
- 6.9 Using UDDI to advertise a Web service 194
- Searching the UDDI registry 195, Installing the UDDI SDK and test registry 197, Creating a simple inquiry client using the UDDI SDK 197, More on UDDI 198
- 6.10 WSPok: the Web service-based poker game 199
- Creating the WSPokService poker Web service 199, Creating the WSPok client 200, Testing the poker Web service 201
- 6.11 Summary 202
- 7 Creating the Windows Forms user interface 203
- 7.1 Beginning Windows Forms development 204
- Creating a simple form 204, Adding controls to a form 205, Anchoring and docking controls 207, Handling form events 207
- 7.2 Understanding the Windows Forms programming model 208
- The Component class 209, The Control class 211, The ScrollableControl class 213, The ContainerControl class 214, The Form class 214
- 7.3 WinPok: the Windows Forms-based poker game 215
- The WinPok program structure 215, Setting up the form 217, Creating the menu 218, Creating buttons 220, Creating labels 221, Creating text boxes 223, Creating check boxes 224, Displaying a status bar 225, Creating picture boxes 226, Starting play 228, Dealing cards 230, Drawing cards 232, Accessing the Win32 API 233, Ending the application 233
- 7.4 Creating Windows Forms applications using Visual Studio .NET 234
- Creating a Visual Studio .NET project 234, Designing a form 236, Adding code to the form 237
- 7.5 Overriding WndProc 238
- 7.6 Summary 240
- 8 Creating the Web Forms user interface 241
- 8.1 Comparing ASP.NET to ASP 242
- A simple ASP application 242, A simple ASP.NET application 244
- 8.2 The System.Web.UI.Page class 245
- The Page.Request and Page.Response properties 245, The Page lifecycle 246
- 8.3 Working with Web Forms and server controls 248
- The anatomy of the Web Form 248, The System.Web.UI.WebControls and System.Web.UI.HtmlControls namespaces 252, Using the Calendar Web control 253, Using the DataGrid Web control 254, Using the HtmlTable control 256
- 8.4 Creating user controls 258
- 8.5 Validating user input 261
- 8.6 Configuring and customizing ASP.NET applications 265
- Creating a custom HTTP module 266, Creating a custom HTTP handler 268
- 8.7 Tracing ASP.NET applications 269
- 8.8 Managing application and session state 272
- Application state and the Global.Asax file 272, Managing session state 274
- 8.9 Creating Web Forms using Visual Studio .NET 275
- Creating a Web application using Visual Studio .NET 275, Using the toolbox to design a Web Form 276
- 8.10 Manually creating code-behind Web Forms 278
- 8.11 WebPok: the Web Forms-based poker machine 279
- 8.12 MobPok: the mobile Internet-based poker machine 286
- 8.13 Summary 288
 
appendix a Introduction to C# 289
appendix b The Poker.dll class listings 321
appendix c The WinPok.cs listing 335
index 347
DESCRIPTION
Written for intermediate and advanced programmers, this book builds on your existing knowledge to teach you exactly what you need to know to develop .NET applications.
Packed full of practical examples, the book presents a case study which takes you through the design of an application "engine" and its implementation as a .NET assembly. You'll reuse the engine to create different versions of the application using Windows Forms, Remoting, Web Services, Windows Services, COM, MSMQ, ASP.NET, ADO.NET, and the Mobile Internet Toolkit. You'll also learn about fundamental .NET concepts such as types and assemblies and develop a simple language compiler which can emit a .NET executable.
Also included is an appendix containing a comprehensive introduction to the C# programming language.

