0% found this document useful (0 votes)
16 views63 pages

Principles and Practices in Programming - Tenth Edition by Andrew Troelsen Phillip Japikse ISBN 9781484269381, 1484269381install Download

The document provides information about the ebook 'Pro C# 9 with .NET 5: Foundational Principles and Practices in Programming - Tenth Edition' by Andrew Troelsen and Phillip Japikse, including its ISBN and links for download. It outlines the structure of the book, which is divided into eight parts covering various aspects of C# programming and .NET 5. Additionally, it mentions the availability of supplementary materials on GitHub and emphasizes the book's aim to equip readers with the necessary tools for programming in C#.

Uploaded by

yiqsgzqr9070
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views63 pages

Principles and Practices in Programming - Tenth Edition by Andrew Troelsen Phillip Japikse ISBN 9781484269381, 1484269381install Download

The document provides information about the ebook 'Pro C# 9 with .NET 5: Foundational Principles and Practices in Programming - Tenth Edition' by Andrew Troelsen and Phillip Japikse, including its ISBN and links for download. It outlines the structure of the book, which is divided into eight parts covering various aspects of C# programming and .NET 5. Additionally, it mentions the availability of supplementary materials on GitHub and emphasizes the book's aim to equip readers with the necessary tools for programming in C#.

Uploaded by

yiqsgzqr9070
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 63

(Ebook) Pro C# 9 with .

NET 5: Foundational
Principles and Practices in Programming - Tenth
Edition by Andrew Troelsen; Phillip Japikse ISBN
9781484269381, 1484269381install download

https://ebooknice.com/product/pro-c-9-with-net-5-foundational-
principles-and-practices-in-programming-tenth-edition-24685664

Download more ebook instantly today at https://ebooknice.com


Instant digital products (PDF, ePub, MOBI) ready for you
Download now and discover formats that fit your needs...

Start reading on any device today!

(Ebook) Pro C# 9 with .NET 5: Foundational Principles and Practices in Programming -


Tenth Edition by Andrew Troelsen; Phillip Japikse ISBN 9781484269381, 1484269381

https://ebooknice.com/product/pro-c-9-with-net-5-foundational-principles-and-
practices-in-programming-tenth-edition-24685666

ebooknice.com

(Ebook) Pro C# 9 with .NET 5: Foundational Principles and Practices in Programming


by Andrew Troelsen, Phillip Japikse ISBN 9781484269381, 1484269381

https://ebooknice.com/product/pro-c-9-with-net-5-foundational-principles-and-
practices-in-programming-36076246

ebooknice.com

(Ebook) Pro C# 10 with .NET 6: Foundational Principles and Practices in Programming


by Andrew Troelsen, Philip Japikse ISBN 9781484278680, 1484278682

https://ebooknice.com/product/pro-c-10-with-net-6-foundational-principles-and-
practices-in-programming-44480694

ebooknice.com

(Ebook) Pro C# 10 with .NET 6 : Foundational Principles and Practices in Programming


by Andrew Troelsen; Phil Japikse ISBN 9781484278697, 1484278690

https://ebooknice.com/product/pro-c-10-with-net-6-foundational-principles-and-
practices-in-programming-47148782

ebooknice.com
(Ebook) Pro C# 8 with .NET Core 3: Foundational Principles and Practices in
Programming - Ninth Edition by Andrew Troelsen, Phil Japikse ISBN 9781484257555,
1484257553

https://ebooknice.com/product/pro-c-8-with-net-core-3-foundational-principles-
and-practices-in-programming-ninth-edition-11829738

ebooknice.com

(Ebook) Pro C# 7 with .NET and .NET Core by Andrew Troelsen, Philip Japikse ISBN
9781484230183, 1484230183

https://ebooknice.com/product/pro-c-7-with-net-and-net-core-6794068

ebooknice.com

(Ebook) Pro C# 7: With .NET and .NET Core - Eighth Edition by Andrew Troelsen,
Philip Japikse ISBN 9781484230176, 9781484230183, 1484230175, 1484230183

https://ebooknice.com/product/pro-c-7-with-net-and-net-core-eighth-
edition-42922592

ebooknice.com

(Ebook) Pro C# 2008 and the .NET 3.5 Platform by Andrew Troelsen ISBN 9781590598849,
1590598849

https://ebooknice.com/product/pro-c-2008-and-the-net-3-5-platform-1116006

ebooknice.com

(Ebook) Pro C# 2010 and the .NET 4 platform by Andrew W Troelsen ISBN 9781430225492,
1430225491

https://ebooknice.com/product/pro-c-2010-and-the-net-4-platform-4106116

ebooknice.com
Andrew Troelsen and Phillip Japikse

Pro C# 9 with .NET 5


Foundational Principles and Practices in
Programming
10th ed.
Andrew Troelsen
Minneapolis, MN, USA

Phillip Japikse
West Chester, OH, USA

Any source code or other supplementary material referenced by the


author in this book is available to readers on GitHub via the book’s
product page, located at www.apress.com/9781484269381 . For
more detailed information, please visit www.apress.com/source-
code .

ISBN 978-1-4842-6938-1 e-ISBN 978-1-4842-6939-8


https://doi.org/10.1007/978-1-4842-6939-8

© Andrew Troelsen, Phillip Japikse 2021

This work is subject to copyright. All rights are solely and exclusively
licensed 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.

The use of general descriptive names, registered names, trademarks,


service marks, etc. in this publication does not imply, even in the
absence of a specific statement, that such names are exempt from the
relevant protective laws and regulations and therefore free for general
use.

The publisher, the authors and the editors are safe to assume that the
advice and information in this book are believed to be true and
accurate at the date of publication. Neither the publisher nor the
authors or the editors give a warranty, expressed or implied, with
respect to the material contained herein or for any errors or omissions
that may have been made. The publisher remains neutral with regard
to jurisdictional claims in published maps and institutional affiliations.

Distributed to the book trade worldwide by Apress Media, LLC, 1 New


York Plaza, New York, NY 10004, U.S.A. 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.
To my family, Amy, Conner, Logan, and Skylar, thank you for all of the
support and patience you have given me. Also, to my father (Cor); father,
husband, inventor, and my center of excellence.
—Phil
Introduction
We’re a Team That Includes You
Technology authors write for a demanding group of people (for the
best of possible reasons). You know that building software solutions
using any platform or language is extremely complicated and is specific
to your department, company, client base, and subject matter. Perhaps
you work in the electronic publishing industry, develop systems for the
state or local government, or work at NASA or a branch of the military.
Collectively, we have worked in a variety of industries, including
developing children’s educational software (Oregon Trail/Amazon
Trail), various enterprise systems, and projects within the medical and
financial industries. The chances are almost 100 percent that the code
you write at your place of employment has little to do with the code we
have authored over the years.
Therefore, in this book, we have deliberately chosen to avoid
creating demonstrations that tie the example code to a specific
industry or vein of programming. Given this, we explain C#, OOP, the
.NET Runtime, and the .NET Core base class libraries using industry-
agnostic examples. Rather than having every example fill a grid with
data, calculate payroll, or some other domain-specific task, we stick to
subject matter we can all relate to: automobiles (with some geometric
structures and employee payroll systems thrown in for good measure).
And that’s where you come in.
Our job is to explain the C# programming language and the core
aspects of the .NET 5 platform the best we possibly can. As well, we will
do everything we can to equip you with the tools and strategies you
need to continue your studies at this book’s conclusion.
Your job is to take this information and apply it to your specific
programming assignments. We obviously understand that your
projects most likely don’t revolve around automobiles with friendly pet
names (Zippy the BMW or a Yugo named Clunker, among others), but
that’s what applied knowledge is all about!
Rest assured, once you understand the topics and concepts
presented within this text, you will be in a perfect position to build
.NET 5 solutions that map to your own unique programming
environment.

An Overview of This Book


