Silverlight™ 4 For Dummies®

Table of Contents

Introduction

What’s in This Book

Foolish Assumptions

How This Book Is Organized

Part I: Illuminating Silverlight

Part II: Managing Your Silverlight Controls

Part III: Connecting with Data

Part IV: The Part of Tens

Conventions Used in This Book

Icons Used in This Book

Part I : Illuminating Silverlight

Chapter 1 : Adding Silverlight to Your Web Development Toolkit

Obtaining and Running Silverlight

Checking Out Some Silverlight-Enhanced Sites

Grasping the Potential of Silverlight

Hosting a Silverlight Application in a Web Page

All the Stuff You Need to Create Silverlight Applications

Visual Studio

Silverlight Tools for Visual Studio

Expression Blend

Silverlight Toolkit

WCF RIA Services

Deep Zoom Composer

Creating Rich User Experiences in Silverlight

Silverlight Plays Well with Others

Silverlight Has More to Offer Than Just a Pretty Face

Chapter 2 : Getting Started in Silverlight

Getting Started in Silverlight with Expression Blend

Exploring the Expression Blend interface

Menu bar

Artboard

Tools panel

Workspace panels

Adding a user interface element to the page

Introducing the Basics of the Extensible Application Markup Language

Digging deeper into XAML

Understanding elements and properties by category

Firing Up Visual Studio to Create a Silverlight Application

Exploring Visual Studio

Creating the Hello, World application

Exploring the Solution Explorer

Specifying the startup file for the application

Understanding other files involved in the solution

Hosting the Silverlight application

Using Expression Blend and Visual Studio in Tandem

Chapter 3 : Enhancing the User Interface

Getting to Know the Properties Panel

Setting a property for an object

Getting to know the Properties panel better

Drawing Shapes on the Artboard

Drawing with ready-made shapes

Drawing freehand

Understanding the XAML for shapes

Shaping, Sizing, and Positioning Your Object

Getting your object into shape using your mouse

Reshaping and sizing an object using the Properties panel

Rounding the corners of a Rectangle object

Rotating, Projecting in 3-D, and Doing Other Funky Things with Shapes

Rotating a rectangle or other shape

Skewing an object

Applying 3-D Perspective transformations

Painting Colors with Brushes in the Properties panel

Filling an object with color

Using the Eyedropper tool

Mixing colors

Applying gradients for color transitions

Using the Gradient tool instead of setting gradients through the Properties panel

Manipulating gradients further with the Brush Transform tool

Adding special effects

Playing Around with Some Special Effects

Adding Video and Audio to Your Pages

Playing video and audio files

Creating a video brush

Displaying video from your Webcam

Selecting the default webcam and microphone for your application

Part II : Managing Your Silverlight Controls

Chapter 4 : Working with Controls for UI Interactions

Exploring the Text-Related Tools

Displaying text with TextBlock

Using the TextBox and PasswordBox to get input from the user

Accessing TextBox values in XAML markup

Using Buttons in Your Application

Setting the content of a button

Adding an image as content for a Button

Jumping to Another Web Page Using HyperlinkButton

Using RadioButtons to Present Options

Using the ListBox and ComboBox to present a large number of options

Creating a list box

Creating a combo box

Entering Rich Text into a RichTextBox Control

Understanding the XAML behind RichTextBox

Formatting text at runtime

Chapter 5 : Laying Out Controls

Understanding Layout Containers

The root container

Manipulating properties that control layout

Aligning controls to one side

Setting the Height and Width of a UserControl at design time

Clearing margins of an element from the Artboard

Laying Out Controls in Rows and Columns

Setting up rows and columns

Adding controls to the rows and columns

Understanding the XAML

Changing row heights and column widths on the Artboard

Stacking Controls Horizontally and Vertically

Adding controls to a StackPanel

Converting a Grid to a StackPanel

Understanding the XAML for a StackPanel

Wrapping Controls

Arranging Controls by Absolute Positioning Using the Canvas Control

Using the ScrollViewer to Scroll Through the Contents

Using the Viewbox to Fit the Contents Snugly

Grouping Controls into a Tabbed Page

Docking Controls

