Pagina 1 di 1

[Wine] MONO e WinForms su DEBIAN

Inviato: mercoledì 29 settembre 2010, 10:55
da gerald81
Buongiorno a tutti ragazzi, non mi quadra una cosa...
Ho creato un semplice progetto WinForms utilizzando C# Express 2008 su un PC con Windows XP. Si tratta di una semplicissima FORM con una casella di testo, un elenco (listbox), due pulsanti ed una MessageBox visualizzata alla pressione di uno dei due pulsanti, insomma un TEST per verificare il funzionamento dei componenti WinForms.

Dopodichè ho compilato il progetto in versione release ed ho copiato l'.EXE in una cartella di una macchina virtuale con installato DEBIAN 5.

Su Debian apro una console e digito "mono HelloWordWinForm.exe" e tada.... la form viene visualizzata correttamente...  :o

Non mi torna una cosa... ma non dovrei installare il famoso WINE per poter far girare programmi WinForms su linux  ???

Grazie a tutti per le risposte!

Re: [Wine] MONO e WinForms su DEBIAN

Inviato: mercoledì 29 settembre 2010, 12:47
da kiroken_
no le librerie per le winforms esistono anche qua (anche se nei paesi in cui valgono i brevetti non è ben chiaro quanto sia legale usarle).

Potresti postare il codice? Sono curioso di vedere come funzionano :)

Re: [Wine] MONO e WinForms su DEBIAN

Inviato: mercoledì 29 settembre 2010, 12:48
da Bakuriu
Da quello che leggo qui il supporto per i winforms è stato completato.

A me comunque non sembra un problema il fatto che funzioni senza wine...

Re: [Wine] MONO e WinForms su DEBIAN

Inviato: mercoledì 29 settembre 2010, 14:49
da gerald81
Ma infatti non è un problema, il fatto è che ero perplesso visto che ero rimasto all'utilizzo di WINE per il supporto delle windows form, cosa che pare che non ci sia più bisogno, dato che http://www.mono-project.com/WinForms parla di un supporto completato.

Per kiroken, ecco il codice:

Codice: Seleziona tutto

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;



namespace WindowsFormsApplication1

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }



        private void cmdVisualizza_Click(object sender, EventArgs e)

        {

            MessageBox.Show("Hai scritto: " + this.textBox1.Text, "Titolo...", MessageBoxButtons.OK);

        }



        private void button1_Click(object sender, EventArgs e)

        {

            Random rand = new Random();

            int nr = rand.Next(10);

            for (int k = 1; k < nr; k++)

                this.lstElenco.Items.Add(string.Format("{0} - {1}", k.ToString(), this.textBox1.Text));

        }

    }

}

namespace WindowsFormsApplication1

{

    partial class Form1

    {

        /// <summary>

        /// Variabile di progettazione necessaria.

        /// </summary>

        private System.ComponentModel.IContainer components = null;



        /// <summary>

        /// Liberare le risorse in uso.

        /// </summary>

        /// <param name="disposing">ha valore true se le risorse gestite devono essere eliminate, false in caso contrario.</param>

        protected override void Dispose(bool disposing)

        {

            if (disposing && (components != null))

            {

                components.Dispose();

            }

            base.Dispose(disposing);

        }



        #region Codice generato da Progettazione Windows Form



        /// <summary>

        /// Metodo necessario per il supporto della finestra di progettazione. Non modificare

        /// il contenuto del metodo con l'editor di codice.

        /// </summary>

        private void InitializeComponent()

        {

            this.lblEtichetta = new System.Windows.Forms.Label();

            this.textBox1 = new System.Windows.Forms.TextBox();

            this.cmdVisualizza = new System.Windows.Forms.Button();

            this.lstElenco = new System.Windows.Forms.ListBox();

            this.button1 = new System.Windows.Forms.Button();

            this.SuspendLayout();

            // 

            // lblEtichetta

            // 

            this.lblEtichetta.AutoSize = true;

            this.lblEtichetta.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));

            this.lblEtichetta.Location = new System.Drawing.Point(12, 9);

            this.lblEtichetta.Name = "lblEtichetta";

            this.lblEtichetta.Size = new System.Drawing.Size(106, 16);

            this.lblEtichetta.TabIndex = 0;

            this.lblEtichetta.Text = "Scrivi del testo:";

            // 

            // textBox1

            // 

            this.textBox1.Location = new System.Drawing.Point(124, 8);

            this.textBox1.Name = "textBox1";