Pro C# 9 with .NET 5 is logically divided into eight distinct parts, each of
which contains a number of related chapters. Here is a part-by-part
and chapter-by-chapter breakdown of the text.
Part I: Introducing C# and .NET 5
The purpose of Part I is to acclimate you to the nature of the .NET 5
platform and various development tools used during the construction
of .NET 5 applications.
Chapter 1: Introducing C# and .NET (Core) 5
This first chapter functions as the backbone for the remainder of the
text. The primary goal of this chapter is to acquaint you with a number
of .NET Core–centric building blocks, such as the Common Language
Runtime (CLR), Common Type System (CTS), Common Language
Specification (CLS), and Base Class Libraries (BCL). Here, you will take
an initial look at the C# programming language, namespaces, and the
.NET 5 assembly format.
Chapter 2: Building C# Applications
The goal of this chapter is to introduce you to the process of compiling
C# source code files. After installing the .NET 5 SDK and runtimes, you
will learn about the completely free (and fully functional) Visual Studio
Community edition as well as the extremely popular (and also free)
Visual Studio Code. You learn how to create, run, and debug .NET 5 C#
applications using both Visual Studio and Visual Studio Code.
Part II: Core C# Programming
The topics presented in this part of the book are quite important
because you will use them regardless of which type of .NET 5 software
you intend to develop (e.g., web applications, desktop GUI applications,
code libraries, services, etc.). Here, you will learn about the
fundamental data types of .NET 5, work with text manipulation, and
learn the role of various C# parameter modifiers (including optional
and named arguments).
Chapter 3: Core C# Programming Constructs, Part 1
This chapter begins your formal investigation of the C# programming
language. Here, you will learn about the role of the Main() method,
top-level statements (new in C# 9.0), and numerous details regarding
the intrinsic data types of the .NET 5 platform and variable declaration.
You will work with and manipulate textual data using
System.String and System.Text.StringBuilder. You will also
examine iteration and decision constructs, pattern matching,
narrowing and widening operations, and the unchecked keyword.

Chapter 4: Core C# Programming Constructs, Part 2


This chapter completes your examination of the core aspects of C#,
beginning with creating and manipulating arrays of data. Next, you
examine how to construct overloaded type methods and define
parameters using the out, ref, and params keywords. You will also
learn about the enum type, structures, and nullable data types, and you
will understand the distinction between value types and reference
types. Finally, you will learn about tuples, a new feature in C# 7 and
updated in C# 8.
Part III: Object-Oriented Programming with C#
In this part, you will come to understand the core constructs of the C#
language, including the details of object-oriented programming. This
part will also examine how to process runtime exceptions and will dive
into the details of working with strongly typed interfaces. Finally, you
will learn about object lifetime and garbage collection.
Chapter 5: Understanding Encapsulation
This chapter begins your examination of object-oriented programming
(OOP) using the C# programming language. After you are introduced to
the pillars of OOP (encapsulation, inheritance, and polymorphism), the
remainder of this chapter will show you how to build robust class types
using constructors, properties, static members, constants, and read-
only fields. You will also learn about partial type definitions, object
initialization syntax, and automatic properties, and the chapter will
wrap up with an examination of record types, new in C# 9.0.
Chapter 6: Understanding Inheritance and Polymorphism
Here, you will examine the remaining pillars of OOP (inheritance and
polymorphism), which allow you to build families of related class
types. As you do this, you will examine the role of virtual methods,
abstract methods (and abstract base classes), and the nature of the
polymorphic interface. Then you will explore pattern matching with
the is keyword, and finally, this chapter will explain the role of the
ultimate base class of the .NET Core platform, System.Object.

Chapter 7: Understanding Structured Exception Handling


The point of this chapter is to discuss how to handle runtime
anomalies in your code base through the use of structured exception
handling. Not only will you learn about the C# keywords that allow you
to handle such problems (try, catch, throw, when, and finally),
but you will also come to understand the distinction between
application-level and system-level exceptions. In addition, this chapter
will show you how to set Visual Studio on break on all exceptions to
debug the exceptions that escape your notice.
Chapter 8: Working with Interfaces
The material in this chapter builds upon your understanding of object-
based development by covering the topic of interface-based
programming. Here, you will learn how to define classes and structures
that support multiple behaviors, how to discover these behaviors at
runtime, and how to selectively hide particular behaviors using explicit
interface implementation. In addition to creating a number of custom
interfaces, you will also learn how to implement standard interfaces
found within the .NET Core platform. You will use these to build objects
that can be sorted, copied, enumerated, and compared.
Chapter 9: Understanding Object Lifetime
The final chapter of this part examines how the CLR manages memory
using the .NET Core garbage collector. Here, you will come to
understand the role of application roots, object generations, and the
System.GC type. Once you understand the basics, you will examine
the topics of disposable objects (using the IDisposable interface)
and the finalization process (using the
System.Object.Finalize() method). This chapter will also
investigate the Lazy<T> class, which allows you to define data that
will not be allocated until requested by a caller. As you will see, this
feature can be helpful when you want to ensure you do not clutter the
heap with objects that are not actually required by your programs.
Part IV: Advanced C# Programming
This part of the book will deepen your understanding of the C#
language by walking you through a number of more advanced (but
important) concepts. Here, you will complete your examination of the
.NET Core type system by investigating collections and generics. You
will also examine a number of more advanced features of C# (e.g.,
extension methods, operator overloading, anonymous types, and
pointer manipulation). You will then examine delegates and lambda
expressions, take a first look at Language Integrated Query, and finish
the section with two chapters that focus on processes and
multithreaded/async programming.
Chapter 10: Collections and Generics
This chapter explores the topic of generics. As you will see, generic
programming gives you a way to create types and type members,
which contain various placeholders that can be specified by the caller.
In a nutshell, generics greatly enhance application performance and
type safety. Not only will you explore various generic types within the
System.Collections.Generic namespace, but you will also learn
how to build your own generic methods and types (with and without
constraints).
Chapter 11: Advanced C# Language Features
This chapter deepens your understanding of the C# programming
language by introducing you to a number of advanced programming
techniques. Here, you will learn how to overload operators and create
custom conversion routines (both implicit and explicit) for your types.
You will also learn how to build and interact with type indexers, as well
as work with extension methods, anonymous types, partial methods,
and C# pointers using an unsafe code context.
Chapter 12: Delegates, Events, and Lambda Expressions
The purpose of this chapter is to demystify the delegate type. Simply
put, a .NET Core delegate is an object that points to other methods in
your application. Using this type, you can build systems that allow
multiple objects to engage in a two-way conversation. After you have
examined the use of .NET Core delegates, you will then be introduced
to the C# event keyword, which you can use to simplify the
manipulation of raw delegate programming. You will wrap up this
chapter by investigating the role of the C# lambda operator (=>) and
exploring the connection between delegates, anonymous methods, and
lambda expressions.
Chapter 13: LINQ to Objects
This chapter begins your examination of Language Integrated Query
(LINQ). LINQ allows you to build strongly typed query expressions that
can be applied to a number of LINQ targets to manipulate data in the
broadest sense of the word. Here, you will learn about LINQ to Objects,
which allows you to apply LINQ expressions to containers of data (e.g.,
arrays, collections, and custom types). This information will serve you
well as you encounter a number of additional LINQ APIs throughout the
remainder of this book.
Chapter 14: Processes, AppDomains, and Load Contexts
Now that you have a solid understanding of assemblies, this chapter
dives deeper into the composition of a loaded .NET Core executable.
The goal of this chapter is to illustrate the relationship between
processes, application domains, and contextual boundaries. These
topics provide the proper foundation for Chapter 15, where you will
examine the construction of multithreaded applications.
Chapter 15: Multithreaded, Parallel, and Async Programming
This chapter examines how to build multithreaded applications and
illustrates a number of techniques you can use to author thread-safe
code. The chapter opens by revisiting the .NET delegate type to ensure
explaining a delegate’s intrinsic support for asynchronous method
invocations. Next, you will investigate the types within the
System.Threading namespace. The next section covers the Task
Parallel Library (TPL). Using the TPL, .NET developers can build
applications that distribute their workload across all available CPUs in
a wickedly simple manner. At this point, you will also learn about the
role of Parallel LINQ, which provides a way to create LINQ queries that
scale across multiple machine cores. The remainder of the chapter
covers creating nonblocking calls using the async/await keywords,
introduced in C# 5; local functions and generalized async return types,
both new in C# 7; and asynchronous streams, introduced in C# 8.
Part V: Programming with .NET Core Assemblies
Part V dives into the details of the .NET Core assembly format. Not only
will you learn how to deploy and configure .NET Core code libraries,
but you will also come to understand the internal composition of a
.NET Core binary image. This section explains the role of .NET Core
attributes and the role of resolving type information at runtime and the
role of the Dynamic Language Runtime (DLR) and the C# dynamic
keyword. The final chapter covers the syntax of Common Intermediate
Language (CIL) and the role of dynamic assemblies.
Chapter 16: Building and Configuring Class Libraries
At a high level, assembly is the term used to describe a binary file
created with a .NET Core compiler. However, the true story of .NET
Core assemblies is far richer than that. Here, you will learn how to build
and deploy assemblies and learn the difference between class libraries
and console applications and the difference between .NET Core and
.NET Standard class libraries. The final section covers the new options
available in .NET 5, such as single file executables and ready-to-run
publishing.
Chapter 17: Type Reflection, Late Binding, and Attribute-Based
Programming
This chapter continues your examination of .NET Core assemblies by
checking out the process of runtime type discovery using the
System.Reflection namespace. Using the types of this namespace,
you can build applications that can read an assembly’s metadata on the
fly. You will also learn how to load and create types at runtime
dynamically using late binding. The final topic of this chapter will
explore the role of .NET Core attributes (both standard and custom). To
illustrate the usefulness of each of these topics, the chapter shows you
how to construct an extendable application complete with snap-ins.
Chapter 18: Dynamic Types and the Dynamic Language Runtime
.NET 4.0 introduced a new aspect of the .NET runtime environment
called the Dynamic Language Runtime. Using the DLR and the C#
dynamic keyword, you can define data that is not truly resolved until
runtime. Using these features simplifies some complex .NET Core
programming tasks dramatically. In this chapter, you will learn some
practical uses of dynamic data, including how to leverage the .NET Core
reflection APIs in a streamlined manner, as well as how to
communicate with legacy COM libraries with a minimum of fuss and
bother.
Chapter 19: Understanding CIL and the Role of Dynamic Assemblies
The goal of the final chapter in this section is twofold. The first part
examines the syntax and semantics of CIL in much greater detail than
in previous chapters. The remainder of this chapter will cover the role
of the System.Reflection.Emit namespace. You can use these
types to build software that can generate .NET Core assemblies in
memory at runtime. Formally speaking, assemblies defined and
executed in memory are termed dynamic assemblies.
Part VI: File Handling, Object Serialization, and Data Access
By this point in the text, you have a solid handle on the C# language and
the details of the .NET Core assembly format. Part VI leverages your
newfound knowledge by exploring a number of commonly used
services found within the base class libraries, including file I/O, object
serialization, and database access using ADO.NET.
Chapter 20: File I/O and Object Serialization
The System.IO namespace allows you to interact with a machine’s
file and directory structure. Over the course of this chapter, you will
learn how to create (and destroy) a directory system
programmatically. You will also learn how to move data into and out of
various streams (e.g., file based, string based, and memory based). The
latter part of this chapter will examine the XML and JSON object
serialization services of the .NET Core platform. Simply put,
serialization allows you to persist the public state of an object (or a set
of related objects) into a stream for later use. Deserialization (as you
might expect) is the process of plucking an object from the stream into
memory for consumption by your application.
Chapter 21: Data Access with ADO.NET
This chapter covers database access using ADO.NET, the database API
for .NET Core applications. Specifically, this chapter will introduce you
to the role of .NET data providers and how to communicate with a
relational database using ADO.NET, which is represented by
connection objects, command objects, transaction objects, and data
reader objects. This chapter also begins the creation of the AutoLot
database, which will be enhanced in Chapters 22 and 23.
Part VII: Entity Framework Core
By this point in the text, you have a solid handle on the C# language and
the details of the .NET Core assembly format. Part VI leverages your
newfound knowledge by exploring a number of commonly used
services found within the base class libraries, including file I/O,
database access using ADO.NET, and database access using Entity
Framework Core.
Chapter 22: Introducing Entity Framework Core
This chapter introduces Entity Framework (EF) Core. EF Core is an
object-relational mapping (ORM) framework built on top of ADO.NET.
EF Core provides a way to author data access code using strongly typed
classes that directly map to your business model. Here, you will come
to understand the building blocks of EF Core, including DbContext,
entities, the specialized collection class DbSet<T>, and the
DbChangeTracker. Next, you will learn about query execution,
tracking versus nontracking queries, and some of the more notable
features of EF Core. The final piece of theory in this chapter is the EF
Core global tool for the .NET Core command-line interface (CLI).
Chapter 23: Build a Data Access Layer with Entity Framework Core
This chapter builds the AutoLot data access layer. It begins with
scaffolding the AutoLot database from Chapter 21 into a derived
DbContext and entity classes. Then the project and database are
updated to move to a code first approach. The entities are updated to
their final version, and a migration is created and executed to update
the database to match the entities. The final database change is to
create a migration for the stored procedure from Chapter 21 and a new
database view. Repositories are added for code encapsulation, and a
data initialization process is created. The final part of the chapter test
drives the data access layer using xUnit for automated integration
tests.
Part VIII: Windows Presentation Foundation
The initial desktop GUI API supported by the .NET platform was termed
Windows Forms. While this API is still fully supported, .NET 3.0
introduced programmers to an API called Windows Presentation
Foundation (WPF). Unlike Windows Forms, this framework integrates
a number of key services, including data binding, 2D and 3D graphics,
animations, and rich documents, into a single, unified object model.
This is all accomplished using a declarative markup grammar called
Extensible Application Markup Language (XAML). Furthermore, the
WPF control architecture provides a trivial way to restyle the look and
feel of a typical control radically using little more than some well-
formed XAML.
Chapter 24: Introducing Windows Presentation Foundation and
XAML
In this chapter, you will begin by examining the motivation behind the
creation of WPF (when there was already a desktop development
framework in .NET). Then, you will learn about the syntax of XAML and,
finally, take a look at the Visual Studio support for building WPF
applications.
Chapter 25: WPF Controls, Layouts, Events, and Data Binding
This chapter will expose you to the process of using intrinsic WPF
controls and layout managers. For example, you will learn to build
menu systems, splitter windows, toolbars, and status bars. This
chapter will also introduce you to a number of WPF APIs (and their
related controls), including the Ink API, commands, routed events, the
data-binding model, and dependency properties.
Chapter 26: WPF Graphics Rendering Services
WPF is a graphically intensive API; given this fact, WPF provides three
ways to render graphics: shapes, drawings and geometrics, and visuals.
In this chapter, you will evaluate each option and learn about a number
of important graphics primitives (e.g., brushes, pens, and
transformations) along the way. This chapter will also examine ways to
incorporate vector images into your WPF graphics, as well as how to
perform hit-testing operations against graphical data.
Chapter 27: WPF Resources, Animations, Styles, and Templates
This chapter will introduce you to three important (and interrelated)
topics that will deepen your understanding of the Windows
Presentation Foundation API. The first order of business is to learn the
role of logical resources. As you will see, the logical resource (also
termed an object resource) system provides a way for you to name and
refer to commonly used objects within a WPF application. Next, you
will learn how to define, execute, and control an animation sequence.
Despite what you might be thinking, however, WPF animations are not
limited to the confines of video games or multimedia applications. You
will wrap up the chapter by learning about the role of WPF styles.
Similar to a web page that uses CSS or the ASP.NET theme engine, a
WPF application can define a common look and feel for a set of
controls.
Chapter 28: WPF Notifications, Validations, Commands, and MVVM
This chapter begins by examining three core WPF framework
capabilities: notifications, validations, and commands. In the
notifications section, you will learn about observable models and
collections and how they keep your application data and UI in sync.
Next, you will dig deeper into commands, building custom commands
to encapsulate your code. In the validations section, you will learn how
to use the several validation mechanisms available in WPF
applications. The chapter closes with an examination of the Model-
View-ViewModel (MVVM) pattern and ends by creating an application
that demonstrates the MVVM pattern in action.
Part IX: ASP.NET Core
Part VIII is devoted to an examination of constructing web applications
using ASP.NET Core. ASP.ENT Core can be used to build web
applications and RESTful services.
Chapter 29: Introducing ASP.NET Core
This chapter introduces ASP.NET Core and the Model-View-Controller
(MVC) pattern. The next section lists (and explains) features brought
forward into ASP.NET Core from classic ASP.NET MVC/WebAPI. These
include controllers and actions, model binding, routing, and filters. The
next section covers new features introduced in ASP.NET Core, including
built-in dependency injection, cloud-ready, environmentally aware
configuration system, deployment patterns, and the HTTP request
pipeline. The rest of the chapter creates the two ASP.NET Core projects
that will be finished in the next two chapters, shows the options to run
ASP.NET Core applications, and begins the configuration process of the
two ASP.NET Core projects.
Chapter 30: RESTful Services with ASP.NET Core
This chapter finishes the ASP.NET Core RESTful service application.
The chapter begins with a demonstration of the different mechanisms
for returning JSON results to a client and the built-in support for
service applications provided by the ApiController attribute.
Swagger/OpenAPI is added next to provide a platform for testing and
documenting your service. The rest of the chapter builds the
controllers for the application, as well as creating the exception filter.
Chapter 31: MVC Applications with ASP.NET Core
This is the final chapter covering ASP.NET Core and finishes the MVC-
based web application. The chapter starts with a deep look in views
and the Razor View Engine, including layouts and partials. Next, tag
helpers (another new feature in ASP.NET Core) are explored, followed
by managing client-side libraries and bundling/minification of those
libraries. Next, the CarsController and its views are built, along
with the custom tag helpers. A view component is added for the data-
driven menu, and the options pattern is explored. Finally, an HTTP
client service wrapper is created, and CarsController updated to
use the ASP.NET Core service instead of the AutoLot data access layer.
Acknowledgments
I want to thank Apress and the entire team involved in writing this
book. As I’ve come to expect with all of my books for Apress, I am very
impressed with the dedication and level of support we received during
the writing process. I want to thank you, the reader, for reading this
book and hope that you will find it as helpful in your career as it has
been in mine. Lastly, I couldn’t have done this without my family and
the support I’ve had from them. Between reading my work and
proofing it and your understanding of the time involved, I couldn’t have
done it without you! Love you all!

