Available:*
Library | Item Barcode | Call Number | Material Type | Item Category 1 | Status |
---|---|---|---|---|---|
Searching... | 30000010105504 | QA76.73.C153 F65 2007 | Open Access Book | Book | Searching... |
On Order
Summary
Summary
Enterprise Application Development with Visual C++ 2005 teaches developers how to create practical business applications using managed C++ and Visual Studio® 2005. It offers best practices for coding and C++ development, including class programming, code factoring, source control, memory management, and interdependency and interoperability. Special attention is also given to new features in Visual C++ 2005, such as IDE enhancements, compiler features, ECMA syntax for managed C++, and C++ language extensions. Database application development, XML Web Service integration, and MSI deployment tools integrated in Visual Studio 2005 are also covered in detail. Throughout the book a wide variety of practical examples are used to illustrate features of the language. In addition, users learn how to create an enterprise application installation package from the ground up, which performs a full range of deployment tasks ranging from creating SQL Server database to registering and configuring both managed and unmanaged Windows and XML Web Services. After reading this detailed resource, developers and programmers will have all the skills needed to create enterprise-quality applications.
Table of Contents
Acknowledgments | p. xv |
Introduction | p. xvii |
1 The Age of .NET: A .NET Framework Overview | p. 1 |
Farewell to Win32: A Historical Note | p. 2 |
From Native Code to Managed Execution | p. 3 |
Common Language Specification and Language Interoperability | p. 5 |
Non CLS-Compliant Features of Programming Languages | p. 8 |
From API to Class Library | p. 9 |
Code Access Security | p. 17 |
What's New in the .NET Framework 2.0 | p. 18 |
Conclusion | p. 19 |
2 What's New in Visual C++ .NET 2005 | p. 21 |
Code Definition View | p. 22 |
Call Browser Window | p. 23 |
Important Changes in C++ Compiler and Language | p. 24 |
Important New C++ Compiler and Linker Features and Changes | p. 28 |
Enforcing Good Coding Practices with Code Analysis | p. 38 |
Conclusion | p. 42 |
3 ECMA-Standardized C++ Syntax for CLR Support | p. 43 |
Farewell to Managed Extensions | p. 44 |
Reference Classes | p. 46 |
Enumerations | p. 60 |
Interfaces | p. 61 |
Properties | p. 62 |
Value Classes | p. 66 |
Tracking Reference | p. 69 |
Delegates | p. 71 |
Events | p. 75 |
Conclusion | p. 80 |
4 Managed Operators | p. 81 |
Managed Operator Rules | p. 81 |
Conversion Operators | p. 89 |
Conclusion | p. 94 |
5 Managed Arrays | p. 95 |
Native Arrays versus Managed Arrays | p. 95 |
Declaring Managed Arrays | p. 96 |
System::Array Class | p. 102 |
System::Collections::ArrayList Class | p. 105 |
Conclusion | p. 107 |
6 Managed Pointers | p. 109 |
Interior Pointers | p. 110 |
Pinning Pointers | p. 114 |
Managed Classes as Members of Native Classes | p. 117 |
Managed Type Casting | p. 118 |
Conclusion | p. 124 |
7 Using Generics | p. 125 |
Generics | p. 125 |
Generic Classes | p. 128 |
Constraints on Generics | p. 130 |
Generic Functions and Methods | p. 131 |
Generic Interfaces | p. 132 |
Delegates to Generic Methods and Generic Delegates | p. 133 |
Conclusion | p. 136 |
8 Project and Source Code Organization | p. 137 |
Importance of Coding Discipline | p. 137 |
Software Project Structure Levels | p. 141 |
Project Structure | p. 142 |
Program Structure | p. 151 |
Source File Structure | p. 156 |
Code Formatting | p. 159 |
Conclusion | p. 171 |
9 C++ Coding Standard and Best Practices | p. 173 |
Coding Standard for C++ | p. 174 |
General Rules | p. 175 |
Naming Conventions | p. 180 |
Memory Allocation Rules | p. 185 |
Stack Allocation | p. 192 |
Variable Usage and Initialization Rules | p. 196 |
Function Design and Usage Rules | p. 203 |
Miscellaneous Rules | p. 209 |
Flow Control and Branching Rules | p. 210 |
Constant Usage Rules | p. 212 |
General Coding Issues | p. 217 |
Compiler Settings | p. 219 |
Conclusion | p. 220 |
10 Analyzing Specification and Designing Classes | p. 225 |
Designing Classes: General Considerations | p. 226 |
Abstracting from Specification | p. 226 |
Designing Classes | p. 230 |
General Class Coding Rules | p. 235 |
Conclusion | p. 242 |
11 Working with Databases | p. 245 |
Visual Database Tools | p. 246 |
SQL Server Express and SQL Server Management Studio | p. 253 |
Database Diagrams | p. 255 |
Constraints | p. 260 |
Indexes | p. 261 |
Triggers | p. 262 |
Data Design Rules | p. 263 |
Conclusion | p. 270 |
12 ADO.NET: Working with Datasets | p. 271 |
ADO.NET Architecture | p. 272 |
Differences between ADO and ADO.NET | p. 273 |
ADO.NET Namespaces | p. 274 |
System::Data Namespace | p. 275 |
DataSet Class | p. 279 |
DataTable Class | p. 282 |
Data Table Collections | p. 286 |
DataColumn Class | p. 287 |
Data Column Collections | p. 288 |
Creating Tables, Adding Columns, and Specifying Primary Keys | p. 289 |
Using Aggregate Expressions | p. 290 |
DataRow Class | p. 291 |
Data Row Collections | p. 294 |
Adding, Navigating Rows, Computing Aggregate Expressions | p. 294 |
Establishing Relations between Data Tables | p. 296 |
Data Relation Collections | p. 298 |
Constraints | p. 299 |
Constraint Rules | p. 301 |
Unique Contraints | p. 302 |
Constraint Collections | p. 303 |
Creating Unique and Foreign-Key Constraints | p. 303 |
Data Table Notifications | p. 305 |
Adding, Deleting Rows, and Handling Data Table Notifications | p. 307 |
Conclusion | p. 311 |
13 ADO.NET: Reading and Writing Datasets as XML | p. 313 |
Reading and Writing Datasets as XML Documents | p. 314 |
Writing Dataset Data and Schema to XML | p. 314 |
Reading Dataset Data and Schema from XML | p. 317 |
Communicating Dataset Changes by Means of XML DiffGrams | p. 321 |
Navigating Hierarchal Datasets | p. 323 |
Conclusion | p. 326 |
14 ADO.NET: Typed Datasets and Views | p. 327 |
Strictly-Typed Datasets | p. 328 |
Data Views | p. 338 |
Data View Settings | p. 343 |
Conclusion | p. 345 |
15 ADO.NET: OLE DB and SQL Server Data Providers Basics | p. 347 |
ADO.NET Data Providers | p. 347 |
Database Connections | p. 353 |
Data Adapters | p. 361 |
RowUpdating and RowUpdated Events | p. 369 |
Table Mappings | p. 371 |
Data Column Mappings | p. 373 |
Setting Up Column and Table Mappings | p. 374 |
Conclusion | p. 376 |
16 ADO.NET: OLE DB and SQL Server Data Provider Commands, Data Readers, and Notifications | p. 377 |
Database Commands | p. 377 |
Executing SQL Server Commands Asynchronously | p. 383 |
Database Command Parameters | p. 385 |
Invoking SQL-Server Stored Procedures | p. 390 |
Database Command Builders | p. 391 |
Data Readers | p. 395 |
Using Data Readers with Sequential Access to Read BLOB Data | p. 401 |
Database Transactions | p. 403 |
Direct Loading Datasets with Data | p. 407 |
Subscribing to SQL Server Query Notifications | p. 408 |
Conclusion | p. 414 |
17 ASP.NET Web Services | p. 415 |
Web Services as Components of Distributed Computing | p. 416 |
Benefits, Risks, and Costs of Web Services | p. 416 |
The Future of Web Services | p. 419 |
Web Services versus Software Libraries | p. 420 |
Main Reasons for Using Web Services | p. 420 |
ASP.NET Web Services | p. 421 |
System: :Web Namespace | p. 423 |
HttpApplication Class | p. 425 |
HttpServerUtility Class | p. 426 |
HttpApplicationState Class | p. 427 |
WebService Attribute | p. 430 |
WebMethod Attribute | p. 430 |
C++ .NET Web Service Application Template | p. 432 |
Debugging Web Services Locally and Remotely | p. 434 |
Conclusion | p. 439 |
18 Consuming and Communicating with Web Services via HTTP-GET, HTTP-POST, and SOAP | p. 441 |
Web Service Proxies | p. 442 |
System: :Web: :Services: :Protocols Namespace | p. 443 |
HTTP-GET and HTTP-POST Protocols | p. 445 |
.NET Framework Web Service Protocol/Proxy Classes | p. 446 |
Generating Web Service Proxies by Adding Web References | p. 448 |
Invoking Web Service Methods Synchronously and Asynchronously | p. 450 |
Simple Object Access Protocol (SOAP) | p. 453 |
SOAP Binding to HTTP | p. 454 |
SOAP Message Architecture | p. 455 |
Formatting and Encoding SOAP Messages and Parameters | p. 466 |
Web Services with Multiple Bindings | p. 469 |
Managing Application and Session State | p. 472 |
Conclusion | p. 473 |
19 Web Services Definition language (WSDL), Discovery, Security and Configuration | p. 475 |
Web Service Description Language | p. 476 |
System: :Web: :Services: :Description Namespace | p. 478 |
Web Service Discovery | p. 481 |
UDDI | p. 486 |
Web Service Configuration | p. 487 |
Web Service Authentication | p. 490 |
Securing a Web Service | p. 492 |
Conclusion | p. 494 |
20 ATL Server Web Services and Interoperability with ASP.NET | p. 495 |
Creating ATL Web Services | p. 496 |
Adding MFC Support to ATL Server Projects | p. 498 |
Specifying ATL Server Web Service Declaration | p. 500 |
Declaring SOAP Headers | p. 503 |
Handling SOAP Faults | p. 503 |
Maintaining Session State | p. 508 |
Streamlining Web Method Invocation: Prolog and Epilog Macros | p. 509 |
Consuming ATL Web Services in .NET Clients | p. 510 |
Marshalling Date Data Types | p. 510 |
Conclusion | p. 514 |
21 Web Services Interoperability with Legacy VB6 Clients | p. 515 |
SOAP Toolkit | p. 516 |
Consuming Web Service in VB6 | p. 517 |
SOAP Type Mapping | p. 519 |
WSML Files | p. 524 |
Session State with SOAP Headers | p. 525 |
Conclusion | p. 527 |
22 ATL Server and ASP.NET Web Services Interoperability with Java | p. 529 |
Creating Web Service Proxy | p. 530 |
Problems | p. 531 |
Implementing Web Method Call Template | p. 531 |
Type Mapping and User-Defined Types | p. 534 |
Handling Null Return Values and Zero-Size Arrays | p. 539 |
Treating Output Parameters | p. 540 |
Conclusion | p. 541 |
23 Interoperability between Managed and Unmanaged Code | p. 543 |
Component-Level Interoperability between Managed and Unmanaged Code | p. 544 |
Runtime Callable Wrappers and COM Callable Wrappers | p. 544 |
Marshalling Data | p. 546 |
Marshalling Exceptions | p. 547 |
Marshalling Events | p. 548 |
Class Interfaces | p. 548 |
Generating Runtime Callable Wrappers | p. 549 |
Consuming COM Classes and Events in Managed Code | p. 552 |
Generating Runtime Callable Wrappers | p. 556 |
Registering Runtime Callable Wrappers | p. 557 |
Consuming Managed Classes and Events in Unmanaged Code | p. 557 |
Deploying Interoperability Applications | p. 561 |
Consuming Unmanaged DLLs in Managed Code | p. 561 |
COM Interoperability Attributes | p. 565 |
Code-Level Interoperability: C++ Interop | p. 566 |
Conclusion | p. 572 |
24 Deploying Applications | p. 573 |
Windows Installer Overview | p. 574 |
Visual Studio Setup and Deployment Projects | p. 575 |
Conclusion | p. 591 |
25 Custom Deployment Actions | p. 593 |
Custom Actions Overview | p. 593 |
Hooking Up Custom Actions to Deployment Package | p. 595 |
Custom Action Data | p. 598 |
Sample Deployment Project | p. 599 |
Implementing Native Custom Action | p. 600 |
Implementing Installer-Class Custom Action | p. 605 |
Installing Managed Windows Services | p. 613 |
Installing and Controlling Services via MSI | p. 615 |
Conclusion | p. 616 |
26 Source Control | p. 617 |
Source Control Overview | p. 618 |
Practicing Source Control with Visual SourceSafe | p. 619 |
Conclusion | p. 631 |
Appendix A About the CD-ROM | p. 633 |
Index | p. 639 |