.NET Dev Moves to Mac -- Part 1

image

A .NET Developer Moves to the Mac

Disclaimer. I am not a Windows, Mac, or Linux zealot. As I get older and hopefully wiser, I realize that like most similar things (Ford vs. Chevy, etc.) one is not truly better than the other. They’re just different and most people like what they know best. So I’m now getting to know the Mac.

This is part one of a series of posts about my journey as a developer moving from a Microsoft OS to macOS. To give you an idea of how long I’ve been with OSes from Redmond, I was really excited when I could upgrade MS-DOS to support double-sided 5¼” disks. My travels since then have taken me through OS/21 Windows 3.1 (and 3.11) and finally to Windows 10.

I am all about using the command line and keyboard shortcuts. This series will focus on my efforts to become a productive .NET developer on a Macbook Pro (M1 processor) running macOS Monterey. There are other very useful blogs out there (see links below), but I haven’t found one that really helps to migrate from a keyboard-loving Windows developer to using the Mac.

The OS

The macOS is Unix-based, so if you use WSL or Linux, you’ll have a head start. The folder structure is quite different and the Mac’s UI does its best to hide it from you. This isn’t a Unix lesson, but a brief list of things you know how to do on Windows, but where is it on the Mac. In future posts, I’ll cover the terminal and dev tools.

There is only one menu and it’s always on the top of the screen, regardless of where the app’s window is on the screen. As you change apps, the menu changes to that app’s menu, which is pretty subtle. The min, max, and restore buttons are on the left instead of the right, and you’ll always be looking in the lower right for the clock, but it’s on the upper right along with “tray” icons.

Keyboard and Mouse

The keyboard is similar enough to be familiar, yet foreign enough to trip you up. This will take some getting used to.

You can map the keyboard to be pretty close to a PC using Karabiner and then installing Complex Rules by searching for PC on the site

In Windows, you can scroll or click on buttons in a window regardless of focus. On the Mac, you can only click on something in a window if it has focus. For example, you’re in a Slack call, muted, and open the browser to watch some funny cat videos. When someone mentions you, you have to quickly unmute to pretend you’ve been paying attention, but clicking the unmute button only sets focus back to Slack. Click again to unmute.

Note I use Alt for the Option key on a mac keyboard. The ⌘ symbol is the Windows key.

Common Hotkeys

Action Windows Mac
Close app Alt+F4 ⌘+Q (usually)
Close window Ctrl+F4 ⌘+W
Cut/Copy/Paste/Find/SelectAll/Undo/Print Ctrl+key ⌘+key
Delete Delete Delete or backspace
File New/Open/Save Ctrl+key ⌘+key
Find next F3 ⌘+G
Find prev Shift+F3 Shift+⌘+G
List box select Click Click
List box select items Click, Ctrl+Click Click, ⌘+Click
List box select range Click, Shift+Click Click, Shift+Click
Open Emoji dialog Win+. ⌘+Shift+Space
Replace Ctrl+R or Ctrl+Shift+F Alt+⌘+F, or ⌘+Shift+H
SaveAs Ctrl+Shift+S, Alt+F+A ⌘+Shift+S (Duplicate)
Undo/Redo Ctrl+Z/Ctrl+Y/Ctrl+Shift+Z ⌘+Z/Shift+⌘+Z

You can’t use the keyboard in a Message Box by default. Change this by System Preferences → Keyboard → Shortcuts then check “Use keyboard navigation…”

msgbox

Screen Capture

Action Windows Mac
Copy area of screen to clipboard Shift+Win+s Ctrl+Shift+⌘+4
Screen capture & record menu   Shift+⌘+5
Screen to clipboard Win+PrintScreen Ctrl+Shift+⌘+3

(Leave off the Ctrl key on the Mac to save to a file on the desktop.)

Once an image is on the clipboard run Preview.app and do ⌘+N (File->New from clipboard). Then you can click the pen icon on the right (in blue below) to get some nice editing tools.

preview

Cursor Movement

Another basic operation that’s just different enough to give you some heartburn.

Action Win Mac
Beginning/end of Line Home/End ⌘+left/right
Move word left/right Ctrl+arrow Alt+Arrow (Ctrl+Arrow switches desktop)
Top/Bottom of text Ctrl+Home/End ⌘+Up/Down
Word right/left Ctrl+left/right Alt+left/right