            this.textBox1.Size = new System.Drawing.Size(275, 20);

            this.textBox1.TabIndex = 1;

            // 

            // cmdVisualizza

            // 

            this.cmdVisualizza.Location = new System.Drawing.Point(405, 6);

            this.cmdVisualizza.Name = "cmdVisualizza";

            this.cmdVisualizza.Size = new System.Drawing.Size(75, 23);

            this.cmdVisualizza.TabIndex = 2;

            this.cmdVisualizza.Text = "Visualizza";

            this.cmdVisualizza.UseVisualStyleBackColor = true;

            this.cmdVisualizza.Click += new System.EventHandler(this.cmdVisualizza_Click);

            // 

            // lstElenco

            // 

            this.lstElenco.FormattingEnabled = true;

            this.lstElenco.Location = new System.Drawing.Point(12, 89);

            this.lstElenco.Name = "lstElenco";

            this.lstElenco.Size = new System.Drawing.Size(468, 121);

            this.lstElenco.TabIndex = 3;

            // 

            // button1

            // 

            this.button1.Location = new System.Drawing.Point(405, 60);

            this.button1.Name = "button1";

            this.button1.Size = new System.Drawing.Size(75, 23);

            this.button1.TabIndex = 4;

            this.button1.Text = "Elenca";

            this.button1.UseVisualStyleBackColor = true;

            this.button1.Click += new System.EventHandler(this.button1_Click);

            // 

            // Form1

            // 

            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);

            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;

            this.ClientSize = new System.Drawing.Size(487, 222);

            this.Controls.Add(this.button1);

            this.Controls.Add(this.lstElenco);

            this.Controls.Add(this.cmdVisualizza);

            this.Controls.Add(this.textBox1);

            this.Controls.Add(this.lblEtichetta);

            this.Name = "Form1";

            this.Text = "Form1";

            this.ResumeLayout(false);

            this.PerformLayout();



        }



        #endregion



        private System.Windows.Forms.Label lblEtichetta;

        private System.Windows.Forms.TextBox textBox1;

        private System.Windows.Forms.Button cmdVisualizza;

        private System.Windows.Forms.ListBox lstElenco;

        private System.Windows.Forms.Button button1;

    }

}

Re: [Wine] MONO e WinForms su DEBIAN

Inviato: mercoledì 29 settembre 2010, 15:17
da kiroken_
grazie comunque quando posti del codice (specialmente se lungo) racchiudilo tra le tag code

Re: [Wine] MONO e WinForms su DEBIAN

Inviato: mercoledì 29 settembre 2010, 15:36
da gerald81

Codice: Seleziona tutto

.... scusate...
 ;D

Re: [Wine] MONO e WinForms su DEBIAN

Inviato: venerdì 1 ottobre 2010, 8:20
da Devnull
gerald81 ha scritto: Buongiorno a tutti ragazzi, non mi quadra una cosa...
Ho creato un semplice progetto WinForms utilizzando C# Express 2008 su un PC con Windows XP. Si tratta di una semplicissima FORM con una casella di testo, un elenco (listbox), due pulsanti ed una MessageBox visualizzata alla pressione di uno dei due pulsanti, insomma un TEST per verificare il funzionamento dei componenti WinForms.

Dopodichè ho compilato il progetto in versione release ed ho copiato l'.EXE in una cartella di una macchina virtuale con installato DEBIAN 5.

Su Debian apro una console e digito "mono HelloWordWinForm.exe" e tada.... la form viene visualizzata correttamente...  :o

Non mi torna una cosa... ma non dovrei installare il famoso WINE per poter far girare programmi WinForms su linux  ???

Grazie a tutti per le risposte!
Le sezioni tecniche sono dedicate ad Ubuntu. Sposto al Bar.

Re: [Wine] MONO e WinForms su DEBIAN

Inviato: venerdì 1 ottobre 2010, 13:13
da AlexDiste
Mono è un implementazione open source del framework .net di Microsoft, quindi alcune parole chiavi dei linguaggi che usano framework .net le legge e le compila anche mono

Re: [Wine] MONO e WinForms su DEBIAN

Inviato: venerdì 1 ottobre 2010, 13:24
da luca1202
AlexDiste ha scritto: Mono è un implementazione open source del framework .net di Microsoft, quindi alcune parole chiavi dei linguaggi che usano framework .net le legge e le compila anche mono
esatto e ovviamente solo queste.

per tutto il resto del software non scritto con il framework .net ti serve necessariamente wine.