Top Banner
Prepared By Yan Drugalya [email protected]
29
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Mono

Prepared By Yan [email protected]

Page 2: Mono

Prepared By Yan [email protected]

Page 3: Mono

Agenda

Goals

History

Products

Architecture

Features

Demoes

Page 4: Mono

What is mono

Mono is: ECMA compliant implementation of .NET framework

.NET compatible set of tools

CLR

Compiler

xbuild.

Page 5: Mono
Page 6: Mono

Motivation

C# is a beautiful language

Bring C# to different platforms: Android, MAC OSX, Solaris, PS3, Wii, Xbox 360

No one was interested in developers Compatible runtime to the CLR

ECMA made it possible

Develop, build, debug on Windows, Linux or MAC

Page 7: Mono
Page 8: Mono

Products

Page 9: Mono

Products

Page 10: Mono
Page 11: Mono

History

- DEC 2000 .NET CTP

- Jul 2001 Mono project started

- Jan 2002. .NET 1.0

- Aug 2003 - Novell acquires Ximian

- Jun 2004 - Mono 1.0

- Nov 2006 - Mono 1.2 (C# 2.0 support)

- Oct 2008 – Mono 2.0 (C# 3.0 and visual basic compiler)

- Jan 2009 - Mono 2.2 - performance improvements

- C# REPL

- AOT Compiling

- March 2009 – Mono 2.4 (2.2 for suse)

- Dec 2009 – Mono 2.6 (web, LINQ, xbuild)

Page 12: Mono

History

Sep 2010 Mono 2.8 C# 4, ASP.NET 4.0

Dynamic code generation and GC

MEF

Apr 2011 Attachmate acquires Novell

May 2011 Xamarin founded

2012-10-18 C# 5.0, ASYNC

Page 13: Mono

Current State

OCT 2013 Mono 3.2 AIM: full support of feature of .NET 4.0 except WPF, WF,

limited WCF

C# 5

F#

2.10 is no longer supported

Page 14: Mono

Components

Core: Compiler, VM

Linux stack Gtk#, Mono.Posix,

DB…

Microsoft Stack ADO, ASP, Web Forms…

Page 15: Mono

Modularity

Mono And .NET Miguel de Icaza PDC 2008

Page 16: Mono

AOT/Static compilation

Mono And .NET Miguel de Icaza PDC 2008

Page 17: Mono

Features

Compiler as a library

Mono linker (Re-shaping assemblies)

Injecting Code Into the live process

Page 18: Mono

Demo

Page 19: Mono

Games

Graphics Engine

Low Level

Game engine

Low Level

Game AI

Scripts

Page 20: Mono

Demo

Page 21: Mono

Games: Mono.SIMD

• pos += deltaC#• call [Mono.Simd]Mono.Simd.Vector4f::op_Addition(

valuetype [Mono.Simd]Mono.Simd.Vector4f,

valuetype [Mono.Simd]Mono.Simd.Vector4f)IL

• movups (%eax),%xmm0• movups (%edi),%xmm1• addps %xmm1,%xmm0• movups %xmm0,(%eax)x86

Page 22: Mono

UI

Mark Zuckerberg: Our Biggest Mistake Was Betting Too Much On HTML5

Android business logic:Xamarin studio or visual studio

UI: Xamarin android designer

iOS : business logic: Xamarin studio or visual studio

UI: Xamarin android designer

Page 23: Mono

UI Write once, run ugly anywhere (WORA)

It is not about mono approach

UI is a plugin!

Page 24: Mono
Page 25: Mono

Mono on Android

Page 26: Mono

How to develop

Be proactive!

Don’t trust - test

Don’t hope - deploy and test

Be ready for Objective-C and Java

Page 29: Mono

Questions ?