Beginning Visual C# / Edition 1

Paperback (Print)
Used and New from Other Sellers
Used and New from Other Sellers
from $1.99
Usually ships in 1-2 business days
(Save 95%)
Other sellers (Paperback)
  • All (21) from $1.99   
  • New (3) from $17.56   
  • Used (18) from $1.99   
Sort by
Page 1 of 1
Showing All
Note: Marketplace items are not eligible for any coupons and promotions
Seller since 2008

Feedback rating:



New — never opened or used in original packaging.

Like New — packaging may have been opened. A "Like New" item is suitable to give as a gift.

Very Good — may have minor signs of wear on packaging but item works perfectly and has no damage.

Good — item is in good condition but packaging may have signs of shelf wear/aging or torn packaging. All specific defects should be noted in the Comments section associated with each item.

Acceptable — item is in working order but may show signs of wear such as scratches or torn packaging. All specific defects should be noted in the Comments section associated with each item.

Used — An item that has been opened and may show signs of wear. All specific defects should be noted in the Comments section associated with each item.

Refurbished — A used item that has been renewed or updated and verified to be in proper working condition. Not necessarily completed by the original manufacturer.


Ships from: fallbrook, CA

Usually ships in 1-2 business days

  • Standard, 48 States
  • Standard (AK, HI)
Seller since 2015

Feedback rating:


Condition: New
Brand new.

Ships from: acton, MA

Usually ships in 1-2 business days

  • Standard, 48 States
  • Standard (AK, HI)
Seller since 2008

Feedback rating:


Condition: New

Ships from: Chicago, IL

Usually ships in 1-2 business days

  • Standard, 48 States
  • Standard (AK, HI)
Page 1 of 1
Showing All
Sort by


What is this book about?

With Beginning Visual C#, you will learn how to use Visual C# from first principles. Visual C# is an object-oriented programming language designed specifically for programming Microsoft's new platform, the .NET Framework. You'll quickly and easily learn how to write Visual C# code and create your own applications — for both Windows and the Web.

What does this book cover?

With clear explanations and hands-on examples, you will learn about the following topics:

  • The C# language from the ground up
  • Designing and writing object-oriented programs
  • .NET programming with C#
  • Working with Windows forms and controls
  • Creating graphics and printing
  • Accessing databases and files
  • Writing web application and web services in Visual C#

This book will be an indispensable guide as you learn to write C# programs, gradually explaining the key concepts of Visual C# and .NET as your skills develop, with exercises at the end of chapters to test yourself. Starting with a thorough tutorial of the Visual C# language and object-oriented programming, you will progress to learn how to apply your understanding to programming the .NET Framework.

Who is this book for?

Beginning Visual C# is ideal for beginners with little background in programming, and for relatively inexperienced programmers who want to move from a language that doesn't support object-oriented programming techniques. The book moves at a fast enough pace that if you have programmed in another language, then you will still find the book valuable.

What do you need to use this book?

Note that Beginning Visual C# requires you to have access to either Visual Studio .NET or Visual C# .NET Standard Edition.

Read More Show Less

Product Details

  • ISBN-13: 9780764543821
  • Publisher: Wiley
  • Publication date: 8/1/2002
  • Series: Programmer to Programmer Ser.
  • Edition description: Revised Edition of Beginning C# for .NET v1.0
  • Edition number: 1
  • Pages: 944
  • Product dimensions: 7.32 (w) x 8.90 (h) x 2.02 (d)

Meet the Author

Karli Watson is an in-house author for Wrox Press with a penchant for multicolored clothing. He started out with the intention of becoming a world famous nanotechnologist, so perhaps one day you might recognize his name as he receives a Nobel Prize. For now, though, Karli's computing interests include all things mobile, and upcoming technologies such as C#. He can often be found preaching about these technologies at conferences, as well as after hours in drinking establishments. Karli is also a snowboading enthusiast, and wishes he had a cat.

Marco Bellinaso is a freelance software developer who lives in a small town close to Venice, Italy. He has been working with VB, C/C++ and other Microsoft tools for several years, specializing in User Interface, API, ActiveX/COM design and programming, and is now spending all his time on the .NET Framework with both C# and VB.NET. He is a team member of VB-2-The-Max ( for which he helps writing articles and commercial software. He is also a contributing editor for two Italian leading programming magazines: Computer Programming and Visual Basic Journal (VBPJ Italian licensee). You can reach him at

