Visual Basic .NET Programming

Total Page:16

File Type:pdf, Size:1020Kb

Visual Basic .NET Programming Visual Basic .NET Programming Harold Davis Associate Publisher: Richard Mills Acquisitions and Developmental Editor: Denise Santoro Lincoln Editor: Marilyn Smith Production Editor: Mae Lum Technical Editor: Scott Swigart Graphic Illustrator: Tony Jonick Electronic Publishing Specialist: Judy Fung Proofreaders: Nancy Riddiough, Nelson Kim, David Nash, Nanette Duffy Indexer: Jerilyn Sproston Cover Designer: Caryl Gorska, Gorska Design Cover Photographer: Jon Morgan/Photo Japan Copyright © 2002 Harold Davis. World rights reserved. No part of this publication may be stored in a retrieval system, transmitted, or reproduced in any way, including but not limited to photocopy, photograph, magnetic, or other record, without the prior agreement and written permission of the publisher. Figure 1.1 in Chapter 1, "Understanding Visual Basic .NET" Copyright © 2002, Phyllis Davis. All rights reserved. Library of Congress Card Number: 2002101977 ISBN: 0-7821-4038-6 SYBEX and the SYBEX logo are either registered trademarks or trademarks of SYBEX Inc. in the United States and/or other countries. Screen reproductions produced with FullShot 99 and Collage Complete. FullShot 99 © 1991- 1999 Inbit Incorporated. All rights reserved.FullShot is a trademark of Inbit Incorporated.Collage Complete is a trademark of Inner Media Inc. Internet screen shot(s) using Microsoft Internet Explorer 6 reprinted by permission from Microsoft Corporation. TRADEMARKS: SYBEX has attempted throughout this book to distinguish proprietary trademarks from descriptive terms by following the style used by the trademark holder wherever possible. The author and publisher have made their best efforts to prepare this book, and the content is based upon final release software whenever possible. Portions of the manuscript may be based upon pre-release versions supplied by software manufacturer(s). The author and the publisher make no representation or warranties of any kind with regard to the completeness or accuracy of the contents herein and accept no liability of any kind including but not limited to performance, merchantability, fitness for any particular purpose, or any losses or damages of any kind caused or alleged to be caused directly or indirectly from this book. Manufactured in the United States of America 10 9 8 7 6 5 4 3 2 1 For my parents, Martin and Virginia Acknowledgements It takes a village, they say, to raise a child. Undoubtedly, it takes a team to create a book like this. Without the wonderful people at Sybex, this book wouldn't exist. Richard Mills and Denise Santoro Lincoln originated this project and brought me into it. Denise got the book off the ground and moved it from conception through toddlerhood. Mae Lum masterfully handled the logistics, as the book became a full-fledged project. Scott Swigart technically reviewed my manuscript with a great and rare attention to detail. His technical understanding of .NET has greatly enriched this book. Marilyn Smith copyedited this book and has substantially helped to make it something we can all be proud of. I would also like to thank the Sybex production team, including graphic illustrator Tony Jonick; electronic publishing specialist Judy Fung; proofreaders Nancy Riddiough, Nelson Kim, David Nash, and Nanette Duffy; and indexer Jerilyn Sproston. In addition to team Sybex, I would like to thank my friend and agent, Matt Wagner, and Bill Gladstone, both of Waterside Productions. Without them, this book wouldn't exist. John Kilcullen and Stephen Compagni Portis also indirectly contributed to this book's genesis. Finally, I need to thank my wife, Phyllis Davis, who is once again a major contributor to a book of mine. Phyllis and my children, Julian and Nicholas, provided the inspiration, space, and motivation that made this book possible. Introduction At first, .NET was no more than a distant echo in my consciousness. For a long time—it seems like years, and actually, it was years—I heard the distant beating of publicity drums regarding .NET, and I couldn't care less. My concern has always been to work with high- quality programming tools that are solid, rather than playing with the latest technology toy, and I am ever suspicious of publicity campaigns. Visual Basic 6 worked well enough for me, my consulting clients, and the readers of my books. Why should I bother taking the time to understand this .NET thing until it was tried-and-true technology? What's the .NET Strategy? Before we get to my "Aha!" moment—and I've had several epiphanies related to .NET and Visual Basic .NET—I would like to step back for a second and consider exactly what .NET is and what it is not. This is particularly confusing because some things that Microsoft calls .NET are a matter of "vision," some are marketing terms, and others—such as Visual Basic .NET—are grounded technologies that are here today. (I mean, what could be more grounded as a technology than a programming language?) Pushing aside the clouds of confusion that swirl around the terminology, Microsoft's .NET strategy involves three related offerings: • .NET Framework and Visual Studio .NET, a runtime platform and development environment that works with languages including Visual Basic .NET • .NET Enterprise Servers, a set of enterprise server products such as Biztalk Server, Exchange Server, Mobile Information Server, and SQL Server, which happen to have been given the .NET moniker for marketing purposes • .NET MyServices, also sometimes called Hailstorm, which is a vision for creating services, such as the Passport user authentication service, that can be drawn upon as utilities by myriad distributed applications The domain of this book is the first of these: applications written in the Visual Basic .NET language, using the Visual Studio development environment, targeting the .NET Framework as a runtime platform. You can think of the runtime platform that .NET applications are written for as being analogous to the Java runtime "sandbox" that Java applications target, except that, at this point, the .NET Framework is primarily deployed on Microsoft Windows platforms. What's Special about Visual Basic .NET? So, what is so exciting about another programming language and another development environment, targeting another runtime? In some ways, the proof of this is "in the pudding"— you really need to take it for a test drive and find out for yourself. In the meantime, I would like to share with you a few of the features that made me sit up and take notice. The first thing that I found extraordinary was that Windows applications could be run within Internet Explorer. (There are some caveats here, of course: The target system needs to have the .NET Framework and a recent version of Internet Explorer installed.) Every time you successfully run a program, such as a Windows application, within the Visual Studio .NET development environment, a compiled executable is created. If you open this executable file in Internet Explorer, the application will run, looking and behaving for all the world like a normal Windows application. This creates the possibility of easily producing distributed applications with an extraordinarily rich user interface, and the user doesn't need to do anything more than click a hyperlink (Microsoft terms this no-touch deployment). My next epiphany was related to a slightly silly programming wish. It has always bugged me that application windows had to be rectangular. No more! In Chapter 6, "Working with Form Methods and Modules," I'll show you how to easily create an ovoid window. You may never create an application that uses a curvilinear interface, but what a relief to know that windows don't have to be square! I also found it very exciting that Visual Basic .NET allows you to create web applications using an event-driven programming model (rather than a top-to-bottom linear HTML model). And rolling your own web services, complete with XML definition and discovery files, is a matter of clicking a few buttons. In Chapter 19, "Building ASP.NET Web Applications," I'll explain the mechanics of creating web applications and web services. What Kind of Book Is This? The features I've mentioned, and many more features that are explained in this book, sound glitzy. But this book has its two, solid, peasant feet firmly planted on the ground. It is not a "gee-golly-whizz, isn't this technology wonderful" book. It is a matter-of-fact, here's how you do it kind of book. As author to reader, my pledge to you is that I do not tell you to do anything I haven't tried to do (and got to work). Every example, and every line of code, in this book is the result of my own (sometimes fluid and easy, sometimes desperate) attempts to get things to work. I believe this makes me a better guide for you than if I were some kind of programming superhero. It's not my job to show you that I know more than you do. It is my job to help you find your way. I am there with you, swerving to avoid the pitfalls, one step ahead, shining a flashlight in the dark. I know what you are likely to want to know, because I have been there, done that, and have been as blind as you. I know that everything in this book works, because I have made it work myself. This book is not a book about how to transition from Visual Basic 6 to Visual Basic .NET, and it is not a book about the future. It is a book about the present. Visual Basic .NET is now, and this book is a pragmatic guide to working with it. Who Should Read This Book? This book does not assume any formal programming knowledge on the part of readers.
Recommended publications
  • Charles Munson
    Charles Munson Current Address Permanent Address France [email protected] Florida, USA http://www.JetWhiz.com OBJECTIVE To obtain a software development or web programming position that utilizes a wide range of computer languages. EDUCATION Georgia Institute of Technology GPA 3.8 Doctor of Philosophy in Electrical & Computer Engineering (Ph.D. in progress) The University of Florida – Gainesville, Florida GPA 3.8, w/ honors Bachelor of Science in Computer Engineering RELEVANT Environments: KNOWLEDGE Experienced in Linux, BSD and Windows environments Knowledgeable with Macintosh-based systems Programming: Expert experience with Perl (14 years), PHP (14 years), JavaScript (15 years), C/C++ (11 years) and SQL Skilled with C# (7 years), Java (10 years), JSON/AJAX (Web 2.0 design), shell scripting (*Nix and Windows) and mobile application development Experience with assembly programming for various processors and microcontrollers (such as the MSP430 and 68HC12), including SPI communication Knowledge with Python, VBScript, QBasic, Pascal, ABAP (SAP), ASP.NET, Haskell Graphical interface (GUI) and user interface design using Java AWT and Swing, and also in C with the GTK+ toolkit and Win32 API Markup Languages: Expert knowledge of HTML5, (X)HTML, DHTML and XML (incl. Atom and RSS) Highly experienced with document formatting and transformations using XSL/XSLT and CSS Hardware: Reconfigurable computing with FPGA and CPLD devices in conjunction with VHDL and schematic design (Quartus) Circuit board (PCB) layout using Altium Designer
    [Show full text]
  • NET Framework
    Advanced Windows Programming .NET Framework based on: A. Troelsen, Pro C# 2005 and .NET 2.0 Platform, 3rd Ed., 2005, Apress J. Richter, Applied .NET Frameworks Programming, 2002, MS Press D. Watkins et al., Programming in the .NET Environment, 2002, Addison Wesley T. Thai, H. Lam, .NET Framework Essentials, 2001, O’Reilly D. Beyer, C# COM+ Programming, M&T Books, 2001, chapter 1 Krzysztof Mossakowski Faculty of Mathematics and Information Science http://www.mini.pw.edu.pl/~mossakow Advanced Windows Programming .NET Framework - 2 Contents The most important features of .NET Assemblies Metadata Common Type System Common Intermediate Language Common Language Runtime Deploying .NET Runtime Garbage Collection Serialization Krzysztof Mossakowski Faculty of Mathematics and Information Science http://www.mini.pw.edu.pl/~mossakow Advanced Windows Programming .NET Framework - 3 .NET Benefits In comparison with previous Microsoft’s technologies: Consistent programming model – common OO programming model Simplified programming model – no error codes, GUIDs, IUnknown, etc. Run once, run always – no "DLL hell" Simplified deployment – easy to use installation projects Wide platform reach Programming language integration Simplified code reuse Automatic memory management (garbage collection) Type-safe verification Rich debugging support – CLR debugging, language independent Consistent method failure paradigm – exceptions Security – code access security Interoperability – using existing COM components, calling Win32 functions Krzysztof
    [Show full text]
  • Investigating the Feasibility of an MPI-Like Library Implemented in .Net Using Only Fully Managed Code
    Investigating the Feasibility of an MPI-like Library Implemented in .Net Using Only Fully Managed Code Daniel Holmes MSc in High Performance Computing The University of Edinburgh Year of Presentation: 2007 Abstract The .Net development platform and the C# language, in particular, offer many benefits to programmers including increased productivity, security, reliability and robustness, as well as standards-based application portability and cross-language inter-operation. The Message Passing Interface (MPI) is a standardised high performance computing paradigm with efficient, frequently-used implementations in many popular languages. A partial implementation of McMPI, the first MPI-like library to be targeted at .Net and written in pure C#, is presented. It is sufficiently complete to demonstrate typical application code and to evaluate relative performance. Although the effective bandwidth for large messages (over 100 Kbytes) using 100Mbit/s Ethernet is good, the overheads introduced by .Net remoting and object serialisation are shown to result in high latency and to limit bandwidth to 166Mbit/s when using a 1Gbit/s Ethernet interconnection. A possible resolution that still uses pure C#, i.e. using .Net sockets, is proposed but not implemented. Contents Chapter 1. Introduction ..................................................................................... 1 Chapter 2. Background ..................................................................................... 2 2.1 Object-Oriented HPC .................................................................................
    [Show full text]
  • Adding Self-Healing Capabilities to the Common Language Runtime
    Adding Self-healing capabilities to the Common Language Runtime Rean Griffith Gail Kaiser Columbia University Columbia University [email protected] [email protected] Abstract systems can leverage to maintain high system availability is to perform repairs in a degraded mode of operation[23, 10]. Self-healing systems require that repair mechanisms are Conceptually, a self-managing system is composed of available to resolve problems that arise while the system ex- four (4) key capabilities [12]; Monitoring to collect data ecutes. Managed execution environments such as the Com- about its execution and operating environment, performing mon Language Runtime (CLR) and Java Virtual Machine Analysis over the data collected from monitoring, Planning (JVM) provide a number of application services (applica- an appropriate course of action and Executing the plan. tion isolation, security sandboxing, garbage collection and Each of the four functions participating in the Monitor- structured exception handling) which are geared primar- Analyze-Plan-Execute (MAPE) loop consumes and pro- ily at making managed applications more robust. How- duces knowledgewhich is integral to the correct functioning ever, none of these services directly enables applications of the system. Over its execution lifetime the system builds to perform repairs or consistency checks of their compo- and refines a knowledge-base of its behavior and environ- nents. From a design and implementation standpoint, the ment. Information in the knowledge-base could include preferred way to enable repair in a self-healing system is patterns of resource utilization and a “scorecard” tracking to use an externalized repair/adaptation architecture rather the success of applying specific repair actions to detected or than hardwiring adaptation logic inside the system where it predicted problems.
    [Show full text]
  • The Journal of Computing Sciences in Colleges
    The Journal of Computing Sciences in Colleges Papers of the 29th Annual CCSC Rocky Mountain Conference October 9th-10th, 2020 Front Range Community College Westminster, CO Baochuan Lu, Editor Bin Peng, Associate Editor Southwest Baptist University Park University Pam Smallwood, Regional Editor Regis University Volume 36, Number 2 October 2020 The Journal of Computing Sciences in Colleges (ISSN 1937-4771 print, 1937- 4763 digital) is published at least six times per year and constitutes the refereed papers of regional conferences sponsored by the Consortium for Computing Sciences in Colleges. Copyright ©2020 by the Consortium for Computing Sciences in Colleges. Per- mission to copy without fee all or part of this material is granted provided that the copies are not made or distributed for direct commercial advantage, the CCSC copyright notice and the title of the publication and its date appear, and notice is given that copying is by permission of the Consortium for Computing Sciences in Colleges. To copy otherwise, or to republish, requires a fee and/or specific permission. 2 Table of Contents The Consortium for Computing Sciences in Colleges Board of Directors 5 CCSC National Partners & Foreword 7 Welcome to the 2020 CCSC Rocky Mountain Conference 8 Regional Committees — 2020 CCSC Rocky Mountain Region 9 Reviewers — 2020 CCSC Rocky Mountain Conference 10 Integrating Cloud-based File Storage and NoSQL Databases with Mobile App SQLite — Conference Tutorial 11 Robert Sjodin, Mohamed Lotfy, Regis University What I Have Learned About Teaching
    [Show full text]
  • Python Guide Documentation 0.0.1
    Python Guide Documentation 0.0.1 Kenneth Reitz 2015 11 07 Contents 1 3 1.1......................................................3 1.2 Python..................................................5 1.3 Mac OS XPython.............................................5 1.4 WindowsPython.............................................6 1.5 LinuxPython...............................................8 2 9 2.1......................................................9 2.2...................................................... 15 2.3...................................................... 24 2.4...................................................... 25 2.5...................................................... 27 2.6 Logging.................................................. 31 2.7...................................................... 34 2.8...................................................... 37 3 / 39 3.1...................................................... 39 3.2 Web................................................... 40 3.3 HTML.................................................. 47 3.4...................................................... 48 3.5 GUI.................................................... 49 3.6...................................................... 51 3.7...................................................... 52 3.8...................................................... 53 3.9...................................................... 58 3.10...................................................... 59 3.11...................................................... 62
    [Show full text]
  • Mcandrew 10783720.Pdf (2.064Mb)
    T-4046 ELECTROCHEMICAL ASPECTS OF MAGNESIUM DISSOLUTION IN AQUEOUS KCl-NaCl ELECTROLYTES by Jerrilyn P. McAndrew ARTHUR LAKES LIBRARY COLORADO SCHOOL OF MINES GOLDEN, CO 80401 ProQuest Number: 10783720 All rights reserved INFORMATION TO ALL USERS The quality of this reproduction is dependent upon the quality of the copy submitted. In the unlikely event that the author did not send a com plete manuscript and there are missing pages, these will be noted. Also, if material had to be removed, a note will indicate the deletion. uest ProQuest 10783720 Published by ProQuest LLC(2018). Copyright of the Dissertation is held by the Author. All rights reserved. This work is protected against unauthorized copying under Title 17, United States C ode Microform Edition © ProQuest LLC. ProQuest LLC. 789 East Eisenhower Parkway P.O. Box 1346 Ann Arbor, Ml 48106- 1346 T—4046 A thesis submitted to the Faculty and Board of Trustees of the Colorado School of Hines in partial fulfillment of the requirements for the degree of Master of Science (Metallurgical and Materials Engineering). Golden, Colorado Date:: A J w j . S T Signed: ]A1 L U Approved Dr. Gerapd-'F'T Martins Thesis Advisor Golden, Colorado Date: /&<r-<5r / ? 9 & un. J. J. Moore Professor and Head, Department of Metallurgical and Materials Engineering T—4046 ABSTRACT The dissolution of magnesium metal in equimolar sodium chloride/potassium chloride aqueous electrolytes was investigated. The focus of the work conducted was on the electrochemical aspects of the dissolution process, as it relates to the equilibria in the electrolyte and the dissolution kinetics.
    [Show full text]
  • Run BASIC – a Breakthrough Web Application Server “Web Programming for People Who Really Like to Program!” Carl Gundel, [email protected]
    Run BASIC – A Breakthrough Web Application Server “Web programming for people who really like to program!” http://www.runbasic.com Carl Gundel, [email protected] Run BASIC allows you to apply your desktop programming skills to create web applications without struggling with the overhead of typical web programming frameworks. Unlike other web programming technologies, with Run BASIC there is no state to manage, you don't need to GET or POST anything, and you never even have to think about the Common Gateway Interface. You can easily deliver interesting and rich applications that are difficult to deliver with other tools. Run BASIC hides the web technology so you can just code. Honoring a Tradition of Simplicity Run BASIC is a version of the BASIC programming language. BASIC was designed from the start to be easy for the non-computer scientist to use. A small language with simple syntax and English-like commands, BASIC is easily learned. Modern implementations of BASIC also add important features such as support for structured programming and scoped subroutines. Inspired by the approachability of BASIC we decided to create a web programming system with those important qualities. When BASIC was at the peak of its popularity in the 1980's most people who used it were users of home computers. These were usually 8-bit microcomputers that plugged into a television set. With the flick of a power switch the user would almost instantly see something like this: SuperDuper BASIC v2.3 15485 Bytes Free Ready So the user was able to immediately begin typing commands and programming the machine.
    [Show full text]
  • Programming Shadows
    Programming Shadows Computer programming in the context of the Sundial Simon Wheaton-Smith FRI, MBCS, CITP Phoenix, AZ 1 ILLUSTRATING TIME’S SHADOW Programming Shadows by Simon Wheaton-Smith my business card in 1970 ISBN 978-0-9960026-2-2 Library of Congress Control Number: 2014904841 Simon Wheaton-Smith www.illustratingshadows.com [email protected] (c) 2004-2020 Simon Wheaton-Smith All rights reserved. February 14, 2017 April 1, 2020 2 THE ILLUSTRATING SHADOWS COLLECTION Illustrating Shadows provides several books or booklets:- Simple Shadows Build a horizontal dial for your location. Appropriate theory. Cubic Shadows Introducing a cube dial for your location. Appropriate theory. Cutting Shadows Paper cutouts for you to make sundials with. Illustrating Times Shadow the big book Illustrating Times Shadow ~ Some 400 pages covering almost every aspect of dialing. Includes a short appendix. Appendices Illustrating Times Shadow ~ The Appendices ~ Some 180 pages of optional detailed appendix material. Supplement Supplemental Shadows ~ Material in the form of a series of articles, covers more on the kinds of time, declination confusion, other proofs for the vertical decliner, Saxon, scratch, and mass dials, Islamic prayer times (asr), dial furniture, and so on! Programming Shadows A book discussing many programming languages, their systems and how to get them, many being free, and techniques for graphical depictions. This covers the modern languages, going back into the mists of time. Legacy languages include ALGOL, FORTRAN, the IBM 1401 Autocoder and SPS, the IBM 360 assembler, and Illustrating Shadows provides simulators for them, including the source code. Then C, PASCAL, BASIC, JAVA, Python, and the Lazarus system, as well as Octave, Euler, and Scilab.
    [Show full text]
  • Liberty BASIC for Windows V4
    Contents Liberty BASIC v4.0 Help Document Copyright 1992-2003 Shoptalk Systems - http://www.libertybasic.com/ "Windows is a registered trademark of Microsoft Corporation in the United States and other countries." What's New! What's new in version 4. Overview An overview of Liberty BASIC. The Liberty BASIC Language Syntax and Usage for the Liberty BASIC Language. Gui Programming Creating and using Graphical User Interfaces. Command Reference Detailed Listing of Liberty BASIC Commands. API and DLL Making API and DLL calls in Liberty BASIC. Graphical Sprites Sprites for Games and Graphics. Port I/O Controlling Hardware Ports. File Operations Accessing Disk Files. Mathematics Mathematical Operators and Functions. Text Text Manipulation and Functions. Graphics Using Color and Drawing Commands. Troubleshooting Solving Problems. Registering Liberty BASIC Why and how to register Liberty BASIC. http://www.libertybasic.com/ The official Liberty BASIC web site. Installing Liberty BASIC Installing and uninstalling Liberty BASIC. What's New! What's new in Liberty BASIC 4 - additions and modifications that make Liberty BASIC 4 different from previous versions of Liberty BASIC. Improvements to DIM TAB( n ) Printing columns with commas Handle Variables Subs for Event Handlers Global Variables BYREF - Passing by reference MAPHANDLE - changing the handle of open devices Graphics window scrollbar changes EVAL(code$) EVAL$(code$) Breakpoints for debugging DO LOOP Printerfont$ Printer Graphics Now Scaled Debugger Improvements ON ERROR GOTO and RESUME ENABLE, DISABLE, SHOW AND HIDE Groupboxes Accept New Commands PLAYMIDI, MIDIPOS(), STOPMIDI Named Drawing Segments Joystick Support STYLEBITS New Sprite Commands centersprite removesprite spriteoffset spritetravelxy spritetofront spritetoback spriteround Glossary Glossary of General Computer and Programming Terms Alphanumeric Any letter of the alphabet or any digit from 0 to 9.
    [Show full text]
  • ARCHIVED: Developing and Deploying .NET Applications On
    Developing and Deploying .NET Applications on AWS July 2020 This version has been archived. For the most recent version, see https://docs.aws.amazon.com/whitepapers/latest/develop-deploy-dotnet- apps-on-aws/develop-deploy-dotnet-apps-on-aws.html Archived Notices Customers are responsible for making their own independent assessment of the information in this document. This document: (a) is for informational purposes only, (b) represents current AWS product offerings and practices, which are subject to change without notice, and (c) does not create any commitments or assurances from AWS and its affiliates, suppliers or licensors. AWS products or services are provided “as is” without warranties, representations, or conditions of any kind, whether express or implied. The responsibilities and liabilities of AWS to its customers are controlled by AWS agreements, and this document is not part of, nor does it modify, any agreement between AWS and its customers. © 2020 Amazon Web Services, Inc. or its affiliates. All rights reserved. Archived 2 Contents Abstract ................................................................................................................................ 5 Introduction .......................................................................................................................... 6 Working with Different Variants of .NET .......................................................................... 6 Running .NET Applications in the AWS Cloud ................................................................
    [Show full text]
  • Copyrighted Material
    Preface . xi Acknowledgments . xiv Introduction . xv Part I: Silverlight Basics 1 Chapter 1: Getting to Know Silverlight . .3 What Is Silverlight? ...............................................................................................................3 Why Use Silverlight? .............................................................................................................4 Comparing Silverlight 1.0 and 2 ...........................................................................................5 Silverlight Framework Architecture .......................................................................................7 The Silverlight plug-in.................................................................................................7 The Silverlight core presentation framework ...............................................................8 The .NET Silverlight framework ..................................................................................9 Silverlight application architecture ............................................................................10 Summary ............................................................................................................................11 Chapter 2: Getting Started with Silverlight . 13 Implementing the Silverlight Development Environment ....................................................13 Installing Visual Studio 2008 ....................................................................................14 Installing the Silverlight plug-in ................................................................................14
    [Show full text]