C# 2012 for Programmers / Edition 5

Paperback (Print)
Used and New from Other Sellers
Used and New from Other Sellers
from $33.11
Usually ships in 1-2 business days
(Save 44%)
Other sellers (Paperback)
  • All (15) from $33.11   
  • New (12) from $33.11   
  • Used (3) from $33.28   

Overview

The professional programmer’s Deitel® guide to C# 2012 and object-oriented development for Windows® 7 and Windows® 8

Written for programmers with a background in high-level language programming, this book applies the Deitel signature live-code approach to teaching programming and explores Microsoft’s C# 2012 and .NET 4.5 in depth. The book presents the concepts in the context of fully tested apps, complete with syntax shading, code highlighting, code walkthroughs and program outputs. You’ll work through 200+ complete C# apps with 15,000+ lines of proven C# code and hundreds of savvy software-development tips.

Start with an introduction to C# using an early classes and objects approach, then rapidly move on to more advanced topics, including LINQ, asynchronous programming with async and await, Windows® 8 UI and WPF graphics and multimedia, web services, Windows® Phone 8, Windows Azure™ and more. You’ll enjoy the treatment of object-oriented programming and an OOD/UML® ATM case study, including a complete C# implementation. When you’re finished, you’ll have everything you need to build industrial-strength, object-oriented C# apps.

Paul Deitel and Harvey Deitel are the founders of Deitel & Associates, Inc., the internationally recognized programming languages authoring and corporate-training organization. Millions of people worldwide have used Deitel books, LiveLessons video training and online resource centers to master C#, .NET, Visual Basic®, C++, Visual C++®, C, Java™, Android™ app development, iOS® app development, Internet and web programming, JavaScript®, XML, Perl®, Python and more.

Practical, example-rich coverage of:

• .NET, Types, Arrays, Exception Handling

• LINQ, Object/Collection Initializers

• Objects, Classes, Inheritance, Polymorphism

• Industrial-Strength, C#-Based Object-Oriented Design/UML® ATM Case Study

• WinForms, WPF, Windows® 8 UI, XAML, Event Handling, Visual C# Debugging

• WPF and Windows® 8 Graphics and Multimedia

• Windows® Phone 8, Cloud Computing with Windows Azure™, Asynchronous Programming with async and await

• Generic Collections, Methods and Classes

• XML, LINQ to XML and LINQ to Entities

• ASP.NET and ASP.NET Ajax

• Web Forms, Web Controls

• WCF REST-Based Web Services and more.

Visit www.deitel.com

  • For information on Deitel’s Dive Into® Series programming training courses delivered at organizations worldwide visit www.deitel.com/training or write to deitel@deitel.com
  • Download code examples
  • Join the Deitel social networking communities on Facebook® at facebook.com/DeitelFan, Twitter® @deitel, Google+™ at gplus.to/deitel and LinkedIn® at bit.ly/DeitelLinkedIn.
  • To receive updates for this book, subscribe to the Deitel® Buzz Online e-mail newsletter at www.deitel.com/newsletter/ subscribe.html
Read More Show Less

Editorial Reviews

From the Publisher

“Excellent intro to visual app development, classes and objects. Excellent Arrays chapter. Outstanding presentations of the I/O facilities in .NET. The treatment of LINQ to XML is fabulous. Excellent effort to present such a complex topic as Entity Framework to beginners. Excellent presentation of the fundamentals of ASP.NET technology. I found especially enlightening the explanation of the differences between ‘traditional’ and AJAX-based request models. A very nice introduction to Windows Phone 8 development. Concise practical introduction to cloud computing and Windows Azure.”

–Octavio Hernandez, Microsoft Certified Solutions Developer (MCSD)

“Updating an already excellent book with the latest .NET features (Visual Studio 2012, LINQ to Entities, ASP.NET 4.5, Windows 8 UI, Windows Phone development, Cloud Computing with Windows Azure, etc.) can only result in a superb product. The early introduction to classes and objects is brilliant. I like the explanation of properties and the discussion of value vs. reference types. Coverage of ASP.NET is exceptional. Arrays is one of my favorite chapters. Great job explaining inheritance, polymorphism, interfaces and operator overloading. An excellent introduction to Windows Store apps. An outstanding chapter on asynchronous programming–and excellent code examples. Clear explanation of RESTful web services.”

–José Antonio González Seco, Parliament of Andalusia, Spain