Ollie Cornes has been working with the Internet and the Microsoft platform since the early 90's. In 1999 he co-founded a business-to-business Internet company and until recently was their Chief Technical Officer.
Prior to that his various roles involved programming, technical authoring, network management, writing, leading development projects and consulting. He has worked with Demon Internet, Microsoft, Saab, Travelstore and Vodafone. Ollie holds a degree in computer science and is Microsoft certified.
When he’s not working he spends his time devouring books on human potential and practicing Chinese internal martial arts, meditation and healing. He also juggles fire and knives, but cannot yet ride a unicycle.

David Espinosa is a Senior Programmer and owner of Espinosa Consulting. Born in Barcelona, Spain, David moved to the United States at an early age. He attended the University of Nevada and received a Bachelor of Arts degree in Political Science.
David concentrates on Microsoft technologies and tools. In 1999, he worked with Microsoft as a Lead Author for the Desktop Visual FoxPro Certification Exam. Recently, David has been focusing on E-Commerce and data integration solutions and works for the a manufacturing company based out of Reno, Nevada.

Zach Greenvoss, MCSD is a Senior Consultant with Magenic Technologies, a Microsoft Gold Certified consulting firm in Northern California. He specializes in middle-tier architecture and implementation, utilizing various technologies including COM+, MSMQ, BizTalk, and XML. Before Magenic, Zach worked at the Defense Manpower Data Center in Monterey California, where he developed client-server applications for the Department of Defense. Zach and his wife Amanda enjoy globetrotting, caving, gaming and playing with their two cats. He can be reached at

Christian Nagel is working as a trainer and consultant for Global Knowledge, the largest independent information technology training provider. Having worked with PDP 11, VMS, and Unix platforms, he looks back on more than 15 years of experience in the field of software development. With his profound knowledge of Microsoft technologies – he's certified as a Microsoft Certified Trainer (MCT), Solution Developer (MCSD), and Systems Engineer (MCSE) – he enjoys teaching others programming and architecting distributed solutions. As founder of the now-called .NET User Group Austria and as MSDN Regional Director he is speaker at European conferences (TechEd, VCDC), and more and more addressed by many developers. You can contact Christian via his web site at

Jacob Hammer Pedersen is a systems developer at ICL Invia – a member of the Fujitsu Group.
He pretty much started programming when he was able to spell the word 'basic', which, incidentally is the language he's primarily using today. He started programming the PC in the early 90s, using Pascal, but soon changed his focus to C++, which still holds his interest. In the mid 90s his focus changed again, this time to Visual Basic. In the summer of 2000 he discovered C# and has been happily exploring it ever since.
Primarily working on the Microsoft platforms, other expertise includes MS Office development, COM, COM+ and Visual Basic.Net.

