[Mono-devel-list] VS.NET, Mono, Opera, and Mac

John S. Brumbelow JBrumbelow at optidoc.com
Tue Feb 1 11:38:12 EST 2005


Hi Rafael,

	Thank you for the reply.

	I am completely new to Mono, with lots of questions. To begin, I want to make a "Hello World" app from VS.NET to run on a Mac. I was trying to use HTML to get the app to run, but before I even get that far, I do not know if my VS.NET app will even work on Mac/Mono, and so I sent in the source code below. I only got into the HTML aspects as I do not know of way(s) that I can get the app to Mac, other than "maybe" HTML, but that issue is not as important as getting the "Hello World" to work from VS.NET. And thank you for saying that basically there is no way on Mac/Mono to run a browser like Oper/IE to run a Mono app, yet. So my question now: Is there any "Hello World" sample for VS.NET that will run on Mac/Mono?

By the way, I can't wait for the CAS to be available for Mono. That will surely put the Sun/Java people into "panic" mode. Good luck, and please let me know when it is ready!!!!

John Brumbelow


-----Original Message-----
From: Rafael Teixeira [mailto:monoman at gmail.com]
Sent: Tuesday, February 01, 2005 11:04 AM
To: John S. Brumbelow
Cc: mono-devel-list at lists.ximian.com
Subject: Re: [Mono-devel-list] VS.NET, Mono, Opera, and Mac


First: When you install .NET an activeX control is installed and
registered in IE to allow for that. AFAIK it doens't work with any
other browser, even in windows.

Second: That activeX control intercepts the browser's processing for
an specific mime-type (windows executables), downloads part of it to
verify that it is a .NET/CLI executable, creates a visual container
for it in IE, downloads the rest of it, appends security evidences
based in the url and digital signatures so that CAS (Code Access
Security) support in the runtime to correctly sandbox it as configured
in the security policies. WITHOUT PROPER CAS SUPPORT THIS 'FEATURE'
WOULD BE A SECURITY HOLE THE SIZE OF TEXAS!!!

The bad news:

1 - AFAIK, no one has developed an equivalent control (or extension)
to support that in other browsers and OSes.
2 - Mono is still implementing CAS support, but before it can be
trusted, a fulll security auditing of the base class libraries has to
be done, what will take quite some time to happen.
3 - Mono is still implementing System.Windows.Forms, so not all your
VS.NET developed code will properly work.

The currently available ways to have "extended"-controls in web pages

-- Server-side ASP.NET controls (mono supports and works with recent browsers)
-- Java Applets (depends if Java VM is installed and it's use is
enabled in browsers)
-- Pure javascript/DHTML "controls" (works with recent browsers)

My recomendation: ASP.NET with mono and mod_mono/xsp.

Other way: 

-- Make a downloadable installer for a non-html version of the
application, maybe using web services to talk with the back end
server.

Hope it helps,