—Phillip Japikse
Table of Contents
Part I: Introducing C# and .NET 5
Chapter 1:​Introducing C# and .​NET (Core) 5
Exploring Some Key Benefits of the .​NET Core Platform
Understanding the .​NET Core Support Lifecycle
Previewing the Building Blocks of the .​NET Core Platform (.​NET
Runtime, CTS,and CLS)
The Role of the Base Class Libraries
What C# Brings to the Table
Managed vs.​Unmanaged Code
Using Additional .​NET Core–Aware Programming Languages
Getting an Overview of .​NET Assemblies
The Role of the Common Intermediate Language
Benefits of CIL
Compiling CIL to Platform-Specific Instructions
The Role of .​NET Core Type Metadata
The Role of the Assembly Manifest
Understanding the Common Type System
CTS Class Types
CTS Interface Types
CTS Structure Types
CTS Enumeration Types
CTS Delegate Types
CTS Type Members
Intrinsic CTS Data Types
Understanding the Common Language Specification
Ensuring CLS Compliance
Understanding the .​NET Core Runtime
Distinguishing Between Assembly, Namespace, and Type
Accessing a Namespace Programmatically​
Referencing External Assemblies
Exploring an Assembly Using ildasm.​exe
Summary
Chapter 2:​Building C# Applications
Installing .​NET 5
Understanding the .​NET 5 Version Numbering Scheme
Confirming the .​NET 5 Install
Building .​NET Core Applications with Visual Studio
Installing Visual Studio 2019 (Windows)
Taking Visual Studio 2019 for a Test-Drive
Building .​NET Core Applications with Visual Studio Code
Taking Visual Studio Code for a Test-Drive
Finding the .​NET Core and C# Documentation
Summary
Part II: Core C# Programming
Chapter 3:​Core C# Programming Constructs, Part 1
Breaking Down a Simple C# Program
Using Variations of the Main() Method (Updated 7.​1)
Using Top-Level Statements (New 9.​0)
Specifying an Application Error Code (Updated 9.​0)
Processing Command-Line Arguments (Updated 9.​0)
Specifying Command-Line Arguments with Visual Studio
An Interesting Aside:​Some Additional Members of the System.​
Environment Class
Using the System.​Console Class
Performing Basic Input and Output (I/​O) with the Console
Class
Formatting Console Output
Formatting Numerical Data
Formatting Numerical Data Beyond Console Applications
Working with System Data Types and Corresponding C#
Keywords
Understanding Variable Declaration and Initialization
Using Intrinsic Data Types and the new Operator (Updated
9.​0)
Understanding the Data Type Class Hierarchy
Understanding the Members of Numerical Data Types
Understanding the Members of System.​Boolean
Understanding the Members of System.​Char
Parsing Values from String Data
Using TryParse to Parse Values from String Data
Using System.​DateTime and System.​TimeSpan
Working with the System.​Numerics Namespace
Using Digit Separators (New 7.​0)
Using Binary Literals (New 7.​0/​7.​2)
Working with String Data
Performing Basic String Manipulation
Performing String Concatenation
Using Escape Characters
Performing String Interpolation
Defining Verbatim Strings (Updated 8.​0)
Working with Strings and Equality
Strings Are Immutable
Using the System.​Text.​StringBuilder Type
Narrowing and Widening Data Type Conversions
Using the checked Keyword
Setting Project-wide Overflow Checking
Setting Project-wide Overflow Checking (Visual Studio)
Using the unchecked Keyword
Understanding Implicitly Typed Local Variables
Declaring Numerics Implicitly
Understanding Restrictions on Implicitly Typed Variables
Implicit Typed Data Is Strongly Typed Data
Understanding the Usefulness of Implicitly Typed Local
Variables
Working with C# Iteration Constructs
Using the for Loop
Using the foreach Loop
Using Implicit Typing Within foreach Constructs
Using the while and do/​while Looping Constructs
A Quick Discussion About Scope
Working with Decision Constructs and the Relational/​Equality
Operators
Using the if/​else Statement
Using Equality and Relational Operators
Using if/​else with Pattern Matching (New 7.​0)
Making Pattern Matching Improvements (New 9.​0)
Using the Conditional Operator (Updated 7.​2, 9.​0)
Using Logical Operators
Using the switch Statement
Performing switch Statement Pattern Matching (New 7.​0,
Updated 9.​0)
Using switch Expressions (New 8.​0)
Summary
Chapter 4:​Core C# Programming Constructs, Part 2
Understanding C# Arrays
Looking at the C# Array Initialization Syntax
Understanding Implicitly Typed Local Arrays
Defining an Array of Objects
Working with Multidimensional​Arrays
Using Arrays As Arguments or Return Values
Using the System.​Array Base Class
Using Indices and Ranges (New 8.​0)
Understanding Methods
Understanding Expression-Bodied Members
Understanding Local Functions (New 7.​0, Updated 9.​0)
Understanding Static Local Functions (New 8.​0)
Understanding Method Parameters
Understanding Method Parameter Modifiers
Understanding the Default Parameter-Passing Behavior
Using the out Modifier (Updated 7.​0)
Using the ref Modifier
Using the in Modifier (New 7.​2)
Using the params Modifier
Defining Optional Parameters
Using Named Arguments (Updated 7.​2)
Understanding Method Overloading
Understanding the enum Type
Controlling the Underlying Storage for an enum
Declaring enum Variables
Using the System.​Enum Type
Dynamically Discovering an enum’s Name-Value Pairs
Using Enums, Flags, and Bitwise Operations
Understanding the Structure (aka Value Type)
Creating Structure Variables
Using Read-Only Structs (New 7.​2)
Using Read-Only Members (New 8.​0)
Using ref Structs (New 7.​2)
Using Disposable ref Structs (New 8.​0)
Understanding Value Types and Reference Types
Using Value Types, Reference Types, and the Assignment
Operator
Using Value Types Containing Reference Types
Passing Reference Types by Value
Passing Reference Types by Reference
Final Details Regarding Value Types and Reference Types
Understanding C# Nullable Types
Using Nullable Value Types
Using Nullable Reference Types (New 8.​0)
Operating on Nullable Types
Understanding Tuples (New/​Updated 7.​0)
Getting Started with Tuples
Using Inferred Variable Names (Updated 7.​1)
Understanding Tuple Equality/​Inequality (New 7.​3)
Understanding Tuples as Method Return Values
Understanding Discards with Tuples
Understanding Tuple Pattern Matching switch Expressions
(New 8.​0)
Deconstructing Tuples
Summary
Part III: Object Oriented Programming with C#
Chapter 5:​Understanding Encapsulation
Introducing the C# Class Type
Allocating Objects with the new Keyword
Understanding Constructors
Understanding the Role of the Default Constructor
Defining Custom Constructors
Understanding the Default Constructor Revisited
Understanding the Role of the this Keyword
Chaining Constructor Calls Using this
Observing Constructor Flow
Revisiting Optional Arguments
Understanding the static Keyword
Defining Static Field Data
Defining Static Methods
Defining Static Constructors
Defining Static Classes
Importing Static Members via the C# using Keyword
Defining the Pillars of OOP
Understanding the Role of Encapsulation
Understanding the Role of Inheritance
Understanding the Role of Polymorphism
Understanding C# Access Modifiers (Updated 7.​2)
Using the Default Access Modifiers
Using Access Modifiers and Nested Types
Understanding the First Pillar:​C#’s Encapsulation Services
Encapsulation Using Traditional Accessors and Mutators
Encapsulation Using Properties
Using Properties Within a Class Definition
Properties Read-Only Properties
Properties Write-Only Properties
Mixing Private and Public Get/​Set Methods on Properties
Revisiting the static Keyword:​Defining Static Properties
Pattern Matching with Property Patterns (New 8.​0)
Understanding Automatic Properties
Interacting with Automatic Properties
Properties Automatic Properties and Default Values
Initializing Automatic Properties
Understanding Object Initialization
Looking at the Object Initialization Syntax
Another Random Scribd Document
with Unrelated Content
Fig. 423. Cetraria islandica. Querschnitt durch den Thallus. or
Rindenschicht der Oberseite, ur der Unterseite, m Markschicht mit den
grünen Algenzellen von Cystococcus humicola. Vergr. 272.

Fig. 424. Parmelia physodes. Soral (a) und Soredium (b). Nach BITTER
und NIENBURG.