“Every college that I’ve been at has used the Deitel programming books–they’re simply the standard when it comes to covering the fundamentals. I’m pleased to see the inclusion of a diverse set of more advanced material, including WPF, Azure and Win 8 Store apps. Databases and LINQ finds a good balance–I’m happy to see Entity Framework as that is what we are using in the real world. Good introduction to creating web apps via the designer.”

–Shawn Weisfeld, Microsoft MVP and President and Founder of UserGroup.tv

“Excellent introduction to C# and .NET, using the Deitels’ live-code approach and real-world examples.”

–Bonnie Berent, Microsoft C# MVP

“An excellent introduction to XML, LINQ to XML and related technologies.”

–Helena Kotas, Microsoft

“The explanation of abstract vs. concrete classes and why one would create an abstract class in the hierarchy was excellent. Using LINQ to search directories is very cool! Your overview of relational databases with the books database was excellent. I derived a lot from the Web App Development with ASP.NET chapters, especially the Session State and database-driven guest book sections. Excellent–this was my first experience with Windows Phone development–your chapter gave me a solid foundation.”

–Stephen Hustedde, South Mountain College

“Good introduction to the most popular controls and working with events. I use the techniques of the Strings chapter in the line of business apps that I build. I liked the Files and Streams chapter and the real-world example.”

–Shawn Weisfeld, Microsoft MVP and President and Founder of UserGroup.tv

“An excellent, true objects-first book. The generics material is a real asset.”

–Gavin Osborne, Saskatchewan Institute of Applied Science and Technology

“Great chapter on polymorphism.”

–Eric Lippert, Formerly of Microsoft

“Excellent chapter on exceptions.”

–Vinay Ahuja, Architect, Microsoft Corporation

“Good overview of relational databases. It hits on the right LINQ idioms.”

–Alex Turner, Microsoft

“A solid introduction to Visual Studio 2012. Covers the basics of Windows 8 apps. Very good introduction to ASP.NET–the examples are great.”

–Shay Friedman, Microsoft Visual C# MVP; cloud and web technologies expert, CodeValue

“The book is adaptable for those who want to focus on GUI apps out of the gate. You give the reader a good foundation in XAML. Introduction to LINQ and the List Collection is a great chapter; you do such a good and consistent job of explaining your code in the narrative. The focus on using LINQ to manage data is unique and cutting edge. Fun chapter on Windows 8 Graphics and Multimedia.”

–Stephen Hustedde, South Mountain College

Read More Show Less

Product Details

  • ISBN-13: 9780133440577
  • Publisher: Prentice Hall
  • Publication date: 10/11/2013
  • Series: Deitel Developer Series
  • Edition description: New Edition
  • Edition number: 5
  • Pages: 1200
  • Sales rank: 306,351
  • Product dimensions: 7.00 (w) x 9.10 (h) x 1.70 (d)

Table of Contents

Preface xxiii

Before You Begin xxxi

Chapter 1: Introduction 1

1.1 Introduction 2

1.2 Object Technology 2

1.3 C# 5 Object-Oriented Programming 5

1.4 Microsoft’s .NET 6

1.5 Microsoft’s Windows® Operating System 8

1.6 Windows Phone 8 for Smartphones 9

1.7 Windows Azure™and Cloud Computing 11

1.8 Visual Studio Express 2012 Integrated Development Environment 11

1.9 Painter Test-Drive in Visual Studio Express 2012 for Windows Desktop 11

1.10 Painter Test-Drive in Visual Studio Express 2012 for Windows 8 15

Chapter 2: Dive Into® Visual Studio Express 2012 for Windows Desktop 20

2.1 Introduction 21

2.2 Overview of the Visual Studio Express 2012 IDE 21

2.3 Menu Bar and Toolbar 26

2.4 Navigating the Visual Studio IDE 28

2.5 Using Help 33

2.6 Using Visual App Development to Create a Simple App that Displays Text and an Image 34

2.7 Wrap-Up 44

2.8 Web Resources 45

Chapter 3: Introduction to C# Apps 46

3.1 Introduction 47

3.2 ASimple C# App: Displaying a Line of Text 47

3.3 Creating a Simple App in Visual Studio 52

3.4 Modifying Your Simple C# App 58

3.5 Formatting Text with Console.Write and Console.WriteLine 60

3.6 Another C# App: Adding Integers 61

