IronRuby for the.NET Developer Cory Foy - Cory Foy, LLC + + =

Slides:



Advertisements
Similar presentations
Dynamic internals. Introductions  Alexandru Ghiondea  C# Compiler QA  
Advertisements

.NET Framework Overview
.NET Core Libraries Common Language Runtime CodeGen Garbage Collector Security Model Exception Handling Loader & Binder Profiling & Debugging APIs Entity.
Bart J.F. De Smet Software Development Engineer Microsoft Corporation Session Code: DTL304.
Pen Testing with Iron Andrew Wilson Trustwave SpiderLabs.
Visual Studio 2010 and.NET Framework 4 Training Workshop.
What’s New in C# 4.0? Pavel Yosifovich SELA Group
1/50 Project Management. 2/50 StumbleUpon 3/50 Overview Customize? Why, what, how?.NET Framework overview & fundamentals Class libraries, namespaces,
Creating and Running Your First C# Program Svetlin Nakov Telerik Corporation
Aptech Borivali(West) Hefin Dsouza. Agenda  What is.NET and What is Visual Studio? .NET Framework 3.5 Overview.  Visual Studio 2008 Enhancements. 
Platforms and tools for Web Services and Mobile Applications Introduction to C# Bent Thomsen Aalborg University 3rd and 4th of June 2004.
Gurinder CTO. Lisa Feigenbaum Microsoft Program Manager Visual Studio Languages
demo video demo Dynamic Languages Simple and succinctImplicitly typedMeta-programmingNo compilation Static Languages RobustPerformantIntelligent.
Developer Day Was ist neu in.NET 4.5? Ken Casada Technical Evangelist, Microsoft Switzerland
Lecture 2: An Introduction to J# and.NET. 2 MicrosoftIntroducing CS using.NETJ# in Visual Studio.NET 2-2 Objectives “Microsoft.NET is based on the.NET.
Creating and Running Your First C# Program Telerik Software Academy Telerik School Academy.
Overview of Microsoft.Net and Vb.Net ITSE 2349 Spring 2002 Material from Microsoft.Net an Overview for ACC faculty by Stuart Laughton and Introduction.
Introduction to .Net Framework
Introduction to ASP.NET. Prehistory of ASP.NET Original Internet – text based WWW – static graphical content  HTML (client-side) Need for interactive.
Introduction to Programming
Introduction to Silverlight. Slide 2 What is Silverlight? It’s part of a Microsoft Web platform called Rich Internet Applications (RIA) There is a service.
JVM And CLR Dan Agar April 16, Outline Java and.NET Design Philosophies Overview of Virtual Machines Technical Look at JVM and CLR Comparison of.
Session 1 - Introduction and Data Access Layer
Lecture Set 1 Part B: Understanding Visual Studio and.NET – Structure and Terminology 1/16/ :04 PM.
Understanding Code Compilation and Deployment Lesson 4.
Creating and Running Your First C# Program Svetlin Nakov Telerik Corporation
Lesley Bross, August 29, 2010 ArcGIS 10 add-in glossary.
.NET Framework Danish Sami UG Lead.NetFoundry
Dynamic Languages & The.Net Framework Shay Friedman ActionBase
Dynamic Languages and the Web Jimmy Schementi Microsoft
Alex Turner C# Compiler PM Session Code: DEV402 On the Dynamic menu today… The Dynamic Language Runtime How does it relate to the CLR? Dynamic in C#
 Jim Hugunin Partner Architect Microsoft Corporation TL10.
Calculator calc = GetCalculator(); int sum = calc.Add(10, 20); Calculator calc = GetCalculator(); int sum = calc.Add(10, 20); object calc.
Mads Torgersen, Microsoft.  Language INtegrated Query  An open multi-language query facility  Uses cool language stuff  Points into the future.
NOTE: To change the image on this slide, select the picture and delete it. Then click the Pictures icon in the placeholder to insert your own image. WEB.
This is delicious cookie you must eat. :O~. Problem Domain Designed to be Reliable, high-performance and secure Comfortable and familiar to Java-language.
Visual Studio 2010 and.NET Framework 4 Training Workshop.
Sage ACT! 2013 SDK Update Brian P. Mowka March 23, 2012 Template date: October 2010.
1.NET FRAMEWORK CE-105 Spring 2007 Engr. Faisal ur Rehman.
tom perkins1 XML Web Services -.NET FRAMEWORK – Part 1 CHAPTER 1.1 – 1.3.
What’s New for Web Developers in ASP.NET and Visual Studio 2008 Kate Gregory Microsoft Regional Director
Office Business Applications Workshop Defining Business Process and Workflows.
 Joshua Goodman Group Program Manager Microsoft Corporation.
