0% found this document useful (0 votes)
29 views

Introducing .NET MAUI: Build and Deploy Cross-platform Applications Using C# and .NET Multi-platform App UI 1st Edition Shaun Lawrence download

The document introduces .NET MAUI, a framework for building and deploying cross-platform applications using C# and .NET Multi-platform App UI. It covers the fundamentals of .NET MAUI, including its architecture, user interface essentials, and how to create applications. The document also provides links to additional resources and related products for further exploration.

Uploaded by

lotargiswi
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
29 views

Introducing .NET MAUI: Build and Deploy Cross-platform Applications Using C# and .NET Multi-platform App UI 1st Edition Shaun Lawrence download

The document introduces .NET MAUI, a framework for building and deploying cross-platform applications using C# and .NET Multi-platform App UI. It covers the fundamentals of .NET MAUI, including its architecture, user interface essentials, and how to create applications. The document also provides links to additional resources and related products for further exploration.

Uploaded by

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

Introducing .

NET MAUI: Build and Deploy Cross-


platform Applications Using C# and .NET Multi-
platform App UI 1st Edition Shaun Lawrence pdf
download
https://ebookmass.com/product/introducing-net-maui-build-and-
deploy-cross-platform-applications-using-c-and-net-multi-
platform-app-ui-1st-edition-shaun-lawrence/

Explore and download more ebooks at ebookmass.com


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

Designing Applications for Google Cloud Platform: Create


and Deploy Applications Using Java Ashutosh Shashi

https://ebookmass.com/product/designing-applications-for-google-cloud-
platform-create-and-deploy-applications-using-java-ashutosh-shashi/

Simple and Efficient Programming with C#: Skills to Build


Applications with Visual Studio and .NET 2nd Edition
Vaskaran Sarcar
https://ebookmass.com/product/simple-and-efficient-programming-with-c-
skills-to-build-applications-with-visual-studio-and-net-2nd-edition-
vaskaran-sarcar/

Simple and Efficient Programming with C# : Skills to Build


Applications with Visual Studio and .NET 2nd Edition
Vaskaran Sarcar
https://ebookmass.com/product/simple-and-efficient-programming-with-c-
skills-to-build-applications-with-visual-studio-and-net-2nd-edition-
vaskaran-sarcar-2/

Multi-rotor Platform Based UAV Systems 1st Edition Franck


Cazaurang

https://ebookmass.com/product/multi-rotor-platform-based-uav-
systems-1st-edition-franck-cazaurang/
Pro C# 7: With .NET and Core 8th ed. Edition

https://ebookmass.com/product/pro-c-7-with-net-and-core-8th-ed-
edition/

Platform Urbanism: Negotiating Platform Ecosystems in


Connected Cities 1st ed. 2020 Edition Sarah Barns

https://ebookmass.com/product/platform-urbanism-negotiating-platform-
ecosystems-in-connected-cities-1st-ed-2020-edition-sarah-barns/

Nothing But Net 1st Edition Mark Mahaney

https://ebookmass.com/product/nothing-but-net-1st-edition-mark-
mahaney/

Flame Game Development: Your Guide to Creating Cross-


Platform Games in 2D Using Flame Engine in Flutter 3 1st
Edition Andrés Cruz Yoris
https://ebookmass.com/product/flame-game-development-your-guide-to-
creating-cross-platform-games-in-2d-using-flame-engine-in-
flutter-3-1st-edition-andres-cruz-yoris/

Flame Game Development: Your Guide to Creating Cross-


platform Games in 2D Using Flame Engine in Flutter 3
Andrés Cruz Yoris
https://ebookmass.com/product/flame-game-development-your-guide-to-
creating-cross-platform-games-in-2d-using-flame-engine-in-
flutter-3-andres-cruz-yoris/
Introducing
.NET MAUI
Build and Deploy
Cross-­platform Applications
Using C# and .NET
Multi-platform App UI

Shaun Lawrence
Introducing .NET MAUI: Build and Deploy Cross-platform Applications
Using C# and .NET Multi-platform App UI
Shaun Lawrence
St Ives, UK

ISBN-13 (pbk): 978-1-4842-9233-4 ISBN-13 (electronic): 978-1-4842-9234-1


https://doi.org/10.1007/978-1-4842-9234-1

Copyright © 2023 by Shaun Lawrence


This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or
part of the material is concerned, specifically the rights of translation, reprinting, reuse of
illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way,
and transmission or information storage and retrieval, electronic adaptation, computer software,
or by similar or dissimilar methodology now known or hereafter developed.
Trademarked names, logos, and images may appear in this book. Rather than use a trademark
symbol with every occurrence of a trademarked name, logo, or image we use the names, logos,
and images only in an editorial fashion and to the benefit of the trademark owner, with no
intention of infringement of the trademark.
The use in this publication of trade names, trademarks, service marks, and similar terms, even if
they are not identified as such, is not to be taken as an expression of opinion as to whether or not
they are subject to proprietary rights.
While the advice and information in this book are believed to be true and accurate at the date of
publication, neither the authors nor the editors nor the publisher can accept any legal
responsibility for any errors or omissions that may be made. The publisher makes no warranty,
express or implied, with respect to the material contained herein.
Managing Director, Apress Media LLC: Welmoed Spahr
Acquisitions Editor: Joan Murray
Development Editor: Laura Berendson
Editorial Assistant: Gryffin Winkler
Copy Editor: Mary Behr
Cover image designed by mrsiraphol through Freepik (www.freepik.com)
Distributed to the book trade worldwide by Springer Science+Business Media LLC, 1 New York
Plaza, Suite 4600, New York, NY 10004. Phone 1-800-SPRINGER, fax (201) 348-4505, e-mail
[email protected], or visit www.springeronline.com. Apress Media, LLC is a
California LLC and the sole member (owner) is Springer Science + Business Media Finance Inc
(SSBM Finance Inc). SSBM Finance Inc is a Delaware corporation.
For information on translations, please e-mail [email protected]; for reprint,
paperback, or audio rights, please e-mail [email protected].
Apress titles may be purchased in bulk for academic, corporate, or promotional use. eBook
versions and licenses are also available for most titles. For more information, reference our
Print and eBook Bulk Sales web page at www.apress.com/bulk-sales.
Any source code or other supplementary material referenced by the author in this book is
available to readers on GitHub using this link: https://github.com/Apress/Introducing-MAUI.
Printed on acid-free paper
Table of Contents
About the Author��������������������������������������������������������������������������������xv

About the Technical Reviewer����������������������������������������������������������xvii

Acknowledgments�����������������������������������������������������������������������������xix

Introduction���������������������������������������������������������������������������������������xxi

Part I: Getting to Know .NET MAUI�����������������������������������������������1


Chapter 1: Introduction to .NET MAUI���������������������������������������������������3
What is .NET MAUI?����������������������������������������������������������������������������������������������3
Digging a Bit Deeper����������������������������������������������������������������������������������������5
Where Did It Come From?��������������������������������������������������������������������������������6
How It Differs From the Competition���������������������������������������������������������������7
Why Use .NET MAUI?���������������������������������������������������������������������������������������������8
Supported Platforms����������������������������������������������������������������������������������������8
Code Sharing���������������������������������������������������������������������������������������������������9
Developer Freedom���������������������������������������������������������������������������������������10
Community����������������������������������������������������������������������������������������������������10
Fast Development Cycle��������������������������������������������������������������������������������10
Performance��������������������������������������������������������������������������������������������������11
Strong Commercial Offerings������������������������������������������������������������������������12

iii
Table of Contents

Limitations of .NET MAUI������������������������������������������������������������������������������������13


No Web Assembly (WASM) Support���������������������������������������������������������������13
No Camera API�����������������������������������������������������������������������������������������������13
Apps Won’t Look Identical on Each Platform�������������������������������������������������14
Lack of Media Playback Out of the Box���������������������������������������������������������14
The Glass Is Half Full, Though�����������������������������������������������������������������������������14
How to Build .NET MAUI Applications������������������������������������������������������������������15
Visual Studio��������������������������������������������������������������������������������������������������15
Summary������������������������������������������������������������������������������������������������������������17

Chapter 2: Building Our First application�������������������������������������������19


Setting Up Your Environment������������������������������������������������������������������������������19
macOS�����������������������������������������������������������������������������������������������������������19
Windows��������������������������������������������������������������������������������������������������������27
Visual Studio to macOS���������������������������������������������������������������������������������28
Troubleshooting Installation Issues���������������������������������������������������������������������32
.NET MAUI Workload Is Missing���������������������������������������������������������������������32
Creating Your First Application����������������������������������������������������������������������������33
Creating in Visual Studio�������������������������������������������������������������������������������33
Creating in the Command Line����������������������������������������������������������������������37
Building and Running Your First Application�������������������������������������������������������38
Getting to Know Your Application������������������������������������������������������������������������41
WidgetBoard��������������������������������������������������������������������������������������������������41
Summary������������������������������������������������������������������������������������������������������������42
Source Code��������������������������������������������������������������������������������������������������43

iv
Table of Contents

Chapter 3: The Fundamentals of .NET MAUI���������������������������������������45


Project Structure�������������������������������������������������������������������������������������������������45
/Platforms/ Folder������������������������������������������������������������������������������������������48
/Resources/ Folder����������������������������������������������������������������������������������������51
Where To Begin?�������������������������������������������������������������������������������������������������56
Generic Host Builder�������������������������������������������������������������������������������������������56
What Is Dependency Injection?���������������������������������������������������������������������57
Registering Dependencies�����������������������������������������������������������������������������60
Application Lifecycle�������������������������������������������������������������������������������������������62
Application States�����������������������������������������������������������������������������������������62
Lifecycle Events���������������������������������������������������������������������������������������������64
Handling Lifecycle Events������������������������������������������������������������������������������65
Cross-Platform Mappings to Platform Lifecycle Events��������������������������������66
Platform-Specific Lifecycle Events����������������������������������������������������������������67
Summary������������������������������������������������������������������������������������������������������������72