Die Flechten sind in großer Artenzahl über die ganze Erde verbreitet; selbst in den Polarländern
und auf den höchsten Berggipfeln dringen sie viel weiter vor als die Moose. Ihre Hauptentwicklung
erfahren sie in feuchten Gebirgsregionen, wo sie oft in geselliger Vegetation den Boden, die
Felsblöcke und Baumstämme überziehen oder in Form langer Bärte massenhaft von den Baumästen
herabhängen. In der Arktis bilden sie auf trockenem Boden ausgedehnte Flechtentundren.
Die einfachsten Flechten sind die F a d e n f l e c h t e n; sie bestehen aus Algenfäden, die
der Länge nach von Pilzhyphen umsponnen sind. Als Beispiel sei Ephebe pubescens genannt,
deren vielästige verzweigte Fäden an feuchten Felsen in Form schwärzlicher Filzlager
auftreten.
Sodann unterscheidet man G a l l e r t f l e c h t e n, mit gallertigem, laubartigem Lager. Ihre
Algen sind Chroococcaceen und Nostocaceen mit aufquellenden Membranen. In der
Algengallerte verlaufen die Pilzhyphen. Von einheimischen Gattungen gehört z. B. Collema
hierher.
Sowohl bei den Faden- als Gallertflechten sind Algen und Pilzhyphen gleichmäßig im
Thallus verteilt, und dieser wird daher als ungeschichtet oder h o m ö o m e r bezeichnet. Die
Algen bestimmen hier in erster Linie seine Form.
Die übrigen Flechten weisen dagegen einen geschichteten oder h e t e r o m e r e n Thallus
auf. Die Flechtenalgen, unter denen die einzellige Protococcacee Cystococcus humicola die
häufigste, von fadenförmigen die zu den Ulotrichales gehörige Trentepohlia umbrina zu
nennen ist, treten hier in S c h i c h t e n auf, die von einer aus dicht verflochtenen Pilzhyphen
bestehenden R i n d e n s c h i c h t bedeckt werden (Fig. 423). Man unterscheidet unter den
heteromeren Flechten K r u s t e n f l e c h t e n, deren Thallus in Form von Krusten an
Baumstämmen, an Felsen oder auf dem Erdboden festgewachsen ist oder mittels Pilzhyphen
etwas in das Substrat eindringt; ferner L a u b f l e c h t e n (Fig. 428), deren Thallus laubartig,
klein- oder großlappig ist und auf der Unterseite entweder nur in der Mitte oder bis auf die
freien Ränder mittels rhizoïdartiger Pilzhyphen (Rhizinen) angewachsen ist; endlich
S t r a u c h f l e c h t e n (Fig. 425, 427), mit verzweigtem, fadenförmigem oder bandförmigem,
an der Basis angeheftetem, zuweilen auch frei auf dem Substrat liegendem Thallus.
Das Wachstum der Flechtenthalli ist im allgemeinen ein recht langsames. So beträgt der
jährliche Zuwachs an den Thalluslappen gewisser Laubflechten nur wenige Millimeter;
Parmelia furfuracea erreicht bei günstiger Belichtung in 10 Jahren nur einen Durchmesser von
31 × 60 mm[395].
An den natürlichen Standorten entwickeln sich die Flechtenpilze nur dann aus ihren Sporen
weiter, wenn sie die ihnen zusagenden Algenzellen zur Verfügung haben. Nur für wenige
Flechten ist festgestellt, daß ihr Pilz auch ohne Algen in der Natur existenzfähig ist, so für die
tropische Cora pavonia (Fig. 433), deren Pilz zu den Basidiomyceten gehört und auch
algenfreie Fruchtkörper erzeugen kann, die denen der Pilzgattung Thelephora gleichen. Wohl
aber ist es gelungen, aus den Sporen gewisser flechtenbildender Askomyceten unter Zufuhr
geeigneter Nährlösung Myzelien zur Entwicklung zu bringen.
Fig. 425. Usnea florida. ap Apothecium. Nat. Gr.
Fig. 426. Cetraria islandica. ap Apothecium. Nat. Gr. — O f f i z i n e l l .

Viele Flechten vermehren sich vegetativ dadurch, daß Teile des Thallus sich lostrennen und
wieder mit Rhizinen festsetzen. Die meisten heteromeren Flechten besitzen ferner in der
Bildung von S o r e d i e n ein ausgezeichnetes Mittel vegetativer Vermehrung: Kleine Gruppen
von sich teilenden Algenzellen werden dicht von Myzelfäden umsponnen, lösen sich los und
bilden Körperchen, die unter Aufreißen von Thallusrinde als staubartige Masse frei werden,
um durch den Wind verbreitet, anderswo wieder zu einer Flechte heranzuwachsen. Häufig
entstehen die Soredien am Thallus in scharf umschriebenen Brutstätten, den S o r a l e n (Fig.
424, 427).
Im Flechtenthallus f r u k t i f i z i e r e n nur die Flechtenpilze, nicht aber die stets vegetativ
bleibenden Flechtenalgen.

Nur bei einigen Gattungen (Endocarpon) finden sich besondere klein ausgebildete Algenzellen
auch in den Früchten vor, werden mit den Sporen gemeinsam ausgeworfen und von den
Keimschläuchen des Flechtenpilzes alsbald umsponnen.

1. Ascolichenes. Nur wenige Flechtengattungen haben k r u g f ö r m i g e P e r i t h e c i e n; ihre


Pilze gehören daher zu den Pyrenomyceten, so die Laubflechte Endocarpon, die Krustenflechte
Verrucaria. Die meisten Gattungen aber besitzen s c h ü s s e l - o d e r s c h e i b e n f ö r m i g e
A p o t h e c i e n, die wie die Fruchtkörper der Diskomyceten gebaut sind. Von Strauchflechten gehört
hierher als eine der häufigsten Arten die an Baumstämmen festsitzende Usnea florida, die Bartflechte,
mit großen, am Rande bewimperten Apothecien (Fig. 425); die breit bandförmige, verzweigte, an
Bäumen wachsende Ramalina fraxinea; ferner die an Küstenfelsen der warmen Zone verbreiteten
Roccella-Arten mit gabelig verzweigtem, drehrundem oder bandförmigem Thallus (Fig. 427). Eine
Mittelstellung zwischen Strauch- und Blattflechten nimmt die auf den Gebirgen und im Norden der
nördlichen Hemisphäre weitverbreitete o f f i z i n e l l e Cetraria islandica, das isländische Moos (Fig.
426), ein, mit gegabelten, blattartigen Thalluslappen, welche braun, auf der Unterseite weißlich
gefärbt sind und die Apothecien an ihren Rändern tragen. Zu den Laubflechten gehören die
zahlreichen, an Bäumen und Felsen wachsenden Arten von Parmelia (Fig. 428). Eine eigenartige
Krustenflechte ist die Schriftflechte, Graphis scripta, deren grauweißer Thallus auf Rinde, besonders
von Buchen, lebt und deren Apothecien die Form von schwarzen schmalen, strichförmigen oder
gegabelten, an Schriftzüge erinnernden Rinnen haben.
Fig. 427. Roccella tinctoria DC. Kanarische Inseln. Mit randständigen Soralen. Nach WIESNER, Rohstoffe.
Fig. 428. Parmelia acetabulum, an Bäumen. Nach REINKE.

Eine besondere Entwicklung erfährt der Flechtenthallus bei der vielgestaltigen erdbewohnenden
Gattung Cladonia. Auf einem aus horizontalen, dem Substrat aufsitzenden, gekerbten Schüppchen
bestehenden primären Thallus erheben sich vertikale Gebilde (Podetien) von sehr verschiedener
Gestalt und Größe. Sie sind bei manchen Arten, so bei Cladonia pyxidata, der Becherflechte, und bei
Cladonia coccifera (Fig. 429) gestielt kreiselförmig und tragen am Becherrand oder seinen
Aussprossungen, die bei ersterer Art braunen, bei letzterer roten rundlichen Apothecien. Bei anderen
Arten sind die Podetien zylindrisch, einfach oder gegabelt; bei Cladonia rangiferina, der
Renntierflechte, die über die ganze Erde verbreitet ist und rasenbildend in den nordischen Tundren
auftritt, sind die Podetien (Fig. 430) zierlich verästelt; ihr Primärthallus geht frühzeitig zugrunde.
Fig. 429. Cladonia coccifera. t Fig. 430. Cladonia rangiferina. A Steril. B Mit Askusfrüchtchen
Thallusschüppchen. Nat. Gr. an den Astenden. Nat. Gr.

Die A s k u s f r ü c h t e, Apothecien und Perithecien, nehmen, wie zuerst S t a h l und in neuerer


Zeit besonders BAUR[396] nachgewiesen hat, ihren Ursprung aus befruchteten K a r p o g o n e n,
weiblichen Sexualorganen, die im jungen Thallus oft in sehr großer Anzahl angelegt werden. Das
K a r p o g o n (Fig. 431) ist hier ein vielzelliger, im unteren Teile mehrfach schraubig gewundener
Faden, der sich in ein langzelliges, mit seiner Spitze aus dem Thallus hervorragendes T r i c h o g y n
fortsetzt. Die Zellen enthalten je einen Kern, führen im unteren Teile des Karpogons dichteres Plasma
und sind durch Tüpfel verbunden. Abgesehen von der Vielzelligkeit erinnern diese Gebilde an die
Karpogone der Florideen. Als männliche Sexualzellen erscheinen die in krugförmigen Behältern, den
S p e r m o g o n i e n (Fig. 432), erzeugten S p e r m a t i e n, deren Entwicklung auf verschiedene Art
erfolgt[397]. Entweder ist die Innenwand der Spermogoniumhöhlung mit einfachen oder verzweigten
Hyphenästen ausgekleidet, die an ihren Enden die Spermatienzellen abgliedern (Peltigera, Parmelia),
oder das Spermogonium ist anfangs von Hyphengewebe dicht erfüllt, später aber durch dessen
Auseinanderweichen von Hohlräumen durchsetzt, aus deren Wandzellen die Spermatien auf sehr
kleinen und dünnen Stielchen hervorsprossen (Anaptychia, Physcia, Sticta). Die Spermatien werden,
in Schleimmassen eingebettet, aus ihren Behältern entleert, kopulieren mit den klebrigen Spitzen der
Trichogyne (Fig. 431 B) und erscheinen dann leer, ohne Kern; darauf kollabieren die Zellen des
Trichogyns, gehen später zugrunde, während die mittleren Zellen des schraubigen Karpogons
anschwellen, sich auch noch weiter teilen und nun zu den askogenen Hyphen aussprossen, die an
ihren Enden die Asci bilden. Die vegetativen Hyphen und die Paraphysen der Früchte entspringen aus
den unter dem Karpogon befindlichen Hyphen. Entweder nur ein oder auch mehrere Karpogone
zusammen liefern eine Frucht. Das Verhalten der Sexualkerne bedarf noch eingehender
Untersuchung. Solche Karpogone sind bereits bei manchen Gattungen als Anlage der Früchte
nachgewiesen, indessen erscheinen sie bei einigen (Peltigera, Solorina) reduziert und besitzen kein
Trichogyn mehr; diese Flechten sind anscheinend apogam geworden. Spermogonien werden bei
ihnen überhaupt nicht mehr gebildet, oder sind, wie bei Nephromium, deutlich in Rückbildung
begriffen. Von A. MÖLLER wurde festgestellt, daß die Spermatien auch vegetativ auskeimen können;
indessen kann dies nicht als Beweis gegen die ursprünglich sexuelle Natur dieser Gebilde gelten, da
es sich möglicherweise um Funktionswechsel handelt.
Fig. 431. Collema crispum. A Karpogon c
mit Trichogyn t. Vergr. 405. B Spitze des
Trichogyns mit Spermatium s. Vergr.
1125. Nach E. BAUR.
Fig. 432. Anaptychia ciliaris. Reifes Spermogonium. Vergr. 192. Die runden Zellen im
Thallusgewebe stellen die grünen Algenzellen vor. Nach GLÜCK.

Sehr merkwürdig verhält sich nach F. BACHMANN Collema pulposum. Die Spermatien entstehen hier
im Innern des Thallus zu wenigen gruppenweise an den Hyphen und lösen sich nicht ab; die langen
Endzellen der Trichogyne bleiben im Thallus, wachsen auf sie zu und fusionieren mit ihnen[398].

