free your mind code. sometimes i write software in exchange for money (don’t judge) sometimes i...

24
Open Source Software Development with .Net Free Your Mind Code

Post on 22-Dec-2015

215 views

Category:

Documents


0 download

TRANSCRIPT

Open Source Software

Development with .Net

Free Your Mind Code

Sometimes I write software in exchange for money (don’t judge)

Sometimes I write software in exchange for knowledge, experience, as a favor, to teach, or just for fun

Hi, I’m Jeff

It lets you give back to the community you’ve probably already benefited from

You can take an existing tool and make it more contoured to your specific needs

It provides a means of “crowd sourcing” a solution to a problem

It can lead to a business model that makes money – just because the code is free, doesn’t mean the support is.

Why Open Source?

Wordpress DotNetNuke NHibernate NAnt NUnit Linux Notepad++ Apache Web

Server TeamCity

CruiseControl.Net

OpenOffice Gimp VirtualBox Firefox Thunderbird VLC Chromium DOSBox

Mono Moonlight Vuze MySQL Pidgin Paint.Net

Some common examples…

The Arduino board

There is even open source hardware

The originator of an open source project is often referred to as the coordinator

Someone modifying an existing open source project and committing their code change back to the repository is a contributor

Coordinating and Contributing

Licensing Hosting Source Control

Some things to consider

The many flavors of open source…◦ BSD◦ GPL◦ Apache◦ MIT◦ MS-PL (also MS Shared Source…)◦ And many, many more

Licensing

Software is considered Free Software when its license grants these freedoms:◦ Freedom to run the program for any purpose◦ Freedom to study and change the program

(access to source code is a prerequisite)◦ Freedom to redistribute ◦ Freedom to distribute your own modified versions

Free Software

General Public License (GPL)◦ Uses copyright against itself◦ Makes sure that anyone who creates a derivative

work can only release that work under the GPL Recursive licensing!

◦ Some see this as a restriction of freedom to future developers

◦ Some see this as a guarantee of freedom to future users

◦ Who is right? You decide!

Copyleft: the copyright loophole

SourceForge Github CodePlex BitBucket And More!

Hosting

CVS, SubVersion, etc. are all good Distributed source control really shines

though◦ Mercurial◦ Git

Source Control

I named it LaunchLater It lets users defer the auto-start

configuration of apps that boot with Windows

I know .Net, so I used .Net I wanted to know WPF, so I used WPF I wanted to earn a Nerd Merit Badge

◦ More on this later

One day I had an idea

Licensing◦ GPL

Hosting◦ CodePlex (http://launchlater.codeplex.com)

Source Control ◦ Mercurial

I also use the TortoiseHg client, and it’s open source

The choices I made

This is pretty much just like developing proprietary software

I found myself almost subconsciously trying to make extra effort to conform to simple coding practices with the use of patterns wherever possible

Developing with open source in mind

MVVM◦ Popular pattern that has been made famous

through its application in WPF/Silverlight applications

◦ Gives you an intermediary object between the Model and the View that can be easily used for binding

Let’s see one of those patterns

Two main programs◦ Configuration Manager

Allows the user to configure which apps start at boot and how long to defer them.

◦ LaunchPad Starts with windows and executes the schedule of

deferred apps to launch

How the app works

Seriously, let’s alt-tab out of PowerPoint and see some real C# code

Go look at the code!

My code is better structured and more easily modifiable

Anyone who is already acquainted with the MVVM pattern can quickly pick up on how this software works

The more people who are easily able to improve the code, the more likely the code will improve without my help

What was that about a Nerd Merit Badge?

The Payoff

This is a real thing You can find them at

http://nerdmeritbadges.com I have one now

◦ Jealous? I offered one to the first person to make a

contribution to my project◦ A guy named Jesse Brown won

Jealous?

Nerd Merit Badges

Open source can be awesome You’re likely already using it I gained knowledge and experience that I

might not have otherwise gained I was able to take that knowledge back to

the office and be more productive in my day to day work

Now others can benefit from my code

And so…

Use it Change it Improve it Share it Publish it And even hate it

◦ And then spend hours talking trash about it in forums and tweeting about how completely God-awful it is and then compiling those tweets into one giant hate-blog.

You are free to…

Questions? Comments?

My name is Jeff Cox My twitter name is @jeffcox111 My email address is [email protected] My blog is at

http://LiberatedSoftware.wordpress.com LaunchLater can be found at

http://launchlater.codeplex.com

Thanks!