Chapter 6 : Styling and Skinning Controls

Applying Styles to Controls

Creating default styles for a control

Creating named styles for controls

Understanding the Style property

Understanding the XAML behind Style resources

Understanding styles as resources in the Resources panel

Applying styles to existing elements

Creating controls with existing styles

Creating new styles based on existing styles

Skinning a Control

Editing the template visually

Specifying state

Binding values in the template

Applying skins to existing controls

Using Themes to Change the Look of All Controls

Chapter 7 : Creating Your Own Controls

Grouping Controls to Create a UserControl

An example of creating an Address UserControl

Reusing the User control

Creating properties for your UserControl

Creating a Smiley Custom Control

Using the custom control

Adding events to your control

Controlling the Behavior of Controls without Writing Code

Chapter 8 : Creating Animations in Silverlight

Creating a Simple Bouncing Ball Animation

Create the ball and set the timeline in motion

Switching to the Animation workspace

Animating the ball

Understanding the XAML behind the animation

Running the Animations You Create

Controlling animations from code

Easing the animation

Understanding the different kinds of Easing functions

Easing using KeySplines

Animating States of Controls

Chapter 9 : Updating Data the Easy Way with Data Binding

Binding Controls to Each Other

Binding to a Data Object

Creating a user control for data binding

Data bind the controls in the UserControl to a property name

Create a data class that can be databound

Binding the data object to the control

Automatically updating changes to the data

Converting data while binding

Binding to Sample Data

Creating sample data

Binding a DataGrid to the sample data

Creating a Master-Detail view

Fooling around with the sample data

Part III : Connecting with Data

Chapter 10 : Accessing Data in Silverlight

Downloading Files to Your Silverlight Application

Downloading files using the WebClient class

Using WebClient to include a progress bar with large downloads

Using the HTTPWebRequest class

Talking to Web Services

Accessing Web services that allow cross-domain exchanges

Programming against a Web service that has a WSDL

Creating your own WSDL Web service

Understanding Cross-Domain Security

Creating a cross-domain policy file

Accessing a Web service without a cross-domain policy file

Using the workaround: An example

Authenticating Users

Chapter 11 : Using WCF Data Services to Store and Manage Data

Getting Started with WCF Data Services

What, Exactly, Is WCF Data Services?

Creating a WCF Data Service

Creating the database

Adding the ADO.NET Entity Framework

Adding the WCF Data Service

Using the WCF Data Service in a Silverlight Application

Generating the proxy classes in the Silverlight application

Reading data from the database

Updating data in the database

Adding new items to the database

Deleting entities from the database

Handling Data Concurrency

Using Query and Change Interceptors to Control Data Querying and Updates

Controlling server-side queries with query interceptor

Enforcing rules using change interceptors

Controlling Access to Entity Sets

Chapter 12 : Using WCF RIA Services in Silverlight

Getting Started with WCF RIA Services

Authenticating Your Users

Authenticating users with the Business Application template

Understanding the client side of the Business Application template

Investigating the server side of the Business Application template

Understanding how the template files work together

Creating a Custom Authentication System

Implementing custom user validation logic

Returning a custom user object to the Silverlight application

Chapter 13 : Accessing Data with WCF RIA Services

Creating the Domain Data Service

Understanding the generated files

Creating the user interface

Retrieving the data

Updating your data

Writing Your Own Service Methods — LINQ to Entity Framework

A common mistake (Psst — This won’t work!)

This, on the other hand, DOES work

Writing Your Own Service Methods — LINQ to SQL

Validating Data on the Client and Server Sides

Adding validation attributes

Using a DataForm for great validation

Securing Your WCF RIA Service

Part IV : The Part of Tens

Chapter 14 : Ten Cool Controls for Collecting and Displaying Data

ListBox

DataGrid

DataForm

Expander

Chart

DatePicker

ProgressBar

TreeView

Rating

AutoCompleteBox

Chapter 15 : Ten Ways to Get More Out of Silverlight

Using SketchFlow to Prototype Your Application

Using Deep Zoom Composer

Creating Designs Using Expression Design

Importing Designs from Other Applications

Creating Your Own Behaviors

Running Silverlight Out of the Browser

