首页 > 编程 > .NET > 正文

ASP.NET立即上手教程(1)

2024-07-10 13:12:21
字体:
来源:转载
供稿:网友

一、开始

1、介绍

欢迎光临asp.net立即上手教程。

asp.net立即上手教程是由一系列实例和支持解说构成的,他的目的是为了让开发者快速理解asp.net的语法、框架以及asp.net网络应用程序框架的强大功能。所有的实例设计的短小而容易理解,可以充分展示asp.net的相应功能。在学习完本教程以后,你应该熟悉以下内容:

·asp.net语法。当然,对于熟练的asp开发者,有些asp.net语法元素会很熟悉,而有些却是新框架所独有的。本教程的实例覆盖了所有语法元素的细节。

·asp.net结构和特性。本教程介绍asp.net的特性,这些特性可以让开发者以前所未有的效率建立交互式的、世界级水平的应用程序。

·最佳实践。本教程的实例示范了asp.net功能的最佳途径,同时也避免了潜在的缺陷。

本教材的读者对象水平要求:

如果你以前从来没有过开发web页的经验,那么本教材不适合你。你应该熟悉html和一般的术语。你不需要有过asp的经验,但是你应该熟悉交互式页面的概念,包括表单,脚本和数据访问。

消化吸收本教材的实例

本教材是所展示内容的最佳实践。每个实例建立在概念的辨析和前面实例的引申之上。该实例是一个从简单到复杂,从单一技术到应用的完整的系列

2、什么是asp.net

asp.net是建立在通用语言运行时刻库(clr)上的应用程序框架。他用来在服务器端构建功能强大的web应用程序。asp.net提供了几个超越以前模式的优点:

·增强的性能。asp.net是运行在服务器端的编译后的clr代码,而不是像asp那样解释执行。asp.net利用提前绑定,即时编译,本地优化和缓存服务来提高性能。所有这一切,性能远远大于你以往写的每一行代码。

·世界级水平的开发工具支持。在visual studio .net的集成开发环境(ide)中,asp.net框架由丰富的工具箱和设计器组成。所见即所得的(wysiwyg)编辑方式、拖放服务器控件、以及自动部署,仅仅是这一强大工具所提供的一少部分功能。

·强大而富有弹性。由于asp.net是基于(clr)的,因此整个.net平台的强大和富有弹性,同样可以应用于web应用程序开发者。.net框架的类库、消息以及数据访问解决方案,都可以无缝集成到web。asp.net也是语言中立的,因此你可以选择你最熟悉的语言,或者通过几种语言来共同完成一个应用。而且,clr的互用性可以保证你升级到asp.ent的时候,现存的基于com的开发投资依然保留。

·简单。asp.net使执行常用的工作变得很容易,比如从简单的表单提交、客户端验证,到部署和站点配置。例如,asp.net允许你建立用户接口,实现页面和逻辑代码的分离,同时,就像vb的表单执行模式那样来处理事件(也就是说,由页面驱动模式变成了事件驱动模式)。此外,clr简化了部署,用来管理代码服务,例如自动参照和垃圾回收。

·易于管理。asp.net使用一个基于文本的、分层次的配置系统,它简化了服务器端环境和web应用程序的设置。由于配置信息用纯文本格式保存,新的设置不需要本地管理工具的支持。这种“零本地支持”的理念也同样应用到了部署asp.net应用程序。asp.net应用程序部署到服务器,简化为复制必要的文件到服务器。在部署,甚至替换正在运行的变异代码的时候,也不需要重新启动服务器。

·可伸缩性和有效利用性。asp.net被设计成可伸缩的,能为集群和多处理器环境设计提高性能。而且,asp.net运行时刻密切监视和管理进程,这样,如果发生了错误的行为,例如漏洞和死锁,新的进程会在当前位置建立,来帮助你的应用程序继续处理事件请求。

·可订制和扩展。asp.net提供一种良好的扩充结构,允许开发者在适当的级别“插入”他们的代码。事实上,使用自己的编写的组件可以扩展或者替换asp.net运行时刻的任何子组件。执行自定义验证或状态服务变得前所未有的容易。

·安全性。内建的windows验证和每一个应用程序的独立配置,你可以认为你的应用程序是安全的。

接下来的asp.net教程势力将向您展示这些概念的练习