On Mon, 31 Jan 2005 10:32:18 -0500, John S. Brumbelow
<JBrumbelow at optidoc.com> wrote:
> Please help,
> 
>         I've been through VS.NET, and its documentation says that when it builds .NET "Windows User Controls", they are derrived from System.Windows.Forms which I am to believe is what Mono support for the Mac currently. Oddly, the documentation says that the output from VS.NET is a "MSIL", but named as "DLL" or "EXE" depending on build options, but that it is a MSIL? So, if all that is true, then all I need is to get my app to run on Mac. I really want to make it run from an HTML script under say the Mac browser Opera, which is VERY much like IE. I wanted to get a simple sample to work as such:
> 
> ================== My C# code from VS.NET ===========================
> using System;
> using System.Collections;
> using System.ComponentModel;
> using System.Drawing;
> using System.Data;
> using System.Windows.Forms;
> 
> namespace WebCON
> {
>         /// <summary>
>         /// Summary description for HelloWorld.
>         /// </summary>
>         public class HelloWorld : System.Windows.Forms.UserControl
>         {
>     public System.Windows.Forms.Label Label_HelloWorld;
>                 /// <summary>
>                 /// Required designer variable.
>                 /// </summary>
>                 public System.ComponentModel.Container components = null;
>     public String csURL;
> 
>                 public HelloWorld()
>                 {
>                         // This call is required by the Windows.Forms Form Designer.
>                         InitializeComponent();
> 
>                         // TODO: Add any initialization after the InitComponent call
> 
>                 }
> 
>                 /// <summary>
>                 /// Clean up any resources being used.
>                 /// </summary>
>                 protected override void Dispose( bool disposing )
>                 {
>                         if( disposing )
>                         {
>                                 if( components != null )
>                                         components.Dispose();
>                         }
>                         base.Dispose( disposing );
>                 }
> 
>                 #region Component Designer generated code
>                 /// <summary>
>                 /// Required method for Designer support - do not modify
>                 /// the contents of this method with the code editor.
>                 /// </summary>
>                 public void InitializeComponent()
>                 {
>       this.Label_HelloWorld = new System.Windows.Forms.Label();
>       this.SuspendLayout();
>       //
>       // Label_HelloWorld
>       //
>       this.Label_HelloWorld.Location = new System.Drawing.Point(8, 8);
>       this.Label_HelloWorld.Name = "Label_HelloWorld";
>       this.Label_HelloWorld.Size = new System.Drawing.Size(672, 232);
>       this.Label_HelloWorld.TabIndex = 0;
>       this.Label_HelloWorld.Text = "Hello World!!!";
>       this.Label_HelloWorld.Click += new System.EventHandler(this.Label_HelloWorld_Click);
>       //
>       // HelloWorld
>       //
>       this.Controls.Add(this.Label_HelloWorld);
>       this.Name = "HelloWorld";
>       this.Size = new System.Drawing.Size(768, 296);
>       this.ResumeLayout(false);
> 
>     }
>                 #endregion
> 
>     public void Label_HelloWorld_Click(object sender, System.EventArgs e)
>     {
> 
>     }
> 
>     public void Run()
>     {
>       System.Windows.Forms.MessageBox.Show("Hello World", "Hello World");
>     }
> 
>     public string URL
>     {
>       get
>       {
>         return csURL;
>       }
>       set
>       {
>         csURL = value.ToString();
>         System.Windows.Forms.MessageBox.Show("Setting URL!!!");
>       }
>     }
>         }
> }
> ===========================================================================
> 
> ====================== My HTML page I want to run from Opera on Mac which works on IE in Windows.
> <html>
>   Hello World!!!<br>
>   <object
>     id=objHelloWorld
>     classid="WebCON.dll#WebCON.HelloWorld"
>     VIEWASTEXT
>   >
>     <param name="URL" value="http://OptiDEV-02">
>   </object>
> <script language=javascript>
> var objHelloWorld = document.getElementById("objHelloWorld");
> alert("CHK #001, objHelloWorld = '" + objHelloWorld.URL + "'...");
> objHelloWorld.Run();
> </script>
> </html>
> ==============================
> 
> I tried the HTML from Opera and it says the object does not exist. Any ideas?
> 
> ---
> Outgoing mail is certified Virus Free.
> Checked by AVG anti-virus system (http://www.grisoft.com).
> Version: 6.0.825 / Virus Database: 563 - Release Date: 12/30/2004
> 
> _______________________________________________
> Mono-devel-list mailing list
> Mono-devel-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list
> 


-- 
Rafael "Monoman" Teixeira
---------------------------------------
I'm trying to become a "Rosh Gadol" before my own eyes. 
See http://www.joelonsoftware.com/items/2004/12/06.html for enlightment.



---
Incoming mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.825 / Virus Database: 563 - Release Date: 12/30/2004
 

---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.825 / Virus Database: 563 - Release Date: 12/30/2004
 



More information about the Mono-devel-list mailing list