3.7 Arithmetic 65

3.8 Decision Making: Equality and Relational Operators 67

3.9 Wrap-Up 71

Chapter 4: Introduction to Classes, Objects, Methods and strings 72

4.1 Introduction 73

4.2 Classes, Objects, Methods, Properties and Instance Variables 73

4.3 Declaring a Class with a Method and Instantiating an Object of a Class 74

4.4 Declaring a Method with a Parameter 78

4.5 Instance Variables and Properties 82

4.6 UML Class Diagram with a Property 86

4.7 Software Engineering with Properties and set and get Accessors 87

4.8 Auto-Implemented Properties 88

4.9 Value Types vs. Reference Types 89

4.10 Initializing Objects with Constructors 90

4.11 Floating-Point Numbers and Type decimal 93

4.12 Wrap-Up 99

Chapter 5: Control Statements: Part 1 101

5.1 Introduction 102

5.2 Control Structures 102

5.3 if Single-Selection Statement 104

5.4 if…else Double-Selection Statement 105

5.5 while Repetition Statement 109

5.6 Counter-Controlled Repetition 110

5.7 Sentinel-Controlled Repetition 113

5.8 Nested Control Statements 118

5.9 Compound Assignment Operators 121

5.10 Increment and Decrement Operators 122

5.11 Simple Types 125

5.12 Wrap-Up 125

Chapter 6: Control Statements: Part 2 126

6.1 Introduction 127

6.2 Essentials of Counter-Controlled Repetition 127

6.3 for Repetition Statement 128

6.4 Examples Using the for Statement 132

6.5 do…while Repetition Statement 136

6.6 switch Multiple-Selection Statement 137

6.7 break and continue Statements 145

6.8 Logical Operators 147

6.9 Wrap-Up 153

Chapter 7: Methods: A Deeper Look 154

7.1 Introduction 155

7.2 Packaging Code in C# 155

7.3 static Methods, static Variables and Class Math 156

7.4 Declaring Methods with Multiple Parameters 158

7.5 Notes on Declaring and Using Methods 162

7.6 Method-Call Stack and Activation Records 163

7.7 Argument Promotion and Casting 163

7.8 The .NET Framework Class Library 165

7.9 Case Study: Random-Number Generation 167

7.10 Case Study: A Game of Chance; Introducing Enumerations 172

7.11 Scope of Declarations 177

7.12 Method Overloading 179

7.13 Optional Parameters 182

7.14 Named Parameters 183

7.15 Recursion 184

7.16 Passing Arguments: Pass-by-Value vs. Pass-by-Reference 187

7.17 Wrap-Up 191

Chapter 8: Arrays; Introduction to Exception Handling 192

8.1 Introduction 193

8.2 Arrays 193

8.3 Declaring and Creating Arrays 195

8.4 Examples Using Arrays 196

8.5 Case Study: Card Shuffling and Dealing Simulation 206

8.6 foreach Statement 210

8.7 Passing Arrays and Array Elements to Methods 212

8.8 Passing Arrays by Value and by Reference 214

8.9 Case Study: GradeBook Using an Array to Store Grades 218

8.10 Multidimensional Arrays 223

8.11 Case Study: GradeBook Using a Rectangular Array 228

8.12 Variable-Length Argument Lists 234

8.13 Using Command-Line Arguments 236

8.14 Wrap-Up 238

Chapter 9: Introduction to LINQ and the List Collection 239

9.1 Introduction 240

9.2 Querying an Array of int Values Using LINQ 241

9.3 Querying an Array of Employee Objects Using LINQ 245

9.4 Introduction to Collections 250

9.5 Querying a Generic Collection Using LINQ 253

9.6 Wrap-Up 255

9.7 Deitel LINQ Resource Center 255

Chapter 10: Classes and Objects: A Deeper Look 256

10.1 Introduction 257

10.2 Time Class Case Study 257

10.3 Controlling Access to Members 261

10.4 Referring to the Current Object’s Members with the this Reference 262

10.5 Time Class Case Study: Overloaded Constructors 264

10.6 Default and Parameterless Constructors 270

10.7 Composition 271

10.8 Garbage Collection and Destructors 274

10.9 static Class Members 275

10.10 readonly Instance Variables 278

10.11 Data Abstraction and Encapsulation 279

10.12 Class View and Object Browser 281

10.13 Object Initializers 283

10.14 Wrap-Up 283

