Re: Minimalist fruit basket program in C# 3.0

  • From: Jamal Mazrui <empower@xxxxxxxxx>
  • To: programmingblind@xxxxxxxxxxxxx
  • Date: Mon, 3 Dec 2007 06:21:00 -0500 (EST)

Thanks, Octavian -- that's good to know.
Jamal
On Mon, 3 Dec 2007, Octavian
Rasnita wrote:

> Date: Mon, 3 Dec 2007 08:39:32 +0200
> From: Octavian Rasnita <orasnita@xxxxxxxxx>
> Reply-To: programmingblind@xxxxxxxxxxxxx
> To: programmingblind@xxxxxxxxxxxxx
> Subject: Re: Minimalist fruit basket program in C# 3.0
>
> Hi Jamal,
>
> I have tried cs3_fruit.exe and it works when only .net 2 runtime is
> installed.
>
> Octavian
>
> ----- Original Message -----
> From: "Jamal Mazrui" <empower@xxxxxxxxx>
> To: <programmingblind@xxxxxxxxxxxxx>
> Sent: Monday, December 03, 2007 4:56 AM
> Subject: Re: Minimalist fruit basket program in C# 3.0
>
>
> > Since I had used the C# compiler of the .NET Framework 3.5 SDK, I had
> > assumed that the resulting executable required the .NET Framework 3.5 to
> > run.  Evaluating the assembly with the .NET 2.0 PEVerify utility,
> > however, leads me to think that the executable may also run under .NET
> > 2.0.  Since I have installed .NET 3.5 on all my computers and it is a
> > large download, I would rather not have to uninstall it to test this
> > hypothesis.  Can anyone with .NET 2.0, but not .NET 3.5, download the
> > archive at
> > http://www.EmpowermentZone.com/cs3_fruit.zip
> > and try running the cs3_fruit.exe program?
> >
> > It would be exciting to be able to use C# 3.0 language features without
> > requiring users to install .NET 3.5.
> >
> > Jamal
> > On Wed, 21 Nov 2007, Jamal
> > Mazrui wrote:
> >
> >> Date: Wed, 21 Nov 2007 08:42:43 -0500 (EST)
> >> From: Jamal Mazrui <empower@xxxxxxxxx>
> >> To: programmingblind@xxxxxxxxxxxxx
> >> Subject: Minimalist fruit basket program in C# 3.0
> >>
> >> From the archive at
> >> http://www.EmpowermentZone.com/cs3_fruit.zip
> >>
> >> This fruit basket program is written in C# 3.0:  a language update
> >> officially released by Microsoft along with the .NET Framework 3.5 and
> >> Visual Studio 2008.  Visual C# 2008 Express is a free download that
> >> includes the new .NET Framework and SDK.
> >>
> >> The archive includes a batch file, compile.bat, which invokes the
> >> command-line compiler to create an executable, cs3_fruit.exe, which is
> >> about 6K in size.  No other files are needed to run the program -- as
> >> long
> >> as .NET 3.5 is installed.
> >>
> >> Language enhancements to C# 3.0 include functional and dynamic
> >> programming
> >> constructs, in-line data queries, inferred typing of local variables, and
> >> property initialization when calling an object constructor.  A technical
> >> overview is at
> >> http://msdn2.microsoft.com/en-us/library/bb308966.aspx
> >>
> >> This program uses new language features to be minimalist in the code
> >> required to meet the fruit basket specification at
> >> http://FruitBasketDemo.AlacornComputer.com
> >>
> >> No variable types are explicitly declared, each control is specified in a
> >> single statement, and lambda expressions are used for event handlers.
> >> The
> >> included source code is also pasted below.
> >>
> >> Jamal
> >>
> >> /*
> >> content of cs3_fruit.cs
> >> Fruit Basket program in C# 3.0
> >> Public domain by Jamal Mazrui
> >> */
> >>
> >> // Import namespaces
> >> using System;
> >> using System.Windows.Forms;
> >>
> >> // Define class
> >> class FruitBasket {
> >>
> >> // Define entry point of program
> >> static void Main() {
> >> // Create controls;
> >> var tlp = new TableLayoutPanel {ColumnCount = 3, RowCount = 2};
> >> var lblFruit = new Label {Text = "&Fruit:", Parent = tlp};
> >> var txtFruit = new TextBox {Parent = tlp};
> >> var btnAdd = new Button {Text = "&Add", Parent = tlp};
> >> var lblBasket = new Label {Text = "&Basket:", Parent = tlp};
> >> var lstBasket = new ListBox {Parent = tlp};
> >> var btnDelete = new Button {Text = "&Delete", Parent = tlp};
> >>
> >> // Define Add event handler;
> >> btnAdd.Click += (o, e) => {
> >> var sFruit = txtFruit.Text.Trim();
> >> if (sFruit == "") MessageBox.Show("No fruit to add!", "Alert");
> >> else {
> >> lstBasket.Items.Add(sFruit);
> >> txtFruit.Clear();
> >> lstBasket.SelectedIndex = lstBasket.Items.Count - 1;
> >> }
> >> };
> >>
> >> // Define Delete event handler;
> >> btnDelete.Click += (o,e) => {
> >> var iFruit = lstBasket.SelectedIndex;
> >> if (iFruit == -1) MessageBox.Show("No fruit to delete!", "Alert");
> >> else {
> >> lstBasket.Items.RemoveAt(iFruit);
> >> if (iFruit == lstBasket.Items.Count) iFruit--;
> >> lstBasket.SelectedIndex = iFruit;
> >> }
> >> };
> >>
> >> // Finalize dialog;
> >> var dlg = new Form {Text = "Fruit Basket", AcceptButton = btnAdd,
> >> StartPosition = FormStartPosition.CenterScreen, AutoSize = true,
> >> AutoSizeMode = AutoSizeMode.GrowAndShrink};
> >> dlg.Controls.Add(tlp);
> >> // Define closing event handler
> >> dlg.Closing += (o, e) => e.Cancel = (MessageBox.Show("Close program?",
> >> "Confirm", MessageBoxButtons.YesNo) == DialogResult.No);
> >> dlg.ShowDialog();
> >> } // Main method
> >> } // FruitBasket class
> >>
> >> // End of cs3_fruit.cs
> >>
> >>
> > __________
> > View the list's information and change your settings at
> > //www.freelists.org/list/programmingblind
> >
>
> __________
> View the list's information and change your settings at
> //www.freelists.org/list/programmingblind
>
__________
View the list's information and change your settings at 
//www.freelists.org/list/programmingblind

Other related posts: