100% found this document useful (1 vote)
12 views

Database Programming with C 1st Edition Carsten Thomsen (Auth.) pdf download

The document provides information about the book 'Database Programming with C' by Carsten Thomsen, including download links and details about other related programming books. It outlines the contents of the book, which covers topics such as ADO.NET, exception handling, and database applications. The book is a digital instant download published in 2002 and is intended for programmers looking to enhance their database programming skills using C.

Uploaded by

eamyglim60
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
12 views

Database Programming with C 1st Edition Carsten Thomsen (Auth.) pdf download

The document provides information about the book 'Database Programming with C' by Carsten Thomsen, including download links and details about other related programming books. It outlines the contents of the book, which covers topics such as ADO.NET, exception handling, and database applications. The book is a digital instant download published in 2002 and is intended for programmers looking to enhance their database programming skills using C.

Uploaded by

eamyglim60
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 54

Database Programming with C 1st Edition Carsten

Thomsen (Auth.) pdf download

https://ebookfinal.com/download/database-programming-with-c-1st-
edition-carsten-thomsen-auth/

Explore and download more ebooks or textbooks


at ebookfinal.com
Here are some recommended products for you. Click the link to
download, or explore more at ebookfinal

Mastering C Database Programming 1st Edition Jason Price

https://ebookfinal.com/download/mastering-c-database-programming-1st-
edition-jason-price/

Murach s ADO NET 4 Database Programming with C 2010 4th


Edition Anne Boehm

https://ebookfinal.com/download/murach-s-ado-net-4-database-
programming-with-c-2010-4th-edition-anne-boehm/

Practical Database Programming with Visual Basic NET 1st


Edition Ying Bai

https://ebookfinal.com/download/practical-database-programming-with-
visual-basic-net-1st-edition-ying-bai/

Practical Database Programming with Visual Basic NET 2nd


Edition Ying Bai

https://ebookfinal.com/download/practical-database-programming-with-
visual-basic-net-2nd-edition-ying-bai/
Programming with ANSI C 2nd Edition Bhushan Trivedi

https://ebookfinal.com/download/programming-with-ansi-c-2nd-edition-
bhushan-trivedi/

Beginning Object Oriented Programming with C 1st Edition


Jack Purdum

https://ebookfinal.com/download/beginning-object-oriented-programming-
with-c-1st-edition-jack-purdum/

C GUI programming with Qt 4 1st Edition Jasmin Blanchette

https://ebookfinal.com/download/c-gui-programming-with-qt-4-1st-
edition-jasmin-blanchette/

Professional iOS Database Application Programming 2nd


Edition Patrick Alessi

https://ebookfinal.com/download/professional-ios-database-application-
programming-2nd-edition-patrick-alessi/

Advances in Photochemistry Volume 29 1st Edition Douglas


C. Neckers

https://ebookfinal.com/download/advances-in-photochemistry-
volume-29-1st-edition-douglas-c-neckers/
Database Programming with C 1st Edition Carsten
Thomsen (Auth.) Digital Instant Download
Author(s): Carsten Thomsen (auth.)
ISBN(s): 9781590590102, 1590590104
Edition: 1
File Details: PDF, 18.24 MB
Year: 2002
Language: english
Database Programming
with C#
CARSTEN THOMSEN

APress Media, LLC


Database Programming with C#
Copyright © 2002 by Carsten Thomsen
Originally published by Apress in 2002

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 978-1-59059-010-2 ISBN 978-1-4302-1098-6 (eBook)
DOI 10.1007/978-1-4302-1098-6
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.
Technical Reviewer: Douglas Milnes
Editorial Directors: Dan Appleman, Peter Blackburn, Gary Cornell, Jason Gilmore,
Karen Watterson, John Zukowski
Managing Editor: Grace Wong
Copy Editors: Nicole LeClerc, Ami Knox
Production Editor: Tory McLearn
Compositor: Impressions Book and Journal Services, Inc.
Indexer: Valerie Haynes Perry
Cover Designer: Tom Debolski
Marketing Manager: Stephanie Rodriguez

In the United States, phone 1-800-SPRINGER, email orders@springer-ny. com, or visit


http://www.springer-ny.com.
Outside the United States, fax +49 6221 345229, email orders@springer. de, or visit
http://www.springer.de.

For information on translations, please contact Apress directly at 2560 9th Street, Suite 219,
Berkeley, CA 94710.
Email info@apress. com or visit http: I /www. apress. com.
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 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.
Contents at a Glance
Foreword .............................................................. .ix
About the Author ..................................................... .xi
About the Technical Reviewer .................................... .. xiii
Acknowledgments ..................................................... .xv
Introduction ........................................................ .xvii

Part One Getting Started ................................. .1


Chapter 1 A Lightning-Quick Introduction to C# ........... .3

Part Two Database Programming ......................... .29


Chapter 2 Using Databases ................................... .31
Chapter 3A Presenting ADO.NET: The Connected Layer ....... 55
Chapter 3B Presenting ADO.NET: The Disconnected Layer ... 193
Chapter 4 Presenting the IDE from a Database Viewpoint 281

Chapter 5 Exception Handling .............................. .343


Chapter 6 Using Stored Procedures, Views, and Triggers 367

Chapter 7 Hierarchical Databases ......................... .413


Chapter 8 Message Queues ................................... .449
Chapter 9 Data Wrappers .................................... .505
Chapter 10 Data-Bound Controls ............................. .525

iii
Contents at a Glance

Part Three Example Applications ........................ .563


Chapter 11 UserMan ........................................... .565

Appendix A Using XML with SQL Server 2000 ................ .587

Index ................................................................ .637

iv
Contents
Foreword ............................................................ .ix

