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