Chapter 4: An Architecture to Suit You�����������������������������������������������75


A Measuring Stick�����������������������������������������������������������������������������������������������75
Prerequisites�������������������������������������������������������������������������������������������������������76
Model View ViewModel (MVVM)��������������������������������������������������������������������������77
Model�������������������������������������������������������������������������������������������������������������78
View���������������������������������������������������������������������������������������������������������������79
ViewModel�����������������������������������������������������������������������������������������������������80
Model View Update (MVU)�����������������������������������������������������������������������������������83
Getting Started with Comet���������������������������������������������������������������������������84
Adding Your MVU Implementation�����������������������������������������������������������������84

v
Table of Contents

XAML vs. C# Markup�������������������������������������������������������������������������������������������86


Plain C#���������������������������������������������������������������������������������������������������������87
C# Markup�����������������������������������������������������������������������������������������������������88
Chosen Architecture for This Book����������������������������������������������������������������������89
Adding the ViewModels���������������������������������������������������������������������������������90
Adding Views�������������������������������������������������������������������������������������������������96
Viewing Your Widget��������������������������������������������������������������������������������������99
MVVM Enhancements����������������������������������������������������������������������������������101
Summary����������������������������������������������������������������������������������������������������������105
Source Code������������������������������������������������������������������������������������������������107

Part II: User Interface��������������������������������������������������������������109


Chapter 5: User Interface Essentials������������������������������������������������111
Prerequisites�����������������������������������������������������������������������������������������������������111
Models���������������������������������������������������������������������������������������������������������111
Pages�����������������������������������������������������������������������������������������������������������113
ViewModels�������������������������������������������������������������������������������������������������114
App Icons����������������������������������������������������������������������������������������������������������116
Adding Your Own Icon����������������������������������������������������������������������������������116
Platform Differences������������������������������������������������������������������������������������117
Splash Screen���������������������������������������������������������������������������������������������������118
XAML�����������������������������������������������������������������������������������������������������������������119
Dissecting a XAML File��������������������������������������������������������������������������������120
Building Your First XAML Page��������������������������������������������������������������������122
Layouts�������������������������������������������������������������������������������������������������������������124
AbsoluteLayout��������������������������������������������������������������������������������������������124
FlexLayout���������������������������������������������������������������������������������������������������126
Grid��������������������������������������������������������������������������������������������������������������128
HorizontalStackLayout���������������������������������������������������������������������������������131
vi
Table of Contents

VerticalStackLayout�������������������������������������������������������������������������������������132
Data Binding�����������������������������������������������������������������������������������������������������135
Binding��������������������������������������������������������������������������������������������������������136
Applying the Remaining Bindings����������������������������������������������������������������140
MultiBinding������������������������������������������������������������������������������������������������141
Command����������������������������������������������������������������������������������������������������144
Compiled Bindings���������������������������������������������������������������������������������������147
Shell������������������������������������������������������������������������������������������������������������������148
ShellContent������������������������������������������������������������������������������������������������149
Navigation���������������������������������������������������������������������������������������������������150
Flyout�����������������������������������������������������������������������������������������������������������154
Tabs�������������������������������������������������������������������������������������������������������������160
Search���������������������������������������������������������������������������������������������������������160
Taking Your Application for a Spin���������������������������������������������������������������������161
Summary����������������������������������������������������������������������������������������������������������163
Source Code������������������������������������������������������������������������������������������������164
Extra Assignment����������������������������������������������������������������������������������������������164

Chapter 6: Creating Our Own Layout������������������������������������������������165


Placeholder�������������������������������������������������������������������������������������������������������166
ILayoutManager������������������������������������������������������������������������������������������������168
BoardLayout������������������������������������������������������������������������������������������������������169
BoardLayout.xaml����������������������������������������������������������������������������������������169
BoardLayout.xaml.cs�����������������������������������������������������������������������������������172
FixedLayoutManager�����������������������������������������������������������������������������������������177
Accepting the Number of Rows and Columns for a Board��������������������������179
Providing Tap/Click Support Through a Command��������������������������������������181
Building the Board Layout���������������������������������������������������������������������������182
Setting the Correct Row/Column Position for Each Widget�������������������������185

vii
Table of Contents

Using Your Layout���������������������������������������������������������������������������������������������187


Adding a Factory That Will Create Instances of Your Widgets���������������������187
WidgetTemplateSelector������������������������������������������������������������������������������193
Updating FixedBoardPageViewModel����������������������������������������������������������194
Finally Using the Layout������������������������������������������������������������������������������196
Summary����������������������������������������������������������������������������������������������������������197
Source Code������������������������������������������������������������������������������������������������198
Extra Assignment����������������������������������������������������������������������������������������������198

Chapter 7: Accessibility��������������������������������������������������������������������199
What Is Accessibility?���������������������������������������������������������������������������������������199
Why Make Your Applications Accessible?���������������������������������������������������������200
What to Consider When Making Your Applications Accessible��������������������������200
How to Make Your Application Accessible��������������������������������������������������������201
Screen Reader Support�������������������������������������������������������������������������������201
Suitable Contrast�����������������������������������������������������������������������������������������208
Dynamic Text Sizing�������������������������������������������������������������������������������������210
Testing Your Application’s Accessibility�������������������������������������������������������������215
Android��������������������������������������������������������������������������������������������������������215
iOS���������������������������������������������������������������������������������������������������������������215
macOS���������������������������������������������������������������������������������������������������������216
Windows������������������������������������������������������������������������������������������������������216
Accessibility Checklist��������������������������������������������������������������������������������������216
Summary����������������������������������������������������������������������������������������������������������218
Source Code������������������������������������������������������������������������������������������������219
Extra Assignment����������������������������������������������������������������������������������������������219

viii
Table of Contents

Chapter 8: Advanced UI Concepts�����������������������������������������������������221


Adding the Ability to Add a Widget to a Board���������������������������������������������������221
Possible Ways of Achieving Your Goal���������������������������������������������������������222
The Chosen Approach����������������������������������������������������������������������������������224
Styling���������������������������������������������������������������������������������������������������������������230
Examining the Default Styles�����������������������������������������������������������������������232
Creating a Style�������������������������������������������������������������������������������������������234
AppThemeBinding���������������������������������������������������������������������������������������236
Further Reading�������������������������������������������������������������������������������������������236
Triggers�������������������������������������������������������������������������������������������������������������237
Creating a DataTrigger���������������������������������������������������������������������������������238
EnterActions and ExitActions�����������������������������������������������������������������������239
Creating a TriggerAction������������������������������������������������������������������������������240
Further Reading�������������������������������������������������������������������������������������������242
Animations���������������������������������������������������������������������������������������������������242
Basic Animations�����������������������������������������������������������������������������������������243
Combining Basic Animations�����������������������������������������������������������������������245
Cancelling Animations���������������������������������������������������������������������������������246
Easings��������������������������������������������������������������������������������������������������������246
Complex Animations������������������������������������������������������������������������������������247
Combining Triggers and Animations�����������������������������������������������������������������252
Summary����������������������������������������������������������������������������������������������������������254
Source Code������������������������������������������������������������������������������������������������255
Extra Assignment����������������������������������������������������������������������������������������������255
Animate the BoxView Overlay����������������������������������������������������������������������255
Animate the New Widget�����������������������������������������������������������������������������255

ix
Visit https://ebookmass.com today to explore
a vast collection of ebooks across various
genres, available in popular formats like
PDF, EPUB, and MOBI, fully compatible with
all devices. Enjoy a seamless reading
experience and effortlessly download high-
quality materials in just a few simple steps.
Plus, don’t miss out on exciting offers that
let you access a wealth of knowledge at the
best prices!
Table of Contents

Part III: Behind the Scenes������������������������������������������������������257


Chapter 9: Local Data�����������������������������������������������������������������������259
What Is Local Data?������������������������������������������������������������������������������������������259
File System�������������������������������������������������������������������������������������������������������260
Cache Directory�������������������������������������������������������������������������������������������260
App Data Directory��������������������������������������������������������������������������������������261
Database�����������������������������������������������������������������������������������������������������������261
Repository Pattern���������������������������������������������������������������������������������������262
SQLite����������������������������������������������������������������������������������������������������������270
LiteDB����������������������������������������������������������������������������������������������������������278
Database Summary�������������������������������������������������������������������������������������285
Application Settings (Preferences)��������������������������������������������������������������������285
What Can Be Stored in Preferences?����������������������������������������������������������286
Setting a Value in Preferences��������������������������������������������������������������������286
Getting a Value in Preferences��������������������������������������������������������������������288
Checking if a Key Exists in Preferences������������������������������������������������������290
Removing a Preference�������������������������������������������������������������������������������291
Secure Storage�������������������������������������������������������������������������������������������������291
Storing a Value Securely������������������������������������������������������������������������������291
Reading a Secure Value�������������������������������������������������������������������������������292
Removing a Secure Value����������������������������������������������������������������������������292
Platform specifics����������������������������������������������������������������������������������������293
Viewing the Result��������������������������������������������������������������������������������������������295
Summary����������������������������������������������������������������������������������������������������������296
Source Code������������������������������������������������������������������������������������������������297
Extra Assignment����������������������������������������������������������������������������������������������297

x
Table of Contents

Chapter 10: Remote Data������������������������������������������������������������������299


