SlideShare uma empresa Scribd logo
1 de 56
Baixar para ler offline
Python   Python Tools for VS                   DLR i IronPython   Zaklju£ak




         Python Tools for Visual Studio
             Python na Microsoftovom .NET-u




                               Nikola Pleji¢


                           nikola@plejic.com

                        http://nikola.plejic.com




                 DevUG Zagreb, 27.10.2011.
Python              Python Tools for VS   DLR i IronPython   Zaklju£ak

Outline

     1   Python
           Uvod
           Kratak vodi£ kroz jezik



     2   Python Tools for VS
           Instalacija



     3   DLR i IronPython
           Dynamic Language Runtime
           Uporaba IronPythona
Python          Python Tools for VS     DLR i IronPython   Zaklju£ak

Python?



         > print(Hello, world!)
         Hello, world!
Python                Python Tools for VS          DLR i IronPython   Zaklju£ak

Python?



         •   op¢eniti, objektno-orijentirani high-level jezik
Python                Python Tools for VS          DLR i IronPython   Zaklju£ak

Python?



         •   op¢eniti, objektno-orijentirani high-level jezik

         •   dinami£ki, strongly typed
Python                Python Tools for VS          DLR i IronPython   Zaklju£ak

Python?



         •   op¢eniti, objektno-orijentirani high-level jezik

         •   dinami£ki, strongly typed

         •   fokus na £itljivost i jednostavnost sintakse
Python                 Python Tools for VS                  DLR i IronPython     Zaklju£ak

The Zen of Python

          import this

         The Zen of Python, by Tim Peters


         Beautiful is better than ugly.
         Explicit is better than implicit.
         Simple is better than complex.
         Complex is better than complicated.
         Flat is better than nested.
         Sparse is better than dense.
         Readability counts.
         Special cases aren't special enough to break the rules.
         Although practicality beats purity.
         Errors should never pass silently.
         Unless explicitly silenced.
         In the face of ambiguity, refuse the temptation to guess.
         There should be one-- and preferably only one --obvious way to do it.
         Although that way may not be obvious at first unless you're Dutch.
         Now is better than never.
         Although never is often better than *right* now.
         If the implementation is hard to explain, it's a bad idea.
         If the implementation is easy to explain, it may be a good idea.
         Namespaces are one honking great idea -- let's do more of those!
Python               Python Tools for VS   DLR i IronPython   Zaklju£ak

Kratka povijest



         •   nastao krajem 1989. godine
Python               Python Tools for VS      DLR i IronPython          Zaklju£ak

Kratka povijest



         •   nastao krajem 1989. godine

         •   Guido van Rossum (BDFL  Benevolent Dictator For Life)
Python               Python Tools for VS      DLR i IronPython          Zaklju£ak

Kratka povijest



         •   nastao krajem 1989. godine

         •   Guido van Rossum (BDFL  Benevolent Dictator For Life)

         •   Python 2 vs. Python 3
Python               Python Tools for VS      DLR i IronPython   Zaklju£ak

Implementacije



         •   referentna implementacija  CPython
Python               Python Tools for VS      DLR i IronPython   Zaklju£ak

Implementacije



         •   referentna implementacija  CPython

         •   Jython, IronPython, PyPy
Python               Python Tools for VS       DLR i IronPython   Zaklju£ak

Implementacije



         •   referentna implementacija  CPython

         •   Jython, IronPython, PyPy

         •   raznorazni kompajleri (Pyjamas, Pyrex, Cython)
Python                Python Tools for VS   DLR i IronPython   Zaklju£ak

Osnovni tipovi podataka


         •   sve je objekt
Python                 Python Tools for VS         DLR i IronPython   Zaklju£ak

Osnovni tipovi podataka


         •   sve je objekt


         •   string vs. unicode

               •   ne i u IronPythonu (string == unicode)
Python                  Python Tools for VS         DLR i IronPython   Zaklju£ak

Osnovni tipovi podataka


         •   sve je objekt


         •   string vs. unicode

                •   ne i u IronPythonu (string == unicode)

         •   liste, tuplei
Python                  Python Tools for VS         DLR i IronPython   Zaklju£ak

Osnovni tipovi podataka


         •   sve je objekt


         •   string vs. unicode

                •   ne i u IronPythonu (string == unicode)

         •   liste, tuplei


         •   dictionaries
Python               Python Tools for VS   DLR i IronPython   Zaklju£ak

Comprehensions


         •   list comprehensions
Python               Python Tools for VS   DLR i IronPython   Zaklju£ak

Comprehensions


         •   list comprehensions


         •   dictionary comprehensions
Python                 Python Tools for VS    DLR i IronPython   Zaklju£ak

Comprehensions


         •   list comprehensions


         •   dictionary comprehensions


         •   generatori

               •   generator comprehensions
Python               Python Tools for VS   DLR i IronPython   Zaklju£ak

Objektni model

         •   klase
Python                Python Tools for VS   DLR i IronPython   Zaklju£ak

Objektni model

         •   klase


         •   klase su objekti
Python                 Python Tools for VS          DLR i IronPython            Zaklju£ak

Objektni model

         •   klase


         •   klase su objekti


         •   metaklase

               •    [...] deeper magic than 99% of users should ever worry about.
                   If you wonder whether you need them, you don't (the people
                   who actually need them know with certainty that they need
                   them, and don't need an explanation about why). ~ Tim
                   Peters
Python                  Python Tools for VS           DLR i IronPython     Zaklju£ak

’to nam treba?

         •    distribucija Pythona

                •   standardni interpreter, ActiveState, IronPython, ...




         1   http://pytools.codeplex.com/
         2   http://ipython.org/
         3   MSI na https://github.com/zeromq/pyzmq/downloads
Python                  Python Tools for VS           DLR i IronPython     Zaklju£ak

’to nam treba?

         •    distribucija Pythona

                •   standardni interpreter, ActiveState, IronPython, ...

         •    Visual Studio ili besplatni Visual Studio Shell

                •   ne i VS Express!




         1   http://pytools.codeplex.com/
         2   http://ipython.org/
         3   MSI na https://github.com/zeromq/pyzmq/downloads
Python                  Python Tools for VS           DLR i IronPython     Zaklju£ak