About the Author ................................................ .xi

About the Technical Reviewer .............................. .xiii

Acknowledgments ................................................. .xv

Introduction .................................................... .xvii

Part One Getting Started .............................. .I


Chapter 1 A Lightning-Quick Introduction to C# .. .3

Reviewing Programming Concepts .................................... .4


Getting Cozy with the VS .NET Integrated
Development Environment ....................................... .14
Summary .............................................................. .28

Part Two Database Programming .................... .. 29


Chapter 2 Using Databases ................................ .31
What Is a Database? ............................................... .31
Why Use a Database? ............................................... .32
Relational vs. Hierarchical ..................................... .. 33
What C# Programmers Need to Know About
Relational Databases .......................................... .35
UserMan Database Schema ........................................... .51
Summary .............................................................. .53

v
Contents

Chapter 3A Presenting ADO.NET:


The Connected Layer ......................... .55
Data-Related Namespaces ........................................... .58
Data Providers and Drivers ....................................... .59
Using Command Objects ............................................ .123
Using the DataReader Class ...................................... .146
The DataAdapter Explained ....................................... .170
Using the CommandBuilder Class ................................. .188
Summary ........................................................ ..... .191

Chapter 38 Presenting ADO.NET:


The Disconnected Layer ................... .193
Using the DataSet Class .......................................... .193
Using the DataTable Class ....................................... .218
Using the DataView Class ........................................ .238
Using the DataRow Class .......................................... .245
Using the DataColumn Class ...................................... .249
Using the DataRelation Class .................................... .252
Looking at Cursors ................................................ .261
Examining Data Source Locking ................................... .265
Using "Classic" ADO and COM Interop ........................... .276
Summary ........................................................ ..... .279

Chapter 4 Presenting the IDE


from a Database Viewpoint ................ .281
Using the Server Explorer ....................................... .281
Looking at Database Projects .................................... .296
Designing Databases with Visio for Enterprise Architect .... .305
Designing Databases with the Database Designer .............. .306
Using the Table Designer ........................................ .314
Designing Queries with the Query Designer .................... .321
Script Editing Using the SQL Editor ........................... .334
Creating Typed Data Sets ........................................ .337
Summary ........................................................ ..... .341

vi
Contents

Chapter 5 Exception Handling 0 0 0 0 0 0 0 0 0 .. 0 0 . . . . . . . . 0 0 0 0 0 0343

Enabling Exception Handling 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 o345


Using Two or More Exception Handlers
in One Procedure 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 o345
Examining the Exception Class 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0346
Handling Exceptions in the Exception Handler 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0348
Filtering Exceptions 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0354
Creating Your Own Exception 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 o356
Throwing an Exception 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0356
Handling Data-Related Exceptions 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0357
CLR Handling of Exceptions 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0359
Using the Debug Class 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .359
Summary 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0366

Chapter 6 Using Stored Procedures, Views,


and Triggers 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0367

Optimization Issues 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0368


Using Stored Procedures 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .373
Using Views 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0397
Using Triggers 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .405
Summary 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 o412

Chapter 7 Hierarchical Databases 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.413

Looking at LDAP 0 0 0 0 0 o o o 0 0 o o 0 0 o 0 0 0 0 0 o 0 o 0 0 0 0 0 0 0 0 o o 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .413


Accessing Active Directory Programmatically 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .415
Accessing Active Directory Using
the OLE DB . NET Data Provider 0 0 0 0 0 0 0 0 0 0 0 o 0 0 0 0 0 0 0 0 0 0 0 o o 0 0 0 0 0 0 0429
Accessing Microsoft Exchange Server 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .436
Summary 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0448

Chapter 8 Message Queues 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.449

Connectionless Programming 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .450


Taking a Quick Look at the MessageQueue Class 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .450
When to Use a Message Queue 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0451
How to Use a Message Queue 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .453

vii
Contents

Making Message Queues Transactional ........................... .480


Looking at System-Generated Queues ............................. .485
Securing Your Message Queuing ................................... .490
Summary ............................................................. .504

Chapter 9 Data Wrappers .................................. .505


Why Use Data Wrappers? ........................................... .505
Looking at Object Oriented Programming ........................ .506
Wrapping a Database .............................................. .513
Summary ............................................................. .524

Chapter 10 Data- Bound Controls ........................ .525


Data-Bound Controls vs. Manual Data Hooking .................. .525
Different Controls for Different Uis .......................... .526
Summary ............................................................. .561

Part Three Example Applications ................ .563


Chapter 11 UserMan ......................................... .565
Identifying the UserMan Information ........................... .565
Discovering the Objects .......................................... .566
Creating the Client .............................................. .582
Tips and Ideas .................................................... .583
Summary ............................................................. .586

Appendix A Using XML with SQL Server 2000 ........ .587


Using SQLXML 2.0 .................................................. .591
Summary ............................................................. .635

Index ............................................................... .637

viii
Foreword
No MATTER WHAT APPLICATION you're building, there's no escape from dealing with
data and, subsequently, with databases. While new technologies can make our
lives easier, they're built with one thing in mind: to keep data at our fingertips.
The same goes for .NET, the new generation of Microsoft technology that
promises to make data interchange easier and more flexible, even across dis-
parate systems .. NET comes with a whole set of data-handling tools that will
give developers more choices when they build applications.
Carsten's book is a wonderful introduction to all these choices, some of
which even I did not give a second thought to before reading the book. Because
problems in real-life applications demand different solutions, it is important for
every developer to understand these different solutions. Not only will this make
developers more productive, but it will also make them more marketable.
Moreover, I believe, by covering topics such as hierarchical databases,
Message Queuing, and SQLXML, Carsten shows his expertise in the area of data
handling within the .NET Framework, which goes beyond the ADO.NET coverage
you see in most other books. Being a Microsoft MVP, Carsten often interacts with
people to solve their day-to-day problems, and the same conduct continues in
his book. So, when I was asked to review this book and write the foreword, I was
more than happy to oblige.
I hope this book opens your mind to the new possibilities within .NET.
I'm sure you'll appreciate Carsten's efforts to make learning data access with
.NET easy.

