Your SlideShare is downloading. ×
Iron Python I Dlr
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Iron Python I Dlr

998
views

Published on

Published in: Technology, Education

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
998
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Ile cukru w cukrze IronPython i jego zastosowania Michał Żylioski Michal.Zylinski@microsoft.com
  • 2. Agenda • Wyjaśniam • Zaciekawiam • Inspiruję • Rozwiewam wątpliwości
  • 3. Zdaniem zwolenników Źródło: http://xkcd.com/353/
  • 4. Zdaniem przeciwników • Wolny • Skryptowy • Dynamiczny (czyli gdzie są moje typy !?) • Egzotyczny (jak sama nazwa wskazuje pewnie trudno go znaleźd pod naszą szerokością geograficzną) • … no i te wcięcia…
  • 5. Fakty • Blisko 20-letnia historia • Dojrzały proces rozwoju języka, mocno angażujący społecznośd • Elastycznośd, prostota, przenośnośd • Zen-compliant (patrz: import this)
  • 6. Klucz do sukcesu - zwięzłość Programista to nie dziennikarz, nie dostaje pieniędzy za „wierszówkę”
  • 7. Klucz do sukcesu - czytelność public static class Math { public static decimal Abs(decimal value); „Duck typing” - Metafora public static double Abs(double value); kaczki sprawdza się public static float Abs(float value); zaskakująco skutecznie public static int Abs(int value); public static long Abs(long value); public static sbyte Abs(sbyte value); public static short Abs(short value); ... } •Uważasz, że twój kolega to idiota? Zabezpieczaj się Stosuj testy jednostkowe Porozmawiaj z szefem
  • 8. Klucz do sukcesu - baterie • Bardzo bogata biblioteka standardowa • Operacje na plikach: • Programowanie WWW (klient): Ułatwienia dla programistów: – Difflib – Cgi Pydoc – CSV – Urllib Doctest Unittest – Filecmp – Httplib Debugger – Shutil – Ftplib Profiler – ConfigParser – Smtplib Utrwalanie danych: • Kryptografia: – Imaplib Pickle/cPickle – Nntplib Shelve – Hashlib Bsddb – Hmac – Telnetlib Sqlite3 – Md5 – Urlparse – Sha • Programowanie WWW (serwer): • Kompresja: – SocketServer – Zlib – SimpleHTTPServer – Gzip – Bz2 – Zipfile – Tarfile • Jeszcze więcej projektów 3rd party
  • 9. Klucz do sukcesu - elastyczność
  • 10. Kaczki i inne takie
  • 11. Python na świecie • Kto korzysta: Google, Yahoo, YouTube, Pixar, Sony… • Główne zastosowania: serwisy WWW, skryptowanie, badania, projekty integracyjne • Sztandarowe projekty: – Django (patrz grono.net) – Pylons (patrz webhosting.pl)
  • 12. Implementacje • CPython – najpopularniejsza, uznawana za referencyjną – Obecnie dostępna w wersjach 2.6.x oraz 3.0.x – http://www.python.org • Jython – 100% Java – Łatwa integracja z bibliotekami JDK – Trudny do przewidzenia rozwój (oficjalna stabilna wersja to 2.2) – http://www.jython.org • PyPy (http://codespeak.net/pypy/dist/pypy/doc/home.html) • IronPython – 100% .NET – http://www.codeplex.com/IronPython
  • 13. Python a Microsoft • Python for Windows Extensions – PythonWin – prosty edytor (kolorowanie składni, podpowiedzi) + interaktywna konsola – Zbiór modułów pozwalających na integrację z Windows (odbc, gui, process, pipe, net, clipboard, shell…) – Integracja z komponentami COM (klient lub serwer)
  • 14. Python w świecie Microsoft
  • 15. Dlaczego IronPython? • Autorem jest Jim Hugunin, inicjator implementacji Jythona (Jpythona) • Subiektywne benchmarki (pystone) – IP 1.7x szybszy od CPythona • Wersja 2.0 – 2x szybsza • GIL-free (nareszcie!)
  • 16. IP – założenia projektowe • Pełna implementacja języka – Gotowa do użycia przez doświadczonych programistów – Kompatybilna (testy regresyjne, biblioteki) – Brak efektu gonienia króliczka • Stabilna Wersja 2.0 (kompatybilna z CPython 2.5) • rozwijana wersja 2.6 (kompatybilna z numeracją CPythona ) • Dostęp do dobrodziejstw .NET – Współpraca z innymi językami dostępnymi na platformie – Konsumpcja bibliotek standardowych – … oraz gotowych narzędzi (VS, debugger, profiler…) • Warto zajrzed do VS 2008 SDK – Przykład wykorzystania DLR
  • 17. Technikalia Python IronPython Biblioteki zewnętrzne Kod źródłowy Bajtkod Interpreter (*.py) (*.pyc) (python.exe) + DLR
  • 18. Dynamic Language Runtime IronPython IronRuby C# VB.NET Others… Dynamic Language Runtime Expression Trees Dynamic Dispatch Call Site Caching Object JavaScript Python Ruby COM Binder Binder Binder Binder Binder
  • 19. IronPython w przykładach
  • 20. Integracja z .NET – osadzanie 1/3 • Cel: rozszerzanie funkcjonalności (istniejących) aplikacji .NET poprzez skrypty tworzone w IP • Scenariusze: – Konsola dla zaawansowanych użytkowników – Zastępca/następca VBA – Otwarta architektura pozwalająca na tworzenia własnych rozszerzeo
  • 21. Integracja z .NET-osadzanie 2/3 Krok 1: Dodaj referencje do: – Microsoft.Scripting.dll Dynamic Language Runtime – Microsoft.Scripting.Core.dll – IronPython.dll IronPython – IronPython.Modules.dll – Microsoft.Scripting.ExtensionAttribute.dll Jeśli ma działać z .NET 2.0
  • 22. Integracja z .NET – osadzanie 3/3 Krok 2: Określ zakres widoczności dla Wykonaj Skrypt •CreateEngine() skryptu •CreateScriptSourceFrom File() •CreateScope() •CreateScriptSourceFrom •Execute() String() Zainicjuj silnik Wskaż źródło skryptu skryptowy
  • 23. Osadzanie IP w aplikacjach .NET
  • 24. IP a WWW • Prace dotyczą zarówno ASP.NET i ASP.NET MVC • Za: – Działa  – (Szczególnie w przypadku MVC) ułatwia kodowanie (potencjalnie łatwiejsze TDD) – Spark – silnik widoków wykorzystujący m.in. IP • Przeciw: – Brak sensownej integracji z VS (projekty, intellisense itd.)
  • 25. IP i ASP.NET
  • 26. Silverlight <Deployment xmlns=quot;http://schemas.microsoft.com/client/2007/deploymentquot; xmlns:x=quot;http://schemas.microsoft.com/winfx/2006/xamlquot; RuntimeVersion=quot;3.0.40307.00quot; EntryPointAssembly=quot;Microsoft.Scripting.Silverlightquot; EntryPointType=quot;Microsoft.Scripting.Silverlight.DynamicApplicationquot;> <Deployment.Parts> <!-- Add additional assemblies here --> <AssemblyPart Source=quot;Microsoft.Scripting.Silverlight.dllquot; /> <AssemblyPart Source=quot;Microsoft.Scripting.ExtensionAttribute.dllquot; /> <AssemblyPart Source=quot;Microsoft.Scripting.Core.dllquot; /> <AssemblyPart Source=quot;Microsoft.Scripting.dllquot; /> <AssemblyPart Source=quot;IronPython.dllquot; /> <AssemblyPart Source=quot;IronPython.Modules.dllquot; /> </Deployment.Parts> </Deployment> Chiron – magik na pokładzie
  • 27. IP i Silverlight
  • 28. Ku chwale platformy • Języki dynamiczne pokazują w praktyce elastycznośd i uniwersalnośd .NET • Języki statyczne coraz częściej inspirują się konkurencją: – Patrz: wyrażenia lambda, typy anonimowe, typy domniemane (var) – Wpływ jeszcze bardziej widoczny w VS 2010 (C# 4.0, F#)
  • 29. Ku chwale platformy 2/2 Calculator calc = GetCalculator(); int sum = calc.Add(10, 20); C# 3.0 object calc = GetCalculator(); Type calcType = calc.GetType(); object res = calcType.InvokeMember(quot;Addquot;, BindingFlags.Inv okeMethod, null, new object[] { 10, 20 }); int sum = Convert.ToInt32(res); C# 4.0 dynamic calc = GetCalculator(); int sum = calc.Add(10, 20);
  • 30. Podsumowanie • Języki dynamiczne stanowią istotny element rozwoju platformy .NET • Warto znad ich rolę i wykorzystad potencjał • IronPython to ciekawa propozycja zarówno dla środowiska MS, jak i open source
  • 31. Zasoby • Strona główna projektu http://www.codeplex.com/IronPython • ASP.NET i języki dynamiczne http://aspnet.codeplex.com/Wiki/View.aspx?title=Dynamic%20Langua ge%20Support • DLR w Silverlight http://www.codeplex.com/sdlsdk • Ciekawostki http://www.voidspace.org.uk/ironpython/index.shtml http://www.voidspace.org.uk/ironpython/planet/ http://www.resolversystems.com/ http://blogs.msdn.com/michalz
  • 32. DYGRESJA
  • 33. BizSpark dla każdego
  • 34. BizSpark - oferta Pakiet narzędzi Wymagania: • Expression Studio • Kryteria: • VS TS w/MSDN Premium • Team Foundation Server (TFS) – Organizacja zajmuje się tworzeniem oprogramowania (produktu lub usługi) – Mniej niż 3 lata na rynku Licencje produkcyjne dla aplikacji – Roczny przychód poniżej 0,5 mln USD hostowanych – Działalnośd prywatna • Windows Server • SQL Server • Licencje produkcyjne dotyczą wyłącznie • SharePoint Portal Server • Systems Center rozwiązao typu Software as a • BizTalk Server Service, dostępnych publicznie poprzez • Azure (w miarę dostępności) internet. • Program trwa 3 lata: – Wymagane jest coroczne przedłużanie Narzędzia do użytku wewnętrznego członkostwa (weryfikacja statusu • Live Workspace (w miarę prawnego przedsiębiorstwa) dostępności) – Opłata członkowska wynosi 100 USD (płatne po zakooczeniu uczestnictwa)
  • 35. BizSpark - jak zacząć? Wejdź na stronę www.microsoft.com/BizSpark Wybierz i skontaktuj się z jednym z lokalnych partnerów programu (network partners). Po przejściu weryfikacji otrzymasz e-mailem unikalny identyfikator. Wypełnij formularz rejestracyjny. Witamy w BizSpark!
  • 36. BizSpark - partnerzy
  • 37. BizSpark - bonusy • Hosting – Oferta przygotowana wspólnie z home.pl – Serwer współdzielony – 50% zniżki – Serwer dedykowany – 25% zniżki • 2GB RAM • AMD Opteron 2212 Dual 2.0 GHz • Dyski twarde 2*160GB • Transfer 100GB • Edukacja – Dostęp do programu Metro – Zniżki na szkolenia w Onex Group
  • 38. Q&A
  • 39. Dziękuję! Michal.Zylinski@microsoft.com

×