Pro C# 2005 and the.net 2.0 Platform. Andrew Troelsen

Size: px
Start display at page:

Download "Pro C# 2005 and the.net 2.0 Platform. Andrew Troelsen"

Transcription

1 Pro C# 2005 and the.net 2.0 Platform Andrew Troelsen

2 Pro C# 2005 and the.net 2.0 Platform Copyright 2005 by Andrew Troelsen All rights reserved. No part of this work may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording, or by any information storage or retrieval system, without the prior written permission of the copyright owner and the publisher. ISBN: Printed and bound in the United States of America Trademarked names may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name, we use the names only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark. Lead Editor: Ewan Buckingham Technical Reviewer: Gavin Smyth Editorial Board: Steve Anglin, Dan Appleman, Ewan Buckingham, Gary Cornell, Tony Davis, Jason Gilmore, Jonathan Hassell, Chris Mills, Dominic Shakeshaft, Jim Sumser Associate Publisher and Project Manager: Grace Wong Copy Edit Manager: Nicole LeClerc Copy Editors: Nicole LeClerc, Ami Knox Assistant Production Director: Kari Brooks-Copony Production Editor: Laura Cheu Compositor and Artist: Kinetic Publishing Services, LLC Proofreader: Nancy Sixsmith Indexers: Kevin Broccoli and Dan Mabbutt Interior Designer: Van Winkle Design Group Cover Designer: Kurt Krames Manufacturing Director: Tom Debolski Distributed to the book trade worldwide by Springer-Verlag New York, Inc., 233 Spring Street, 6th Floor, New York, NY Phone SPRINGER, fax , orders-ny@springer-sbm.com, or visit For information on translations, please contact Apress directly at 2560 Ninth Street, Suite 219, Berkeley, CA Phone , fax , info@apress.com, or visit The information in this book is distributed on an as is basis, without warranty. Although every precaution has been taken in the preparation of this work, neither the author(s) nor Apress shall have any liability to any person or entity with respect to any loss or damage caused or alleged to be caused directly or indirectly by the information contained in this work. The source code for this book is available to readers at in the Source Code section.

3 I would like to dedicate this book to my mother, Mary Troelsen. Mom, thanks for all of your support over the years and the years to come. Oh yeah, and thanks for not busting my chops when I came home with the red Mohawk. Luv ya, Pooch

4 Contents at a Glance About the Author xxxiii About the Technical Reviewer xxxv Acknowledgments xxxvii Introduction xxxix PART 1 Introducing C# and the.net Platform CHAPTER 1 The Philosophy of.net CHAPTER 2 Building C# Applications PART 2 The C# Programming Language CHAPTER 3 C# Language Fundamentals CHAPTER 4 Object-Oriented Programming with C# CHAPTER 5 Understanding Object Lifetime CHAPTER 6 Understanding Structured Exception Handling CHAPTER 7 Interfaces and Collections CHAPTER 8 Callback Interfaces, Delegates, and Events CHAPTER 9 Advanced C# Type Construction Techniques CHAPTER 10 Understanding Generics PART 3 Programming with.net Assemblies CHAPTER 11 Introducing.NET Assemblies CHAPTER 12 Type Reflection, Late Binding, and Attribute-Based Programming CHAPTER 13 Processes, AppDomains, Contexts, and CLR Hosts CHAPTER 14 Building Multithreaded Applications CHAPTER 15 Understanding CIL and the Role of Dynamic Assemblies v

5 PART 4 Programming with the.net Libraries CHAPTER 16 The System.IO Namespace CHAPTER 17 Understanding Object Serialization CHAPTER 18 The.NET Remoting Layer CHAPTER 19 Building a Better Window with System.Windows.Forms CHAPTER 20 Rendering Graphical Data with GDI CHAPTER 21 Programming with Windows Forms Controls CHAPTER 22 Database Access with ADO.NET PART 5 Web Applications and XML Web Services CHAPTER 23 ASP.NET 2.0 Web Pages and Web Controls CHAPTER 24 ASP.NET 2.0 Web Applications CHAPTER 25 Understanding XML Web Services INDEX

6 Contents About the Author xxxiii About the Technical Reviewer xxxv Acknowledgments xxxvii Introduction xxxix PART 1 Introducing C# and the.net Platform CHAPTER 1 The Philosophy of.net Understanding the Previous State of Affairs Life As a C/Win32 API Programmer Life As a C++/MFC Programmer Life As a Visual Basic 6.0 Programmer Life As a Java/J2EE Programmer Life As a COM Programmer Life As a Windows DNA Programmer The.NET Solution Introducing the Building Blocks of the.net Platform (the CLR, CTS, and CLS) The Role of the Base Class Libraries What C# Brings to the Table Additional.NET-Aware Programming Languages Life in a Multilanguage World An Overview of.net Assemblies Single-File and Multifile Assemblies The Role of the Common Intermediate Language Benefits of CIL Compiling CIL to Platform-Specific Instructions The Role of.net Type Metadata The Role of the Assembly Manifest Understanding the Common Type System CTS Class Types CTS Structure Types CTS Interface Types CTS Enumeration Types CTS Delegate Types vii

7 viii CONTENTS CTS Type Members Intrinsic CTS Data Types Understanding the Common Language Specification Ensuring CLS Compliance Understanding the Common Language Runtime The Assembly/Namespace/Type Distinction Accessing a Namespace Programmatically Referencing External Assemblies Using ildasm.exe Viewing CIL Code Viewing Type Metadata Viewing Assembly Metadata Deploying the.net Runtime The Platform-Independent Nature of.net Summary CHAPTER 2 Building C# Applications Installing the.net Framework 2.0 SDK The C# Command-Line Compiler (csc.exe) Configuring the C# Command-Line Compiler Configuring Additional.NET Command-Line Tools Building C# Applications Using csc.exe Referencing External Assemblies Compiling Multiple Source Files with csc.exe Referencing Multiple External Assemblies Working with csc.exe Response Files The Default Response File (csc.rsp) The Command-Line Debugger (cordbg.exe) Debugging at the Command Line Building.NET Applications Using TextPad Enabling C# Keyword Coloring Configuring the *.cs File Filter Hooking Into csc.exe Associating Run Commands with Menu Items Enabling C# Code Snippets Building.NET Applications Using SharpDevelop Learning the Lay of the Land: SharpDevelop The Project and Classes Scouts The Assembly Scout Windows Forms Designers Building.NET Applications Using Visual C# 2005 Express

8 CONTENTS ix The Big Kahuna: Building.NET Applications Using Visual Studio Learning the Lay of the Land: Visual Studio The Solution Explorer Utility The Class View Utility The Code Definition Window The Object Browser Utility Integrated Support for Code Refactoring Code Expansions and Surround with Technology The Visual Class Designer Object Test Bench The Integrated Help System A Partial Catalogue of Additional.NET Development Tools Summary PART 2 The C# Programming Language CHAPTER 3 C# Language Fundamentals The Anatomy of a Simple C# Program Variations on the Main() Method Processing Command-Line Arguments Specifying Command-Line Arguments with Visual Studio An Interesting Aside: The System.Environment Class Defining Classes and Creating Objects The Role of Constructors Is That a Memory Leak? Defining an Application Object The System.Console Class Basic Input and Output with the Console Class Formatting Console Output NET String Formatting Flags Establishing Member Visibility Establishing Type Visibility Default Values of Class Member Variables Default Values and Local Variables Member Variable Initialization Syntax Defining Constant Data Referencing Constant Data Defining Read-Only Fields Static Read-Only Fields Understanding the static Keyword Static Methods Static Data