’to nam treba?

         •    distribucija Pythona

                •   standardni interpreter, ActiveState, IronPython, ...

         •    Visual Studio ili besplatni Visual Studio Shell

                •   ne i VS Express!

                                                 1
         •    Python Tools for Visual Studio




         1   http://pytools.codeplex.com/
         2   http://ipython.org/
         3   MSI na https://github.com/zeromq/pyzmq/downloads
Python                     Python Tools for VS           DLR i IronPython   Zaklju£ak

’to nam treba?

         •    distribucija Pythona

                •   standardni interpreter, ActiveState, IronPython, ...

         •    Visual Studio ili besplatni Visual Studio Shell

                •   ne i VS Express!

                                                     1
         •    Python Tools for Visual Studio

                       2
         •    IPython

                •   alternativni (ne-samo-)Python shell
                •   potreban pyzmq 2.1.4
                                                 3




         1   http://pytools.codeplex.com/
         2   http://ipython.org/
         3   MSI na https://github.com/zeromq/pyzmq/downloads
Python                  Python Tools for VS   DLR i IronPython   Zaklju£ak

’to dobivamo?


         •    IntelliSense




         4   samo u VS Ultimate :(
Python                  Python Tools for VS   DLR i IronPython   Zaklju£ak

’to dobivamo?


         •    IntelliSense

         •    project management




         4   samo u VS Ultimate :(
Python                  Python Tools for VS   DLR i IronPython   Zaklju£ak

’to dobivamo?


         •    IntelliSense

         •    project management

         •    debugger




         4   samo u VS Ultimate :(
Python                       Python Tools for VS   DLR i IronPython   Zaklju£ak

’to dobivamo?


         •    IntelliSense

         •    project management

         •    debugger

                         4
         •    proling




         4   samo u VS Ultimate :(
Python                Python Tools for VS      DLR i IronPython            Zaklju£ak

’to je DLR?

         •   skup libraryja nad CLR-om koji olak²ava hostanje dinami£kih
             jezika
Python                Python Tools for VS           DLR i IronPython       Zaklju£ak

’to je DLR?

         •   skup libraryja nad CLR-om koji olak²ava hostanje dinami£kih
             jezika


         •   izvu£en iz ranih verzija IronPythona
Python                Python Tools for VS           DLR i IronPython       Zaklju£ak

’to je DLR?

         •   skup libraryja nad CLR-om koji olak²ava hostanje dinami£kih
             jezika


         •   izvu£en iz ranih verzija IronPythona


         •   zajedni£ka podloga za sve dinami£ke jezike na .NET-u
             (IronRuby, IronScheme)
Python                Python Tools for VS           DLR i IronPython       Zaklju£ak

’to je DLR?

         •   skup libraryja nad CLR-om koji olak²ava hostanje dinami£kih
             jezika


         •   izvu£en iz ranih verzija IronPythona


         •   zajedni£ka podloga za sve dinami£ke jezike na .NET-u
             (IronRuby, IronScheme)


         •   pro²irenje postoje¢im stati£kim jezicima (dynamic dispatching
             @ C# 4.0)
Python                Python Tools for VS           DLR i IronPython       Zaklju£ak

’to je DLR?

         •   skup libraryja nad CLR-om koji olak²ava hostanje dinami£kih
             jezika


         •   izvu£en iz ranih verzija IronPythona


         •   zajedni£ka podloga za sve dinami£ke jezike na .NET-u
             (IronRuby, IronScheme)


         •   pro²irenje postoje¢im stati£kim jezicima (dynamic dispatching
             @ C# 4.0)


         •   .NET Framework 4.0 + Mono 2.8+ po defaultu
Python               Python Tools for VS   DLR i IronPython   Zaklju£ak

Kratka povijest IronPythona


         •   Jim Hugunin, 2006.
Python               Python Tools for VS       DLR i IronPython   Zaklju£ak

Kratka povijest IronPythona


         •   Jim Hugunin, 2006.


         •   danas: Microsoft (razvoj na CodePlexu)
Python               Python Tools for VS       DLR i IronPython   Zaklju£ak

Kratka povijest IronPythona


         •   Jim Hugunin, 2006.


         •   danas: Microsoft (razvoj na CodePlexu)


         •   open source (Apache 2.0)
Python                Python Tools for VS        DLR i IronPython   Zaklju£ak

Kratka povijest IronPythona


         •   Jim Hugunin, 2006.


         •   danas: Microsoft (razvoj na CodePlexu)


         •   open source (Apache 2.0)


         •   aktivno razvijan (zadnji release: 21.10.2011.)
Python                 Python Tools for VS         DLR i IronPython            Zaklju£ak

Featurei


         • ≈   CPython 2.7 uz manje razlike, npr.:

               •   string == unicode
               •   Python podrºava vi²estruko naslježivanje, CLR ne podrºava
Python                 Python Tools for VS         DLR i IronPython            Zaklju£ak

Featurei


         • ≈   CPython 2.7 uz manje razlike, npr.:

               •   string == unicode
               •   Python podrºava vi²estruko naslježivanje, CLR ne podrºava


         •   integracija s .NET frameworkom
Python                 Python Tools for VS         DLR i IronPython            Zaklju£ak

Featurei


         • ≈   CPython 2.7 uz manje razlike, npr.:

               •   string == unicode
               •   Python podrºava vi²estruko naslježivanje, CLR ne podrºava


         •   integracija s .NET frameworkom


         •   Silverlight scripting
Python          Python Tools for VS   DLR i IronPython   Zaklju£ak

Pri£anje s .NET-om

         # deklaracija referenci
         import clr
         clr.AddReference(System.Xml)

         # namespacevi
         import System
         from System.Xml import *
         xmldoc = XmlDocument()

         # alternativno:
         # import system
         # xmldoc = System.Xml.XmlDocument()
Python                 Python Tools for VS          DLR i IronPython           Zaklju£ak

Pri£anje s .NET-om (smjer #2)

                                                     5
         •    DLR Hosting API (= free scripting!)




         5   http://dlr.codeplex.com/wikipage?title=Docs%20and%20specsreferringTitle=Do
Python                  Python Tools for VS         DLR i IronPython           Zaklju£ak

Pri£anje s .NET-om (smjer #2)

                                                     5
         •    DLR Hosting API (= free scripting!)


         •    kompajliranje IronPython aplikacije u .NET assembly

                •   While the assemblies produced by the IronPython Hosting
                    APIs are true .NET assemblies, the dynamic nature of the
                    Python language makes it dicult to use these from other
                    .NET languages. In short, this means that attempting to
                    import Python types into other .NET languages such as C# is
                    not recommended.




         5   http://dlr.codeplex.com/wikipage?title=Docs%20and%20specsreferringTitle=Do
Python                 Python Tools for VS          DLR i IronPython   Zaklju£ak

ASP.NET i IronPython


         •    WebForms uz ASP.NET Dynamic Language Support




         6   http://github.com/jschementi/ironrubymvc
Python                   Python Tools for VS        DLR i IronPython           Zaklju£ak

ASP.NET i IronPython


         •    WebForms uz ASP.NET Dynamic Language Support


         •    ASP.NET MVC

                 •   http://www.codevoyeur.com/Articles/Tags/ironpython.aspx
                 •   Rubyja²i su bolje pro²li
                                               6




         6   http://github.com/jschementi/ironrubymvc
Python                   Python Tools for VS             DLR i IronPython   Zaklju£ak

Alternative

                     7
         •    Boo

                 •   sintaksa inspirirana Pythonom
                 •   stati£ki tipiziran (type inferencing)
                 •   makroi




         7   http://boo.codehaus.org/
         8   http://ironruby.net/
         9   http://ironscheme.codeplex.com/
Python                   Python Tools for VS             DLR i IronPython   Zaklju£ak

Alternative

                     7
         •    Boo

                 •   sintaksa inspirirana Pythonom
                 •   stati£ki tipiziran (type inferencing)
                 •   makroi


                          8
         •    IronRuby




         7   http://boo.codehaus.org/
         8   http://ironruby.net/
         9   http://ironscheme.codeplex.com/
Python                   Python Tools for VS             DLR i IronPython   Zaklju£ak

Alternative

                     7
         •    Boo

                 •   sintaksa inspirirana Pythonom
                 •   stati£ki tipiziran (type inferencing)
                 •   makroi


                          8
         •    IronRuby

                               9
         •    IronScheme?

                 •   skoro-pa-R6RS Scheme




         7   http://boo.codehaus.org/
         8   http://ironruby.net/
         9   http://ironscheme.codeplex.com/
Python               Python Tools for VS       DLR i IronPython         Zaklju£ak

Zaklju£ak


         •   ozbiljan, dobro podrºan dinami£ki jezik na CLR-u i Monou
Python                Python Tools for VS       DLR i IronPython        Zaklju£ak

Zaklju£ak


         •   ozbiljan, dobro podrºan dinami£ki jezik na CLR-u i Monou


         •   vrlo solidan toolchain u razvoju
Python                 Python Tools for VS             DLR i IronPython   Zaklju£ak

Zaklju£ak


         •   ozbiljan, dobro podrºan dinami£ki jezik na CLR-u i Monou


         •   vrlo solidan toolchain u razvoju


         •   £emu sve to?

               •   brzi prototyping
               •   testiranje .NET assemblyja
               •   skriptiranje .NET i Silverlight aplikacija
Python      Python Tools for VS              DLR i IronPython   Zaklju£ak

Zaklju£ak


                Hvala na paºnji!

                                Nikola Pleji¢
                             nikola@plejic.com
                         http://nikola.plejic.com/

Mais conteúdo relacionado

Mais procurados

Overview of Python - Bsides Detroit 2012
Overview of Python - Bsides Detroit 2012Overview of Python - Bsides Detroit 2012
Overview of Python - Bsides Detroit 2012Tazdrumm3r
 
Making the big data ecosystem work together with python apache arrow, spark,...
Making the big data ecosystem work together with python  apache arrow, spark,...Making the big data ecosystem work together with python  apache arrow, spark,...
Making the big data ecosystem work together with python apache arrow, spark,...Holden Karau
 
Python indroduction
Python indroductionPython indroduction
Python indroductionFEG
 
Programming with Python: Week 1
Programming with Python: Week 1Programming with Python: Week 1
Programming with Python: Week 1Ahmet Bulut
 
Powering tensorflow with big data (apache spark, flink, and beam) dataworks...
Powering tensorflow with big data (apache spark, flink, and beam)   dataworks...Powering tensorflow with big data (apache spark, flink, and beam)   dataworks...
Powering tensorflow with big data (apache spark, flink, and beam) dataworks...Holden Karau
 
Python 3.5: An agile, general-purpose development language.
Python 3.5: An agile, general-purpose development language.Python 3.5: An agile, general-purpose development language.
Python 3.5: An agile, general-purpose development language.Carlos Miguel Ferreira
 
A peek into Python's Metaclass and Bytecode from a Smalltalk User
A peek into Python's Metaclass and Bytecode from a Smalltalk UserA peek into Python's Metaclass and Bytecode from a Smalltalk User
A peek into Python's Metaclass and Bytecode from a Smalltalk UserKoan-Sin Tan
 
Smalltalk and ruby - 2012-12-08
Smalltalk and ruby  - 2012-12-08Smalltalk and ruby  - 2012-12-08
Smalltalk and ruby - 2012-12-08Koan-Sin Tan
 
Random Thoughts on Paper Implementations [KAIST 2018]
Random Thoughts on Paper Implementations [KAIST 2018]Random Thoughts on Paper Implementations [KAIST 2018]
Random Thoughts on Paper Implementations [KAIST 2018]Taehoon Kim
 
What is Python? (Silicon Valley CodeCamp 2014)
What is Python? (Silicon Valley CodeCamp 2014)What is Python? (Silicon Valley CodeCamp 2014)
What is Python? (Silicon Valley CodeCamp 2014)wesley chun
 
Python教程 / Python tutorial
Python教程 / Python tutorialPython教程 / Python tutorial
Python教程 / Python tutorialee0703
 
What is Python? (Silicon Valley CodeCamp 2015)
What is Python? (Silicon Valley CodeCamp 2015)What is Python? (Silicon Valley CodeCamp 2015)
What is Python? (Silicon Valley CodeCamp 2015)wesley chun
 
Advanced Python Tutorial | Learn Advanced Python Concepts | Python Programmin...
Advanced Python Tutorial | Learn Advanced Python Concepts | Python Programmin...Advanced Python Tutorial | Learn Advanced Python Concepts | Python Programmin...
Advanced Python Tutorial | Learn Advanced Python Concepts | Python Programmin...Edureka!
 
Profiling and optimizing RAM and CPU use in RMG-Py
Profiling and optimizing RAM and CPU use in RMG-PyProfiling and optimizing RAM and CPU use in RMG-Py
Profiling and optimizing RAM and CPU use in RMG-PyRichard West
 
Sharing (or stealing) the jewels of python with big data & the jvm (1)
Sharing (or stealing) the jewels of python with big data & the jvm (1)Sharing (or stealing) the jewels of python with big data & the jvm (1)
Sharing (or stealing) the jewels of python with big data & the jvm (1)Holden Karau
 

Mais procurados (20)

Overview of Python - Bsides Detroit 2012
Overview of Python - Bsides Detroit 2012Overview of Python - Bsides Detroit 2012
Overview of Python - Bsides Detroit 2012
 
Python final ppt
Python final pptPython final ppt
Python final ppt
 
Python Intro
Python IntroPython Intro
Python Intro
 
Making the big data ecosystem work together with python apache arrow, spark,...
Making the big data ecosystem work together with python  apache arrow, spark,...Making the big data ecosystem work together with python  apache arrow, spark,...
Making the big data ecosystem work together with python apache arrow, spark,...
 
Python indroduction
Python indroductionPython indroduction
Python indroduction
 
Programming with Python: Week 1
Programming with Python: Week 1Programming with Python: Week 1
Programming with Python: Week 1
 
Powering tensorflow with big data (apache spark, flink, and beam) dataworks...
Powering tensorflow with big data (apache spark, flink, and beam)   dataworks...Powering tensorflow with big data (apache spark, flink, and beam)   dataworks...
Powering tensorflow with big data (apache spark, flink, and beam) dataworks...
 
Python 3.5: An agile, general-purpose development language.
Python 3.5: An agile, general-purpose development language.Python 3.5: An agile, general-purpose development language.
Python 3.5: An agile, general-purpose development language.
 
A peek into Python's Metaclass and Bytecode from a Smalltalk User
A peek into Python's Metaclass and Bytecode from a Smalltalk UserA peek into Python's Metaclass and Bytecode from a Smalltalk User
A peek into Python's Metaclass and Bytecode from a Smalltalk User
 
Python
Python Python
Python
 
Smalltalk and ruby - 2012-12-08
Smalltalk and ruby  - 2012-12-08Smalltalk and ruby  - 2012-12-08
Smalltalk and ruby - 2012-12-08
 
Random Thoughts on Paper Implementations [KAIST 2018]
Random Thoughts on Paper Implementations [KAIST 2018]Random Thoughts on Paper Implementations [KAIST 2018]
Random Thoughts on Paper Implementations [KAIST 2018]
 
What is Python? (Silicon Valley CodeCamp 2014)
What is Python? (Silicon Valley CodeCamp 2014)What is Python? (Silicon Valley CodeCamp 2014)
What is Python? (Silicon Valley CodeCamp 2014)
 
Python教程 / Python tutorial
Python教程 / Python tutorialPython教程 / Python tutorial
Python教程 / Python tutorial
 
What is Python? (Silicon Valley CodeCamp 2015)
What is Python? (Silicon Valley CodeCamp 2015)What is Python? (Silicon Valley CodeCamp 2015)
What is Python? (Silicon Valley CodeCamp 2015)
 
Advanced Python Tutorial | Learn Advanced Python Concepts | Python Programmin...
Advanced Python Tutorial | Learn Advanced Python Concepts | Python Programmin...Advanced Python Tutorial | Learn Advanced Python Concepts | Python Programmin...
Advanced Python Tutorial | Learn Advanced Python Concepts | Python Programmin...
 
Profiling and optimizing RAM and CPU use in RMG-Py
Profiling and optimizing RAM and CPU use in RMG-PyProfiling and optimizing RAM and CPU use in RMG-Py
Profiling and optimizing RAM and CPU use in RMG-Py
 
Python Introduction
Python IntroductionPython Introduction
Python Introduction
 
Sharing (or stealing) the jewels of python with big data & the jvm (1)
Sharing (or stealing) the jewels of python with big data & the jvm (1)Sharing (or stealing) the jewels of python with big data & the jvm (1)
Sharing (or stealing) the jewels of python with big data & the jvm (1)
 
Python Introduction
Python IntroductionPython Introduction
Python Introduction
 

Destaque

Logical Programming With ruby-prolog
Logical Programming With ruby-prologLogical Programming With ruby-prolog
Logical Programming With ruby-prologPreston Lee
 
Prolog -Cpt114 - Week3
Prolog -Cpt114 - Week3Prolog -Cpt114 - Week3
Prolog -Cpt114 - Week3a_akhavan
 
Part 1 picturebox using vb.net
Part 1 picturebox using vb.netPart 1 picturebox using vb.net
Part 1 picturebox using vb.netGirija Muscut
 
Part 3 binding navigator vb.net
Part 3 binding navigator vb.netPart 3 binding navigator vb.net
Part 3 binding navigator vb.netGirija Muscut
 
How Not To Be Seen
How Not To Be SeenHow Not To Be Seen
How Not To Be SeenMark Pesce
 
Making Information Usable: The Art & Science of Information Design
Making Information Usable: The Art & Science of Information DesignMaking Information Usable: The Art & Science of Information Design
Making Information Usable: The Art & Science of Information DesignHubbard One
 
Transforming the world with Information technology
Transforming the world with Information technologyTransforming the world with Information technology
Transforming the world with Information technologyGlenn Klith Andersen
 
Part 5 create sequence increment value using negative value
Part 5 create sequence increment value using negative valuePart 5 create sequence increment value using negative value
Part 5 create sequence increment value using negative valueGirija Muscut
 
Vb.net session 15
Vb.net session 15Vb.net session 15
Vb.net session 15Niit Care
 
What’s new in Visual C++
What’s new in Visual C++What’s new in Visual C++
What’s new in Visual C++Microsoft
 
Part 8 add,update,delete records using records operation buttons in vb.net
Part 8 add,update,delete records using records operation buttons in vb.netPart 8 add,update,delete records using records operation buttons in vb.net
Part 8 add,update,delete records using records operation buttons in vb.netGirija Muscut
 
Part2 database connection service based using vb.net
Part2 database connection service based using vb.netPart2 database connection service based using vb.net
Part2 database connection service based using vb.netGirija Muscut
 
Pioneers of Information Science in Europe: The Oeuvre of Norbert Henrichs
Pioneers of Information Science in Europe: The Oeuvre of Norbert HenrichsPioneers of Information Science in Europe: The Oeuvre of Norbert Henrichs
Pioneers of Information Science in Europe: The Oeuvre of Norbert HenrichsWolfgang Stock
 
Debugging in visual studio (basic level)
Debugging in visual studio (basic level)Debugging in visual studio (basic level)
Debugging in visual studio (basic level)Larry Nung
 
Cognitive information science
Cognitive information scienceCognitive information science
Cognitive information scienceS. Kate Devitt
 
RuleML2015: Explanation of proofs of regulatory (non-)complianceusing semanti...
RuleML2015: Explanation of proofs of regulatory (non-)complianceusing semanti...RuleML2015: Explanation of proofs of regulatory (non-)complianceusing semanti...
RuleML2015: Explanation of proofs of regulatory (non-)complianceusing semanti...RuleML
 

Destaque (20)

Logical Programming With ruby-prolog
Logical Programming With ruby-prologLogical Programming With ruby-prolog
Logical Programming With ruby-prolog
 
Prolog -Cpt114 - Week3
Prolog -Cpt114 - Week3Prolog -Cpt114 - Week3
Prolog -Cpt114 - Week3
 
Introduction to XML
Introduction to XMLIntroduction to XML
Introduction to XML
 
Part 1 picturebox using vb.net
Part 1 picturebox using vb.netPart 1 picturebox using vb.net
Part 1 picturebox using vb.net
 
Part 3 binding navigator vb.net
Part 3 binding navigator vb.netPart 3 binding navigator vb.net
Part 3 binding navigator vb.net
 
How Not To Be Seen
How Not To Be SeenHow Not To Be Seen
How Not To Be Seen
 
Information Overload and Information Science / Mieczysław Muraszkiewicz
Information Overload and Information Science / Mieczysław MuraszkiewiczInformation Overload and Information Science / Mieczysław Muraszkiewicz
Information Overload and Information Science / Mieczysław Muraszkiewicz
 
Presentation1
Presentation1Presentation1
Presentation1
 
Making Information Usable: The Art & Science of Information Design
Making Information Usable: The Art & Science of Information DesignMaking Information Usable: The Art & Science of Information Design
Making Information Usable: The Art & Science of Information Design
 
Transforming the world with Information technology
Transforming the world with Information technologyTransforming the world with Information technology
Transforming the world with Information technology
 
Part 5 create sequence increment value using negative value
Part 5 create sequence increment value using negative valuePart 5 create sequence increment value using negative value
Part 5 create sequence increment value using negative value
 
Vb.net session 15
Vb.net session 15Vb.net session 15
Vb.net session 15
 
What’s new in Visual C++
What’s new in Visual C++What’s new in Visual C++
What’s new in Visual C++
 
Part 8 add,update,delete records using records operation buttons in vb.net
Part 8 add,update,delete records using records operation buttons in vb.netPart 8 add,update,delete records using records operation buttons in vb.net
Part 8 add,update,delete records using records operation buttons in vb.net
 
Part2 database connection service based using vb.net
Part2 database connection service based using vb.netPart2 database connection service based using vb.net
Part2 database connection service based using vb.net
 
Pioneers of Information Science in Europe: The Oeuvre of Norbert Henrichs
Pioneers of Information Science in Europe: The Oeuvre of Norbert HenrichsPioneers of Information Science in Europe: The Oeuvre of Norbert Henrichs
Pioneers of Information Science in Europe: The Oeuvre of Norbert Henrichs
 
Debugging in visual studio (basic level)
Debugging in visual studio (basic level)Debugging in visual studio (basic level)
Debugging in visual studio (basic level)
 
Cognitive information science
Cognitive information scienceCognitive information science
Cognitive information science
 
Cpp lab 13_pres
Cpp lab 13_presCpp lab 13_pres
Cpp lab 13_pres
 
RuleML2015: Explanation of proofs of regulatory (non-)complianceusing semanti...
RuleML2015: Explanation of proofs of regulatory (non-)complianceusing semanti...RuleML2015: Explanation of proofs of regulatory (non-)complianceusing semanti...
RuleML2015: Explanation of proofs of regulatory (non-)complianceusing semanti...
 

Semelhante a Python Tools for Visual Studio: Python na Microsoftovom .NET-u

Python Programming1.ppt
Python Programming1.pptPython Programming1.ppt
Python Programming1.pptRehnawilson1
 
Introduction to Python – Learn Python Programming.pptx
Introduction to Python – Learn Python Programming.pptxIntroduction to Python – Learn Python Programming.pptx
Introduction to Python – Learn Python Programming.pptxHassanShah396906
 
python presntation 2.pptx
python presntation 2.pptxpython presntation 2.pptx
python presntation 2.pptxArpittripathi45
 
Intro to Python for C# Developers
Intro to Python for C# DevelopersIntro to Python for C# Developers
Intro to Python for C# DevelopersSarah Dutkiewicz
 
PL/Parrot San Francisco Perl Mongers 2010/05/25
PL/Parrot San Francisco Perl Mongers 2010/05/25PL/Parrot San Francisco Perl Mongers 2010/05/25
PL/Parrot San Francisco Perl Mongers 2010/05/25David Fetter
 
Introduction to Analytics with Azure Notebooks and Python
Introduction to Analytics with Azure Notebooks and PythonIntroduction to Analytics with Azure Notebooks and Python
Introduction to Analytics with Azure Notebooks and PythonJen Stirrup
 
A Whirlwind Tour Of Python
A Whirlwind Tour Of PythonA Whirlwind Tour Of Python
A Whirlwind Tour Of PythonAsia Smith
 
Introduction_to_Python.pptx
Introduction_to_Python.pptxIntroduction_to_Python.pptx
Introduction_to_Python.pptxVinay Chowdary
 
开源沙龙第一期 Python intro
开源沙龙第一期 Python intro开源沙龙第一期 Python intro
开源沙龙第一期 Python introfantasy zheng
 
SoC Python Discussion Group
SoC Python Discussion GroupSoC Python Discussion Group
SoC Python Discussion Groupkrishna_dubba
 
Python_Introduction_Good_PPT.pptx
Python_Introduction_Good_PPT.pptxPython_Introduction_Good_PPT.pptx
Python_Introduction_Good_PPT.pptxlemonchoos
 
Perl::Lint - Yet Another Perl Source Code Linter
Perl::Lint - Yet Another Perl Source Code LinterPerl::Lint - Yet Another Perl Source Code Linter
Perl::Lint - Yet Another Perl Source Code Lintermoznion
 
Python Foundation – A programmer's introduction to Python concepts & style
Python Foundation – A programmer's introduction to Python concepts & stylePython Foundation – A programmer's introduction to Python concepts & style
Python Foundation – A programmer's introduction to Python concepts & styleKevlin Henney
 
Tutorial on-python-programming
Tutorial on-python-programmingTutorial on-python-programming
Tutorial on-python-programmingChetan Giridhar
 
20120524 english lt2_pythontoolsfortesting
20120524 english lt2_pythontoolsfortesting20120524 english lt2_pythontoolsfortesting
20120524 english lt2_pythontoolsfortestingKazuhiro Oinuma
 

Semelhante a Python Tools for Visual Studio: Python na Microsoftovom .NET-u (20)

Python Programming1.ppt
Python Programming1.pptPython Programming1.ppt
Python Programming1.ppt
 
Introduction to Python – Learn Python Programming.pptx
Introduction to Python – Learn Python Programming.pptxIntroduction to Python – Learn Python Programming.pptx
Introduction to Python – Learn Python Programming.pptx
 
python presntation 2.pptx
python presntation 2.pptxpython presntation 2.pptx
python presntation 2.pptx
 
Violent python
Violent pythonViolent python
Violent python
 
Intro to Python for C# Developers
Intro to Python for C# DevelopersIntro to Python for C# Developers
Intro to Python for C# Developers
 
PL/Parrot San Francisco Perl Mongers 2010/05/25
PL/Parrot San Francisco Perl Mongers 2010/05/25PL/Parrot San Francisco Perl Mongers 2010/05/25
PL/Parrot San Francisco Perl Mongers 2010/05/25
 
Introduction to Analytics with Azure Notebooks and Python
Introduction to Analytics with Azure Notebooks and PythonIntroduction to Analytics with Azure Notebooks and Python
Introduction to Analytics with Azure Notebooks and Python
 
Pythonfinalppt 170822121204
Pythonfinalppt 170822121204Pythonfinalppt 170822121204
Pythonfinalppt 170822121204
 
A Whirlwind Tour Of Python
A Whirlwind Tour Of PythonA Whirlwind Tour Of Python
A Whirlwind Tour Of Python
 
Introduction_to_Python.pptx
Introduction_to_Python.pptxIntroduction_to_Python.pptx
Introduction_to_Python.pptx
 
开源沙龙第一期 Python intro
开源沙龙第一期 Python intro开源沙龙第一期 Python intro
开源沙龙第一期 Python intro
 
SoC Python Discussion Group
SoC Python Discussion GroupSoC Python Discussion Group
SoC Python Discussion Group
 
Python_Introduction_Good_PPT.pptx
Python_Introduction_Good_PPT.pptxPython_Introduction_Good_PPT.pptx
Python_Introduction_Good_PPT.pptx
 
Perl::Lint - Yet Another Perl Source Code Linter
Perl::Lint - Yet Another Perl Source Code LinterPerl::Lint - Yet Another Perl Source Code Linter
Perl::Lint - Yet Another Perl Source Code Linter
 
Introduction_to_Python.pptx
Introduction_to_Python.pptxIntroduction_to_Python.pptx
Introduction_to_Python.pptx
 
Python Programming.pptx
Python Programming.pptxPython Programming.pptx
Python Programming.pptx
 
Python Foundation – A programmer's introduction to Python concepts & style
Python Foundation – A programmer's introduction to Python concepts & stylePython Foundation – A programmer's introduction to Python concepts & style
Python Foundation – A programmer's introduction to Python concepts & style
 
Tutorial on-python-programming
Tutorial on-python-programmingTutorial on-python-programming
Tutorial on-python-programming
 
Introduction to Python
Introduction to PythonIntroduction to Python
Introduction to Python
 
20120524 english lt2_pythontoolsfortesting
20120524 english lt2_pythontoolsfortesting20120524 english lt2_pythontoolsfortesting
20120524 english lt2_pythontoolsfortesting
 

Último

Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...itnewsafrica
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxfnnc6jmgwh
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 

Último (20)

Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 

Python Tools for Visual Studio: Python na Microsoftovom .NET-u

  • 1. Python Python Tools for VS DLR i IronPython Zaklju£ak Python Tools for Visual Studio Python na Microsoftovom .NET-u Nikola Pleji¢ nikola@plejic.com http://nikola.plejic.com DevUG Zagreb, 27.10.2011.
  • 2.
  • 3. Python Python Tools for VS DLR i IronPython Zaklju£ak Outline 1 Python Uvod Kratak vodi£ kroz jezik 2 Python Tools for VS Instalacija 3 DLR i IronPython Dynamic Language Runtime Uporaba IronPythona
  • 4. Python Python Tools for VS DLR i IronPython Zaklju£ak Python? > print(Hello, world!) Hello, world!
  • 5. Python Python Tools for VS DLR i IronPython Zaklju£ak Python? • op¢eniti, objektno-orijentirani high-level jezik
  • 6. Python Python Tools for VS DLR i IronPython Zaklju£ak Python? • op¢eniti, objektno-orijentirani high-level jezik • dinami£ki, strongly typed
  • 7. Python Python Tools for VS DLR i IronPython Zaklju£ak Python? • op¢eniti, objektno-orijentirani high-level jezik • dinami£ki, strongly typed • fokus na £itljivost i jednostavnost sintakse
  • 8. Python Python Tools for VS DLR i IronPython Zaklju£ak The Zen of Python import this The Zen of Python, by Tim Peters Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat is better than nested. Sparse is better than dense. Readability counts. Special cases aren't special enough to break the rules. Although practicality beats purity. Errors should never pass silently. Unless explicitly silenced. In the face of ambiguity, refuse the temptation to guess. There should be one-- and preferably only one --obvious way to do it. Although that way may not be obvious at first unless you're Dutch. Now is better than never. Although never is often better than *right* now. If the implementation is hard to explain, it's a bad idea. If the implementation is easy to explain, it may be a good idea. Namespaces are one honking great idea -- let's do more of those!
  • 9. Python Python Tools for VS DLR i IronPython Zaklju£ak Kratka povijest • nastao krajem 1989. godine
  • 10. Python Python Tools for VS DLR i IronPython Zaklju£ak Kratka povijest • nastao krajem 1989. godine • Guido van Rossum (BDFL Benevolent Dictator For Life)
  • 11. Python Python Tools for VS DLR i IronPython Zaklju£ak Kratka povijest • nastao krajem 1989. godine • Guido van Rossum (BDFL Benevolent Dictator For Life) • Python 2 vs. Python 3
  • 12. Python Python Tools for VS DLR i IronPython Zaklju£ak Implementacije • referentna implementacija CPython
  • 13. Python Python Tools for VS DLR i IronPython Zaklju£ak Implementacije • referentna implementacija CPython • Jython, IronPython, PyPy
  • 14. Python Python Tools for VS DLR i IronPython Zaklju£ak Implementacije • referentna implementacija CPython • Jython, IronPython, PyPy • raznorazni kompajleri (Pyjamas, Pyrex, Cython)
  • 15. Python Python Tools for VS DLR i IronPython Zaklju£ak Osnovni tipovi podataka • sve je objekt
  • 16. Python Python Tools for VS DLR i IronPython Zaklju£ak Osnovni tipovi podataka • sve je objekt • string vs. unicode • ne i u IronPythonu (string == unicode)
  • 17. Python Python Tools for VS DLR i IronPython Zaklju£ak Osnovni tipovi podataka • sve je objekt • string vs. unicode • ne i u IronPythonu (string == unicode) • liste, tuplei
  • 18. Python Python Tools for VS DLR i IronPython Zaklju£ak Osnovni tipovi podataka • sve je objekt • string vs. unicode • ne i u IronPythonu (string == unicode) • liste, tuplei • dictionaries
  • 19. Python Python Tools for VS DLR i IronPython Zaklju£ak Comprehensions • list comprehensions
  • 20. Python Python Tools for VS DLR i IronPython Zaklju£ak Comprehensions • list comprehensions • dictionary comprehensions
  • 21. Python Python Tools for VS DLR i IronPython Zaklju£ak Comprehensions • list comprehensions • dictionary comprehensions • generatori • generator comprehensions
  • 22. Python Python Tools for VS DLR i IronPython Zaklju£ak Objektni model • klase
  • 23. Python Python Tools for VS DLR i IronPython Zaklju£ak Objektni model • klase • klase su objekti
  • 24. Python Python Tools for VS DLR i IronPython Zaklju£ak Objektni model • klase • klase su objekti • metaklase • [...] deeper magic than 99% of users should ever worry about. If you wonder whether you need them, you don't (the people who actually need them know with certainty that they need them, and don't need an explanation about why). ~ Tim Peters
  • 25. Python Python Tools for VS DLR i IronPython Zaklju£ak ’to nam treba? • distribucija Pythona • standardni interpreter, ActiveState, IronPython, ... 1 http://pytools.codeplex.com/ 2 http://ipython.org/ 3 MSI na https://github.com/zeromq/pyzmq/downloads
  • 26. Python Python Tools for VS DLR i IronPython Zaklju£ak ’to nam treba? • distribucija Pythona • standardni interpreter, ActiveState, IronPython, ... • Visual Studio ili besplatni Visual Studio Shell • ne i VS Express! 1 http://pytools.codeplex.com/ 2 http://ipython.org/ 3 MSI na https://github.com/zeromq/pyzmq/downloads
  • 27. Python Python Tools for VS DLR i IronPython Zaklju£ak ’to nam treba? • distribucija Pythona • standardni interpreter, ActiveState, IronPython, ... • Visual Studio ili besplatni Visual Studio Shell • ne i VS Express! 1 • Python Tools for Visual Studio 1 http://pytools.codeplex.com/ 2 http://ipython.org/ 3 MSI na https://github.com/zeromq/pyzmq/downloads
  • 28. Python Python Tools for VS DLR i IronPython Zaklju£ak ’to nam treba? • distribucija Pythona • standardni interpreter, ActiveState, IronPython, ... • Visual Studio ili besplatni Visual Studio Shell • ne i VS Express! 1 • Python Tools for Visual Studio 2 • IPython • alternativni (ne-samo-)Python shell • potreban pyzmq 2.1.4 3 1 http://pytools.codeplex.com/ 2 http://ipython.org/ 3 MSI na https://github.com/zeromq/pyzmq/downloads
  • 29. Python Python Tools for VS DLR i IronPython Zaklju£ak ’to dobivamo? • IntelliSense 4 samo u VS Ultimate :(
  • 30. Python Python Tools for VS DLR i IronPython Zaklju£ak ’to dobivamo? • IntelliSense • project management 4 samo u VS Ultimate :(
  • 31. Python Python Tools for VS DLR i IronPython Zaklju£ak ’to dobivamo? • IntelliSense • project management • debugger 4 samo u VS Ultimate :(
  • 32. Python Python Tools for VS DLR i IronPython Zaklju£ak ’to dobivamo? • IntelliSense • project management • debugger 4 • proling 4 samo u VS Ultimate :(
  • 33. Python Python Tools for VS DLR i IronPython Zaklju£ak ’to je DLR? • skup libraryja nad CLR-om koji olak²ava hostanje dinami£kih jezika
  • 34. Python Python Tools for VS DLR i IronPython Zaklju£ak ’to je DLR? • skup libraryja nad CLR-om koji olak²ava hostanje dinami£kih jezika • izvu£en iz ranih verzija IronPythona
  • 35. Python Python Tools for VS DLR i IronPython Zaklju£ak ’to je DLR? • skup libraryja nad CLR-om koji olak²ava hostanje dinami£kih jezika • izvu£en iz ranih verzija IronPythona • zajedni£ka podloga za sve dinami£ke jezike na .NET-u (IronRuby, IronScheme)
  • 36. Python Python Tools for VS DLR i IronPython Zaklju£ak ’to je DLR? • skup libraryja nad CLR-om koji olak²ava hostanje dinami£kih jezika • izvu£en iz ranih verzija IronPythona • zajedni£ka podloga za sve dinami£ke jezike na .NET-u (IronRuby, IronScheme) • pro²irenje postoje¢im stati£kim jezicima (dynamic dispatching @ C# 4.0)
  • 37. Python Python Tools for VS DLR i IronPython Zaklju£ak ’to je DLR? • skup libraryja nad CLR-om koji olak²ava hostanje dinami£kih jezika • izvu£en iz ranih verzija IronPythona • zajedni£ka podloga za sve dinami£ke jezike na .NET-u (IronRuby, IronScheme) • pro²irenje postoje¢im stati£kim jezicima (dynamic dispatching @ C# 4.0) • .NET Framework 4.0 + Mono 2.8+ po defaultu
  • 38. Python Python Tools for VS DLR i IronPython Zaklju£ak Kratka povijest IronPythona • Jim Hugunin, 2006.
  • 39. Python Python Tools for VS DLR i IronPython Zaklju£ak Kratka povijest IronPythona • Jim Hugunin, 2006. • danas: Microsoft (razvoj na CodePlexu)
  • 40. Python Python Tools for VS DLR i IronPython Zaklju£ak Kratka povijest IronPythona • Jim Hugunin, 2006. • danas: Microsoft (razvoj na CodePlexu) • open source (Apache 2.0)
  • 41. Python Python Tools for VS DLR i IronPython Zaklju£ak Kratka povijest IronPythona • Jim Hugunin, 2006. • danas: Microsoft (razvoj na CodePlexu) • open source (Apache 2.0) • aktivno razvijan (zadnji release: 21.10.2011.)
  • 42. Python Python Tools for VS DLR i IronPython Zaklju£ak Featurei • ≈ CPython 2.7 uz manje razlike, npr.: • string == unicode • Python podrºava vi²estruko naslježivanje, CLR ne podrºava
  • 43. Python Python Tools for VS DLR i IronPython Zaklju£ak Featurei • ≈ CPython 2.7 uz manje razlike, npr.: • string == unicode • Python podrºava vi²estruko naslježivanje, CLR ne podrºava • integracija s .NET frameworkom
  • 44. Python Python Tools for VS DLR i IronPython Zaklju£ak Featurei • ≈ CPython 2.7 uz manje razlike, npr.: • string == unicode • Python podrºava vi²estruko naslježivanje, CLR ne podrºava • integracija s .NET frameworkom • Silverlight scripting
  • 45. Python Python Tools for VS DLR i IronPython Zaklju£ak Pri£anje s .NET-om # deklaracija referenci import clr clr.AddReference(System.Xml) # namespacevi import System from System.Xml import * xmldoc = XmlDocument() # alternativno: # import system # xmldoc = System.Xml.XmlDocument()
  • 46. Python Python Tools for VS DLR i IronPython Zaklju£ak Pri£anje s .NET-om (smjer #2) 5 • DLR Hosting API (= free scripting!) 5 http://dlr.codeplex.com/wikipage?title=Docs%20and%20specsreferringTitle=Do
  • 47. Python Python Tools for VS DLR i IronPython Zaklju£ak Pri£anje s .NET-om (smjer #2) 5 • DLR Hosting API (= free scripting!) • kompajliranje IronPython aplikacije u .NET assembly • While the assemblies produced by the IronPython Hosting APIs are true .NET assemblies, the dynamic nature of the Python language makes it dicult to use these from other .NET languages. In short, this means that attempting to import Python types into other .NET languages such as C# is not recommended. 5 http://dlr.codeplex.com/wikipage?title=Docs%20and%20specsreferringTitle=Do
  • 48. Python Python Tools for VS DLR i IronPython Zaklju£ak ASP.NET i IronPython • WebForms uz ASP.NET Dynamic Language Support 6 http://github.com/jschementi/ironrubymvc
  • 49. Python Python Tools for VS DLR i IronPython Zaklju£ak ASP.NET i IronPython • WebForms uz ASP.NET Dynamic Language Support • ASP.NET MVC • http://www.codevoyeur.com/Articles/Tags/ironpython.aspx • Rubyja²i su bolje pro²li 6 6 http://github.com/jschementi/ironrubymvc
  • 50. Python Python Tools for VS DLR i IronPython Zaklju£ak Alternative 7 • Boo • sintaksa inspirirana Pythonom • stati£ki tipiziran (type inferencing) • makroi 7 http://boo.codehaus.org/ 8 http://ironruby.net/ 9 http://ironscheme.codeplex.com/
  • 51. Python Python Tools for VS DLR i IronPython Zaklju£ak Alternative 7 • Boo • sintaksa inspirirana Pythonom • stati£ki tipiziran (type inferencing) • makroi 8 • IronRuby 7 http://boo.codehaus.org/ 8 http://ironruby.net/ 9 http://ironscheme.codeplex.com/
  • 52. Python Python Tools for VS DLR i IronPython Zaklju£ak Alternative 7 • Boo • sintaksa inspirirana Pythonom • stati£ki tipiziran (type inferencing) • makroi 8 • IronRuby 9 • IronScheme? • skoro-pa-R6RS Scheme 7 http://boo.codehaus.org/ 8 http://ironruby.net/ 9 http://ironscheme.codeplex.com/
  • 53. Python Python Tools for VS DLR i IronPython Zaklju£ak Zaklju£ak • ozbiljan, dobro podrºan dinami£ki jezik na CLR-u i Monou
  • 54. Python Python Tools for VS DLR i IronPython Zaklju£ak Zaklju£ak • ozbiljan, dobro podrºan dinami£ki jezik na CLR-u i Monou • vrlo solidan toolchain u razvoju
  • 55. Python Python Tools for VS DLR i IronPython Zaklju£ak Zaklju£ak • ozbiljan, dobro podrºan dinami£ki jezik na CLR-u i Monou • vrlo solidan toolchain u razvoju • £emu sve to? • brzi prototyping • testiranje .NET assemblyja • skriptiranje .NET i Silverlight aplikacija
  • 56. Python Python Tools for VS DLR i IronPython Zaklju£ak Zaklju£ak Hvala na paºnji! Nikola Pleji¢ nikola@plejic.com http://nikola.plejic.com/