SlideShare a Scribd company logo
Open Source .NET
IronPython, the DLR, and your toolkit
Agenda
Introductions
IronPython, the DLR, and open source in the
  .NET world
The Big Demo: Embedding IronPython in C#
Why do this?
Conclusions
The Presentation Stack
Dell Mini 9
GNU/Linux Kernel 2.6.28
Ubuntu Linux 9.04 (“Jaunty”)
Mono 2.4 (includes C# 3.0 support)
IronPython 1.1.1 (approximates CPython 2.6)
About your host
Christopher Groskopf    Gainfully employed at
chris@onyxfish.com       Cal Poly

Ten years programming   Payroll Systems
  experience (two years  Analyst—tools
  paying the bills)      development,
                         systems integration,
Mostly Python, C#, and   and automation
  C/C++
                        Bootstrapping:
Linux, Windows, and      Onyxfish
  ARM embedded
Credit where credit is due
This presentation is loosely based on one by
 Michael Foord—IronPython guru with Resolver
 Systems and author of IronPython in Action.
His site: www.voidspace.org.uk
His book: www.ironpythoninaction.com
Resolver One, an application he works on, is the
 largest application written in IronPython:
 190,000 lines of code (including tests).
The XKCD Argument for Python
The evidence
Duck typing
Flexible syntax
Designed to be read
Defined style conventions
Libraries for everything (batteries included)
Tons of liberally licensed code available
Runs everywhere (C, Jython, PyPy, IronPython)
Fanatical user-base (has a philosophy)
One example
# Updates the last modified time on all Python
# scripts in the current working directory.
import glob
import os

py_fnames = glob.glob('*.py')

paths = [os.path.abspath(f) for f in py_fnames]

for path in paths:
   os.utime(path, None)

print 'Touched %i files' % len(paths)
Why IronPython?




Everything great about Python,
   plus the .NET Libraries.
So how does it work?
Get the DLR: www.codeplex.com/dlr
Get IronPython: www.codeplex.com/IronPython
The DLR allows you to host dynamic languages
 on .NET
Not just Python: also Boo, Lua, Ruby, Scheme
 and others (or roll your own)
The DLR is now maintained by Microsoft and will
 be shipped with the CLR with .NET 4.0
Demo Time!
When to use IronPython?
Line-of-business application development
Prototyping
As a rules/logic definition language for a large
 .NET application (games!)
As a plugin language for end-user development
To provide a console interface to an application
Because your bored and making programming
 fun gives your life meaning again
How does Mono fit in?



       IronPython + The DLR + Mono =
Fully open-source, cross-platform .NET stack

                  (Woot!)
Keep in mind that...
C# 4.0 introduces the 'dynamic' keyword, which
 brings dynamic programming functionality to C#
 and provides native interoperability with DLR
 languages
IronPython is now being supported and
  maintained by an internal Microsoft team
IronPython fills a crucial niche in Microsoft's
  cadre of supported development languages
And most importantly...
The future is language independent
For new applications, language selection doesn't
 matter that much
Library support matters
Documentation matters
Readability matters
Interoperability matters a lot
Choosing a flexible language saves time, money,
 and sanity
In conclusion...
Python =
One more thing!

              th
Effective July 7 both C# and the CLI are covered
       by the Microsoft Community Promise.

           NO MORE PATENT FUD

You're cross-platform Mono/.NET applications are
   now unquestionably and irrevocably legal.

        (We really can all live together!)
Links / Questions?
My Company: www.onyxfish.com
My Blog (for these slides): www.etlafins.com
Python: www.python.org
IronPython: www.codeplex.com/IronPython
DLR: www.codeplex.com/dlr
Michael Foord: www.voidspace.org.uk
Mono: www.mono-project.com
Ubuntu: www.ubuntu.com

More Related Content

PDF
PyPy London Demo Evening 2013
Carl Friedrich Bolz
 
PPT
Py Con 2009 Pumping Iron Into Python
Sarah Dutkiewicz
 
PPT
Python Introduction
Mohammad Javad Beheshtian
 
PPTX
Why Python?
Adam Pah
 
PDF
Python 3.5: An agile, general-purpose development language.
Carlos Miguel Ferreira
 
PPTX
Python 101 for the .NET Developer
Sarah Dutkiewicz
 
PPTX
Python vs c++ ppt
AllProgrammingHelp
 
PyPy London Demo Evening 2013
Carl Friedrich Bolz
 
Py Con 2009 Pumping Iron Into Python
Sarah Dutkiewicz
 
Python Introduction
Mohammad Javad Beheshtian
 
Why Python?
Adam Pah
 
Python 3.5: An agile, general-purpose development language.
Carlos Miguel Ferreira
 
Python 101 for the .NET Developer
Sarah Dutkiewicz
 
Python vs c++ ppt
AllProgrammingHelp
 

What's hot (20)

PPTX
How to integrate python into a scala stack
Fliptop
 
PDF
C++ vs python the best ever comparison
calltutors
 
PDF
Python for Delphi Developers - Part 2
Embarcadero Technologies
 
PPT
Porting To Symbian
Mark Wilcox
 
PDF
Ry pyconjp2015 karaoke
Renyuan Lyu
 
PDF
Intoroduction of py7zr
Hiroshi Miura
 
PPTX
Python Tutorial Part 2
Haitham El-Ghareeb
 
PDF
Python for Application Integration and Development
TsungWei Hu
 
PPTX
Mixed-language Python/C++ debugging with Python Tools for Visual Studio- Pave...
PyData
 
PDF
Python final ppt
Ripal Ranpara
 
PDF
Pythonic doesn't mean slow!
Ronan Lamy
 
PDF
A Python Tutorial
Kartik Singhal
 
PDF
Python for Science and Engineering: a presentation to A*STAR and the Singapor...
pythoncharmers
 
PDF
Getting started with Linux and Python by Caffe
Lihang Li
 
PDF
python for linguists
shukaihsieh
 
PDF
Understanding Coroutine
Justin Li
 
PPTX
Introduction to Python Programing
sameer patil
 
PPTX
Python for Delphi Developers - Part 1 Introduction
Embarcadero Technologies
 
PPTX
The Onward Journey: Porting Twisted to Python 3
Craig Rodrigues
 
PDF
Seattle useR Group - R + Scala
Shouheng Yi
 
How to integrate python into a scala stack
Fliptop
 
C++ vs python the best ever comparison
calltutors
 
Python for Delphi Developers - Part 2
Embarcadero Technologies
 
Porting To Symbian
Mark Wilcox
 
Ry pyconjp2015 karaoke
Renyuan Lyu
 
Intoroduction of py7zr
Hiroshi Miura
 
Python Tutorial Part 2
Haitham El-Ghareeb
 
Python for Application Integration and Development
TsungWei Hu
 
Mixed-language Python/C++ debugging with Python Tools for Visual Studio- Pave...
PyData
 
Python final ppt
Ripal Ranpara
 
Pythonic doesn't mean slow!
Ronan Lamy
 
A Python Tutorial
Kartik Singhal
 
Python for Science and Engineering: a presentation to A*STAR and the Singapor...
pythoncharmers
 
Getting started with Linux and Python by Caffe
Lihang Li
 
python for linguists
shukaihsieh
 
Understanding Coroutine
Justin Li
 
Introduction to Python Programing
sameer patil
 
Python for Delphi Developers - Part 1 Introduction
Embarcadero Technologies
 
The Onward Journey: Porting Twisted to Python 3
Craig Rodrigues
 
Seattle useR Group - R + Scala
Shouheng Yi
 
Ad

Viewers also liked (9)

PDF
PyCon 2011: IronPython Command Line
Lecturer UC Davis & Northwestern
 
PPT
Python with dot net and vs2010
Wei Sun
 
PPT
IronPython and Dynamic Languages on .NET by Mahesh Prakriya
codebits
 
PPTX
Dynamic programming on .net
Mohammad Tayseer
 
PPTX
Python 101 For The Net Developer
Sarah Dutkiewicz
 
PPTX
The .NET developer's introduction to IronPython
Dror Helper
 
PPTX
SyPy IronPython
Nick Hodge
 
PDF
Python Tools for Visual Studio: Python na Microsoftovom .NET-u
Nikola Plejic
 
PPT
Introduction to Python
Nowell Strite
 
PyCon 2011: IronPython Command Line
Lecturer UC Davis & Northwestern
 
Python with dot net and vs2010
Wei Sun
 
IronPython and Dynamic Languages on .NET by Mahesh Prakriya
codebits
 
Dynamic programming on .net
Mohammad Tayseer
 
Python 101 For The Net Developer
Sarah Dutkiewicz
 
The .NET developer's introduction to IronPython
Dror Helper
 
SyPy IronPython
Nick Hodge
 
Python Tools for Visual Studio: Python na Microsoftovom .NET-u
Nikola Plejic
 
Introduction to Python
Nowell Strite
 
Ad

Similar to Open Source .NET (20)

PPT
Cmpe202 01 Research
vladimirkorshak
 
PDF
Python_vision_academy notes
rajaniraut
 
PDF
Python_final_print_batch_II_vision_academy.pdf
muzegharjanahai
 
PDF
Python_final_print_batch_II_vision_academy (1).pdf
rupaliakhute
 
PDF
Python_final_print_batch_II_vision_academy.pdf
bhagyashri686896
 
PDF
Python_final_print_batch_II_vision_academy.pdf
sannykhopade
 
PDF
Introduction to Python
DrMohammed Qassim
 
PPTX
Python | What is Python | History of Python | Python Tutorial
QA TrainingHub
 
PDF
Python_final_print_vison_academy_9822506209.pdf
VisionAcademyProfSac
 
PPT
Python Programming Unit1_Aditya College of Engg & Tech
Ramanamurthy Banda
 
PDF
session5-Getting stated with Python.pdf
AyushDutta32
 
PPTX
Evolution of programming languages
Nitin Kumar Kashyap
 
PPTX
Introduction to Python.pptx
SamyakJain461
 
PDF
Introduction To Python
Biswajeet Dasmajumdar
 
PDF
Python: the secret weapon of Fedora - FLISoL 2015
Bruno R. Zanuzzo
 
PDF
Python tutorial
Vijay Chaitanya
 
PPTX
Python Class 1
arijit banerjee
 
PPTX
Getting Started with Python
Sankhya_Analytics
 
PDF
The main Python implementation, named CPython, is written in C meeti.pdf
anudamobileshopee
 
PPTX
introduction to python in computer graphics.pptx
urvashipundir04
 
Cmpe202 01 Research
vladimirkorshak
 
Python_vision_academy notes
rajaniraut
 
Python_final_print_batch_II_vision_academy.pdf
muzegharjanahai
 
Python_final_print_batch_II_vision_academy (1).pdf
rupaliakhute
 
Python_final_print_batch_II_vision_academy.pdf
bhagyashri686896
 
Python_final_print_batch_II_vision_academy.pdf
sannykhopade
 
Introduction to Python
DrMohammed Qassim
 
Python | What is Python | History of Python | Python Tutorial
QA TrainingHub
 
Python_final_print_vison_academy_9822506209.pdf
VisionAcademyProfSac
 
Python Programming Unit1_Aditya College of Engg & Tech
Ramanamurthy Banda
 
session5-Getting stated with Python.pdf
AyushDutta32
 
Evolution of programming languages
Nitin Kumar Kashyap
 
Introduction to Python.pptx
SamyakJain461
 
Introduction To Python
Biswajeet Dasmajumdar
 
Python: the secret weapon of Fedora - FLISoL 2015
Bruno R. Zanuzzo
 
Python tutorial
Vijay Chaitanya
 
Python Class 1
arijit banerjee
 
Getting Started with Python
Sankhya_Analytics
 
The main Python implementation, named CPython, is written in C meeti.pdf
anudamobileshopee
 
introduction to python in computer graphics.pptx
urvashipundir04
 

Recently uploaded (20)

PPTX
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
sujalchauhan1305
 
PDF
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
PPTX
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
PPTX
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
PDF
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
PDF
GDG Cloud Munich - Intro - Luiz Carneiro - #BuildWithAI - July - Abdel.pdf
Luiz Carneiro
 
PDF
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
PDF
Software Development Methodologies in 2025
KodekX
 
PPTX
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
PDF
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
 
PPTX
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
PDF
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 
PDF
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
PDF
How ETL Control Logic Keeps Your Pipelines Safe and Reliable.pdf
Stryv Solutions Pvt. Ltd.
 
PPTX
Introduction to Flutter by Ayush Desai.pptx
ayushdesai204
 
PPTX
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
PDF
The Future of Artificial Intelligence (AI)
Mukul
 
PDF
SparkLabs Primer on Artificial Intelligence 2025
SparkLabs Group
 
PDF
Peak of Data & AI Encore - Real-Time Insights & Scalable Editing with ArcGIS
Safe Software
 
PDF
AI-Cloud-Business-Management-Platforms-The-Key-to-Efficiency-Growth.pdf
Artjoker Software Development Company
 
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
sujalchauhan1305
 
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
GDG Cloud Munich - Intro - Luiz Carneiro - #BuildWithAI - July - Abdel.pdf
Luiz Carneiro
 
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
Software Development Methodologies in 2025
KodekX
 
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
 
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
How ETL Control Logic Keeps Your Pipelines Safe and Reliable.pdf
Stryv Solutions Pvt. Ltd.
 
Introduction to Flutter by Ayush Desai.pptx
ayushdesai204
 
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
The Future of Artificial Intelligence (AI)
Mukul
 
SparkLabs Primer on Artificial Intelligence 2025
SparkLabs Group
 
Peak of Data & AI Encore - Real-Time Insights & Scalable Editing with ArcGIS
Safe Software
 
AI-Cloud-Business-Management-Platforms-The-Key-to-Efficiency-Growth.pdf
Artjoker Software Development Company
 

Open Source .NET

  • 1. Open Source .NET IronPython, the DLR, and your toolkit
  • 2. Agenda Introductions IronPython, the DLR, and open source in the .NET world The Big Demo: Embedding IronPython in C# Why do this? Conclusions
  • 3. The Presentation Stack Dell Mini 9 GNU/Linux Kernel 2.6.28 Ubuntu Linux 9.04 (“Jaunty”) Mono 2.4 (includes C# 3.0 support) IronPython 1.1.1 (approximates CPython 2.6)
  • 4. About your host Christopher Groskopf Gainfully employed at [email protected] Cal Poly Ten years programming Payroll Systems experience (two years Analyst—tools paying the bills) development, systems integration, Mostly Python, C#, and and automation C/C++ Bootstrapping: Linux, Windows, and Onyxfish ARM embedded
  • 5. Credit where credit is due This presentation is loosely based on one by Michael Foord—IronPython guru with Resolver Systems and author of IronPython in Action. His site: www.voidspace.org.uk His book: www.ironpythoninaction.com Resolver One, an application he works on, is the largest application written in IronPython: 190,000 lines of code (including tests).
  • 6. The XKCD Argument for Python
  • 7. The evidence Duck typing Flexible syntax Designed to be read Defined style conventions Libraries for everything (batteries included) Tons of liberally licensed code available Runs everywhere (C, Jython, PyPy, IronPython) Fanatical user-base (has a philosophy)
  • 8. One example # Updates the last modified time on all Python # scripts in the current working directory. import glob import os py_fnames = glob.glob('*.py') paths = [os.path.abspath(f) for f in py_fnames] for path in paths: os.utime(path, None) print 'Touched %i files' % len(paths)
  • 9. Why IronPython? Everything great about Python, plus the .NET Libraries.
  • 10. So how does it work? Get the DLR: www.codeplex.com/dlr Get IronPython: www.codeplex.com/IronPython The DLR allows you to host dynamic languages on .NET Not just Python: also Boo, Lua, Ruby, Scheme and others (or roll your own) The DLR is now maintained by Microsoft and will be shipped with the CLR with .NET 4.0
  • 12. When to use IronPython? Line-of-business application development Prototyping As a rules/logic definition language for a large .NET application (games!) As a plugin language for end-user development To provide a console interface to an application Because your bored and making programming fun gives your life meaning again
  • 13. How does Mono fit in? IronPython + The DLR + Mono = Fully open-source, cross-platform .NET stack (Woot!)
  • 14. Keep in mind that... C# 4.0 introduces the 'dynamic' keyword, which brings dynamic programming functionality to C# and provides native interoperability with DLR languages IronPython is now being supported and maintained by an internal Microsoft team IronPython fills a crucial niche in Microsoft's cadre of supported development languages And most importantly...
  • 15. The future is language independent For new applications, language selection doesn't matter that much Library support matters Documentation matters Readability matters Interoperability matters a lot Choosing a flexible language saves time, money, and sanity
  • 18. One more thing! th Effective July 7 both C# and the CLI are covered by the Microsoft Community Promise. NO MORE PATENT FUD You're cross-platform Mono/.NET applications are now unquestionably and irrevocably legal. (We really can all live together!)
  • 19. Links / Questions? My Company: www.onyxfish.com My Blog (for these slides): www.etlafins.com Python: www.python.org IronPython: www.codeplex.com/IronPython DLR: www.codeplex.com/dlr Michael Foord: www.voidspace.org.uk Mono: www.mono-project.com Ubuntu: www.ubuntu.com