Details

Visual Basic 2012 Programmer's Reference


Visual Basic 2012 Programmer's Reference


1. Aufl.

von: Rod Stephens

28,99 €

Verlag: Wiley
Format: EPUB
Veröffentl.: 07.08.2012
ISBN/EAN: 9781118332085
Sprache: englisch
Anzahl Seiten: 840

DRM-geschütztes eBook, Sie benötigen z.B. Adobe Digital Editions und eine Adobe ID zum Lesen.

Beschreibungen

<b>The comprehensive guide to Visual Basic 2012</b><br /> <br /> <p>Microsoft Visual Basic (VB) is the most popular programming language in the world, with millions of lines of code used in businesses and applications of all types and sizes. In this edition of the bestselling Wrox guide, Visual Basic expert Rod Stephens offers novice and experienced developers a comprehensive tutorial and reference to Visual Basic 2012. This latest edition introduces major changes to the Visual Studio development platform, including support for developing mobile applications that can take advantage of the Windows 8 operating system.</p> <ul> <li>This new edition includes information on developing Win8-compatible Metro applications using pre-loaded templates</li> <li>Explores the new design features and support for WPF designers</li> <li>Explains how to develop Windows smartphone apps</li> <li>Covers new VB language features such as Asynch and Await</li> </ul> <p><i>Visual Basic 2012 Programmer's Reference</i> is the programmer's go-to reference for the 2012 edition of Visual Basic.</p>
INTRODUCTION xxvii <p><b>PART I: IDE</b></p> <p><b>CHAPTER 1: INTRODUCTION TO THE IDE 3</b></p> <p>Introducing the IDE 3</p> <p>Different IDE Appearances 4</p> <p>IDE Configurations 5</p> <p>Projects and Solutions 6</p> <p>Starting the IDE 6</p> <p>Creating a Project 8</p> <p>Saving a Project 11</p> <p>Summary 13</p> <p><b>CHAPTER 2: MENUS, TOOLBARS, AND WINDOWS 15</b></p> <p>IDE Tools 15</p> <p>Menus 16</p> <p>File 16</p> <p>Edit 18</p> <p>View 19</p> <p>Project 20</p> <p>Build 24</p> <p>Debug 24</p> <p>Data 24</p> <p>Format 25</p> <p>Tools 25</p> <p>Test 28</p> <p>Window 28</p> <p>Help 29</p> <p>Toolbars 30</p> <p>Secondary Windows 30</p> <p>Toolbox 32</p> <p>Properties Window 33</p> <p>Summary 33</p> <p><b>CHAPTER 3: WINDOWS FORMS DESIGNER 35</b></p> <p>Introducing Windows Forms Designer 35</p> <p>Setting Designer Options 35</p> <p>Adding Controls 37</p> <p>Selecting Controls 38</p> <p>Copying Controls 39</p> <p>Moving and Sizing Controls 40</p> <p>Arranging Controls 40</p> <p>Setting Properties 40</p> <p>Setting Group Properties 41</p> <p>Using Smart Tags 41</p> <p>Adding Code to Controls 42</p> <p>Summary 43</p> <p><b>CHAPTER 4: WPF DESIGNER 45</b></p> <p>Introducing WPF Designer 45</p> <p>Editor Weaknesses 46</p> <p>Recognizing Designer Windows 47</p> <p>Adding Controls 48</p> <p>Selecting Controls 49</p> <p>Moving and Sizing Controls 50</p> <p>Setting Properties 51</p> <p>Setting Group Properties 51</p> <p>Adding Code to Controls 52</p> <p>Summary 53</p> <p><b>CHAPTER 5: VISUAL BASIC CODE EDITOR 55</b></p> <p>Editing Code 55</p> <p>Margin Icons 56</p> <p>Outlining 58</p> <p>Tooltips 59</p> <p>IntelliSense 60</p> <p>Code Coloring and Highlighting 61</p> <p>Code Snippets 63</p> <p>Architectural Tools 64</p> <p>Rename 64</p> <p>Go To Definition 64</p> <p>Go To Type Definition 64</p> <p>Highlight References 65</p> <p>Find All References 65</p> <p>Generate From Usage 65</p> <p>The Code Editor at Run Time 66</p> <p>Summary 68</p> <p><b>CHAPTER 6: DEBUGGING 69</b></p> <p>Debugging and Testing 69</p> <p>The Debug Menu 70</p> <p>The Debug ➪ Windows Submenu 72</p> <p>The Breakpoints Window 74</p> <p>The Command and Immediate Windows 75</p> <p>Summary 77</p> <p><b>PART II: GETTING STARTED</b></p> <p><b>CHAPTER 7: SELECTING WINDOWS FORMS CONTROLS 81</b></p> <p>Controls 81</p> <p>Controls Overview 82</p> <p>Choosing Controls 86</p> <p>Containing and Arranging Controls 87</p> <p>Making Selections 89</p> <p>Entering Data 90</p> <p>Displaying Data 90</p> <p>Providing Feedback 91</p> <p>Initiating Action 92</p> <p>Displaying Graphics 94</p> <p>Displaying Dialog Boxes 94</p> <p>Third-Party Controls 95</p> <p>Summary 96</p> <p><b>CHAPTER 8: USING WINDOWS FORMS CONTROLS 97</b></p> <p>Using Controls and Components 97</p> <p>Controls and Components 98</p> <p>Creating Controls 99</p> <p>Properties 101</p> <p>Properties at Design Time 101</p> <p>Properties at Run Time 104</p> <p>Useful Control Properties 106</p> <p>Position and Size Properties 109</p> <p>Methods 110</p> <p>Events 110</p> <p>Creating Event Handlers at Design Time 111</p> <p>Validation Events 112</p> <p>Summary 114</p> <p><b>CHAPTER 9: WINDOWS FORMS 115</b></p> <p>Using Forms 115</p> <p>Transparency 116</p> <p>About, Splash, and Login Forms 117</p> <p>Mouse Cursors 118</p> <p>Icons 120</p> <p>Application Icons 121</p> <p>Notification Icons 121</p> <p>Properties Adopted by Child Controls 122</p> <p>Property Reset Methods 123</p> <p>Overriding WndProc 123</p> <p>MRU Lists 125</p> <p>Dialog Boxes 126</p> <p>Wizards 128</p> <p>Summary 129</p> <p><b>CHAPTER 10: SELECTING WPF CONTROLS 131</b></p> <p>WPF Controls and Code 131</p> <p>Controls Overview 132</p> <p>Containing and Arranging Controls 133</p> <p>Making Selections 136</p> <p>Entering Data 137</p> <p>Displaying Data 137</p> <p>Providing Feedback 138</p> <p>Initiating Action 138</p> <p>Presenting Graphics and Media 139</p> <p>Providing Navigation 140</p> <p>Managing Documents 140</p> <p>Digital Ink 141</p> <p>Summary 142</p> <p><b>CHAPTER 11: USING WPF CONTROLS 143</b></p> <p>WPF Controls 143</p> <p>WPF Concepts 144</p> <p>Separation of User Interface and Code 144</p> <p>WPF Control Hierarchies 145</p> <p>WPF in the IDE 145</p> <p>Editing XAML 146</p> <p>Editing Visual Basic Code 147</p> <p>XAML Features 148</p> <p>Objects 148</p> <p>Resources 151</p> <p>Styles 152</p> <p>Templates 153</p> <p>Transformations 156</p> <p>Animations 156</p> <p>Drawing Objects 159</p> <p>Procedural WPF 162</p> <p>Documents 166</p> <p>Flow Documents 166</p> <p>Fixed Documents 168</p> <p>XPS Documents 169</p> <p>Summary 169</p> <p><b>CHAPTER 12: WPF WINDOWS 171</b></p> <p>Using WPF Windows 171</p> <p>Window Applications 172</p> <p>Page Applications 174</p> <p>Browser Applications 174</p> <p>Frame Applications 176</p> <p>Summary 177</p> <p><b>CHAPTER 13: PROGRAM AND MODULE STRUCTURE 179</b></p> <p>Solutions and Projects 179</p> <p>Hidden Files 180</p> <p>Code File Structure 184</p> <p>Code Regions 185</p> <p>Conditional Compilation 186</p> <p>Namespaces 193</p> <p>Typographic Code Elements 195</p> <p>Comments 195</p> <p>XML Comments 195</p> <p>Line Continuation 198</p> <p>Implicit Line Continuation 199</p> <p>Line Joining 200</p> <p>Summary 200</p> <p><b>CHAPTER 14: DATA TYPES, VARIABLES, AND CONSTANTS 203</b></p> <p>Variables 203</p> <p>Data Types 204</p> <p>Type Characters 207</p> <p>Data Type Conversion 210</p> <p>Narrowing Conversions 210</p> <p>Data Type Parsing Methods 212</p> <p>Widening Conversions 213</p> <p>The Convert Class 213</p> <p>ToString 213</p> <p>Variable Declarations 214</p> <p>Attribute_List 214</p> <p>Accessibility 215</p> <p>Shared 216</p> <p>Shadows 216</p> <p>ReadOnly 219</p> <p>Dim 219</p> <p>WithEvents 220</p> <p>Name 221</p> <p>Bounds_List 222</p> <p>New 223</p> <p>As Type and Inferred Types 224</p> <p>Initialization_Expression 225</p> <p>Initializing Collections 228</p> <p>Multiple Variable Declarations 229</p> <p>Option Explicit and Option Strict 230</p> <p>Scope 233</p> <p>Block Scope 233</p> <p>Procedure Scope 234</p> <p>Module Scope 234</p> <p>Namespace Scope 235</p> <p>Restricting Scope 235</p> <p>Parameter Declarations 236</p> <p>Property Procedures 238</p> <p>Enumerated Data Types 240</p> <p>Anonymous Types 243</p> <p>Nullable Types 244</p> <p>Constants 244</p> <p>Accessibility 245</p> <p>As Type 245</p> <p>Initialization_Expression 246</p> <p>Delegates 246</p> <p>Naming Conventions 248</p> <p>Summary 249</p> <p><b>CHAPTER 15: OPERATORS 251</b></p> <p>Understanding Operators 251</p> <p>Arithmetic Operators 252</p> <p>Concatenation Operators 253</p> <p>Comparison Operators 253</p> <p>Logical Operators 255</p> <p>Bitwise Operators 257</p> <p>Operator Precedence 257</p> <p>Assignment Operators 259</p> <p>The StringBuilder Class 260</p> <p>Date and TimeSpan Operations 261</p> <p>Operator Overloading 262</p> <p>Summary 266</p> <p><b>CHAPTER 16: SUBROUTINES AND FUNCTIONS 267</b></p> <p>Managing Code 267</p> <p>Subroutines 268</p> <p>Attribute_List 268</p> <p>Inheritance_Mode 272</p> <p>Accessibility 273</p> <p>Subroutine_Name 274</p> <p>Parameters 274</p> <p>Implements interface.subroutine 279</p> <p>Statements 281</p> <p>Functions 281</p> <p>Property Procedures 283</p> <p>Extension Methods 284</p> <p>Lambda Functions 285</p> <p>Relaxed Delegates 287</p> <p>Asynchronous Methods 290</p> <p>Calling EndInvoke Directly 291</p> <p>Handling a Callback 293</p> <p>Using Async and Await 295</p> <p>Summary 297</p> <p><b>CHAPTER 17: PROGRAM CONTROL STATEMENTS 299</b></p> <p>Controlling Programs 299</p> <p>Decision Statements 299</p> <p>Single-Line If Then 300</p> <p>Multiline If Then 300</p> <p>Select Case 301</p> <p>Enumerated Values 304</p> <p>IIf 304</p> <p>If 306</p> <p>Choose 306</p> <p>Looping Statements 308</p> <p>For Next 308</p> <p>Non-Integer For Next Loops 311</p> <p>For Each 311</p> <p>Enumerators 314</p> <p>Iterators 316</p> <p>Do Loop Statements 316</p> <p>While End 318</p> <p>Summary 318</p> <p><b>CHAPTER 18: ERROR HANDLING 321</b></p> <p>The Struggle for Perfection 321</p> <p>Bugs versus Unplanned Conditions 322</p> <p>Catching Bugs 323</p> <p>Catching Unplanned Conditions 324</p> <p>Global Exception Handling 326</p> <p>Structured Error Handling 328</p> <p>Exception Objects 330</p> <p>Throwing Exceptions 331</p> <p>Re-throwing Exceptions 333</p> <p>Custom Exceptions 334</p> <p>Debugging 335</p> <p>Summary 336</p> <p><b>CHAPTER 19: DATABASE CONTROLS AND OBJECTS 337</b></p> <p>Data Sources 337</p> <p>Automatically Connecting to Data 338</p> <p>Connecting to the Data Source 338</p> <p>Adding Data Controls to the Form 341</p> <p>Automatically Created Objects 344</p> <p>Other Data Objects 345</p> <p>Data Overview 346</p> <p>Connection Objects 347</p> <p>Transaction Objects 350</p> <p>Data Adapters 352</p> <p>Command Objects 356</p> <p>DataSet 358</p> <p>DataTable 360</p> <p>DataRow 363</p> <p>DataColumn 365</p> <p>DataRelation 366</p> <p>Constraints 368</p> <p>DataView 370</p> <p>DataRowView 373</p> <p>Simple Data Binding 373</p> <p>CurrencyManager 374</p> <p>Complex Data Binding 377</p> <p>Summary 379</p> <p><b>CHAPTER 20: LINQ 381</b></p> <p>The Many Faces of LINQ 381</p> <p>Introduction to LINQ 383</p> <p>Basic LINQ Query Syntax 384</p> <p>From 385</p> <p>Where 386</p> <p>Order By 386</p> <p>Select 387</p> <p>Using LINQ Results 389</p> <p>Advanced LINQ Query Syntax 390</p> <p>Join 390</p> <p>Group By 391</p> <p>Aggregate Functions 393</p> <p>Set Operations 394</p> <p>Limiting Results 394</p> <p>LINQ Functions 395</p> <p>LINQ Extension Methods 397</p> <p>Method-Based Queries 397</p> <p>Method-Based Queries with Lambda Functions 399</p> <p>Extending LINQ 401</p> <p>LINQ to Objects 403</p> <p>LINQ to XML 404</p> <p>XML Literals 404</p> <p>LINQ into XML 405</p> <p>LINQ out of XML 406</p> <p>LINQ to ADO.NET 409</p> <p>LINQ to SQL and LINQ to Entities 409</p> <p>LINQ to DataSet 410</p> <p>PLINQ 413</p> <p>Summary 414</p> <p><b>CHAPTER 21: METRO-STYLE APPLICATIONS 417</b></p> <p>Building Metro-Style Applications 417</p> <p>Starting a New Project 418</p> <p>Special Image Files 419</p> <p>Building MetroBones 420</p> <p>Control Layout 421</p> <p>XAML Code 421</p> <p>Zooming in on the Controls 424</p> <p>Visual Basic Code 424</p> <p>Testing 428</p> <p>Summary 429</p> <p><b>PART III: OBJECT-ORIENTED PROGRAMMING</b></p> <p><b>CHAPTER 22: OOP CONCEPTS 433</b></p> <p>Introducing OOP 433</p> <p>Classes 434</p> <p>Encapsulation 436</p> <p>Inheritance 437</p> <p>Inheritance Hierarchies 438</p> <p>Refi nement and Abstraction 438</p> <p>“Has-a” and “Is-a” Relationships 441</p> <p>Adding and Modifying Class Features 441</p> <p>Interface Inheritance 443</p> <p>Polymorphism 444</p> <p>Method Overloading 445</p> <p>Extension Methods 446</p> <p>Summary 447</p> <p><b>CHAPTER 23: CLASSES AND STRUCTURES 449</b></p> <p>Packaging Data 449</p> <p>Classes 450</p> <p>Attribute_list 450</p> <p>Partial 451</p> <p>Accessibility 452</p> <p>Shadows 453</p> <p>Inheritance 454</p> <p>Implements interface 456</p> <p>Structures 456</p> <p>Structures Cannot Inherit 457</p> <p>Structures Are Value Types 457</p> <p>Memory Required 457</p> <p>Heap and Stack Performance 459</p> <p>Object Assignment 459</p> <p>Parameter Passing 460</p> <p>Boxing and Unboxing 461</p> <p>Class Instantiation Details 461</p> <p>Structure Instantiation Details 464</p> <p>Garbage Collection 466</p> <p>Finalize 467</p> <p>Dispose 469</p> <p>Constants, Properties, and Methods 471</p> <p>Events 473</p> <p>Declaring Events 473</p> <p>Raising Events 474</p> <p>Catching Events 475</p> <p>Shared Variables 477</p> <p>Shared Methods 477</p> <p>Summary 479</p> <p><b>CHAPTER 24: NAMESPACES 481</b></p> <p>Handling Name Confl icts 481</p> <p>The Imports Statement 482</p> <p>Automatic Imports 484</p> <p>Namespace Aliases 486</p> <p>Namespace Elements 486</p> <p>The Root Namespace 487</p> <p>Making Namespaces 487</p> <p>Classes, Structures, and Modules 488</p> <p>Resolving Namespaces 489</p> <p>Summary 492</p> <p><b>CHAPTER 25: COLLECTION CLASSES 493</b></p> <p>Grouping Data 493</p> <p>What Is a Collection? 494</p> <p>Arrays 494</p> <p>Array Dimensions 496</p> <p>Lower Bounds 497</p> <p>Resizing 497</p> <p>Speed 498</p> <p>Other Array Class Features 498</p> <p>Collections 499</p> <p>ArrayList 499</p> <p>StringCollection 501</p> <p>NameValueCollection 501</p> <p>Dictionaries 503</p> <p>ListDictionary 503</p> <p>Hashtable 504</p> <p>HybridDictionary 505</p> <p>StringDictionary 505</p> <p>SortedList 505</p> <p>CollectionsUtil 505</p> <p>Stacks and Queues 506</p> <p>Stack 506</p> <p>Queue 508</p> <p>Generics 509</p> <p>Collection Initializers 511</p> <p>Iterators 512</p> <p>Summary 513</p> <p><b>CHAPTER 26: GENERICS 515</b></p> <p>Class Creators 515</p> <p>Advantages of Generics 516</p> <p>Defining Generics 516</p> <p>Generic Constructors 517</p> <p>Multiple Types 518</p> <p>Constrained Types 520</p> <p>Instantiating Generic Classes 521</p> <p>Imports Aliases 522</p> <p>Derived Classes 523</p> <p>Generic Collection Classes 523</p> <p>Generic Methods 524</p> <p>Generics and Extension Methods 524</p> <p>Summary 526</p> <p><b>PART IV: INTERACTING WITH THE ENVIRONMENT</b></p> <p><b>CHAPTER 27: PRINTING 529</b></p> <p>Printing Concepts 529</p> <p>Basic Printing 530</p> <p>Drawing Basics 534</p> <p>Graphics Objects 534</p> <p>Pens 536</p> <p>Brushes 538</p> <p>A Booklet Example 540</p> <p>Summary 545</p> <p><b>CHAPTER 28: CONFIGURATION AND RESOURCES 547</b></p> <p>The Need for Configuration 547</p> <p>My 548</p> <p>Me and My 549</p> <p>My Sections 549</p> <p>Environment 550</p> <p>Setting Environment Variables 550</p> <p>Using Environ 551</p> <p>Using System.Environment 551</p> <p>Registry 553</p> <p>Native Visual Basic Registry Methods 554</p> <p>My.Computer.Registry 556</p> <p>Configuration Files 559</p> <p>Resource Files 562</p> <p>Application Resources 562</p> <p>Using Application Resources 563</p> <p>Embedded Resources 564</p> <p>Localization Resources 564</p> <p>Application 566</p> <p>Application Properties 566</p> <p>Application Methods 567</p> <p>Application Events 568</p> <p>Summary 569</p> <p><b>CHAPTER 29: STREAMS 571</b></p> <p>Stream Concepts 571</p> <p>Stream 572</p> <p>FileStream 574</p> <p>MemoryStream 575</p> <p>BinaryReader and BinaryWriter 576</p> <p>TextReader and TextWriter 578</p> <p>StringReader and StringWriter 579</p> <p>StreamReader and StreamWriter 580</p> <p>OpenText, CreateText, and AppendText 581</p> <p>Custom Stream Classes 582</p> <p>Summary 583</p> <p><b>CHAPTER 30: FILESYSTEM OBJECTS 585</b></p> <p>Programming Approaches 585</p> <p>Permissions 586</p> <p>Visual Basic Methods 586</p> <p>File Methods 586</p> <p>File System Methods 588</p> <p>Sequential-File Access 589</p> <p>Random-File Access 589</p> <p>Binary-File Access 592</p> <p>.NET Framework Classes 592</p> <p>Directory 592</p> <p>File 594</p> <p>DriveInfo 595</p> <p>DirectoryInfo 596</p> <p>FileInfo 598</p> <p>FileSystemWatcher 600</p> <p>Path 602</p> <p>My.Computer.FileSystem 604</p> <p>My.Computer.FileSystem.SpecialDirectories 606</p> <p>Summary 606</p> <p><b>PART V: APPENDICES</b></p> <p>APPENDIX A: USEFUL CONTROL PROPERTIES, METHODS, AND EVENTS 611</p> <p>APPENDIX B: VARIABLE DECLARATIONS AND DATA TYPES 619</p> <p>APPENDIX C: OPERATORS 629</p> <p>APPENDIX D: SUBROUTINE AND FUNCTION DECLARATIONS 637</p> <p>APPENDIX E: CONTROL STATEMENTS 641</p> <p>APPENDIX F: ERROR HANDLING 647</p> <p>APPENDIX G: WINDOWS FORMS CONTROLS AND COMPONENTS 649</p> <p>APPENDIX H: WPF CONTROLS 657</p> <p>APPENDIX I: VISUAL BASIC POWER PACKS 665</p> <p>APPENDIX J: FORM OBJECTS 669</p> <p>APPENDIX K: CLASSES AND STRUCTURES 681</p> <p>APPENDIX L: LINQ 685</p> <p>APPENDIX M: GENERICS 695</p> <p>APPENDIX N: GRAPHICS 699</p> <p>APPENDIX O: USEFUL EXCEPTION CLASSES 711</p> <p>APPENDIX P: DATE AND TIME FORMAT SPECIFIERS 715</p> <p>APPENDIX Q: OTHER FORMAT SPECIFIERS 719</p> <p>APPENDIX R: THE APPLICATION CLASS 725</p> <p>APPENDIX S: THE MY NAMESPACE 729</p> <p>APPENDIX T: STREAMS 747</p> <p>APPENDIX U: FILESYSTEM CLASSES 755</p> <p>APPENDIX V: VISUAL STUDIO VERSIONS 771</p> <p>INDEX 773</p>
<p><b>Rod Stephens</b> is a VB programming guru and the author of more than two dozen programming books, including <i>Stephens' Visual Basic Programming 24-Hour Trainer</i>. He also writes frequently for such magazines as <i>Visual Basic Developer, Visual Basic Programmer's Journal,</i> and <i>Dr. Dobb's Journal</i>. Rod's VB Helper website (vb-helper.com) provides thousands of pages of tips, tricks, and code examples for VB programmers.</p>
<p><b>Learn to write code that leverages the latest features of Visual Basic 2012</b></p> <p>Visual Basic 2012 is packed with powerful features and this book will help you master them all. You'll gain a solid understanding of essential Visual Basic topics and begin applying the information to perform a host of important development tasks. The tutorials inside are filled with code examples and the best methods for using them to write your own programs. Soon you'll be building sophisticated applications as you learn to get the most out of forms, windows, controls, and other objects that help make Visual Basic such a popular programming language.</p> <p><i>Visual Basic 2012 Programmer's Reference:</i></p> <ul> <li>Explores the Visual Studio integrated development environment (IDE) from a developer's point of view</li> <li>Covers the objects a program uses to build a user interface and implement the program's functionality</li> <li>Shows how to perform specific tasks and why one approach might be better than another</li> <li>Discusses the fundamental concepts of object-oriented programming</li> <li>Uncovers how an application can interact with its environment, including loading data in external sources</li> <li>Offers a quick review of the syntax for particular commands</li> </ul> <p><b>Wrox Programmer's References</b> are designed to give the experienced developer straight facts on a new technology, without hype or unnecessary explanations. They deliver hard information with plenty of practical examples.</p> <p><b>wrox.com</b></p> <p><b>Programmer Forums</b></p> <p><b>Join our Programmer to Programmer forums to ask and answer programming questions about this book, join discussions on the hottest topics in the industry, and connect with fellow programmers from around the world.</b></p> <p><b>Code Downloads</b></p> <p>Take advantage of free code samples from this book, as well as code samples from hundreds of other books, all ready to use.</p> <p><b>Read More</b></p> <p>Find articles, ebooks, sample chapters and tables of contents for hundreds of books, and more reference resources on programming topics that matter to you.</p>

Diese Produkte könnten Sie auch interessieren:

Domain Architectures
Domain Architectures
von: Daniel J. Duffy
PDF ebook
31,99 €