Manohar Kamath
Microsoft MVP and .netBooks Editor, (http: I /www. dot net books. com)
March2002

ix
About the Author
Carsten Thomsen is a Microsoft MVP, recognition he
received in August 1999. He lives in his native Denmark and
currently holds the MCSE and MCSD certifications. Carsten
has been programming in Visual Basic for almost 10 years,
and he specializes in data access. With the advent ofVB .NET
and, more important, VS .NET, Carsten now focuses on data
access using C# and VB .NET.
Carsten and his girlfriend Mia live in Esbjerg, Denmark. They have a 2-year-
old daughter, Caroline, and are currently expecting a second child. Nicole, 7, is
Carsten's oldest daughter and she lives with her mother in Dublin, Ireland.
Carsten enjoys traveling to Dublin several times a year to spend time with Nicole.

xi
About the Technical
Reviewer
Douglas Milnes is a freelance computer consultant who has
been running his own consultancy and application develop-
ment business since 1984. He lives in the heart of the United
Kingdom's "Silicon Valley" near Reading, Berkshire, England.
He has consulted for major companies such as IBM and
Oracle and is a lead consultant with both DeeSoft
(http: I /www. dee soft. net) and Boost Data
(http: I lwww. boost. net/Douglas).
Douglas started with computing at the beginning of the microcomputer
boom and opened a pioneering retail business in the days before the IBM PC
was launched. After disposing of that business, he worked for a range of com-
panies implementing PC and UNIX systems. His specialty was accounting
applications, which led him into stock control applications and his first "real"
database exposure.
Douglas owns up to a wide experience in the computing world, admitting to
being one of those programmers who carries a screwdriver with him. He has
worked with DGE, DEC, IBM, and ICL minis and mainframes, but he's spent most
of the last few years around PCs, linking to larger machines where necessary. Like
any programmer who's been around for a time, he works on desktop computers
these days that vastly outpower the multiuser minicomputers he learned about
databases on.
Douglas has extensive experience with several programming languages,
including Assembler, RPG, Visual Basic and, of course, C#. Tending to keep up
with the times and being at the leading edge of technology, he has been involved
with .NET since the beta pre-releases were available.
With his two children, Daniel, 12, and Rebecca, 15, and his beautiful wife,
Douglas counts his blessings and enjoys a varied life. Douglas can be contacted
by e-mail at Douglas@DeeSoft. net.

xiii
Acknowledgments
This book, which is based on my first book Database Programming with VB .NET,
was somewhat easier for me to write than the first one. Having been through all
the processes once before, I knew what to expect and how to plan accordingly.
Obviously, a lot of the material in this book is taken from the first book, but
a number of changes have been made, especially to correct the typos and more
grave errors, and I've managed to add a lot more content to the book.
I couldn't have written this without Technical Reviewer Douglas Milnes, who
proved to be extremely valuable for content of this book. Douglas found some of
the mistakes that I made, but he also brought a number of excellent ideas to my
attention, on how to arrange the book and on "sticking in" extra or just missing
sections. My editor this time around was Peter Blackburn. I can't really say that
we started off on the right foot (which was also the case with Douglas) but we
sure ash*** made up for it along the way. Peter has an "annoying" habit of con-
tacting me day and night on MSN Messenger, so we were always in close contact
about the book, the whole process, and just about everything else. What I am
getting at here, is that it truly has been an excellent partnership, not just with
Peter and Douglas, but also with the rest of the crew: Grace, Nicole, Alexa, Ami,
and Tory.

Carsten,[email protected]
Esbjerg, Denmark
March2002

XV
Introduction
THIS BOOK IS ALL ABOUT ACCESSING DATABASES of variOUS kinds, SUCh as Active Directory,
SQL Server 2000, Exchange Server 2000, and Message Queuing. My intention with
this book is to give you insight into how ADO.NET works and how you can use
the classes from ADO.NET to access a database; use stored procedures, views,
and triggers; get information from Active Directory and Exchange Server; and use
Message Queuing in your applications. Having said that, my goal was to make the
book as easy to read as possible, and although there are passages that aren't quite
as easy to read as I'd like them to be, I think I've managed to accomplish what
I set out to do.

Who This Book Is For


This book is targeted at intermediate users, meaning users who already know
a little about Visual Studio .NET and perhaps previous versions ofVisual Basic.
Basic knowledge of Object Oriented Programming (OOP), ADO, and database
design is also assumed. Parts of the book are at a beginner level and other parts
are at a more advanced level. The beginner-level material appears where I feel it
is appropriate to make sure you really understand what is being explained. The
many listings and tables make this a good reference book, but it's also a book
intended for reading cover to cover. It will take you through all the data access
aspects ofVisual Studio .NET with example code inC#. This includes how to cre-
ate the various database items, such as databases, tables, constraints, database
projects, stored procedures, views, triggers and so on. For the most part, I show
you how to do this from within the VS .NET IDE as well as programmatically
where possible. You'll build on the same example code from the beginning of
the book until you wrap it up in the very last chapter. The example application,
UserMan, is a complete user management system that includes SQL Server,
Active Directory, and Message Queuing.

xvii
Introduction

How This Book Is Organized


This book is organized in four parts:

Part One is a general introduction to Visual Studio .NET and the