Calling Silverlight code via JavaScript

Create a scriptable method

Create and register the object

Call the ScriptableMember function

Accessing HTML from Silverlight

Using the WebBrowser control

Using the DOM to access HTML

Storing Data Locally in the Client

Chapter 16 : Ten Handy Tips for Writing Silverlight Applications

Resources about Silverlight Beyond This Book

Ten Handy Expression Blend Shortcuts

Ten Handy Visual Studio Shortcuts

Debugging Silverlight Applications

Looking Out for Performance Pitfalls

Building for Accessibility

Internationalization and Localization

Build Composite Applications Using Prism

Use the Model-View-ViewModel (MVVM) Pattern to Manage Large Applications

Handy Tools

Silverlight™ 4 For Dummies®

by Mahesh Krishnan and Philip Beadle

Silverlight™ 4 For Dummies®

Published by
Wiley Publishing, Inc.
111 River St.
Hoboken, NJ 07030-5774
www.wiley.com

Copyright © 2010 by Wiley Publishing, Inc., Indianapolis, Indiana

Published simultaneously in Canada

No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, scanning or otherwise, except as permitted under Sections 107 or 108 of the 1976 United States Copyright Act, without either the prior written permission of the Publisher, or authorization through payment of the appropriate per-copy fee to the Copyright Clearance Center, 222 Rosewood Drive, Danvers, MA 01923, (978) 750-8400, fax (978) 646-8600. Requests to the Publisher for permission should be addressed to the Permissions Department, John Wiley & Sons, Inc., 111 River Street, Hoboken, NJ 07030, (201) 748-6011, fax (201) 748-6008, or online at http://www.wiley.com/go/permissions.

Trademarks: Wiley, the Wiley Publishing logo, For Dummies, the Dummies Man logo, A Reference for the Rest of Us!, The Dummies Way, Dummies Daily, The Fun and Easy Way, Dummies.com, Making Everything Easier, and related trade dress are trademarks or registered trademarks of John Wiley & Sons, Inc. and/or its affiliates in the United States and other countries, and may not be used without written permission. Silverlight is a trademark of Microsoft Corporation in the United States and/or other countries. All other trademarks are the property of their respective owners. Wiley Publishing, Inc., is not associated with any product or vendor mentioned in this book.

Limit of Liability/Disclaimer of Warranty: The publisher and the author make no representations or warranties with respect to the accuracy or completeness of the contents of this work and specifically disclaim all warranties, including without limitation warranties of fitness for a particular purpose. No warranty may be created or extended by sales or promotional materials. The advice and strategies contained herein may not be suitable for every situation. This work is sold with the understanding that the publisher is not engaged in rendering legal, accounting, or other professional services. If professional assistance is required, the services of a competent professional person should be sought. Neither the publisher nor the author shall be liable for damages arising herefrom. The fact that an organization or Website is referred to in this work as a citation and/or a potential source of further information does not mean that the author or the publisher endorses the information the organization or Website may provide or recommendations it may make. Further, readers should be aware that Internet Websites listed in this work may have changed or disappeared between when this work was written and when it is read.

For general information on our other products and services, please contact our Customer Care Department within the U.S. at 877-762-2974, outside the U.S. at 317-572-3993, or fax 317-572-4002.

For technical support, please visit www.wiley.com/techsupport.

Wiley also publishes its books in a variety of electronic formats. Some content that appears in print may not be available in electronic books.

Library of Congress Control Number: 2010924585

ISBN: 978-0-470-52465-7

Manufactured in the United States of America

10 9 8 7 6 5 4 3 2 1

About the Authors

Mahesh Krishnan has been a geek all his life and proud of it. He works as a Principal Consultant at Readify and is passionate about Software Architecture and new technologies. He has been working in the IT industry since 1992 and has worked on a range of projects, from shrink-wrapped products to large-enterprise applications across the globe. He is currently based in Melbourne, Australia, and runs the local .NET Developer user group. He also helped start the Silverlight Designer and Developers Network, a group that focuses on spreading the Silverlight message to both the developer and designer communities. He blogs at blogesh.wordpress.com, is very active in the developer community, and has presented a number of times at user groups, hands-on days, code camps, and Tech.Ed. He is married to Lakshmi and they have a wonderful three-year-old daughter, Riya.