9 x CONTENTS Static Constructors Static Classes Method Parameter Modifiers The Default Parameter-Passing Behavior The out Modifier The ref Modifier The params Modifier Iteration Constructs The for Loop The foreach Loop The while and do/while Looping Constructs Decision Constructs and the Relational/Equality Operators The if/else Statement The switch Statement Understanding Value Types and Reference Types Value Types, References Types, and the Assignment Operator Value Types Containing Reference Types Passing Reference Types by Value Passing Reference Types by Reference Value and Reference Types: Final Details Understanding Boxing and Unboxing Operations Some Practical (Un)Boxing Examples Unboxing Custom Value Types Working with.net Enumerations The System.Enum Base Class The Master Class: System.Object The Default Behavior of System.Object Overriding Some Default Behaviors of System.Object Overriding System.Object.ToString() Overriding System.Object.Equals() Overriding System.Object.GetHashCode() Testing the Overridden Members Static Members of System.Object The System Data Types (and C# Shorthand Notation) Experimenting with Numerical Data Types Members of System.Boolean Members of System.Char Parsing Values from String Data System.DateTime and System.TimeSpan The System.String Data Type Basic String Operations Escape Characters Working with C# Verbatim Strings

10 CONTENTS xi The Role of System.Text.StringBuilder NET Array Types Arrays As Parameters (and Return Values) Working with Multidimensional Arrays The System.Array Base Class Understanding C# Nullable Types Working with Nullable Types The?? Operator Defining Custom Namespaces A Type s Fully Qualified Name Defining using Aliases Creating Nested Namespaces The Default Namespace of Visual Studio Summary CHAPTER 4 Object-Oriented Programming with C# Understanding the C# Class Type Understanding Method Overloading Self-Reference in C# Using this Defining the Public Interface of a Class Reviewing the Pillars of OOP Encapsulation Inheritance Polymorphism The First Pillar: C# s Encapsulation Services Enforcing Encapsulation Using Traditional Accessors and Mutators Another Form of Encapsulation: Class Properties Internal Representation of C# Properties Controlling Visibility Levels of Property get/set Statements Read-Only and Write-Only Properties Static Properties The Second Pillar: C# s Inheritance Support Controlling Base Class Creation with base Regarding Multiple Base Classes Keeping Family Secrets: The protected Keyword Preventing Inheritance: Sealed Classes Programming for Containment/Delegation Nested Type Definitions The Third Pillar: C# s Polymorphic Support The virtual and override Keywords Revisiting the sealed Keyword

11 xii CONTENTS Understanding Abstract Classes Enforcing Polymorphic Activity: Abstract Methods Member Hiding C# Casting Rules Determining the Type of Employee Numerical Casts Understanding C# Partial Types Documenting C# Source Code via XML XML Code Comment Format Characters Transforming XML Code Comments Summary CHAPTER 5 Understanding Object Lifetime Classes, Objects, and References The Basics of Object Lifetime The CIL of new The Role of Application Roots Understanding Object Generations The System.GC Type Forcing a Garbage Collection Building Finalizable Objects Overriding System.Object.Finalize() Detailing the Finalization Process Building Disposable Objects Reusing the C# using Keyword Building Finalizable and Disposable Types A Formalized Disposal Pattern Summary CHAPTER 6 Understanding Structured Exception Handling Ode to Errors, Bugs, and Exceptions The Role of.net Exception Handling The Atoms of.net Exception Handling The System.Exception Base Class The Simplest Possible Example Throwing a Generic Exception Catching Exceptions Configuring the State of an Exception The TargetSite Property The StackTrace Property The HelpLink Property The Data Property

12 CONTENTS xiii System-Level Exceptions (System.SystemException) Application-Level Exceptions (System.ApplicationException) Building Custom Exceptions, Take One Building Custom Exceptions, Take Two Building Custom Exceptions, Take Three Processing Multiple Exceptions Generic catch Statements Rethrowing Exceptions Inner Exceptions The Finally Block Who Is Throwing What? The Result of Unhandled Exception Debugging Unhandled Exceptions Using Visual Studio Summary CHAPTER 7 Interfaces and Collections Defining Interfaces in C# Implementing an Interface in C# Contrasting Interfaces to Abstract Base Classes Invoking Interface Members at the Object Level Obtaining Interface References: The as Keyword Obtaining Interface References: The is Keyword Interfaces As Parameters Interfaces As Return Values Arrays of Interface Types Understanding Explicit Interface Implementation Resolving Name Clashes Building Interface Hierarchies Interfaces with Multiple Base Interfaces Implementing Interfaces Using Visual Studio Building Enumerable Types (IEnumerable and IEnumerator) Understanding C# Iterator Methods Building Cloneable Objects (ICloneable) A More Elaborate Cloning Example Building Comparable Objects (IComparable) Specifying Multiple Sort Orders (IComparer) Custom Properties, Custom Sort Types The Interfaces of the System.Collections Namespace The Role of ICollection The Role of IDictionary The Role of IDictionaryEnumerator The Role of IList

13 xiv CONTENTS The Class Types of System.Collections Working with the ArrayList Type Working with the Queue Type Working with the Stack Type System.Collections.Specialized Namespace Summary CHAPTER 8 Callback Interfaces, Delegates, and Events Understanding Callback Interfaces Understanding the.net Delegate Type Defining a Delegate in C# The System.MulticastDelegate and System.Delegate Base Classes The Simplest Possible Delegate Example Investigating a Delegate Object Retrofitting the Car Type with Delegates Enabling Multicasting A More Elaborate Delegate Example Delegates As Parameters Analyzing the Delegation Code Understanding Delegate Covariance Understanding C# Events Events Under the Hood Listening to Incoming Events Simplifying Event Registration Using Visual Studio A Prim-and-Proper Event Understanding C# Anonymous Methods Accessing Outer Variables C# Method Group Conversions Summary CHAPTER 9 Advanced C# Type Construction Techniques Building a Custom Indexer A Variation of the Garage Indexer Internal Representation of Type Indexers Indexers: Final Details Understanding Operator Overloading Overloading Binary Operators And What of the += and + Operators? Overloading Unary Operators Overloading Equality Operators Overloading Comparison Operators

14 CONTENTS xv The Internal Representation of Overloaded Operators Interacting with Overloaded Operators from Overloaded Operator Challenged Languages Final Thoughts Regarding Operator Overloading Understanding Custom Type Conversions Recall: Numerical Conversions Recall: Conversions Among Related Class Types Creating Custom Conversion Routines Additional Explicit Conversions for the Square Type Defining Implicit Conversion Routines The Internal Representation of Custom Conversion Routines The Advanced Keywords of C# The checked Keyword The unchecked Keyword Working with Pointer Types The sizeof Keyword C# Preprocessor Directives Specifying Code Regions Conditional Code Compilation Summary CHAPTER 10 Understanding Generics Revisiting the Boxing, Unboxing, and System.Object Relationship The Problem with (Un)Boxing Operations Type Safety and Strongly Typed Collections Boxing Issues and Strongly Typed Collections The System.Collections.Generic Namespace Examining the List<T> Type Creating Generic Methods Omission of Type Parameters Creating Generic Structures (or Classes) The default Keyword in Generic Code Creating a Custom Generic Collection Constraining Type Parameters Using where The Lack of Operator Constraints Creating Generic Base Classes Creating Generic Interfaces Creating Generic Delegates Simulating Generic Delegates Under.NET A Brief Word Regarding Nested Delegates Summary

15 xvi CONTENTS PART 3 Programming with.net Assemblies CHAPTER 11 Introducing.NET Assemblies The Role of.net Assemblies Assemblies Promote Code Reuse Assemblies Establish a Type Boundary Assemblies Are Versionable Units Assemblies Are Self-Describing Assemblies Are Configurable Understanding the Format of a.net Assembly The Win32 File Header The CLR File Header CIL Code, Type Metadata, and the Assembly Manifest Optional Assembly Resources Single-File and Multifile Assemblies Building and Consuming a Single-File Assembly Exploring the Manifest Exploring the CIL Exploring the Type Metadata Building a C# Client Application Building a Visual Basic.NET Client Application Cross-Language Inheritance in Action Building and Consuming a Multifile Assembly Exploring the ufo.netmodule File Exploring the airvehicles.dll File Consuming a Multifile Assembly Understanding Private Assemblies The Identity of a Private Assembly Understanding the Probing Process Configuring Private Assemblies Configuration Files and Visual Studio Introducing the.net Framework 2.0 Configuration Utility Understanding Shared Assemblies Understanding Strong Names Strongly Naming CarLibrary.dll Assigning Strong Names Using Visual Studio Installing/Removing Shared Assemblies to/from the GAC The Role of Delayed Signing Consuming a Shared Assembly Exploring the Manifest of SharedCarLibClient

16 CONTENTS xvii Configuring Shared Assemblies Freezing the Current Shared Assembly Building Shared Assembly Version Dynamically Redirecting to Specific Versions of a Shared Assembly Revisiting the.net Framework 2.0 Configuration Utility Investigating the Internal Composition of the GAC Understanding Publisher Policy Assemblies Disabling Publisher Policy Understanding the <codebase> Element The System.Configuration Namespace The Machine Configuration File The Assembly Binding Big Picture Summary CHAPTER 12 Type Reflection, Late Binding, and Attribute-Based Programming The Necessity of Type Metadata Viewing (Partial) Metadata for the EngineState Enumeration Viewing (Partial) Metadata for the Car Type Examining a TypeRef Documenting the Defining Assembly Documenting Referenced Assemblies Documenting String Literals Understanding Reflection The System.Type Class Obtaining a Type Reference Using System.Object.GetType() Obtaining a Type Reference Using System.Type.GetType() Obtaining a Type Reference Using typeof() Building a Custom Metadata Viewer Reflecting on Methods Reflecting on Fields and Properties Reflecting on Implemented Interfaces Displaying Various Odds and Ends Implementing Main() Reflecting on Method Parameters and Return Values Dynamically Loading Assemblies Reflecting on Shared Assemblies Understanding Late Binding The System.Activator Class Invoking Methods with No Parameters Invoking Methods with Parameters

17 xviii CONTENTS Understanding Attributed Programming Attribute Consumers Applying Predefined Attributes in C# Specifying Constructor Parameters for Attributes The Obsolete Attribute in Action C# Attribute Shorthand Notation Building Custom Attributes Applying Custom Attributes Restricting Attribute Usage Assembly-Level (and Module-Level) Attributes The Visual Studio 2005 AssemblyInfo.cs File Reflecting on Attributes Using Early Binding Reflecting on Attributes Using Late Binding Putting Reflection, Late Binding, and Custom Attributes in Perspective Building an Extendable Application Building CommonSnappableTypes.dll Building the C# Snap-In Building the Visual Basic.NET Snap-In Building an Extendable Windows Forms Application Summary CHAPTER 13 Processes, AppDomains, Contexts, and CLR Hosts Reviewing Traditional Win32 Processes An Overview of Threads Interacting with Processes Under the.net Platform Enumerating Running Processes Investigating a Specific Process Investigating a Process s Thread Set Investigating a Process s Module Set Starting and Stopping Processes Programmatically Understanding.NET Application Domains Enumerating a Process s AppDomains Programmatically Creating New AppDomains Programmatically Unloading AppDomains Understanding Object Context Boundaries Context-Agile and Context-Bound Types Defining a Context-Bound Object Inspecting an Object s Context Summarizing Processes, AppDomains, and Context

18 CONTENTS xix Hosting the Common Language Runtime Side-by-Side Execution of the CLR Loading a Specific Version of the CLR Additional CLR Hosts Summary CHAPTER 14 Building Multithreaded Applications The Process/AppDomain/Context/Thread Relationship The Problem of Concurrency and the Role of Thread Synchronization A Brief Review of the.net Delegate The Asynchronous Nature of Delegates The BeginInvoke() and EndInvoke() Methods The System.IAsyncResult Interface Invoking a Method Asynchronously Synchronizing the Calling Thread The Role of the AsyncCallback Delegate The Role of the AsyncResult Class Passing and Receiving Custom State Data The System.Threading Namespace The System.Threading.Thread Class Obtaining Statistics About the Current Thread The Name Property The Priority Property Programmatically Creating Secondary Threads Working with the ThreadStart Delegate Working with the ParameterizedThreadStart Delegate Foreground Threads and Background Threads The Issue of Concurrency Synchronization Using the C# lock Keyword Synchronization Using the System.Threading.Monitor Type Synchronization Using the System.Threading.Interlocked Type Synchronization Using the [Synchronization] Attribute Programming with Timer Callbacks Understanding the CLR ThreadPool Summary CHAPTER 15 Understanding CIL and the Role of Dynamic Assemblies Reflecting on the Nature of CIL Programming Examining CIL Directives, Attributes, and Opcodes The Role of CIL Directives The Role of CIL Attributes

19 xx CONTENTS The Role of CIL Opcodes The CIL Opcode/CIL Mnemonic Distinction Pushing and Popping: The Stack-Based Nature of CIL Understanding Round-trip Engineering The Role of CIL Code Labels Interacting with CIL: Modifying an *.il File Compiling CIL Code Using ilasm.exe Compiling CIL Code Using SharpDevelop Compiling CIL Code Using ILIDE# The Role of peverify.exe Understanding CIL Directives and Attributes Specifying Externally Referenced Assemblies in CIL Defining the Current Assembly in CIL Defining Namespaces in CIL Defining Class Types in CIL Defining and Implementing Interfaces in CIL Defining Structures in CIL Defining Enums in CIL Compiling the CILTypes.il file NET Base Class Library, C#, and CIL Data Type Mappings Defining Type Members in CIL Defining Field Data in CIL Defining Type Constructors in CIL Defining Properties in CIL Defining Member Parameters Examining CIL Opcodes Considering the.maxstack Directive Declaring Local Variables in CIL Mapping Parameters to Local Variables in CIL The Hidden this Reference Representing Iteration Constructs in CIL Building a.net Assembly with CIL Building CILCars.dll Building CILCarClient.exe Understanding Dynamic Assemblies Exploring the System.Reflection.Emit Namespace The Role of the System.Reflection.Emit.ILGenerator Emitting a Dynamic Assembly Emitting the Assembly and Module Set The Role of the ModuleBuilder Type Emitting the HelloClass Type and the String Member Variable Emitting the Constructors Emitting the HelloWorld() Method Using the Dynamically Generated Assembly

20 CONTENTS xxi A Brief Word Regarding System.CodeDOM Summary PART 4 Programming with the.net Libraries CHAPTER 16 The System.IO Namespace Exploring the System.IO Namespace The Directory(Info) and File(Info) Types The Abstract FileSystemInfo Base Class Working with the DirectoryInfo Type The FileAttributes Enumeration Enumerating Files with the DirectoryInfo Type Creating Subdirectories with the DirectoryInfo Type Working with the Directory Type Working with the DriveInfo Class Type Working with the FileInfo Class The FileInfo.Create() Method The FileInfo.Open() Method The FileInfo.OpenRead() and FileInfo.OpenWrite() Methods The FileInfo.OpenText() Method The FileInfo.CreateText() and FileInfo.AppendText() Methods Working with the File Type New.NET 2.0 File Members The Abstract Stream Class Working with FileStreams Working with StreamWriters and StreamReaders Writing to a Text File Reading from a Text File Directly Creating StreamWriter/StreamReader Types Working with StringWriters and StringReaders Working with BinaryWriters and BinaryReaders Programmatically Watching Files Performing Asynchronous File I/O Summary CHAPTER 17 Understanding Object Serialization Understanding Object Serialization The Role of Object Graphs Configuring Objects for Serialization Public Fields, Private Fields, and Public Properties

21 xxii CONTENTS Choosing a Serialization Formatter The IFormatter and IRemotingFormatting Interfaces Type Fidelity Among the Formatters Serializing Objects Using the BinaryFormatter Deserializing Objects Using the BinaryFormatter Serializing Objects Using the SoapFormatter Serializing Objects Using the XmlSerializer Controlling the Generated XML Data Persisting Collections of Objects Customizing the Serialization Process A Deeper Look at Object Serialization Customizing Serialization Using ISerializable Customizing Serialization Using Attributes Versioning Serializable Objects Summary CHAPTER 18 The.NET Remoting Layer Defining.NET Remoting The.NET Remoting Namespaces Understanding the.net Remoting Framework Understanding Proxies and Messages Understanding Channels Revisiting the Role of.net Formatters All Together Now! A Brief Word Regarding Extending the Default Plumbing Terms of the.net Remoting Trade Object Marshaling Choices: MBR or MBV? Activation Choices for MBR Types: WKO or CAO? Stateful Configuration of WKO Types: Singleton or Single Call? Summarizing the Traits of MBR Object Types Basic Deployment of a.net Remoting Project Building Your First Distributed Application Building the General Assembly Building the Server Assembly Building the SimpleRemoteObjectClient.exe Assembly Testing the Remoting Application Understanding the ChannelServices Type Understanding the RemotingConfiguration Type Revisiting the Activation Mode of WKO Types Deploying the Server to a Remote Machine Leveraging the TCP Channel A Brief Word Regarding the IpcChannel

22 CONTENTS xxiii Remoting Configuration Files Building Server-Side *.config Files Building Client-Side *.config Files Working with MBV Objects Building the General Assembly Building the Server Assembly Building the Client Assembly Understanding Client-Activated Objects The Lease-Based Lifetime of CAO/WKO-Singleton Objects The Default Leasing Behavior Altering the Default Lease Characteristics Server-Side Lease Adjustment Client-Side Lease Adjustment Server-Side (and Client-Side) Lease Sponsorship Alternative Hosts for Remote Objects Hosting Remote Objects Using a Windows Service Hosting Remote Objects Using IIS Asynchronous Remoting The Role of the [OneWay] Attribute Summary CHAPTER 19 Building a Better Window with System.Windows.Forms Overview of the System.Windows.Forms Namespace Working with the Windows Forms Types Building a Main Window by Hand Honoring the Separation of Concerns The Role of the Application Class Fun with the Application Class The System.EventHandler Delegate The Anatomy of a Form The Functionality of the Control Class Fun with the Control Class Responding to the MouseMove Event Determining Which Mouse Button Was Clicked Responding to Keyboard Events The Functionality of the Form Class The Life Cycle of a Form Type Building Windows Applications with Visual Studio Enabling the Deprecated Controls Dissecting a Visual Studio 2005 Windows Forms Project Handling Events at Design Time The Program Class Autoreferenced Assemblies

23 xxiv CONTENTS Working with MenuStrips and ContextMenuStrips Adding a TextBox to the MenuStrip Creating a Context Menu Checking Menu Items Working with StatusStrips Designing the Menu System Designing the StatusStrip Working with the Timer Type Toggling the Display Displaying the Menu Selection Prompts Establishing a Ready State Working with ToolStrips Working with ToolStripContainers Building an MDI Application Building the Parent Form Building the Child Form Spawning Child Windows Summary CHAPTER 20 Rendering Graphical Data with GDI A Survey of the GDI+ Namespaces An Overview of the System.Drawing Namespace The System.Drawing Utility Types The Point(F) Type The Rectangle(F) Type The Region Class Understanding the Graphics Class Understanding Paint Sessions Invalidating the Form s Client Area Obtaining a Graphics Object Outside of a Paint Event Handler Regarding the Disposal of a Graphics Object The GDI+ Coordinate Systems The Default Unit of Measure Specifying an Alternative Unit of Measure Specifying an Alternative Point of Origin Defining a Color Value The ColorDialog Class Manipulating Fonts Working with Font Families Working with Font Faces and Font Sizes Enumerating Installed Fonts The FontDialog Class Survey of the System.Drawing.Drawing2D Namespace

24 CONTENTS xxv Working with Pens Working with Pen Caps Working with Brushes Working with HatchBrushes Working with TextureBrushes Working with LinearGradientBrushes Rendering Images Dragging and Hit Testing the PictureBox Control Hit Testing Rendered Images Hit Testing Nonrectangular Images Understanding the.net Resource Format The System.Resources Namespace Programmatically Creating an *.resx File Building the *.resources File Binding the *.resources File into a.net Assembly Working with ResourceWriters Generating Resources using Visual Studio Programmatically Reading Resources Summary CHAPTER 21 Programming with Windows Forms Controls The World of Windows Forms Controls Adding Controls to Forms by Hand The Control.ControlCollection Type Adding Controls to Forms Using Visual Studio Working with the Basic Controls Fun with Labels Fun with TextBoxes Fun with MaskedTextBoxes Fun with Buttons Fun with CheckBoxes, RadioButtons, and GroupBoxes Fun with CheckedListBoxes Fun with ListBoxes Fun with ComboBoxes Configuring the Tab Order The Tab Order Wizard Setting the Form s Default Input Button Working with More Exotic Controls Fun with MonthCalendars Fun with ToolTips Fun with TabControls Fun with TrackBars Fun with Panels

25 xxvi CONTENTS Fun with the UpDown Controls Fun with ErrorProviders Fun with TreeViews Fun with WebBrowsers Building Custom Windows Forms Controls Creating the Images Building the Design-Time UI Implementing the Core CarControl Defining the Custom Events Defining the Custom Properties Controlling the Animation Rendering the Pet Name Testing the CarControl Type Building a Custom CarControl Form Host The Role of the System.ComponentModel Namespace Enhancing the Design-Time Appearance of CarControl Defining a Default Property and Default Event Specifying a Custom Toolbox Bitmap Building Custom Dialog Boxes The DialogResult Property Understanding Form Inheritance Dynamically Positioning Windows Forms Controls The Anchor Property The Dock Property Table and Flow Layout Summary CHAPTER 22 Database Access with ADO.NET A High-Level Definition of ADO.NET The Two Faces of ADO.NET Understanding ADO.NET Data Providers Microsoft-Supplied Data Providers Select Third-Party Data Providers Additional ADO.NET Namespaces The System.Data Types The Role of the IDbConnection Interface The Role of the IDbTransaction Interface The Role of the IDbCommand Interface The Role of the IDbDataParameter and IDataParameter Interfaces The Role of the IDbDataAdapter and IDataAdapter Interfaces The Role of the IDataReader and IDataRecord Interfaces Abstracting Data Providers Using Interfaces Increasing Flexibility Using Application Configuration Files

26 CONTENTS xxvii The.NET 2.0 Provider Factory Model Registered Data Provider Factories A Complete Data Provider Factory Example The <connectionstrings> Element Installing the Cars Database Connecting to the Cars Database from Visual Studio Understanding the Connected Layer of ADO.NET Working with Connection Objects Working with.net 2.0 ConnectionStringBuilders Working with Command Objects Working with Data Readers Obtaining Multiple Result Sets Using a Data Reader Modifying Tables Using Command Objects Inserting New Records Deleting Existing Records Updating Existing Records Working with Parameterized Command Objects Specifying Parameters Using the DbParameter Type Executing a Stored Procedure Using DbCommand Asynchronous Data Access Under.NET Understanding the Disconnected Layer of ADO.NET Understanding the Role of the DataSet Members of the DataSet Working with DataColumns Building a DataColumn Enabling Autoincrementing Fields Adding a DataColumn to a DataTable Working with DataRows Understanding the DataRow.RowState Property Working with DataTables Working with.net 2.0 DataTableReaders Persisting DataSets (and DataTables) As XML Binding DataTables to User Interfaces Programmatically Deleting Rows Applying Filters and Sort Orders Updating Rows Working with the DataView Type Working with Data Adapters Filling a DataSet Using a Data Adapter Mapping Database Names to Friendly Names Updating a Database Using Data Adapter Objects Setting the InsertCommand Property Setting the UpdateCommand Property Setting the DeleteCommand Property

27 xxviii CONTENTS Autogenerating SQL Commands Using CommandBuilder Types Multitabled DataSets and DataRelation Objects Navigating Between Related Tables We re Off to See the (Data) Wizard Strongly Typed DataSets The Autogenerated Data Component Summary PART 5 Web Applications and XML Web Services CHAPTER 23 ASP.NET 2.0 Web Pages and Web Controls The Role of HTTP Understanding Web Applications and Web Servers Working with IIS Virtual Directories The ASP.NET 2.0 Development Server The Role of HTML HTML Document Structure HTML Form Development Building an HTML-Based User Interface The Role of Client-Side Scripting A Client-Side Scripting Example Validating the default.htm Form Data Submitting the Form Data (GET and POST) Building a Classic ASP Page Responding to POST Submissions Problems with Classic ASP Major Benefits of ASP.NET 1.x Major Enhancements of ASP.NET The ASP.NET 2.0 Namespaces The ASP.NET Web Page Code Model Working with the Single-File Page Model Working with the Code-behind Page Model Details of an ASP.NET Website Directory Structure The Role of the Bin folder The Role of the App_Code Folder The ASP.NET 2.0 Page Compilation Cycle Compilation Cycle for Single-File Pages Compilation Cycle for Multifile Pages The Inheritance Chain of the Page Type The System.Web.UI.Page Type

28 CONTENTS xxix Interacting with the Incoming HTTP Request Obtaining Brower Statistics Access to Incoming Form Data The IsPostBack Property Interacting with the Outgoing HTTP Response Emitting HTML Content Redirecting Users The Life Cycle of an ASP.NET Web Page The Role of the AutoEventWireUp Attribute The Error Event Understanding the Nature of Web Controls Qualifying Server-Side Event Handling The AutoPostBack Property The System.Web.UI.Control Type Enumerating Contained Controls Dynamically Adding (and Removing) Controls Key Members of the System.Web.UI.WebControls.WebControl Type Categories of ASP.NET Web Controls A Brief Word Regarding System.Web.UI.HtmlControls Building a Simple ASP.NET 2.0 Website Working with Master Pages Defining the Default.aspx Content Page Designing the Inventory Content Page Designing the Build a Car Content Page The Role of the Validation Controls The RequiredFieldValidator The RegularExpressionValidator The RangeValidator The CompareValidator Creating Validation Summaries Summary CHAPTER 24 ASP.NET 2.0 Web Applications The Issue of State ASP.NET State Management Techniques Understanding the Role of ASP.NET View State Demonstrating View State Adding Custom View State Data A Brief Word Regarding Control State The Role of the Global.asax File The Global Last Chance Exception Event Handler The HttpApplication Base Class

29 xxx CONTENTS Understanding the Application/Session Distinction Maintaining Application-Level State Data Modifying Application Data Handling Web Application Shutdown Working with the Application Cache Fun with Data Caching Modifying the *.aspx File Maintaining Session Data Additional Members of HttpSessionState Understanding Cookies Creating Cookies Reading Incoming Cookie Data Configuring Your ASP.NET Web Application Using Web.config Enabling Tracing via <trace> Customizing Error Output via <customerrors> Options for Storing State via <sessionstate> The ASP.NET 2.0 Site Administration Utility Configuration Inheritance Summary CHAPTER 25 Understanding XML Web Services The Role of XML Web Services Benefits of XML Web Services Defining an XML Web Service Client The Building Blocks of an XML Web Service Previewing XML Web Service Discovery Previewing XML Web Service Description Previewing the Transport Protocol The.NET XML Web Service Namespaces Examining the System.Web.Services Namespace Building an XML Web Service by Hand Testing Your XML Web Service Using WebDev.WebServer.exe Testing Your Web Service Using IIS Viewing the WSDL Contract The Autogenerated Test Page Providing a Custom Test Page Building an XML Web Service Using Visual Studio Implementing the TellFortune() Web Method The Role of the WebService Base Class Understanding the [WebService] Attribute The Effect of the Namespace and Description Properties The Name Property

30 CONTENTS xxxi Understanding the [WebServiceBinding] Attribute Ignoring BP 1.1 Conformance Verification Disabling BP 1.1 Conformance Verification Understanding the [WebMethod] Attribute Documenting a Web Method via the Description Property Avoiding WSDL Name Clashes via the MessageName Property Building Stateful Web Services via the EnableSession Property Exploring the Web Service Description Language (WSDL) Defining a WSDL Document The <types> Element The <message> Element The <porttype> Element The <binding> Element The <service> Element Revisiting the XML Web Service Wire Protocols HTTP GET and HTTP POST Bindings SOAP Bindings The wsdl.exe Command-Line Utility Transforming WSDL into a Server-Side XML Web Service Skeleton Transforming WSDL into a Client-Side Proxy Examining the Proxy Code The Default Constructor Synchronous Invocation Support Asynchronous Invocation Support Building the Client Application Generating Proxy Code Using Visual Studio Exposing Custom Types from Web Methods Exposing Arrays Exposing Structures Exposing ADO.NET DataSets A Windows Forms Client Client-Side Type Representation Understanding the Discovery Service Protocol (UDDI) Interacting with UDDI via VS.NET Summary INDEX

31 About the Author ANDREW TROELSEN is a Microsoft MVP (Visual C#) and a partner, trainer, and consultant with Intertech Training ( a.net and J2EE developer education center. He is the author of numerous books, including Developer s Workshop to COM and ATL 3.0 (Wordware Publishing, 2000), COM and.net Interoperability (Apress, 2002), Visual Basic.NET and the.net Platform: An Advanced Guide (Apress, 2001), and the award-winning C# and the.net Platform (Apress, 2003). Andrew has also authored numerous articles on.net for MSDN online and MacTech (where he explored the platform-independent aspects of the.net platform), and he is a frequent speaker at various.net conferences and user groups. Andrew currently lives in Minneapolis, Minnesota, with his wife, Amanda. He spends his free time waiting for the Wild to win the Stanley Cup, the Vikings to win the Super Bowl (before he retires would be nice), and the Timberwolves to grab numerous NBA championship titles. xxxiii

Contents. Introducing C# and the.net Platform...1

Contents. Introducing C# and the.net Platform...1 About the Author... xxi Acknowledgments... xxiii Introduction...xxv Part One Introducing C# and the.net Platform...1 Chapter 1 The Philosophy of.net... 3 Understanding the Previous State of Affairs...

More information

Pro Perl Parsing. Christopher M. Frenz

Pro Perl Parsing. Christopher M. Frenz Pro Perl Parsing Christopher M. Frenz Pro Perl Parsing Copyright 2005 by Christopher M. Frenz Lead Editors: Jason Gilmore and Matthew Moodie Technical Reviewer: Teodor Zlatanov Editorial Board: Steve Anglin,

More information

Objective of the Course: (Why the course?) Brief Course outline: (Main headings only) C# Question Bank Chapter1: Philosophy of.net

Objective of the Course: (Why the course?) Brief Course outline: (Main headings only) C# Question Bank Chapter1: Philosophy of.net Objective of the Course: (Why the course?) To provide a brief introduction to the.net platform and C# programming language constructs. Enlighten the students about object oriented programming, Exception

More information

Apex TG India Pvt. Ltd.

Apex TG India Pvt. Ltd. (Core C# Programming Constructs) Introduction of.net Framework 4.5 FEATURES OF DOTNET 4.5 CLR,CLS,CTS, MSIL COMPILER WITH TYPES ASSEMBLY WITH TYPES Basic Concepts DECISION CONSTRUCTS LOOPING SWITCH OPERATOR

More information

COPYRIGHTED MATERIAL. Contents. Part I: C# Fundamentals 1. Chapter 1: The.NET Framework 3. Chapter 2: Getting Started with Visual Studio

COPYRIGHTED MATERIAL. Contents. Part I: C# Fundamentals 1. Chapter 1: The.NET Framework 3. Chapter 2: Getting Started with Visual Studio Introduction XXV Part I: C# Fundamentals 1 Chapter 1: The.NET Framework 3 What s the.net Framework? 3 Common Language Runtime 3.NET Framework Class Library 4 Assemblies and the Microsoft Intermediate Language

More information

Companion ebook Available Pro Android Includes Android 1.5 SOURCE CODE ONLINE US $44.99

Companion ebook Available Pro Android Includes Android 1.5 SOURCE CODE ONLINE US $44.99 The EXPERT s VOIce in Open Source Pro Android Covers Google s Android Platform and its fundamental APIs, from basic concepts such as Android resources, intents, and content providers to advanced topics

More information

INTRODUCTION TO.NET. Domain of.net D.N.A. Architecture One Tier Two Tier Three Tier N-Tier THE COMMON LANGUAGE RUNTIME (C.L.R.)

INTRODUCTION TO.NET. Domain of.net D.N.A. Architecture One Tier Two Tier Three Tier N-Tier THE COMMON LANGUAGE RUNTIME (C.L.R.) INTRODUCTION TO.NET Domain of.net D.N.A. Architecture One Tier Two Tier Three Tier N-Tier THE COMMON LANGUAGE RUNTIME (C.L.R.) CLR Architecture and Services The.Net Intermediate Language (IL) Just- In-

More information

CHAPTER 1: INTRODUCING C# 3

CHAPTER 1: INTRODUCING C# 3 INTRODUCTION xix PART I: THE OOP LANGUAGE CHAPTER 1: INTRODUCING C# 3 What Is the.net Framework? 4 What s in the.net Framework? 4 Writing Applications Using the.net Framework 5 What Is C#? 8 Applications

More information

C# Programming in the.net Framework

C# Programming in the.net Framework 50150B - Version: 2.1 04 May 2018 C# Programming in the.net Framework C# Programming in the.net Framework 50150B - Version: 2.1 6 days Course Description: This six-day instructor-led course provides students

More information

Microsoft. Microsoft Visual C# Step by Step. John Sharp

Microsoft. Microsoft Visual C# Step by Step. John Sharp Microsoft Microsoft Visual C#- 2010 Step by Step John Sharp Table of Contents Acknowledgments Introduction xvii xix Part I Introducing Microsoft Visual C# and Microsoft Visual Studio 2010 1 Welcome to

More information

Course Hours

Course Hours Programming the.net Framework 4.0/4.5 with C# 5.0 Course 70240 40 Hours Microsoft's.NET Framework presents developers with unprecedented opportunities. From 'geoscalable' web applications to desktop and

More information

Microsoft Visual C# Step by Step. John Sharp

Microsoft Visual C# Step by Step. John Sharp Microsoft Visual C# 2013 Step by Step John Sharp Introduction xix PART I INTRODUCING MICROSOFT VISUAL C# AND MICROSOFT VISUAL STUDIO 2013 Chapter 1 Welcome to C# 3 Beginning programming with the Visual

More information

DOT NET Syllabus (6 Months)

DOT NET Syllabus (6 Months) DOT NET Syllabus (6 Months) THE COMMON LANGUAGE RUNTIME (C.L.R.) CLR Architecture and Services The.Net Intermediate Language (IL) Just- In- Time Compilation and CLS Disassembling.Net Application to IL

More information

CHAPTER 1: INTRODUCTION TO THE IDE 3

CHAPTER 1: INTRODUCTION TO THE IDE 3 INTRODUCTION xxvii PART I: IDE CHAPTER 1: INTRODUCTION TO THE IDE 3 Introducing the IDE 3 Different IDE Appearances 4 IDE Configurations 5 Projects and Solutions 6 Starting the IDE 6 Creating a Project

More information

Building Spring 2 Enterprise Applications

Building Spring 2 Enterprise Applications Building Spring 2 Enterprise Applications Interface 21 with Bram Smeets and Seth Ladd Building Spring 2 Enterprise Applications Copyright 2007 by Interface 21, Bram Smeets, Seth Ladd All rights reserved.

More information

C# 6.0 and the.net 4.6 Framework / Andrew Troelsen, Philip Japikse. 7th ed. New York, cop Spis treści

C# 6.0 and the.net 4.6 Framework / Andrew Troelsen, Philip Japikse. 7th ed. New York, cop Spis treści C# 6.0 and the.net 4.6 Framework / Andrew Troelsen, Philip Japikse. 7th ed. New York, cop. 2015 Spis treści About the Authors About the Technical Reviewer Acknowledgments Introduction lvii lix lxi lxiii

More information

Contents. Figures. Tables. Examples. Foreword. Preface. 1 Basics of Java Programming 1. xix. xxi. xxiii. xxvii. xxix

Contents. Figures. Tables. Examples. Foreword. Preface. 1 Basics of Java Programming 1. xix. xxi. xxiii. xxvii. xxix PGJC4_JSE8_OCA.book Page ix Monday, June 20, 2016 2:31 PM Contents Figures Tables Examples Foreword Preface xix xxi xxiii xxvii xxix 1 Basics of Java Programming 1 1.1 Introduction 2 1.2 Classes 2 Declaring

More information

Object-Oriented Programming in C# (VS 2012)

Object-Oriented Programming in C# (VS 2012) Object-Oriented Programming in C# (VS 2012) This thorough and comprehensive course is a practical introduction to programming in C#, utilizing the services provided by.net. This course emphasizes the C#

More information

DOT NET SYLLABUS FOR 6 MONTHS

DOT NET SYLLABUS FOR 6 MONTHS DOT NET SYLLABUS FOR 6 MONTHS INTRODUCTION TO.NET Domain of.net D.N.A. Architecture One Tier Two Tier Three Tier N-Tier THE COMMON LANGUAGE RUNTIME (C.L.R.) CLR Architecture and Services The.Net Intermediate

More information

Object-Oriented Programming in C# (VS 2015)

Object-Oriented Programming in C# (VS 2015) Object-Oriented Programming in C# (VS 2015) This thorough and comprehensive 5-day course is a practical introduction to programming in C#, utilizing the services provided by.net. This course emphasizes

More information

C# 6.0 in a nutshell / Joseph Albahari & Ben Albahari. 6th ed. Beijin [etc.], cop Spis treści

C# 6.0 in a nutshell / Joseph Albahari & Ben Albahari. 6th ed. Beijin [etc.], cop Spis treści C# 6.0 in a nutshell / Joseph Albahari & Ben Albahari. 6th ed. Beijin [etc.], cop. 2016 Spis treści Preface xi 1. Introducing C# and the.net Framework 1 Object Orientation 1 Type Safety 2 Memory Management

More information

Date on Database. Writings C. J. Date

Date on Database. Writings C. J. Date Date on Database Writings 2000 2006 C. J. Date Date on Database: Writings 2000 2006 Copyright 2006 by C. J. Date All rights reserved. No part of this work may be reproduced or transmitted in any form or

More information

Uka Tarsadia University MCA ( 3rd Semester)/M.Sc.(CA) (1st Semester) Course : / Visual Programming Question Bank

Uka Tarsadia University MCA ( 3rd Semester)/M.Sc.(CA) (1st Semester) Course : / Visual Programming Question Bank Unit 1 Introduction to.net Platform Q: 1 Answer in short. 1. Which three main components are available in.net framework? 2. List any two new features added in.net framework 4.0 which is not available in

More information

C# Programming: From Problem Analysis to Program Design. Fourth Edition

C# Programming: From Problem Analysis to Program Design. Fourth Edition C# Programming: From Problem Analysis to Program Design Fourth Edition Preface xxi INTRODUCTION TO COMPUTING AND PROGRAMMING 1 History of Computers 2 System and Application Software 4 System Software 4

More information

Web Standards Creativity: Innovations in Web Design with XHTML, CSS, and DOM Scripting

Web Standards Creativity: Innovations in Web Design with XHTML, CSS, and DOM Scripting Web Standards Creativity: Innovations in Web Design with XHTML, CSS, and DOM Scripting Cameron Adams Mark Boulton Andy Clarke Simon Collison Jeff Croft Derek Featherstone Ian Lloyd Ethan Marcotte Dan Rubin

More information

Silverlight and ASP.NET Revealed. Matthew MacDonald

Silverlight and ASP.NET Revealed. Matthew MacDonald Silverlight and ASP.NET Revealed Matthew MacDonald Silverlight and ASP.NET Revealed Copyright 2007 by Matthew MacDonald All rights reserved. No part of this work may be reproduced or transmitted in any

More information

.NET 2.0 Interoperability Recipes

.NET 2.0 Interoperability Recipes .NET 2.0 Interoperability Recipes A Problem-Solution Approach Bruce Bukovics .NET 2.0 Interoperability Recipes: A Problem-Solution Approach Copyright 2006 by Bruce Bukovics All rights reserved. No part

More information

OVERVIEW ENVIRONMENT PROGRAM STRUCTURE BASIC SYNTAX DATA TYPES TYPE CONVERSION

OVERVIEW ENVIRONMENT PROGRAM STRUCTURE BASIC SYNTAX DATA TYPES TYPE CONVERSION Program: C#.Net (Basic with advance) Duration: 50hrs. C#.Net OVERVIEW Strong Programming Features of C# ENVIRONMENT The.Net Framework Integrated Development Environment (IDE) for C# PROGRAM STRUCTURE Creating

More information

Java Quick Syntax Reference. Second Edition. Mikael Olsson

Java Quick Syntax Reference. Second Edition. Mikael Olsson Java Quick Syntax Reference Second Edition Mikael Olsson Java Quick Syntax Reference Second Edition Mikael Olsson Java Quick Syntax Reference Mikael Olsson Hammarland, Länsi-Suomi, Finland ISBN-13 (pbk):

More information

.NET-6Weeks Project Based Training

.NET-6Weeks Project Based Training .NET-6Weeks Project Based Training Core Topics 1. C# 2. MS.Net 3. ASP.NET 4. 1 Project MS.NET MS.NET Framework The.NET Framework - an Overview Architecture of.net Framework Types of Applications which

More information

Pro.NET 4 Parallel Programming in C#

Pro.NET 4 Parallel Programming in C# Pro.NET 4 Parallel Programming in C# Adam Freeman Pro.NET 4 Parallel Programming in C# Copyright 2010 by Adam Freeman All rights reserved. No part of this work may be reproduced or transmitted in any form

More information

Word Business Documents

Word Business Documents THE EXPERT S VOICE IN OFFICE Beginning Microsoft Word Business Documents From Novice to Professional Learn How to Create Specialized Business Documents with Microsoft Word James J. Marshall Beginning Microsoft

More information

Programming C# 5.0. Ian Griffiths O'REILLY' Beijing Cambridge * Farnham Kbln Sebastopol Tokyo

Programming C# 5.0. Ian Griffiths O'REILLY' Beijing Cambridge * Farnham Kbln Sebastopol Tokyo Programming C# 5.0 Ian Griffiths O'REILLY' Beijing Cambridge * Farnham Kbln Sebastopol Tokyo Preface xvii 1. Introducing C# 1 Why C#? 1 Why Not C#? 3 C#'s Defining Features 5 Managed Code and the CLR 7

More information

C# Syllabus. MS.NET Framework Introduction

C# Syllabus. MS.NET Framework Introduction C# Syllabus MS.NET Framework Introduction The.NET Framework - an Overview Framework Components Framework Versions Types of Applications which can be developed using MS.NET MS.NET Base Class Library MS.NET

More information

CONTENTS. PART 1 Structured Programming 1. 1 Getting started 3. 2 Basic programming elements 17

CONTENTS. PART 1 Structured Programming 1. 1 Getting started 3. 2 Basic programming elements 17 List of Programs xxv List of Figures xxix List of Tables xxxiii Preface to second version xxxv PART 1 Structured Programming 1 1 Getting started 3 1.1 Programming 3 1.2 Editing source code 5 Source code

More information

Weiss Chapter 1 terminology (parenthesized numbers are page numbers)

Weiss Chapter 1 terminology (parenthesized numbers are page numbers) Weiss Chapter 1 terminology (parenthesized numbers are page numbers) assignment operators In Java, used to alter the value of a variable. These operators include =, +=, -=, *=, and /=. (9) autoincrement

More information

C++ Quick Syntax Reference

C++ Quick Syntax Reference C++ Quick Syntax Reference Mikael Olsson C++ Quick Syntax Reference Copyright 2013 by Mikael Olsson This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part

More information

Object-Oriented Programming

Object-Oriented Programming Object-Oriented Programming 1. What is object-oriented programming (OOP)? OOP is a technique to develop logical modules, such as classes that contain properties, methods, fields, and events. An object

More information

"Charting the Course... MOC Programming in C# with Microsoft Visual Studio Course Summary

Charting the Course... MOC Programming in C# with Microsoft Visual Studio Course Summary Course Summary NOTE - The course delivery has been updated to Visual Studio 2013 and.net Framework 4.5! Description The course focuses on C# program structure, language syntax, and implementation details

More information

Expert C++/CLI:.NET for Visual C++ Programmers

Expert C++/CLI:.NET for Visual C++ Programmers Expert C++/CLI:.NET for Visual C++ Programmers Marcus Heege Contents About the Author About the Technical Reviewer Acknowledgments xiii xv xvii CHAPTER 1 Why C++/CLI? 1 Extending C++ with.net Features

More information

Mastering VB.NET using Visual Studio 2010 Course Length: 5 days Price: $2,500

Mastering VB.NET using Visual Studio 2010 Course Length: 5 days Price: $2,500 Mastering VB.NET using Visual Studio 2010 Course Length: 5 days Price: $2,500 Summary Each day there will be a combination of presentations, code walk-throughs, and handson projects. The final project

More information

MCSA Universal Windows Platform. A Success Guide to Prepare- Programming in C# edusum.com

MCSA Universal Windows Platform. A Success Guide to Prepare- Programming in C# edusum.com 70-483 MCSA Universal Windows Platform A Success Guide to Prepare- Programming in C# edusum.com Table of Contents Introduction to 70-483 Exam on Programming in C#... 2 Microsoft 70-483 Certification Details:...

More information

Programming in Visual Basic with Microsoft Visual Studio 2010

Programming in Visual Basic with Microsoft Visual Studio 2010 Programming in Visual Basic with Microsoft Visual Studio 2010 Course 10550; 5 Days, Instructor-led Course Description This course teaches you Visual Basic language syntax, program structure, and implementation

More information

DOT NET COURSE BROCHURE

DOT NET COURSE BROCHURE Page 1 1Pointer Technology Chacko Towers,Anna nagar Main Road, Anna Nager(Annai Insititute 2nd Floor) Pondicherry-05 Mobile :+91-9600444787,9487662326 Website : http://www.1pointer.com/ Email : info@1pointer.com/onepointertechnology@gmail.com

More information

Learning C# 3.0. Jesse Liberty and Brian MacDonald O'REILLY. Beijing Cambridge Farnham Köln Sebastopol Taipei Tokyo

Learning C# 3.0. Jesse Liberty and Brian MacDonald O'REILLY. Beijing Cambridge Farnham Köln Sebastopol Taipei Tokyo Learning C# 3.0 Jesse Liberty and Brian MacDonald O'REILLY Beijing Cambridge Farnham Köln Sebastopol Taipei Tokyo Table of Contents Preface xv 1. C# and.net Programming 1 Installing C# Express 2 C# 3.0

More information

Pro Apache Beehive KUNAL MITTAL AND SRINIVAS KANCHANAVALLY

Pro Apache Beehive KUNAL MITTAL AND SRINIVAS KANCHANAVALLY Pro Apache Beehive KUNAL MITTAL AND SRINIVAS KANCHANAVALLY Pro Apache Beehive Copyright 2005 by Kunal Mittal and Srinivas Kanchanavally All rights reserved. No part of this work may be reproduced or transmitted

More information

PROGRAMMING IN VISUAL BASIC WITH MICROSOFT VISUAL STUDIO Course: 10550A; Duration: 5 Days; Instructor-led

PROGRAMMING IN VISUAL BASIC WITH MICROSOFT VISUAL STUDIO Course: 10550A; Duration: 5 Days; Instructor-led CENTER OF KNOWLEDGE, PATH TO SUCCESS Website: PROGRAMMING IN VISUAL BASIC WITH MICROSOFT VISUAL STUDIO 2010 Course: 10550A; Duration: 5 Days; Instructor-led WHAT YOU WILL LEARN This course teaches you

More information

Foundations of JSP Design Patterns

Foundations of JSP Design Patterns Foundations of JSP Design Patterns ANDREW PATZER EDITED BY MATTHEW MOODIE APress Media, LLC Foundatlons of JSP Design Patterns Copyright O 2004 by Andrew Patzer, Matthew Moodle Originally published by

More information

C# Programming. Unit 1: Introducing C# and the.net FrameworkThis module explains the.net Framework, and using C# and

C# Programming. Unit 1: Introducing C# and the.net FrameworkThis module explains the.net Framework, and using C# and C# Programming 1. Sound Knowledge of C++. Course Summary: This course presents Microsoft's C# programming language and the use of Visual Studio 2008 or 2010 to develop Windows applications using the.net

More information

Web Development, Silverlight, and

Web Development, Silverlight, and The EXPERT s VOIce in.net Beginning Web Development, Silverlight, and ASP.NET AJAX From Novice to Professional Learn how to build web applications using ASP.NET AJAX, WPF, WCF, and WF, as well as Silverlight.

More information

University of West Bohemia in Pilsen. Faculty of Applied Sciences. Department of Computer Science and Engineering DIPLOMA THESIS

University of West Bohemia in Pilsen. Faculty of Applied Sciences. Department of Computer Science and Engineering DIPLOMA THESIS University of West Bohemia in Pilsen Faculty of Applied Sciences Department of Computer Science and Engineering DIPLOMA THESIS Pilsen, 2003 Ivo Hanák University of West Bohemia in Pilsen Faculty of Applied

More information

SECURED PROGRAMMING IN.NET DETAILED TRAINING CONTENT INDUSTRIAL TRAINING PROGRAM ( )

SECURED PROGRAMMING IN.NET DETAILED TRAINING CONTENT INDUSTRIAL TRAINING PROGRAM ( ) SECURED PROGRAMMING IN.NET DETAILED TRAINING CONTENT INDUSTRIAL TRAINING PROGRAM (2013-2014) MODULE: C# PROGRAMMING CHAPTER 1: INTRODUCING.NET AND C# 1.1 INTRODUCTION TO LANGUAGES C++ C# DIFFERENCES BETWEEN

More information

Beginning ASP.NET. 4.5 in C# Matthew MacDonald

Beginning ASP.NET. 4.5 in C# Matthew MacDonald Beginning ASP.NET 4.5 in C# Matthew MacDonald Contents About the Author About the Technical Reviewers Acknowledgments Introduction xxvii xxix xxxi xxxiii UPart 1: Introducing.NET. 1 & Chapter 1: The Big

More information

"Charting the Course... Java Programming Language. Course Summary

Charting the Course... Java Programming Language. Course Summary Course Summary Description This course emphasizes becoming productive quickly as a Java application developer. This course quickly covers the Java language syntax and then moves into the object-oriented

More information

Raven: Scripting Java Builds with Ruby MATTHIEU RIOU

Raven: Scripting Java Builds with Ruby MATTHIEU RIOU Raven: Scripting Java Builds with Ruby MATTHIEU RIOU Raven: Scripting Java Builds with Ruby Copyright 2007 by Matthieu Riou All rights reserved. No part of this work may be reproduced or transmitted in

More information

INTERNAL ASSESSMENT TEST 1 ANSWER KEY

INTERNAL ASSESSMENT TEST 1 ANSWER KEY INTERNAL ASSESSMENT TEST 1 ANSWER KEY Subject & Code: C# Programming and.net-101s761 Name of the faculty: Ms. Pragya Q.No Questions 1 a) What is an assembly? Explain each component of an assembly. Answers:-

More information

Learning to Program in Visual Basic 2005 Table of Contents

Learning to Program in Visual Basic 2005 Table of Contents Table of Contents INTRODUCTION...INTRO-1 Prerequisites...INTRO-2 Installing the Practice Files...INTRO-3 Software Requirements...INTRO-3 Installation...INTRO-3 Demonstration Applications...INTRO-3 About

More information

.Net. Course Content ASP.NET

.Net. Course Content ASP.NET .Net Course Content ASP.NET INTRO TO WEB TECHNOLOGIES HTML ü Client side scripting langs ü lls Architecture ASP.NET INTRODUCTION ü What is ASP.NET ü Image Technique and code behind technique SERVER SIDE

More information

Hierarchical inheritance: Contains one base class and multiple derived classes of the same base class.

Hierarchical inheritance: Contains one base class and multiple derived classes of the same base class. 1. What is C#? C# (pronounced "C sharp") is a simple, modern, object oriented, and type safe programming language. It will immediately be familiar to C and C++ programmers. C# combines the high productivity

More information

Programming in C# with Microsoft Visual Studio 2010

Programming in C# with Microsoft Visual Studio 2010 Programming in C# with Microsoft Visual Studio 2010 Course 10266; 5 Days, Instructor-led Course Description: The course focuses on C# program structure, language syntax, and implementation details with.net

More information

Introduce C# as Object Oriented programming language. Explain, tokens,

Introduce C# as Object Oriented programming language. Explain, tokens, Module 2 98 Assignment 1 Introduce C# as Object Oriented programming language. Explain, tokens, lexicals and control flow constructs. 99 The C# Family Tree C Platform Independence C++ Object Orientation

More information

Developing Microsoft.NET Applications for Windows (Visual Basic.NET)

Developing Microsoft.NET Applications for Windows (Visual Basic.NET) Developing Microsoft.NET Applications for Windows (Visual Basic.NET) Course Number: 2555 Length: 1 Day(s) Certification Exam This course will help you prepare for the following Microsoft Certified Professional

More information

Beginning Silverlight 3

Beginning Silverlight 3 Beginning Silverlight 3 From Novice to Professional Robert Lair Beginning Silverlight 3: From Novice to Professional Copyright 2009 by Robert Lair All rights reserved. No part of this work may be reproduced

More information

Department of Computer Applications

Department of Computer Applications MCA 512:.NET framework and C# [Part I : Medium Answer type Questions] Unit - 1 Q1. What different tools are available and used to develop.net Applications? Hint a).net Framework SDK b) ASP.NET Web Matrix

More information

"Charting the Course to Your Success!" MOC B Programming in C# Course Summary

Charting the Course to Your Success! MOC B Programming in C# Course Summary Course Summary Description This training course teaches developers the programming skills that are required for developers to create Windows applications using the C# language. During their five days in

More information

An Introduction to Object-Oriented Programming with Visual Basic.NET

An Introduction to Object-Oriented Programming with Visual Basic.NET An Introduction to Object-Oriented Programming with Visual Basic.NET DAN CLARK APress Media, LLC An Introduction to Object-Oriented Programming with Visual Basic.NET Copyright 2002 by Dan Clark Originally

More information

Absolute C++ Walter Savitch

Absolute C++ Walter Savitch Absolute C++ sixth edition Walter Savitch Global edition This page intentionally left blank Absolute C++, Global Edition Cover Title Page Copyright Page Preface Acknowledgments Brief Contents Contents

More information

10266 Programming in C Sharp with Microsoft Visual Studio 2010

10266 Programming in C Sharp with Microsoft Visual Studio 2010 10266 Programming in C Sharp with Microsoft Visual Studio 2010 Course Number: 10266A Category: Visual Studio 2010 Duration: 5 days Course Description The course focuses on C# program structure, language

More information

M Introduction to C# Programming with Microsoft.NET - 5 Day Course

M Introduction to C# Programming with Microsoft.NET - 5 Day Course Module 1: Getting Started This module presents the concepts that are central to the Microsoft.NET Framework and platform, and the Microsoft Visual Studio.NET integrated development environment (IDE); describes

More information

Java Fundamentals p. 1 The Origins of Java p. 2 How Java Relates to C and C++ p. 3 How Java Relates to C# p. 4 Java's Contribution to the Internet p.

Java Fundamentals p. 1 The Origins of Java p. 2 How Java Relates to C and C++ p. 3 How Java Relates to C# p. 4 Java's Contribution to the Internet p. Preface p. xix Java Fundamentals p. 1 The Origins of Java p. 2 How Java Relates to C and C++ p. 3 How Java Relates to C# p. 4 Java's Contribution to the Internet p. 5 Java Applets and Applications p. 5

More information

Objective-C Quick Syntax Reference

Objective-C Quick Syntax Reference Objective-C Quick Syntax Reference Matthew Campbell Objective-C Quick Syntax Reference Copyright 2014 by Matthew Campbell This work is subject to copyright. All rights are reserved by the Publisher, whether

More information

Pro Perl Parsing. Christopher M. Frenz

Pro Perl Parsing. Christopher M. Frenz Pro Perl Parsing Christopher M. Frenz Pro Perl Parsing Copyright 2005 by Christopher M. Frenz Lead Editors: Jason Gilmore and Matthew Moodie Technical Reviewer: Teodor Zlatanov Editorial Board: Steve Anglin,

More information

UNIT I An overview of Programming models Programmers Perspective

UNIT I An overview of Programming models Programmers Perspective UNIT I An overview of Programming models Programmers Perspective 1. C/Win32 API Programmer It is complex C is short/abrupt language Manual Memory Management, Ugly Pointer arithmetic, ugly syntactic constructs

More information

1 OBJECT-ORIENTED PROGRAMMING 1

1 OBJECT-ORIENTED PROGRAMMING 1 PREFACE xvii 1 OBJECT-ORIENTED PROGRAMMING 1 1.1 Object-Oriented and Procedural Programming 2 Top-Down Design and Procedural Programming, 3 Problems with Top-Down Design, 3 Classes and Objects, 4 Fields

More information

S.Sakthi Vinayagam Sr. AP/CSE, C.Arun AP/IT

S.Sakthi Vinayagam Sr. AP/CSE, C.Arun AP/IT Chettinad College of Engineering & Technology CS2014 C# &.NET Framework Part A Questions Unit I 1. Define Namespace. What are the uses of Namespace? A namespace is designed for providing a way to keep

More information

MATLAB Programming for Numerical Analysis. César Pérez López

MATLAB Programming for Numerical Analysis. César Pérez López MATLAB Programming for Numerical Analysis César Pérez López MATLAB Programming for Numerical Analysis Copyright 2014 by César Pérez López This work is subject to copyright. All rights are reserved by the

More information

Microsoft.NET Programming (C#, ASP.NET,ADO.NET, VB.NET, Crystal Report, Sql Server) Goal: Make the learner proficient in the usage of MS Technologies

Microsoft.NET Programming (C#, ASP.NET,ADO.NET, VB.NET, Crystal Report, Sql Server) Goal: Make the learner proficient in the usage of MS Technologies Microsoft.NET Programming (C#, ASP.NET,ADO.NET, VB.NET, Crystal Report, Sql Server) Goal: Make the learner proficient in the usage of MS Technologies for web applications development using ASP.NET, XML,

More information

RMAN Recipes for Oracle Database 11g

RMAN Recipes for Oracle Database 11g RMAN Recipes for Oracle Database 11g A Problem-Solution Approach Darl Kuhn, Sam Alapati, and Arup Nanda RMAN Recipes for Oracle Database 11g: A Problem-Solution Approach Copyright 2007 by Darl Kuhn, Sam

More information

J2ME Games with MIDP 2

J2ME Games with MIDP 2 J2ME Games with MIDP 2 CAROL HAMER APress Media, LLC J2ME Games with MIDP 2 Copyright ~ 2 0 0 4 by Carol Hamer Originally published by Apress in 2004 All rights reserved. No part of this work may be reproduced

More information

Preface... (vii) CHAPTER 1 INTRODUCTION TO COMPUTERS

Preface... (vii) CHAPTER 1 INTRODUCTION TO COMPUTERS Contents Preface... (vii) CHAPTER 1 INTRODUCTION TO COMPUTERS 1.1. INTRODUCTION TO COMPUTERS... 1 1.2. HISTORY OF C & C++... 3 1.3. DESIGN, DEVELOPMENT AND EXECUTION OF A PROGRAM... 3 1.4 TESTING OF PROGRAMS...

More information

WA1278 Introduction to Java Using Eclipse

WA1278 Introduction to Java Using Eclipse Lincoln Land Community College Capital City Training Center 130 West Mason Springfield, IL 62702 217-782-7436 www.llcc.edu/cctc WA1278 Introduction to Java Using Eclipse This course introduces the Java

More information

Visual Basic 2005 Recipes

Visual Basic 2005 Recipes The EXPERT s VOIce in.net Visual Basic 2005 Recipes A Problem-Solution Approach Learn practical solutions for your VB 2005 problems. Todd Herman, Allen Jones, Matthew MacDonald, and Rakesh Rajan Visual

More information

PESIT- Bangalore South Campus Hosur Road (1km Before Electronic city) Bangalore

PESIT- Bangalore South Campus Hosur Road (1km Before Electronic city) Bangalore PESIT- Bangalore South Campus Hosur Road (1km Before Electronic city) Bangalore 560 100 Department of MCA COURSE INFORMATION SHEET Programming Using C#.NET (13MCA53) 1. GENERAL INFORMATION: Academic Year:

More information

DEPARTMENT OF INFORMATION TECHNOLOGY Academic Year 2015-2016 QUESTION BANK-EVEN SEMESTER NAME OF THE SUBJECT SUBJECT CODE SEMESTER YEAR DEPARTMENT C# and.net Programming CS6001 VI III IT UNIT 1 PART A

More information

This tutorial has been prepared for the beginners to help them understand basics of c# Programming.

This tutorial has been prepared for the beginners to help them understand basics of c# Programming. About thetutorial C# is a simple, modern, general-purpose, object-oriented programming language developed by Microsoft within its.net initiative led by Anders Hejlsberg. This tutorial covers basic C# programming

More information

C# Programming Syllabus

C# Programming Syllabus C# Programming Syllabus Overview: Today C# is considered to be the most popular and modern Programming language. It belongs to "C" family and inherently has lots of things carried from C programming language.

More information

Python 3 for Absolute Beginners

Python 3 for Absolute Beginners Python 3 for Absolute Beginners Tim Hall and J-P Stacey Python 3 for Absolute Beginners Copyright 2009 by Tim Hall and J-P Stacey All rights reserved. No part of this work may be reproduced or transmitted

More information

Practical Ruby Gems. David Berube

Practical Ruby Gems. David Berube Practical Ruby Gems David Berube Practical Ruby Gems Copyright 2007 by David Berube All rights reserved. No part of this work may be reproduced or transmitted in any form or by any means, electronic or

More information

Java for Programmers Course (equivalent to SL 275) 36 Contact Hours

Java for Programmers Course (equivalent to SL 275) 36 Contact Hours Java for Programmers Course (equivalent to SL 275) 36 Contact Hours Course Overview This course teaches programmers the skills necessary to create Java programming system applications and satisfies the

More information

Pro MERN Stack. Full Stack Web App Development with Mongo, Express, React, and Node. Vasan Subramanian

Pro MERN Stack. Full Stack Web App Development with Mongo, Express, React, and Node. Vasan Subramanian Pro MERN Stack Full Stack Web App Development with Mongo, Express, React, and Node Vasan Subramanian Pro MERN Stack Vasan Subramanian Bangalore, Karnataka, India ISBN-13 (pbk): 978-1-4842-2652-0 ISBN-13

More information

UNIT 1 PART A PART B

UNIT 1 PART A PART B UNIT 1 PART A 1. List some of the new features that are unique to c# language? 2. State few words about the two important entities of.net frame work 3. What is.net? Name any 4 applications that are supported

More information

Saikat Banerjee Page 1

Saikat Banerjee Page 1 1. What s the advantage of using System.Text.StringBuilder over System.String? StringBuilder is more efficient in the cases, where a lot of manipulation is done to the text. Strings are immutable, so each

More information

Dot Net Online Training

Dot Net Online Training chakraitsolutions.com http://chakraitsolutions.com/dotnet-online-training/ Dot Net Online Training DOT NET Online Training CHAKRA IT SOLUTIONS TO LEARN ABOUT OUR UNIQUE TRAINING PROCESS: Title : Dot Net

More information

Beginning Ubuntu Linux

Beginning Ubuntu Linux Beginning Ubuntu Linux From Novice to Professional Keir Thomas Beginning Ubuntu Linux: From Novice to Professional Copyright 2006 by Keir Thomas All rights reserved. No part of this work may be reproduced

More information

Pro SQL Server 2008 Mirroring

Pro SQL Server 2008 Mirroring Pro SQL Server 2008 Mirroring Robert L. Davis, Ken Simmons Pro SQL Server 2008 Mirroring Copyright 2009 by Robert L. Davis, Ken Simmons All rights reserved. No part of this work may be reproduced or transmitted

More information

Prerequisites: The student should have programming experience in a high-level language. ITCourseware, LLC Page 1. Object-Oriented Programming in C#

Prerequisites: The student should have programming experience in a high-level language. ITCourseware, LLC Page 1. Object-Oriented Programming in C# Microsoft s.net is a revolutionary advance in programming technology that greatly simplifies application development and is a good match for the emerging paradigm of Web-based services, as opposed to proprietary

More information

Enterprise JavaBeans 2.1

Enterprise JavaBeans 2.1 Enterprise JavaBeans 2.1 STEFAN DENNINGER and INGO PETERS with ROB CASTANEDA translated by David Kramer APress Media, LLC Enterprise JavaBeans 2.1 Copyright 2003 by Stefan Denninger and Ingo Peters with

More information

Introduction to C++/CLI 3. What C++/CLI can do for you 6 The rationale behind the new syntax Hello World in C++/CLI 13

Introduction to C++/CLI 3. What C++/CLI can do for you 6 The rationale behind the new syntax Hello World in C++/CLI 13 contents preface xv acknowledgments xvii about this book xix PART 1 THE C++/CLI LANGUAGE... 1 1 Introduction to C++/CLI 3 1.1 The role of C++/CLI 4 What C++/CLI can do for you 6 The rationale behind the

More information

B.E /B.TECH DEGREE EXAMINATIONS,

B.E /B.TECH DEGREE EXAMINATIONS, B.E /B.TECH DEGREE EXAMINATIONS, November / December 2012 Seventh Semester Computer Science and Engineering CS2041 C# AND.NET FRAMEWORK (Common to Information Technology) (Regulation 2008) Time : Three

More information

2609 : Introduction to C# Programming with Microsoft.NET

2609 : Introduction to C# Programming with Microsoft.NET 2609 : Introduction to C# Programming with Microsoft.NET Introduction In this five-day instructor-led course, developers learn the fundamental skills that are required to design and develop object-oriented

More information