N from what language did C++ originate? n what’s input, output device? n what’s main memory, memory location, memory address? n what’s a program, data?
Lisa Feigenbaum Microsoft Program Manager Session Code: DEV314.
Ahmed Salijee Developer Advisor
Getting Started with.NET Getting Started with.NET/Lesson 1/Slide 1 of 31 Objectives In this lesson, you will learn to: *Identify the components of the.NET.
Scott Hanselman Principal Program Manager Microsoft DTL303.
Wel come To Seminar On C#.
Text Introduction to.NET Framework. CONFIDENTIAL Agenda .NET Training – Purpose  What is.NET?  Why.NET?  Advantages  Architecture  Components: CLR,
Lap Around the.NET Framework 4 NameTitleCompany. A Look Back….NET 1.0.NET 1.1.NET NET CTP CLR 1.0 CLR 1.1 CLR 2.0 CLR.
Lecture Set 1 Part B: Understanding Visual Studio and.NET – Structure and Terminology 1/16/ :04 PM.
Luke Hoban Senior Program Manager Microsoft Session Code: DTL310.
Visual Studio 2010 and.NET Framework 4 Training Workshop.
Visual Studio 2010 and .NET Framework 4 Name Title
Part 1: Overview of LINQ Intro to LINQ Presenter: PhuongNQK.
.NET Framework 2.0 .NET Framework 3.0 .NET Framework 3.5
Introduction to .NET Framework Ch2 – Deitel’s Book
C# in the Big World Mads Torgersen Program Manager
Visual Studio 2010 and .NET Framework 4 Training Workshop
1.1. .NET architectural components and .NET Core
Introduction to Silverlight
What is it all about? .NET MeetUp in Amsterdam, NL (2017/7/11)
Building Modern Web Apps with ASP.NET MVC 6
Tech·Ed North America /18/2018 5:14 PM
.Net Framework Details Imran Rashid CTO at ManiWeber Technologies.
Quiz Points 1 Rules Raise your hand if you know the question
Computer Terms Review from what language did C++ originate?
C# Language & .NET Platform 3rd Lecture
Presentation transcript:

IronRuby for the.NET Developer Cory Foy - Cory Foy, LLC + + =

Hello, IronRuby!

Ruby

IronRuby

Ruby and WinForms

Ruby and Silverlight

History Ruby and.NET Ruby to.NET Ruby CLR Project RubyCLR All attempted to run Ruby on top of the CLR

History CLR 2.0 (.NET 3.0 and 3.5 were still CLR 2.0) No dynamic dispatch Everything had to be compiled Lots of magic, and shims CREDIT:

History alias alias_method_missing method_missing def method_missing(name, *params) alias_method_missing(name, *params) unless name == :Count create_ruby_instance_method(self.class, 'Count') do include 'System.Collections' ldarg_2 call 'static Marshal::ToClrObject(VALUE)' call 'ArrayList::get_Count()' call 'static Marshal::ToRubyNumber(Int32)' ret end self.Count end

History CLR 4.0 Dynamic keyword (C#) Calculator calc = GetCalculator(); int sum = calc.Add(1, 3); var calc = GetCalculator(); int sum = calc.Add(1, 3); object calc = GetCalculator(); Type calcType = calc.GetType(); object res = calcType.InvokeMember("Add", BindingFlags.InvokeMethod, null, new object[] { 10, 20 }); int sum = Convert.ToInt32(res); dynamic calc = GetCalculator(); int sum = calc.Add(1, 3);

History Dynamic Keyword Calculator calc = GetCalculator(); int sum = calc.Add(1, 3);

History Dynamic Keyword var calc = GetCalculator(); int sum = calc.Add(1, 3);

History Dynamic Keyword object calc = GetCalculator(); Type calcType = calc.GetType(); object res = calcType.InvokeMember("Add", BindingFlags.InvokeMethod, null, new object[] { 10, 20 }); int sum = Convert.ToInt32(res);

History Dynamic Keyword dynamic calc = GetCalculator(); int sum = calc.Add(1, 3);

History DLR Introduced in 2007 Set of libraries to assist language developers Still runs on the CLI, and can access the CLR Standardizes the implementation of dynamic languages on the CLI/CLR

History IronRuby John Lam hired by Microsoft in 2006 Announced in 2007 at MIX7 Goal to make Ruby a first-class citizen Completely rewritten to take advantage of the DLR

History DLR Dynamic Language Runtime (DLR) Common Language Runtime (CLR) Common Hosting Model Runtime Language Implementation

History Ruby Common Language Runtime Dynamic Language Runtime C# VB

WHY RUBY?

RUBY IS Love! CREDIT: ks/ ks/ CREDIT: CREDIT: onorail/ onorail/ CREDIT: stoms/ stoms/

CREDIT:

TYPE SAFETY STATIC CODE ANALYSIS COMPILER CATCHES ERRORS INTELLISENSE OBJECT GRAPHS DEBUGGING CODE SAFETY SEALED TYPES

TEST ALL THE FRICKIN’ TIME

CREDIT:

Metaprogramming All Classes Are Open Definitions are active All method calls have a receiver Classes are objects CREDIT: TOS/CHOCONANCY/

Duck Typing

Open Classes CREDIT: EON_OPEN_SIGN.JPG

Monkey Patching

Dynamism CREDIT: UEST/ /

method_missing CREDIT: TOS/TAITOH/ /

RubyGems Standardized Packaging System Central Repository for hosting packages Allows for installation and management of multiple installed versions

RubyGems THAT’S IT!

IronRuby Basics Installing Download Windows Installer ??? Profit!!!

IronRuby Basics..and what did we just install? bin - IronRuby executables (ir.exe, etc) lib - Helpers for including assemblies and other common tasks samples - Contains the Tutorial app and others silverlight - Contains the Silverlight Dynamic Languages SDK

IronRuby Basics..and, how the heck did it just do that? Common Language Runtime (CLR) Dynamic Language Runtime (DLR) Common Hosting Model Runtime Language Implementation ASTs Language Context CompilerRuntime Call sites Binders Rules Common Hosting Model ScriptRuntimeScriptEngine ScriptScopeScriptSource

Integration Calling.NET from IronRuby Calling IronRuby from.NET WinForms / WPF / Silverlight Cucumber / RSpec

Get Involved! Website Mailing List