Chapter 11: Object-Oriented Programming: Inheritance 285

11.1 Introduction 286

11.2 Base Classes and Derived Classes 287

11.3 protected Members 289

11.4 Relationship between Base Classes and Derived Classes 290

11.5 Constructors in Derived Classes 313

11.6 Software Engineering with Inheritance 314

11.7 Class object 314

11.8 Wrap-Up 315

Chapter 12: OOP: Polymorphism, Interfaces and Operator Overloading 317

12.1 Introduction 318

12.2 Polymorphism Examples 320

12.3 Demonstrating Polymorphic Behavior 321

12.4 Abstract Classes and Methods 324

12.5 Case Study: Payroll System Using Polymorphism 326

12.6 sealed Methods and Classes 342

12.7 Case Study: Creating and Using Interfaces 342

12.8 Operator Overloading 353

12.9 Wrap-Up 356

Chapter 13: Exception Handling: A Deeper Look 358

13.1 Introduction 359

13.2 Example: Divide by Zero without Exception Handling 360

13.3 Example: Handling DivideByZeroExceptions and FormatExceptions 363

13.4 .NET Exception Hierarchy 368

13.5 finally Block 369

13.6 The using Statement 376

13.7 Exception Properties 377

13.8 User-Defined Exception Classes 381

13.9 Wrap-Up 385

Chapter 14: Graphical User Interfaces with Windows Forms: Part 1 386

14.1 Introduction 387

14.2 Windows Forms 388

14.3 Event Handling 390

14.4 Control Properties and Layout 397

14.5 Labels, TextBoxes and Buttons 401

14.6 GroupBoxes and Panels 404

14.7 CheckBoxes and RadioButtons 407

14.8 PictureBoxes 415

14.9 ToolTips 417

14.10 NumericUpDown Control 419

14.11 Mouse-Event Handling 421

14.12 Keyboard-Event Handling 424

14.13 Wrap-Up 427

Chapter 15: Graphical User Interfaces with Windows Forms: Part 2 428

15.1 Introduction 429

15.2 Menus 429

15.3 MonthCalendar Control 438

15.4 DateTimePicker Control 439

15.5 LinkLabel Control 442

15.6 ListBox Control 446

15.7 CheckedListBox Control 450

15.8 ComboBox Control 453

15.9 TreeView Control 457

15.10 ListView Control 462

15.11 TabControl Control 468

15.12 Multiple Document Interface (MDI) Windows 473

15.13 Visual Inheritance 480

15.14 User-Defined Controls 485

15.15 Wrap-Up 489

Chapter 16: Strings and Characters: A Deeper Look 490

16.1 Introduction 491

16.2 Fundamentals of Characters and Strings 492

16.3 string Constructors 493

16.4 string Indexer, Length Property and CopyTo Method 494

16.5 Comparing strings 495

16.6 Locating Characters and Substrings in strings 498

16.7 Extracting Substrings from strings 501

16.8 Concatenating strings 502

16.9 Miscellaneous string Methods 503

16.10 Class StringBuilder 504

16.11 Length and Capacity Properties, EnsureCapacity Method and Indexer of Class StringBuilder 505

16.12 Append and AppendFormat Methods of Class StringBuilder 507

16.13 Insert, Remove and Replace Methods of Class StringBuilder 509

16.14 Char Methods 512

16.15 (Online) Introduction to Regular Expressions 514

16.16 Wrap-Up 515

Chapter 17: Files and Streams 516

17.1 Introduction 517

17.2 Data Hierarchy 517

17.3 Files and Streams 519

17.4 Classes File and Directory 520

17.5 Creating a Sequential-Access Text File 529

17.6 Reading Data from a Sequential-Access Text File 538

17.7 Case Study: Credit Inquiry Program 542

17.8 Serialization 548

17.9 Creating a Sequential-Access File Using Object Serialization 549

17.10 Reading and Deserializing Data from a Binary File 553

17.11 Wrap-Up 555

Chapter 18: Generics 557

18.1 Introduction 558

18.2 Motivation for Generic Methods 559

18.3 Generic-Method Implementation 561

18.4 Type Constraints 564

18.5 Overloading Generic Methods 566

18.6 Generic Classes 567

18.7 Wrap-Up 576

Chapter 19: Collections 577

19.1 Introduction 578

19.2 Collections Overview 578

19.3 Class Array and Enumerators 581

