sabato 10 novembre 2007

Piccole differenze tra Visual Studio 2005 e SharpDevelop

Usando indifferentemente secondo entrambi, Visual Studio 2005 e SharpDevelop ho notato alcune differenze su come vengono organizzati, alla creazione,  i progetti Visual Basic e C#.

Con C# entrambi generano un progetto che ha nella classe "program.cs" il punto di entrata e partenza con le classiche istruzioni:

/*
* Creato da SharpDevelop.
 * Utente: Luciano
 * Data: 14/10/2007
 * Ora: 11.13
 *
 */

 

using System;
using System.Windows.Forms;

namespace SerializeCs
{
               /// <summary>
               /// Class with program entry point.
               /// </summary>
               internal sealed class Program
               {
                              /// <summary>
                              /// Program entry point.
                              /// </summary>
                              [STAThread]
                              private static void Main(string[] args)
                              {
                                            Application.EnableVisualStyles();
                                            Application.SetCompatibleTextRenderingDefault(false);
                                            Application.Run(new MainForm());
                              }                            

               }
}

Visual Studio come unica differenza da #D on C# genera la classe Program non dichiarandola internal e sealed

Dove cambia invece è sulla generazione dei progetti Visual Basic.
Visual Studio non genera nessun file separato e mette la Form (Form1) come oggetto di avvio.
#D genera un file "program.vb" che contiene una estensione della classe MyApplication e mette questo oggetto come oggetto di avvio

' Creato da SharpDevelop.
' Utente: Luciano
' Data: 09/11/2007
' Ora: 16.25
'

Imports Microsoft.VisualBasic.ApplicationServices 

Namespace My
       ' This file controls the behaviour of the application.
       Partial Class MyApplication
             Public Sub New()
                    MyBase.New(AuthenticationMode.Windows)
                    Me.IsSingleInstance = False
                    Me.EnableVisualStyles = True
                    Me.SaveMySettingsOnExit = False ' MySettings are not supported in SharpDevelop.
                    Me.ShutDownStyle = ShutdownMode.AfterMainFormCloses
             End Sub

             Protected Overrides Sub OnCreateMainForm()
                    Me.MainForm = My.Forms.MainForm
             End Sub
       End Class
End Namespace

Visual Studio inoltre di default "mostra tutto" su C# e "nasconde gran parte" dei file su Visual Basic (per vedere i file nascosti è necessario premere  l'opzione "mostra tutti i file".
Queste differenze mi hanno portato ad una semplice conclusione:
Psicologicamente Microsoft considera Visual Basic inferiore a C# in quanto considera Visual Basic come un IDE che deve predisporre un progetto che avrà in genere una sola Form.
L'atteggiamento mentale della costruzione dell'interfaccia è sì rivolta alla semplificazione del lavoro ma qui abbiamo passato il limite, si è fatto un gran lavoro per nascondere di default agli occhi del pubblico opzioni che invece su C# non sono neanche state parametrizzate o previste.

Nessun commento: