C# 6.0 and the .NET 4.6 Framework

Total Page:16

File Type:pdf, Size:1020Kb

C# 6.0 and the .NET 4.6 Framework C# 6.0 and the .NET 4.6 Framework Seventh Edition Andrew Troelsen Philip Japikse C# 6.0 and the .NET 4.6 Framework Copyright © 2015 by Andrew Troelsen and Philip Japikse This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way, and transmission or information storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now known or hereafter developed. Exempted from this legal reservation are brief excerpts in connection with reviews or scholarly analysis or material supplied specifically for the purpose of being entered and executed on a computer system, for exclusive use by the purchaser of the work. Duplication of this publication or parts thereof is permitted only under the provisions of the Copyright Law of the Publisher's location, in its current version, and permission for use must always be obtained from Springer. Permissions for use may be obtained through RightsLink at the Copyright Clearance Center. Violations are liable to prosecution under the respective Copyright Law. ISBN-13 (pbk): 978-1-4842-1333-9 ISBN-13 (electronic): 978-1-4842-1332-2 Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name, logo, or image we use the names, logos, and images only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark. The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not identified as such, is not to be taken as an expression of opinion as to whether or not they are subject to proprietary rights. While the advice and information in this book are believed to be true and accurate at the date of publication, neither the authors nor the editors nor the publisher can accept any legal responsibility for any errors or omissions that may be made. The publisher makes no warranty, express or implied, with respect to the material contained herein. Managing Director: Welmoed Spahr Lead Editor: James DeWolf Technical Reviewer: Andy Olsen Development Editor: Douglas Pundick Editorial Board: Steve Anglin, Mark Beckner, Gary Cornell, Louise Corrigan, Jim DeWolf, Jonathan Gennick, Robert Hutchinson, Michelle Lowman, James Markham, Susan McDermott, Matthew Moodie, Jeffrey Pepper, Douglas Pundick, Ben Renow-Clarke, Gwenan Spearing, Matt Wade, Steve Weiss Coordinating Editor: Melissa Maldonado Copy Editors: Mary Behr, Kim Wimpsett Compositor: SPi Global Indexer: SPi Global Artist: SPi Global Distributed to the book trade worldwide by Springer Science+Business Media New York, 233 Spring Street, 6th Floor, New York, NY 10013. Phone 1-800-SPRINGER, fax (201) 348-4505, e-mail [email protected], or visit www.springer.com. Apress Media, LLC is a California LLC and the sole member (owner) is Springer Science + Business Media Finance Inc (SSBM Finance Inc). SSBM Finance Inc is a Delaware corporation. For information on translations, please e-mail [email protected], or visit www.apress.com. Apress and friends of ED books may be purchased in bulk for academic, corporate, or promotional use. eBook versions and licenses are also available for most titles. For more information, reference our Special Bulk Sales–eBook Licensing web page at www.apress.com/bulk-sales. Any source code or other supplementary material referenced by the author in this text is available to readers at www.apress.com. For detailed information about how to locate your book’s source code, go to www.apress.com/source-code/. To the entire Troelsen clan: Mary (mom), Walter (dad), Mandy (wife), and Soren (son). We miss you, Mikko (the cat). —Andrew To my family, Amy (wife), Conner (son), Logan (son), and Skylar (daughter), thank you for all of the support and patience you have given me. —Philip Contents at a Glance About the Authors ��������������������������������������������������������������������������������������������������� lix About the Technical Reviewer �������������������������������������������������������������������������������� lxi Acknowledgments ������������������������������������������������������������������������������������������������ lxiii Introduction ������������������������������������������������������������������������������������������������������������lxv ■ Part I: Introducing C# and the �NET Platform ������������������������������������� 1 ■ Chapter 1: The Philosophy of �NET ������������������������������������������������������������������������� 3 ■ Chapter 2: Building C# Applications �������������������������������������������������������������������� 35 ■ Part II: Core C# Programming ����������������������������������������������������������� 59 ■ Chapter 3: Core C# Programming Constructs, Part I ������������������������������������������� 61 ■ Chapter 4: Core C# Programming Constructs, Part II ���������������������������������������� 109 ■ Part III: Object-Oriented Programming with C# ������������������������������ 149 ■ Chapter 5: Understanding Encapsulation ���������������������������������������������������������� 151 ■ Chapter 6: Understanding Inheritance and Polymorphism �������������������������������� 205 ■ Chapter 7: Understanding Structured Exception Handling �������������������������������� 247 ■ Chapter 8: Working with Interfaces ������������������������������������������������������������������ 275 ■ Part IV: Advanced C# Programming ����������������������������������������������� 313 ■ Chapter 9: Collections and Generics ������������������������������������������������������������������ 315 ■ Chapter 10: Delegates, Events, and Lambda Expressions ��������������������������������� 355 v ■ CONTENTS AT A GLANCE ■ Chapter 11: Advanced C# Language Features ��������������������������������������������������� 399 ■ Chapter 12: LINQ to Objects ������������������������������������������������������������������������������� 439 ■ Chapter 13: Understanding Object Lifetime ������������������������������������������������������� 473 ■ Part V: Programming with �NET Assemblies ����������������������������������� 501 ■ Chapter 14: Building and Configuring Class Libraries ��������������������������������������� 503 ■ Chapter 15: Type Reflection, Late Binding, and Attribute-Based Programming ����� 555 ■ Chapter 16: Dynamic Types and the Dynamic Language Runtime �������������������� 599 ■ Chapter 17: Processes, AppDomains, and Object Contexts ������������������������������� 623 ■ Chapter 18: Understanding CIL and the Role of Dynamic Assemblies ��������������� 651 ■ Part VI: Introducing the �NET Base Class Libraries ������������������������� 693 ■ Chapter 19: Multithreaded, Parallel, and Async Programming ������������������������� 695 ■ Chapter 20: File I/O and Object Serialization����������������������������������������������������� 749 ■ Chapter 21: ADO�NET Part I: The Connected Layer ��������������������������������������������� 799 ■ Chapter 22: ADO�NET Part II: The Disconnected Layer ��������������������������������������� 859 ■ Chapter 23: ADO�NET Part III: Entity Framework ����������������������������������������������� 929 ■ Chapter 24: Introducing LINQ to XML �������������������������������������������������������������� 1001 ■ Chapter 25: Introducing Windows Communication Foundation ���������������������� 1021 ■ Part VII: Windows Presentation Foundation ��������������������������������� 1083 ■ Chapter 26: Introducing Windows Presentation Foundation and XAML ���������� 1085 ■ Chapter 27: Programming with WPF Controls ������������������������������������������������� 1147 ■ Chapter 28: WPF Graphics Rendering Services ����������������������������������������������� 1229 ■ Chapter 29: WPF Resources, Animations, Styles, and Templates �������������������� 1277 ■ Chapter 30: Notifications, Commands, Validation, and MVVM ������������������������ 1329 vi ■ CONTENTS AT A GLANCE ■ Part VIII: ASP�NET �������������������������������������������������������������������������� 1383 ■ Chapter 31: Introducing ASP�NET Web Forms �������������������������������������������������� 1385 ■ Chapter 32: ASP�NET Web Controls, Master Pages, and Themes ��������������������� 1435 ■ Chapter 33: ASP�NET State Management Techniques �������������������������������������� 1491 ■ Chapter 34: ASP�NET MVC and Web API ����������������������������������������������������������� 1527 ■ Appendix A: Programming with Windows Forms �������������������������������������������� 1603 ■ Appendix B: Platform-Independent �NET Development with Mono ������������������ 1651 Index ������������������������������������������������������������������������������������������������������������������� 1673 vii Contents About the Authors ��������������������������������������������������������������������������������������������������� lix About the Technical Reviewer �������������������������������������������������������������������������������� lxi Acknowledgments ������������������������������������������������������������������������������������������������ lxiii Introduction ������������������������������������������������������������������������������������������������������������lxv ■ Part I: Introducing C# and the �NET Platform ������������������������������������� 1 ■ Chapter 1: The Philosophy of �NET �������������������������������������������������������������������������
Recommended publications
  • Lap Around the .NET Framework 4
    Lap Around the .NET Framework 4 Marc Schweigert ([email protected]) Principal Developer Evangelist DPE US Federal Government Team http://blogs.msdn.com/devkeydet http://twitter.com/devkeydet .NET Framework 4.0 User Interface Services Data Access ASP.NET Windows Windows (WebForms, Entity Presentation Data Services Communication ADO.NET MVC, Dynamic Framework Foundation Foundation Data) Windows WinForms Workflow LINQ to SQL Foundation Core Managed Dynamic Parallel Base Class Extensibility LINQ Languages Language Extensions Library Framework Runtime Common Language Runtime ASP.NET MVC 1.0 (Model View Controller) A new Web Application Project type Simply an option Not a replacement for WebForms Builds on top ASP.NET Manual vs. Automatic Transmission Supports a clear separation of concerns Supports testability Supports “close to the metal” programming experience ASP.NET MVC 2 Visual Studio 2010 Included Visual Studio 2008 (Service Pack 1) Download Both versions built against .NET 3.5 What’s New in MVC 2? Better Separation of Concerns (Maintainability) Html.RenderAction() Areas Easier Validation (Maintainability/Productivity) Data Annotations Client Validation Helper Improvements (Maintainability/Productivity) Strongly-Typed Helpers Templated Helpers ASP.NET 4 Web Forms? Support for SEO with URL Routing Cleaner HTML Client ID improvements ViewState improvements Dynamic Data Improvements Chart Controls Productivity and Extensibility Rich Client Ajax supports both MVC & Web Forms WPF 4 Calendar, Data Grid, DatePicker Ribbon (separate download)
    [Show full text]
  • Ironpython in Action
    IronPytho IN ACTION Michael J. Foord Christian Muirhead FOREWORD BY JIM HUGUNIN MANNING IronPython in Action Download at Boykma.Com Licensed to Deborah Christiansen <[email protected]> Download at Boykma.Com Licensed to Deborah Christiansen <[email protected]> IronPython in Action MICHAEL J. FOORD CHRISTIAN MUIRHEAD MANNING Greenwich (74° w. long.) Download at Boykma.Com Licensed to Deborah Christiansen <[email protected]> For online information and ordering of this and other Manning books, please visit www.manning.com. The publisher offers discounts on this book when ordered in quantity. For more information, please contact Special Sales Department Manning Publications Co. Sound View Court 3B fax: (609) 877-8256 Greenwich, CT 06830 email: [email protected] ©2009 by Manning Publications Co. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by means electronic, mechanical, photocopying, or otherwise, without prior written permission of the publisher. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in the book, and Manning Publications was aware of a trademark claim, the designations have been printed in initial caps or all caps. Recognizing the importance of preserving what has been written, it is Manning’s policy to have the books we publish printed on acid-free paper, and we exert our best efforts to that end. Recognizing also our responsibility to conserve the resources of our planet, Manning books are printed on paper that is at least 15% recycled and processed without the use of elemental chlorine.
    [Show full text]
  • ASP.NET MVC with Entity Framework and CSS
    ASP.NET MVC with Entity Framework and CSS Lee Naylor ASP.NET MVC with Entity Framework and CSS Lee Naylor Newton-le-Willows, Merseyside United Kingdom ISBN-13 (pbk): 978-1-4842-2136-5 ISBN-13 (electronic): 978-1-4842-2137-2 DOI 10.1007/978-1-4842-2137-2 Library of Congress Control Number: 2016952810 Copyright © 2016 by Lee Naylor This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way, and transmission or information storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now known or hereafter developed. Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name, logo, or image we use the names, logos, and images only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark. The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not identified as such, is not to be taken as an expression of opinion as to whether or not they are subject to proprietary rights. While the advice and information in this book are believed to be true and accurate at the date of publication, neither the authors nor the editors nor the publisher can accept any legal responsibility for any errors or omissions that may be made.
    [Show full text]
  • Expression Trees 1 Dynamic Language Runtime Overview 5 Creating and Using Dynamic Objects 9 Early and Late Binding 17 Execute Ex
    Expression Trees 1 Dynamic Language Runtime Overview 5 Creating and Using Dynamic Objects 9 Early and Late Binding 17 Execute Expression Trees 19 Modify Expression Trees 21 Use Expression Trees to Build Dynamic Queries 23 Debugging Expression Trees 26 Expression Trees (Visual Basic) https://msdn.microsoft.com/en-us/library/mt654260(d=printer).aspx Expression Trees (Visual Basic) Visual Studio 2015 Expression trees represent code in a tree-like data structure, where each node is an expression, for example, a method call or a binary operation such as x < y . You can compile and run code represented by expression trees. This enables dynamic modification of executable code, the execution of LINQ queries in various databases, and the creation of dynamic queries. For more information about expression trees in LINQ, see How to: Use Expression Trees to Build Dynamic Queries (Visual Basic) . Expression trees are also used in the dynamic language runtime (DLR) to provide interoperability between dynamic languages and the .NET Framework and to enable compiler writers to emit expression trees instead of Microsoft intermediate language (MSIL). For more information about the DLR, see Dynamic Language Runtime Overview . You can have the C# or Visual Basic compiler create an expression tree for you based on an anonymous lambda expression, or you can create expression trees manually by using the System.Linq.Expressions namespace. Creating Expression Trees from Lambda Expressions When a lambda expression is assigned to a variable of type Expression(Of TDelegate) , the compiler emits code to build an expression tree that represents the lambda expression. The Visual Basic compiler can generate expression trees only from expression lambdas (or single-line lambdas).
    [Show full text]
  • Release 1.13 Kal Ahmed, Graham Moore
    BrightstarDB Documentation Release 1.13 Kal Ahmed, Graham Moore January 08, 2016 Contents 1 Getting Started 1 1.1 Architect.................................................1 1.2 Data....................................................1 1.3 Developer.................................................1 2 Concepts 3 2.1 Architecture...............................................3 2.2 Data Model................................................4 2.3 Storage Features.............................................5 2.4 Client APIs................................................5 2.5 Supported RDF Syntaxes........................................5 3 Why BrightstarDB? 7 3.1 An Associative Model..........................................7 3.2 Schema-less Data Store.........................................7 3.3 A Semantic Data Model.........................................7 3.4 Automatic Data caching.........................................8 3.5 Full Historical Capabilities........................................8 3.6 Developer Friendly Toolset.......................................8 3.7 Native .NET Semantic Web Database..................................8 3.8 RDF is great for powering Object Oriented solutions..........................8 4 Developing With BrightstarDB9 5 Developer Quick Start 11 5.1 Create New Project............................................ 11 5.2 Create the Model............................................. 12 5.3 Generating the Context and Classes................................... 13 5.4 Using the Context...........................................
    [Show full text]
  • How to Use the Powerpoint Template
    Getting Started with Oracle and .NET Christian Shay Eric Courville Product Manager Senior Member of Technical Staff Oracle Verizon Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted Program Agenda 1 Oracle and Microsoft 2 Oracle and .NET – Getting Started 3 Oracle Developer Tools for Visual Studio 4 Oracle Data Provider for .NET 5 Additional Oracle .NET Features Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle and Microsoft Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle’s Commitment to .NET ODP ODT & ODAC 64-bit ODAC ODAC ODAC ODAC ODAC ODAC 12c ODAC 12c .NET .NET SP 2006 ODAC 2008 2009 11.2 R2 11.2 R4 11.2 R5 R1 & R2 R3 & R4 2002-03 2005 2006 2007 2007-08 2009 2010 2011 2012 2013 2014-15 .NET VS .NET 2.0 & .NET .NET 3.5 & .NET 4 & EF .NET 4.5 & VS 2013 & VS 2015, 1.x 2003 VS 2005 3.0 VS 2008 VS 2010 VS 2012 Managed NuGet & EF Code First Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Relationship with Microsoft • Close collaboration with Microsoft Engineering teams Engineering • Access to pre-release Microsoft product drops • Visual Studio Industry Partner (VSIP) • Event sponsorship – MS Ignite and Worldwide Partner Marketing Conference • Joint training, road shows, collateral, etc. • Microsoft Premier Support Agreement Support • Collaboration of support teams Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle and .NET Getting Started Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle .NET Development Environment Oracle Developer Tools Oracle Data Provider Oracle Providers for for Visual Studio for .NET ASP.NET App Development Deploy Visual .NET Studio Framework Deploy Database Web or Development Client/Server Oracle Database Extensions for .NET Copyright © 2015, Oracle and/or its affiliates.
    [Show full text]
  • Python for the C# Developer
    {SDD} 2014 Software Design & Development Python for the C# developer Michael Kennedy @mkennedy http://blog.michaelckennedy.net Objectives • Introduce the basics of the Python language • Review what is awesome about C# and .NET • Explore Python's version of each C# / .NET feature DEVELOPMENTOR Michael Kennedy | @mkennedy | blog.michaelckennedy.net What is Python? • High-level programming language • Interpreted (sometimes JIT compiled) • Object-oriented (especially Python 3) • Strongly-typed with dynamic semantics • Syntax emphasizes readability • Supports modules and packages • Batteries included (large standard library [1]) DEVELOPMENTOR Michael Kennedy | @mkennedy | blog.michaelckennedy.net The ‘shape’ of a Python program • Python defines code blocks (known as suites in Python) using whitespace and colons. Things to note: def somemethod(name): • No semicolons if name == "Michael": print("Hi old friend") • Code blocks start with ‘:’ else: • Whitespace really really matters print("Nice to meet you") • There are no braces print("My name is … ") • There are no parentheses • Tabs are not your friend def main(): somemethod() Code suites DEVELOPMENTOR Michael Kennedy | @mkennedy | blog.michaelckennedy.net Python language demo DEVELOPMENTOR Michael Kennedy | @mkennedy | blog.michaelckennedy.net What's awesome about C# and .NET? System.Object: Everything is an object. LINQ IEnumerable + foreach loops Visual Studio / IDEs Class properties ( int Age {get; set;} ) Side-by-side execution (isolation) Anonymous types Iterator methods / yield return
    [Show full text]
  • Ironpython Und Die Dynamic Language Runtime (DLR) Softwareentwicklung Mit Python Auf Der Microsoft Windows Plattform
    IronPython und die Dynamic Language Runtime (DLR) Softwareentwicklung mit Python auf der Microsoft Windows Plattform Klaus Rohe ([email protected]) Microsoft Deutschland GmbH Einige Anmerkungen • Kein Python Tutorial: • Es werden einige Unterschiede von Python zu C# / Java dargestellt • Die Eigenschaften, Beispiele und Demos beziehen sich auf die Version IronPython 2.0 Beta 4. Die endgültig freigegebene Version von IronPython 2.0 kann andere Eigenschaften besitzen und sich anders verhalten. Herbstcampus 2008 – Titel des Vortrags 2 Agenda • Python • IronPython & die Dynamic Language Runtime • Benutzung von .NET Bibliotheken in IronPython • ADO.NET • WPF • Einbetten von IronPython in Applikationen • Interoperabilität • IronPython & Cpython • Interoperabilität CPython - .NET Herbstcampus 2008 – Titel des Vortrags 3 Historie von Python • Anfang der 1990er Jahre von Guido van Rossum am Zentrum für Mathematik und Informatik Amsterdam als Nachfolger für die Lehrsprache ABC entwickelt • Wurde ursprünglich für das verteilte Betriebssystem Amoeba entwickelt: http://www.cs.vu.nl/pub/amoeba/ • Der Name der Sprache bezieht sich auf die britische Komiker Gruppe Monty Python Herbstcampus 2008 – Titel des Vortrags 4 Charakterisierung von Python (1) • Python-Programm wird interpretiert • Unterstützt mehrere Programmierparadigmen: • Prozedural • Objektorientiert • Funktional • Klare, einfache Syntax • Portabel, verfügbar auf allen Plattformen mit C-Compiler • Windows, Mac OS, UNIX, LINUX, … • Leicht erweiterbar mit C/C++ Bibliotheken • Z. B. Bibliothek
    [Show full text]
  • Entity Framework Overview the Entity Framework Is a Set of Technologies in ADO.NET That Support the Development of Data-Oriented Software Applications
    Entity Framework Overview The Entity Framework is a set of technologies in ADO.NET that support the development of data-oriented software applications. Architects and developers of data-oriented applications have struggled with the need to achieve two very different objectives. They must model the entities, relationships, and logic of the business problems they are solving, and they must also work with the data engines used to store and retrieve the data. The data may span multiple storage systems, each with its own protocols; even applications that work with a single storage system must balance the requirements of the storage system against the requirements of writing efficient and maintainable application code. The Entity Framework enables developers to work with data in the form of domain-specific objects and properties, such as customers and customer addresses, without having to concern themselves with the underlying database tables and columns where this data is stored. With the Entity Framework, developers can work at a higher level of abstraction when they deal with data, and can create and maintain data-oriented applications with less code than in traditional applications. Because the Entity Framework is a component of the .NET Framework, Entity Framework applications can run on any computer on which the .NET Framework starting with version 3.5 SP1 is installed. The following sections in this topic provide more detail about the Entity Framework: Giving Life to Models Mapping Objects to Data Accessing and Changing Entity Data Data Providers Entity Data Model Tools Learning More Giving Life to Models A longstanding and common design approach when building an application or service is the division of the application or service into three parts: a domain model, a logical model, and a physical model.
    [Show full text]
  • A Multi-Programming-Language, Multi-Context Framework Designed for Computer Science Education Douglas Blank1, Jennifer S
    Bryn Mawr College Scholarship, Research, and Creative Work at Bryn Mawr College Computer Science Faculty Research and Computer Science Scholarship 2012 Calico: a multi-programming-language, multi- context framework designed for computer science education Doug Blank Bryn Mawr College, [email protected] Jennifer S. Kay James B. Marshall Keith O'Hara Mark Russo Let us know how access to this document benefits ouy . Follow this and additional works at: http://repository.brynmawr.edu/compsci_pubs Part of the Computer Sciences Commons Custom Citation Douglas Blank, Jennifer S. Kay, James B. Marshall, Keith O'Hara, and Mark Russo. Calico: A Multi-Programming-Language, Multi- Context Framework Designed for Computer Science Education. (2012). SIGCSE 2012 (Raleigh, NC). This paper is posted at Scholarship, Research, and Creative Work at Bryn Mawr College. http://repository.brynmawr.edu/compsci_pubs/53 For more information, please contact [email protected]. To appear in the Proceedings of the 43rd ACM Technical Symposium on Computer Science Education, SIGCSE 2012 Calico: A Multi-Programming-Language, Multi-Context Framework Designed for Computer Science Education Douglas Blank1, Jennifer S. Kay2, James B. Marshall3, Keith O'Hara4, and Mark Russo1 1Computer Science 2Computer Science 3Computer Science 4Computer Science Department Department Department Program Bryn Mawr College Rowan University Sarah Lawrence College Bard College Bryn Mawr, PA (USA) Glassboro, NJ (USA) Bronxville, NY (USA) Annandale-on-Hudson, NY (1) 610-526-6501 (1) 856-256-4593 (1) 914-395-2673 (1) 845-752-2359 [email protected] [email protected] [email protected] [email protected] ABSTRACT these contexts are often tied to a specific programming environ- The Calico project is a multi-language, multi-context program- ment, which limits their availability to only those willing to work ming framework and learning environment for computing educa- in that programming environment.
    [Show full text]
  • Pro DLR in .NET 4
    Pro DLR in .NET 4 Chaur Wu Pro DLR in .NET 4 Copyright © 2010 by Chaur Wu All rights reserved. No part of this work may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording, or by any information storage or retrieval system, without the prior written permission of the copyright owner and the publisher. ISBN 978-1-4302-3066-3 ISBN 978-1-4302-3067-0 (eBook) Printed and bound in the United States of America 9 8 7 6 5 4 3 2 1 Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name, logo, or image we use the names, logos, and images only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark. The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not identified as such, is not to be taken as an expression of opinion as to whether or not they are subject to proprietary rights. President and Publisher: Paul Manning Lead Editor: Jonathan Gennick Technical Reviewer: Scott Isaacs Editorial Board: Steve Anglin, Mark Beckner, Ewan Buckingham, Gary Cornell, Jonathan Gennick, Jonathan Hassell, Michelle Lowman, Matthew Moodie, Duncan Parkes, Jeffrey Pepper, Frank Pohlmann, Douglas Pundick, Ben Renow-Clarke, Dominic Shakeshaft, Matt Wade, Tom Welsh Coordinating Editor: Jennifer L. Blackwell Copy Editor: Sharon Terdeman Compositor: Bytheway Publishing Services Indexer: Brenda Miller Artist: Integra Software Services Pvt.
    [Show full text]
  • Dotnet for Java Developers.Pdf
    EDITION 1.0 DOWNLOAD available at: https://aka.ms/dotnet-forjavadevs PUBLISHED BY DevDiv, .NET and Visual Studio product teams A division of Microsoft Corporation One Microsoft Way Redmond, Washington 98052-6399 Copyright © 2018 by Microsoft Corporation All rights reserved. No part of the contents of this book may be reproduced or transmitted in any form or by any means without the written permission of the publisher. This book is provided “as-is” and expresses the author’s views and opinions. The views, opinions, and information expressed in this book, including URL and other Internet website references, may change without notice. Some examples depicted herein are provided for illustration only and are fictitious. No real association or connection is intended or should be inferred. Microsoft and the trademarks listed at http://www.microsoft.com on the “Trademarks” webpage are trademarks of the Microsoft group of companies. All other marks are property of their respective owners. .NET for Java Developers Prepared for Microsoft by Ted Neward, Principal, Neward & Associates, LLC Contents Introduction 1 History 3 Of components, managed environments, and code 3 Hello, .NET 5 Hello, strange new world 9 Getting Started: Tooling 10 Hello, web? 10 Docker all the things! 10 Linux .NET? 10 Visual Studio Code 11 Mac .NET? 12 Windows: Visual Studio 14 Hello, dotnet: CLI style 15 Hello, .NET: IDE style 16 Solutions and projects 18 Goodbye, HelloWorld 19 C#, Succinctly 20 C# Basics 20 Starting exploration: classes, properties, and methods 21 Lambdas, type inference, and extension classes 25 Language-INtegrated Query (LINQ) 27 Asynchronous programming with Async/Await 28 Frameworks, for the Win! 29 ASP.NET Core Web API 30 ASP.NET Core MVC 33 Entity Framework Core 35 Wrapping Up 39 iii Introduction When I was about eight years old, my parents took my sister and me to Paris, France.
    [Show full text]