2. Basidiolichenes (Hymenolichenes)[399]. Als Typus der Basidiolichenen ist die in den Tropen
weitverbreitete, auf dem Erdboden oder an Bäumen lebende Cora pavonia zu nennen. Der Pilz der
Cora ist eine T h e l e p h o r e e (vgl. S. 405), deren halbkreisförmige, gelappte, dachziegelartig
gruppierte Fruchtkörper auch ganz ohne Algen gefunden werden. Tritt der Pilz in Symbiose mit
einzelligen Chroococcusalgen, so resultiert als Fruchtkörper die typische Cora pavonia (Fig. 433), die
wie ein Thelephorafruchtkörper auf ihrer Unterseite ein durch Risse gefeldertes Basidienhymenium
entwickelt. Tritt dagegen derselbe Pilz mit den Fäden der blaugrünen Alge Scytonema in Symbiose, so
bildet sich, wenn der Pilz überwiegt, die Flechte zu strahlig fädigen, an Baumästen abstehenden
Scheiben mit dem Hymenium auf der Unterseite aus (Dictyonema-Form), und wenn die Alge
formbestimmend ist, in Form von feinfädigen filzigen Überzügen auf Baumrinde mit unregelmäßigen,
an den vom Lichte abgewandten Stellen des Thallus erscheinenden Hymenien (Laudatea-Form).
Fig. 433. Cora pavonia. A Von oben. B Von unten. hym Hymenium.
Nat. Gr.

O f f i z i n e l l ist Cetraria islandica, L i c h e n i s l a n d i c u s (Pharm. germ., austr., helv.), die beim


