Download Full Distributed NET Programming in C 1st Edition Tom Barnaby (Auth.) PDF All Chapters
Download Full Distributed NET Programming in C 1st Edition Tom Barnaby (Auth.) PDF All Chapters
com
https://ebookname.com/product/distributed-net-programming-
in-c-1st-edition-tom-barnaby-auth/
OR CLICK BUTTON
DOWNLOAD EBOOK
https://ebookname.com/product/beginning-net-game-programming-in-vb-
net-1st-edition-david-weller/
ebookname.com
https://ebookname.com/product/u-x-l-american-
decades-1920-1929-1920-29-edition-tom-pendergast/
ebookname.com
https://ebookname.com/product/visual-basic-net-programming-1st-
edition-harold-davis/
ebookname.com
https://ebookname.com/product/leks-jacob-hoglund/
ebookname.com
Human Rights and the Body Hidden in Plain Sight Annabelle
Mooney
https://ebookname.com/product/human-rights-and-the-body-hidden-in-
plain-sight-annabelle-mooney/
ebookname.com
https://ebookname.com/product/camp-cooking-100-years-2nd-edition-the-
national-museum-of-forest-service-history/
ebookname.com
https://ebookname.com/product/knowing-things-exploring-the-
collections-at-the-pitt-rivers-museum-1884-1945-1st-edition-chris-
gosden/
ebookname.com
https://ebookname.com/product/who-s-afraid-of-bernard-shaw-some-
personalities-in-shaw-s-plays-1st-edition-stanley-weintraub/
ebookname.com
https://ebookname.com/product/syriac-reading-lessons-multilingual-
edition-benjamin-davidson/
ebookname.com
The gang life laugh now cry later suppression to
prevention First Edition Brzenchek
https://ebookname.com/product/the-gang-life-laugh-now-cry-later-
suppression-to-prevention-first-edition-brzenchek/
ebookname.com
Distributed .NET
Programming in C#
10M BARNABY
Ali 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 ofthe copyright owner and the
publisher.
ISBN 978-1-59059-039-3 ISBN 978-1-4302-1107-5 (eBook)
DOI 10.1007/978-1-4302-1107-5
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 ofthe trademark owner, with no intention ofinfringement ofthe trademark.
Technical Reviewer: Gordon Wilmot
Editorial Directors: Dan Appleman, Peter Blackburn, Gary Cornell, Jason Gilmore,
Karen Watterson, John Zukowski
Managing Editor: Grace Wong
Project Manager: Alexa Stuart
Copy Editor: Ami Knox
Production Editor: Kari Brooks
Compositor: Susan Glinert Stevens
Artist: Cara Brunk, Blue Mud Productions
Indexer: Valerie Robbins
Cover Designer: Kurt Krames
Manufacturing Manager: Tom Debolski
Marketing Manager: Stephanie Rodriguez
The information in this book is distributed onan "as is" basis, without warranty. Although every
precaution has been taken in the preparation ofthis 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.
To my Mom and Dad,
who had no idea what they were starting
when they bought me a
TI-99/4A computer almost 20 years ago.
Or did they?
Contents at a Glance
Foreword .................................................................................................................. xv
About the Author .............................................................................................. xvii
About the Technical Reviewer .................................................................. xix
Acknowledgments ................................................................................................. xxi
Introduction and AFAQ
(Anticipated Frequently Asked Questions) ........................................ xxiii
Chapter 1 The Evolution of Distributed Programming ................. 1
Chapter 2 This Is •NET ............................................................................ 27
Chapter 3 Introduction to . NET Remoting ....................................... 91
Chapter 4 Distributed Programming with .NET Remoting ........ 119
Chapter 5 Additional Remoting Techniques ................................... 175
Chapter 6 Understanding XML Web Services ................................... 237
Chapter 7 Understanding COM Interop ............................................. 273
Chapter 8 Leveraging Component Services ..................................... 289
Chapter 9 •NET Message Queuing ........................................................ 357
Appendix Data Access with ADO. NET.................................................. 395
Index ........................................................................................................................ 469
v
Contents
Foreword ................................................................................................................ xv
vii
Contents
viii
Contents
Serialization ...................................................................................................... 84
Using the Serializable Attribute ........................................................................ 85
ISerializable and Formatters ............................................................................. 87
Summary ................................................................................................................... 89
X
Contents
xi
Contents
xii
Contents
xiii
Foreword
COM ON A WIRE, also known as DCOM, was a great boon to the distributed pro-
grammer. Under the model ofDCOM, a client was able to interact with COM objects
located literally anywhere, without requiring a change of code base. Using the indi-
rection provided by AppiDs, stubs, proxies, and channels, our distributed endeavors
involved little more than the use of declarative tools such as dcomcnfg.exe and the
Component Services snap-in. However, all was not well in the world ofDCOM (or
COM for that matter). Although the clicking of check boxes made COM-based
remoting appear quite simple on the surface, we suffered through numerous registry
conflicts, a lifetime of passing interface pointers by reference, and the dreaded
prospect of crossing firewalls.
Just as ADO.NET has nothing to do with classic ADO, the .NET Remoting story
has nothing to do with classic DCOM. The most obvious case in point is the fact
that .NET assemblies are not registered with the system registry. Given this, we
have no AppiD. Without an AppiD, we have no RemoteServerName value, which
means no reference to oleaut32.dll and thus no more COM-based stub and proxies.
In short, everything we knew about interacting with types across the wire has
changed dramatically.
Under .NET, we are provided with dozens of new remoting constructs. Not only
do we need to contend with numerous TLAs (three-letter acronyms) such as WKO,
CAO, and the like, but we are also required to be content with new spins on existing
ideas (for example, the distinction between "real" versus "transparent" proxies) as
well as the role ofXML configuration files.
Many programmers who are faced with the task of learning the story of .NET
distributed programming turn to MSDN. Here, they are confronted with numerous
code examples, partial white papers, and diagrams that require a 21-inch monitor
to view in their entirety. This approach is bound to lead to frustration and a dis-
jointed knowledge base. What is sorely needed is a practical, approachable, and in-
depth treatment of how all of these new technologies fit together in the context of
an Enterprise application.
Tom's latest book (the one currently in your grasp) provides such a treatment.
Here, you will find logical and clear explanations that (surprise, surprise) actually
provide insight to the richness of the .NET Remoting layer. Not only does Tom
pound out the gory details of this suite of new TLAs, but he also rounds out your
understanding by providing coverage of numerous related Enterprise-centric tech-
nologies such as building configured components (a.k.a. COM+), .NET messaging,
Web services, and interoperability with classic COM types.
XV
Foreword
For a number of years now, Tom and I have worked together here at Intertech,
Inc. (http: I /www. intertech- inc. com). I have witnessed him teach numerous courses
on the topics of classic COM and .NET (including his Expert Distributed .NET
class). I have also had the pleasure to work with him on numerous development
efforts. I can speak from the heart when I say you are in good hands.
Enjoy!
Andrew Troelsen
Partner and Trainer, Intertech, Inc.
Minneapolis, MN
xvi
About the Author
xvii
About the
Technical Reviewer
xix
Acknowledgments
WRITING A BOOK is by far the hardest thing I have ever done. Yet it would have been
completely impossible if I didn't have the help and support of the following folks:
Thanks to everyone at Apress. Gary Cornell, for taking a chance on me, a
complete unknown wishing to write about a hot topic. Ami "Damn Yer Good"
Knox, for being even more analytical than I in regards to writing. Grace Wong and
Kari Brooks for keeping the great wheels of book production churning even ifl was
burning (out). And a huge thanks to Alexa Stuart, who somehow kept this project
running smoothly in spite of me. Finally thanks to Peter Blackburn.
Thanks to my technical editor, Gordon Wilmot, who not only provided great
feedback, but also a tremendous amount of encouragement.
Thanks to Kelly Kari for proofreading several chapters. But more importantly,
thanks for actually laughing at my attempts at humor scattered throughout.
Thanks to everyone at Intertech. I feel privileged to work for a company filled with
such talented and dedicated individuals. Thanks to all my cohorts, Steve Close (Java is
toast), Gina Accawi (XML is just a big string), and Andrew "Gunnar" Sondgeroth (see
Steve Close) for providing a challenging, fun, and invigorating work environment.
Special thanks to Andrew Troelsen for contributing an appendix, and whose, urn,
unique brand of encouragement ultimately lead to this book. Finally, thanks to
Tom Salonek, founder of Intertech, for somehow tolerating the bizarre antics of us
admitted prima donnas.
Thanks to Rabi, my cat, for keeping my shoulders warm while I worked.
Finally, and most important of all, many, many thanks to my wife Tammy and son
Max. Nobody sacrificed more for the sake of this book. I will be forever grateful.
xxi
Introduction and AFAO..
(Anticipated Frequently
Asked Questions)
THE SUBJECT OF DISTRIBUTED PROGRAMMING is vast. To implement distributed appli-
cations properly, you must understand everything from low-level networking
details to high -level architectural issues .. NET is a brand new platform deserving of
several thousand pages of documentation. So the challenge I faced when writing
this book was this: how do I combine these two immense subjects into a single,
digestible volume?
My answer: I don't. In other words, I had to make assumptions regarding the
level of experience of the reader, which is tough given that .NET is such a new tech-
nology. Even harder, though, I had to make difficult decisions about what the book
would and would not be. On a few issues I was resolute. The book would not be a
regurgitation of documentation. The book would not be a thousand-page boat
anchor covering dozens of subjects and none of them well.
Rather than list other things this book is not, however, I want to discuss what
this book is. I think of it as a guided tour through the fundamental technologies you
use to build distributed applications with .NET, such as .NET Remoting, Web services,
serialization, COM+, and MSMQ. These technologies are the tools we developers
use to craft distributed applications. And they are complex enough in themselves
to warrant in-depth examination. The focus, then, is on the use of each technology
and the role it plays in a distributed application. Think of it as pulling each tool out
of the box, examining it, and experimenting with it to get a sense of the problems it
can solve. Like any craft, distributed programming is best learned by doing, but
wherever possible I discuss the pros and cons of using one tool over another.
In an attempt to set the proper expectations (and to head off some angry e-mails),
I've compiled the following list of anticipated questions.
xxiii
Introduction and AFAQ (Anticipated Frequently Asked Questions)
xxiv
Introduction and AFAQ (Anticipated Frequently Asked Questions)
reason to repeat the fine work Microsoft has done to document every option of
every tool, every method of every class, every parameter of every method, and so
on. I do, however, see the need for a book that leads the reader through a logical
progression of topics while clarifying complex concepts. I also wanted to produce a
book that was beach-bag friendly-that is, a book you could carry around in your
briefcase, backpack, laptop case, or beach bag without breaking your back. Hope-
fully, this book meets these goals.
XXV
CHAPTER 1
The Evolution of
Distributed Programming
"It's like, how much more black can this be?
and the answer is none. None more black."
-Nigel Thfnel (This Is Spinal Tap)
speaking on the state of software development.
1
Chapter 1
programming is this: if one computer can complete a task in 5 seconds, then five
computers working together in parallel should complete the task in 1 second.
Of course, it is never quite that easy. The problem is the phrase "working
together in parallel." It is difficult to get five computers on a network to cooperate
efficiently. In fact, the application software must be specifically designed for this to
be effective. As an analogy, consider a single horse pulling a carriage. A horse is a
powerful animal, but, in terms of power-to-weight ratios, an ant is many times
stronger (we will just assume ten times stronger). So, if I gather and harness
enough ants to equal the mass of the horse, I can move ten times the amount of
material in the carriage. A perfect example of distributing the workload, right? The
calculations are reasonable, but hopefully you are chuckling at the ludicrous
vision of millions of ants with tiny harnesses pulling together.
Layering an Application
As demonstrated with the horse-vs.-ant analogy, distributed computing raises the
issue of coordinating the work of several computers. There is also the issue of
decomposing the application into tasks that can be distributed. Luckily, here you
can draw on the lessons learned from earlier applications. Over the years, it has
become clear that most business applications consist of three primary sets of
logic: presentation, business, and data source.
• Presentation logic. This is the part of the application that the end users use
to enter orders, look up customer information, and view business reports.
To the user, this is the application.
• Business logic. This is the heart of the application and where developers
spend most of their time and effort. It contains the business rules that
define the way the business is run. For example, business rules specify when
customers receive discounts, how shipping costs are calculated, and what
information is required on an order.
• Data source logic. This is where orders, customer information, and other
facts are saved for future reference. Luckily, database products such as SQL
Server and Oracle take care of most of the work. But you still have to design
the data layout and the queries you will use to retrieve the data.
2
The Evolution of Distributed Programming
This may seem like a surprising principle for a book about distributed programming.
However, this principle is based on a simple, undeniable fact of computing:
invoking a method on an object in a different process is hundreds of times slower
than doing the same on an in-process object. Move the object to another machine
on a network, and the method call can be another ten times slower.
So when should you distribute? The trite answer is only when you have to. But
you are probably looking for a little more detail, so let's consider a few examples,
starting with the database layer. Typically an application's database runs on a separate,
dedicated server-in other words, it is distributed relative to the other layers.
There are several good reasons for this:
• A database can contain and relate data shared by many applications. This is
only possible, however, if each application server is accessing a single
database server, rather than their own local copy.
• Databases are designed to run as a separate physical layer. They expose the
ultimate "chunky" interface: the Structured Query Language (SQL). (See
Principle 3 for details on chunky interfaces.)
3
Chapter 1
Therefore, the decision to distribute the data source logic is typically made the
moment you decide to use a database. However, the decision to distribute the pre-
sentation logic is a little more complex. First of all, unless all the application users
walk up to a common terminal (like an ATM), then some aspect of the presentation
layer must be distributed to each user. The question is how much. The trend lately,
of course, is to execute the bulk of the logic on the server and send simple HTML to
client Web browsers. This is actually in keeping with the principle to distribute
sparingly. However, it also requires each user interaction to travel to the server so
that it can generate the appropriate response.
Before the proliferation of the Web, it was more common to execute the entire
presentation logic on each client machine (in keeping with Principle 2). This pro-
vides faster interaction with the user since it minimizes round trips to the server,
but also requires user interface updates to be deployed throughout the user base.
In the end, the choice of which client you use has little to do with distributed
design principles, and everything to do with the desired user experience and
deployment issues.
So the data logic almost always executes on a separate computer, and the pre-
sentation layer frequently does. That leaves us with the business layer, and the
most complex set of issues. Sometimes, the business layer is deployed to each
client. Other times it is kept on the server. In many cases, the business layer itself is
decomposed into two or more components. Those components related to user
interface interaction are deployed to the client, and those related to data access
are retained on the server. This holds to the next principle, which is to localize
related concerns.
As you can see, you have many distribution options. When, why, and how you
distribute is driven by a variety offactors-many of which compete. So the next
few principles offer further guidelines.
4
The Evolution of Distributed Programming
will easily eclipse any parallel processing gains. Multiply this by a few thousands
users, and you have a scenario that can devastate performance. Relating this to the
earlier horse and carriage analogy, this is the equivalent of harnessing each leg of
the horse rather than the entire horse.
Machine 1
Machine 4
Add product to cart
Gatabasj
So how can you leverage the power of distributed programming, namely par-
allel processing, while still localizing related concerns? Buy another horse. That is,
duplicate the entire application and run it on another dedicated server. You can
use load balancing to route each client request to a particular server. This archi-
tecture is shown in Figure 1-2. Web-based applications often use this model by
hosting the identical Web site on several Web servers, a setup sometimes referred
to as a Web farm .
Duplicating and load balancing application servers is a great way to increase
the capacity, or scale, of an application. You do need to very conscious, however, of
how you manage state. For more details, see Principle 4.
5
Random documents with unrelated
content Scribd suggests to you:
But the imagination of Legros, in virtue of which, quite as much as
by occasional mannerisms of handling, he recalls that older and
more pregnant Art which has well nigh passed from the very ken of
the producers of our own day’s trivial array, is not in any sense
derived from this or that past master; it is charged, on the contrary,
in his most considerable pieces with a serious and pathetic poetry
quite his own. Here and there, indeed, as in one early work—
Procession dans les Caveaux de Saint-Médard—it is not imagination
at all, as that is generally understood, but the keen observation of
an artist content to reproduce, that alone is remarkable; and here
there is a certain amount of audacity in the fidelity with which he
has rendered the commonplace, the mean, the narrow faces of a
certain section of the Parisian lower bourgeoisie engaged in
devotions which there is no beauty of form or of thought to make
interesting to the beholder. It is a piece of pure realism—the hideous
flounces and more hideous crinolines, the squat figures, the slop-
shop fashions, the common faces empty of records. And in this pure
and unrelieved realism there is a certain value, if there is no charm.
But the pieces to which Legros will owe such fame as the better-
judging connoisseurs and critics shall eventually accord him are
those in which the artistic instinct and desire of beauty, either of
form or of thought, has found some expression. It will be in part by
such masculine, yet refined and graceful, portraits as those of M.
Dalou and Mr. Poynter, such subtle ones as that of Cardinal Manning,
such pathetic ones as that of M. Rodin here, that Legros will stand
high. It will be in part by the etchings in which the pourtrayal of
actual life has been guided by the research for beauty, as, for
instance, in the Chœur d’une Eglise Espagnole, where not only is the
head firm and dignified and the lighting more intricate than is usual
with this master, but where the composition of bent figure and
curved violoncello is of great repose and refinement of beauty. A
more various specimen of the same type is to be found in a fine
impression of Les Chantres Espagnols. They are eight in the choir of
a church—four sit in the stalls, the others stand, of whom one turns
the page of a missal placed on a lectern. The scene is mostly dark—
mostly even very dark—but the light, by a very skilled treatment of
it, falls here and there on lectern, missal, and hand of the old man
sitting in the choir. The observation of reality in this plate has been
at the same time keen and poetical, for nothing can be truer and
nothing more impressive than the study of old faces out of which so
much of the desire of life has gone, and the study of gestures which
are those of hand and will waxing feeble. Two men, at least, are
placed together in a pathetic harmony of weakness: the drooping
hand of one and his drooped head, as he sits in his long-accustomed
place; the open mouth of the other—his mouth opened with the
feebleness of a decayed intelligence, with the slow understandings
of a departing mind. Or, not to insist too much on a picturesqueness
in which pathos predominates, notice, when the occasion presents
itself, the first rendering of the subject known as the Lutrin, with its
acolyte of rare youthful dignity; or as an example of work in which
some little beauty of modelling has been sought to be united even
with every-day realism, see the design of the bare knee in L’Enfant
Prodigue.
But where Legros is most apart and alone is, after all, in the
subjects which owe most to the imagination, and of these the very
finest are La Mort du Vagabond, La Mort et le Bûcheron, and Le
Savant endormi. Something of the art that gives interest to these
pieces is contained in the careful persistence with which the etcher
brings the realism of physical ugliness into close contact and
contrast with the spiritual and supernatural. A comely and well-to-do
youth slumbering in his chair at the Marlborough could have no
dreams an artist of Legros’s nature would think worthy of recording,
but the ugly votary of science and intellectual speculation, who
sleeps, from sheer weariness, in the armchair before which are still
the implements of his study and research, has the dignity of strained
endeavour; and M. Legros, in pourtraying him and suggesting the
subjects of his dream, has reached an elevation which separates him
from most of his contemporaries, by as much as the Melancholia of
Dürer is separated from the Melancholia of Beham. La Mort du
Vagabond is not a whit less suggestive in its contrast between the
feebleness of the worn-out beggar now stretched out lonely on the
pathside—his head raised, gasping, and his hat knocked away—and
the force and fury of the storm that beats over dead tree and
desolate common. The unity of tragic impression in homely life,
preserved in this plate, will give it a permanent value among the
great things of Art. La Mort et le Bûcheron is more tender, not more
nor less poetical, but less weird; and nothing short of a high and
vigorous imagination could have saved from chance of ridicule, in
days in which the symbolical has long ceased to be an habitual
channel of expression, this etching of the veiled skeleton of Death
appearing to the old man still busy with his field-work, and
beckoning him gently, while he, with simple and ignorant yet not
insensitive face, touched with awe and surprise, looks up under a
sudden spell it is vain to hope to cast off, since for him, however
unexpectedly, the hour has plainly come. Of this very fascinating
subject, there exist impressions from two different plates: one of the
plates, and in some respects the better and more pathetic one—the
one in which the figure of Death is gentler and more persuasive, and
in which the face of the woodman is the more mildly expressive—
having suffered an accident after only about a dozen impressions
had been taken from it. The second was then executed, with
something less at first than the success of the earlier one, so that
the almost unique and very rare impressions of the plate—whatever
may chance to be their money value—represent it to the least
advantage. It was retouched and retouched, and at length with
more of reward for the trouble than Legros has generally been able
to meet with when laboriously modifying his work in the attempt to
realise his conception more fully; until at last the enterprising
management of L’Art was enabled to offer its readers for about three
shillings a work of art not rare, indeed, but of exquisite beauty. The
success of the first plate, which the acid had covered in a moment of
neglect, had been almost refound.
A final word about the landscapes. As a painter of landscape M.
Legros is little known, but there exist, I believe, in London one or
two considerable collections of water colours which exhibit almost
exclusively his art in landscape. As far as the etchings show it at all,
it is of the most account when it is called in for the accompaniment
of one of those impressive and doleful ditties I have just been
speaking of. Sometimes, however, it is good without this mission and
significance, as in the Pécheur, where a delicate effect of early
morning is given with exquisite refinement. But at other times, in
which the artist is dealing with landscape charged for him with no
especial meaning, his very observation of it seems to have been
lacking in interest and acuteness, as in the broad slope of grass by
the stream-side in his big print Les Bûcherons—a whole surface of
ground that is treated mechanically and without any worthy
apprehension. And yet this print, despite certain unpleasantness,
contains in the heads of the woodcutters some of his finest work. A
much more sketchy subject, Paysage aux Meules, has greater unity
of impression. Like a good deal of Legros’s landscape, it is
distinctively French, this particular glimpse of field and farm and
rounded hill reminding one of the wide-stretching uplands of the
Haut Boulognais. Other landscapes are of England. Others, again,
are neither of England nor of France, nor of any land which may be
read of in the guide-book or visited by the enterprising tourist, but of
that land alone that rises in the imagination of artistic men.
INDEX.
Macbeth, p. iii.
Méryon. His method with architecture, p. 35.
PASTORALS OF FRANCE.
Second Edition.
ETCHINGS
£. s. d.
A By-road in Tipperary 6 6 0
A Water Meadow 4 4 0
Amalfi 1 11 6
Amstelodam 1 11 6
A Cottage Window 2 12 6
Battersea 4 4 0
Breaking up of the Agamemnon. First 5 5 0
State £7 7 0 Second State
Barque Refitting 1 1 0
Brentford Ferry 2 12 6
By Inveraron 3 3 0
Brig at Anchor 3 3 0
Cottages behind Horsley’s House 3 3 0
Cranbrook 3 3 0
Cardigan Bridge 2 12 6
Combe Bottom 4 4 0
Calais Pier. Second State 21 0 0
Do. Small 1 11 6
Dusty Millers 3 3 0
Evening 1 1 0
Early Morning—Richmond Park 2 12 6
Egham 2 2 0
Egham Lock 2 2 0
Erith Marshes 4 4 0
Fulham 2 12 6
Greenwich 8 8 0
Grim Spain—Burgos 3 3 0
House of the Smith 2 12 6
Hic Terminus Hæret 1 11 6
Horsley’s House at Willesley 4 4 0
Kensington Gardens. The Large Plate £2 3 3 0
12 6 Small Plate
Kew Side 2 12 6
Kilgaren Castle 2 12 6
Kenarth 2 12 6
Kidwelly Town 2 2 0
Mount’s Bay 3 3 0
Newcastle in Emlyn 2 12 6
O Laborum! 1 11 6
Out of Study Window 2 2 0
On the Test. First State 5 5 0
Purfleet 3 3 0
Penton Hook 4 4 0
Puff Asleep —
Railway Encroachment 2 2 0
Ruins in Wales 1 11 6
Sub Tegmine 3 3 0
Sonning Almshouses 2 2 0
Shepperton 2 2 0
Shere Millpond 5 5 0
Sunset on the Thames. First State £3 3 0 3 3 0
Second State
Sketch on Back of Zinc Plate 1 11 6
Sunset in Ireland 4 4 0
Sonning 3 3 0
Study of Stems 1 11 6
Twickenham Bushes 0 10 6
The Mill-Wheel. First State £3 3 0 Second 3 3 0
State
Thomas Haden of Derby 2 2 0
Thames Fishermen 4 4 0
The Herd 4 4 0
The Two Sheep 1 11 6
The Holly Field 1 1 0
Twickenham Church 3 3 0
Towing-Path. First State £4 4 0 Second 4 4 0
State
The Three Sisters 4 4 0
The Inn at Sawley. (Unfinished) 4 4 0
The Grande Chartreuse. (From Drawing 2 2 0
by Turner)
The Moat House 3 3 0
The Two Asses 1 11 6
The Turkish Bath, with One Figure 2 12 6
The Turkish Bath, with Two Figures 3 3 0
The Assignation 3 3 0
Thames Ditton 4 4 0
Willow Bank 2 2 0
Windmill Hill 3 3 0
Windsor 8 8 0
Ye Compleate Angler 3 3 0
Yacht Tavern, Erith 4 4 0
The Volume of “Études” 36 15 0
By J. A. McN. WHISTLER.
Mr. Ruskin’s Notes on his Turner Drawings. Exhibited at The Fine Art
Society’s Galleries, 1878. Illustrated Large-paper Edition,
consisting of 750 copies. Published £2 2s. Edition exhausted. A
copy sold at Christie’s, in April, 1881, for £4 4s.
The same, small paper, unillustrated, 2s. 6d.[2]
The type of these editions has been distributed.
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.