Cytat(Ace @ 2005-01-26 01:13:07)
ok ale W czym jest wyzszosc ASP nad php ? Szybsze aplikacje ? Stabilniejsze ? Szybciej sie je tworzy ?
ASP.NET jest kompilowany do kodu wykonywalnego i przez to dziala znacznie szybciej.
Posiada szereg bibliotek, ktore czesto w php musza byc specjalnei doinstalowywane.
Aplikacje w ASP.NET oparte sa o zdarzenia, a ich pisanie przez to, jest niemalze identyczne jak pisanie aplikacji okienkowych.
Dostepne sa tzw. Server Web Controls - kontrolki, ktore to ulatwiaja tworzenie aplikacji .
Apikacje pisze sie znacznie szybciej niz w php.
Hmm... moze najlepiej bedzie to widac na przykladzie:
http://84.10.14.248/Hello/Prosta aplikacja, ktora napisalem w doslownie 3 minuty.
Kod zrodlowy:Strona aspx:
<%@ Page language="c#" Codebehind="Default.aspx.cs" AutoEventWireup="false" Inherits="Hello._Default" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>Default</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body>
<form id="Form1" method="post" runat="server">
<asp:Label id="lblName" runat="server">Podaj swoje imię:</asp:Label><br>
<asp:TextBox id="txbName" runat="server" MaxLength="10"></asp:TextBox><br>
<asp:RegularExpressionValidator id="revName" runat="server" ErrorMessage="Pole zawiera niedozwolone znaki." ControlToValidate="txbName"
ValidationExpression="[a-zA-Ząćęłęóśżź]{1,10}" Display="Dynamic"></asp:RegularExpressionValidator>
<asp:RequiredFieldValidator id="RequiredFieldValidator1" runat="server" ErrorMessage="To pole jest wymagane."
ControlToValidate="txbName" Display="Dynamic"></asp:RequiredFieldValidator><br>
<br>
<asp:Label id="lblSurname" runat="server">Podaj swoje nazwisko:</asp:Label><br>
<asp:TextBox id="txbSurname" runat="server" MaxLength="20"></asp:TextBox>
<br>
<asp:RegularExpressionValidator id="revSurname" runat="server" ErrorMessage="Pole zawiera niedozwolone znaki." ControlToValidate="txbSurname"
ValidationExpression="[a-zA-Ząćęłęóśżź]{1,20}" Display="Dynamic"></asp:RegularExpressionValidator>
<asp:RequiredFieldValidator id="RequiredFieldValidator2" runat="server" ErrorMessage="To pole jest wymagane."
ControlToValidate="txbSurname" Display="Dynamic"></asp:RequiredFieldValidator><br>
<asp:Button id="btnNext" runat="server" Text="Dalej"></asp:Button>
<br>
<br>
<br>
<asp:Label id="lblAge" runat="server" Visible="False">Twój wiek:</asp:Label>
<asp:DropDownList id="ddlAge" runat="server" Visible="False">
<asp:ListItem Value="0"><< wybierz swój wiek >></asp:ListItem>
<asp:ListItem Value="1">10-14</asp:ListItem>
<asp:ListItem Value="2">15-17</asp:ListItem>
<asp:ListItem Value="3">18-20</asp:ListItem>
<asp:ListItem Value="4">21-25</asp:ListItem>
<asp:ListItem Value="5">26-30</asp:ListItem>
<asp:ListItem Value="6">31-35</asp:ListItem>
<asp:ListItem Value="7">36 i więcej</asp:ListItem>
</asp:DropDownList><br>
<br>
<asp:Button id="btnFinish" runat="server" Text="Zakończ" Visible="False"></asp:Button>
</form>
</body>
</HTML>
CodeBehinde (warstwa biznesowa):
Kod
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace Hello
{
/// <summary>
/// Summary description for _Default.
/// </summary>
public class _Default : System.Web.UI.Page
{
protected System.Web.UI.WebControls.TextBox txbName;
protected System.Web.UI.WebControls.RegularExpressionValidator revName;
protected System.Web.UI.WebControls.RegularExpressionValidator revSurname;
protected System.Web.UI.WebControls.DropDownList ddlAge;
protected System.Web.UI.WebControls.Button btnNext;
protected System.Web.UI.WebControls.Label lblName;
protected System.Web.UI.WebControls.Label lblSurname;
protected System.Web.UI.WebControls.Button btnFinish;
protected System.Web.UI.WebControls.Label lblAge;
protected System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator1;
protected System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator2;
protected System.Web.UI.WebControls.TextBox txbSurname;
private void Page_Load(object sender, System.EventArgs e)
{
// Put user code to initialize the page here
}
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.btnNext.Click += new System.EventHandler(this.btnNext_Click);
this.btnFinish.Click += new System.EventHandler(this.btnFinish_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
private void btnNext_Click(object sender, System.EventArgs e)
{
if ( Page.IsValid )
{
lblName.Text = txbName.Text;
txbName.Visible = false;
lblSurname.Text = txbSurname.Text;
txbSurname.Visible = false;
btnNext.Visible = false;
lblAge.Visible = true;
ddlAge.Visible = true;
btnFinish.Visible = true;
}
}
private void btnFinish_Click(object sender, System.EventArgs e)
{
if ( Convert.ToInt32(ddlAge.SelectedValue) != 0 )
{
lblAge.Text = ddlAge.SelectedItem.Text;
ddlAge.Visible = false;
btnFinish.Visible = false;
}
}
}
}
Przyczym trzeba zaznaczyc, ze duza czesc kodu generowana jest automatycznie przez VS.
Teraz sprobojcie zrobic to w php (z wlaczonym stoperem

)