Kochen die bittere Licheningallerte liefert. Als Volksmittel wird auch noch die Lungenflechte Lobaria
pulmonaria (Muscus pulmonarius), die stattlichste einheimische, an Bäumen wachsende Laubflechte,
gebraucht.
Die Mannaflechte, Lecanora esculenta, ist eine ursprünglich auf Gestein lebende alpine
Krustenflechte des Orients. Sie zerfällt in Stücke, die zu kugeligen Knollen von 7–12 mm Durchmesser
heranwachsen und vom Winde weithin in die Steppen und Wüsten Südrußlands, Kleinasiens und
Nordafrikas verbreitet werden. Hier dienen sie den Eingeborenen als N a h r u n g s m i t t e l, den
Tartaren zur Bereitung von Erdbrot. Auch Cetraria islandica (Fig. 426) kann nach Auswässerung ihrer
Bitterstoffe wegen ihres reichen Gehalts an Kohlehydraten (Flechtenstärke) als Nahrungsmittel zu
Brot und zu Gallerte verwendet werden. Cladonia rangiferina (Fig. 430) bildet die wichtigste Nahrung
der Renntiere, kann auch nach Entbitterung als Futter für Vieh und Geflügel benutzt werden und
dient in Norwegen zur Gewinnung von Alkohol. In Japan wird eine an Stärke und Gallerte reiche
felsbewohnende Laubflechte, Gyrophora esculenta, mit kreisrundem, 3–13 cm großem, in der Mitte
dem Substrat angewachsenem bräunlichen Thallus, als wohlschmeckendes Nahrungsmittel viel
benutzt.
Einige an Flechtensäuren besonders reiche Arten werden zur Darstellung der Farbstoffe
O r s e i l l e, P e r s i o, f r a n z ö s i s c h e r P u r p u r und L a c k m u s verwertet, in erster Linie Roccella-
Arten (besonders R. Montagnei, R. tinctoria (Fig. 427), R. fuciformis und R. phycopsis, die an
Küstenfelsen wärmerer Länder wachsen, ferner die Krustenflechte Ochrolechia tartarea im nördlichen
Europa und Amerika.
II. Bryophyta, Moospflanzen[288], [400], [401]–[425]
.

Die Moospflanzen umfassen die Lebermoose (Hepaticae) und die Laubmoose (Musci). Sie sind in
ihrer äußeren Gliederung zwar noch Thallophyten, unterscheiden sich aber von diesen durch den
eigenartigen Bau ihrer Geschlechtsorgane, der A n t h e r i d i e n und A r c h e g o n i e n, die in ähnlicher
Ausbildung auch bei den Pteridophyten wiederkehren. Bryophyten und Pteridophyten werden daher den
Thallophyten gegenüber auch als Archegoniaten bezeichnet.
Außer der sexuellen Fortpflanzung findet allgemein bei den Moosen wie auch bei den Pteridophyten
eine ungeschlechtliche durch einzellige, mit Membran umkleidete, an die Verbreitung in der Luft
angepaßte S p o r e n statt. Beide Fortpflanzungsweisen wechseln stets miteinander ab und sind auf zwei
scharf geschiedene Generationen verteilt, eine geschlechtliche (G a m e t o p h y t), welche die
Sexualorgane erzeugt, und eine ungeschlechtliche (S p o r o p h y t), welche die Sporen hervorbringt. Die
geschlechtliche Generation geht aus der Spore hervor, die ungeschlechtliche aus der befruchteten
Eizelle. Die Zahl der Chromosomen der Zellkerne ist im Sporophyt doppelt so groß als im Gametophyt.
Bei der Vereinigung der Sexualkerne wird die doppelte Chromosomenzahl gewonnen, bei der Teilung
der Sporenmutterzellen dagegen die Reduktion auf die Hälfte vollzogen. Dieser regelmäßige
G e n e r a t i o n s w e c h s e l ist charakteristisch für alle Archegoniaten. Bei den Bryophyten stellt die
Moospflanze den haploiden Gametophyten, die gestielte Sporenkapsel den diploiden Sporophyten dar;
bei den Pteridophyten ist der Gametophyt eine kleine Thalluspflanze, der Sporophyt hingegen ein
stattlicher Kormophyt.
Fig. 434. Funaria hygrometrica. A Keimende Spore, ex Exine. B Protonema mit Knospen kn und Rhizoïden r,
s Spore. Vergrößert. Nach MÜLLER-THURGAU.

Die die g e s c h l e c h t l i c h e G e n e r a t i o n liefernde Spore, deren Wand aus zwei Häuten, einer
äußeren kutinisierten Exine und einer inneren zarten Intine besteht, keimt unter Sprengung ihrer Exine
zu einem Schlauche aus, der bei den Lebermoosen alsbald an seinem vorderen Ende zur Ausbildung der
Moospflanze schreitet, während er bei den meisten Laubmoosen zunächst ein aus verzweigten Zellfäden
bestehendes P r o t o n e m a erzeugt. Dieses gliedert sich in chlorophyllführende aufwärts wachsende
Fäden und in farblose, in den Boden eindringende R h i z o ï d e n (Fig. 434). An dem Protonema
entstehen aus seitlichen Knospen die beblätterten M o o s p f l a n z e n. Protonema und Moospflanze
stellen aber, auch wo sie in solcher Weise voneinander abgesetzt sind, nur die eine, geschlechtliche
Generation der Pflanze vor. Alle Moose wachsen mittels Scheitelzellen heran (S. 70). Viele Lebermoose
weisen noch einen aus dichotomisch verzweigten Lappen bestehenden Thallus (Fig. 448 u. 449) auf, der
an seiner Basis oder an seiner Unterseite mittels Rhizoïden festgeheftet ist; sie wiederholen somit den
vegetativen Aufbau mancher Algen. Bei höheren Lebermoosen und bei allen Laubmoosen ist dagegen
eine scharfe Gliederung der Pflanze in Stämmchen und kleine Blättchen durchgeführt (Fig. 451 u. 458).
An den unteren Teilen der Stämmchen entspringen Rhizoïden; echte Wurzeln fehlen den Moosen, die
sich somit in ihrer äußeren Gestaltung nicht über die Stufe eines r e i c h g e g l i e d e r t e n T h a l l u s
erheben, wie wir ihn beispielsweise bei Sargassum unter den Braunalgen antreffen. Die
Moosstämmchen und Blätter sind von einfacher anatomischer Struktur; sie werden, wenn überhaupt,
nur von sehr einfachen, aus gestreckten Zellen gebildeten Leitbündeln durchzogen. Die Sexualorgane,
Antheridien und Archegonien entspringen, in der Regel zu mehreren, bei thallösen Formen dem Rücken
des Thallus, bei den in Stengel und Blätter gegliederten Formen auf dem Scheitel des Stämmchens oder
seiner Äste.
Die A n t h e r i d i e n[401] (Fig. 435) oder männlichen Organe sind auf einem mehrzelligen Stiele
sitzende, kugelige oder keulenförmige Gebilde, deren dünne, meist einschichtige Wandung zahlreiche
kleine kubische Zellen umschließt, von denen eine jede sich schließlich in zwei Spermienzellen diagonal
oder quer teilt[402]. Das Öffnen des Antheridiums vollzieht sich bei den Laubmoosen an seiner Spitze in
einer aus einer oder mehreren Zellen bestehenden besonderen Öffnungskappe, deren schleimhaltiger
Inhalt aufquillt und so die Kutikula aufsprengt (Fig. 440 A); bei den Lebermoosen ist die Kappe nicht
scharf abgegrenzt, die schleimhaltigen aufquellenden Wandzellen reißen im oberen Teile des
Antheridiums unregelmäßig auseinander. Nun werden die Spermienzellen entleert, aus denen durch
Verquellung ihrer Wandung die Spermien als kurze, etwas gewundene Fäden frei werden, die nahe am
Vorderende zwei lange feine Zilien tragen (Fig. 435).
Fig. 435. Marchantia polymorpha. A Ein fast reifes Antheridium im Durchschnitt, p
Paraphysen. Vergr. 90. B Spermien. Vergr. 600. Nach STRASBURGER.

Fig. 436. Antheridiumentwicklung von Fegatella conica, einem Marchantiaceen-


Lebermoos. A Einzellige Anlage. B Die Stielzelle st abgetrennt. C, D Querscheibenzellen
abgeteilt, die sich durch senkrechte Wände fächern. E Anlage der Wandschicht w. F
Halbreifes Stadium. A–E Vergr. 400. F Vergr. 220. Nach BOLLETER.

Die E n t w i c k l u n g d e s A n t h e r i d i u m s erfolgt durch Teilung einer Oberflächenzelle; nur bei


Anthoceros (Fig. 445) wird es endogen angelegt. Bei den übrigen tiefer stehenden Lebermoosen (Marchantiales)
teilt sich diese Zelle in scheibenförmige Quersegmente, die durch senkrechte Wände in je vier Zellen zerlegt
werden, worauf in diesen Quadranten durch tangentiale Wände die peripherischen Wandzellen sich von den
inneren, das spermatogene Gewebe liefernden Zellen abteilen (Fig. 436 A–F). Bei den höheren Lebermoosen
(Jungermanniales) wird die Ausgangszelle in drei Quersegmente zerlegt, von denen nur das oberste den
Antheridienkörper liefert, indem es sich zunächst senkrecht in zwei Zellen teilt: dann wird in diesen durch je zwei
schiefe aufeinanderfolgende Längswände die Anlage der Wandung und die des spermatogenen Gewebes
geschieden. Bei den Laubmoosen (Musci) hingegen baut sich das Antheridium auf aus Segmenten einer
zweischneidigen Scheitelzelle, die aus der obersten Querscheibe durch zwei schräge Wände herausgeschnitten
wird. Die einzelnen Segmente werden dann in peripherische Wandzellen und je eine, spermatogenes Gewebe
liefernde Innenzelle zerlegt (Fig. 437 A–F).

Die A r c h e g o n i e n (Fig. 438)[401] stellen kurzgestielte, flaschenförmige Organe vor, deren


Wandung einen Bauchteil und einen Hals unterscheiden läßt. Der Bauchteil umschließt eine große
Zentralzelle, deren Inhalt kurz vor der Reife in die Eizelle und in eine am Grunde des Halses gelegene
Bauchkanalzelle zerfällt. An diese schließt im Halse eine zentrale Reihe von Halskanalzellen an, deren
Zahl bei den Lebermoosen geringer (4 oder 8), bei den Laubmoosen größer (etwa 10–30 oder noch
höher) ist. Die Öffnung des Halses geschieht dadurch, daß seine obersten schleimhaltigen Zellen
aufquellen, die Kutikula zerreißen und sich, oft in Form von vier Lappen, zurückrollen (Fig. 440 B)[403].
Die Kanalzellen verquellen alsdann zu Schleim. Da der Befruchtungsvorgang sich nur im Wasser
vollziehen kann, so erfolgt er bei den Landformen nur nach Benetzung durch Regen oder Tau. Die
Bewegungsrichtung der Spermien, die auf die Archegonien zusteuern und den Hals hinab zum Ei
gelangen, wird bestimmt durch besondere Stoffe, die aus dem weiblichen Organ herausdiffundieren.
Fig. 437. Antheridiumentwicklung von Funaria hygrometrica, einem
Laubmoos. A Querteilung der Anlage. B Bildung der Scheitelzelle
aus der obersten Zelle. C Teilungen der Scheitelzelle. D Scheidung
in Wandung und Anlage des spermatogenen Gewebes. E
Desgleichen im Querschnitt. F Älteres Stadium. Nach D. CAMPBELL.
Fig. 438. Marchantia polymorpha. A Junges, B geöffnetes, C befruchtetes Archegonium mit
achtzelligem Keimling, k′ Halskanalzellen, k″ Bauchkanalzellen, o Ei, pr Pseudoperianth.
Vergr. 540. Nach STRASBURGER.
Fig. 439. Entwicklung des Lebermoosarchegoniums. A (Längsschnitt) und B
(Querschnitt) Teilung der oberen Zelle durch drei Wände. C Die mittlere Zelle in
Deckelzelle d und Innenzelle i geschieden. D Die Innenzelle geteilt in Anlage der
Halskanalzellen hk und Zentralzelle c, die die Eizelle und Bauchkanalzelle liefert.
st Stielanlage. Nach GOEBEL.

Die Samenfäden der Laubmoose werden von R o h r z u c k e r l ö s u n g angelockt, diejenigen des


Lebermooses Marchantia von P r o t e ï n s t o f f e n, außerdem bei Versuchen auch von Kalium-, Rubidium- und
Cäsiumsalzen[404].
Die E n t w i c k l u n g d e s A r c h e g o n i u m s vollzieht sich aus einer Oberflächenzelle. Bei den
Lebermoosen teilt sie sich in eine den Stiel liefernde untere Zelle und in eine obere Zelle, die durch drei
Längswände in drei äußere und eine mittlere zerlegt wird, diese wiederum durch eine Querwand in eine
Deckelzelle und eine Innenzelle. Aus den äußeren Zellen geht die Wandung des Hals- und Bauchteiles hervor,
aus der Innenzelle die Halskanalzellen, Bauchkanalzelle und Eizelle (Fig. 439). Bei den Laubmoosen dagegen
wird in der Ausgangszelle durch zwei schiefe Wände eine zweischneidige Scheitelzelle abgeteilt, deren Segmente
den Stiel aufbauen. Dann wird die endständige zweischneidige Zelle durch drei schräge Wände und eine
Querwand in eine dreischneidige, unten abgestutzte Scheitelzelle, eine unter dieser liegende Zentralzelle und
drei peripherische Wandzellen zerlegt. Die Zentralzelle liefert die Eizelle, Bauchkanalzelle und Halskanalzellen,
die Scheitelzelle dagegen aus ihren Segmenten die Wandung des Halsteils und durch Querteilung auch noch die
obersten Halskanalzellen. Die Sphagnaceen nehmen nach MELIN eine Mittelstellung ein, insofern der Stiel wie bei
den Laubmoosen, der Archegoniumkörper aber ähnlich wie bei den Lebermoosen ohne dreiseitige Scheitelzelle
gebildet wird.
Antheridien und Archegonien sind, wie aus gelegentlich auftretenden intermediären Gebilden hervorgeht,
homologe Organe; Bauchkanal- und Halskanalzellen würden demnach funktionslos gewordene Gametenzellen
vorstellen. Die Bauchkanalzelle ist in der Regel kleiner als die Eizelle, kann aber zuweilen gleichwertig mit der
Eizelle ausgebildet werden. Auch können sich gelegentlich mehrere Eizellen in einem Archegoniumbauch
entwickeln, so bei Sphagneen vier oder noch mehr.

Nach der Befruchtung teilt sich die Zygote und entwickelt sich im Archegonium weiter zum Embryo,
ohne erst einen Dauerzustand durchzumachen (Fig. 438 C). Der Embryo wächst heran zum
S p o r o g o n, das die u n g e s c h l e c h t l i c h e G e n e r a t i o n vorstellt, die aber zeitlebens mit der
anderen Generation verbunden bleibt und wie eine halbparasitische Pflanze von dieser zum Teil die zu
ihrer Entwicklung nötigen Substanzen bezieht. Das S p o r o g o n ist ein kürzer oder länger gestielter,
rundlicher oder ovaler Sporenbehälter, in welchem zahlreiche Sporen erzeugt werden. Allgemein
entstehen die Sporen der Moose, wie auch die der Farnpflanzen und Samenpflanzen zu v i e r, in
Te t r a d e n, durch zweimalige, mit Reduktion der Chromosomenzahl verbundene Teilung der
Sporenmutterzellen, die sich vorher voneinander loslösen und abrunden.
Fig. 440. A Spitze des entleerten Antheridiums von Polytrichum mit Resten der
Öffnungskappe, halbiert gezeichnet. Nach GOEBEL. B Geöffneter Hals des Archegoniums
von Mnium undulatum. Nach ZIELINSKI.

Bei den Laubmoosen dringt der untere, als Saugorgan dienende Teil des Embryos in das sich oft stark
vergrößernde Gewebe des Archegoniumstieles, in manchen Fällen sogar bis in das Gewebe des Stämmchens
ein. Dieses Gewebe und der mitwachsende Archegoniumbauch bilden dann zusammen die H ü l l e, die
schließlich von dem sich streckenden Embryo durchbrochen wird. Der oberste, aus dem Archegoniumbauch
hervorgegangene Teil der Hülle wird dabei als C a l y p t r a oder Haube emporgehoben, während der untere als
Scheide den Sporogonstiel an seiner Basis umgibt. In ähnlicher Weise wird auch die Hülle bei einem Teil der
Lebermoose (so in der Regel bei den Marchantiales) gebildet; bei den übrigen aber wächst der Embryo mit
seiner Basis in das unter dem Archegonium befindliche Thallus- oder Stämmchengewebe mehr oder weniger tief
hinein; auch kann in bestimmten Fällen das dem Archegonium benachbarte Gewebe zu einem beutelartigen,
meist in den Boden eindringenden Gebilde, dem M a r s u p i u m, heranwachsen, in welches das Archegonium mit
seinem Embryo hineinversenkt erscheint. So kommt es schließlich für diesen zur Bildung eines eigenartigen
Schutz- und Ernährungsorganes.
Die E n t w i c k l u n g d e r S p o r o g o n e[405] zeigt bemerkenswerte Verschiedenheiten. Bei den
n i e d e r e n L e b e r m o o s e n (Marchantiales) teilt sich die Zygote quer und längs in 8, dann radial weiter in 16
Zellen und diese durch perikline Wände in äußere und innere Zellen (Fig. 441). Aus der unteren Hälfte des
Embryos geht der Fuß und der kurze Stiel hervor, aus der oberen die Kapsel, deren zentrale Zellen, das
A r c h e s p o r, das vielzellige sporogene Gewebe liefern. Diese Zellen werden zum Teil zu Sporenmutterzellen;
zum Teil bleiben sie steril und dienen zunächst als Nährzellen für die ersteren (Fig. 441 C). Dann wachsen die
Nährzellen meist zu faserförmigen Gebilden mit schraubenbandförmigen Wandverdickungsleisten heran, zu
S c h l e u d e r n (E l a t e r e n), die nach der Öffnung ihrer Kapsel durch ihre hygroskopischen Bewegungen die
Sporen auflockern und ausstreuen. Nur bei den Ricciaceen werden sämtliche Zellen des inneren Gewebes zu
Sporenmutterzellen, und das ganze Sporogon ist hier zu einer rundlichen ungestielten Kapsel mit einschichtiger
Wand vereinfacht.
Fig. 441. Sporogonentwicklung von Corsinia marchantioides, einem
Marchantiaceen-Lebermoos. A Die Zygote in 16 Zellen geteilt. B Die untere
Hälfte des Embryos entwickelt sich zum Fuß, die obere zur Kapsel, w
Wandzellen, ar Archespor. Vergr. 170. C Älteres Sporogon. In der Kapsel die aus
dem Archespor hervorgegangenen Sporenmutterzellen und kleineren sterilen
Zellen. Letztere erfahren bei Corsinia keine Weiterentwicklung zu Elateren.
Vergr. 90. Nach K. MEYER.

Bei den h ö h e r e n L e b e r m o o s e n (Jungermanniales) teilt sich die Zygote erst einigemale quer, die
unterste Zelle wird meist zu einem ein-, selten mehrzelligen Saugorgan, die oberen Zellen liefern Fuß, Stiel und
Kapsel. Aus dem sporogenen Gewebekomplex gehen auch hier neben den Sporenmutterzellen sterile Zellen
hervor, die bei den meisten Gattungen wiederum zu Elateren sich weiterentwickeln.
Die Lebermoosgruppe der Anthocerotales weicht im Bau des Sporogons bedeutend von den vorher
genannten ab und nähert sich in einigen Eigentümlichkeiten den Laubmoosen (vgl. S. 423).
Fig. 442. Sporogonentwicklung von Funaria hygrometrica, einem Laubmoos. A, B Längsschnitt.
Erste Teilungen der Zygote, s Scheitelzelle. C–E Querschnitt. C Teilung in Endothecium e und
Amphithecium a. D Weitere Teilungen. E Älteres Sporogon, im Endothecium die äußerste
Zellschicht, das Archespor ar, abgeteilt von der Columella c. Nach CAMPBELL.

Bei den L a u b m o o s e n besitzt das Sporogon einen axilen, der Stoffleitung dienenden Strang sterilen
Gewebes, eine C o l u m e l l a, in deren Umkreis das Archespor in Form einer meist einfachen Zellschicht angelegt
wird. Bei den Sphagnales (Fig. 454 C) und den Andreaeales überwölbt die Archesporschicht kuppelförmig die
Columella, bei den Bryales (Fig. 460) dagegen hat sie die Form eines Zylindermantels. Der langgestreckte
Embryo baut sich aus Quersegmenten auf, die bei den Sphagnales durch Querteilung der Zygote entstehen; bei
den übrigen Laubmoosen aber, deren Zygote zuerst auch quergeteilt wird, treten in der oberen Zelle schiefe
Wände auf und die von ihnen gebildete zweischneidige Scheitelzelle scheidet nach beiden Seiten hin
Quersegmente ab, die sich dann weiter teilen. In den Quersegmenten, die die Mooskapsel liefern, findet
zunächst eine Längsteilung statt, dann in den so entstandenen Quadranten durch perikline Wände die Zerlegung
in äußere Zellen (A m p h i t h e c i u m) und innere Zellen (E n d o t h e c i u m) (Fig. 442). Das A r c h e s p o r
entsteht nur bei den Sphagnales als innerste Zellschicht des Amphitheciums, bei allen übrigen Laubmoosen
dagegen als äußerste Zellschicht aus dem Endothecium. Es liefert ausschließlich Sporen, aber keine sterilen
Zellen (Fig. 443).
Fig. 443. Funaria hygrometrica. Querschnitt durch das Archespor (A su) und die aus
ihm hervorgegangenen, noch nicht isolierten Sporenmutterzellen (B sm). Nach
GOEBEL.

Die Moose sind bis auf wenige, sekundär zum Leben im Wasser übergegangene Formen Landpflanzen im
Gegensatz zu den Algen und zeigen dementsprechende Anpassungen in ihrer anatomischen Struktur. So sind
alle ihre oberirdischen Teile von einer Kutikula überzogen. Die bemerkenswerte Kleinheit der Moose im Vergleich
zu den Farnpflanzen steht in Zusammenhang mit ihrem einfachen zelligen Aufbau, mit dem Mangel echter
Gefäße und echter Wurzeln. Manche Arten sind winzige Pflänzchen, die größten Laubmoose sind die
neuseeländischen Dawsonien, deren einfache beblätterte Stämmchen bis 50 cm Höhe erreichen.
Viele Moose besitzen rötliche, bräunliche, einige sogar fast schwarze Färbung, die in den meisten Fällen
durch besondere Membranfarbstoffe (Anthocyane und Phlobaphene), seltener durch gefärbten Zellsaft bedingt
ist[406].
Die Moose weisen eine ungemeine R e g e n e r a t i o n s f ä h i g k e i t aus abgeschnittenen Stücken aller ihrer
Organe auf; ferner ist bei ihnen vegetative Vermehrung durch Brutkörper und Brutknospen sehr verbreitet, die
am Thallus, an den Stämmchen, an den Blättern, am Protonema in verschiedener Art entstehen und sich
loslösen[407].
Die p h y l o g e n e t i s c h e A b l e i t u n g der Bryophyten von einer b e s t i m m t e n Algengruppe begegnet
Schwierigkeiten. Zwischen den Moosen einerseits, den höherstehenden Grünalgen und den Characeen
andererseits sind keine einen Übergang vermittelnde Formen bekannt. Der morphologische Vergleich ergibt
vielmehr eher eine Anknüpfung der Moose an Braunalgen, deren vielfächerige, bei einigen Gattungen bereits in
Antheridien und Oogonien differenzierte G a m e t a n g i e n a l s h o m o l o g e V o r l ä u f e r d e r
A n t h e r i d i e n u n d A r c h e g o n i e n der Archegoniaten gelten dürfen. So zeigt das Antheridium der
niederen Lebermoose noch ganz übereinstimmenden Zellenaufbau mit Braunalgengametangien (vgl. Fig. 436,
355, 357); es unterscheidet sich von ihnen durch den Besitz einer sterilen, schützenden Wandschicht, deren
Differenzierung als eine Anpassung an terrestrische Lebensweise angesehen werden kann. Ferner zeigt sich
unter den Braunalgen, z. B. bei Dictyota, ein mit dem der Moose übereinstimmender Generationswechsel.
Gametophyt und Sporophyt haben allerdings dort in ihrem vegetativen Bau gleiche Form. Den
Te t r a s p o r a n g i e n des Dictyotasporophyten e n t s p r e c h e n d i e S p o r e n m u t t e r z e l l e n des
Moossporophyten, deren endogene Anlage in zusammenhängenden Schichten auf den Einfluß terrestrischer
Lebensweise sich zurückführen ließe. Der Sporophyt der Moose geht frühzeitig zur Entwicklung seiner Sporen
über, beschließt damit sein Wachstum, ohne erst eine Gliederung in vegetative Organe zu erfahren, und wird so
wesentlich verschieden von dem Gametophyten, dessen Gestaltung bei den thallösen Lebermoosen mit dem
Thallus gewisser Braunalgen manche Analogien aufweist[408].

Die beiden scharf geschiedenen Klassen der Bryophyten charakterisieren sich kurz folgendermaßen:
1. Hepaticae, Lebermoose. Geschlechtliche Generation mit schwach entwickeltem und meist nicht
scharf abgesetztem Protonema, ihr Thallus entweder flächenförmig und gabelteilig oder in Stämmchen
mit dorsiventral angeordneten Blättchen gegliedert. Der Sporenbehälter erzeugt bei den meisten außer
Sporen auch Elateren. Nur bei einer Ordnung, den Anthocerotales, wird in der Kapsel eine Columella
ausgebildet.
2. Musci, Laubmoose. Vorkeim der geschlechtlichen Generation meist kräftig entwickelt, scharf
abgesetzt, Thallus stets in Stämmchen und Blättchen gegliedert. Die Blätter in spiraliger, mehrzeiliger,
seltener in zweizeiliger Anordnung, Stämmchen also poly- oder seltener bisymmetrisch beblättert.
Sporenbehälter stets ohne Elateren, aber mit Columella.

F o s s i l e M o o s e . Die Lebermoose sind primitiver organisiert als die Laubmoose, scheinen auch älter zu
sein, da ihre fossilen Reste vereinzelt bis zum Karbon hinab, mit einiger Sicherheit aber erst im Mesozoikum
gefunden werden, während die ersten Laubmoose aus der oberen Kreide bekannt wurden. Die meisten fossilen
Moosreste entstammen dem Tertiär und zeigen größte Ähnlichkeit mit heutigen Gattungen.

Klasse I.
Hepaticae, Lebermoose[288], [400], [401], [409]–[415].

Die Mehrzahl der Lebermoose bewohnt feuchte Standorte und besitzt dementsprechend hygrophile Struktur.
Echte Wasserpflanzen sind unter ihnen nur spärlich vertreten. Manche zarte Jungermanniaceen leben versteckt
in Laubmoosfilzen. Weniger zahlreich sind Formen, die extrem trockene Standorte auf Baumrinden und Felsen
oder auf dem Boden bewohnen und xerophilen Bau sowie Einrichtungen zum Wasserspeichern besitzen. Unter
den epiphytischen Arten sind die kleinen, epiphyllen, d. h. auf Blättern lebenden Lebermoose feuchter
Tropenwälder bemerkenswert. Im allgemeinen spielen die Lebermoose keine bedeutende Rolle in der
Zusammensetzung kryptogamer Pflanzenformationen.
Die Rhizoïden vieler Lebermoose, namentlich der Jungermanniaceen, sowie auch die chlorophyllfreien
Thallusgewebe bei Marchantiaceen werden häufig von endophytischen Pilzfäden (u. a. des Mucor rhizophilus)
besiedelt, die den Moosen keinen besonderen Nutzen, aber auch keinen bedeutenden Schaden bringen[410].

Die Lebermoose zerfallen nach dem Bau der Sporogone und der Gliederung der geschlechtlichen
Generation in drei Ordnungen, von denen die Anthocerotales und Marchantiales ausschließlich
Thalluspflanzen, die Jungermanniales teils ebensolche, teils aber Formen mit dorsiventral beblättertem,
seltener, und zwar nur in der Gruppe der Haplomitrieen, mit radiär gebautem, beblättertem Stämmchen
umfassen.

1. Ordnung. Die Anthocerotales[411], eine isoliert stehende Gruppe, die nur wenige Formen umfaßt,
können als eine primitive Moosordnung gelten. Ihr Sporogon zeichnet sich durch einen reicheren inneren Bau
aus, als das der übrigen Lebermoose, bei denen es eine fortschreitende Vereinfachung erfahren hat.
Fig. 444. Anthoceros laevis. sp Fig. 445. Anthoceros Pearsoni. Entwicklung des endogenen Antheridiums.
Sporogon, c Columella. Nat. Gr. d Deckzellen, st Stielzellen, a Anlage des Antheridiums. Nach D. CAMPBELL.

Der Gametophyt hat die Gestalt eines gelappten, am Boden mittels Rhizoïden festgewachsenen Thallus.
Seine Zellen enthalten zum Unterschied von allen anderen Moosen nur einen einzigen großen pyrenoidführenden
Chlorophyllkörper. Auf der Unterseite, seltener auf der Oberseite finden sich Spaltöffnungen. Die
A n t h e r i d i e n stehen einzeln oder zu vier im Innern geschlossener Höhlungen unter der Oberseite des Thallus
(Fig. 445). Die Höhlung wird erst bei der Reife der Antheridien vermittels Schleimbildung in den Deckzellen
geöffnet. Die Anlage der männlichen Organe ist also hier abweichend von allen übrigen Archegoniaten sekundär
zu einer endogenen geworden, indem eine Oberflächenzelle sich zunächst in eine die Decke liefernde äußere (d)
und eine innere (a), die Mutterzelle der Antheridien, teilt. Die A r c h e g o n i e n sind in die Oberseite des Thallus
eingesenkt und werden nach der Befruchtung von einer durch Wucherung des Thallusgewebes entstehenden,
mehrschichtigen Hülle (Marsupium) überwölbt, die später von der Kapselfrucht durchbrochen wird und eine
Scheide an deren Basis bildet. Die befruchtete Eizelle teilt sich im Gegensatz zu den übrigen Moosen zunächst
durch eine L ä n g s w a n d in zwei Zellen, diese dann weiter durch Querwände. Das aus dem Embryo
hervorgehende S p o r o g o n besitzt einen angeschwollenen, mit rhizoïdähnlichen Schläuchen im Thallus
befestigten Fuß und eine ungestielte, lang schotenförmige, mit zwei Längsklappen aufspringende Kapsel, in
deren Längsachse eine aus wenigen Zellreihen bestehende Columella sich befindet (Fig. 444). Diese wird
kappenförmig von der schmalen sporenbildenden Zellschicht bedeckt. Außer Sporen erzeugt letztere auch
Schleudern; sie sind hier mehrzellig, vielgestaltig, oft gegabelt. Im Gegensatz zu allen übrigen Lebermoosen reift
der Kapselteil dieses Sporogons nicht gleichzeitig heran, sondern von der Spitze ausgehend unter andauernder
Fortentwicklung an seiner Basis. Auch enthält die Sporogonwand Chlorophyll und besitzt Spaltöffnungen, die
sonst bei Lebermoosen nicht auftreten.
An der Unterseite des Thallus der Anthocerotaceen werden durch Auseinanderweichen benachbarter Zellen
Spalten erzeugt, die in Höhlungen führen, welche Schleim enthalten. In diese dringen häufig Nostocfäden ein,
um sich dort zu endophytischen Kolonien zu entwickeln[412].
Fig. 446. Marchantia polymorpha. A–C Brutkörperentwicklung,
st Stielzelle, D Brutkörper von der Fläche, E im Querschnitt, x
Ablösungsstelle, o Ölzellen, r Rhizoïdanlagen. A–C Vergr. 275.
D–E Vergr. 65. Nach KNY.

Fig. 447. A Männliche Pflanze von Marchantia polymorpha, b Brutkörbchen.


Nat. Gr. B Antheridiumstand mit den eingesenkten Antheridien a, t Thallus,
s Ventralschuppen. r Rhizoïden. Etwas vergr.

2. Ordnung. Die Marchantiales[413] besitzen zum Teil recht komplizierten Aufbau. Als Typus sei die an
Quellen häufige Marchantia polymorpha geschildert. Sie bildet bis 2 cm breite, sich gabelig verzweigende
Thalluslappen (Fig. 447 A, Fig. 448 A) mit schwachen Mittelrippen. An der Unterseite entspringen einschichtige
Zellamellen oder V e n t r a l s c h u p p e n und die R h i z o ï d e n, die den Thallus befestigen und ihm Wasser
zuführen; sie sind zum Teil glattwandig, zum Teil aber mit zapfenförmigen, nach innen vorragenden
Wandverdickungen versehen (Fig. 31). Diese Zäpfchenrhizoïden verflechten sich längs der Mittelrippe zu einem
Strange. Die Dorsiventralität des Thallus macht sich auch im anatomischen Aufbau geltend. Auf der Oberfläche
des Thallus bemerkt man schon mit bloßem Auge eine rhombische Felderung. Jedes Feld entspricht einer unter
der obersten Zellschicht befindlichen, von geschlossenen seitlichen Wänden abgegrenzten L u f t k a m m e r, die
durch eine Atemöffnung in der Mitte des Feldes nach außen führt (Fig. 95 A, B). Die Öffnung besteht aus einem
kurzen Kanal mit einer aus mehreren ringförmigen Stockwerken von je vier Zellen gebildeten Wandung. Vom
Boden der Kammer erheben sich zahlreiche kurze, aus rundlichen Zellen bestehende Fäden, die
Chlorophyllkörner enthalten und das A s s i m i l a t i o n s g e w e b e vorstellen. Auch in den Kammerwänden und
in der Epidermis befindet sich Chlorophyll, aber in geringerer Menge. Im übrigen besteht der Thallus aus großen
chlorophyllarmen, als S p e i c h e r z e l l e n dienenden Parenchymzellen, die an der Unterseite von einer
einschichtigen geschlossenen Zellschicht bedeckt werden. Auf die Ausbildung der Luftkammern ist die Belichtung
von großem Einfluß. Bei sehr schwacher Belichtung kann ihre Bildung ganz unterbleiben.
Auf den Mittelrippen der Oberseite des Thallus treten in der Regel becherförmige Auswüchse mit gezähntem
Rand, die B r u t b e c h e r oder B r u t k ö r b c h e n (Fig. 447 b) auf, in denen eine Anzahl von flachen
Brutkörperchen sich befinden. Sie entstehen, wie Fig. 446 zeigt, durch Hervorwölbung und weitere Teilung
einzelner Oberflächenzellen und sitzen mit einer Stielzelle (st) fest, von der sie sich (D bei x) ablösen. Sie haben
an den beiden Einschnürungsstellen zwei Vegetationspunkte und bestehen aus mehreren Schichten von Zellen,
von denen eine Anzahl mit Ölkörpern erfüllt ist (D, o), andere, farblose, als Anlagen der späteren Rhizoïden
dienen. Ölhaltige Zellen treten auch im fertigen Thallus zerstreut auf und sind überhaupt bei Lebermoosen sehr
verbreitet. Mit Hilfe der Brutkörperchen kann sich Marchantia in reichlichem Maße vegetativ vermehren. Die
Dorsiventralität des aus dem isolateralen Brutkörper hervorgehenden Thallus wird durch den Einfluß des Lichtes
bedingt.
Die S e x u a l o r g a n e, Antheridien und Archegonien, werden von besonderen aufstrebenden Zweigen des
Thallus getragen. Im unteren Teile sind diese Zweige stielartig zusammengerollt, im oberen Teile verzweigen sie
sich sternförmig. Antheridien und Archegonien sind diözisch verteilt. Die m ä n n l i c h e n Z w e i g e schließen mit
einer lappig gerandeten Scheibe ab, an deren Oberseite die Antheridien eingesenkt sind, und zwar ein jedes in
einen flaschenförmigen Hohlraum, der mit einer engen Öffnung nach außen mündet (Fig. 447 B u. 435). Diese
Höhlungen werden von Luftkammern führendem Gewebe getrennt. Die Spermien sammeln sich oben auf dem
Hut in einem Wassertropfen, der durch den welligen Hutrand gehalten wird.
Fig. 448. Marchantia polymorpha. A Weibliche Pflanze mit vier
verschiedenalterigen Archegoniumständen, b Brutkörbchen. Nat. Gr. B
Archegoniumstand von unten, st Strahlen, h Hülle, spo vortretende
Sporogone. Vergr. 3. C Derselbe halb durchschnitten. Vergr. 5. D Junges
Sporogon im Längsschnitt, mit dem Fuß spf, dem sporenbildenden Gewebe
spg, der Kapselwandung kw, der Archegoniumwandung aw, dem
Archegoniumhals ha, dem Perianth p. Vergr. 70. E Aufgesprungenes
Sporogon, Sporen mit Elateren e. Vergr. 10. F Ein einzelner Elater. G Reife
Sporen. Vergr. 315. H Gekeimte Spore mit Keimschlauch vk und
Keimscheibe k, letztere mit der Scheitelzelle v und dem Rhizoïd rh. Vergr.
100. C, E nach BISCHOFF. B, D, F–H nach KNY.

Die w e i b l i c h e n Z w e i g e (Fig. 448 A) schließen mit einem meist neunstrahligen Schirm ab. Die
Oberseite des Schirmes ist zwischen den Strahlen umgeschlagen und trägt hier die Archegonien, die somit der
Unterseite des Schirmes zu entspringen scheinen. Sie bilden radiale Reihen zwischen den Strahlen. Jede dieser
Reihen wird von einer zierlich gezähnten Hülle (Perichaetium) (B, C, h) umgeben. Die Gestalt der Archegonien
ist aus Fig. 438 ersichtlich.
Die B e f r u c h t u n g erfolgt bei Regenwetter, indem Regentropfen die Samenfäden enthaltende Flüssigkeit
von den männlichen Hüten auf die weiblichen Schirme spritzen, deren Epidermiszellen papillenförmig
vorspringen und ein oberflächliches Kapillarsystem darstellen, in welchem die Samenfäden zu den Archegonien
hinabgeleitet werden.
Nach der Befruchtung entwickelt sich die Eizelle zu einem vielzelligen Embryo (Fig. 438 C), dieser zu einem
gestielten o v a l e n S p o r o g o n. Seine Kapsel hat eine einschichtige Wandung, deren Zellen
Ringfaserverdickungen aufweisen. Nur am Scheitel ist die Wandung zweischichtig, hier beginnt auch das
Einreißen der Kapsel, indem das Deckelstück zerfällt und die Wandung in Form mehrerer Zähne sich
zurückkrümmt. Die reife Kapselfrucht ist anfangs noch bedeckt von der eine Zeitlang mitwachsenden
Archegoniumwandung (Fig. 448 DE, aw), die aber bei der Streckung des Stieles durchbrochen wird und an der
Basis als Scheide zurückbleibt. Außerdem wird die Kapsel von einer vier- bis fünfspaltigen, dünnhäutigen Hülle,
dem P e r i a n t h, umgeben, das schon vor der Befruchtung aus dem kurzen Stiel des Archegoniums ringsum als
sackartige Hülle hervorzusprossen beginnt (Fig. 438 C, pr, 448 D, E, p). Die Kapsel entläßt S p o r e n und
Elateren (Fig. 448 F, G).
Marchantia war früher als Mittel gegen Leberkrankheiten offizinell, daher auch die Bezeichnung Lebermoose.
Die R i c c i a c e e n[414] weisen zwar eine weitgehende Vereinfachung ihrer Sporogone auf, schließen sich aber
an einfacher gebaute Marchantiaceen als reduzierte Formen an. Ihr dichotomisch gelappter Thallus bildet auf
Schlammboden am Ufer der Gewässer oder auf feuchten Äckern kleine Rosetten. Riccia natans schwimmt mit
ihren breiten Thalluslappen auf der Oberfläche des Wassers nach Art der Lemnaceen (Fig. 449 C). Riccia fluitans
(Fig. 449 A), vielleicht eine Sammelart von submersen Formen verschiedener terrestrischer Arten, hat dagegen
schmale, reicher verästelte Thalluslappen. Diese beiden wasserbewohnenden Arten können aber auch auf
Schlammboden niederliegende Rosetten bilden (Fig. 449 B). Der Thallus besteht an der Oberseite ähnlich wie
bei Marchantia aus einem von schizogen entstandenen Luftkammern durchzogenen, assimilierenden Gewebe; an
seiner Unterseite trägt er feine Rhizoïden und außerdem eine Reihe von quergestellten Ventralschuppen, die wie
erstere sich an der Nährstoffaufnahme beteiligen. Beide Organe fehlen vollständig der submersen Form von
Riccia fluitans.
Antheridien und Archegonien sind auf der Oberseite eingesenkt. Aus der Eizelle entwickelt sich nach der
Befruchtung ein ungestieltes kugeliges Sporogon mit einschichtiger Wandung. Die Wandung wird vor der
Sporenreife aufgelöst, und die Sporen werden durch Verwitterung der sie umgebenden Zellen des Thallus frei.
Elateren fehlen.

Fig. 449. A Riccia fluitans, untergetaucht schwimmende Form. B Riccia natans, Landform.
Nat. Gr. C Riccia natans. Schwimmform mit langen Ventralschuppen. Vergr. 2. B Nach
GOEBEL, C nach BISCHOFF.

3. Ordnung. Die Jungermanniales, meist kleine, auf Erde oder an Baumstämmen, in den Tropen auch
auf Blättern von Waldpflanzen lebende Lebermoose, weisen in ihren einfacheren Formen einen breitlappigen
Thallus wie Marchantia auf, z. B. die auf feuchtem Erdboden häufige Pellia epiphylla, oder einen schmal
bandförmigen, dichotom verzweigten, ähnlich wie Riccia fluitans, so die an Baumstämmen oder Felsen lebende
Metzgeria furcata (vgl. Fig. 94). Sodann gibt es Formen, deren breitlappiger, mit Mittelrippe versehener Thallus
bereits eine schwache Ausbildung von blattähnlichen Gliedern an seinem Rande aufweist, so die erdbewohnende
Blasia pusilla (Fig. 450). Die Mehrzahl aber besitzt eine deutliche Gliederung in ein niederliegendes oder
aufstrebendes, reichverzweigtes, dorsiventrales Stämmchen und in einschichtige Blättchen ohne Mittelnerv, die
in zwei Zeilen an den Flanken des Stämmchens mit schiefer Stellung ihrer Spreite angeordnet sind (Fig. 451).
Bei gewissen Gattungen tritt zu diesen zwei Zeilen von Flankenblättern auch noch eine bauchständige Reihe von
kleineren und anders beschaffenen Blättchen, Amphigastrien oder Bauchblättern, hinzu, so bei Frullania
Tamarisci (Fig. 452), einem zierlich verzweigten, an Felsen und Baumstämmen häufigen Lebermoos von
bräunlicher Farbe. Die Flankenblätter gliedern sich häufig in einen Oberlappen und einen Unterlappen. Der
letztere erscheint bei gewissen Arten, die an ihren Standorten zeitweise der Gefahr des Vertrocknens ausgesetzt
sind, sackartig ausgebildet und dient als kapillarer Wasserbehälter, so bei Frullania Tamarisci. Die Flankenblätter
sind entweder o b e r s c h l ä c h t i g, wenn der Hinterrand eines Blattes von dem Vorderrand des nächstunteren
überdeckt wird (Fig. 452 Frullania), oder u n t e r s c h l ä c h t i g, wenn der Hinterrand eines Blattes ü b e r dem
Vorderrand des nächstunteren liegt (Fig. 451).

Fig. 450. Blasia pusilla mit Sporogon s, r Rhizoïden. Fig. 451. Plagiochila asplenioides mit Sporogon s.
Vergr. 2. Nat. Gr.

Das S p o r o g o n besitzt einen langen zarten und w e i c h e n S t i e l; es ist schon fertig ausgebildet, ehe es
bei der rasch erfolgenden Streckung des Stiels die Archegoniumwand durchbricht und als häutige Scheide an
seinem Grunde zurückläßt; es weist eine kugelige, meist in vier Klappen sich öffnende Kapsel auf, bildet keine
Columella aus und erzeugt Sporen und Elateren. Bei einigen Gattungen (Pellia, Aneura) sind in der Kapsel
Elaterenträger vorhanden, die aus Gruppen steriler elaterenähnlicher Zellen bestehen. Die Kapselwandzellen sind
mit ringförmigen oder leistenartigen Verdickungen versehen oder gleichmäßig verdickt bis auf die dünnen
Außenwände. Das Aufspringen erfolgt durch die Kohäsion des schwindenden Füllwassers unter Einbiegung der
dünnen Außenwände.
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade

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

Let us accompany you on the journey of exploring knowledge and


personal growth!

ebooknice.com

You might also like