Using Dynamic Languages with ASP.NET

07/09/2009

This walkthrough provides you with an introduction to dynamic languages for ASP.NET. It guides you through creating a simple page in Microsoft Visual Studio, adding controls, and adding event handlers using dynamic languages.

Tasks illustrated in this walkthrough include:

  • Adding controls to the default page.
  • Adding event handlers in a separate code file, using dynamic languages.
  • Adding a second page with event-handling code in the page.
Prerequisites

In order to complete this walkthrough, you will need:

  • Microsoft Visual Studio 2008 or Visual Web Developer 2008 Express Edition.
  • A copy of the website included in the ASP.NET Dynamic Language Support download. There is currently no project template, so it is necessary to copy the website in order to start with a blank ASP.NET Dynamic Language website.

This walkthrough assumes that you have a general understanding of working in Visual Web Developer. For an introduction, see Walkthrough: Creating a Basic Page in Visual Web Developer.

Creating a Web Site

In this part of the walkthrough, you will create a Web site with a dynamic language as the default language.

To create a Web site with a default ASP.NET Web page

  1. Copy the files from the ASP.NET Dynamic Language Support project into an empty directory.
  2. In Visual Studio (or Visual Web Developer), in the File menu, click Open Web Site. The Open Web Site dialog box is displayed.
  3. Select the directory in which you copied the files in step 1. Make sure that FileSystem is selected in the left panel of the dialog.

    Note: You can use statically compiled languages in the same Web application by creating pages and components in different programming languages.

  4. Click Open. Visual Studio opens the folder as a website and displays the files in the Solution Explorer.
Adding Controls to the Default Page

In this part of the walkthrough, you will add server controls to the page.

To add controls to the page

  1. Switch to Design view.
  2. In the Toolbox, from the Standard group, drag three controls onto the page: a TextBox control, a Button control, and a Label control.
  3. Put the insertion point above the TextBox control, and then type Enter your name: to create a caption for the text box.
Programming the Button Control

For this walkthrough, you will write code that reads the name that the user enters into the text box and then displays the name in the Label control.

To add a button event handler

  1. Right-click the page and click View Code to show the separate code file. For example, if you are using IronPython, the file is Default.aspx.py.

    The file contains a stub event handler for the Load event of the page.

    Note: In IronPython, pass is a placeholder that does nothing.

  2. Replace the stub event handler with the following code to set the label text when the page is initialized:

    IronPython

    		
    def Page_Load(sender, e):
    if not IsPostBack:
    Label1.Text = "...Your name here..."
  3. Add the following code to create an event handler for the button's Click event:

    IronPython

    		
    def Button1_Click(sender, e):
    Label1.Text = Textbox1.Text

    In this release, event handlers must be coded and bound manually. You cannot create them by double-clicking a control in Design view or by selecting an event in the Properties window.

    Because dynamic languages do not have typed parameters and variables, you do not need to know the type of the event argument object.

    Note: In this release, IntelliSense support for dynamically typed variables is limited. You can press CTRL+SPACE to get a list of code elements that are currently in scope.

  4. Switch to Default.aspx and go to Source view, and then bind the event handler by adding an OnClick attribute to the Button control markup, as shown in the following example:
    <form id="form1" runat="server">
    <div>
    Enter your name:<br />
    <asp:TextBox ID="TextBox1" runat="server">
    </asp:TextBox>
    <asp:Button ID="Button1" runat="server" Text="Button"
    OnClick="Button1_Click"/><br />
    <br />
    <asp:Label ID="Label1" runat="server" Text="Label">
    </asp:Label>
    <br />
    </div>
    </form>
  5. Press CTRL+F5 to run the page in the browser using the ASP.NET Development Server.
  6. Enter a name into the text box and click the button. The name you entered is displayed in the Label control. If the name does not appear, check the spelling of the event handler in the OnClick attribute.
  7. In the browser, optionally view the source of the page you are running.
  8. Close the browser.
Programming the Button Control

For this walkthrough, you will add dynamic language code in a script block.

To add a default button event handler

  1. Switch to Source view.
  2. Add the following code to initialize the label and to create an event handler for the button's Click event.

    IronPython

    		
    <script runat="server">
    def Page_Load(sender, e):
    if not IsPostBack:
    Label1.Text = "...Your name here..."
    
    def Button1_Click(sender, e):
    Label1.Text = Textbox1.Text
    </script>
  3. In the Button control, bind the event handler by adding the OnClick attribute, as you did previously in this walkthrough. The following example shows the markup.
    <asp:Button ID="Button1" runat="server" Text="Button"
    OnClick="Button1_Click"/><br />
  4. Press CTRL+F5 to run the page in the browser using the ASP.NET Development Server.
