Skip to main content

Creating my first C#/Perforce project

I am entirely new to the world of C#, .NET, and Perforce. Most of my development experience up to this point has been in Java or JavaScript, and using almost entirely open sources tools, frameworks, and languages, so the Microsoft development world is a new (and somewhat shocking!) experience. I'm happy to have access to these new expensive tools through DePaul, but they are certainly much more heavy-duty than I am used to. My poor computer took an hour and a half to install all the Visual Studio components I selected, it took about a minute to build a fresh console app in VS, and then kept going unresponsive on and off when I built my project. I'm glad I choose to set this up on my desktop, because the seven year-old laptop that I do most of my development on would probably catch on fire running this stuff.

I found C# to be extremely similar to Java, so much so that I was able to write my Fibonacci program with only a quick glance at another C# example to get the Console output and input syntax. I'm not worried at all about writing programs in it.

Coming from the world of git on the command line, I found the Perforce client to be very straight-forward and pleasant to use. Keenan's videos were very helpful, and the interface is very similar to FTP clients like Filezilla, so I found it quite intuitive. I haven't had the chance to explore any complicated stuff like merge-conflicts or branching yet, so I'm interested to see what the GUI brings to those situations.

All in all, installation and set-up went well, although I feel sad that I've had to leave my beloved Linux environment behind.

Comments

Popular posts from this blog

Branching and Merging with Visual Studio and Perforce

This assignment required that we create a small C# project with a few classes and to use Perforce to sync our changes with a remote depot. The project required creating a linked list class, a player class, and then branching the project, making significant changes, and merging them back in to the main code line. The programming part of the assignment was fairly straightforward. Having done my data structures class in Java, the syntax was easy. I wasn't entirely confident of the particular implementation of the indexing of the list nodes, but I settled on assigning indexes by insertion order. As I use git version control at my job, I didn't find the branching, merging, and conflict resolution to be too difficult. A significant difference was the necessity of checking out specific documents (as opposed to an entire branch) before modifying them. I also thought that the need to create a cleanup file to delete files produced by the build project was unwieldy. With git, a repo can