3、语言支持(c#版本)

语言支持

微软的.net平台现在提供内建的三种语言支持:c#, visual basic, 和 jscript。本教材的练习和实例代码展示如何使用这三种语言建立.net应用程序。关于其他语言的更多得语法信息,请参考.net framework sdk文档。

下面提供的的代码段帮助你理解本教材中代码实例,以及这三种语言之间的差异。

变量声明

以下为引用的内容:
int x;
string s;
string s1, s2;
object o;
object obj = new object();
public string name;

语句

response.write("foo");

注释

// 这是单行注释

/*这是多行注释*/

访问索引属性

以下为引用的内容:
string s = request.querystring["name"];
string value = request.cookies["key"];

声明索引属性

以下为引用的内容:
// default indexed property
public string this[string name] {
  get {
    return (string) lookuptable[name];
  }
}

声明简单属性

以下为引用的内容:

public string name {

 get {
  ...
  return ...;
 }

 set {
  ... = value;
 }

}

声明和使用枚举

以下为引用的内容:

// declare the enumeration
public enum messagesize {

  small = 0,
  medium = 1,
  large = 2
}

// create a field or property
public messagesize msgsize;

// assign to the property using the enumeration values
msgsize = small;

遍历集合

以下为引用的内容:
foreach ( string s in coll ) {
...
}

声明和使用方法

以下为引用的内容:

// declare a void return function
void voidfunction() {
...
}

// declare a function that returns a value
string stringfunction() {
...
  return (string) val;
}

// declare a function that takes and returns values
string parmfunction(string a, string b) {
...
  return (string) (a + b);
}

// use the functions
voidfunction();
string s1 = stringfunction();
string s2 = parmfunction("hello", "world!");

定制属性

以下为引用的内容:

// stand-alone attribute
[stathread]

// attribute with parameters
[dllimport("advapi32.dll")]

// attribute with named parameters
[dllimport("kernel32.dll", charset=charset.auto)]

数组

以下为引用的内容:

  string[] a = new string[3];
  a[0] = "1";
  a[1] = "2";
  a[2] = "3";

  string[][] a = new string[3][3];
  a[0][0] = "1";
  a[1][0] = "2";
  a[2][0] = "3";

初始化

以下为引用的内容:
string s = "hello world";
int i = 1;
double[] a = { 3.00, 4.00, 5.00 };
if 语句 
if (request.querystring != null) {
 ...
}

case 语句

以下为引用的内容:

switch (firstname) {
 case "john" :
  ...
  break;
 case "paul" :
  ...
  break;
 case "ringo" :
  ...
  break;
 default:
  ...
  break;
}

for 循环 
for (int i=0; i<3; i++)
 a(i) = "test";
while 循环 
int i = 0;
while (i<3) {
 console.writeline(i.tostring());
 i += 1;
}

异常处理

以下为引用的内容:
try {
  // code that throws exceptions
} catch(overflowexception e) {
  // catch a specific exception
} catch(exception e) {
  // catch the generic exceptions
} finally {
  // execute some cleanup code
}

字符串连接

以下为引用的内容:

// using strings
string s1;
string s2 = "hello";
s2 += " world";
s1 = s2 + " !!!";

// using stringbuilder class for performance
stringbuilder s3 = new stringbuilder();
s3.append("hello");
s3.append(" world");
s3.append(" !!!");

事件处理委派

以下为引用的内容:
void mybutton_click(object sender,
          eventargs e) {
...
}

声明事件

以下为引用的内容:

// create a public event
public event eventhandler myevent;

// create a method for firing the event
protected void onmyevent(eventargs e) {
   myevent(this, e);
}

向事件增加或移除事件处理

以下为引用的内容:
control.change += new eventhandler(this.changeeventhandler);
control.change -= new eventhandler(this.changeeventhandler);

构造

以下为引用的内容:
myobject obj = (myobject)session["some value"];
imyobject iobj = obj;

转换

以下为引用的内容:
int i = 3;
string s = i.tostring();
double d = double.parse(s);

带有继承的类定义

以下为引用的内容:

using system;

namespace myspace {

 public class foo : bar {

  int x;

  public foo() { x = 4; }
  public void add(int x) { this.x += x; }
  override public int getnum() { return x; }
 }

}

// csc /out:librarycs.dll /t:library
// library.cs

实现接口

以下为引用的内容:

public class myclass : ienumerable {
...

  ienumerator ienumerable.getenumerator() {
     ...
  }
}

带有main方法的类定义

以下为引用的内容:

using system;

public class consolecs {

 public consolecs() {
  console.writeline("object created");
 }

 public static void main (string[] args) {
  console.writeline("hello world");
  consolecs ccs = new consolecs();
 }

}

// csc /out:consolecs.exe /t:exe console.cs

标准模板

以下为引用的内容:

using system;

public class module {

public static void main (string[] args) {
 console.writeline("hello world");
}

}
// csc /out:consolecs.exe /t:exe console.cs

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表