Posted in: .NET Framework| Tags: asp.net Dynamic Data Control IronPython Website Dynamic Language Support Page

Creating a User Control with Dynamic Languages for ASP.NET

07/09/2009
Introduction

You can use dynamic languages in ASP.NET to create user controls that encapsulate the functionality of multiple server controls in a unit. In this walkthrough, you will create an ASP.NET user control that acts as a picker control. The picker control has two lists, with a set of choices in one list (the source). Users can select items in the SourceList list, and then add the items to the TargetList list.

Note   In this release, you cannot use dynamic languages to create custom server controls.

Tasks illustrated in this walkthrough include the following:

  • Creating a user control and adding ASP.NET server controls to the user control, with event handlers written in dynamic languages.
  • Adding a user control to a host page.
  • Adding properties and methods to the user control with dynamic languages.
  • Coding properties in dynamic languages so that they can be set declaratively.
  • Adding dynamic language code to the host page to handle the user control.
Prerequisites

In order to complete this walkthrough, you will need:

  • Microsoft Visual Studio 2005 or Visual Web Developer Express Edition.
  • The ASP.NET Futures release (May 2007 or later) installed on your computer. The .msi installer file includes a Visual Studio Content Installer (.vsi) for creating a blank ASP.NET Futures Web application in Visual Studio.

This walkthrough assumes that you have a general understanding of working with ASP.NET in Visual Studio. For an introduction to ASP.NET in Visual Studio, see Walkthrough: Creating a Basic Page in Visual Web Developer.

Creating the Web Site

ASP.NET Dynamic Language Support: Using Dynamic Languages with ASP.NET

This walkthrough provides you with an introduction to dynamic languages for ASP.NET. It guides you through creating a simple page in Microsoft Visual Studio, adding controls, and adding event handlers using dynamic languages.

Tasks illustrated in this walkthrough include:

  • Adding controls to the default page.
  • Adding event handlers in a separate code file, using dynamic languages.
  • Adding a second page with event-handling code in the page.
Prerequisites

In order to complete this walkthrough, you will need:

  • Microsoft Visual Studio 2008 or Visual Web Developer 2008 Express Edition.
  • A copy of the website included in the ASP.NET Dynamic Language Support download. There is currently no project template, so it is necessary to copy the website in order to start with a blank ASP.NET Dynamic Language website.

This walkthrough assumes that you have a general understanding of working in Visual Web Developer. For an introduction, see Walkthrough: Creating a Basic Page in Visual Web Developer.

Creating a Web Site

In this part of the walkthrough, you will create a Web site with a dynamic language as the default language.

To create a Web site with a default ASP.NET Web page

  1. Copy the files from the ASP.NET Dynamic Language Support project into an empty directory.
  2. In Visual Studio (or Visual Web Developer), in the File menu, click Open Web Site. The Open Web Site dialog box is displayed.
  3. Select the directory in which you copied the files in step 1. Make sure that FileSystem is selected in the left panel of the dialog.

    Note: You can use statically compiled languages in the same Web application by creating pages and components in different programming languages.

  4. Click Open. Visual Studio opens the folder as a website and displays the files in the Solution Explorer.
Adding Controls to the Default Page

In this part of the walkthrough, you will add server controls to the page.

To add controls to the page

  1. Switch to Design view.
  2. In the Toolbox, from the Standard group, drag three controls onto the page: a TextBox control, a Button control, and a Label control.
  3. Put the insertion point above the TextBox control, and then type Enter your name: to create a caption for the text box.
Programming the Button Control

For this walkthrough, you will write code that reads the name that the user enters into the text box and then displays the name in the Label control.

