NET Programming A Practical Guide Using C 1st Edition Pradeep Tapadiyapdf download
NET Programming A Practical Guide Using C 1st Edition Pradeep Tapadiyapdf download
or textbooks at https://ebookultra.com
https://ebookultra.com/download/net-programming-a-practical-
guide-using-c-1st-edition-pradeep-tapadiya/
https://ebookultra.com/download/visual-c-net-programming-1st-edition-
harold-davis/
Build Your Own ASP NET Website Using C VB NET 1st Edition
Zak Ruvalcaba
https://ebookultra.com/download/build-your-own-asp-net-website-using-
c-vb-net-1st-edition-zak-ruvalcaba/
https://ebookultra.com/download/practical-database-programming-with-
visual-basic-net-second-edition-ying-baiauth/
https://ebookultra.com/download/making-and-using-antibodies-a-
practical-handbook-1st-edition-gary-c-howard/
https://ebookultra.com/download/foundations-of-object-oriented-
programming-using-net-2-0-patterns-1st-edition-christian-gross-auth/
https://ebookultra.com/download/a-programmer-s-guide-to-ado-net-
in-c-1st-edition-mahesh-chand/
https://ebookultra.com/download/large-scale-software-architecture-a-
practical-guide-using-uml-1st-edition-garland/
https://ebookultra.com/download/c-net-web-developer-s-guide-1st-
edition-saurabh-nandu/
NET Programming A Practical Guide Using C 1st
Edition Pradeep Tapadiya Digital Instant Download
Author(s): Pradeep Tapadiya
ISBN(s): 9780130669452, 0130669458
Edition: 1st
File Details: PDF, 2.04 MB
Year: 2002
Language: english
by Pradeep Tapadiya
ISBN : 0-13-066945-8
Book Info
Takes a straightforward, hands-on approach to explain everything you need to know from
development to deployment and maintenance for this platform-all from a developer's
perspective. Softcover. CD-ROM included.
* Internals of the .NET Framework— learn to get the most from its services
* Build professional applications using C#— quickly and efficiently
* Hands-on approach covering the Base Class Library, Remoting, ASP .NET Web Services,
concurrency, security, enterprise services, dealing with legacy code, and much more
.NET developers need more than buzzwords to get the job done. To tackle enterprise-class
projects, they need both a real understanding of the .NET architecture and a working
knowledge of how to put its services to work. In .NET Programming: A Practical Guide
Using C#, .NET authority Pradeep Tapadiya takes a straightforward, hands-on approach to
explain everything you need to know from development to deployment and maintenance for
this platform— all from a developer's perspective. Using C# as the primary language, and
with plenty of code examples throughout, this book is an excellent way to learn:
* The .NET infrastructure— packaging and deployment, the common language runtime and
its services, and the .NET Framework class libraries
* Distributed computing— develop object-remoting applications for intranets and Web
services for the Internet
* How to develop thread-safe code using the .NET synchronization infrastructure and learn
asynchronous programming
* Interoperability with native DLLs and COM applications
* How to develop secure applications using role-based security and enforce security for
third-party applications using code access permissions
* Enterprise services— develop scalable applications, support transactions, and more.
Appropriate for experienced developers, .NET Programming will help you get the most from
the .NET architecture— today.
Computing lifestyles and development needs change with time. Over the years, a number of paradigms and
programming methodologies have been offered to support the needs of the developers and software vendors.
In the mid 1990s we saw monolithic applications being broken into smaller applications that communicated with each
other. To facilitate code reusability and application communication across compiler boundaries and programming
language boundaries, Microsoft introduced a framework called Component Object Model (COM). To further facilitate
the communication across machine boundaries, Microsoft extended the model to Distributed COM (DCOM).
The late 1990s witnessed an incredible explosion of the Internet that caused a revolution in the way information was
made available to the users. In developing enterprise systems, the traditional client/server model was replaced by a
three-tier programming model, enhanced for Internet applications. Developing such enterprise systems was a time-
and resource-consuming affair, as the systems had to meet extra enterprise-level requirements such as scalability,
robustness, security, transaction support, and so on. To help developers meet these challenges, Microsoft introduced
COM+, an advanced runtime environment that ran on Microsoft Windows 2000. Developers could now leverage the
services provided by COM+ instead of building the services themselves.
In the new millennium, the Internet is evolving from a collection of isolated Web sites and applications into a general
"communication bus" for distributed applications that can run on various hardware and operation system (OS)
platforms.
As part of the .NET initiative, Microsoft has provided a framework and some tools that developers can use to build
applications targeting .NET platform.
Although .NET achieves many of the same goals that COM does, make no mistake— .NET is a radically new platform.
The programming model has been an evolution over COM, but the framework implementation is completely different.
However, the enterprise system needs (e.g., scalability, transaction support, etc.) haven't changed much. Therefore,
many COM+ services have found their way into .NET.
This book focuses on understanding .NET architecture from a developer's perspective and building .NET applications
primarily using C#, a new programming language that offers the flexibility of C++ and the simplicity of Visual Basic.
To achieve the first goal, a hands-on approach is employed in this book. As we progress through unfolding .NET
technology, I present a key concept, accompanied by code samples as necessary.
1
The second goal is to use .NET productively in building enterprise-level applications. Enterprise-level requirements
include security, transaction support, scalability, dealing with concurrency, distributed three-tier computing, dealing
with legacy code, and so on. This book seeks to do the following:
• Provide an in-depth analysis of all aspects of .NET technologies related to enterprise-level application
development.
• Provide ideas to develop robust .NET applications.
• Provide programming code to achieve common .NET programming tasks.
• Provide concise, complete sample programs to illustrate the concepts presented.
I have tried to present the material such that it makes interesting reading for developers. Not only can developers gain
an in-depth knowledge of .NET platform, but they can also get familiar with programming in other related
technologies such as SOAP, XML, ADO.NET, and ASP.NET.
The book starts with an overview of .NET platform from a nontechnical perspective. Then I progress through
unfolding the .NET architecture and services. Wherever applicable, code samples are provided to illustrate and
explain the concepts. This book provides enough sample code to enable readers to be more productive and to carry out
further research.
Throughout the book, I have identified important points and tips for effective .NET programming. The pad-and-pencil
icon marks important notes:
An Important Note
A Tip
Intended Audience
• Software developers and engineers who are involved in developing software products for the Windows
platform and typically use C++ or Visual Basic as their programming language.
2
• Managers who actively supervise a software product.
• Computer science students. Today, more and more companies expect job candidates to understand COM and
COM+ technologies. Senior students and graduate students are becoming more aware of COM technology as
a software engineering discipline. The next logical step for them would be to start programming in .NET.
A vast majority of the .NET programming community will be using C# for developing .NET applications. As a matter
of fact, a large part of the .NET Framework has been developed in C#. Hence, I chose C# to present samples in most
cases. However, in some instances I have used Visual Basic.NET or another language that is appropriate for the given
situation.
Prerequisites
The book is written for intermediate to advanced developers. It is assumed that readers have a working knowledge of
the following:
Note that knowledge of C# is helpful but not mandatory, as long as you are familiar with C++ or Java. As we go
through developing sample code, I am confident readers will automatically pick up adequate information about the
language.
Sample Code
All the examples provided in the book are concise and complete. For brevity, I sometimes show only the relevant code
sample in the book. However, complete source code is available on the companion Web site. All the examples and
tools have been compiled with Microsoft Visual C# 1.0 and the .NET Framework Software Development Kit (SDK),
and have been tested on Windows 2000 SP2 and Windows XP.
The samples are organized by chapters. Each sample is built as a separate project. A project can be compiled either
from Visual Studio .NET or from the command-line makefile. The makefile can be found in the bin directory under
each project, except for Chapter 2. In order to illustrate some key compiler concepts, Chapter 2 contains the makefile
in the same directory as the project.
3
Note that Visual Studio .NET requires that a project belongs to a solution. The project file has an
extension .csproj and the solution file has an extension .sln.
In order to build the projects from the command line, you need to set up proper paths in the environment. If you have
installed Visual Studio .NET, then you can use the command-line link that is provides called the "Visual Studio .NET
Command Prompt." This link initializes the environment for the command window such that the .NET Framework
SDK tools can be accessed from the command line.
References
This book frequently refers to other books, Microsoft's Knowledge Base articles, articles from various journals, and
Microsoft's Developers Network (MSDN) Library. All the references for a particular chapter are listed at the end of
that chapter. Each reference entry is indexed by a keyword that uses a combination of author's last name and year the
reference was published. For example, Don Box's book Essential COM, which was published in 1998, is indexed as
[Box-98]. In the book, each time I cite a reference, I use the relevant keyword.
Chapter Organization
The book is divided into two parts. The first part, Chapters 1— 5, focuses on the fundamentals of .NET Programming
Model and shows how to develop .NET-based applications.
The second part, Chapters 6— 10, focuses on the services provided by .NET. Each chapter focuses on a specific aspect
of .NET. These chapters are largely independent of each other.
.NET is Microsoft's new initiative for building applications regardless of the platforms or languages in use. The .NET
label applies to three distinct but related items: a vision for how information technology (IT) will evolve, a software
platform to build .NET applications, and an application-hosting business designed to support the vision and market the
platform. In this chapter, we inspect each of these items from a fairly nontechnical perspective. By the end of the
chapter, the readers will have a good idea of where Microsoft is going with the .NET initiative and will understand the
terminology, features, and services offered by the .NET Framework, the software platform for .NET applications.
This chapter focuses on various stages of building .NET applications— from development to debugging and deploying.
You will write simple C# programs to explore common programming paradigms under the .NET Framework. In the
process, you will learn the differences and similarities between C++ and C#. By the end of the chapter, readers will
understand many key concepts of the .NET Framework and will be fairly comfortable developing simple .NET
applications using C#.
4
Chapter 3: Assemblies
Under .NET, assemblies form the fundamental building block of program components. In defining the format for the
assembly, .NET had many goals. These goals included interoperability among different programming languages,
side-by-side execution of multiple versions of the same assembly, performance enhancements, and so on. In this
chapter, we take an in-depth look at the assemblies and examine how these goals were achieved. By the end of the
chapter, you will have a good knowledge of the assembly internals and the packaging and deployment model
under .NET.
In this chapter, we examine the facilities that the .NET Framework provides to load and execute the code and provide
services to the executing code. We start with an overview of various components that constitute the .NET Framework.
Then we look at the overall process of managed code execution. We will see how .NET applications can be
administratively controlled using external configuration files and how the configuration mechanism can be extended
to store custom settings. We then look at the type system used by the common language runtime and examine the
memory and performance considerations of using reference types versus value types. We examine how the CLS
provides for cross-language interoperability. We look at how the execution engine validates the metadata, verifies the
MSIL code for type-safety, and performs JIT compilation on the MSIL code. Finally, we look at the automatic
memory management features of the runtime and how it simplifies or complicates programming under .NET. By the
end of the chapter, you will have a good understanding of .NET architecture and how it helps in producing robust
applications that can potentially be reused by any programming language under .NET. You will also learn the
strategies of generating efficient code.
The .NET BCL includes hundreds of classes that provide a number of useful services to help developers boost their
productivity. In this chapter, we look at how to solve many common programming tasks using these classes. By the
end of the chapter, you will become familiar with many important classes under the .NET Framework.
In this chapter, we look at how to develop distributed applications under .NET that can communicate within intranets
as well as over the Internet. We will see how .NET remoting offers seamless remote activation and remote method
calls, among other things. We examine how to develop intranet applications using this support. Over the Internet, Web
services have become the building blocks for distributed Web-based applications. We will look at the support offered
by ASP.NET to create and deploy Web services. By the end of this chapter, readers will be comfortable developing
applications using the common language runtime object-remoting and will be fairly conversant with ASP.NET Web
services development.
Chapter 7: Interoperability
The .NET Framework provides support for managed code to interoperate with unmanaged code. The unmanaged code
could either be COM-based or be in native DLLs. The .NET Framework has been designed to provide smooth
5
interoperability. In this chapter, we examine the support for interoperability provided by the .NET Framework. By the
end of the chapter, readers will be comfortable making calls from managed code into unmanaged code and vice versa.
Chapter 8: Concurrency
Under Windows, and most other modern OSs, a process can execute multiple threads concurrently, each of which
carry out a specific task. The .NET Framework supports developing multithreaded applications in two ways— by
supporting the creation and use of threads and by providing a mechanism to make asynchronous calls. In this chapter,
we examine both these techniques in detail. We also look at various issues involved with multithread programming
and the support provided by the .NET Framework in developing classes that are safe from concurrent access.
Chapter 9: Security
The .NET Framework offers two security mechanisms— code access security and role-based security. Both security
mechanisms are built on top of the security provided by the underlying OS. Code access security keeps track of where
the assemblies come from and what security permissions should be granted to them. Role-based security enables the
code to make security decisions based on the role of the user executing the code.
In this chapter, we look at the concepts underlying code access security and role-based security. We also examine the
classes and services provided by the .NET Framework to facilitate the use of these security mechanisms.
Security is also an important consideration for ASP.NET applications. ASP.NET applications need to authenticate
clients and provide restricted access to any sensitive data, based on the client credentials. In addition, the ASP.NET
applications may also have to act on behalf of the client in some cases to access OS secured resources such as NTFS
files. In this chapter, we also examine various security features that ASP.NET provides to deal with authentication,
authorization, and impersonation.
Enterprise system development has historically been a very time- and resource-consuming process. The development
complexity arises from the extra enterprise-level requirements such as scalability, robustness, security, automatic
transaction processing, and so on.
The .NET Framework provides many infrastructural services to meet the needs of enterprise systems. This allows
businesses to focus on their core competencies instead of building the plumbing themselves.
In this chapter, we examine in detail some important requirements for enterprise systems and the services provided
by .NET to meet these requirements.
The companion Web site (www.phptr.com/tapadiya/dotnet/) contains the source code for all the examples in the book,
arranged by chapters. For the most up-to-date information, see the read-me file at the Web site.
6
Author Biography
Pradeep Tapadiya is a lead software architect at the OpenView R&D Division of Hewlett-Packard in Roseville, CA,
and has been working with Microsoft enterprise development technologies since 1996. He holds a doctoral degree in
Computer Science from Texas A&M University. Tapadiya is also the author of COM+ Programming—A Practical
Guide Using Visual C++ and ATL. Tapadiya can be reached at [email protected].
7
Acknowledgments
First of all, I'd like to thank Kent Sharkey, Microsoft Technical Evangelist for the .NET Framework, who provided me
with valuable feedback by critically reviewing the technical contents of the book.
There were many people who helped me review my manuscript over the course of writing the book. I'd especially like
to thank Mihir Dalal and Sanjay Mehta (my colleagues at Hewlett-Packard), and Terrance Simkin (Professor,
Computer Engineering Technology, New Hampshire Technical Institute) who offered me valuable suggestions on
presenting my thoughts and ideas.
A round of gratitude is also due for the following folks for helping me with technology-specific questions tacey
Giard and Connie Sullivan (Managers, Microsoft .NET Authors Web Community), Paddy Srinivasan (Microsoft),
Ranjeeth Ramakrishnan (Microsoft), Ron Jacobs (Microsoft), Shajan Dasan (Microsoft), Kit George (Microsoft),
Steven Pratschner (Microsoft), Brad Adams (Microsoft), Jim Hogg (Microsoft), Michael Day (Microsoft), Paul
Harrington (Microsoft) and Juval Lowy (Author).
I'd like to thank David Wilkie, my direct manager at Hewlett Packard, and Russ Daniels (Hewlett Packard) for
providing support and encouragement to write the book.
I'd also like to thank the editorial team at Prentice Hall PTR and Hewltt-Packard Press Jill Harry (Executive Editor),
Anne Garcia (Production Editor), Jim Markham (Developmental Editor), Pat Pekary (Publisher and Manager, HP
Books), and Scott Suckling (MetroVoice Publishing Services).
Finally, and most important of all, I'd like to thank my wife Vrushali and my 3-year old son Jay, both of whom
patiently stood by me despite the fact that I broke my promise of spending more time with them.
8
PART I
.NET is Microsoft's new initiative for building applications regardless of the platforms or languages in use. The .NET
label applies to three distinct but related items: a vision for how information technology (IT) will evolve, a software
platform to build .NET applications, and an application-hosting business designed to support the vision and market the
platform. In this chapter, we inspect each of these items from a fairly nontechnical perspective. By the end of the
chapter, the readers will have a good idea of where Microsoft is going with the .NET initiative and will understand the
terminology, features, and services offered by the .NET Framework, the software platform for .NET applications.
Introduction
In June 2000, Microsoft announced the .NET initiative a major shift in the technical direction for Microsoft and a
major shift for those engaged in developing software based on Microsoft tools and technologies.
The label .NET has been applied to three distinct entities. They are:
1. A vision of how software will evolve to take advantage of the Internet and encompass the increasing variety
of computing devices that are joining the PC in customers' offices, pockets, and homes.
2. A software platform to help developers build such applications and also to address some long-time
shortcomings of Windows.
3. An application-hosting business that will deliver applications as services over the Internet.
The Vision
The Web has evolved a long way from browsing static Hypertext Markup Language (HTML) pages. Today, users can
download music, participate in auctions, buy items online, and even talk to their family face-to-face over the Internet.
Even businesses are not behind. They have been implementing business-to-business (B2B) and business-to-consumer
(B2C) applications that communicate over the Internet.
Microsoft believes that the Internet will evolve from a collection of isolated Web sites and applications into a general
"communication bus" for distributed applications. Individual parts of the distributed application could be running on
different hardware and software platforms. The computing devices include your desktop systems as well as mobile
devices such as cellular phones, Pocket PCs, personal digital assistants (PDAs), and so on. Even household appliances
such as microwaves and dishwashers will participate in this communication over the Internet.
9
Web Services
To be fair, this vision of anytime, anywhere, any-device computing is also shared by many other software companies,
such as IBM and Hewlett-Packard, and many respected computer scientists around the world. A key technology
enabler for this distributed computing model is Web services. A Web service can be defined as a service that can be
accessed programmatically over the Web. Companies can make their business applications available as Web services.
These Web services, for example, can be used to integrate applications within various divisions of the same company.
The Web services can also be used to automate communication over the Internet between two companies.
To be able to develop distributed applications that transcend geographical, hardware, and OS boundaries, Web
services need to be based on universally accepted standards. Table 1.1 lays out the foundation elements of Web
services.
In the "anywhere computing" vision, clients that wish to access Web services can be geographically distant from the
servers. As the Internet has a broad geographical reach, it makes sense to deliver the services over the Internet.
To develop distributed client/server applications that transcend hardware and OS boundaries, Extensible Markup
Language (XML) has been accepted as the universal language for defining data formats. XML provides a common
data format that does not require business partners or customers to use a particular programming language, application,
OS, or hardware.
XML by itself is not enough to achieve the client/server communication. To access a Web service, a client has to
make a procedural call to the server, pass in the needed parameters, and get back the return value. A protocol has to be
defined for such an exchange of information. To this effect, the W3C[1] has defined a protocol called Simple Object
Access Protocol (SOAP). SOAP is a lightweight protocol for exchange of information in a decentralized, distributed
environment. It specifies how a remote procedure call can be expressed in XML format. It is an XML-based protocol
that consists of three parts:
[1]
The World Wide Web Consortium (W3C) is a standards body that develops specifications to promote the
1. An envelope that defines a framework for describing what is in a message and how to process it.
2. A set of encoding rules for expressing instances of application-defined data types.
3. A convention for representing remote procedure calls and responses.
10
Although the SOAP specification is independent of the underlying transport protocol, Hypertext Transport Protocol
(HTTP) has been the sweet spot for the industry. Most companies let HTTP traffic pass through the firewall. Contrast
this to other distributed object technologies such as Distributed Component Object Model (DCOM) and Common
Object Request Broker Architecture (CORBA) that require opening ports on the firewall, thus compromising security.
Also note that although the client and the server can communicate with each other using raw SOAP packets, helper
utilities are available on most platforms to hide the grunge work of creating SOAP packets:
From a programming perspective, using the SOAP helper utilities makes calling a method to a remote system as
simple as making a local method call.
Why is SOAP important? Because it provides the foundational invocation mechanism for application-to-application
computing, irrespective of the underlying hardware or operating system platforms.
The SOAP specification is a work in progress. The current draft of the specification can be found at W3C's Web site
[W3C-01].
Now we know how to make method calls on a Web service programmatically. However, we still don't know what
methods are available as part of the Web service. We need a mechanism that describes the programmatic "interface"
of the Web service; that is, the methods available on the Web service, the parameters for each method, and the return
value of each method. A popular choice is to define this interface in Web Services Description Language (WSDL), an
XML-based language that lets you express the functions and formats supported at any endpoint of the service. This
programmatic interface is referred to as the contract of the Web service.
At this point, we know how to obtain method information on a Web service and how to make the method call. The
remaining problem is to identify the server running the Web service.
It is likely that in some cases the server is known to the client. However, it is possible that the client is not particularly
happy with the quality of the service or the cost of accessing the service, and may wish to use a different server. The
beauty of the Web services programming model is that it doesn't matter which server provides the service, as long as
the server adheres to the Web service contract. Coding-wise, all that is needed is to point to the right server. There is
no change required to the rest of the code.
An industry-wide effort is underway to promote e-commerce among businesses. This project, called Universal
Description, Discovery, and Integration (UDDI[2]), is an initiative to create an open framework for describing Web
services, discovering businesses, and integrating business services over the Internet. UDDI enables business
applications to do the following:
11
[2]
Complete information on UDDI can be found at http://www.uddi.org/.
Essentially, UDDI provides the "yellow pages" on the Internet for the industry. UDDI has also embraced SOAP and
WSDL, making it convenient to obtain information from its repository programmatically.
Note that standards such as XML, SOAP, WSDL, UDDI, and so on, are not proprietary to Microsoft, although
Microsoft has been a major contributor in driving these standards.
Microsoft's .NET initiative is built around XML, SOAP, and WSDL. The .NET technology and tools make it easy for
companies to develop Web services and to consume other Web services.
Heterogeneous Environment
It is possible that Web services and other future applications may run on a variety of computing devices, not just PCs
or mainframes. These devices need not run the same operating system. Microsoft Windows is not the only choice for
the OS. Therefore, jointly with Intel and Hewlett-Packard, Microsoft has submitted the core .NET Framework
specifications to European Computer Manufacturer's Association (ECMA[3]).This ECMA specification is referred to as
the Common Language Infrastructure (CLI). The CLI specifications are not wedded to any OS. The .NET runtime is
Microsoft's implementation of the CLI for Windows OS. However, Microsoft has also made available the source code
to a working implementation of ECMA CLI that builds and runs on FreeBSD, a variation of the UNIX OS.
Currently, there are various other initiatives underway to implement CLI on other variations of UNIX such as Linux.
[3]
ECMA is an international standards organization. Their purpose is to standardize information and
Among other things, the CLI also specifies that a CLI-compliant application must run on different platforms without
being rewritten for each specific platform. A .NET application, for example, can run on many processors and
platforms (currently, only x86 compatible CPUs are supported) as long as no OS-specific calls are made. So, if things
go as expected by various implementers of CLI, you will be able to take a .NET executable that is built on one OS and
run it on many other Windows and non-Windows OSs.
Smart Devices
In the not so distant future, Microsoft expects that PCs will be joined by many new kinds of smart devices such as
data-enabled wireless phones, handheld computers, tablet PCs, home appliances, and so on. If an application has to
run on all these devices, the application will have to automatically adapt its user interface to the capabilities of the
device it runs on. This not only means adapting to each device's display and input capabilities, but also supporting
new modes of communication such as spoken language and handwritten text.
To support software development for the smart devices, Microsoft has announced to release a subset of the .NET
Framework called the .NET Compact Framework.
12
Exploring the Variety of Random
Documents with Different Content
great red spot of, 249.
orbit of, 244.
periods of, 246.
physical constitution of, 246.
rotation of, 248.
satellites of, 250.
eclipses of, 252.
transits of, 254.
volume of, 245.
without satellites, 255.
K.
Kant's hypothesis, 391.
Kepler, a lunar crater, 129.
Kepler's system, 44.
laws, 46.
star, 362.
Kirchhoff's map of spectrum, 164.
L.
Laplace's hypothesis, 392.
Latitude, celestial, 30.
Leap year, 81.
Leo, or the Lion, 334.
Leonids (meteors), 312.
Libra, or the Balances, 347.
Libration, 102.
Longitude, celestial, 30.
Lyra, or the Lyre, 338.
double star in, 356.
M.
Magellanic clouds, the, 389.
Magnetic storms, 190.
Magnetism and sun-spots, 190.
Mars, apparent size of, 236.
brilliancy of, 237.
distance of, 235.
orbit of, 235.
periods of, 237.
rotation of, 239.
satellites of, 239.
volume of, 236.
Mercury, apparent size of, 226.
atmosphere of, 228.
distance of, 225.
elongation of, 227.
orbit of, 225.
periods of, 227.
volume of, 226.
Meridian, the, 12.
Meridian circle, 17.
Meridians, celestial, 31.
Meteoric iron, 305, 307.
showers, 310.
stones, 305.
Meteors, 300.
August, 311.
light of, 309.
November, 312.
sporadic, 310.
Meteoroids, 308.
Micrometers, 20, 153.
Milky-Way, the, 326.
Mimas, moon of Saturn, 259.
Mira, a variable star, 359.
Moon, apparent size of, 87, 89.
aspects of, 91.
atmosphere of, 109.
chasms in, 123.
craters in, 119.
day of, 108.
distance of, 86.
eclipses of, 210.
form of orbit, 97.
harvest, 101.
hunter's, 102.
inclination of orbit, 97.
kept in her path by gravity, 51.
librations of, 102.
mass of, 90.
meridian altitude of, 98.
mountains of, 116.
orbital motion of, 91.
phases of, 93.
real size of, 88.
rising of, 99.
rotation of, 102.
sidereal period of, 92.
surface of, 115.
synodical period of, 92.
terminator of, 115.
wet and dry, 98.
N.
Nadir, the, 6.
Neap-tides, 72.
Nebula, in Andromeda, 376.
crab, 376.
dumb-bell, 383.
in Argus, 383.
in Canes Venatici, 384.
in Cepheus, 387.
in Orion, 378.
in the Triangle, 387.
in Ursa Major, 386.
Nebulæ, 281, 330, 373.
annular, 373.
circular, 373.
condensation of, 385.
double, 375.
elliptical, 373.
irregular, 376.
multiple, 375.
spiral, 373, 384.
Nebular hypothesis, the, 391.
Neptune, discovery of, 271.
orbit of, 271.
satellite of, 274.
New style, 80.
Newcomb's theory of the stellar universe, 398.
Newton's system, 48.
Nodes, 97.
Nubecula, Major, 389.
Minor, 389.
Nutation, 34.
O.
Olbers's hypothesis, 241.
Old style, 80.
Ophiuchus (constellation), 347.
new star in, 362.
Opposition, 91, 136.
Orion, 341.
nebula in, 378.
the trapezium of, 356.
P.
Pallas, the planet, 241.
Parabola, the, 49.
Parallax, 37.
Pegasus (constellation), 343, 346.
triple star in, 356.
Perigee, 44.
Perihelion, 47.
Perseids (meteors), 311.
Perseus (constellation), 346.
cluster in, 353.
Phobos, satellite of Mars, 239.
Pico, a lunar mountain, 127.
Pisces, or the Fishes, 350.
Piscis Australis, or the Southern Fish, 350.
Planets, 39.
inferior, 130.
periods of, 132.
phases of, 132.
inner group of, 221.
intra-Mercurial, 230.
minor, 223.
outer group of, 222, 244.
superior, 134.
motion of, 134.
periods of, 137.
phases of, 137.
three groups of, 221.
Pleiades, the, 328, 342, 351.
Pointers, the, 330.
Polar distance, 16.
Pole Star, the, 7, 330, 365.
Poles, celestial, 7, 9.
Pollux, star in Gemini, 340, 370.
Præsepe, or the Beehive, 350.
Precession of equinoxes, 31, 85.
Prime vertical, the, 12.
Proctor's theory of the stellar universe, 398.
Procyon, star in Canis Minor, 340.
Ptolemaic system, the, 41.
Q.
Quadrature, 91, 137.
R.
Radiant point (meteors), 310.
Radius vector, 47.
Refraction, 35.
Regulus, star in Leo, 334, 370.
Rhea, moon of Saturn, 259.
Rigel, star in Orion, 340, 370.
Right ascension, 16.
S.
Sagittarius, or the Archer, 347.
Saturn, apparent size of, 256.
distance of, 256.
orbit of, 255.
periods of, 256.
physical constitution of, 257.
ring of, 261.
changes in, 268.
constitution of, 269.
phases of, 263.
rotation of, 258.
satellites of, 259.
volume of, 256.
Scorpio, or the Scorpion, 347.
cluster in, 355.
Seasons, the, 64.
Sirius, the Dog-Star, 340, 342, 365, 370, 371.
Solar system, the, 41.
Solstices, 29, 59, 60.
Sound, effect of motion on, 168.
Spectra, bright-lined, 158.
comparison of, 154.
continuous, 158.
displacement of lines in, 171.
of comets, 318.
reversed, 161.
sun-spot, 193.
types of stellar, 371.
Spectroscope, the, 152.
diffraction, 157.
direct-vision, 155.
dispersion, 152.
Spectrum analysis, 159.
solar, 164.
Sphere, defined, 3.
the celestial, 5.
rotation of, 7.
Spring-tides, 72.
Stars, circumpolar, 7.
clusters of, 328, 350.
color of, 357.
constellations of, 325.
constitution of, 371.
distance of, 364.
double, 355.
drift of, 368.
four sets of, 10.
magnitude of, 322.
motion of, in line of sight, 369.
multiple, 356.
names of, 325.
nebulous, 373.
new, 361.
number of, 323.
parallax of, 364.
proper motion of, 365.
secular displacement of, 366.
temporary, 361.
variable, 358.
Sun, atmosphere of, 149.
brightness of, 151.
chemical constitution of, 164.
chromosphere of, 149, 196.
corona of, 149, 196, 204.
distance of, 142.
faculæ of, 177.
heat radiated by, 150.
inclination of axis of, 187.
mass of, 140.
motion of, among the stars, 26.
at surface of, 168.
in atmosphere of, 172.
secular, 366.
photosphere of, 149, 175.
prominences of, 149, 197.
rotation of, 186.
spectrum of, 164, 171.
temperature of, 149.
volume of, 140.
winds on, 174.
Sun-spots, 179.
and magnetism, 190.
birth and decay of, 185.
cause of, 194.
cyclonic motion in, 182.
distribution of, 188.
duration of, 181.
groups of, 181.
periodicity of, 189.
proper motion of, 187.
size of, 181.
spectrum of, 193.
T.
Taurus, or the Bull, 342.
quadruple star in, 356.
Telescope, Cassegrainian, 23.
equatorial, 19.
front-view, 22.
Gregorian, 23.
Herschelian, 22.
Lord Rosse's, 25.
Melbourne, 25.
Newall, 20.
Newtonian, 22.
Paris, 26.
reflecting, 21.
Washington, 20.
Vienna, 20.
Telespectroscope, the, 155.
Telluric lines of spectrum, 165.
Tethys, moon of Saturn, 259.
Tides, 67.
Time, clock, 78.
sun, 78.
Titan, moon of Saturn, 259, 261.
Toucan, star cluster in, 354, 389.
Transit instrument, 17.
Transits of Venus, 145.
Triesneker, lunar formation, 123.
Tropics, 61.
Twilight, 62.
Tycho Brahe's star, 361.
system, 44.
Tycho, a lunar crater, 129.
U.
Universe, structure of the stellar, 396.
Uranus, discovery of, 271.
name of, 270.
orbit of, 269.
satellites of, 271.
Ursa Major, or the Great Bear, 330.
nebula in, 386.
Ursa Minor, or the Little Bear, 330.
V.
Vega, star in Lyra, 336, 365, 370.
Venus, apparent size of, 231.
atmosphere of, 234.
brilliancy of, 232.
distance of, 231.
elongation of, 231.
orbit of, 230.
periods of, 232.
volume of, 231.
transits of, 145, 234.
Vernier, the, 15.
Virgo, or the Virgin, 338.
Vesta, the planet, 241.
Vulcan, the planet, 230.
Y.
Year, the, 78.
anomalistic, 79.
Julian, 80.
sidereal, 79.
tropical, 79.
Z.
Zenith, the, 6.
distance, 12.
Zodiac, the, 32.
Zodiacal constellations, 32.
light, 318.
Zones, 61.
Transcriber's Note:
Missing or obscured punctuation was corrected.
Typographical errors were silently corrected.
*** END OF THE PROJECT GUTENBERG EBOOK THE HEAVENS
ABOVE: A POPULAR HANDBOOK OF ASTRONOMY ***
1.D. The copyright laws of the place where you are located also
govern what you can do with this work. Copyright laws in most
countries are in a constant state of change. If you are outside
the United States, check the laws of your country in addition to
the terms of this agreement before downloading, copying,
displaying, performing, distributing or creating derivative works
based on this work or any other Project Gutenberg™ work. The
Foundation makes no representations concerning the copyright
status of any work in any country other than the United States.
1.E.6. You may convert to and distribute this work in any binary,
compressed, marked up, nonproprietary or proprietary form,
including any word processing or hypertext form. However, if
you provide access to or distribute copies of a Project
Gutenberg™ work in a format other than “Plain Vanilla ASCII” or
other format used in the official version posted on the official
Project Gutenberg™ website (www.gutenberg.org), you must,
at no additional cost, fee or expense to the user, provide a copy,
a means of exporting a copy, or a means of obtaining a copy
upon request, of the work in its original “Plain Vanilla ASCII” or
other form. Any alternate format must include the full Project
Gutenberg™ License as specified in paragraph 1.E.1.
• You pay a royalty fee of 20% of the gross profits you derive
from the use of Project Gutenberg™ works calculated using the
method you already use to calculate your applicable taxes. The
fee is owed to the owner of the Project Gutenberg™ trademark,
but he has agreed to donate royalties under this paragraph to
the Project Gutenberg Literary Archive Foundation. Royalty
payments must be paid within 60 days following each date on
which you prepare (or are legally required to prepare) your
periodic tax returns. Royalty payments should be clearly marked
as such and sent to the Project Gutenberg Literary Archive
Foundation at the address specified in Section 4, “Information
about donations to the Project Gutenberg Literary Archive
Foundation.”
• You comply with all other terms of this agreement for free
distribution of Project Gutenberg™ works.
1.F.
Most people start at our website which has the main PG search
facility: www.gutenberg.org.
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.
ebookultra.com