第一篇:net報告
我對.NET認識
.NET 是 Microsoft XML Web services平臺。XML Web services 允許應用程序通過 Internet 進行通訊和共享數據,而不管所采用的是哪種操作系統、設備或編程語言。Microsoft.NET平臺提供創建 XML Web services 并將這些服務集成在一起之所需。對個人用戶的好處是無縫的、吸引人的體驗。
一、基本概要
.NET就是微軟的用來實現XML,Web Services,SOA(面向服務的體系結構service-oriented architecture)和敏捷性的技術。對技術人員,想真正了解什么是.NET,必須先了解.NET技術出現的原因和它想解決的問題,必須先了解為什么他們需要XML,Web Services 和 SOA。技術人員一般將微軟看成一個平臺廠商。微軟搭建技術平臺,而技術人員在這個技術平臺之上創建應用系統。從這個角度,.NET也可以如下來定義:.NET是微軟的新一代技術平臺,為敏捷商務構建互聯互通的應用系統,這些系統是基于標準的,聯通的,適應變化的,穩定的和高性能的。從技術的角度,一個.NET應用是一個運行于.NET Framework之上的應用程序。(更精確的說,一個.NET應用是一個使用.NET Framework類庫來編寫,并運行于公共語言運行時 Common Language Runtime之上的應用程序。)如果一個應用程序跟.NET Framework無關,它就不能叫做.NET程序。比如,僅僅使用了XML并不就是.NET應用,僅僅使用SOAP SDK調用一個Web Service也不是.NET應用。
二、應用組件
(一)客戶端應用
組成.net軟件技術的組件,組件之一,“智能”客戶端應用軟件和操作系統,包括PC、PA、手機或其他移動設備通過互聯網、借助Web Services技術,用戶能夠在任何時間、任何地點都可以得到需要的信息和服務。例如:可以在手機上閱讀新聞、定購機票、瀏覽在線相冊等等?,F在我們假設一種場景,如公司內使用的CRM系統,應用了.NET的解決方案后所有的業務人員便可以通過手機或PDA直接訪問客戶信息了。
(二)WebService
Web Services是智能終端軟件的基礎,微軟為用戶創建智能終端提供了一整套豐富的解決方案,包括:
.NET Framework-智能終端實現跨平臺(設備無關性)的執行環境Visual Studio.NET – 建立并集成Web Services和應用程序的快速開發工具
Microsoft Windows Server 2003 – 新一代的企業服務器,用于提供建立和發布各種解決方案
Microsoft Office Professional Edition 2003 – 內建的工具集也能幫助開發智能終端
現在.net發展最快的終端非手機莫屬了,有兩大陣營在開發SmartPhone技術,一個是微軟為代表的Stinger應用于三星,另一個就是以NOKIA、愛立信組成的Symbian。
Web Services是.NET的核心技術。那什么是Web Services呢?正如Web是新一代的用戶與應用交互的途徑,XML是新一代的程序之間通訊的途徑一樣,Web Services是新一代的計算機與計算機之間一種通用的數據傳輸格式,可讓不同運算系統更容易進行數據交換。Web Services有以下幾點特性:Web services允許應用之間共享數據;Web services分散了代碼單元;基于XML這種internet數據交換的通用語言,實現了跨平臺、跨操作系統、跨語言。那微軟的ASP和 1
Web services究竟有什么不同呢,ASP仍然是一個集中式計算模型的產物,只不過是披著一層互聯網的外衣。但Web Services卻是一個迥然不同的精靈,它秉承“軟件就是服務”的真言,同時順應分布式計算模式的潮流。而它的存在形式又與以往軟件不同。這種組件模式,小巧、單一,對于開發人員來講,開發成本較低。
Web services是一個開放的標準,和HTTP、XML、SOAP一樣。他們是一個工業標準而非微軟標準,WS-I是為了促進Web Services互通性的聯盟組織,最初是由IBM和微軟所發起,其它的成員包括BEA System、惠普計算機(HP)、甲骨文(Oracle)、英特爾(Intel)和SUN 計算機(Sun Microsystem)。如今網絡上存在的大多Web services其實沒有使用.NET構架,Web services具有互操作屬性,你同樣可以使用Windows開發客戶端來調用運行于Linux上面的Web services的方法。
(三)接口規范
先前 microsoft.net提到的接口規范問題,在.NET中,Web service接口通常使用Web Services Description Language(WSDL)描述。WSDL 使用XML來定義這種接口操作標準及輸入輸出參數,看起來很像COM和CORBA的接口定義語言(IDLS)Interface Definition Languages。接口定義后就必須使用一些協議調用接口,如SOAP協議,SOAP源于一種叫做XML RPC(XML遠程進程調用remote procedure calling)的協議,而Java則根據XML-RPC發展了自己的JAX-RPC協議用來調用Web Services。發布和訪問Web Services的接口就用到UDDI了,這里我們只需要知道WSDL使用XML定義Web Services接口,通過SOAP訪問Web Services,在internet上尋找Web Services使用UDDI就行了。服務器架構——Microsoft Windows Server System Microsoft提供了最佳的服務器構架—Microsoft Windows Server System—便于發布、配置、管理、編排Web Services。為了滿足分布式計算的需要微軟構造了一系列的服務器系統,這些內建安全技術的系統全部支持XML,這樣加速了系統、應用程序以及同樣使用Web Services的伙伴應用之間的集成。
(四)CLR 與 CIL
.NET的初級組成是CIL和CLR。CIL是一套運作環境說明,包括一般系統、基礎類庫和與機器無關的中間代碼,全稱為通用中間語言(CIL)。CLR則是確認操作密碼符合CIL的平臺。在CIL執行前,CLR必須將指令及時編譯轉換成原始機械碼。
所有CIL(通用中間語言)都可經由.NET自我表述。CLR檢查元資料以確保正確的方法被調用。元資料通常是由語言編譯器生成的,但開發人員也可以通過使用客戶屬性創建他們自己的元資料。
如果一種語言實現生成了CIL,它也可以通過使用CLR被調用,這樣它就可以與任何其他.NET語言生成的資料相交互。CLR也被設計為作業系統無關性。
當一個匯編體被載入時,CLR執行各種各樣的測試。其中的兩個測試是確認與核查。在確認的時候,CLR檢查匯編體是否包含有效的元資料和CIL,并且檢查內部表的正確性。核查則不那么精確。核查機制檢查代碼是否會執行一些“不安全”的操作。核查所使用的演算法非常保守,導致有時一些“安全”的代碼也通不過核查。不安全的代碼只有在匯編體擁有“跳過核查”許可的情況下才會被執行,通常這意味著代碼是安裝在本機上的。
三、NET之歷史腳步
asp.net2.0是一種動態網站高級編程語言,是微軟公司的最新版本,是一種
建立在公共語言運行庫上的編程框架,可用于服務器上開發強大的web應用程序。asp.net2.0不但執行效率大大提高,對代碼的控制也做的很好。并且支持web controls 功能和多種語言。以提高安全性,以管理性和高擴展性。
asp.net技術從1.0升級到1.1的變化不大,但是升級到2.0,卻發生了相當大的變化,在開發過程中,微軟公司深入市場,針對大量開發人員和軟件使用者,進行了卓有成效的研究,并為其指定了開發代號,asp.net2.0設計目標的核心,可以用一個詞來形容--簡化。因為其設計目的是將應用程序代碼數量減少百分之七十以上,改變過去那種需要編寫很多重復行代碼的狀況,盡可能做到寫很少的代碼就可以完成任務。對于軟件工程師來說,asp.net2.0是web開發史上的一個重要的里程碑!
asp.net2.0的新特性:
生產效率,使用新增的asp.net2.0服務器控件和包含新增功能的現有控件,可以輕松的創建asp.net2.0網頁和應用程序。
靈活性和可擴展性,很多asp.net2.0功能都可以擴展。這樣可以輕松的將自定義功能集成到應用程序中。
性能,使用如預編譯,可配置緩存和sql緩存失效等功能。
安全性,現在向web應用程序添加身份驗證和授權非常簡單。
完整性,新增功能和現用功能協同工作,可以創建解決實時web開發挑戰的端對端方案。
四、NET之一路走來
(一)NET3.0新特性
C# 3.0中比較簡單的四個特性,分別是隱式類型化本地變量、匿名類型、隱式類型化數組,以及對象構造者
隱式類型化本地變量
這個特性非常簡單,有些JavaScript的影子,我們可以統一使用使用“var”關鍵字來聲明局部變量,而不再需要指明變量的確切類型了,變量的確切類型可通過聲明變量時的初始值推斷出來。這樣一來,可以大大簡化我們聲明局部變量的工作量了
匿名類型
有些時候我們需要臨時保存一些運算的中間結果,特別是當這些中間結果是由多個部份組成時,我們常常會去聲明一個新的類型,以方便保存這些中間結果。表面上看起來這很正常,而細想之后就會發現,這個新類型只服務于這個函數,其它地方都不會再使用它了,就為這一個函數而去定義一個新的類型,確實有些麻煩。
現在,C#3.0中的匿名類型特性就可以很好的解決上面提到的問題,通過匿名類型,我們可以簡單使用new { 屬性名1=值1,屬性名2=值2,.....,屬性名n=值n }的形式直接在函數中創建新的類型。
在新類型中只能有字段成員,而且這些字段的類型也是通過初值的類型推斷出來的。如果在聲明新的匿名類型時,新類型的字段名、順序以及初始值的類型是一致的,那么將會產生相同的匿名類型。
隱式類型化數組
這個特性是對隱式類型化本地變量的擴展,有了這個特性,將使我們創建數組的工作變得簡單。我們可以直接使用“new[]”關鍵字來聲明數組,后面跟上數組的初始值列表。在這里,我們并沒有直接指定數組的類型,數組的類型是由初始化列表推斷出來的。
對象構造者
C#3.0中加入的對象構造者特性,使得對象的初始化工作變得格外簡單,我們可以采用類似于數組初始化的方式來初始化類的對象,方法就是直接在創建類對象的表達式后面跟上類成員的初始化代碼。
C# 3.0中的較復雜,同時也是非常強大的特性。
集合構造者
我們可以在聲明數組的同時,為其指定初始值,方法是直接在數組聲明的后面跟上初始值列表。這樣就使數組的初始化工作變得簡單,而對于我們自己創建的集合類型,就無法享受到與普通數組一樣的待遇了,我們無法在創建自定義集合對象的同時,使用數組的初始化語法為其指定初始值。
C# 3.0中加入的集合構造者特性,可使我們享受到與普通數組一樣的待遇,從而在創建集合對象的同時為其指定初始值。
Lambda表達式
C# 2.0中加入的匿名代理,簡化了我們編寫事件處理函數的工作,使我們不再需要單獨聲明一個函數來與事件綁定,只需要使用delegate關鍵字在線編寫事件處理代碼。
而C# 3.0則更進一步,通過Lambda表達式,我們可以一種更為簡潔方式編寫事件處理代碼,新的Lambda事件處理代碼看上去就像一個計算表達式,它使用“=>”符號來連接事件參數和事件處理代碼。我可以這樣寫:SomeEvent += 事件參數 => 事件處理代碼。
擴展方法
當我們需要對已有類的功能進行擴展時,我們通常會想到繼承,繼承已有類,然后為其加入新的行為。而C# 3.0中加入的擴展方法特性,則提供了另一種實現功能擴展的方式,我們可以在不使用繼承的前提下實現對已有類本身的擴展,這種方法并不會產生新的類型,而是采用向已有類中加入新方法的方式來完成功能擴展。
Linq查詢表達式
C# 3.0中加入的最為復雜的特性就是Linq查詢表達式了,這使我們可直接采用類似于SQL的語法對集合進行查詢,這就使我們可以享受到關系數據查詢的強大功能。
(二)NET3.5新特性
快速指南
VS 2008的多定向支持,VS 2008允許你構建針對多個.NET框架版本的應用。VS 2008包含一個顯著改進的HTML web設計器。該設計器提供了分割視圖編輯,嵌套母板頁,以及出色的C 集成。
A.NET還提供了一個新的控件,該控件對數據UI場景提供了非常靈活的支持,允許對輸出的標識做完全的定制,與VS 2008中的新C 支持還有良好的協作。
A.NET AJAX和JavaScript支持,.NET 3.5 內置提供A.NET AJAX,還添加了支持We art的UpdatePanel,支持JSON的WCF,以及N個缺陷修補和性能改進等方面的新特性。
語言改進和LINQ
VS 2008中的新VB和C#編譯器對這些語言做了顯著的改進。兩者都添加了函數式編程概念的支持,允許你編寫更干凈,更簡潔,更具有表達性的代碼。這些特性還促成了我們稱之為LINQ(語言級集成查詢)的新編程模型,使
得查詢和操作數據成為.NET中的一等編程概念。
LINQ to SQL中的數據訪問改進,LINQ to SQL是.NET 3.5中內置的OR/M(對象關系映射器)。它允許你使用.NET 對象模型對關系數據庫進行建模。然后你可以使用LINQ對數據庫進行查詢,以及更新、插入,刪除數據。LINQ to SQL完整支持事務,視圖和存儲過程。它還提供了一個把業務邏輯和驗證規則結合進你的數據模型的簡易方式。
其他改進
上面的列表只是所做改進的一小部分。針對客戶端開發,VS 2008 包含了WPF設計器和項目支持。ClickOnce 和WPF XBA 現在在FireFox中也工作了。WinForms和WPF項目現在也能使用A.NET 應用服務(成員,角色和用戶數據)來漫游用戶數據了。辦公開發也更加豐富了,包括對Office 2007 Ri on的集成支持。WCF和Workflow項目和設計器也包括在VS 2008中了。單元測試的速度大為提高,而且單元測試的支持現在包括在VS Profe ional版本(而不僅僅是VSTS版了)中了。連續集成支持現在也內置于TFS中了。AJAX web測試(單元和壓力)現在也由VS Test產品支持了。還有許許多多多的改進,這里無法一一提及了
(三)NET4.0新時代
無論如何,.NET 4.0已經在叩開新年的大門之時,以高調的姿態迎來一片掌聲。廣大的技術愛好者不會等待太長的時間,就能感受C#發展中的又一次變革。隨著.NET 4.0在2009年的發布,我們對于C# 4.0的關注也將與日俱增。總體而言,C# 4.0的重頭戲主要著眼在以下幾個方面:動態編程,并行計算,后期綁定,協變與逆變。
動態編程
C#是靜態強類型語言。而在很多情況下,提供“動態”行為,是常常發生的事情,例如通過反射在運行時訪問.NET類型、調用動態語言對象、訪問COM對象等,都無法以靜態類型來獲取。因此,C# 4.0引入的又一個全新的關鍵字dynamic,也同時引入了改善靜態類型與動態對象的交互能力,這就是動態查找(Dynamic Lookup)。
就像一個object可以代表任何類型,dynamic使得類型決斷在運行時進行,方法調用、屬性訪問、委托調用都可動態分派。同時,動態特性還體現在構建一個動態對象,在C# 4.0實現IDynamicObject接口的類型,可以完全定義動態操作的意義,通過將C#編譯器作為運行時組件來完成由靜態編譯器延遲的操作。
在具體執行過程中,C#的運行時綁定器基于運行時信息,通過反射獲取d的實際類型Foo,然后在Foo類型上就MyMethod方法進行方法查找和重載解析,并執行調用,這正是動態調用的背后秘密:DLR。在.NET 4.0中將引入重要的底層組件DLR(Dynamic Language Runtime,動態語言運行時),除了實現動態查找的基礎支持,DLR也同時作為基礎設施為類似于IronRuby、IronPython這樣的動態語言提供統一的互操作機制。總而言之,動態編程將為C#在以下領域產生巨大的變革:
? Office編程與其他COM交互。
? 動態語言支持,在C#中消費IronRuby動態語言類型將并非難事,體驗動態語言特性指日可待。
? 增強反射支持。
雖然從微軟當前提供的技術資料和CTP演示中,動態查找還存在或多或少的問題,但是在“動態”大行其道的今天,我們無法回避也必須擁抱這個未來的主角,因為我堅信明天會更好。
并行計算
并行計算的出現,是計算機科學發展的必然結果,隨著計算機硬件的迅猛發展,在多核處理器上工作已經是既存事實,而傳統的編程模式必須兼容新的硬件環境才能使計算機性能達到合理的應用效果。用Anders大師的話說:未來5到10年,并行計算將成為主流編程語言不可忽視的方向,而4.0為C#打響了實現并發的第一槍。
未來的.NET Framework 4.0中將集成TPL(Task Parallel Library)和PLINQ(Parallel LINQ),這也意味著未來我們可以應用C# 4.0實現并行化應用,在統一的工作調度程序下進行硬件的并行協調,這將大大提高應用程序的性能同時降低現存并發模型的復雜性。
命名參數和可選參數
命名參數和可選參數是兩個比較簡單的特性,對于熟悉其他編程語言的開發者來說可選參數并不陌生,為參數提供默認值時就是可選參數:
public void MyMethod(int x,int y = 10,int z = 100){
}
因此,我們可以通過調用MyMethod(1)、MyMethod(1,2)方式來調用MyMethod方法。而命名參數解決的是傳遞實參時,避免因為省去默認參數造成的重載問題,例如省去第二個參數y調用時,即可通過聲明參數名稱的方式來傳遞:
MyMethod(20,z: 200);
相當于調用MyMethod(20,10,200),非常類似于Attribute的調用方式。雖然只是小技巧,但也同時改善了方法重載的靈活性和適配性,體現了C#語言日趨完美的發展軌跡。
當然,除此之外.NET 4.0還增加了很多值得期待的平臺特性,也將為C#編碼帶來前所未有的新體驗。
。:
NET之未來發展
預測未來,在技術世界是常有的事兒。從高級語言的發展歷史來看,編程世界從來就沒有停止過腳步,變革時時發生、創新處處存在。以技術人員的角度來觀摩未來,帶著C# 4.0的腳步來看展望,除了在函數式編程、并行計算和動態特性上大展拳腳,Meta Programming的概念已然浮出水面,將編譯器變成一個Service,你可以自由控制在編譯器和運行期的邏輯,那是多么美好而向往的未來呀,所以,我們堅信 4.0之后還有廣闊的天地隨著語言的變遷變得更加開闊。
概括Anders大師在C#設計過程中的思想,C#是語言美學的集大成者。例如,當使用foreach進行循環遍歷之后,當應用using語句代替try/finally實現強制資源管理,當應該attribute進行運行時反射,當以LINQ進行語言級別的信息查詢,這些語言級別的支持為C#實現面向對象編程帶來強大的功能動力和美學感受。
第二篇:.net實習報告
月末總結
這一個月在XX公司的實現,我開始漸漸的熟悉了這個環境,讓我感覺到,要作為一個真正的優秀的軟件工程師,我們還有很大的差距。
首先,我感覺到困難的是,在學校,我們都比較注重的是理論知識的學習,忽視了動手能力的培養,這跟我們出來實習到來了很大的麻煩,就造成了實習生的知識技能與用人單位要求的巨大代溝,但是通過這一個月的實習,我明白了我自身的差距,也在項目經理的培訓和指導下,在自身的努力下,不斷的取得進步,我深知這種進步與實際的工作技能還有很大的差距,但是我會在之后的實習生活中不斷的學習,不斷的進步。
其次,在學校學習的面向對象的語言主要是java等,很少接觸到c#/.net這就跟實習帶來了不少麻煩,但是,我深信只要自己好好的努力,不斷向師兄們學習,一定能克服這個問題的。在學校學習的階段,對html、css+div、javascript、jquery、oracle等學習都比較粗淺,而且由于學習的時間比較久了,更是淡忘了不少,所以在實習的這個月中,就在不斷的強化這些知識。我深知要學好這些東西,不是一朝一夕的事情,我會長此以往,不斷的去學習,并掌握它們。
最后,要感謝師兄對我們的培訓,分享自己的經驗,讓我們明白了實習中要學習的重點,讓我們少走彎路。而且我知道自身的動手能力還很差,專業技能還不夠好,所以,在之后的實習過程中,我會更加努力,虛心師兄們、同事們學習,不斷取得進步。
Lixw_ok
第三篇:ASP NET上機報告
實驗一
關鍵代碼
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;
namespace WebApplication1.Webs {
public partial class WebForm1 : System.Web.UI.Page
{
protected void Reset_Button_Click(object sender, EventArgs e)
{
TextBox1.Text = “";
TextBox2.Text = ”“;
}
protected void Submit_Button_Click(object sender, EventArgs e)
{
Response.Redirect(”Index.aspx?count=“+TextBox1.Text+”&&pwd=“+TextBox2.Text);
}
} } 運行界面如下:
直接點確認結果如下:
輸入帳號,不輸入密碼結果如下:
輸入密碼不輸入帳號,運行結果如下:
實驗二
關鍵代碼
<%@ Page Language=”C#“ AutoEventWireup=”true“ CodeFile=”Default.aspx.cs“ Inherits=”anli3_Default“ %>