.NET Framework.

Part Two is the juicy part, where you take a look at how to connect to rela-
tional and hierarchical databases. You will also learn how to wrap your
database access in classes and how to master exception handling. Part Two
starts with a look at how to design a relational database, and you gradually
learn the building blocks for the User Man example application.

Part Three is where you finish the UserMan example application.

Appendix A covers how to use the SQLXML plug-in for manipulating SQL
Server 2000 data using XML from managed code or using HTTP.

Technology Requirements
From the example code you can connect to SQL Server using any of these three
.NET Data Providers: SQL Server .NET Data Provider, OLE DB .NET Data
Provider, or ODBC .NET Data Provider. The example code also includes how to
connect to and manipulate data in MySQL 3.23.45 or later, Oracle 8i or later,
Microsoft Access 2000 or later, and SQL Server. For connecting to SQL Server
2000, you can find coverage of the SQLXML plug-in for manipulating SQL
Server data using XML from managed code or using HTTP. Exchange Server 2000
connection and data manipulation is also covered.
Because I'm using some ofthe Enterprise functionality ofVisual Studio .NET,
you'll need either of the two Enterprise editions to follow all the exercises. How-
ever, the Professional edition will do for most of the example code, and it will
certainly do if you just want to see how everything is done while you learn
ADO.NET. This means that the only thing extra you get from the Enterprise
editions in terms of database access is an extra set of database tools to be used
from within the IDE.

xviii
Introduction

Example Code
All the example code for this book can be found on the Apress Web site
(http: I lwww. a press. com) in the Downloads section, or on the UserMan Web site
(http: I lwww. userman. dk).

Data Source
The data source for the example code in this book is running on SQL Server 2000.
However, the example code also includes how to connect to and manipulate data
in MySQL 3.23.45 or later, Oracle 8i or later, Microsoft Access 2000 or later, and
SQL Server.

Feedback
I can be reached at carstent@dotnetservices. biz and I'll gladly answer any
e-mail concerning this book. Now, I don't need any unnecessary grief, but I'll try
to respond to any queries you might have regarding this book.
I have set up a Web site for the UserMan example application, where you can
post and retrieve ideas on how to take it further. The Web site address is
http: I lwww. userman. dk. Please check it out.

xix
Part One

Getting Started
CHAPTER 1

ALightning-Quick
Introduction to C#
THE .NET FRAMEWORK IS AN ENVIRONMENT for building, deploying, and running
services and other applications. This environment is all about code reuse and
specialization, multilanguage development, deployment, administration,
and security. The .NET Framework will lead to a new generation of software that
melds computing and communication in a way that allows the developer to
create truly distributed applications that integrate and collaborate with other
complementary services. In other words, you now have the opportunity to create
Web services, such as search engines and mortgage calculators, that will help
transform the Internet as we know it today. No longer will it be about individual
Web sites or connected devices; it's now a question of computers and devices,
such as handheld computers, wristwatches, and mobile phones, collaborating
with each other and thus creating rich services. As an example, imagine calling
a search engine to run a search and then displaying and manipulating the results
of the search in your own application.
There are rumors that the .NET Framework is solely for building Web sites,
but this is not true. You can just as easily create your good old-fashioned
Windows applications with the .NET Framework. The .NET Framework is actually
more or less what would have been called COM+ 2.0 if Microsoft had not
changed its naming conventions. Granted, the .NET Framework is now a far cry
from COM+, but initially the development did start from the basis of COM+.
I guess not naming it COM+ 2.0 was the right move after all.
This book is based on the assumption that you already know about the .NET
Framework. However, this chapter provides a quick run-through of .NET con-
cepts and terms. Although the terms are not specific to C#, but rather are relevant
to all .NET programming languages, you'll need to know them if you're serious
about using C# for all your enterprise programming.

3
Part One: Getting Started

Reviewing Programming Concepts


The .NET environment introduces some programming concepts that will be new
even to those who are familiar with a previous version of a Windows program-
ming language, such as Visual Basic or Visual C++. In fact, these concepts will be
new to most Windows developers because the .NET programming tools, such as
C#, are geared toward enterprise development in the context ofWeb-centric
applications. This does not mean the days ofWindows platform-only develop-
ment is gone, but .NET requires you to change the way you think about Windows
programming. The good old Registry is "gone" -that is, it's no longer used for reg-
istering your type libraries in the form of ActiveX/ COM servers. Components of
.NET Framework are self-describing; all information about referenced compo-
nents, and so on, are part of the component in the form of metadata.
Visual Studio .NET is based on the Microsoft .NET Framework, which obvi-
ously means that the C# programming language is as well. C# is part of the Visual
Studio .NET package and it's just one of the programming languages that
Microsoft ships for the .NET platform.
At first some of these new terms and concepts seem a bit daunting, but they
really aren't that difficult. If you need to refresh your memory regarding .NET pro-
gramming concepts and the .NET Framework, simply keep reading, because this
chapter is indeed a very quick review of these basics.

A Quick Look at Components of the .NET Framework


The .NET Framework adheres to the common type system (CTS) for data
exchange and the Common Language Specification (CLS) for language inter-
operability. In short, three main parts make up the .NET Framework:

• Active Server Pages.NET (ASP.NET)

• Common language runtime (CLR)

• .NET Framework class library (the base classes)

The .NET Framework consists of these additional components:

• Assemblies

• Namespaces

• Managed components

4
Chapter 1: A Lightning-Quick Introduction to C#

• Common type system (CTS)

• Microsoft intermediate language (MSIL)

• Just- In-Time (JIT)

I discuss all of these components in the following sections.

Active Server Pages.NET

Active Server Pages.NET is an evolution of Active Server Pages (ASP) into