Jon D. Reid is the Chief Technology Officer for Micro Data Base Systems, Inc. (, maker of the TITANIUMä Database Engine and GURUâ Expert System tool. His primary current activity is developing database tools for the Microsoft.NET environment. He was editor for the C++ and Object Query Language (OQL) components of the Object Data Management Group (ODMG) standard, and has co-authored other Wrox titles including ADO.NET Programmer's Reference and Professional SQL Server 2000 XML. When not working, writing, or bicycling, he enjoys spending time with his wife and two young sons. Jon would like to thank his family and the team at Wrox (especially Adrian, Julian, Avril, and Rob) for their support and encouragement.

Mathew Reynolds After working with Wrox Press on a number of projects since 1999, Matthew is now an in-house author for Wrox Press writing about and working with virtually all aspects of Microsoft.NET. He's also a regular contributor to Wrox's ASPToday, C#Today and Web Services Architect.  He lives and works in North London and can be reached on

Morgan Skinner started his computing career at a tender age on a ZX80 at school, where he was underwhelmed by some code his teacher had put together and decided that he could do better in assembly language. After getting hooked on Z80 (which he considers much better than 6502), he graduated through the schools ZX81's to his own ZX Spectrum.
Since then Morgan has used a variety of languages and platforms, including VAX Macro Assembler, Pascal, Modula2, Smalltalk, x86 assembly language, PowerBuilder, C/C++, Visual Basic, PL/SQL, TSQL, and currently C#. He's managed to stay in the same company for nearly 12 years, largely due to the diversity of his job and having a good working environment.

Eric White is an independent consultant, specializing in managing offshore development with some hotshot developers in India. Having written well over a million lines of code, Eric has over 20 years experience in building Management Information Systems, accounting systems, and other types of fat-client and n-tier database applications. Eric has particular interest in Object-Oriented design methodologies, including use case analysis, UML, and design patterns. After years of working with too many varieties of technologies to list, he is currently specializing in C#, VB.NET, ASP.NET, ADO.NET, XML, COM+, GDI+, SQL Server, and other Microsoft technologies.

Read More Show Less

Table of Contents


Chapter 1: Introducing C#.

Chapter 2: Writing a C# Program.

Chapter 3: Variables and Expressions.

Chapter 4: Flow Control.

Chapter 5: More About Variables.

Chapter 6: Functions.

Chapter 7: Debugging and Error Handling.

Chapter 8: Introduction to Object-Oriented Programming.

Chapter 9: Defining Classes.

Chapter 10: Defining Class Members.

Chapter 11: More About Classes.

Chapter 12: Events.

Chapter 13: Using Windows Form Controls.

Chapter 14: Advanced Windows Forms Features.

Chapter 15: Using Common Dialogs.

Chapter 16: Introduction to GDI+.

Chapter 17: Deploying Windows Applications.

Chapter 18: Getting At Your Data.

Chapter 19: Data Access with ADO.NET.

Chapter 20: Working With Files.

Chapter 21: .NET Assemblies.

Chapter 22: Attributes.

Chapter 23: ASP.NET Applications.

Chapter 24: Web Services.

Appendix A: Setting the PATH Environment Variable.

Appendix B: Installing MSDE.

Appendix C: Further References.


Read More Show Less

First Chapter

Beginning Visual C#

By Karli Watson David Espinosa Zach Greenvoss Jacob Hammer Pedersen Christian Nagel Jon D. Reid Matthew Reynolds Morgan Skinner Eric White

John Wiley & Sons

ISBN: 0-7645-4382-2

Chapter One

Introducing C#

Welcome to the first chapter of the first section of this book. Over the course of this section we'll be taking a look at the basic knowledge required to get up and running. In this first chapter we'll be looking at an overview of C# and the .NET Framework, and we'll consider what these technologies are, the motivation behind using them, and how they relate to each other.

We'll start with a general discussion of the .NET Framework. This is a new technology, and contains many concepts that are tricky to get to grips with at first (mainly because the Framework introduces a "new way of doing things" to application development). This means that the discussion will, by necessity, cover many new concepts in a short space of time. However, a quick look at the basics is essential to understand how to program in C#, so this is a necessary evil. Later on in the book we'll revisit many of the topics covered here in more detail.

After this discussion, we'll move on to a simple description of C# itself, including its origins and similarities to C++.

Finally, we'll look at the main tool that will be used throughout this book: Visual Studio .NET (VS).

What is the .NET Framework?

The .NET Framework is a new and revolutionary platform created by Microsoft for developing applications.

The most interesting thing about this statement is how vague I've been - but there are good reasons for this. For a start, note that I didn't say "developing applications on the Windows operating system". Although the first release of the .NET Framework runs on the Windows operating system, future plans include versions that will work on others, such as FreeBSD, Linux, Macintosh, and even personal digital assistant (PDA) class devices. One of the key motivational forces behind this technology is its intention as a means of integrating disparate operating systems.

In addition, the definition of the .NET Framework given above includes no restriction on the type of applications that are possible. This is because there is no restriction - the .NET Framework allows the creation of Windows applications, web applications, web services, and pretty much anything else you can think of.

The .NET Framework has been designed such that it can be used from any language. This includes the subject of this book, C#, as well as C++, Visual Basic, JScript, and even older languages such as COBOL. In order for this to work, .NET-specific versions of these languages have also appeared: Managed C++, Visual Basic .NET, JScript .NET, J#, and so on - and more are being released all the time. Not only do all of these have access to the .NET Framework, they can also communicate with each other. It is perfectly possible for C# developers to make use of code written by Visual Basic .NET programmers, and vice versa.

All of this provides a hitherto unthinkable level of versatility, and is part of what makes using the .NET Framework such an attractive prospect.

What's in the .NET Framework?

The .NET Framework consists primarily of a gigantic library of code that we use from our client languages (such as C#) using object-oriented programming (OOP) techniques. This library is categorized into different modules - we use portions of it depending on the results we want to achieve. For example, one module contains the building blocks for Windows applications, another for network programming, and another for web development. Some modules are divided into more specific sub-modules, such as a module for building web services within the module for web development.

The intention here is that different operating systems may support some or all of these modules, depending on their characteristics. A PDA, for example, would include support for all the core .NET functionality, but is unlikely to require some of the more esoteric modules.

Part of the .NET Framework library defines some basic types. A type is a representation of data, and specifying some of the most fundamental of these (such as "a 32-bit signed integer") facilitates interoperability between languages using the .NET Framework. This is called the Common Type System (CTS).

As well as supplying this library, the framework also includes the .NET Common Language Runtime (CLR), which is responsible for maintaining the execution of all applications developed using the .NET library.

How do I Write Applications using the .NET Framework?

Writing an application using the .NET Framework means writing code (using any of the languages that support the framework) using the .NET code library. In this book we'll be using VS for our development, which is a powerful integrated development environment that supports C# (as well as managed and unmanaged C++, Visual Basic .NET, and some others). The advantage of this environment is the ease with which .NET features may be integrated into our code. The code that we will create will be entirely C#, but will use the .NET Framework throughout, and we'll make use of the additional tools in VS where necessary.

In order for C# code to execute it must be converted into a language that the target operating system understands, known as native code. This conversion is called compiling code, an act that is performed by a compiler. Under the .NET Framework, however, this is a two-stage process.


When we compile code that uses the .NET Framework library, we don't immediately create operating system-specific native code. Instead, we compile our code into Microsoft Intermediate Language (MSIL) code. This code isn't specific to any operating system, and isn't specific to C#. Other .NET languages - for example, Visual Basic .NET - also compile to this language as a first stage. This compilation step is carried out by VS when we use it to develop C# applications.

Obviously, in order to execute an application more work is necessary. This is the job of a Just-In-Time (JIT) compiler, which compiles MSIL into native code that is specific to the OS and machine architecture being targeted. Only at this point can the OS execute the application. The "just-in-time" part of the name here reflects the fact that MSIL code is only compiled as and when it is needed.

In the past it has often been necessary to compile your code into several applications, each of which targets a specific operating system and CPU architecture. Often, this was a form of optimization (in order to get code to run faster on an AMD chipset, for example), but at times it was critical (for applications to work on both Win9x and WinNT/2000 environments, for example). This is now unnecessary, as JIT compilers (as their name suggests) use MSIL code, which is independent of the machine, operating system, and CPU. Several JIT compilers exist, each targeting a different architecture, and the appropriate one will be used to create the native code required.

The beauty of all this is that it requires a lot less work on our part - in fact we can just forget about system-dependent details, and concentrate on the more interesting functionality of our code.


When we compile an application, the MSIL code created is stored in an assembly. Assemblies include both executable application files that we can run directly from Windows without the need for any other programs (these have a .exe file extension), and libraries for use by other applications (which have a .dll extension).

As well as containing MSIL, assemblies also contain meta information (that is, information about the information contained in the assembly, also known as metadata) and optional resources (additional data used by the MSIL, such as sound files and pictures). The meta information allows assemblies to be fully self-descriptive. We need no other information in order to use an assembly, meaning that we avoid situations such as failing to add required data to the system registry and so on, which was often a problem when developing using other platforms.

This means that deploying applications is often as simple as copying the files into a directory on a remote computer. Since no additional information is required on the target systems, we can just run an executable file from this directory and (assuming the .NET CLR is installed) away we go.

Of course, we won't necessarily want to include everything required to run an application in one place. We might write some code that performs tasks required by multiple applications. In situations like this, it is often useful to place this reusable code in a place accessible to all applications. In the .NET Framework, this is the Global Assembly Cache (GAC). Placing code in this cache is simple - we just place the assembly containing the code in the directory containing this cache.

Managed Code

The role of the CLR doesn't end once we have compiled our code to MSIL and a JIT compiler has compiled this to native code. Code written using the .NET Framework is managed when it is executed (this stage is usually referred to as being at "runtime"). This means that the CLR looks after our applications, by managing memory, handling security, allowing cross-language debugging, and so on. By contrast, applications that do not run under the control of the CLR are said to be unmanaged and certain languages such as C++ can be used to write such applications, that, for example, access low-level functions of the operating system. However, in C# we can only write code that runs in a managed environment. We will make use of the managed features of the CLR and allow .NET itself to handle any interaction with the operating system.

Garbage Collection

One of the most important features of managed code is the concept of garbage collection. This is the .NET method of making sure that the memory used by an application is freed up completely when the application is no longer in use. Prior to .NET this has mostly been the responsibility of programmers, and a few simple errors in code could result in large blocks of memory mysteriously disappearing as a result of being allocated to the wrong place in memory. This usually meant a progressive slowdown of your computer followed by a system crash.

.NET garbage collection works by inspecting the memory of your computer every so often, and removing anything from it that is no longer needed. There is no set timeframe for this, it might happen thousands of times a second, once every few seconds, or whenever, but you can rest assured that it will happen.

There are some implications for programmers here. Since this work is done for you at an unpredictable time applications have to be designed with this in mind. Code that requires a lot of memory to run should tidy itself up rather than waiting for garbage collection to happen, but this isn't anything like as tricky as it sounds.

Fitting it Together

Before moving on, let's summarize the steps required to create a .NET application as discussed above:

1. Application code is written using a .NET-compatible language such as C#:

2. This code is compiled into MSIL, which is stored in an assembly:

3. When this code is executed (either in its own right if it is an executable, or when it is used from other code) it must first be compiled into native code using a JIT compiler:

4. The native code is executed in the context of the managed CLR, along with any other running applications or processes:


There is one additional point to note concerning the above process. The C# code that compiles into MSIL in step 2 needn't be contained in a single file. It is possible to split application code across multiple source code files, which are then compiled together into a single assembly. This process is known as linking, and is extremely useful. The reason for this is that it is far easier to work with several smaller files that one enormous one. You can separate out logically related code into an individual file, so that it can be worked on independently, and then practically forgotten about when completed. This also makes it much easier to locate specific pieces of code when you need them, and enables teams of developers to divide up the programming burden into manageable chunks, where individuals can "check out" pieces of code to work on without risking damage to otherwise satisfactory sections, or sections that other people are working on.

What is C#?

C#, as mentioned above, is one of the languages that can be used to create applications that will run in the .NET CLR. It is an evolution of the C and C++ languages and has been created by Microsoft specifically to work with the .NET platform. As it is a recent development, the C# language has been designed with hindsight, taking into account many of the best features from other languages while clearing up their problems.

Developing applications using C# is simpler than using C++, as the language syntax is simpler. However, C# is a powerful language and there is little we might want to do in C++ that we can't do in C#. Having said that, those features of C# which parallel the more advanced features of C++, such as directly accessing and manipulating system memory, can only be carried out using code marked as unsafe. This advanced programmatic technique is potentially dangerous (hence its name), as it is possible to overwrite system-critical blocks of memory with potentially catastrophic results. For this reason, and others, we are not going to cover this topic in this book.

At times, C# code is slightly more verbose than C++. This is a consequence of C# being a type-safe language (unlike C++). In layman's terms, this means that once some data has been assigned to a type, it cannot subsequently transform itself into another unrelated type. Consequently, there are strict rules that must be adhered to when converting between types, which means that we will often need to write more code to carry out the same task in C# as we might do in C++, but we get the benefit that code is more robust and debugging is simpler - .NET can always track what type a piece of data is at any time. In C# we therefore may not be able to do things such as "take the region of memory 4 bytes into this data and 10 bytes long and interpret it as X", but that's not necessarily a bad thing.

C# is just one of the languages available for .NET development, but in my opinion it is certainly the best. It has the advantage of being the only language designed from the ground-up for the .NET Framework and may be the principal language used in versions of .NET that are ported to other operating systems. To keep languages such as Visual Basic .N


Excerpted from Beginning Visual C# by Karli Watson David Espinosa Zach Greenvoss Jacob Hammer Pedersen Christian Nagel Jon D. Reid Matthew Reynolds Morgan Skinner Eric White Excerpted by permission.
All rights reserved. No part of this excerpt may be reproduced or reprinted without permission in writing from the publisher.
Excerpts are provided by Dial-A-Book Inc. solely for the personal use of visitors to this web site.

Read More Show Less

Customer Reviews

Be the first to write a review
( 0 )
Rating Distribution

5 Star


4 Star


3 Star


2 Star


1 Star


Your Rating:

Your Name: Create a Pen Name or

Barnes & Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation


  • - By submitting a review, you grant to Barnes & and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Terms of Use.
  • - Barnes & reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously

    If you find inappropriate content, please report it to Barnes & Noble
    Why is this product inappropriate?
    Comments (optional)