To add a button event handler

  1. Right-click the page and click View Code to show the separate code file. For example, if you are using IronPython, the file is Default.aspx.py.

    The file contains a stub event handler for the Load event of the page.

    Note: In IronPython, pass is a placeholder that does nothing.

  2. Replace the stub event handler with the following code to set the label text when the page is initialized:

    IronPython

    		
    def Page_Load(sender, e):
    if not IsPostBack:
    Label1.Text = "...Your name here..."
  3. Add the following code to create an event handler for the button's Click event:

    IronPython

    		
    def Button1_Click(sender, e):
    Label1.Text = Textbox1.Text

    In this release, event handlers must be coded and bound manually. You cannot create them by double-clicking a control in Design view or by selecting an event in the Properties window.

    Because dynamic languages do not have typed parameters and variables, you do not need to know the type of the event argument object.

    Note: In this release, IntelliSense support for dynamically typed variables is limited. You can press CTRL+SPACE to get a list of code elements that are currently in scope.

  4. Switch to Default.aspx and go to Source view, and then bind the event handler by adding an OnClick attribute to the Button control markup, as shown in the following example:
    <form id="form1" runat="server">
    <div>
    Enter your name:<br />
    <asp:TextBox ID="TextBox1" runat="server">
    </asp:TextBox>
    <asp:Button ID="Button1" runat="server" Text="Button"
    OnClick="Button1_Click"/><br />
    <br />
    <asp:Label ID="Label1" runat="server" Text="Label">
    </asp:Label>
    <br />
    </div>
    </form>
  5. Press CTRL+F5 to run the page in the browser using the ASP.NET Development Server.
  6. Enter a name into the text box and click the button. The name you entered is displayed in the Label control. If the name does not appear, check the spelling of the event handler in the OnClick attribute.
  7. In the browser, optionally view the source of the page you are running.
  8. Close the browser.
Programming the Button Control

For this walkthrough, you will add dynamic language code in a script block.

To add a default button event handler

  1. Switch to Source view.
  2. Add the following code to initialize the label and to create an event handler for the button's Click event.

    IronPython

    		
    <script runat="server">
    def Page_Load(sender, e):
    if not IsPostBack:
    Label1.Text = "...Your name here..."
    
    def Button1_Click(sender, e):
    Label1.Text = Textbox1.Text
    </script>
  3. In the Button control, bind the event handler by adding the OnClick attribute, as you did previously in this walkthrough. The following example shows the markup.
    <asp:Button ID="Button1" runat="server" Text="Button"
    OnClick="Button1_Click"/><br />
  4. Press CTRL+F5 to run the page in the browser using the ASP.NET Development Server.
Posted in: .NET Framework| Tags: asp.net Dynamic Language Support C# Dynamic Language User Control TargetList

Using Shared Code with Dynamic Languages for ASP.NET

07/07/2009
Introduction

In this walkthrough, you will create a simple class with a dynamic language and then use it in an ASP.NET Web page.

Prerequisites

In order to complete this walkthrough, you will need:

  • Microsoft Visual Studio 2008 or Visual Web Developer 2008 Express Edition.
  • A copy of the website included in the ASP.NET Dynamic Language Support download. There is currently no project template, so it is necessary to copy the website in order to start with a blank ASP.NET Dynamic Language website.

This walkthrough assumes that you have a general understanding of working in Visual Studio. For an introduction, see Walkthrough: Creating a Basic Page in Visual Web Developer.

Using the Shared Class

The next step is to use the shared class in an ASP.NET Web page. You can use the Default.aspx page that was created when you created the Web site.

To use the shared class

  1. Open or switch to the Default.aspx page, and then switch to Design view.

    Note  If you do not have a Default.aspx page, you can use another page or add a new page to the Web site.

  2. From the Standard tab in the toolbox, drag a TextBox control, Label control, and Button control onto the page.

    Note  For this walkthrough, the layout of the page is not important.

  3. Right-click the page and click View Code, and then add import statements for the new module using the following code:

    IronPython

    		
    from SampleModule import SampleClass
  4. Add an event handler for the Click event of the button, with the following code:

    IronPython

    		
    def Button1_Click(sender, args):
    sc = SampleClass()
    sc.TestString = TextBox1.Text
    Label1.Text = sc.TestString

    Note  In this release, event handlers must be coded and bound manually. You cannot create them by double-clicking a control in Design view or by selecting an event in the Properties window.

  5. Switch to Source view, and then bind the event handler to the Click event using the following markup.
    <asp:Button ID="Button1" runat="server" Text="Button"
    OnClick="Button1_Click"/><br />
  6. Press CTRL+F5 to run the page.
  7. When the page appears in the browser, enter something in the text box, and then click the button.

    The property of the sample class is set to the value of the TextBox control, and then displayed in the Label control.

Posted in: .NET Framework| Tags: Dynamic Data Sample IronPython Dynamic Language Shared Code Chared Class

Hot Posts

Latest posts

Tags

Others

Sponsors