Philip Beadle is a founding member of the DotNetNuke Core Team, a DotNetNuke Trustee, a Microsoft Certified Application Developer, and a Microsoft Certified Trainer. Philip now works for the DotNetNuke Corporation, an open source content management system built in ASP.NET, and was awarded the Microsoft Most Valuable Professional (MVP) award in ASP/ASP.NET in 2004. Philip also helped start the Silverlight Designer and Developers Network with Mahesh Krishnan and Jordan Knight. He speaks at many conferences, including Tech Ed, ReMIX, and DotNetNuke OpenForce, and speaks at local user group gatherings as well. Philip and Lorraine have a beautiful one-year-old daughter, Allegra Rose. You can visit Philip’s Web site at http://www.philipbeadle.net.

Dedication

To my loving parents, without whom I wouldn’t be who I am today, my daughter Riya, who constantly kept closing my notebook while writing the book so that I could play with her, and to my wife, Lakshmi, for putting up with me while I spent all my spare time on the book.

Mahesh Krishnan

To my wife, Lorraine, who supports me in all my endeavors, and to my darling daughter, Allegra Rose, who always brings a smile to my face and joy to my day.

Philip Beadle

Authors’ Acknowledgments

Writing a book is hard. Writing a book for Dummies is even harder — trying to articulate something in a way for someone with very little or no knowledge of the topic to understand is not easy. Making the book easy to read and ensuring that it is technically correct is, as I said, hard. Thankfully, I had some help along the way.

First and foremost, I would like to thank Susan Christophersen, the Project Editor, for hand holding me through the entire process. Susan, thanks for the guidance and all the work you’ve put into this book. The book is a huge improvement from the first cut that I sent you and most of the credit for that should go to you.

I would also like to thank Jordan Knight and Russ Mullen for diligently reading through the content and looking for technical errors, as well as providing valuable feedback.

A big thanks also to Katie Feltman and Wiley Publishing for providing me an opportunity to write this book.

Mahesh Krishnan

Publisher’s Acknowledgments

We’re proud of this book; please send us your comments through our online registration form located at www.dummies.com/register/.

Some of the people who helped bring this book to market include the following:

Acquisitions, Editorial, and Media Development

Project Editor and Copy Editor: Susan Christophersen

Acquisitions Editor: Katie Feltman

Technical Editors: Jordan Knight, Russ Mullen

Media Development Project Manager: Laura Moss-Hollister

Media Development Assistant Project Manager: Jenny Swisher

Media Development Associate Producers: Josh Frank, Marilyn Hummel, Douglas Kuhn, Shawn Patrick

Editorial Assistant: Amanda Foxworth

Editorial Assistant: Amanda Graham

Sr. Editorial Assistant: Cherie Case

Cartoons: Rich Tennant (www.the5thwave.com)

Composition Services

Project Coordinator: Katherine Crocker

Layout and Graphics: Joyce Haughey, Christin Swinford, Erin Zeltner

Proofreader: Laura Albert, Laura Bowman, John Greenough

Indexer: BIM Indexing & Proofreading Services

Publishing and Editorial for Technology Dummies

Richard Swadley, Vice President and Executive Group Publisher

Andy Cummings, Vice President and Publisher

Mary Bednarek, Executive Acquisitions Director

Mary C. Corder, Editorial Director

Publishing for Consumer Dummies

Diane Graves Steele, Vice President and Publisher

Composition Services

Debbie Stailey, Director of Composition Services

Introduction

Welcome to Silverlight 4 For Dummies. This book not only gives you an introduction to the bright new world of programming in Silverlight but is also loaded with hands-on steps and examples of using Expression Blend and Visual Studio with Silverlight to create rich Internet applications.

Silverlight is a cross-browser, cross-platform plug-in that runs rich interactive applications whose emphasis is on providing a rich user experience that incorporates audio, video, animation, and graphics.

What’s in This Book