19.4 Nongeneric Collections 584

19.5 Generic Collections 596

19.6 Covariance and Contravariance for Generic Types 603

19.7 Wrap-Up 606

Chapter 20: Databases and LINQ 607

20.1 Introduction 608

20.2 Relational Databases 609

20.3 A Books Database 610

20.4 LINQ to Entities and the ADO.NET Entity Framework 614

20.5 Querying a Database with LINQ 615

20.6 Dynamically Binding Query Results 627

20.7 Retrieving Data from Multiple Tables with LINQ 632

20.8 Creating a Master/Detail View App 637

20.9 Address Book Case Study 641

20.10 Tools and Web Resources 647

20.11 Wrap-Up 647

Chapter 21: Web App Development with ASP.NET 649

21.1 Introduction 650

21.2 Web Basics 651

21.3 Multitier App Architecture 652

21.4 Your First Web App 654

21.5 Standard Web Controls: Designing a Form 666

21.6 Validation Controls 670

21.7 Session Tracking 677

21.8 Case Study: Database-Driven ASP.NET Guestbook 685

21.9 Case Study: ASP.NET AJAX 693

21.10 Case Study: Password-Protected Books Database App 694

21.11 Wrap-Up 694

Chapter 22: XML and LINQ to XML 695

22.1 Introduction 696

22.2 XML Basics 696

22.3 Structuring Data 699

22.4 XML Namespaces 705

22.5 Document Type Definitions (DTDs) 708

22.6 W3C XML Schema Documents 711

22.7 Extensible Stylesheet Language and XSL Transformations 719

22.8 LINQ to XML: Document Object Model (DOM) 728

22.9 LINQ to XML Class Hierarchy 731

22.10 LINQ to XML: Namespaces and Creating Documents 740

22.11 XSLT with Class XslCompiledTransform 744

22.12 Wrap-Up 746

Chapter 23: Windows 8 UI and XAML 747

23.1 Introduction 748

23.2 Welcome App: Introduction to XAML Declarative GUI Programming 749

23.3 Painter App: Layouts; Event Handling 758

23.4 CoverViewer App: Data Binding, Data Templates and Styles 771

23.5 App Lifecycle 778

23.6 Wrap-Up 779

Chapter 24: Windows 8 Graphics and Multimedia 780

24.1 Introduction 781

24.2 Basic Shapes 782

24.3 Polylines and Polygons 784

24.4 SolidColorBrushes and ImageBrushes 786

24.5 GradientBrushes 788

24.6 Transforms 794

24.7 Windows 8 Customization: A Television GUI 797

24.8 Wrap-Up 807

Chapter 25: Building a Windows Phone 8 App 808

25.1 Introduction 809

25.2 Downloading the Windows Phone 8 SDK 810

25.3 Tip Calculator App Introduction 811

25.4 Test-Driving the Tip Calculator App 812

25.5 Tip Calculator Technologies Overview 812

25.6 Building the App’s GUI 813

25.7 Adding Functionality to the App with C# 820

25.8 WMAppManifest.xml 825

25.9 Windows Phone Dev Center 825

25.10 Selling Your Apps in the Windows Phone Marketplace 827

25.11 Other Popular Mobile App Platforms 828

25.12 Developer Documentation 829

25.13 Additional Windows Phone 8 Resources 829

25.14 Wrap-Up 831

Chapter 26: Asynchronous Programming with async and await 832

26.1 Introduction 833

26.2 Basics of async and await 834

26.3 Executing an Asynchronous Task from a GUI App 835

26.4 Sequential Execution of Two Compute-Intensive Tasks 839

26.5 Asynchronous Execution of Two Compute-Intensive Tasks 841

26.6 Invoking a Flickr Web Service Asynchronously with WebClient 846

26.7 Wrap-Up 852

Chapter 27: Web App Development with ASP.NET: A Deeper Look 854

27.1 Introduction 855

27.2 Case Study: Password-Protected Books Database App 855

27.3 ASP.NET Ajax 871

27.4 Wrap-Up 877

Chapter 28: Web Services 879

28.1 Introduction 880

28.2 WCF Services Basics 881

28.3 HTTP get and post Requests 881

28.4 Representational State Transfer (REST) 882

28.5 JavaScript Object Notation (JSON) 882

28.6 Publishing and Consuming REST-Based XML Web Services 883

28.7 Publishing and Consuming REST-Based JSON Web Services 889