What Is Remote Data?��������������������������������������������������������������������������������������299
Considerations When Handling Remote Data����������������������������������������������300
Webservices������������������������������������������������������������������������������������������������������302
The Open Weather API���������������������������������������������������������������������������������302
Adding Some State��������������������������������������������������������������������������������������319
Simplifying Webservice Access������������������������������������������������������������������������326
Prebuilt Libraries�����������������������������������������������������������������������������������������327
Code Generation Libraries���������������������������������������������������������������������������327
Further Reading������������������������������������������������������������������������������������������������329
Polly�������������������������������������������������������������������������������������������������������������329
StateContainer from CommunityToolkit.Maui����������������������������������������������330
Summary����������������������������������������������������������������������������������������������������������330
Source Code������������������������������������������������������������������������������������������������331
Extra Assignment����������������������������������������������������������������������������������������������331
TODO Widget������������������������������������������������������������������������������������������������331
Quote of the Day Widget������������������������������������������������������������������������������332
NASA Space Image of the Day Widget���������������������������������������������������������332

Part IV: Utilizing the platforms������������������������������������������������333


Chapter 11: Getting Specific�������������������������������������������������������������335
.NET MAUI Essentials����������������������������������������������������������������������������������������335
Permissions�������������������������������������������������������������������������������������������������336
Using the Geolocation API����������������������������������������������������������������������������341
Configuring Platform-Specific Components������������������������������������������������346
Platform-Specific API Access����������������������������������������������������������������������������352
Platform-Specific Code with Compiler Directives���������������������������������������352
Platform-Specific Code in Platform Folders������������������������������������������������354

xi
Table of Contents

Overriding the Platform-Specific UI������������������������������������������������������������������355


OnPlatform��������������������������������������������������������������������������������������������������355
Handlers������������������������������������������������������������������������������������������������������358
Summary����������������������������������������������������������������������������������������������������������361
Source Code������������������������������������������������������������������������������������������������362
Extra Assignment����������������������������������������������������������������������������������������������362
Barometer Widget����������������������������������������������������������������������������������������362
Geocoding Lookup���������������������������������������������������������������������������������������363

Chapter 12: Testing���������������������������������������������������������������������������365


Unit Testing�������������������������������������������������������������������������������������������������������365
Unit Testing in .NET MAUI����������������������������������������������������������������������������366
Adding Your Own Unit Tests�������������������������������������������������������������������������368
Testing Your View Models����������������������������������������������������������������������������372
Testing Asynchronous Operations���������������������������������������������������������������374
Testing Your Views���������������������������������������������������������������������������������������380
Device Testing���������������������������������������������������������������������������������������������������382
Creating a Device Test Project���������������������������������������������������������������������383
Adding a Device-Specific Test���������������������������������������������������������������������383
Running Device-Specific Tests��������������������������������������������������������������������384
Snapshot Testing�����������������������������������������������������������������������������������������������386
Snapshot Testing Your Application���������������������������������������������������������������387
Passing Thoughts����������������������������������������������������������������������������������������390
Looking to the Future����������������������������������������������������������������������������������������390
Summary����������������������������������������������������������������������������������������������������������391
Source Code������������������������������������������������������������������������������������������������391

xii
Table of Contents

Chapter 13: Lets Get Graphical���������������������������������������������������������393


.NET MAUI Graphics������������������������������������������������������������������������������������������393
Drawing on the Screen��������������������������������������������������������������������������������394
Further Reading�������������������������������������������������������������������������������������������397
Building a Sketch Widget����������������������������������������������������������������������������������397
Creating the SketchWidgetViewModel��������������������������������������������������������397
Representing a User Interaction������������������������������������������������������������������398
Creating the SketchWidgetView������������������������������������������������������������������399
Registering Your Widget������������������������������������������������������������������������������404
Taking Your Widget for a Test Draw�������������������������������������������������������������404
Summary����������������������������������������������������������������������������������������������������������405
Source Code������������������������������������������������������������������������������������������������405
Extra Assignment����������������������������������������������������������������������������������������������406

Part V: Finishing Our Application���������������������������������������������407


Chapter 14: Releasing Our Application���������������������������������������������409
Distributing Your Application�����������������������������������������������������������������������������409
Android��������������������������������������������������������������������������������������������������������410
iOS���������������������������������������������������������������������������������������������������������������412
macOS���������������������������������������������������������������������������������������������������������415
Windows������������������������������������������������������������������������������������������������������416
Things to Consider��������������������������������������������������������������������������������������������416
Following Good Practices����������������������������������������������������������������������������416
Performance������������������������������������������������������������������������������������������������418
Linking���������������������������������������������������������������������������������������������������������421
Crashes/Analytics����������������������������������������������������������������������������������������422
Obfuscation�������������������������������������������������������������������������������������������������424
Distributing Test Versions����������������������������������������������������������������������������������426
Summary����������������������������������������������������������������������������������������������������������427
xiii
Table of Contents

Chapter 15: Conclusion���������������������������������������������������������������������429


Looking at the Final Product�����������������������������������������������������������������������������429
Taking the Project Further���������������������������������������������������������������������������431
Useful Resources����������������������������������������������������������������������������������������������432
StackOverflow���������������������������������������������������������������������������������������������433
GitHub����������������������������������������������������������������������������������������������������������433
YouTube�������������������������������������������������������������������������������������������������������433
Social Media������������������������������������������������������������������������������������������������434
Yet More Goodness��������������������������������������������������������������������������������������434
Looking Forward�����������������������������������������������������������������������������������������������434
Upgrading from Xamarin.Forms������������������������������������������������������������������435
Comet����������������������������������������������������������������������������������������������������������435
Testing���������������������������������������������������������������������������������������������������������436

Index�������������������������������������������������������������������������������������������������437

xiv
About the Author
Shaun Lawrence is an experienced software
engineer who has been specializing in building
mobile and desktop applications for the past
15 years. He is a recognized Microsoft MVP in
Development Technologies; his work helps
the community learn and build with Xamarin
Forms, the predecessor to .NET MAUI. His
recent discovery of the value he can add by
sharing his experience with others has thrust
him on to the path of wanting to find any way possible to continue to do so.
Shaun actively maintains several open-source projects within the .NET
community. A key project for the scope of this book is the .NET MAUI
Community Toolkit where he predominantly focuses on building good
quality documentation for developers to consume. Shaun lives in the
United Kingdom with his wife, two children, and their dog.
Shaun can be found on Twitter @Bijington, on his blog at
https://blog.bijington.com, or on LinkedIn at ­www.linkedin.com/in/
shaun-lawrence-53a0099/.

xv
About the Technical Reviewer
Gerald Versluis is a Senior Software Engineer
at Microsoft working on .NET MAUI. Since
2009 Gerald has been working on a variety
of projects, ranging from front end to back
end and anything in between that involves
Azure, ASP.NET, and all kinds of other .NET
technologies. At some point he fell in love with
cross-platform and mobile development with
Xamarin. Since then he has become an active
community member, writing, tweeting, and presenting about all things
tech. Gerald can be found on Twitter @jfversluis, blogging at https://
blog.verslu.is, or on his YouTube channel at https://youtube.com/
@jfversluis.

xvii
Acknowledgments
I have a number of people that I would like to thank for their assistance.
Firstly, Dan: Your assistance in both reviewing my content and also
talking through each of my worries and ideas definitely encouraged me
to write.
Secondly, Gerald: You have been fundamental from start to finish. You
encouraged me to accept this project, helped me with decisions, reviewed
the content, and provided fantastic guidance throughout!
Thirdly, the team at Apress: From Joan for initially reaching out to me
in order to present this opportunity, to the rest of the team of Jill, Gryffin,
and Laura for answering all of my questions and guiding me through this
process.
Finally, my family—my wife, Levinia, daughters Zoey and Hollie, and
dog, Soco: Without your encouragement I would not have taken the leap to
embark upon this writing journey. I am so grateful for all your help and the
sacrifices made to help get me over the line.

xix
Introduction
Welcome to Introducing .NET MAUI.
This book is for developers who are new to .NET MAUI and cross-­platform
development. You should have basic knowledge of C# but require no prior
knowledge of using .NET MAUI. The content ranges from beginner through
to more advanced topics and is therefore tailored to meet a wide range of
experiences.
This book provides an in-depth explanation of each key concept in
.NET MAUI, and you will use these concepts in practical examples while
building a cross-platform application. The content has been designed
to primarily flow with the building of this application; however, there
is a secondary theme that involves grouping as many related concepts
as possible. The idea behind this is to both learn as you go and also to
have content that closely resembles reference information, which makes
returning to this book as easy as possible.
All code examples in this book, unless otherwise stated, are applied
directly to the application you are building. Once key concepts have been
established, the book will offer improvements or alternatives to simplify
your life as you build production-worthy applications. The book does not
rely upon these simplifications as part of the practical examples and the
reason for this is simple: I strongly believe that you need to understand the
concepts before you start to use them.
Finally, all chapters that involve adding code into the application
project contain a link to the resulting source code. This is to show the final
product and for you to use as a comparison if anything goes wrong during
your building of the application.

xxi
CHAPTER 1

Introduction to .NET
MAUI
In this chapter, you will gain an understanding of what exactly .NET
MAUI is, how it differs from other frameworks, and what it offers you as a
developer wishing to build a cross-platform application that can run on
both mobile and desktop environments. I will also cover the reasons why
you should consider it for your next project by weighing the possibilities
and limitations of the framework as well as the rich array of tooling
options.

What is .NET MAUI?


.NET Multi-platform App UI, or .NET MAUI for short, is a cross-­
platform framework that allows developers to build mobile and desktop
applications written in C# and XAML. It allows developers to target both
mobile (Android and iOS) and desktop (macOS and Windows) platforms
from a single codebase. Figure 1-1 shows the platforms officially supported
by .NET MAUI and Microsoft.

© Shaun Lawrence 2023 3