Silverlight 4 For Dummies aims to give you all the information you need to create full-fledged Silverlight applications that you can host on your Web site. In this book, rather than overload you with pages and pages of technical explanations, we get you started right away on creating a Silverlight application and working with the controls that make Silverlight such an exciting addition to the world of Web site design. Of course, we do put the tasks we show you in context so that you can understand how the various components work — but we’ve tried to keep the explanations interesting, too.

Although the book introduces the basic components of Silverlight, chapter by chapter, you don’t have to read the chapters sequentially. If you already have a basic understanding of Silverlight, for example, and want to know more about creating animations for your Web site, just flip straight to Chapter 8 and dive in.

The examples in this book use XAML markup and C# code. If you’re thinking, “Huh? What’s XAML?” (which, by the way, is pronounced zamel), don’t worry: We tell you all about it in due course. All you need to know to get started is that XAML is the markup language that you use to design a user interface. To specify the UI’s behavior, you use a language such as C#. We show you examples of XAML many times throughout this book, and when you need to understand something about the C# code, we show you that, too.

C# and VB.NET are currently the two most popular languages that people working with Microsoft technologies use, and rather than confuse you by using both languages, we stick with just C#. If you are already familiar with VB.NET, you should be able to convert the sample code in this book line for line quite easily. Also, you’ll find much of the sample code that appears in this book on the companion Web site at www.dummies.com/go/silverlight4fd. Download the code from there and cut and paste freely to make life easier.

Foolish Assumptions

Even if you have no background in programming, you can learn a lot about using Silverlight from this book. However, if you already have some understanding of a programming language, you’ll have an easier time grasping the concepts introduced in this book.

We also assume that you know a little bit about HyperText Markup Language (HTML) and how to install and run applications. The tools required to create Silverlight applications run on Windows, so we assume that you are running Windows XP, Vista, or Windows 7.

Finally, we assume that you can obtain the tools you need to create Silverlight applications. Expression Blend and Visual Studio are not free, but you should be able to download evaluation versions of these programs to play around with if you are not prepared to invest in them just yet.

How This Book Is Organized

The book is divided into four parts, described next.

Part I: Illuminating Silverlight

In Part I, we introduce you to Silverlight and guide you to creating your first Silverlight application. We tell you in more detail what Silverlight is all about and what programs you need to install on your computer to get cracking in Silverlight.

Also in this part, you find out how to set properties on user interface elements, called controls, and you play around with drawing various shapes.

Part II: Managing Your Silverlight Controls

This part delves far more deeply into the world of controls than Part I does. In Chapter 4, you find out about some of the most commonly used controls such as text boxes and buttons, and in Chapter 5, we show you how to effectively arrange them on-screen.

With Silverlight, you can change a control’s appearance without changing how it works. You find out how to do this in Chapter 6, which describes styling and skinning. Styling means to create a style by specifying property values for a certain control and reusing those values throughout your application for a consistent appearance. With skinning, you completely change the look of the control.

In Chapter 7, you find out how to create your own controls — whether by aggregating a set of controls to form a new control or creating a control from scratch.

Chapter 8 introduces you to the exciting world of animation, and we show you how to animate controls on-screen.

The final chapter in this part, Chapter 9, familiarizes you with the important concept of data binding, which connects user interface elements to data. Traditionally, programmers have been busy constantly setting properties, such as the Text property, when the data for an element displays changes. With data binding, however, you tell the control what kind of data it is bound to and let Silverlight take care of the rest. Not only does Chapter 9 give you an insight into this wonderful way of programming, it also shows you how you can create data sources and sample data to test your application.

Part III: Connecting with Data

No application is complete without getting data from somewhere and displaying it to the users.

Chapter 10 shows you how to connect to data sources through the Web and extract the data you need to have returned to your application, while Chapter 11 takes you a step further to show you how you can expose data from your databases using a technology called WCF Data Services. Chapters 12 and 13 introduce you to a data service called WCF RIA Services, which helps you create a large line of business applications. In these chapters, you see how to retrieve data from a database, validate user input, secure your site by authenticating site users, and much more.

Part IV: The Part of Tens

The Part of Tens, which is a staple of all For Dummies books, offers a fun way of discovering intriguing or useful items (ten in each chapter) that aren’t covered in the other parts of the book.