28.8 Equation Generator: Returning User-Defined Types 893

28.9 Wrap-Up 905

Chapter 29: Building a Windows Azure™ Cloud Computing App 906

29.1 Introduction 907

29.2 Installing the Windows Azure SDK for Visual Studio 2012 909

29.3 Windows Azure Cloud Services Accounts 909

29.4 Favorite Twitter Searches: Introduction 910

29.5 Favorite Twitter Searches: Test-Drive 911

29.6 Favorite Twitter Searches: Technologies Overview 914

29.7 Favorite Twitter Searches: Code 915

29.8 Security, Privacy and Reliability 921

29.9 Microsoft Windows Azure Resources 921

29.10 Microsoft Windows Azure Code Samples 923

29.11 Additional Web Resources 924

29.12 Wrap-Up 926

Chapter 30: GUI with Windows Presentation Foundation 927

30.1 Introduction 928

30.2 Windows Presentation Foundation (WPF) 928

30.3 Declarative GUI Programming Using XAML 929

30.4 Creating a WPF App 931

30.5 Laying Out Controls 932

30.5.1 General Layout Principles 933

30.5.2 Layout in Action 934

30.6 Event Handling 938

30.7 Commands and Common Application Tasks 946

30.8 WPF GUI Customization 951

30.9 Using Styles to Change the Appearance of Controls 951

30.10 Customizing Windows 957

30.11 Defining a Control’s Appearance with Control Templates 960

30.12 Data-Driven GUIs with Data Binding 965

30.13 Wrap-Up 971

Chapter 31: WPF Graphics and Multimedia 972

31.1 Introduction 973

31.2 Controlling Fonts 973

31.3 Basic Shapes 975

31.4 Polygons and Polylines 977

31.5 Brushes 980

31.6 Transforms 987

31.7 WPF Customization: A Television GUI 989

31.8 Animations 999

31.9 Speech Synthesis and Speech Recognition 1001

31.10 Wrap-Up 1008

Chapter 32: ATM Case Study, Part 1: Object-Oriented Design with the UML 1009

32.1 Introduction 1010

32.2 Examining the ATM Requirements Document 1010

32.3 Identifying the Classes in the ATM Requirements Document 1018

32.4 Identifying Class Attributes 1025

32.5 Identifying Objects’ States and Activities 1029

32.6 Identifying Class Operations 1033

32.7 Identifying Collaboration Among Objects 1040

32.8 Wrap-Up 1047

Chapter 33: ATM Case Study, Part 2: Implementing an Object-Oriented Design 1052

33.1 Introduction 1053

33.2 Starting to Program the Classes of the ATM System 1053

33.3 Incorporating Inheritance and Polymorphism into the ATM System 1058

33.4 ATM Case Study Implementation 1065

33.5 Wrap-Up 1089

Appendix A: Operator Precedence Chart 1092

Appendix B: Simple Types 1094

Appendix C: ASCII Character Set 1096

Appendix D: Number Systems 1097

D.1 Introduction 1098

D.2 Abbreviating Binary Numbers as Octal and Hexadecimal Numbers 1101

D.3 Converting Octal and Hexadecimal Numbers to Binary Numbers 1102

D.4 Converting from Binary, Octal or Hexadecimal to Decimal 1102

D.5 Converting from Decimal to Binary, Octal or Hexadecimal 1103

D.6 Negative Binary Numbers: Two’s Complement Notation 1105

Appendix E: UML 2: Additional Diagram Types 1107

E.1 Introduction 1107

E.2 Additional Diagram Types 1107

Appendix F: Unicode® 1109

F.1 Introduction 1110

F.2 Unicode Transformation Formats 1111

F.3 Characters and Glyphs 1112

F.4 Advantages/Disadvantages of Unicode 1112

F.5 Using Unicode 1113

F.6 Character Ranges 1115

Index 1117

Read More Show Less

Customer Reviews

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

5 Star

(0)

4 Star

(0)

3 Star

(0)

2 Star

(0)

1 Star

(0)

Your Rating:

Your Name: Create a Pen Name or

Barnes & Noble.com 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 & Noble.com 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 & Noble.com 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 BN.com 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

Reminder:

  • - By submitting a review, you grant to Barnes & Noble.com and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Noble.com Terms of Use.
  • - Barnes & Noble.com reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & Noble.com 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 BN.com. 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)