Download It
Transcript of Download It
DotNetNuke®
2006 Enterprise Open Source Conference + Expo – New York
Open Source on the Microsoft Platform
Shaun Walker, CEO
Perpetual Motion Interactive Sytems Inc.
http://www.dotnetnuke.com
Web Application Framework
Presenter Shaun Walker, CEO Perpetual Motion Interactive Systems Inc. Based in British Columbia, CANADA Founder of DotNetNuke® Published Author ( WROX Press, .NETDJ ) Featured Speaker ( Conferences, User Groups )
Session Goals
Focus on the similarities and differences of developing and using open source software on the Microsoft versus non-Microsoft platform
Draw on first-hand experience managing the DotNetNuke® Web Application Framework open source project
“Open Source on the Microsoft Platform”
Agenda
Microsoft / Open Source DotNetNuke® Platforms Intellectual Property Revenue Models Questions
Microsoft / Open Source
February 1976 – Bill Gates writes the infamous “Open Letter To Hobbyists” criticizing free users of Altair BASIC and proclaiming “Who can afford to do professional work for nothing?”
October 1998 – “Halloween Documents” leaked by anonymous source within Microsoft to Eric Raymond of the Open Source Initiative. Documents provide insight into Microsoft’s position on open source:
“OSS poses a direct, short-term revenue and platform threat to Microsoft, particularly in server space. Additionally, the intrinsic parallelism and free idea exchange in OSS has benefits that are not replicable with our current licensing model and therefore present a long term developer mindshare threat.”
June 2001 - Steve Ballmer publicly criticizes the "viral" nature of the GPL license saying "Linux is a cancer that attaches itself in an intellectual property sense to everything it touches”. Bill Gates follows up with his own “Pac-Man” reference to the GPL license. The media use these comments as fodder to pit Microsoft against the burgeoning Open Source movement.
“An allergic reaction…”
Microsoft / Open Source
November 2001 – Bill Gates’ comments from shareholder meeting regarding “the open source movement wouldn't exist without Microsoft” and “open source is a follower, not an innovator, and destroys jobs and the economy” are leaked to the media
October 2002 - Microsoft announces its Shared Source initiative which promises to share Windows source code with key industry partners. Critics are quick to point out that Microsoft’s Shared Source license does not conform to open source standards.
June 2003 – Microsoft announces GotDotNet, an online collaborative development environment where .NET developers can create, host, and manage projects throughout the project lifecycle. GotDotNet is intended to be a Microsoft community alternative to SourceForge.Net but is largely unsuccessful due to sparse resource allocation.
“Uncomfortable bedfellows…”
Microsoft / Open Source
March 2004 – Microsoft announces its first officially managed open source project, Windows Installer XML (WiX), a toolset that builds Windows installation packages from XML source code. The project is made available via SourceForge.Net.
September 2004 – Microsoft announces another officially managed open source project, FlexWiki.
October 2005 - Microsoft announces its Permissive License, Community License, and Reference License initiatives.
May 2006 – Microsoft announces CodePlex, the successor to GotDotNet, offering free hosted services for community projects. The backend infrastructure leverages the new Microsoft Team Foundation Server product.
“Putting a toe in the water…”
DotNetNuke®
Overview Community Marketing Metrics Partners Microsoft Relationship
Overview
“Our mission is to create opportunities and spread entrepreneurship to the world by providing a superior open source web application framework which cultivates a passionate developer community as well as a prosperous commercial ecosystem.”
DotNetNuke® is an Open Source Web Application Framework written in ASP.NET and includes a fully functional Content Management System as well as advanced Community Collaboration tools.
Based on enterprise class, multi-tier, object-oriented, service oriented architecture.
“By the People, For The People”
Community
Most successful and active open source project on the Microsoft platform
Privately funded and managed. Licensed under a standard BSD/MIT open source
license Released December 24, 2002 Used in private sector, public sector, military, non-
profit, social networks, online communities, intranet, extranet, and individual web sites
Incubator for complementary open source projects Architected with full extensibility in mind to encourage
an active ecosystem
“Community, Content, Collaboration”
Marketing“The Ripple Effect”
Multiple full-length books by mainstream publishers Feature articles in .NET Developers Journal, Visual
Studio Magazine, ASP.NET Pro Magazine, CoDe Magazine
Linked from official Microsoft web sites includingwww.asp.net, msdn.microsoft.com
300,000+ Registered Users ( ~120,000 Feb 2005 ) 1,500,000+ Downloads Top 10 Project Activity Rank on SourceForge.Net 3.5 million page views per month for
dotnetnuke.com Alexa.com rank of 5,990
Metrics“Membership Has Its Privileges”
Metrics“Share the Source, Share the Wealth”
Total Downloads: 1,500,000 Average Downloads / Month: 110,000
Partners“Influential Partners”
Microsoft Relationship
Arms-length, mutually beneficial working relationship Benefits to Microsoft:
Financial – encourages developers and users to purchase licensed versions of Microsoft products
Educational – encourages developers, vendors, and users to adopt Microsoft platform and tools
Marketing – cultivates an active and passionate developer community
Benefits to DotNetNuke: Marketing – broad distribution through highly visible channels Mentoring – direct access to program managers and developers
for technical issues Endorsement – strategic partnering provides consumer
confidence
“Back scratching…”
Platforms Software Stacks LAMP Stack Windows Stack Alternative Stack Mono MainSoft Development Tools Industry Acceptance Projects
Software Stacks
An integrated combination of frameworks, web application development languages, database engines, and operating systems.
Customization allows for plug-in replacement of individual components in the stack
Components may be proprietary or open source
“Building Blocks”
LAMP Stack PHP/Python/Perl
Open Source Server-side, cross-platform,
HTML embedded scripting language
MySQL Open Source ( GPL ) Rapidly deployable data store
engine Apache
Open Source ( Apache ) Most popular web server
Linux Open Source ( GPL ) UNIX based operating system
Windows Stack DotNetNuke
Open Source ( BSD ) Powerful Web Application
Framework ASP.NET ( 1.1 / 2.0 )
Freely distributed web service layer Integration with Visual Studio IDE
for advanced developer productivity
SQL Server Mature and highly scalable
database engine Superior administration tools
Windows Server / IIS Commercial operating system
platform for powering connected applications, networks, and Web services
Stable server environment on commodity hardware
Affordable licensing through SPLA
Alternative Stack DotNetNuke
Open Source ( BSD ) Web Application Framework for
ASP.NET Mono / MainSoft
Open Source / Proprietary Cross platform compatibility
service layer Firebird
Open Source ( GPL ) Capable database engine with
simple file-based deployment Apache / Linux
Most popular web server UNIX based operating system
Mono
Founded by Miguel de Icaza ( GNOME, Ximian ) ECMA standard compliant .NET compatible set of tools Cross-platform implementation Announced July 19, 2001 at an O’Reilly Conference Licensed under GPL, LGPL, and MIT licenses Acquired by Novell, Inc. on August 4, 2003 Mono 1.0 released June 30, 2004 Lacking VB.NET compiler Potential patent infringement issues for Class Libraries
“Monkey See, Monkey Do…”
MainSoft
Cross-platform development tool that enables development of J2EE applications using Visual Studio.NET
Compiles MSIL to Java byte code Allows software vendors to port .NET
applications to Linux Visual MainWin for J2EE is a commercial,
enterprise application Grasshopper is a free, developer version
“Can we serve that with Java?”
Development Tools
Non-Windows Windows
Integrated Development Environment
Eclipse ( IBM )Emacs ( GNU )
Visual Studio 2005Express Edition *Free*SharpDevelop (GPL)
Database Engine mySQLFirebirdPostgreSQL
SQL ServerSQL Express *Free*
Web Server Apache / Tomcat IISCassini *Free*
Operating System LinuxUNIX
Windows ( bundled )
“The Great Debate: Open Source vs. Free Software”
Industry Acceptance
No acceptance for Windows Open Source from traditional open source community
Open source purists argue that an application can not be considered open source unless it runs on a complete stack of open source components.
Excluded from most major open source channels including websites, magazines, surveys, etc…
Slashdot post on this subject in November 2005 resulted in 550 comments
“I don't get no respect!”
Projects
Tools & Utilities Many popular Java utility applications ported
to .NET Framework nant, nunit, nlucene, nhibernate ( forks ) Very few PHP applications ported
dasBlog ( newtelligence ) BSD License
Community Server ( Telligent ) *NOT* open source
“Early Adopters…”
Intellectual Property Founder Dilemma Copyright Licensing GPL BSD/MIT Shared Source Trademarks Indemnification Forking
Founder Dilemma
Open source projects usually started by developers
Developers are not Lawyers Decisions made early in the project
life cycle are critical to its long term survival and success
“To scratch an itch”
Copyright
The Copyright holder is the person who owns the rights to the Intellectual Property.
Copyright can be transferred to other individuals or companies.
The Copyright holder has the right to decide how their Intellectual Property can be used by others.
Usage details for software are published as a License agreement.
License agreements are essentially a standard legal contract - explicitly outlining the rights and responsibilities of each party.
The Copyright holder has the right to change the License at their discretion.
“The Right To Copy”
Open Source Licensing
“Open Source Definition” managed by the Open Source Initiative ( www.opensource.org )
Non-Profit entity for certifying open source licenses
The most common open source licenses are the GPL and BSD/MIT
Better to adopt an existing license than to invent a new license
“The 10 Commandments”
GPL License
GNU General Public License Created by the Free Software Foundation ( Richard
Stallman ) Contains a “viral” clause which requires that
derivative works must be licensed under the same terms
“Copyleft” ensures that the software remains in the public domain
Restricts linking to create proprietary applications ( LGPL allows linking )
Limits commercial viability in some circumstances
“Copyleft?”
BSD/MIT License
Originated in public university environment Least restrictive license “Copyright” indicates that redistributions must
retain the original copyright notice Allows the software to be customized and released
as a proprietary application ( sometimes referred to as strip-mining )
Maximizes the business potential for the open source application
“The Permissive License”
Shared Source Licenses
Announced by Microsoft in October 2005
Permissive License – least restrictive license, similar to the BSD/MIT license
Community License – reciprocal source code license, similar to the Mozilla license
Reference License – most restrictive license, a “look but do not touch” license
“NIH Syndrome”
Trademarks
A word or mark that distinctly indicates the ownership of a product or service, and that is legally reserved for the exclusive use of the owner.
One of the most valuable assets in any open source project is the brand
Legal protection of the brand is necessary to ensure the longevity and integrity of the project
Trademarks must be individually registered in each jurisdiction ( costly )
Trademark usage guidelines must be published and enforced in order to protect the validity of the mark
“Protecting your identity”
Indemnification
An agreement that protects a party from loss by transferring the responsibilities to a third party.
Project must have a legal entity that professionally manages all intellectual property transactions
Contributor License Agreement Software Grant Agreement Minimize number of third party licensed
components
“One throat to choke?”
Forking
creating your own independent open source project based on an existing open source application
Most open source licenses allow for this scenario to occur
Splinters the project ecosystem Prevention measures include management
of communication channels, trademark enforcement, and active community involvement
“What we've got here is a failure to communicate”
Revenue Models
Overview Dual Licensing Services Model DotNetNuke Model Ecosystems
Overview
Many papers/books written on theoretical aspects of open source revenue models
Revenue models are heavily influenced by the vision of the project Founders as well as by the community
Highly challenging to introduce revenue models to an established open source project
“Show me the money”
Dual Licensing
Offer a commercially licensed version of an open source product
The commercial version will often includes extra value-added features
The commercial license is usually accompanied by a professional support offering from the vendor
Advantages: Traditional Product Licensing Revenue
Disadvantages: Conflict between commercial and open source
stakeholders Application “crippling” Restrictive open source licenses to avoid forks
Examples: mySQL, SugarCRM
“Split personality disorder”
Services Model
The open source product has a competitive advantage based on its huge market reach, resulting in an abundance of business opportunities in the ecosystem
Advantages: Revenue through multiple service-oriented channels Adheres to open source community ideals Preserves delicate balance between commercial and
open source stakeholders Disadvantages:
Not as lucrative or consistent as traditional product licensing revenue
Examples: JBOSS, Redhat
“The Halo Effect”
DotNetNuke Model
Financially supported by members of the ecosystem:
Advertising –provide partners with the ability to promote their products or services to the very large and targeted project membership
Sponsorship – provide community members with the ability to support the project in exchange for recognition for their organization
Subscriptions – Benefactor Program provides a way for all levels of community stakeholders to obtain additional benefits
Sponsored Development – partners have the ability to fund specific enhancements on the condition that the intellectual property becomes part of the project
Community Programs – programs which provide additional value and opportunity to our partners and community members and generate passive revenue for the project.
Custom Consulting – subsidization of the open source development through client installation and integration.
“By the people, for the people”
Ecosystems
Microsoft Open Source projects are generally more accepting of commercial extensions to open source applications
Commercialization results in a more serious, professional, business-oriented open source ecosystem
DotNetNuke has a marketplace containing hundreds of vendors offering competitive products and services
When we support, encourage and assist one another instead of competing for more at the expense of others, we are creating a sustainable, supportive community in which abundance and success; financial and otherwise, can flow freely.
“The Abundance Mentality”
Questions?