.NET Framework Notes for Professionals book

    Amazing collection of free programming books

    Collecting
    Free
    Amazing collection of free programming books

    The Notes for Professionals book is compiled from Stack Overflow Documentation, the content is written by the beautiful people at Stack Overflow. Text content is released under Creative Commons BY-SA. See credits at the end of this book whom contributed to the various chapters. Images may be copyright of their respective owners unless otherwise specified

    Book created for educational purposes and is not affiliated with group(s), company(s) nor Stack Overflow. All trademarks belong to their respective company owners

    https://goalkicker.com/

    Content

    • 1-1
      Content list
    • 1-2
      About
    • 1-3
      Chapter 1: Getting started with .NET Framework
    • 1-4
      Section 1.1: Hello World in C#
    • 1-5
      Section 1.2: Hello World in F#
    • 1-6
      Section 1.3: Hello World in Visual Basic .NET
    • 1-7
      Section 1.4: Hello World in C++/CLI
    • 1-8
      Section 1.5: Hello World in IL
    • 1-9
      Section 1.6: Hello World in PowerShell
    • 1-10
      Section 1.7: Hello World in Nemerle
    • 1-11
      Section 1.8: Hello World in Python (IronPython)
    • 1-12
      Section 1.9: Hello World in Oxygene
    • 1-13
      Section 1.10: Hello World in Boo
    • 1-14
      Chapter 2: Strings
    • 1-15
      Section 2.1: Count characters
    • 1-16
      Section 2.2: Count distinct characters
    • 1-17
      Section 2.3: Convert string to/from another encoding
    • 1-18
      Section 2.4: Comparing strings
    • 1-19
      Section 2.5: Count occurrences of a character
    • 1-20
      Section 2.6: Split string into fixed length blocks
    • 1-21
      Section 2.7: Object.ToString() virtual method
    • 1-22
      Section 2.8: Immutability of strings
    • 1-23
      Chapter 3: DateTime parsing
    • 1-24
      Section 3.1: ParseExact
    • 1-25
      Section 3.2: TryParse
    • 1-26
      Section 3.3: TryParseExact
    • 1-27
      Chapter 4: Dictionaries
    • 1-28
      Section 4.1: Initializing a Dictionary with a Collection Initializer
    • 1-29
      Section 4.2: Adding to a Dictionary
    • 1-30
      Section 4.3: Getting a value from a dictionary
    • 1-31
      Section 4.4: Make a Dictionary<string, T> with Case-Insensivitve keys
    • 1-32
      Section 4.5: IEnumerable to Dictionary (≥ .NET 3.5)
    • 1-33
      Section 4.6: Enumerating a Dictionary
    • 1-34
      Section 4.7: ConcurrentDictionary<TKey, TValue> (from .NET 4.0)
    • 1-35
      Section 4.8: Dictionary to List
    • 1-36
      Section 4.9: Removing from a Dictionary
    • 1-37
      Section 4.10: ContainsKey(TKey)
    • 1-38
      Section 4.11: ConcurrentDictionary augmented with Lazy'1 reduces duplicated computation
    • 1-39
      Chapter 5: Collections
    • 1-40
      Section 5.1: Using collection initializers
    • 1-41
      Section 5.2: Stack
    • 1-42
      Section 5.3: Creating an initialized List with Custom Types
    • 1-43
      Section 5.4: Queue
    • 1-44
      Chapter 6: ReadOnlyCollections
    • 1-45
      Section 6.1: Creating a ReadOnlyCollection
    • 1-46
      Section 6.2: Updating a ReadOnlyCollection
    • 1-47
      Section 6.3: Warning: Elements in a ReadOnlyCollection are not inherently read-only
    • 1-48
      Chapter 7: Stack and Heap
    • 1-49
      Section 7.1: Value types in use
    • 1-50
      Section 7.2: Reference types in use
    • 1-51
      Chapter 8: LINQ
    • 1-52
      Section 8.1: SelectMany (flat map)
    • 1-53
      Section 8.2: Where (filter)
    • 1-54
      Section 8.3: Any
    • 1-55
      Section 8.4: GroupJoin
    • 1-56
      Section 8.5: Except
    • 1-57
      Section 8.6: Zip
    • 1-58
      Section 8.7: Aggregate (fold)
    • 1-59
      Section 8.8: ToLookup
    • 1-60
      Section 8.9: Intersect
    • 1-61
      Section 8.10: Concat
    • 1-62
      Section 8.11: All
    • 1-63
      Section 8.12: Sum
    • 1-64
      Section 8.13: SequenceEqual
    • 1-65
      Section 8.14: Min
    • 1-66
      Section 8.15: Distinct
    • 1-67
      Section 8.16: Count
    • 1-68
      Section 8.17: Cast
    • 1-69
      Section 8.18: Range
    • 1-70
      Section 8.19: ThenBy
    • 1-71
      Section 8.20: Repeat
    • 1-72
      Section 8.21: Empty
    • 1-73
      Section 8.22: Select (map)
    • 1-74
      Section 8.23: OrderBy
    • 1-75
      Section 8.24: OrderByDescending
    • 1-76
      Section 8.25: Contains
    • 1-77
      Section 8.26: First (find)
    • 1-78
      Section 8.27: Single
    • 1-79
      Section 8.28: Last
    • 1-80
      Section 8.29: LastOrDefault
    • 1-81
      Section 8.30: SingleOrDefault
    • 1-82
      Section 8.31: FirstOrDefault
    • 1-83
      Section 8.32: Skip
    • 1-84
      Section 8.33: Take
    • 1-85
      Section 8.34: Reverse
    • 1-86
      Section 8.35: OfType
    • 1-87
      Section 8.36: Max
    • 1-88
      Section 8.37: Average
    • 1-89
      Section 8.38: GroupBy
    • 1-90
      Section 8.39: ToDictionary
    • 1-91
      Section 8.40: Union
    • 1-92
      Section 8.41: ToArray
    • 1-93
      Section 8.42: ToList
    • 1-94
      Section 8.43: ElementAt
    • 1-95
      Section 8.44: ElementAtOrDefault
    • 1-96
      Section 8.45: SkipWhile
    • 1-97
      Section 8.46: TakeWhile
    • 1-98
      Section 8.47: DefaultIfEmpty
    • 1-99
      Section 8.48: Join
    • 1-100
      Section 8.49: Left Outer Join
    • 1-101
      Chapter 9: ForEach
    • 1-102
      Section 9.1: Extension method for IEnumerable
    • 1-103
      Section 9.2: Calling a method on an object in a list
    • 1-104
      Chapter 10: Reflection
    • 1-105
      Section 10.1: What is an Assembly?
    • 1-106
      Section 10.2: Compare two objects with reflection
    • 1-107
      Section 10.3: Creating Object and setting properties using reflection
    • 1-108
      Section 10.4: How to create an object of T using Reflection
    • 1-109
      Section 10.5: Getting an attribute of an enum with reflection (and caching it)
    • 1-110
      Chapter 11: Expression Trees
    • 1-111
      Section 11.1: building a predicate of form field == value
    • 1-112
      Section 11.2: Simple Expression Tree Generated by the C# Compiler
    • 1-113
      Section 11.3: Expression for retrieving a static field
    • 1-114
      Section 11.4: InvocationExpression Class
    • 1-115
      Chapter 12: Custom Types
    • 1-116
      Section 12.1: Struct Definition
    • 1-117
      Section 12.2: Class Definition
    • 1-118
      Chapter 13: Code Contracts
    • 1-119
      Section 13.1: Contracts for Interfaces
    • 1-120
      Section 13.2: Installing and Enabling Code Contracts
    • 1-121
      Section 13.3: Preconditions
    • 1-122
      Section 13.4: Postconditions
    • 1-123
      Chapter 14: Settings
    • 1-124
      Section 14.1: AppSettings from ConfigurationSettings in .NET 1.x
    • 1-125
      Section 14.2: Reading AppSettings from ConfigurationManager in .NET 2.0 and later
    • 1-126
      Section 14.3: Introduction to strongly-typed application and user settings support from Visual Studio
    • 1-127
      Section 14.4: Reading strongly-typed settings from custom section of configuration file
    • 1-128
      Chapter 15: Regular Expressions (System.Text.RegularExpressions)
    • 1-129
      Section 15.1: Check if pattern matches input
    • 1-130
      Section 15.2: Remove non alphanumeric characters from string
    • 1-131
      Section 15.3: Passing Options
    • 1-132
      Section 15.4: Match into groups
    • 1-133
      Section 15.5: Find all matches
    • 1-134
      Section 15.6: Simple match and replace
    • 1-135
      Chapter 16: File Input/Output
    • 1-136
      Section 16.1: C# File.Exists()
    • 1-137
      Section 16.2: VB WriteAllText
    • 1-138
      Section 16.3: VB StreamWriter
    • 1-139
      Section 16.4: C# StreamWriter
    • 1-140
      Section 16.5: C# WriteAllText()
    • 1-141
      Chapter 17: System.IO
    • 1-142
      Section 17.1: Reading a text file using StreamReader
    • 1-143
      Section 17.2: Serial Ports using System.IO.SerialPorts
    • 1-144
      Section 17.3: Reading/Writing Data Using System.IO.File
    • 1-145
      Chapter 18: System.IO.File class
    • 1-146
      Section 18.1: Delete a file
    • 1-147
      Section 18.2: Strip unwanted lines from a text file
    • 1-148
      Section 18.3: Convert text file encoding
    • 1-149
      Section 18.4: Enumerate files older than a specified amount
    • 1-150
      Section 18.5: Move a File from one location to another
    • 1-151
      Chapter 19: Reading and writing Zip files
    • 1-152
      Section 19.1: Listing ZIP contents
    • 1-153
      Section 19.2: Extracting files from ZIP files
    • 1-154
      Section 19.3: Updating a ZIP file
    • 1-155
      Chapter 20: Managed Extensibility Framework
    • 1-156
      Section 20.1: Connecting (Basic)
    • 1-157
      Section 20.2: Exporting a Type (Basic)
    • 1-158
      Section 20.3: Importing (Basic)
    • 1-159
      Chapter 21: SpeechRecognitionEngine class to recognize speech
    • 1-160
      Section 21.1: Asynchronously recognizing speech based on a restricted set of phrases
    • 1-161
      Section 21.2: Asynchronously recognizing speech for free text dictation
    • 1-162
      Chapter 22: System.Runtime.Caching.MemoryCache (ObjectCache)
    • 1-163
      Section 22.1: Adding Item to Cache (Set)
    • 1-164
      Section 22.2: System.Runtime.Caching.MemoryCache (ObjectCache)
    • 1-165
      Chapter 23: System.Reflection.Emit namespace
    • 1-166
      Section 23.1: Creating an assembly dynamically
    • 1-167
      Chapter 24: .NET Core
    • 1-168
      Section 24.1: Basic Console App
    • 1-169
      Chapter 25: ADO.NET
    • 1-170
      Section 25.1: Best Practices - Executing Sql Statements
    • 1-171
      Section 25.2: Executing SQL statements as a command
    • 1-172
      Section 25.3: Using common interfaces to abstract away vendor specific classes
    • 1-173
      Chapter 26: Dependency Injection
    • 1-174
      Section 26.1: How Dependency Injection Makes Unit Testing Easier
    • 1-175
      Section 26.2: Dependency Injection - Simple example
    • 1-176
      Section 26.3: Why We Use Dependency Injection Containers (IoC Containers)
    • 1-177
      Chapter 27: Platform Invoke
    • 1-178
      Section 27.1: Marshaling structs
    • 1-179
      Section 27.2: Marshaling unions
    • 1-180
      Section 27.3: Calling a Win32 dll function
    • 1-181
      Section 27.4: Using Windows API
    • 1-182
      Section 27.5: Marshalling arrays
    • 1-183
      Chapter 28: NuGet packaging system
    • 1-184
      Section 28.1: Uninstalling a package from one project in a solution
    • 1-185
      Section 28.2: Installing a specific version of a package
    • 1-186
      Section 28.3: Adding a package source feed (MyGet, Klondike, ect)
    • 1-187
      Section 28.4: Installing the NuGet Package Manager
    • 1-188
      Section 28.5: Managing Packages through the UI
    • 1-189
      Section 28.6: Managing Packages through the console
    • 1-190
      Section 28.7: Updating a package
    • 1-191
      Section 28.8: Uninstalling a package
    • 1-192
      Section 28.9: Uninstall a specific version of package
    • 1-193
      Chapter 29: Globalization in ASP.NET MVC using Smart internationalization for ASP.NET
    • 1-194
      Section 29.1: Basic configuration and setup
    • 1-195
      Chapter 30: System.Net.Mail
    • 1-196
      Section 30.1: MailMessage
    • 1-197
      Section 30.2: Mail with Attachment
    • 1-198
      Chapter 31: Using Progress<T> and IProgress<T>
    • 1-199
      Section 31.1: Simple Progress reporting
    • 1-200
      Section 31.2: Using IProgress<T>
    • 1-201
      Chapter 32: JSON Serialization
    • 1-202
      Section 32.1: Deserialization using System.Web.Script.Serialization.JavaScriptSerializer
    • 1-203
      Section 32.2: Serialization using Json.NET
    • 1-204
      Section 32.3: Serialization-Deserialization using Newtonsoft.Json
    • 1-205
      Section 32.4: Deserialization using Json.NET
    • 1-206
      Section 32.5: Dynamic binding
    • 1-207
      Section 32.6: Serialization using Json.NET with JsonSerializerSettings
    • 1-208
      Chapter 33: JSON in .NET with Newtonsoft.Json
    • 1-209
      Section 33.1: Deserialize an object from JSON text
    • 1-210
      Section 33.2: Serialize object into JSON
    • 1-211
      Chapter 34: XmlSerializer
    • 1-212
      Section 34.1: Formatting: Custom DateTime format
    • 1-213
      Section 34.2: Serialize object
    • 1-214
      Section 34.3: Deserialize object
    • 1-215
      Section 34.4: Behaviour: Map array name to property (XmlArray)
    • 1-216
      Section 34.5: Behaviour: Map Element name to Property
    • 1-217
      Section 34.6: Eciently building multiple serializers with derived types specified dynamically
    • 1-218
      Chapter 35: VB Forms
    • 1-219
      Section 35.1: Hello World in VB.NET Forms
    • 1-220
      Section 35.2: For Beginners
    • 1-221
      Section 35.3: Forms Timer
    • 1-222
      Chapter 36: JIT compiler
    • 1-223
      Section 36.1: IL compilation sample
    • 1-224
      Chapter 37: CLR
    • 1-225
      Section 37.1: An introduction to Common Language Runtime
    • 1-226
      Chapter 38: TPL Dataflow
    • 1-227
      Section 38.1: Asynchronous Producer Consumer With A Bounded BuerBlock
    • 1-228
      Section 38.2: Posting to an ActionBlock and waiting for completion
    • 1-229
      Section 38.3: Linking blocks to create a pipeline
    • 1-230
      Section 38.4: Synchronous Producer/Consumer with BuerBlock<T>
    • 1-231
      Chapter 39: Threading
    • 1-232
      Section 39.1: Accessing form controls from other threads
    • 1-233
      Chapter 40: Process and Thread anity setting
    • 1-234
      Section 40.1: Get process anity mask
    • 1-235
      Section 40.2: Set process anity mask
    • 1-236
      Chapter 41: Parallel processing using .Net framework
    • 1-237
      Section 41.1: Parallel Extensions
    • 1-238
      Chapter 42: Task Parallel Library (TPL)
    • 1-239
      Section 42.1: Basic producer-consumer loop (BlockingCollection)
    • 1-240
      Section 42.2: Parallel.Invoke
    • 1-241
      Section 42.3: Task: Returning a value
    • 1-242
      Section 42.4: Parallel.ForEach
    • 1-243
      Section 42.5: Parallel.For
    • 1-244
      Section 42.6: Task: basic instantiation and Wait
    • 1-245
      Section 42.7: Task.WhenAll
    • 1-246
      Section 42.8: Flowing execution context with AsyncLocal
    • 1-247
      Section 42.9: Parallel.ForEach in VB.NET
    • 1-248
      Section 42.10: Task: WaitAll and variable capturing
    • 1-249
      Section 42.11: Task: WaitAny
    • 1-250
      Section 42.12: Task: handling exceptions (using Wait)
    • 1-251
      Section 42.13: Task: handling exceptions (without using Wait)
    • 1-252
      Section 42.14: Task: cancelling using CancellationToken
    • 1-253
      Section 42.15: Task.WhenAny
    • 1-254
      Chapter 43: Task Parallel Library (TPL) API Overviews
    • 1-255
      Section 43.1: Perform work in response to a button click and update the UI
    • 1-256
      Chapter 44: Synchronization Contexts
    • 1-257
      Section 44.1: Execute code on the UI thread after performing background work
    • 1-258
      Chapter 45: Memory management
    • 1-259
      Section 45.1: Use SafeHandle when wrapping unmanaged resources
    • 1-260
      Section 45.2: Unmanaged Resources
    • 1-261
      Chapter 46: Garbage Collection
    • 1-262
      Section 46.1: A basic example of (garbage) collection
    • 1-263
      Section 46.2: Live objects and dead objects - the basics
    • 1-264
      Section 46.3: Multiple dead objects
    • 1-265
      Section 46.4: Weak References
    • 1-266
      Section 46.5: Dispose() vs. finalizers
    • 1-267
      Section 46.6: Proper disposal and finalization of objects
    • 1-268
      Chapter 47: Exceptions
    • 1-269
      Section 47.1: Catching and rethrowing caught exceptions
    • 1-270
      Section 47.2: Using a finally block
    • 1-271
      Section 47.3: Exception Filters
    • 1-272
      Section 47.4: Rethrowing an exception within a catch block
    • 1-273
      Section 47.5: Throwing an exception from a dierent method while preserving its information
    • 1-274
      Section 47.6: Catching an exception
    • 1-275
      Chapter 48: System.Diagnostics
    • 1-276
      Section 48.1: Run shell commands
    • 1-277
      Section 48.2: Send Command to CMD and Receive Output
    • 1-278
      Section 48.3: Stopwatch
    • 1-279
      Chapter 49: Encryption / Cryptography
    • 1-280
      Section 49.1: Encryption and Decryption using Cryptography (AES)
    • 1-281
      Section 49.2: RijndaelManaged
    • 1-282
      Section 49.3: Encrypt and decrypt data using AES (in C#)
    • 1-283
      Section 49.4: Create a Key from a Password / Random SALT (in C#)
    • 1-284
      Chapter 50: Work with SHA1 in C#
    • 1-285
      Section 50.1: #Generate SHA1 checksum of a file
    • 1-286
      Section 50.2: #Generate hash of a text
    • 1-287
      Chapter 51: Unit testing
    • 1-288
      Section 51.1: Adding MSTest unit testing project to an existing solution
    • 1-289
      Section 51.2: Creating a sample test method
    • 1-290
      Chapter 52: Write to and read from StdErr stream
    • 1-291
      Section 52.1: Write to standard error output using Console
    • 1-292
      Section 52.2: Read from standard error of child process
    • 1-293
      Chapter 53: Upload file and POST data to webserver
    • 1-294
      Section 53.1: Upload file with WebRequest
    • 1-295
      Chapter 54: Networking
    • 1-296
      Section 54.1: Basic TCP chat (TcpListener, TcpClient, NetworkStream)
    • 1-297
      Section 54.2: Basic SNTP client (UdpClient)
    • 1-298
      Chapter 55: HTTP servers
    • 1-299
      Section 55.1: Basic read-only HTTP file server (ASP.NET Core)
    • 1-300
      Section 55.2: Basic read-only HTTP file server (HttpListener)
    • 1-301
      Chapter 56: HTTP clients
    • 1-302
      Section 56.1: Reading GET response as string using System.Net.HttpClient
    • 1-303
      Section 56.2: Basic HTTP downloader using System.Net.Http.HttpClient
    • 1-304
      Section 56.3: Reading GET response as string using System.Net.HttpWebRequest
    • 1-305
      Section 56.4: Reading GET response as string using System.Net.WebClient
    • 1-306
      Section 56.5: Sending a POST request with a string payload using System.Net.HttpWebRequest
    • 1-307
      Section 56.6: Sending a POST request with a string payload using System.Net.WebClient
    • 1-308
      Section 56.7: Sending a POST request with a string payload using System.Net.HttpClient
    • 1-309
      Chapter 57: Serial Ports
    • 1-310
      Section 57.1: Basic operation
    • 1-311
      Section 57.2: List available port names
    • 1-312
      Section 57.3: Asynchronous read
    • 1-313
      Section 57.4: Synchronous text echo service
    • 1-314
      Section 57.5: Asynchronous message receiver
    • 1-315
      Appendix A: Acronym Glossary
    • 1-316
      Section A.1: .Net Related Acronyms
    • 1-317
      Credits
    • 1-318
      You may also like

    FAQ

    您可以透過手機、平板或是電腦登入 HiSKIO 平台,在【我的學習】>【我的書籍】頁面,選擇想看的電子書。

    Recommendations

    Reviews

    | Collecting

    Sales Plans