<<

monomono forfor crosscross--platformplatform controlcontrol systemsystem environmentenvironment

H.H. NishimuraNishimura andand C.C. TimossiTimossi,, LBNL,LBNL, Berkeley,Berkeley, CACA 94720,94720, U.S.AU.S.A

Work supported by the U.S. Department of Energy under Contract No. DE-AC03-76SF00098 .NET.NET FrameworkFramework z MicrosoftMicrosoft ÄÄ ECMA/ISOECMA/ISO z 1.01.0 inin 20022002 z 1.11.1 inin 20032003 z 2.02.0 inin 20052005 z 3.03.0 inin 2006?2006? z WindowsWindows VistaVista isis .NET.NET--based.based. z C#C# andand manymany otherother languages.languages. .NET.NET missesmisses 22 pieces..pieces.. WhatWhat isis ?Mono? z AnAn independentindependent implementationimplementation ofof .NET.NET FrameworkFramework byby XimiaXimiann ÄÄNovell.. z ,Linux, FreeBSD,FreeBSD, ,UNIX, MacMac OSOS X,X, SolarisSolaris andand WindowsWindows z s390/s390x,s390/s390x, SPARC,SPARC, PowerPC,PowerPC, x86,x86, x86x86--64,64, IA64,IA64, ARMARM z DualDual LicensedLicensed byby NovellNovell

HPHP atat www.mono-project.com SearchSearch MonoMono atat www.wikipedia.orgwww.wikipedia.org WhoWho mademade Mono?Mono? z MiguelMiguel dede IcazaIcaza z CreatedCreated GnomeGnome withwith FedericoFederico MenaMena inin 1997.1997. z CreatedCreated MonoMono inin 20012001 atat XimianXimian.. z ““MonoMono andand GNOME.GNOME. TheThe longlong replyreply”” z 0606 FebFeb 20022002 z http://mail.gnome.org/archives/gnomehttp://mail.gnome.org/archives/gnome-- hackers/2002hackers/2002--February/msg00031.htmlFebruary/msg00031.html z NowNow underunder Novell.Novell. IsIs MonoMono aa CrossCross--PlatformPlatform .NET?.NET? z DefinitelyDefinitely YES!YES! z AsAs .NET.NET RuntimeRuntime EnvironmentEnvironment z AsAs .NET.NET DevelopmentDevelopment EnvironmentEnvironment z AA fewfew yearsyears behindbehind thethe ““.NET.NET onon WindowsWindows””.. z NonNon--graphicalgraphical classesclasses areare basicallybasically OK.OK. z WinFormWinForm isis aa littlelittle bitbit behind.behind. MonoMono UserUser andand DevelopersDevelopers MeetingMeeting 2323--2424 OctoberOctober 2006;2006; Cambridge,Cambridge, MA,MA, USAUSA. MonoMono forfor RuntimeRuntime z NoNo needneed toto rebuildrebuild .NET.NET appsapps inin principleprinciple z C:C:\\>> WinAppWinApp z $$ monomono WinApp.exeWinApp.exe z IfIf WinFormWinForm isis used,used, itit mustmust bebe .NET.NET 1.1.1.1. z ZedGraphZedGraph DemoDemo onon WindowsWindows andand LinuxLinux z Version 4.x is 1.1, 5.x is 2.0. z ZedGrpah.Demo.exe is unchanged.

SeeSee ZedGraph.DemoZedGraph.Demo!! ZedGraphZedGraph 4.2.14.2.1 DemoDemo onon WindowsWindows XPXP ZedGraphZedGraph 4.2.14.2.1 DemoDemo onon KnoppixKnoppix 5.0.15.0.1 MonoMono forfor DevelopmentDevelopment z ToolsTools areare supported.supported. z RecompilingRecompiling isis oftenoften requiredrequired duedue toto minorminor incompatibilities.incompatibilities. z IDEIDE :: MonoMono Develop.Develop. z GUIGUI isis GnomeGnome based.based. z ManyMany booksbooks available.available. MonoDevelopmentMonoDevelopment onon SUSESUSE 10.110.1 MonoMono andand LinuxLinux DistributionsDistributions z MonoMono worksworks eveneven onon DamnSmallDamnSmall Linux.Linux. z SUSESUSE isis thethe easiesteasiest forfor Mono.Mono. z KnoppixKnoppix isis asas goodgood asas SUSESUSE forfor Mono.Mono. z RedhatRedhat/Fedora/Fedora isis alsoalso OK.OK. z ManyMany otherother LinuxLinux distributionsdistributions comecome withwith Mono.Mono. EPICSEPICS onon .NET.NET z SCACOMSCACOM ActiveXActiveX ControlControl inin 19981998 z SCA.NETSCA.NET forfor x86x86 inin 20052005 zz SCA.NETSCA.NET forfor x64x64 inin 20062006 SeeSee ourour companioncompanion paper!paper! zzSCA.NETSCA.NET forfor LinuxLinux inin 20062006 zzThereThere waswas actuallyactually nothingnothing toto dodo zzNoNo needneed toto rebuildrebuild SCA.NETSCA.NET SCA.NETSCA.NET forfor MonoMono onon LinuxLinux z SCA.NETSCA.NET inin C#C# itselfitself isis unchanged.unchanged. z ““AnyAny CPUCPU”” OptionOption toto RunRun NativelyNatively onon AnyAny CPU.CPU. z DLLDLL ImportImport getsgets CA.dllCA.dll onon WindowsWindows CA.soCA.so onon LinuxLinux

[[DllImport("ca.dllDllImport("ca.dll")]")] publicpublic staticstatic externextern shortshort ca_field_typeca_field_type ((IntPtrIntPtr ChanIDChanID);); PortablePortable EPICSEPICS ClinetClinet z DevelopDevelop onon WindowsWindows usingusing WinFormWinForm andand SCA.NETSCA.NET inin C#.C#. z StickStick toto .NET.NET FrameWorkFrameWork 1.11.1 z UseUse onlyonly PortablePortable ControlsControls especiallyespecially onon WinFormWinForm.. z ConfigureConfigure RuntimeRuntime EnvironmentEnvironment Properly.Properly.

Then,Then, thethe ExecutableExecutable isis Portable!Portable! ExampleExample

ÅÅWindowsWindows XPXP

RedHatRedHat LinuxLinux ÆÆ ConclusionConclusion zz MonoMono isis thethe .NET.NET onon Linux.Linux. z MonoMono isis catchingcatching upup withwith .NET.NET onon Windows.Windows. zz SCA.NETSCA.NET forfor PortablePortable EPICSEPICS Clients.Clients.

z Windows,Windows, Linux,Linux, FreeBSD, Solaris, Mac, .. z 3232--bitbit andand 6464--bitbit z WinFormWinForm forfor GUIGUI