O asp.net asi tolko:
1, Asp.net je UI komponentovo orientovane(ako swing), okrem toho
obsahuje aj nevisualne komponenty, to je fajn lebo s komponentami sa
dobre robi. Teda pracuje sa s komponentami a nie s nejakym hlupym HTML.
Tie sa vedia renderovat rovnako v roznych prehliadacoch, viazat na data,
definovat vzhlad - proste klasika, napajame na ne kontroler.
2, Asp sa mi nezda ukecane. Vela veci sa "dopise" do code behind po
kliknuti v designeri.
3, Myslim ze code behind je v java web frameworkoch bezny(ale nie vo
vsetkych) aj ked je inak implementovany.
4, getter alebo setter si moze kazdy dorobit, lenze v .net to nie je
konvencia ako v jave. Totiz getter a setter je potreby iba ak v nom
nieco robis alebo menis visibility. V danom pripade
protected System.Web.UI.WebControls.TextBox MyTextBox; nie je potrebny.
Popravde property v c# ma problem ze visibility settera sa nutne = visibility
gettera.
Tomas
Martin Kuba wrote / napísal(a):
Petr Synek wrote:
To je asi jako bych ve Swingu nekam umistil JTextField a jeste musel vytvorit POJO tridu s getText() a setText() metodama jen kvuli tomu abych mohl z toho textfieldu ziskat text.
A navic bych jeste musel v konstruktoru rict ze ten JTextField ma ID napr. "Calculator" a tu POJO tridu musel pojmenovat CalculatorActionBean a implementovat nejaky interface. Tedy zrovna intuitivni mi takovyto programatorsky styl neprijde.
Od intuitivniho web frameworku bych cekal ze s komponentou "numberOne" budu
rovnou v Jave (v code behind) pracovat takto:
String text = numberOne.getText();
numberOne.setText("Franta")
Pricemz o deklaraci promene numberOne se uz nestaram, protoze ta uz byla jednou deklarovana v JSP (neboli don't repeat yourself).
Jak se koukam na code-behind na http://support.microsoft.com/kb/303247
tak ten TextBox je tam taky definovany dvakrat, jednou
v ASPX:
<asp:textbox id="MyTextBox" text="Hello World" runat="server"></asp:textbox>
a podruhe ve tride:
protected System.Web.UI.WebControls.TextBox MyTextBox;
Jestli .NET pristupuje k protected promennym primo, bez
setXXX() a getXXX() metod, tak je to strucnejsi, ale
porusuje to ruzne zasady, ktere nam SUN vtlouka do hlavy.
Nevidim vyhodu toho, kdyz musim objekt nadeklarovat
a pak na nem volat metodu:
protected System.Web.UI.WebControls.TextBox MyTextBox;
public void MyButton_Click(Object sender, EventArgs e){
MyLabel.Text = MyTextBox.Text.ToString();
}
oproti tomu, kdyz nadefinuju rovnou hodnotu:
private String text;
public Resolution click() {
label = text;
text = "Franta";
...
}
Ale jestli to moc potrebujete, staci udelat toto:
public class Neco implements ActionBean{
...
public static class TextBox {
private String text;
public String getText() { return text; }
public void setText(String s) { text = s;}
}
private TextBox textBox = new TextBox();
public TextBox getTextBox() { return textBox; }
public Resolution click() {
String text = textBox.getText();
textBox.setText("Franta");
}
a v JSP udelat
<s:text name="textBox.text" />
Tot vse.
Makub