(Add shift to select text when moving on Win and Mac)

Window Management

Action Windows Mac
Cycle through windows of current app Alt+Tab ⌘+`
Cycle through running apps Alt+Tab ⌘+Tab
Dock a window left/right Win+Left/right or drag menu->Window->Tile Window to Left/Right
Focus on the menu bar Alt Ctrl+F2
Maximize a window Win+up, Dragging a window to top, double click title bar Double click title bar
Minimize a window Win+down ⌘+M
Move window to v-desktop Win+Tab, drag Drag Window up passed the top of the screen to see virtual desktops and move windows around
New v-desktop Win+Ctrl+D Drag Window up passed the top of the screen to add virtual desktop
Peeks desktop Win+, F11
Put focus on the Dock   Ctrl+F3 , arrows, type a name to move, enter to launch
Show Mission Control (show all Windows) Win+Tab Ctrl Up (F3 supposed to)
Switch v-desktops Win+Ctrl+left/right Ctrl+Left/Right
Toggle dock   ⌘+Alt+D
Window Management tool PowerToy’s FancyZones Rectangle app

One thing that you’ll find unsettling is that ⌘+tab cycles through apps, but not each window. So if you have multiple instances of Chrome open, ⌘+tab to get to Chrome, then ⌘+` to cycle between Chrome windows – that are not minimized. If a window is minimized it shows up in the Window menu with a diamond next to it.

background

And if you minimize all the windows and ⌘+tab to it, only the menu switches, and you’re gobsmacked as to where Chrome is. But if you look in the Window menu you see this. And you can select one to make it appear.

all-background

Find or Run Things (Win+s, Win+r)

Mac has Spotlight (⌘+space) for searching and launching anything. Windows PowerToys has Alt+space, which is very similar.

File Open Dialog

Like Finder mentioned below this is hard to use if you’re used to using file paths. The column view will make it a bit more Windows-friendly, but you can’t just put in a path like ~/myfile.txt You can use the hotkeys mentioned below, but ⌘+Shift+G opens a dialog that allows you to paste or type in a path.

Sleep, Restart, Shutdown

The apple icon in the upper left has options for sleeping and shutting down the Mac.

Windows Feature Analogs

Clipboard history (Win+V)

You can install a third-party utility. I used FlyCut and so far it’s ok. I set Ctrl+Shift+⌘+V as its hotkey. Backspace will delete from the buffer, not delete.

Control Panel (Win+i and Control Panel)

System Preferences app in the Dock (TaskBar) has the most functionality. Search for the option you want. Monitors are under Displays.

Event Viewer, Device Manager

Hold Alt and press the Apple icon in the upper left then click System Information... to get a read-only view of system settings.

  • Hardware has device Info
  • Network
  • Software
    • Frameworks
    • Installation to show the history of installs
  • Logs

For more logging check out Finder, then Shift+⌘+U Utilities then Console

console

Explorer (Win+E)

Finder (⌘+Alt+Space) gets you close. If you’re used to accessing paths, you’ll be frustrated. There are some hotkeys to get to some folders, and Column view makes it a bit more of what you’re used to, but try going “up” to a parent folder. Put your common folders in Favorites for easier access.

  • Shift+⌘+C Computer
  • Shift+⌘+D Desktop
  • Shift+⌘+H Home folder
  • Alt+⌘+L Downloads
  • Shift+⌘+N New folder
  • Shift+⌘+O Documents
  • Shift+⌘+U Utilities (see below)
  • Move folders to Favorites by dragging (not shown in context menu)
  • Shift+⌘+. to show hidden files

finder)

Task Manager (Ctrl+Shift+Esc)

Finder, then Shift+⌘+U Utilities then Activity Monitor

activityMonitor

From here you can see running processes, and kill them. Note often lists, like in the activity monitor show up blank for a while with no indication something is happening. So some times you don’t know if the list is empty, or just waiting to be filled.

Next

In this blog, I’ve tried to give you a step up to quickly become familiar with using the macOS if you’ve come from a Windows environment. There is more to macOS that I’ve covered, but this should be a good start to get you going.

In Part 2, I’ll show how I customized the terminal and installed PowerShell.

  1. OS/2 was an IBM-Microsoft venture and was a great OS, but alas the marketing of Microsoft was much better. (See Betamax)