S. Lawrence, Introducing .NET MAUI, https://doi.org/10.1007/978-1-4842-9234-1_1
Visit https://ebookmass.com today to explore
a vast collection of ebooks across various
genres, available in popular formats like
PDF, EPUB, and MOBI, fully compatible with
all devices. Enjoy a seamless reading
experience and effortlessly download high-
quality materials in just a few simple steps.
Plus, don’t miss out on exciting offers that
let you access a wealth of knowledge at the
best prices!
Exploring the Variety of Random
Documents with Different Content
of Europe. The same old work was going on here: the same
incessant quest and record of news.
He went to the room of Barboux, the foreign editor.
"Good-evening," said Barboux, black-bearded, fat and bald-headed.
He pronounced "evening" as though it were a French word, and it
came out "événandje."
Barboux offered Humphrey a cigarette he had just rolled with black
tobacco, and asked him most intimate questions of his doings in
Paris, so that Humphrey had either to acknowledge himself a prude
or a Parisian.
"All the same," said Barboux, "Paris is a wonderful city, hein?"
"It is," said Humphrey.
Barboux continued: "Is it not the most beautiful, the most
wonderful, the most entrancing city in the world, young
Englishman?"
"All except London," replied Humphrey.
"Rosbif—Goddam—I box your nose," laughed Barboux.
It was a set form of dialogue that took place every night between
them, without variation, a joke invented by Barboux.
A man in an apron—a French version of the type in The Day's
printing-office—brought in a budget of proofs.
"There is nothing that is happening, ain't it?" remarked Barboux,
who always rendered n'est ce pas in this literal fashion.
"Apparently not," Humphrey agreed, glancing through the proofs.
"When do they expect the verdict in the Hanon case?"
Barboux touched a bell. A young man appeared. His hair was fair
and long, his clothes were faultless to the crease in the trousers
turned up in the English style over patent-leather shoes with the
laces tied in big bows. Barboux introduced him: "M. Charnac will tell
you about the Hanon case."
The young man bowed in a charming manner, and spoke in a soft,
delicious French, with a voice that was charged with courtesy and
kindness.
"They do not expect a verdict to-night, m'sieu. The court has
adjourned. I've just had the finish of our correspondent's message."
"Merci," said Humphrey.
"Pas de quoi," said Charnac, bowing.
Humphrey rose and bowed with the ultra politeness that was now
part of his daily life. They shook hands.
"Enchanté d'avoir fait votre connaissance," and Charnac bowed once
more.
"Enchanté," mumbled Humphrey.
Barboux was at the telephone, saying impatiently, "Ah-lo.... Ah ...
lo." Humphrey put on his hat, Barboux extended his left hand—the
greatest sign of friendship that a Frenchman can give, since it
implies that he knows you too well for you to take offence at it.
"À demain," said Humphrey, as he went away.
When he came back to the office, work began in earnest. First of all
he had to select from the budget of news on his table those items
that would be most acceptable to English readers. That was no small
matter on days when there were many things happening. It required
sound judgment and a knowledge of what was best in news. Then
there was always the question of the other correspondents of
London newspapers: what were the other fellows sending?
He and Dagneau talked things over, and, finally, when they had
decided what to transmit to London, the work of compiling the
stories began. It was necessary to build up a coherent,
comprehensive story out of the cuttings before him, in which all the
points of the different papers should be mentioned. Dagneau helped
him, making illiterate translations of leading articles, that needed
revising and knocking into shape. Perhaps, even at the eleventh
hour, a telegram might arrive from the London headquarters, setting
them a new task, rendering void all the work they might have done.
After two hours' writing Humphrey laid down his pen. "Come along,
my lamb," he said to Dagneau; "let us go to dinner."
Then they put on their hats and coats and went to Boisson's, a few
doors away in the Rue le Peletier, where Père Boisson presided over
a pewter counter, spread with glasses and bottles, and Mère Boisson
superintended the kitchen, and Henri, the waiter, with a desperate
squint, ran to and fro with his burden of plates, covering many miles
every night by passing and repassing from the restaurant tables to
the steamy recesses behind the door.
This was the part of Paris life that pleased Humphrey most.
They received him with cheery Bons soirs, and Henri paused in his
race to set the chairs for them, and arrange their table. Yards of
crisp bread were brought to them, and a carafon of the red wine
from Touraine, whither M. Boisson went on a pilgrimage once a year
to sample and buy for himself.
Little French olives and filet d'hareng saur; soup with sorrel floating
in it; fish with black butter sauce; a contre-filet or a vol au vent
deliciously cooked; Roquefort cheese, and, to wind up with, what M.
Boisson called magnificently Une Belle Poire—this was the little
dinner they had for something under three francs, and, of course,
there was special coffee to follow, and, as a piece of extravagance, a
liqueur of mandarin or noyeau.
"This is better than Fleet Street," said Humphrey, inhaling his
cigarette and sipping at the excellent coffee. Boisson in his shirt-
sleeves and apron came over to them and spoke to them with light
banter. He also had a joke of his own: he conceived it to be the
highest form of humour to interject "Aoh—yes—olright," several
times during the conversation.
Madame Boisson waddled towards them, with an overflowing figure,
and said, as if her future happiness depended on an answer in the
affirmative, "Vous avez bien diné, m'sieu."
The smell of food was pleasant here: there was no hurry; men and
women concentrated all their attention on eating and enjoying their
meal. The light shone on the glasses of red and white wine. It was a
picture that delighted Humphrey.
And Dagneau was telling him of his adventures on the previous night
with a little girl, the dearest little girl he had ever met, kissing the
tips of his fingers to the air, whenever his emotions overcame him ...
and Humphrey smiled. This was a side of Paris of which he knew
nothing. His thoughts went back to London where Elizabeth lived,
beautiful and austere. "I must write to Elizabeth to-night," he
thought.
At nine-twenty Dagneau caught the eye of Henri and made an
imaginary gesture of writing on the palm of his left hand. "That's the
way to get a perfect French accent," he said to Humphrey. Henri
nodded in swift comprehension and appeared with a piece of paper
on which illegible figures were scrawled. They paid and went away,
with the Boissons and Henri calling farewells to them. Happy little
restaurant in the Rue le Peletier!
They got back to the office just as the telephone bell was making a
rattling din. Humphrey sat down and adjusted over his head the
steel band that held the receivers close to his ears. Then, pulling the
telephone closer to him, and spreading out before him all that he
had written, he waited.
And, presently, sometimes receding and sometimes coming nearer
above the hum and buzz that sounded like the wind and the waves
roaring about the deep-sea cables, he heard the voice of Westgate
coming from England. "Hallo ... hallo ... hallo.... That you, Quain....
Can't hear you.... Get another line ... buzz—zz—zz ... oooo. Ah!
that's better." Westgate's voice became suddenly clear and vibrating
as though he were speaking from the next room. But Humphrey
could see the little box in the sub-editors' room, where all the men
were working round Selsey, and the messenger-boys coming and
going with their flimsy envelopes; he could see the strained, eager
face of Westgate, as he waited, pencil in hand ... and he began.
He shouted the news of Paris for fifteen minutes, and at the end the
perspiration wetted his forehead, and Westgate's good-night left him
exhausted. Sometimes, when the wires were interfered with by a
gale, the fifteen minutes were wasted in futile shouting and
endeavour to be heard in London; sometimes Westgate would say
bluntly: "Selsey says he doesn't want any of that story," when he
began to read his carefully prepared notes. Those were desperate
minutes, shouting to London against time.
"All well?" asked Dagneau, when he finished.
"I suppose so," Humphrey answered. "Westgate was in great form
to-night—he was taking down at the rate of a hundred and twenty
words a minute...." He rose and stretched himself. "Will you pay the
late call at the newspaper offices? I'll be at Constans in case
anything happens."
Out again into the bright glamour of the Boulevards to Constans at
the corner of the Place de l'Opera, in the shadow of the opera-
house, to meet the other correspondents, and wait on the events of
Europe, and drink brandy and soda or the light lager-beer that was
sold at Constans.
It was a place where most of the Paris correspondents gathered,
and, sometimes, the "Special Correspondents" came also. They were
lofty people, who had long since left the routine of Fleet Street; the
princes of journalism, who passed through Paris on their way to St
Petersburg, to Madrid—to any part of Europe or the world where
there was unrest; war correspondents, and special commissioners;
men who had letters of introduction from diplomat to diplomat, who
talked with kings and chancellors, and interviewed sultans. They
flitted through Paris whenever any big news happened, in twos and
threes, only staying for a few hours at Constans to meet friends, and
then on again by the midnight expresses....
They were a jolly lot of fellows who met in those days at Constans:
O'Malley of The Sentinel, the fair-haired scholar who spoke of style
in writing, and could speak French with an Irish accent and knew
how to ask the waiter to "Apporthez des p'hommes de therrey";
Punter, who represented the Kelmscotts' papers, talked French
politics late into the night, and wore a monocle that never dropped
from his eye—not even in those exciting moments when Michael, his
coal-black eyes and hair betraying his ancestry, crossed his path in
argument.
At midnight Dagneau came in with word from the outside world. All
was quiet. So Humphrey went back to the hotel in the Rue d'Antin,
where he rented a room on the fifth floor by the month for eighty
francs, including the morning roll and bowl of coffee. He wrote his
letter to Elizabeth: he wanted her to come to Paris and share his life
with him.
II
He wanted her very much to share in the delight of those days. It
was all so new and beautiful to him, so different from London. He
went about the city, sometimes alone, sometimes with Dagneau for
a companion, to the Louvre, where the Venus de Milo filled him with
awe and wonder, or to the Luxembourg, with its statuary set among
the green trees. In the afternoons, when he had any spare time, he
would take a book and read in the Tuileries, or on one of the seats in
the Champs Elysées, where the fat Norman and Breton nurses, with
their broad coloured ribbons floating from their coifs, wheeled
perambulators up and down, or took the children to the Punch and
Judy shows. And on Sundays in the season, there were the races at
Longchamps, with a drive homewards in the cool of the evening,
through the Bois, where his cab was one of a long line of vehicles
making a moving pageant of the human comedy, with laughing
bourgeois families riding five and six in a cab, and aristocracy and
opulent beauty, artificial and real, rolling by in victorias and electric
broughams.
Those rides down the Avenue du Bois to the Arc de Triomphe made
him feel very poor: the women, lolling back in silken comfort,
seemed lifted above the everyday world, away from all thought of
squalor and sordidness. They were the rare hot-house flowers of
society; the cold wind of life's reality would wither them in a day. So
they passed before him, exquisitely beautiful and remote, looking
with languid interest at the rest of the people in the incomparable
vanity of their silk and lace and diamonds....
Yet again, his work took him behind the scenes of Parisian life, into
places that are not familiar to the casual visitor to Paris. He would sit
in the Chamber of Deputies to make notes of an important debate,
or to watch the rigid semicircle of French legislators break up into
riotous factions, with the tintinnabulation of the President's bell
adding to the din. This would appear in The Day with the head-line,
"Pandemonium in the French Chamber." Perhaps it was necessary to
interview a juge d'instruction in his private room at the Palais de
Justice, or to pass through the corridors of the Surété—France's
Scotland Yard—to inquire into a sensational murder mystery.
And he found, too, that in Paris he had a certain standing as a
journalist that was denied him in London. He was registered in
books, and the seal of approval was given to him in the shape of a
coupe-fil, which was a card of identity, with his portrait and the
name of The Day on it—a magic card that enabled him to do
miraculous things with policemen and officials; it was a passport to
the front row in the drama of life. There was no need in Paris to
haggle with policemen, to wink at them, and win a passage through
the crowd by subterfuge as in London: this card divided a way for
him through the multitude.
So that now, when he felt that he had established himself in his
career, when his salary was more than adequate for the needs of
two, the strong need of Elizabeth came to him. The brilliant gaiety of
Paris swirled about him, and tried to entice him into its joyous
whirlpool. He knew the dangers that beset him: he knew the stories
of men who had been dragged into the whirlpool, down into the
waters that closed over their heads, bringing oblivion.
And he looked towards the ideal of Elizabeth, as he had always
looked towards the ideal of the love which she personified, to save
him from the evil things that are bred by loneliness and despair.
III
One Saturday night, when there was nothing else to do, he went up
to Montmartre, and walked along the Boulevard de Clichy, past the
grotesque absurdities of the cabarets that are set there for the
delectation of foreign and provincial strangers: cabarets that mock at
death and heaven and hell with all the vulgarity and coarseness that
exists side by side with the love of beauty, art and culture in Paris.
For a franc you could watch the old illusion of a shrouded man
turning to a grisly skeleton in his narrow coffin; or you could see a
diverting burlesque of the celestial realms, and observe how sinners
were burnt in a canvas hell with artificial flames. Humphrey had
seen all these during his first week in Paris: he had laughed, but
afterwards he had been ashamed of his laughter. They were a little
degrading....
He passed them by to-night, in spite of the enticing blandishments
of the mock mute, the angel and the devil by the doors of their
haunts. He wandered aimlessly along this Boulevard, where women
crossed his path, looking very picturesque, without any covering to
their heads, shawls across their shoulders and red aprons down to
the fringe of their short skirts. There was something savage and
primitive about these women: they lacked the frankness and gaiety
of the coster-girl in London; they were beautiful, with an evil and
cruel beauty. Vicious-looking men slouched from the shadows. Their
looks could not conceal the knives in their pockets. They were as
rats in the night, creeping from pavement to pavement, preying on
humanity.
The door of a café chantant opened, as Humphrey came abreast
with it, and the sound of a jingling chorus, played on a discordant
piano, arrested his steps. The man who was coming out, thinking
that Humphrey was about to enter, held the door open for him
politely. Something impelled Humphrey forward.
He went inside.
The room was heavy with tobacco smoke; it floated in thin clouds
about the lights and drifted here and there in pale spirals as it was
blown from the lips of the smokers. His vision was blurred by the
smoke at first, and, as he stood there blinking and self-conscious, it
was as though he had intruded into some private and intimate
gathering. It seemed that every one in the room was staring at him.
The impression only lasted a moment. He perceived a vacant chair
by a table and sat down, with the bearing of one to whom the place
was familiar.
All around him the men and women were sitting. There was an air of
sex-comradeship that, in spite of its frankness, was neither indecent
nor blatant. The people were behaving in the most natural way in
the world. Sometimes a woman nestled close to a man and their
hands interlaced; sometimes a man sat with his arm round the waist
of a girl. Mild liquids were before them—the light beer of France,
little glasses of cherries soaked in brandy, glasses of white and red
wine. Their eyes were set towards the small stage at the end of the
room, a narrow platform framed in crudely-painted canvas,
representing trees and foliage; while at the back there was a drop-
scene that showed a forest as an early Japanese artist might have
drawn it, with vast distances and a nursery contempt for
perspective.
His eye wandered to the walls painted with scroll-work and
deformed cupids and panels of nude women, so badly done that
they appealed more to the sense of humour than to the sexual. The
pictures on the walls seemed to leave the men and women
untouched; they concentrated all their attention on the
entertainment. The only person in the place who showed any sign of
boredom was the gendarme who sat by the door, the State's
hostage to its conscience. Nothing, said the State, in effect, can be
indecent if one of our gendarmes is there. This was not one of the
cabarets where the poet-singers of Montmartre chant, with
melancholy face, their witty doggerel or their fragrant pastorals;
where people came to hear the veiled obscenities of political satire
or allusions to passing events; this was a second-rate affair, a tingel-
tangel—a species of family music-hall.
A waiter in an alpaca jacket, a stained apron wound skirt-wise round
his trousers, approached Humphrey with an inquiring lift of his
eyebrows. He removed empty glasses dexterously with one hand
and slopped a cloth over the table with the other.
"M'sieu, desire...?"
"Un fin," answered Humphrey.
The waiter emitted an explosive Bon and threaded his way through
the labyrinth of chairs to a high wooden counter, where a fat man,
with his shirt-sleeves rolled back to his elbow, stood sentinel over
rows of coloured bottles. The light shone on green and red liqueurs,
on pale amber and dark brown bottles placed on glass shelves
against a looking-glass background, that reflected the bullet shape
of the patron's close-cropped head.
Meanwhile the pianist had finished his interlude, and there was a
burst of applause as a woman appeared on the stage. She wore an
amazing hat of orange and white silk, in which feathers were the
most insistent feature. There was something extraordinarily bold and
flaunting in her presence. Her neck and shoulders and bosom were
bare to the low cut of her bodice, and the cruel light showed the
powder that she had scattered over her throat and shoulders to
make them white and enticing; it showed the red paint on the lips
and the rouge on the cheeks, and the black on her eyelashes and
eyebrows. The crude touches of obvious artifice destroyed her
beauty. Her waist was compressed into a painful smallness, and her
skirt was flounced and reached only to the knees.
She sang a song that had something to do with a soldier's life. "Tell
me, soldier," she sang, "what do you think of in battle? Do you think
of the glory of the Fatherland and the splendour of dying for
France?" And the soldier answers: "I think only of a farm in Avignon,
and a maiden whose lips I used to kiss on the old bridge; I think
only of my old mother and how she will embrace me when I come
home."
When she sang the simple song, though her voice was false, and her
gestures stereotyped, the rouge and the powder and the paint were
forgotten for a moment. She was one of those unconscious artists
belonging to a people who have art woven into the warp and woof
of their daily life.
The audience took up the chorus. She nodded to them with an
audacious smile. The pianist, with his cigarette stub hanging from
his lips, under cover of the volume of voices, forsook the treble for a
moment, and reached out with his hand for a glass of beer that
rested above the piano.
It was the strange, fumbling motion of his hand that caught
Humphrey's eye, trained to observe such details. He looked closer,
and saw that the pianist's eyes were closed, and the lashes were
withered where they met the cheek. He was blind; he never saw the
faces and figures of the women who sang, he only heard the voices;
he could see nothing that was harsh and cruel. And the picture of
the blind pianist at the side of the garish stage, improvising little
runs and trills and spinning a web of melody night after night, stirred
Humphrey with an odd emotion.
There was a pause. The door opened and closed as people came
and went. Humphrey sipped at the brandy; the fiery taste of it made
his palate and throat smart. The price of the entertainment was one
franc, including a drink.
Suddenly the pianist struck up a well-known air. A slim girl, in the
costume of the district, slouched on to the stage, her hands thrust
into the pockets of her apron. Her hair was bundled together in
careless heaps of yellow, her eyes were pale blue and almost
almond-shaped, her features finely moulded, with a queer distinction
of their own. And when she took one hand out of her apron pocket,
he saw that the fingers were long and exquisitely tapered, and
tipped with pink, beautiful nails that shone in the light. Those finger-
nails betrayed her. They were not in keeping with the part.
She started singing, walking the small stage with a swaying motion
of her body; her young form was lithe and graceful; her movements
tigrine. And as she sang her lilting chorus, her pale eyes gazed from
their narrow slits at Humphrey, not boldly or coquettishly, but with
an indeterminate appeal, as though she felt ashamed of her song.
"Quand je danse avec mon grand frisé
Il a l'air de m'enlacer
Je perds la tête
'Suis comme une bête!
'Y a pas chose—'suis sa chose à lui
'Y a pas mal—Quoi? C'est mon mari
Car moi, je l'aime
J'aime mon grand frisé."
The audience sang the swinging chorus, and she moved sinuously to
and fro with the rhythm of it. Humphrey sat there, and he seemed
to lose consciousness of all the other people in the room—the smell
of the smoke, and the jingle of the piano, and the ill-painted pictures
on the walls faded away from him; all his senses seemed to merge
and concentrate on the enjoyment of this moment. She was singing
on the stage for him, her narrow eyes never left him.
And her song was a pæan in praise of the brute in man.
She acted her song. Her face was radiant with the joy of being
possessed, and her eyes shone as she abandoned herself to the
words:
"Quand je danse avec le grand frisé
Il a l'air de m'enlacer...."
Then her wonderful hands with their glinting finger-nails went up to
her head, and she half-closed her eyes, as though she were
swooning:
"Je perds la tête...."
Now her eyes were opened, and they glared wildly, and her lips
trembled, and her slim body quivered with animal hunger:
"'Suis comme une bête."
And now, she smiled, and pride was on her face; one hand rested on
her hip, and she swaggered up the stage, as the words fitted into
the opening lilt:
"'Y pas chose—suis sa chose à lui
'Y pas mal—Quoi? C'est mon mari...."
Her face became at once miraculously tender. She expressed great
and overpowering love—a love so strong that it swept everything
before it—a love that was without restraint, passionate, fierce and
unquenchable. Her arms were outstretched. Her dark blouse,
opened at the neck, revealed her white throat throbbing with her
song:
"Car moi, je l'aime
J'aime mon grand frisé."
And when she sang "Je l'aime," she invested the words with passion
and renunciation.
They clamoured for another verse, crying "Bis ... Bis," in throaty
tones, but she only came on to bow to them, and walk off again
with that swaying stride.
"Eh, bien!" said a voice at Humphrey's elbow, "she is very good, our
little Desirée, hein?"
He turned half round in his chair. At first he did not recognize the
immaculately clothed young man, with the fair, long hair, who smiled
at him, and then he recollected that they had met in the office of Le
Parisien.
"M. Charnac, isn't it?" Humphrey asked. "I didn't know you at
once.... Yes, she's very good. What's her name?"
"Desirée Lebeau," Charnac answered. He looked at Humphrey again,
still smiling.
"Do you often come here?" he asked.
"This is the first time.... I was wandering about.... I just dropped in."
Humphrey noticed that Charnac was not alone. A pretty girl dressed
becomingly in black, with a touch of red about her neck, sat by his
side.
"Allow me to present a friend, Margot," Charnac said to the girl. "He
is an Englishman—a journalist," he added. And to Humphrey he
said:
"Mlle. Margot Lebeau. She is the sister of our little Desirée."
"M'sieu est Anglais," said the dark-haired girl in a piping voice. "Ah!
que ça doit être interessant d'être Anglais."
IV
The entertainment was near its end. A dainty figure came from the
heavy curtains that hung from each side of the proscenium and hid
the entertainers from the audience. Humphrey recognised Desirée,
though she had forsaken her stage-costume and wore a simple dark-
blue dress, with a black fur boa held carelessly about her shoulders.
She came towards them with a smile, stopping on the way, as one or
two men, of a better class than the bulk of the audience, hailed her.
She bent down to them, and whispered conversations followed. She
laughed and slapped the face of one man—an elderly man with a
red ribbon in his button-hole. It was a playful slap, just the
movement that a kitten makes with its paw when it is playing with
long hanging curtains.
Charnac pushed out a chair for her invitingly. She came to them with
a smile hovering about her lips, and a look of curious interest in her
pale eyes as she saw Humphrey. She shook hands with Charnac, and
kissed her sister Margot, and then, with a frank gesture, without any
embarrassment, she held out her hand to Humphrey and said:
"Bon soir, p'tit homme."
There was a quality of friendship in her voice; her whole manner
suggested a desire to be amiable; she accepted Humphrey as a
friend without question, and, as for Charnac, she treated him as if
he were one of the family, as a brother. The women in the room
stared at the party every few moments, absorbed in the details of
Desirée's dress, and the men glanced at her with smiles that irritated
Humphrey.
"It is a little friend of mine—an Englishman," Charnac said to
Desirée.
"An Englishman!" said Desirée, in a way that seemed to be the echo
of her sister's remark a few minutes earlier. "I have a friend in
England." She spoke French in a clipped manner, abbreviating her
words, and scattering fragments of slang through her phrases.
"Is that so?" Humphrey said. "What part of England?"
"Manchestaire," she replied. "His name was Mr Smith. You know
him?"
Humphrey laughed. "I'm afraid I don't—Manchester's a big place,
you know."
"Is it as big as London?"
"Oh no. Not as big as London."
"I should like to go to London. I have a friend there—a girl friend."
"Oh! where does she live?"
"I forget the name of the street—somewhere near Charing Cross—
that's a railway station, isn't it?"
"Yes."
Silence fell between them while a comedian, dressed as a comic
soldier, sang a song that made them all laugh; though Humphrey
could not understand the argot, he caught something of the
innuendo of the song. Strange, that in France and Germany, in
countries where patriotism and militarism are at their highest, the
army should be held up to ridicule, and burlesqued in the coarsest
fashion. The song gave Humphrey an opportunity of studying
Desirée's face. He saw that the yellow hair was silky and natural; her
eyebrows were as pale as her hair, and when she laughed, her red
lips parted to show small white teeth that looked incredibly sharp.
She was not beautiful, but she held some mysterious attraction for
him. She was of a type that differed from all the women he had met.
Though her face and figure showed that she was little more than
twenty, her bearing was that of a woman who had lived and learnt
all there was to know of the world. One slim, ungloved hand rested
on the table, and he noted the beauty of it, its slender, delicate
fingers, and the perfect shape of her pink, shining nails. In the
making of her, Nature seemed to have concentrated in her hands all
her power of creating beauty.
The song finished to a round of applause.
"Il est joliment drôle," said Desirée to Charnac. "Ah! zut ... I could
do with a drink."
"We won't have anything here," Charnac said. "They only sell species
of poisons. Let's go and have supper at the Chariot d'Or.... Will you
join us, Mr Quain?"
Why not? It was a perfectly harmless idea. Every experience added
something to his knowledge. And yet, he hesitated. Somewhere, at
the back of his mind, a feeling of uneasiness awoke in him. Charnac
would pair off with Margot, and he would have to sit with Desirée
during the meal. The thought carried with it a picture of forbidden
things. Conscience argued with him: "You really oughtn't to, you
know." "Why not? What harm will it do?" he urged. Conscience was
relentless. "You forget you have a duty to some one." "Nonsense,"
he said, "let's look at the thing in a broad-minded way. It won't hurt
me to have supper with them, surely."
Desirée laid a hand upon his sleeve gently.
"Tu viens—oui," she asked, in a low, caressing voice. Their eyes met.
He saw the pupils of her narrow eyes grow larger for a second, as
though they were striving to express unspoken thoughts. Then they
receded and contracted to little, dark, twinkling beads set in their
centre of pale blue circles.
"Oui," he said, with a sigh.