In these chapters, we tell you about programs such as SketchFlow, which is a great tool to use for creating a prototype of your application, and Deep Zoom Composer, which helps you create an application with arresting images that visitors to your Web site can zoom into. This part is also packed with tips and other resources to explore.

Conventions Used in This Book

This book is saturated with how-to steps to follow for every topic we cover. These steps sometimes contain figures and sometimes source code. The figures may not match exactly what you see on your own screen. This is okay; the figures are meant as a guide in most cases and do not have to match your screen pixel by pixel.

You also find little figures in the margin like the one shown here. These figures help you easily identify a button referred to in the text.

Source code or XAML typically appears like this:

<Grid x:Name=”LayoutRoot” Background=”White”

. . .>

</Grid>

Notice the ellipsis indicated with three dots. The ellipsis indicates that we’ve left out some of the code for brevity so that you can focus on just the important bits in the code that are relevant to what we’re describing.

We use a special typeface to distinguish code terms in text, like so: The Text property. Also, when we present you with a series of menu commands to follow in sequence, it looks like this: Choose File⇒New Project. This means that you should choose File from the menu and, in the dialog box that appears, choose New Project.

Icons Used in This Book

When we want to draw your attention to an easy way to get something done, we include this icon in the margin.

Text with this icon next to it mentions points that you should keep in the back of your mind.

The Warning icon alerts you to a potential problem. Be on the lookout for these icons because they point out gotchas and Bad Things.

This icon serves up technical stuff that you don’t have to pay attention to unless you’re inclined to do so. If you are technically minded or are an experienced programmer, you will likely appreciate these technical bits. But if you are new to programming and want to skip over this technical stuff, feel free to do so.

Part I

Illuminating Silverlight

In this part . . .

This part gives you an introduction to Silverlight 4 and guides you to creating your first Silverlight application. We tell you what Silverlight is all about and what tools you need to install on your computer to get cracking in Silverlight.

The first chapter introduces Silverlight and provides an overview of what you can do with it. Chapter 2 takes off from there and helps you create simple applications using Visual Studio and Expression Blend. These two tools are the predominant tools covered in this book.

The final chapter of this part shows you how to set properties on user interface elements, or controls, and how to draw various shapes.

Chapter 1

Adding Silverlight to Your Web Development Toolkit

In This Chapter

Understanding Rich Internet Applications (RIA)

Seeing how Silverlight enables RIA development

Understanding what you need to develop Silverlight applications

Seeing what Silverlight can do beyond just creating a stylish user interface

Watch out, Adobe — Silverlight 4 is here to give you a run for your money. Web site designers and developers alike can find much to be excited about in Microsoft’s answer to Adobe Flash. As we tell you in more detail in the Introduction to this book, Silverlight 4 is one of a new family of Web site applications that provide graphics, animation, audio, and video — all the features necessary for the kind of rich user experience people have come to expect on the Web. These applications are called Rich Internet Applications (RIA). Adobe Flash was one of the first in the RIA arena; more recently, Microsoft made its entry into this space with the launch of Silverlight.

In this chapter, we give you an overview of what Silverlight is, what it can do, and the tools you need to develop Silverlight applications.

Obtaining and Running Silverlight

As does Adobe Flash, Silverlight runs as a plug-in within the browser and needs to be installed the first time any Silverlight application is run. A plug-in is a piece of software that is not part of the Web browser but can be added to it to run additional applications. When a user visits a Web site that needs the Silverlight plug-in, the Web browser will prompt the user to install it.

After the plug-in is installed, visiting any site that hosts a Silverlight application causes Silverlight to start up in the browser seamlessly. The plug-in itself is around 4MB, and in addition to the Silverlight runtime (which is responsible for running the Silverlight application), the application itself needs to be downloaded from the site that hosts the application. Modern popular browsers such as Internet Explorer, Firefox, Safari, and Chrome support Silverlight while running on Microsoft’s Windows operating systems 2003, XP, Vista, and 7) or on Apple’s Mac OS X. Recently, Silverlight has also been rewritten to run on browsers in Linux-based operating systems. With Silverlight 4, the application can also run as a stand-alone application — that is, it can be run outside the browser.

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!