PowerShell to C# and back
PowerShell to C# and back
A journey to C# and becoming better at PowerShell
About the Book
Why did we write this book?
We started writing this book to document our journey to learn C#, to be honest, we were scratching our own itch. There is no book or tutorial available today that can bridge the gap between a scripting language like PowerShell and modern programming language like C#, which is a natural language of choice, so we decided to write our own!
This book is the second book of this type since Prateek has written "PowerShell Guide to Python" a year back to take readers on a journey to learn Python using Powershell with the benefits of associative learning. Back then the most popular request\feedback was a book to cover PowerShell and C# together, so here it is! :)
PowerShell cmdlets are mostly written in C# and very often you will see .Net classes utilized in PowerShell scripts, and it seems like both these worlds are very much interconnected but still, there is a lot of friction, especially for IT professionals who lack understanding of object-oriented programming and find it difficult to understand software design patterns.
The purpose of this book is to provide bite-sized easily consumable chunks of knowledge and concepts to the reader, that will make it simple for them to learn and understand C# and improve their skill sets. More than that, leaving readers will tip, tricks and scenarios, that will develop a synergy with C# and PowerShell, and the knowledge attained can be refed further extend their capabilities by writing better and advanced scripts and Automation.
"Your problem is to bridge the gap which exists between where you are now and the goal you intend to reach."
~ Earl Nightingale
Who is the Target Audience?
C# can be used to create almost anything from Windows desktop applications and games to develop powerful web applications and has become increasingly popular for mobile development too. Cross-platform tools such as Xamarin allow apps written in C# to be used on almost any mobile device. On top of that, since the announcement of .NET Core which is an open-source, general-purpose development platform now you can create .NET Core applications using C# for Windows, macOS, and Linux this just opens up a lot of opportunities and horizons for C#.
System Administrators and IT Professionals
System Administrators who want to upgrade their PowerShell scripting skills into C# Development or Programming roles, this book is written exactly keeping you in mind. The purpose of this book is to bridge the gap between PowerShell and C# and leave the readers with enough confidence, exposure, and hands-on experience so that they can develop in C# comfortably. Microsoft's cloud platform 'Azure' is growing rapidly, and having C# and PowerShell in your skill arsenal, that compliment each other and align with Azure automation and development needs, will definitely give you a competitive advantage as an IT professional.
C# Developer
If you are a C# developer and want to learn to write powerful automation and scripts using PowerShell, then you must read this book, because this book will help you associate concepts of modern programming language like C# with PowerShell and make it easy for you to learn PowerShell. Nowadays most of the CI/CD platforms like Azure DevOps leverage some sort of scripting language to run tasks and background jobs in their pipelines, so learning PowerShell will start to impact your day job in a good way.
What to expect from the Book?
Each chapter begins with a set of learning goals for the chapter and the topics covered as a list, which gives a fair idea to the reader what to expect in the chapter. It also enables the readers with a choice to skip the chapter if the topic is familiar and can be revisited later stage. After this a small introduction of the chapter to make the reader comfortable with the topic, followed by the main content of the chapter, headings, and sub-headings, figures, code samples/examples.
Towards the end of the book, all chapters have a 'Key takeaway' section which summarizes key pointers of the chapter. Key takeaways can be used to reinforce the learning and even come handy during revisions without going deep dive into the whole chapter again. Finally, chapters will end with some Exercises\Assignments that will further allow you to use the learnings from the chapter and implement that in code.
All chapters end with some reading recommendations, the official documentation for the reader on the related topic, which readers can follow to gain knowledge on the topic which is out of the scope of the book. Following is the structural pattern you will observe in all the chapters:
- Purpose of the chapter
- Introduction to the chapter
- Main chapter content
- Key Takeaways from the Chapter
- Exercises and Assignments
- Reading Recommendations
Available Book Formats
The book can be download in any of the following formats and it is recommended to read it on a personal computer in PDF format for clarity in images and code samples. We might publish this book on Amazon through Kindle Direct Publishing (KDP) in digital post-completion and even print it in the future but for now, it is only digitally available here.
- PDF - For laptops and personal computers
- EPUB - For phones and tablets
- MOBI -For Amazon Kindle and E-Readers
- WEB - On the web browser
Book updates and email notifications
This book has been published as we are writing it, a chapter at a time on Leanpub.com , which is a lean publishing platform and we will keep on updating and improving the book so that you have the best version of the book available. This book is work in progress and it is recommended that you allow Leanpub to send you update emails when a new version of the book manuscript is published.
By default, this setting is not enabled and you have to turn it on by following the below steps, otherwise, you will miss any new chapters or updates we push to the book.
- Log into your Leanpub.com account
- From the top-right corner in the 'Account' drop-down menu, click on 'Library'
- Click on this book in your library.
- Now on the right-hand side, you will get 'Email Settings'
- Under 'Email Settings' select the checkbox next to 'New version available'
How to Provide Feedback?
We would appreciate you sending us an e-mail to prateek@ridicurious.com with any feedback about how you are using the content, and how the book could be improved, but this is just a request so that we can improve the book and track how it is being used. You can also use the "Email the Author(s)" option on the book webpage to reach out to both of us!
Bundles that include this book
Table of Contents
-
About the Book
- Why did we write this book
-
Who is the Target Audience
- System Administrators and IT Professionals
- C# Developer
- Book updates and email notifications
- How to provide Feedback
-
Prerequisites
-
Setup and Tools
- Windows PowerShell
- PowerShell Core
- Visual Studio Code, C# and Extension .Net Core SDK
- Visual Studio (Optional)
-
Setup and Tools
-
How to Use this Book
- Available Book Formats
- Structure of a Chapter
- Downloading Code samples and Examples
-
Running code samples and examples
- C# Interactive Window in Visual Studio
-
dotnet-script
extension for .Net Core Command Line - PowerShell and C# Jupyter Notebooks
-
Chapter 1: C# Primer
- Introduction
-
C# Language
- Key Characteristics
- A Brief History of CSharp
- Compilers, Runtime and .NET Framework
-
Program Structure and Organization
- Program, Assemblies and Hello World
- Namespaces
- Class
- Members
-
C# Programming Elements
- Comments
- Case Sensitivity
- Using Directive and Statement
-
Types and Variables
- Values Types
- Reference Types
- Variables
-
Operators, Operands and Expressions
- Operators
- Basic Input and Output
-
Conditional statements
- If and If..Else statement
- Switch statement
- Loops and Iterations
-
Exceptions
Try..Catch..Finally
- Classes and objects
- Arrays
- Summary
- Key Pointers
- Exercises and Assignments
- Reading Recommendations
-
Chapter 2: Classes and Objects
- Introduction
- Procedural vs Object-oriented programming
- .Net Class Library
-
Classes and Objects
- PowerShell Class
- C# Class
-
Object Introspection
- Inspecting PowerShell objects for properties and methods
- Inspecting C# objects for properties and methods
- Inspecting Constructors in C# objects
- typeof() vs GetType() vs ‘is’
-
Class Members
-
Fields and Properties
-
PowerShell Class Properties
- Default values to PowerShell class properties
- PowerShell Cast initialization
- Static Properties in PowerShell
-
C# Class Fields, Properties, and Accessors
- Fields
- Properties and Accessors
- Initial values to C# class properties
- Static Properties in C#
- C# Object Initializer
-
PowerShell Class Properties
-
Methods
-
PowerShell Class Methods
- Static methods in PowerShell Class
- Instance methods in PowerShell Classes
-
C# Class Methods
- Static methods in C# Class
- Instance methods in C# Class
-
PowerShell Class Methods
-
Constructors
- Constructors in PowerShell Classes
- Constructors in C# Classes
-
Fields and Properties
- Summary
- Key Pointers
- Exercises and Assignments
- Reading Recommendations
-
Chapter 3: Variables
-
Introduction
- Value Types
- Reference Types
-
Naming conventions
- Naming PowerShell variables
- Naming C# variables
- Declaring variables
- Constant variables
- Clearing and un-setting values of variables
-
Variable scopes
- Variable scopes in PowerShell scripts
-
Variable scopes with C# Classes
- Class level scope
- Method level scope
- Block level Scope
- Summary
- Key Pointers
- Exercises and Assignments
- Reading Recommendations
-
Introduction
-
Chapter 4: Console Input and Output
- Introduction
- What is a Console?
- Standard Input and Output
- Writing to Console
- Writing without a New-Line
- Reading from Console
- Reading numeric values
- Reading keys from Console
- Reading from Console Securely
- Clearing the Console
- Summary
- Key Pointers
- Exercises and Assignments
- Reading Recommendations
-
Chapter 5: Passing Command-line Arguments
- Introduction
- Parameters and arguments
-
$args
Automatic Variable in PowerShell -
Main() and
args
in C# command-line applications - Params() in PowerShell
- Environment.GetCommandLineArgs() method in .Net
- Summary
- Key Pointers
- Exercises and Assignments
- Reading Recommendations
-
Chapter 6 - Collections
-
Introduction
- Generic collections
- Non-Generic collections
- Array
- ArrayList
- List
- HashTable
- Dictionary
- Stack
- Queue
- HashSet
- Exercises and Assignments
- Reading Recommendations
-
Introduction
- Solutions to Exercises
Other books by these authors
The Leanpub 60 Day 100% Happiness Guarantee
Within 60 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.
Now, this is technically risky for us, since you'll have the book or course files either way. But we're so confident in our products and services, and in our authors and readers, that we're happy to offer a full money back guarantee for everything we sell.
You can only find out how good something is by trying it, and because of our 100% money back guarantee there's literally no risk to do so!
So, there's no reason not to click the Add to Cart button, is there?
See full terms...
Earn $8 on a $10 Purchase, and $16 on a $20 Purchase
We pay 80% royalties on purchases of $7.99 or more, and 80% royalties minus a 50 cent flat fee on purchases between $0.99 and $7.98. You earn $8 on a $10 sale, and $16 on a $20 sale. So, if we sell 5000 non-refunded copies of your book for $20, you'll earn $80,000.
(Yes, some authors have already earned much more than that on Leanpub.)
In fact, authors have earnedover $13 millionwriting, publishing and selling on Leanpub.
Learn more about writing on Leanpub
Free Updates. DRM Free.
If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).
Most Leanpub books are available in PDF (for computers) and EPUB (for phones, tablets and Kindle). The formats that a book includes are shown at the top right corner of this page.
Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.
Learn more about Leanpub's ebook formats and where to read them