一、什么是 ASP.NET?
ASP.NET 是建立在公共语言运行库上的编程框架,可用于在服务器上生成功能强大的 Web 应用程序。与以前的 Web 开发模型相比,ASP.NET 提供了数个重要的优点:
增强的性能。ASP.NET 是在服务器上运行的编译好的公共语言运行库代码。与被解释的前辈不同,ASP.NET 可利用早期绑定、实时编译、本机优化和盒外缓存服务。这相当于在编写代码行之前便显著提高了性能。
世界级的工具支持。ASP.NET Framework 补充了 Visual Studio 集成开发环境中的大量工具箱和设计器。WYSIWYG 编辑、拖放服务器控件和自动部署只是这个强大的工具所提供功能中的少数几种。
威力和灵活性。由于 ASP.NET 基于公共语言运行库,因此 Web 应用程序开发人员可以利用整个平台的威力和灵活性。.NET Framework 类库、消息处理和数据访问解决方案都可从 Web 无缝访问。ASP.NET 也与语言无关,所以可以选择最适合应用程序的语言,或跨多种语言分割应用程序。另外,公共语言运行库的交互性保证在迁移到 ASP.NET 时保留基于 COM 的开发中的现有投资。
简易性。ASP.NET 使执行常见任务变得容易,从简单的窗体提交和客户端身份验证到部署和站点配置。例如,ASP.NET 页框架使您可以生成将应用程序逻辑与表示代码清楚分开的用户界面,和在类似 Visual Basic 的简单窗体处理模型中处理事件。另外,公共语言运行库利用托管代码服务(如自动引用计数和垃圾回收)简化了开发。
可管理性。ASP.NET 采用基于文本的分层配置系统,简化了将设置应用于服务器环境和 Web 应用程序。由于配置信息是以纯文本形式存储的,因此可以在没有本地管理工具帮助的情况下应用新设置。此“零本地管理”哲学也扩展到了 ASP.NET Framework 应用程序的部署。只需将必要的文件复制到服务器,即可将 ASP.NET Framework 应用程序部署到服务器。不需要重新启动服务器,即使是在部署或替换运行的编译代码时。
可缩放性和可用性。ASP.NET 在设计时考虑了可缩放性,增加了专门用于在聚集环境和多处理器环境中提高性能的功能。另外,进程受到 ASP.NET 运行库的密切监视和管理,以便当进程行为不正常(泄漏、死锁)时,可就地创建新进程,以帮助保持应用程序始终可用于处理请求。
自定义性和扩展性。ASP.NET 随附了一个设计周到的结构,它使开发人员可以在适当的级
别“插入”代码。实际上,可以用自己编写的自定义组件扩展或替换 ASP.NET 运行库的任何子组件。实现自定义身份验证或状态服务一直没有变得更容易。
安全性。借助内置的 Windows 身份验证和基于每个应用程序的配置,可以保证应用程序是安全的。
二、语言支持
Microsoft .NET 平台目前提供对以下三种语言的内置支持:C#、Visual Basic 和 JScript。
本教程中的练习和代码示例展示如何使用 C#、Visual Basic 和 JScript 生成 .NET 应用程序。有关其他语言语法的信息,请参考 .NET Framework SDK 的完整文档。
提供下表以帮助您理解本教程中的代码示例以及三种语言之间的差异:
变量声明
int x;
String s;
String s1, s2;
Object o;
Object obj = new Object();
public String name;
Dim x As Integer
Dim s As String
Dim s1, s2 As String
Dim o 'Implicitly Object
Dim obj As New Object()
Public name As String
var x : int;
var s : String;
var s1 : String, s2 : String;
var o;
var obj : Object = new Object();
var name : String;
语句
Response.Write("foo");
Response.Write("foo")
Response.Write("foo");
注释
// This is a comment
/*
This
is
a
multiline
comment
*/
' This is a comment
' This
' is
' a
' multiline
' comment
// This is a comment
/*
This
is
a
multiline
comment
*/
aspnet和net的区别访问索引属性
String s = Request.QueryString["Name"];
String value = Request.Cookies["key"];
Dim s, value As String
s = Request.QueryString("Name")
value = Request.Cookies("Key").Value
'Note that default non-indexed properties
'must be explicitly named in VB
var s : String = Request.QueryString("Name");
var value : String = Request.Cookies("key");
声明索引属性
// Default Indexed Property
public String this[String name] {
    get {
        return (String) lookuptable[name];                               
    }
}
' Default Indexed Property
Public Default ReadOnly Property DefaultProperty(Name As String) As String
    Get
        Return CStr(lookuptable(Name))
    End Get
End Property
//JScript does not support the creation of indexed
//or default indexed properties.  However, specifying the                   
//expando attribute on a class automatically provides
//a default indexed property whose type is Object and
//whose index type is String.
//To emulate these properties in JScript, use function
//declarations instead.
public function Item(name:String) : String {
    return String(lookuptable(name));
}
声明简单属性
public String name {
  get {
    ...
    return ...;
  }
  set {
    ... = value;
  }
}
Public Property Name As String
  Get
    ...
    Return ...
  End Get
  Set
    ... = Value
  End Set
End Property
function get name() : String {
    ...
    return ...;
}
function set name(value : String) {
    ... = 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;
' Declare the Enumeration
Public Enum MessageSize
    Small = 0
    Medium = 1
    Large = 2
End Enum
' Create a Field or Property
Public MsgSize As MessageSize
' Assign to the property using the Enumeration values
MsgSize = small
// Declare the Enumeration
enum MessageSize {
   
    Small = 0,
    Medium = 1,
    Large = 2
}
   
// Create a Field or Property
var msgsize:MessageSize
   
// Assign to the property using the Enumeration values
msgsize = MessageSize.Small
枚举集合
foreach ( String s in coll ) {
...
}
Dim S As String
For Each S In Coll
...
Next
for (var s : String 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!");
' Declare a void return function
Sub VoidFunction()
...
End Sub
' Declare a function that returns a value
Function StringFunction() As String
...
    Return CStr(val)
End Function
' Declare a function that takes and returns values
Function ParmFunction(a As String, b As String) As String
...
    Return CStr(A & B)
End Function
' Use the Functions
VoidFunction()
Dim s1 As String = StringFunction()
Dim s2 As String = ParmFunction("Hello", "World!")
// Declare a void return function
function voidfunction() : void {
...
}
// Declare a function that returns a value
function stringfunction() : String {
...
    return String(val);
}
// Declare a function that takes and returns values
function parmfunction(a:String, b:String) : String {
...
    return String(a + b);
}
// Use the Functions
voidfunction();
var s1:String = stringfunction();
var s2:String = parmfunction("Hello", "World!");
自定义属性

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。