so-called managed space, or rather managed code execution (see the sections
"Common Language Runtime" and "Managed Data" later in this chapter).
ASP.NET is a framework for building server-based Web applications. ASP.NET
pages generally separate the presentation (HTML) from the logic/ code. This
means that the HTML is placed in a text file with an .aspx extension and the code
is placed in a text file with a .cs extension (when you implement your application
logic/code inC#, that is).
ASP. NET is largely syntax compatible with ASP, which allows you to port most
of your existing ASP code to the .NET Framework and then upgrade the ASP files
one by one. ASP. NET has different programming models that you can mix in any
way. The programming models are as follows:

• Web Forms allow you to build Web pages using a forms-based UI. These
forms are quite similar to the forms used in previous versions ofVisual
Basic. This also means that you have proper event and exception handling,
unlike in ASP, where event and especially exception handling is a difficult
task to manage.

• XML Web services are a clever way of exposing and accessing functionality
on remote servers. XML Web services are based on the Simple Object
Access Protocol (SOAP), which is a firewall- friendly protocol based on
XML. SOAP uses the HTTP protocol to work across the Internet. XML Web
services can also be invoked using the HTTP GET method simply by
browsing to the Web service and the HTTP POST method.

• Standard HTML allows you to create your pages as standard HTML


version 3.2 or 4.0.

5
Discovering Diverse Content Through
Random Scribd Documents
The centre of these forces is not as might be supposed at the
centre of the plane, but at a point between the centre and the front
edge called the "centre of pressure." The centre of pressure
approaches the front edge as the angle of the plane with the
horizontal becomes less.
In order to render a better idea of how it is possible for an
aeroplane to gain support in the air consider a skater moving swiftly
over very thin ice which would not bear his weight, but since he is
moving so rapidly that any one portion of the ice does not have time
to bend to the breaking point, he is supported. In somewhat the
same manner, the planes pass so rapidly on to new and undisturbed
bodies of air, and stay over one body for so brief an instant that
there is no time to completely overcome the inertia of the air and
force it downwards.

FIG. 12. The action of the air upon a curved and a flat plane. We
have seen that by the effects of the resistance of the air, an
aeroplane may be sustained in the atmosphere. We must now see in
what manner we can use these effects to the greatest advantage.
First of all, we have been continually speaking of a "plane" as
the supporting surface, which from the definition of the word would
lead one to believe that they were flat. If the wings of a bird are
examined, it will soon be noticed that they are concave underneath.
Since the first attempts at aviation, therefore, machines have been
built with planes or wings concave on the underside. The reason for
this is very apparent from Fig. 12. The first illustration shows the
action of a flat surface moving through the air. The air streams, as
represented by the lines do not follow the surface of the plane, but
leave a considerable region of dead air. This is the reason that a flat
plane is very inefficient and not capable of giving so great a lift as
the curved plane in the next figure where the lines follow the outline
of the plane. The less disturbance a plane causes in the surrounding
air, the closer it is said to approach to "stream line form." A correctly
curved plane is considerably more effectual than a flat one, giving at
the same time greater "lift" and less "drift."
Built-up Planes, that is, planes having a double curve
approaching true stream line form, come nearer being the ideal
plane than any other from some standpoints, but do not possess any
advantages when used on models of less than four feet spread.
FIG. 13. Section of a built-up plane showing how a rib is made.
When made small, they offer greater "drift" or head resistance than
a single curved surface plane and cannot because of the delicate
structure necessary to make them light, withstand hard knocks.
They have the further disadvantage of being from a constructional
standpoint very hard to make smooth and rigid.

There are innumerable substances which would at first seem to


recommend themselves as material for planes, but we may
immediately thrust the greater portion aside. By all means avoid
tracing cloth or linen, not only because its heavy weight forever
precludes it from this use, but because it wrinkles and cockles so as
to be absolutely useless when slightly damp or wet.
Tissue paper wrinkles easily and is not strong enough.
Jap silk is an excellent material for fabric covered planes, being
at once light and strong. However, by far the most satisfactory plane
of this kind is formed by silk bolting cloth which has been coated
with collodion. The collodion is brushed on with a fine camel's hair
brush after the fabric is in place and it is thereby rendered both
waterproof and air-tight.
Fabrics should always be stretched over the planes from end to
end and not front to back or vice versa. Make the lap joints or
pockets around the end spars as long as possible so that they will
not draw "dead air" and impede the forward motion of the machine.
Bamboo Paper is one of the best materials for covering the
planes of a model aeroplane and is to be highly recommended. It is
made in Japan from bamboo fibre and is very strong. It is usually
stretched tightly over the framework and then given two coats of
collodion or, what is much better, bamboo varnish.
The framework of the planes may be made of rattan, split
bamboo, spruce, or steel piano wire. Piano wire is excellent for small
machines since it is springy and light and able to withstand shocks.
It is easily bent to any shape and offers considerably less head
resistance than rattan because of its small diameter. Rattan can be
bent into almost any shape by wetting.
Nothing is better for the cross pieces, ribs, etc., of the planes or
framework than split bamboo. Bulk for bulk it is heavier but infinitely
stronger than other woods. It is easily worked and can be bent into
all kinds of shapes. Bamboo must always be bent while hot. The
best source of heat is a spirit lamp or a bunsen burner. Always bend
toward the hottest side. When bent apply a cold wet rag to cool
quickly. If bent more than necessary, it may be straightened by
applying heat again and allowing it to straighten itself.
In order to make long bends, such as the ends of planes,
alighting skids, etc., first wind a strip of wet rag around, the bamboo
and allow it to remain on for ten or fifteen minutes. Then remove
the rag, heat the bamboo in a flame and bend slowly.
PLATE III.

With a little care, strips several feet long may be easily split
from bamboo rods. The best method of accomplishing this is to use
a fine saw, but a sharp knife will often be successful.
FIG. 14. How ribs may be joined to the long members.

Planes of any considerable size require ribs to support and hold


the fabric in shape. Split bamboo is one of the best materials for this
purpose. Two very good methods of joining the ribs to the long
members of the planes are illustrated in Fig. 14. In the first, a strip
of thin sheet aluminum is bent around the rib and spar and fastened
by lashing with silk thread. Care must be taken to file off all sharp
edges on the aluminum which might otherwise cut the thread. The
second method is the neatest and probably the best, since the rib
cannot so easily twist or slip out of place.
Wood Planes. In spite of the many advantages of fabric planes
they cannot approach wooden planes for efficiency on a small
machine. Wood is strong, light and does not change its adjustment.
Whitewood and spruce are the best materials for the purpose.
Do not endeavor to saw out the wood. Use a carpenter's plane as
much as possible in the work. A saw tears the fibres of the wood
and will make the finished plane full of tiny splits.
The wood, however, may be sawed down to a thickness of 5/32
of an inch and then planed down from that. The finished plane
should be about 1/16 of an inch thick.
When planing down the wood do not butt one end against a
bench stop, because as the wood becomes thin, the pressure
exerted by the plane against the wood will cause it to rise in the
middle and thereby become thinner at that part. Instead, use a
clamp to fasten the wood at one end to the bench and plane away
from the clamp—Plane down to a smooth surface and avoid the use
of sand-paper.

FIG. 15. Form for bending the planes.

Forming the Curve by steaming and bending the wood is a


very poor method. It soon becomes distorted and warped.

FIG. 16. A good method of building a wooden plane.


The best method is illustrated in Fig 16. A piece of wood of the
same length as the completed plane and having a cross section like
that at A is glued to the forward under edge of a flat plane B. After
the glue has hardened, the plane is worked down to the shape
shown at D which is very close to the stream line form. The plane is
then varnished to prevent it from absorbing moisture and losing its
shape. The ends may be covered with thin Jap silk, carefully glued
on to prevent splitting. The Wright brothers cover the blades of the
propellers on their aeroplanes with silk for the same purpose.
Air does not flow smoothly when changing from an interrupted
flow to an uninterrupted flow around a square corner and so by
rounding the ends of the planes, the disturbance at that point is
somewhat eliminated.
Planes having rattan or piano wire edges cannot very well be of
any other shape than those which are illustrated in Fig. 17.

FIG. 17. Various shapes a plane may take.

It is a good plan to give wooden planes the shape shown by 3


and 4 in Fig. 17, as the disturbances mentioned above are not so
marked.
FIG. 18. An edgewise view of several planes showing the different
ways they may be bent to secure stability.

The planes of large man-carrying machines possess the same


characteristics, but not to such an alarming extent as in a model.
The Voisin aeroplanes overcome the objection by the use of vertical
panels set between the planes.
The angles at which the planes are set may vary from 1 in 6 to
1 in 20. One in ten might be called the "happy medium." If the
planes are given too great an angle, the drift becomes so great that
the propeller thrust is severely taxed. The smaller the angle, the less
will be the drift and consequently the greater the speed. However, if
the surface is curved the angle must not be made too small or not
much lift will result.
FIG. 19. The various ways two planes may be combined to secure
stability or form a biplane.

The angle of the tail planes should be adjustable. If too great,


the machine will slow down and the tail will drop, destroying the
equilibrium of the machine and consequently the flight. If the lift of
the tail is too great, however, it will cause that part to rise and the
machine will dive downwards.
Elevators and Tails are usually made of thin wood or fabric
stretched over a rattan or wire framework. They are usually
rectangular or elliptical in shape.
In case they are made of wood one of the best methods of
attachment is to fasten the plane to a small stick by means of two or
three small rivets. The stick is secured to the framework of the
machine by two small rubber bands. Then in case the machine
strikes head on in alighting, the band will absorb the shock and
permit the elevator to move so that it is not damaged by the fall.
Vertical Fins. It is a much mooted question whether or not a
vertical fin is of any value on a model aeroplane since a good model
should be so designed that it will fly in a straight line without the use
of a rudder. It has been the author's experience that it is often of
decided advantage in correcting the flight of an "erratic machine" or
in compensating any little difference that there may result in the drift
of the two halves of the planes.

FIG. 20. Fins.

The fin should be placed well toward the rear of the machine
and, whenever possible, stretched both above and below the centre
line of the machine, so that the pressure due to cross winds will be
equal both above and below and there will be no tendency for the
machine to twist about its longitudinal axis.
When it is not possible to place the fin both above and below
the centre line it should be placed above rather than below.
Fins may be made out of thin wood, sheet aluminum or fabric
stretched over a wire or rattan framework.
CHAPTER IV. THE FUSELLAGE OR
FRAMEWORK.

By the term "fusellage" or frames, that part of the aeroplane which


serves as the "backbone" and to which all the other members are
attached is implied.
The fusellage above all must be strong. The second requisite is
lightness. The simplest frame for a model aeroplane is a long
straight stick. The cross section of the stick may vary and be either
round or square. A careful workman, however, can build them of "I"
section like a steel girder. Increased lightness and strength is the
result.

FIG. 21. A simple "motor base" or fusellage.


A single skein of elastic when wound up tends very strongly to
twist the framework of the machine out of true. Since the tail and
elevator are usually attached to the ends, the adjustment is thrown
out to a marked degree and the flight of the machine is liable to be
erratic.
We have tried building the fusellage of a network of girders
such as the Bleriot and Voisin aeroplanes employ. Nothing could
have been prettier than these carefully designed and constructed
frames with their little struts and guy wires, but we soon found that
for plain ordinary everyday efficiency, the simple stick is the best,
provided, of course, that it is of the proper size to resist the twist of
the rubber.
In some cases it is desirable to retain the framework because of
the realistic appearance of the model to the larger machines which it
gives. The only practical method then is to employ a plain stick
backbone to withstand the torque of the rubber and build a false
framework around it. The framework need only be strong enough to
support the fabric and resist the shocks of landing. This method of
construction is best suited to models of the Bleriot and Antoinette
types.
The only type of frame consisting of a single member which will
resist the torque of powerful rubber bands successfully is a tube.
The rubber skein is placed inside the tube which may be of wood,
paper or aluminum.
FIG. 22. Paper Tube Fusellage. Part of the tube is cutaway to show
the rubber skein inside.

Paper tubes are excellent for small machines, being exceedingly


light and very strong. They are formed by wrapping tough, unglazed
paper around a rod of the required inside diameter. The paper is well
smeared with glue and wrapped tightly. The rod is afterwards
removed. Be sure that the glue is thoroughly dry before attempting
to use the tube.
In larger machines it is preferable to employ some other means
of avoiding the nuisance of a single skein rather than to use a
tubular frame. There are several ways of accomplishing this, the best
one undoubtedly being to balance the torque of one elastic by an
equal torque tending to twist in the opposite direction.
FIG. 23. Two methods of gearing a propeller.

In Fig. 23, a second skein of elastic is geared to the first with


equal sized gear wheels. The second skein is placed immediately
underneath the first and is equal in length and strength. Placing one
skein under the other and not side by side as might be the first
tendency allows the propeller to be arranged centrally. The lower
part of the same figure illustrates a second method. In this, the
propeller is attached to a long shaft, the other end of which is fitted
with a gear wheel. Two elastic skeins of equal length and strength
are attached to a second gear which meshes with the first. The only
disadvantage of this form of motor is the long propeller shaft
required. The objection, however, is sometimes outweighed by the
fact that it is possible to employ a small gear wheel on the shaft
meshing with a large one between the bands so that the action of
the elastic is multiplied and a greater number of propeller revolutions
secured where the length of the bands is limited and could not be
increased in order to bring about the same result.
Skids. It requires only very little experience with model
aeroplanes to prove the need of efficient skids on the machine. After
the rubber band motor has run down, the propeller offers
considerable resistance to the forward travel of the machine so that
it does not glide properly and causes it to land on its "nose," often
damaging the propeller or front planes. At the least, the framework
of the machine is strained by such a shock.

FIG. 24.

Skids of course weigh something and offer a certain amount of


resistance, but the advantages more than outweigh those
drawbacks.
Skids are usually made of piano wire, split bamboo or rattan.
The skids should not be made any larger than is necessary to
protect the machine. They do not usually take any special shape but
are formed to fit each individual case.
CHAPTER V. MOTIVE POWER.

By far the simplest and most efficient form of power which could be
installed in a model aeroplane to drive the propeller is a twisted
skein of rubber. Nothing is lighter, or more easily handled and
repaired.
The word elastic, in physics, is the name given to the tendency
which a body exerts, when distorted, to return to its original shape.
Rubber possesses more elasticity than any other material known, it
being possible to stretch a piece of rubber cord to eight or nine
times its original length without fracture. Rubber also possesses the
added requisite of lightness and will store up more energy than any
form of steel spring.
The Simplest Form of Motor is a single skein of elastic
stretched between two hooks, one fixed and the other to which the
propeller is attached, free to rotate. In some cases it is a decided
advantage to divide the motor into one or more parts. One phase of
this question has already been considered. The others will be
discussed in the following chapter.
The type of Elastic which gives at once the longest life and
the greatest power is the square rubber, preferably about 3/32 x
3/32 inches, and not the flat strip. When examined under the
microscope the edges of the square rubber show to be cleaner and
sharper and not so ragged as those of the flat strips. To be of any
value for use in a model aeroplane, the rubber should be absolutely
pure and fresh.
There are certain precautions which if observed will add greatly
to the power and efficiency of a rubber band motor.
Always remove the elastic from the machine when the flights
are over for the time being. Rubber spoils very quickly when kept
under tension. It also deteriorates if warm, so keep in a cool place.
Strong sunlight causes rubber to harden and lose its elasticity, due
to the presence of the sulphur used in vulcanizing. If talcum powder
or finely powdered soapstone is rubbed on the bands from time to
time it will prevent them from sticking together. The strands will then
run and slip more easily upon each other, making it possible to store
up a greater number of propeller revolutions.
In spite of the use of talcum powder, however, when a skein of
rubber is twisted very tightly, the strands stick together, causing it to
soon break up.
This nuisance may be somewhat alleviated if the strands are
lubricated with pure redistilled glycerine free from grease, etc. Such
a precaution will not always greatly lengthen the life of the rubber,
but will increase the number of turns which it is possible to give the
skein (and this is a very important advantage in model contests).
Due to its sticky nature, however, the glycerine will cause the rubber
to gather dust and particles of dirt which, if allowed to grind into the
rubber, would soon weaken it. The skein should therefore be washed
from time to time in warm soda and water and fresh glycerine
applied. By all means, avoid all oils or substances of a greasy nature,
such as lubricants. They quickly soften and rot the rubber.
The Amount of Elastic required for a model will vary
considerably for propellers of the same pitch and diameter. There is
always a tendency to use too much rather than too little and this
fault should be carefully guarded against. In nine cases out of ten it
is the cause of the unsatisfactory behavior of a model.
The motor should always be "stranded," that is, made up of a
skein of bands. It is then possible to secure a larger number of turns
than if a single strip were used.
Always start a new machine with a small number of strands and
gradually add to the number until the proper amount of power is
obtained. The distance between the propeller and the fixed hook
should always be as great as possible so as to secure the maximum
number of turns.
Doubling the Number of Elastic Strands increases the
power of the motor but cuts down the number of turns which it is
possible to give the propeller. That is to say, a certain skein
composed of six strands of rubber will take perhaps two hundred
and twenty-five turns while a twelve strand skein of he same sized
rubber strands strands is only capable of less than half or about one
hundred turns before it is wound tight.
Doubling the number of strands and at the same time keeping
them the same length increases the torque more than three times
but diminishes the number of turns from one-half to one-third.
Doubling the length of the strands does not materially reduce
the torque for the first hundred turns. After two hundred turns have
been reached, the torque is only about one-half as great as it would
be in case the length were not doubled.
Doubling the length of the strands doubles the number of turns
it is possible to give the skein. It is easy to see from this why it is
always advisable to make the motor as long as possible and to
compose it of the fewest number of strands if long flights are
desirable.
By using several separate skeins geared together so as to apply
their energy to one screw, it is possible to obtain a greatly increased
number of turns. The weight of the gearing is very small and hardly
a factor, considering the advantages derived therefrom. Since the
skeins revolve in opposite directions the frame of the machine is
relieved of the harmful twisting effect so often present in a single
skein.
The gears should be of steel accurately cut and of no larger
diameter than is necessary to separate the rubber skeins the
requisite distances so that they will not rub.
Holes may be bored in the gears to lighten them. The gears are
easily and conveniently cut out of steel pinion wire.
CHAPTER VI. SCREW PROPELLERS.

We might compare a propeller to an ordinary screw or bolt by


likening the thread of the screw to the two blades of the propeller. If
the screw penetrates wood or metal nut it will advance a certain
distance known as the pitch which is always the same, namely, the
distance separating two consecutive turns of the threads. The
revolving blades of the propeller cut their way through the air in
identically the same manner. But since air is a very thin medium as
compared to wood or iron the propeller slips a little just like a screw
going into an unsteady nut and does not advance the distance it
theoretically should considering the angle of the blades. The
distance lost in each revolution is called the slip. Thus a screw
having a ten-foot pitch in actual operation perhaps only advances
the aeroplane eight feet.
FIG. 25.

If a propeller blade had a uniform angle throughout its entire


length the portions of the blade near the centre would not have as
great a pitch as the extreme tips because the diameter of the circle
they travel in one revolution is not as great as that at the tips. For
this reason it is usual to give the blades an increasing angle as they
approach the centre.
FIG. 26. Method of laying out a screw propeller, that is, determining
the angle of the blades at different points.

Fig 26 shows a diagram illustrating the theoretical pitch of a


screw, the angle of the blade varying inversely as its radial distance
from the centre of the screw.
When a propeller revolves it sets in motion a cylinder of air. If
the angle of the blades is uniform throughout their length the air in
the centre of the cylinder will move much more slowly than that near
the outside as shown by the arrow heads in A of Fig. 27. If the
blades are given an increasing pitch, the air in all parts of the
cylinder will move away from the propeller at the same speed.
From a diagram like this it is very easy to calculate the angle of
a blade at any point to secure a certain pitch. Suppose that the
problem in hand is to design a propeller eight inches in diameter and
a pitch of twelve inches. On a sheet of paper draw a vertical line AM
twelve inches long to represent the pitch. Draw a long horizontal line
AN of indefinite length from the lower end of AM and at right angles
to it. The diameter of the propeller being eight inches, the tips of the
blades must travel in one revolution 8 x 3.1416 (the circumference
of an eight inch circle in inches), a distance of 33.1 inches. Lay off
on AN the distance AB which is 33.1 inches, draw the line MB. The
angle MB forms with AN is the proper angle for the blades at the
tips. To find the angle one inch from the tips lay off the distance AC,
which is. 8 - 2 x 3.1416 or 24.8 inches. MC gives the right angle.
The angle two inches from the tip would be shown by MD where AD
is 8 - 4 x 3.1416 or 18.8 inches. Any other points can be located in
the same manner.

FIG. 27. A propeller of the truly helical type delivers a cylinder of air
in which all parts move at the same speed as at A. A propeller
having blades of the same angle throughout their length throws the
air as in B in which the centre of the cylinder moves more slowly
than the outside.
FIG. 28. Templets for testing and carving a propeller.

If desirable, a number of small templets having the proper angle


may be cut out of sheet tin and fastened to a board as shown in Fig
28. When making the propeller it can be frequently laid on the
templets to see if the proper angle has been secured yet.
There are a great many other ways of making propellers for
model aeroplanes, the simplest and best of which are described
below.
Metal Propellers have advantages and disadvantages which
may be summed up only to find that as far as efficiency is concerned
the advantages outweigh the disadvantages.
FIG. 29. A simple method of forming a propeller from sheet metal.

The simplest method of making a small metal propeller is to cut


a piece of sheet aluminum into the shape shown by A in Fig. 29.
Fold along the dotted lines so that the result is like B in the same
illustration. The shaft may be a small piece of piano wire passed
through the hole in the centre and bent around as shown.

FIG. 30. A built-up metal propeller made of aluminum.

Another method of making a metal propeller which is more


suitable for large machines than that just described is illustrated in
Fig. 30. The blades are cut out of sheet aluminum to the shape
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade

Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.

Let us accompany you on the journey of exploring knowledge and


personal growth!

ebookfinal.com

You might also like