They came out into the noisy night of the Boulevard. They walked
together, Charnac and Margot with linked arms. The lower floors of
the night restaurants were blazing with light, but in the upper rooms
the drawn blinds subdued the glare, and transformed it into a warm
glow. Cabs and motor-cars came up the steep hill from the Grands
Boulevards below for the revelry of supper after the theatre. The
great doors of the Chariot d'Or were continually moving, and the
uniformed doorkeeper seemed to enjoy the exercise of pulling the
door open every second, as women in wraps, accompanied by men,
crossed the threshold.
They went upstairs into a long brilliant room, all gold and glass and
red plush, with white tablecloths shining in the strong light. In the
corner a group of musicians, dressed in a picturesque costume—it
might have been taken from any of the Balkan States, or from
imagination—played a dragging waltz melody.
A dark woman sat by them, wearing a Spanish dress, orange and
spangled, the bodice low-cut, and the skirt fanciful and short,
showing her thin legs clad in black open-work stockings. She
regarded the room with an air of detached interest, unanswering the
glances of the men. She was the wife of the first violinist.
Charnac led the way to a table; he placed himself next to Margot on
the red plush sofa-cushions, and Humphrey sat with Desirée. While
Charnac was ordering the supper and consulting their individual
tastes, Humphrey glanced round the room at the men who sat at the
little tables with glasses of sparkling amber wine before them, some
of them in evening-dress, with crumpled, soft shirt-fronts, others in
lounge suits or morning-coats. Not all had women with them, but
the women that he saw were luxurious, beautiful creatures, with
indolent eyes and faces of strange beauty.
The lights gleamed under rose-coloured shades on the table, on the
silver dishes piled high with splendid fruits, on bottles swathed
tenderly with napkins, set in silver ice-pails, on tumblers of coloured
wines and liqueurs.
"It's pretty here, eh?" said Desirée.
"It's not so bad. I've never been here before. Do you come often?"
"Oh no! not often: only when Margot brings Gustave to come and
fetch me after I've been singing."
She clapped her hands gaily as the waiter set a steaming dish of
mussels before them. The house was famed for its moules
marinières. "I adore them," she said, unfolding her serviette, and
tucking it under her chin. Charnac ladled out the mussels into soup-
plates. Their blue iridescent shells shone in an opal-coloured gravy
where tiny slices of onion floated on the surface. Her dainty fingers
dipped into the plate, and she fed herself with the mussels, biting
them from the shells with her sharp white teeth. She ate with an
extraordinary rapidity, breaking off generous pieces from the long,
crisp roll of bread before her, and drinking deeply of her red
Burgundy.
She was simply an animal. Margot ate in much the same way, with
greedy, quick gestures, until her plate was piled high with empty
mussel shells. And, during the meal, they chattered trivialities,
discussing personal friends in a slangy, intimate phraseology.
The sharp taste of the sauce, with its flavour of the salt sea-water,
made Humphrey thirsty, and he, too, drank plenty of wine; and the
wine and the warmth sent the colour rushing to his cheeks, and
filled him with a sense of comfort. The whole atmosphere of the
place had a soothing effect on him.
The orchestra started to play a Spanish dance, and the woman in
orange rose from her seat, and tossing her lace shawl aside, moved
down the aisle of tables in a sidling, swinging dance, castanets
clicking from her thumbs, marking the sway and poise of her body
above her hips. It was a sexual, voluptuous dance, that stirred the
senses like strong wine. Now she flung herself backwards with a
proud, uplifted chin. One high-heeled satin shoe stamped the floor.
Her eyes flashed darkly and dangerously; she flaunted her bare
throat and bosom before them; now she moved with a lithe sinuous
motion from table to table, one hand on her hip, and the other
swinging loosely by her side.
There was something terrible and triumphant in her dance to the
beat of the music with its rhythm of a heart throbbing in passion.
"Bravo! bravo!" they cried, as the dance finished. "Bis," shouted
Charnac, lolling back in his seat with his arm round Margot's
shoulder.
"She dances well," said Humphrey.
Desirée turned her pale eyes on him. "I can dance better," she said,
and before he had realized it, she was up and in the centre of the
room, and everybody laughed and clapped hands, as Desirée began
to dance with stealthy, cat-like steps. Her face was impudent, as she
twined and twisted her thin body into contortions that set all the
men leering at her. It was frankly repulsive and horrible to
Humphrey; she seemed suddenly to have ceased to be a woman,
just as when she had started to eat. She was inhuman when she
sang and ate and danced.
The blur of white flesh through the smoke, the odour of heavy
scents, and the sight of Desirée writhing in her horrid dance,
sickened him. He saw her white teeth gleaming between her lips,
half-parted with the exhaustion of her dance, he saw her eyes
laughing at him, as though she were proud and expected his
applause, and he felt a profound, inexplicable pity for her that
overwhelmed his disgust.
She flung herself, panting, into her seat, and pushed back her
disordered yellow hair with her hands. "Oh la! ... la!" she cried,
laughing in gasps, "c'est fatiguant, ça ... my throat is like a furnace."
And she clicked her glass against the glass that Humphrey held in
his hand, and drained it to the finish.
"Why did you do that?" asked Humphrey, huskily.
"Do what?"
"Dance like that—in front of all these people?"
"Why shouldn't I, if I want to?"
"I don't like it," he said, wondering why he was impelled to say so.
"Well, you shouldn't have said she dances well," Desirée replied.
"I must be going," Humphrey said.
"Oh, not yet," Charnac said. "Let's all go together."
"No," he pushed his chair away with sudden resolution. "I must go."
"But, my dear—" Desirée began.
"I must go," Humphrey repeated, slowly. It was like the repetition of
a lesson. "I must go now."
"Oh, well—" Charnac said.
The waiter appeared with a bill. "You will allow me to pay?"
Humphrey asked Charnac.
"Mais non, mais non, mon ami," he replied, good-naturedly. "It was I
who asked you to come, wasn't it? Another night it will be your
turn."
"Another night," echoed Margot, in her high-pitched voice. "J'adore
les Anglais, ils sont si gentils."
"And why cannot you stop?" Desirée asked.
He avoided her eyes. Never could he explain in this room, with its
scent and its music and its warmth, that turned vice into happiness
and made virtue as chilling and intractable as marble. He only knew
that he had to go. He made some excuse—any excuse—work—a
headache ... he did not know what he was saying; he was only
conscious of those narrow eyes beneath pale eyebrows, and red
parted lips, and the soft hand that lay in his—the soft hand with the
finger-tips as beautiful as rosy sea-shells.
They were not to blame; they could not be expected to know his
innermost life, nor why it was that he felt suddenly as if he had
profaned himself, and all that was most sacred to him. But that finer,
nobler self that was always dormant within him, as eager to awaken
to influences as it was to be lulled to sleep by them, became active
and alert....
There was a hint of dawn in the sky as he came out into the empty
street, his mind charged with a deep melancholy. But, as the cool air
played about his face, he breathed more freely after the stuffy
warmth of the room, and he walked with a firm step, square-
shouldered, erect and courageous.
V
Some weeks later there came a letter which brought the reality of
things into his own life. It was a short and regretful letter from a
firm of Easterham solicitors, announcing the death of his aunt.
They informed him of the fact in a few, brief, dignified words. There
was an undercurrent of excuse, as if they felt themselves personally
responsible for the sudden demise, and were anxious to apologise
for any inconvenience that might be felt by Mr Quain. He gathered
that his aunt had lived on an annuity, which expired with her; that a
little financial trouble—loans to a brother of whom Humphrey had
never heard—absorbed her furniture and all her possessions, with
the exception of a watch and chain, which she had willed to
Humphrey. The funeral was to take place two days hence—and that
was all.
The letter moved him neither to tears nor sorrow. His aunt had been
as remote from him in life as she was in death. An unbridgeable
abyss had divided them. Never, during the years he had lived in
Easterham, after his father's death, had they talked of the
fundamental things that mattered to one another. He felt that he
owed her nothing, least of all love, for she remained in his memory a
masterful, powerful influence, trying to fetter him down to a narrow
life, without comprehension of the broad, beautiful world that lay at
her doors.
He could see her now in her dress of some mysterious black pattern,
and always a shawl over her shoulder, her white hair plastered close
to her heavy gold earrings, her lips thin and compressed, and her
eyes hard-set, when she said, "You must Get On." She did not know,
when she urged him to go forward, how far he meant to go. Her
vision of Getting On was bounded by Easterham—what could she
know and understand of all the bewildering phases he had
undergone; the bitter heartaches, the misery of failure, and the glory
of conquest in a world wider than a million Easterhams.
But, as he thought of her dead, a strange feeling came to him that
now she could understand everything, that she knew all, and was
even ready to reach out in sympathy to him. Her last pathetic
message—a watch and chain! The rude knowledge that he had
gained of the secret things of her life—how she lived, her loan to the
brother; it seemed that some hidden door which they had both kept
carefully locked had been flung open widely—that his eyes were
desecrating her profoundest secrets.
It was not the first time that Death had stirred his life, but this was a
sudden and unexpected snapping of a chain that bound him with his
boyhood. Always he had been subconsciously aware of his aunt's
presence in the scheme of things; there had been ingrained in him a
certain fear of her, that he had never quite shaken off. Behind the
individuality of his own life she had lurked, a shadowy figure, yet
ready to emerge from the shadows at a moment of provocation, and
become real and distinct and forbidding.
And now he could scarcely realize that she was dead—that he was
absolutely alone in the world, though there might be, somewhere,
cousins and kinspeople whom he had never seen.
She had not been demonstratively kind to him in life. The watch and
chain she left was the first present he could ever remember
receiving from her. But he felt that he could not absent himself from
her funeral; it would be a sad and desolate business in the
Easterham churchyard, with not many people there, yet he knew
that he could not pass the day in Paris without thinking of her,
lowered into the grave to the eternal loneliness of death.
He sent a telegram to London, and received a reply a few hours
later, giving him permission to leave Paris, and the next day he
travelled to England.
The collection of papers and magazines rested unread in his lap. He
looked from the window on the succession of pictures that flashed
and disappeared—a blue-bloused labourer at work in the fields, or a
waggoner toiling along a country lane; children shouting by the
hedgerows, and the signal-women who sat by their little huts on the
railway as the train sped by. He could not read; sometimes, with a
sigh, he sought a paper (France had just caught the popular
magazine habit from England), turned the pages restlessly, and,
finally, leaning on the arm-rest, stared out of the window....
The shuttle of his mind went to and fro, twining together the
disconnected threads of his thoughts into a pattern of memories—
memories of his youth and his work and his aunt interwoven with
the strong, dominating thought of Elizabeth....
His thoughts turned continually to Elizabeth; sometimes they spun
away to something else, but always they were led back through a
series of memories to that night when he had kissed her for the first
time.
It was odd how this absence from her seemed to have changed her
in his mind. There had been an undercurrent of disappointment in
their relations, of late. Her letters had been strangely sterile and
unsatisfying. She had written an evasive reply, after a delay, an
answer to his last letter begging her to come to him....
Yet he was eager to see her and to kiss her. He felt that she was all
that he had left to him in the world: that she and his work were all
that mattered....
A garrulous Frenchman lured him into conversation during dinner;
he was glad, for it gave him relief from the monotonous burden of
his thoughts ... and on the boat he dozed in the sunshine of a
smooth crossing.
Once in England again, the delight of an exile returning to his home
provided new sensations. The porters were deferentially solicitous
for his comfort; the Customs officers behaved with innate politeness,
and the little squat train, with its separate compartments, brought a
glow of happiness to him. He saw England as a stranger might see it
for the first time: he observed the discipline and order of the railway
station that came not from oppression but from high organization
and planning. There were no mistakes made; the boy brought his
tea-basket and did not overcharge him; the porter accepted sixpence
and touched his hat, not obsequiously, but in acknowledgment,
without a suggestion of haggling for more. It seemed incredible that
he should find this perfection, where a year ago he could not see
it....
There were Frenchmen in the carriage, and he sat with the
conscious pride of an Englishman in his own country. The train
moved out, giving a glimpse of the harbour and the sea breaking in
white lines over the sloping beach; and then through a tunnel that
emerged on fields. The first thing he noticed was the vivid green of
the country, and the way it was cut up and divided into squares and
oblongs: the small clumps of low-set trees, the fat cattle, and the
peace brooding over the land. And then he noticed the little houses,
low-storied and thatched, with a feather of blue smoke waving from
their chimneys. The whole journey was a series of new impressions
that elated him. Stations flashed and left behind a blurred memory
of advertisements, and names that breathed of yeoman England:
Ashford—Paddock Wood—Sevenoaks—Knockholt; and then the
advertisement-boards stood out of the green fields, blatantly
insisting on lung tonics and pills, marking off mile after mile that
brought him nearer to London. The houses closed in on the railway
line; the train ran now through larger stations of red brick, passing
the peopled platforms with an echoing roar; other crowded trains
passed them, going slowly to the suburbs they had left behind. A
new note seemed to come into the journey as the evening
descended, and the world outside was populous with lights.
The memory of the clean, sweet country, with its toy houses, was
wiped away by a swift blot of darkness as the train flashed through
New Cross, and out into the broad network of rails with which
London begins.
He saw the factories and the sidings and the busy traffic of trains
overtaking one another, running parallel for a space, and then
swaying apart as one branched off to the south-eastern suburbs. He
saw the smoke hanging in thick clouds on the far horizon; masts and
rigging made spidery silhouettes against the sky; and the tall,
factory chimneys thrust out their monstrous tongues of livid fire.
The city was before him right and left, overgrown and tremendous.
They ran level with crooked chimney-pots and the scarred roofs of
endless rows of houses. The upper windows were yellow with light,
and he caught glimpses of women before mirrors and men in their
shirt-sleeves. Dark masses of clouds rolled before the moon.
Something wet splashed on his cheek.
A silent Englishman sitting next to him, said moodily: "Raining as
usual. I've never once come home without it raining." He laughed as
though it were a bitter joke.
Fantastic reflections wriggled on the wet, shining approach to
London Bridge—a swift vision of bus-drivers, with oilcloth capes
glinting in the rain, hurrying crowds, and something altogether new
—a motor-omnibus.
Then the train, with a dignified, steady movement, swung slowly
across Hungerford Bridge, and he saw the strong, resolute river,
black and broad, flowing to the bridges, within the jewelled girdle of
the Embankment.
The sense of England's greatness came to him, as the landmarks of
London were set in a semicircle before him: the tall dome of St
Paul's, the spires of churches, the turrets of great hotels, grey
Government offices, culminating in the vague majesty of the Houses
of Parliament.
How different the streets were from Paris! There was a force and an
energy that seemed to be driving everything perpetually forward.
This business of getting to dinner—it was about half-past seven—
was a terribly earnest and crowded affair. The throng of motor-cars
and omnibuses jammed and flocked together in the Strand, held in
leash by a policeman's uplifted hand, and when it was released, it
crawled sluggishly forward. Here and there, rare sight for Humphrey,
one of the new motor-omnibuses lumbered forward heavily,
threatening instant annihilation of everything. There was no chatter
of voices in the crowd—no gesticulation—the people walked silently
and hurriedly with a set concentration of purpose.
He went to a hotel in the Adelphi to leave his bag. Then he came
out, pausing for a moment irresolutely in the crowd. It was too late,
as he had foreseen, to go to Elizabeth. He had made up his mind to
see her on his return from Easterham.
An omnibus halted by him: he boarded it, and as he passed the
Griffin, he breathed deeply like a monarch entering his own domain,
for the scent of the Street was in his nostrils and the old, well-known
vision of the lit windows passed before him, and a newsboy ran
along shouting a late edition. This was the only Street in the world,
he felt, that he loved; its people were his people, and its life was his
life.
He turned into the Pen Club, to friendship, good-fellowship and
welcome. And all the old friends were there—Larkin, retelling old
stories, Chander spinning merry yarns, and Vernham making
melancholy epigrams. Willoughby, he learnt, was away on a mystery
in the north, and Jamieson was at a first night.
"By the way," said Larkin, "heard about Tommy Pride?"
"No. What's happened?"
"He's left The Day."
"Sacked?" asked Humphrey.
Larkin nodded. "Rather rough on poor old Tommy. Married, isn't he?"
A picture of his first visit to the home of the Prides leapt before
Humphrey's eyes, and the comfort, the cheeriness, that hid all the
hard work of the week. The news hurt him queerly.
"What's he doing?" he asked.
"Well, not much. Tommy's not a youngster, you know. I suppose the
Newspaper Press Fund will tide him over a bit."
Larkin dropped the subject, to listen to a story from Vernham. After
all, it was the most casual thing in the happenings of Fleet Street to
them: it might happen to them any day; it was bound to happen to
them one day. And there would always be young men ready to take
their places. Nobody was to blame; it was just one of the chances of
the inexorable system which made their work a gamble, where men
hazarded their wits and their lives, and lost or won in the game.
Humphrey knew more than they did what it meant for Tommy Pride.
He heard as a mocking echo now, the old cry, "Two pounds a week
and a cottage in the country."...
"Have a drink," Larkin said.
He became suddenly out of tune with the place. His perception of
Fleet Street altered. He saw the relentless cruelty of it, the
implacable demand for sacrifice that it always made. He visioned it
as a giant striding discordantly through the lives of men, crushing
them with a strength as mighty as its own machines that roared in
the night ... a clumsy and senseless giant, that towered above them,
against whom all struggles were pitiful ... futile.
VI
"One lump or two?" asked Elizabeth, holding the sugar-tongs poised
over his cup of tea.
"One, please," said Humphrey.
"Milk or cream?"
"Milk."
She handed him the cup in silence. There was something in the
frank, questioning look in her blue eyes that made him avert his
gaze. Their meeting had not been at all as he had imagined it. He
did not spring towards her, boyishly, and take her in his arms and
kiss her. He had approached her humbly and timidly when she stood
before him, in all her white purity and beauty, and their lips had met
in a brief kiss of greeting. Her manner had been curiously formal and
restrained, empty of all outward display of emotion.
And now they sat at tea in her room with the conversation lagging
between them. As he looked round at the room with its chintzes and
rose-bowls, its old restfulness reasserted itself. But to Humphrey it
seemed now more than restful—it seemed stagnant and out of the
world.... Somewhere, in Paris, there were music and laughter, but
here, in this quiet backwater of London, one's vision became narrow,
and life seemed a monotonous repetition of days. He felt moody,
depressed; a sense of coming disaster hung over his mind, like a
shadow. Her quick sympathy perceived his gloom.
"You ought not to have gone," she said, softly.
"You mean to the funeral?"
"Yes; you are too susceptible ... too easily influenced by
surroundings. There was no need to come all this way to make
yourself miserable."
"I don't know why I went," he said. "We never had much in
common, my aunt and I, but somehow ... I don't know ... I couldn't
bear the thought of not being present at her funeral. I had a silly
sort of idea that she would know if I were not there."
"You are too susceptible," she repeated. "Sometimes I wish you
were stronger. You are too much afraid of what people will think of
you. This death has meant nothing at all to you, but you are
ashamed to say so."
"It has meant something to me," he said. "I don't mean that I felt a
wrench, as if some one whom I loved very dearly had gone ... I felt
that when my father died ... but her death has changed me
somehow—here—" and he tapped his breast, "I feel older. I feel as if
I had stood over the grave and seen the burial of my youth."
"It has made you gloomy," Elizabeth said. "I think you would have
been truer to yourself if you had remained in Paris."
He reflected for a few moments, drinking his tea. He felt sombre
enough in his black clothes and black tie—dreary concessions to
conventionality.
"Ah, but I wanted to see you, Elizabeth," he said earnestly. "It's
terribly lonely without you."
She leaned forward and laid her hand lightly on his, with a soft,
caressing touch. "It's good of you to say that," she said, and then,
with a frank smile, "tell me, Humphrey, do you really miss me very
much?"
"I do," he said; and he began talking of himself and all that he did in
Paris. Elizabeth listened with an amused smile playing about her lips.
He told her of his work and his play, growing enthusiastic over Paris,
speaking with all the self-centredness of the egotist.
"It seems very pleasant," she said. "You are to be envied, I think.
You ought to be very happy: doing everything that you want to do;
occupying a good position in journalism."
He purred mentally under her praise. Already he felt better; her
presence stimulated him; but he could not see, nor understand, the
true Elizabeth, for the mists of vanity, ambition and selfishness
clouded his vision at that moment. If only he had forgotten himself
... if only he had asked her one question about herself and her work,
or shown the smallest interest in anything outside his own career, he
might have risen to great heights of happiness.
This was the second in which everything hung in the balance. He
saw Elizabeth lean her chin in the palm of her hand and contemplate
reflectively the distance beyond him. He marked the beauty of her
lower arm, bare to the rounded charm of the elbow, as it rested on
the curve of the arm-chair. So, he thought, would she sit in Paris,
and grace his life.
And then, suddenly, her face became grave, and she said, abruptly:
"Humphrey, I want to talk to you very seriously. I want to know
whether you will give up journalism."
He remembered her hint of this far back in the months when she
had first allowed him to tell her of his love. He had thought the
danger was past, but now she came to him, with a deliberate,
frontal attack on the very stronghold of his existence.
"Give up journalism!" he echoed. "What for?"
All the weapons of her sex were at her command. She might have
said, "For me"; she might have smiled and enticed and cajoled. But
she brushed these weapons aside disdainfully. Hers was the earnest
business of putting Humphrey to the test.
"Because I think you and I will never be happy together if you do
not. Because, if I marry you (he noticed she did not say, 'When I
marry you'), I should not want your work to occupy a larger place in
our lives than myself. Because I hate your work, and I think you can
do better things. Those are my reasons."
He stood up and walked to the window, looking out on the trees that
made an avenue of the quiet road. A man with a green baize
Welcome to our website – the perfect destination for book lovers and
knowledge seekers. We believe that every book holds a new world,
offering opportunities for learning, discovery, and personal growth.
That’s why we are dedicated to bringing you a diverse collection of
books, ranging from classic literature and specialized publications to
self-development guides and children's books.

More than just a book-buying platform, we strive to be a bridge


connecting you with timeless cultural and intellectual values. With an
elegant, user-friendly interface and a smart search system, you can
quickly find the books that best suit your interests. Additionally,
our special promotions and home delivery services help you save time
and fully enjoy the joy of reading.

Join us on a journey of knowledge exploration, passion nurturing, and


personal growth every day!

ebookmasss.com

You might also like