亚洲区中文字幕,日韩中文字幕亚洲无线码,7777久久亚洲中文字幕蜜桃http://www.bjzhda.cnzh-cn曙海教育集團(tuán)論壇http://www.bjzhda.cnRss Generator By Dvbbs.Netofficeoffice@126.comimages/logo.gif曙海教育集團(tuán)論壇用vs.net2003開(kāi)發(fā),然后發(fā)布在使用.netframework1.0的服務(wù)器上出現(xiàn)的問(wèn)題http://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=78&ID=2649&Page=1wangxinxin2010-12-15 11:33:06問(wèn):
我用vs.net2003測(cè)試一個(gè)小程序,能正常運(yùn)行。但把它發(fā)布到安裝framework1.0的服務(wù)器上,出現(xiàn)如下錯(cuò)誤:
代碼如下:
========================================
    private void Page_Load(object sender, System.EventArgs e)
    {
        try
        {
 string s = this.Request.Params["Folder"]; //如果刪除這句,1.0的服務(wù)器上運(yùn)行就會(huì)正常。
        }
        catch{}
    }

上面那句導(dǎo)致的錯(cuò)誤catch無(wú)法捕獲。運(yùn)行時(shí)候?yàn)g覽器中顯示如下錯(cuò)誤:
=================================
File or assembly name System, or one of its dependencies, was not found.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.IO.FileNotFoundException: File or assembly name System, or one of its dependencies, was not found.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. 

Assembly Load Trace: The following information can be helpful to determine why the assembly 'System' could not be loaded.


=== Pre-bind state information ===
LOG: DisplayName = System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
 (Fully-specified)
LOG: Appbase = file:///E:/wwwroot/aspxuser/hahahawk.17163.com
LOG: Initial PrivatePath = bin
Calling assembly : Wrox.WebModules.FileManager.Web, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null.
===

LOG: Publisher policy file is not found.
LOG: No redirect found in host configuration file (C:\WINNT\Microsoft.NET\Framework\v1.0.3705\aspnet.config).
LOG: Using machine configuration file from C:\WINNT\Microsoft.NET\Framework\v1.0.3705\config\machine.config.
LOG: Post-policy reference: System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
LOG: Attempting download of new URL file:///C:/WINNT/Microsoft.NET/Framework/v1.0.3705/Temporary ASP.NET Files/root/646c7f18/82ce05e1/System.DLL.
LOG: Attempting download of new URL file:///C:/WINNT/Microsoft.NET/Framework/v1.0.3705/Temporary ASP.NET Files/root/646c7f18/82ce05e1/System/System.DLL.
LOG: Attempting download of new URL file:///E:/wwwroot/aspxuser/hahahawk.17163.com/bin/System.DLL.
LOG: Attempting download of new URL file:///E:/wwwroot/aspxuser/hahahawk.17163.com/bin/System/System.DLL.
LOG: Attempting download of new URL file:///C:/WINNT/Microsoft.NET/Framework/v1.0.3705/Temporary ASP.NET Files/root/646c7f18/82ce05e1/System.EXE.
LOG: Attempting download of new URL file:///C:/WINNT/Microsoft.NET/Framework/v1.0.3705/Temporary ASP.NET Files/root/646c7f18/82ce05e1/System/System.EXE.
LOG: Attempting download of new URL file:///E:/wwwroot/aspxuser/hahahawk.17163.com/bin/System.EXE.
LOG: Attempting download of new URL file:///E:/wwwroot/aspxuser/hahahawk.17163.com/bin/System/System.EXE.

 

Stack Trace:

]]>
使用 .NET Frameworkhttp://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=78&ID=2648&Page=1wangxinxin2010-12-15 11:29:42
  C:\(base Windows directory)\Microsoft.NET\Framework\(framework version)

  在我的計(jì)算機(jī)上,由于安裝的操作系統(tǒng)是 Windows 2000,所以 .NET Framework 1.1 版本安裝在 winnt 目錄下,所以其路徑是:

  C:\winnt\Microsoft.NET\Framework\v1.1.4322

  這個(gè)目錄包含無(wú)數(shù)的 dll,配置文件和可執(zhí)行文件,等等。在這篇文章中,我將把重點(diǎn)放在可執(zhí)行文件上。下面是這些程序的一個(gè)綱要:

  Al.exe:程序集鏈接器(Assembly Linker),該工具從一個(gè)或多個(gè)模塊或者資源文件生成一個(gè)帶有一個(gè)程序集清單的文件。模塊是一個(gè)沒(méi)有程序集清單的微軟中間語(yǔ)言文件(MSIL)。所有的 Visual Studio 編譯器都生成程序集。然而,如果你有一個(gè)或多個(gè)模塊(沒(méi)有清單的元數(shù)據(jù)),你可以利用 Al.exe 工具使用一個(gè)獨(dú)立文件中的清單創(chuàng)建一個(gè)程序集。

  Aspnet_regiis.exe:這個(gè)工具允許你在 IIS 上安裝 ASP.NET。此外,它還可以簡(jiǎn)化同時(shí)運(yùn)行的多個(gè) ASP.NET 版本的使用。它允許你為 ASP.NET 應(yīng)用程序更新腳本映射以指向與該工具關(guān)聯(lián)的ASP.NET ISAPI 版本。這個(gè)工具還可以用來(lái)顯示所有安裝的ASP.NET 版本的狀態(tài),注冊(cè) ASP.NET 版本以及工具,創(chuàng)建客戶(hù)端腳本目錄,完成其它配置操作。

  Aspnet_state.exe:這個(gè)工具允許會(huì)話(huà)狀態(tài)信息存儲(chǔ)在一臺(tái)計(jì)算機(jī)上。它以一個(gè)服?裨誦校綣嶧白刺畔⒋媧⒃諞惶ㄔ?xún)鎏紦溷机上,该工具也可覉@滄暗僥翹ㄔ?xún)鎏紦溷机上?

  Caspol.exe:代碼訪(fǎng)問(wèn)安全策略(Code Access Security Policy)工具,該工具能夠讓用戶(hù)和管理員在機(jī)器策略級(jí)、用戶(hù)策略級(jí)和企業(yè)策略級(jí)修改安全策略。你可以使用Caspol.exe 編寫(xiě)一個(gè)批處理腳本來(lái)配置安全策略。

  ConfigWizards.exe:這個(gè)工具啟動(dòng) .NET 向?qū)Т翱冢╓indows Control Panel | Administrative Tools | Microsoft .NET Framework Wizards 1.1)。它提供對(duì)以下三個(gè)工具的訪(fǎng)問(wèn):Adjust .NET Security、Trust An Assembly 和Fix An Application。

  csc.exe:Visual C# 編譯器。/debug 開(kāi)關(guān)進(jìn)入調(diào)試模式。

  cvtres.exe:資源對(duì)象轉(zhuǎn)換器(資源轉(zhuǎn)換成對(duì)象)。這個(gè)工具通常用來(lái)將一個(gè)二進(jìn)制資源文件轉(zhuǎn)成一個(gè)對(duì)象文件。本地資源通常以 .rc 文件開(kāi)始,然后被 rc.exe 編譯成一個(gè) .res 文件,然后再由 cvtres.exe 工具轉(zhuǎn)成一個(gè) .obj 文件,最后像其它 .obj 文件一樣被鏈接到你的本地應(yīng)用程序中。

  dw15.exe:這個(gè)工具給出在使用 .NET Framework 時(shí)你想看到的錯(cuò)誤消息。錯(cuò)誤消息詢(xún)問(wèn)你是否想發(fā)送一個(gè)錯(cuò)誤報(bào)告給微軟。(很多用戶(hù)控告這個(gè)小程序是微軟的間諜軟件。)

  Gacutil.exe:全局程序集緩存(Global Assembly Cache)工具,該工具用于管理程序集緩存。它可以用來(lái)查看全局緩存的內(nèi)容,添加或刪除程序集。要想使用該工具列出全局程序集緩存(GAC)的所有程序集,可以使用/l 開(kāi)關(guān)。(/i 開(kāi)關(guān)安裝程序集,/u 開(kāi)關(guān)刪除程序集。)

  IEExec.exe:這個(gè)工具簡(jiǎn)化使用 URL 啟動(dòng)的應(yīng)用程序的測(cè)試,包括無(wú)觸點(diǎn)開(kāi)發(fā) Windows Form 之類(lèi)的應(yīng)用程序。工具 IEExec.exe 可以代替 IDE 調(diào)試這些應(yīng)用程序。它只接受 URL 參數(shù)(例如,IEExec.exe http://Server/TheApplication.Exe。);它不允許指定區(qū)域設(shè)置和站點(diǎn)設(shè)置。如果你試圖指定區(qū)域設(shè)置和站點(diǎn)設(shè)置,就會(huì)出現(xiàn)錯(cuò)誤。

  Ilasm.exe:MSIL匯編程序(Assembler),該工具從 MSIL 程序集生成一個(gè)可移植的可執(zhí)行文件(PE)。你可以運(yùn)行生成的可執(zhí)行文件以確定 MSIL 是否生成了你要的東西。

  Installutil.exe:安裝程序(Installer)工具,該工具允許你在一個(gè)指定的程序集中執(zhí)行安裝程序組件來(lái)安裝和卸載服務(wù)器資源。這個(gè)工具與System.Configuration.Install 命名空間中的類(lèi)聯(lián)合工作。例如,在安裝一個(gè) Windows 服務(wù)時(shí)這個(gè)工具會(huì)被用到。

  jsc.exe:一個(gè) _JSciprt .NET 編譯器。/debug 開(kāi)關(guān)進(jìn)入調(diào)試模式。

  Migpol.ex:遷移策略(Migration Policy)工具,該工具提供在兩個(gè)可兼容的 .NET Framework 版本之間遷移策略的能力。

  Ngen.exe:原生圖像生成器(Native Image Generator),該工具從一個(gè)托管程序集創(chuàng)建一個(gè)原生圖像,并將其安裝到位于本地計(jì)算機(jī)的原生圖像緩存上。原生圖像緩存是 GAC 的保留區(qū)域。一旦你為一個(gè)程序集創(chuàng)建了一個(gè)原生圖像,之后程序集每次運(yùn)行時(shí)運(yùn)行庫(kù)(runtime)就會(huì)自動(dòng)使用那個(gè)原生圖像。

  Regasm.exe:程序集注冊(cè)(Assembly Registration)工具,該工具讀取一個(gè)程序集中的元數(shù)據(jù),將必要的條目添加到注冊(cè)表中;這樣就允許 COM 客戶(hù)端透明地創(chuàng)建 .NET Framework 類(lèi)。在 .NET Framework 類(lèi)被注冊(cè)之后,任何 COM 客戶(hù)端就可以使用它,就好像它是一個(gè) COM 類(lèi)一樣。.NET Framework 類(lèi)只會(huì)被注冊(cè)一次,就是在程序集被安裝時(shí)注冊(cè)。在程序集中的 .NET Framework 類(lèi)被注冊(cè)之前,它們的實(shí)例不能從 COM 創(chuàng)建。

  Regsvcs.exe:這個(gè)服務(wù)安裝工具可以用來(lái)裝載和注冊(cè)程序集,注冊(cè)和安裝類(lèi)型庫(kù),或者配置添加到一個(gè)類(lèi)的服務(wù)。Regsvcs.exe 需要一個(gè)由assemblyFile.dll 指定的源程序集文件。這個(gè)程序集必須使用強(qiáng)名簽名。.NET Framework SDK 中提供了強(qiáng)名工具(Sn.exe)。

  vbc.exe:Visual Basic .NET 編譯器。/debug 開(kāi)關(guān)進(jìn)入調(diào)試模式。

  vbj.exe:Visual J# .NET 編譯器。/debug 開(kāi)關(guān)進(jìn)入調(diào)試模式。

  這些工具能夠進(jìn)行全部的 .NET 開(kāi)發(fā)。多數(shù)這些工具都支持命令行開(kāi)關(guān)(也就是命令行后接一個(gè)斜線(xiàn))。這些開(kāi)關(guān)允許你指定設(shè)置選擇或者使用工具的其它方面(像編譯器的 /debug 選項(xiàng))。你可以在命令后面輸入 /? 或者 /help 獲得工具命令行開(kāi)關(guān)選項(xiàng)的完整列表。這樣就提供給你使用工具的完整的語(yǔ)法信息。

  我通常喜歡使用友好的 Visual Studio .NET 環(huán)境,但是在造訪(fǎng)一位客戶(hù)之后,我現(xiàn)在開(kāi)始欣賞命令行選項(xiàng)了。我到了他們那里安裝了更改了的代碼,但是我還必須現(xiàn)在場(chǎng)做一些額外的更改。這些更改就需要重新編譯代碼,但是我的機(jī)器沒(méi)有安裝Visual Studio .NET。幸運(yùn)的是,我能夠使用命令行工具完成這些工作。

  選擇界面

  很多開(kāi)發(fā)人員喜歡 Visual Studio .NET 和其它開(kāi)發(fā)工具的圖形環(huán)境,但是另外一個(gè)派別的開(kāi)發(fā)人員則非常喜歡由命令行環(huán)境提供的控制權(quán)。讓人感到欣慰的是,微軟提供了這兩種開(kāi)發(fā)應(yīng)用程序的方法,具體選用哪種方法就看你的喜好了。 ]]>
ASP控制虛擬主機(jī)函數(shù)ADSIhttp://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=78&ID=2647&Page=1wangxinxin2010-12-15 11:27:17 使用ASP設(shè)置指定站點(diǎn)CPU最大使用程度
'=================================================
'函數(shù)介紹:設(shè)置指定站點(diǎn)CPU最大使用程度
'本函數(shù)使用ADSI,需要Administrators組用戶(hù)權(quán)限
'函數(shù)名稱(chēng):SetCPULimitVar (Computer,SiteNum,LimitVar)
'用法:SetCPULimitVar 計(jì)算機(jī)名,站點(diǎn)編號(hào),最大限制值(100=1%,1000=10%)
'例:SetCPULimitVar "LocalHost","2","2000"
'=================================================
Function SetCPULimitVar(Computer,SiteNum,LimitVar)
Set MyObj001 = GetObject("IIS://"&Computer&"/W3SVC/"&SiteNum)
'設(shè)置啟用CPU限制
MyObj001.CpuLimitsEnabled = True
'設(shè)置限制使用額度值
MyObj001.CpuLimitLogEvent=LimitVar
MyObj001.setinfo
Set MyObj001=Nothing
End Function

使用ASP在IIS創(chuàng)建WEB站點(diǎn)的函數(shù)
'=============================================================
'函數(shù)介紹:創(chuàng)建WebSite
'本函數(shù)使用ADSI,需要Administrators組用戶(hù)權(quán)限
'函數(shù)名稱(chēng):CreateWebSite(Computer,IPAddr,PortNum,HostName,WebSiteDirectory,LogDirectory,WebSiteInfo,GuestUserName,GuestUserPass,StartOrStop)
'用法:CreateWebSite 計(jì)算機(jī)名(一搬為L(zhǎng)ocalHost或127.0.0.1),站點(diǎn)IP地址,端口號(hào),主機(jī)名,站點(diǎn)根目錄,,LOG文件的目錄站點(diǎn)說(shuō)明,網(wǎng)站訪(fǎng)問(wèn)時(shí)所使用的帳號(hào),網(wǎng)站訪(fǎng)問(wèn)時(shí)所用帳號(hào)的口令,是否啟動(dòng)站點(diǎn)
'例:CreateWebSite "LocalHost","127.0.0.123","80","http://www.test.net","E:/UserData/UserNum001","E:/UserData/UserNum001/LogFiles","wwwtest.net","IUSR_Num001_test.net","abc888",True' target=_blank>www.test.net","E:\UserData\UserNum001","E:\UserData\UserNum001\LogFiles","wwwtest.net","IUSR_Num001_test.net","abc888",True
'=============================================================
Function CreateWebSite(Computer,IPAddr,PortNum,HostName,WebSiteDirectory,LogDirectory,WebSiteInfo,GuestUserName,GuestUserPass,StartOrStop)
Dim w3svc, WebServer, NewWebServer, NewDir
Dim Bindings, BindingString, NewBindings, SiteNum, SiteObj, bDone
On Error Resume Next
Err.Clear
'檢測(cè)是否能夠加載W3SVC服務(wù)(即WEB服務(wù))
Set w3svc = GetObject("IIS://" & Computer & "/w3svc")
If Err.Number <> 0 Then '顯示錯(cuò)誤提示
  response.write "無(wú)法打開(kāi): "&"IIS://" & Computer & "/w3svc"
  response.end
End If
'檢測(cè)是否有設(shè)定相同IP地址、端口及主機(jī)名的站點(diǎn)存在
BindingString = IPAddr & ":" & PortNum & ":" & HostName
For Each WebServer in w3svc
  If WebServer.Class = "IIsWebServer" Then
  Bindings = WebServer.ServerBindings
   If BindingString = Bindings(0) Then
    response.write "IP地址沖突:" & IPAddr & ",請(qǐng)檢測(cè)IP地址!."
    Exit Function
   End If
  End If
Next


'確定一個(gè)不存在的站點(diǎn)編號(hào)做為新建站點(diǎn)編號(hào),系統(tǒng)默認(rèn)WebSite站點(diǎn)編號(hào)為1,因此從2開(kāi)始
SiteNum=2
bDone = False
While (Not bDone)
Err.Clear
Set SiteObj = GetObject("IIS://"&Computer&"/w3svc/"&SiteNum) '加載指定站點(diǎn)
If (Err.Number = 0) Then
  'response.write " Step_1站點(diǎn)"&SiteNum&"存在"
  SiteNum = SiteNum + 1
Else
  'response.write " Step_1站點(diǎn)"&SiteNum&"不存在"
  Err.Clear
  Set NewWebServer = w3svc.Create("IIsWebServer",SiteNum) '創(chuàng)建指定站點(diǎn)
  If (Err.Number <> 0) Then
   'response.write " Step_2站點(diǎn)"&SiteNum&"創(chuàng)建失敗"
   SiteNum = SiteNum + 1
  Else
   'response.write " Step_2站點(diǎn)"&SiteNum&"創(chuàng)建成功"
   bDone = True
  End If
End If
If (SiteNum > 50) Then '服務(wù)器最大創(chuàng)建站點(diǎn)數(shù)
  response.write "超出服務(wù)器最大創(chuàng)建站點(diǎn)數(shù),正在創(chuàng)建的站點(diǎn)的序號(hào)為: "&SiteNum&"."
  response.end
End If
Wend


'進(jìn)行站點(diǎn)基本配置
NewBindings = Array(0)
NewBindings(0) = BindingString
NewWebServer.ServerBindings = NewBindings
NewWebServer.ServerComment= WebSiteInfo
NewWebServer.AnonymousUserName= GuestUserName
NewWebServer.AnonymousUserPass= GuestUserPass
NewWebServer.KeyType = "IIsWebServer"
NewWebServer.FrontPageWeb = True
NewWebServer.EnableDefaultDoc = True
NewWebServer.DefaultDoc = "Default.htm, Default.asp, Index.htm, Index.asp"
NewWebServer.LogFileDirectory= LogDirectory
NewWebServer.SetInfo
Set NewDir = NewWebServer.Create("IIsWebVirtualDir", "ROOT")
NewDir.Path = WebSiteDirectory
NewDir.AccessRead = true
NewDir.AppFriendlyName = "應(yīng)用程序" & WebSiteInfo
NewDir.AppCreate True
NewDir.AccessScript = True
Err.Clear
NewDir.SetInfo
If (Err.Number <> 0) Then
  response.write "主目錄創(chuàng)建時(shí)出錯(cuò)."
  response.end
End If
If StartOrStop = True Then
  Err.Clear
  Set NewWebServer = GetObject("IIS://" & Computer & "/w3svc/" & SiteNum)
  NewWebServer.Start
  If Err.Number <> 0 Then
   response.write "啟動(dòng)站點(diǎn)時(shí)出錯(cuò)!"
   response.end
   Err.Clear
  End If
End If
response.write "站點(diǎn)創(chuàng)建成功,站點(diǎn)編號(hào)為:"& SiteNum &" ,域名為:"& HostName
End Function

]]>
.Net Framework Client Profile 和 .Net Frameworkhttp://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=78&ID=2646&Page=1wangxinxin2010-12-15 11:23:49參看:http://msdn.microsoft.com/zh-cn/library/cc656912.aspx

在VS2010 中,你默認(rèn)建立的 WPF 程序就是.Net Framework 4 Client Profile ,而不是.Net Framework 4。昨天下午到今天早上,我在為 System.Web 無(wú)法引用而苦惱的問(wèn)題,就是它導(dǎo)致的。 

VS2010中,我們?cè)陧?xiàng)目的屬性下,可以看到項(xiàng)目有以下多種 Target framework 屬性。

圖片點(diǎn)擊可在新窗口打開(kāi)查看

我今天碰到的 Sytem.Web 引用問(wèn)題如下:

在用 VS2010 Beta2 書(shū)寫(xiě)一個(gè)WPF應(yīng)用的時(shí)候,要使用 System.Web.HttpUtility.UrlEncode()方法時(shí),發(fā)現(xiàn)竟然無(wú)法增加對(duì) System.Web 的引用。如下圖:

.NET Reference 中沒(méi)有 System.Web 組件。

圖片點(diǎn)擊可在新窗口打開(kāi)查看 

使用 Browse 方式打開(kāi)指定目錄的文件 C:\Windows\Microsoft.NET\Framework\v4.0.21006\System.Web.dll  也不行。

如下圖:

圖片點(diǎn)擊可在新窗口打開(kāi)查看 

GAC 中也沒(méi)有 4.0 版本的 System.Web 組件,如下圖:

圖片點(diǎn)擊可在新窗口打開(kāi)查看

強(qiáng)制添加 C:\Windows\Microsoft.NET\Framework\v4.0.21006\System.Web.dll   到GAC 時(shí)會(huì)報(bào)錯(cuò)誤:

 

---------------------------
Cannot Add Assembly
---------------------------
Unable to add the selected assembly. The assembly must have a strong name (name, version and
public key).
---------------------------
確定
---------------------------

 

 

這個(gè)文件的信息如下:

圖片點(diǎn)擊可在新窗口打開(kāi)查看

但是VS2010 Beta2 建立的 Web 項(xiàng)目,默認(rèn)就有 System.Web 的引用,這里沒(méi)有任何問(wèn)題,如下圖:

圖片點(diǎn)擊可在新窗口打開(kāi)查看

查看這時(shí)候的 System.Web 屬性,如下:

圖片點(diǎn)擊可在新窗口打開(kāi)查看

把 C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Web.dll 放入 GAC也會(huì)報(bào)錯(cuò)誤:

 

---------------------------
Cannot Add Assembly
---------------------------
Unable to add the selected assembly. The assembly must have a strong name (name, version and
public key).
---------------------------
確定
---------------------------
]]>
Microsoft.NET PetShop4架構(gòu)與技術(shù)分析http://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=78&ID=2645&Page=1wangxinxin2010-12-15 11:21:461.項(xiàng)目概述與架構(gòu)分析
微軟剛推出了基于A(yíng)SP.NET 2.0下的Pet Shop 4, 該版本有了一個(gè)全新的用戶(hù)界面。是研究ASP.NET 2.0的好范例啊,大家都知道,一直以來(lái),在.NET和Java之間爭(zhēng)論不休,到底使用哪個(gè)平臺(tái)開(kāi)發(fā)的企業(yè)級(jí)應(yīng)用性能最好、結(jié)構(gòu)最優(yōu)、生產(chǎn)力最高。為了用事實(shí)說(shuō)話(huà),通過(guò)對(duì)項(xiàng)目各方面的性能評(píng)估進(jìn)而在比較.NET和Java的高下。用戶(hù)做比較的這個(gè)項(xiàng)目就是Petshop。正因?yàn)镻etshop肩負(fù)著上面所說(shuō)的重任,各方面必須是最優(yōu)的,架構(gòu)設(shè)計(jì)應(yīng)該是經(jīng)過(guò)慎重考慮的。所以其一經(jīng)推出,便成為了開(kāi)發(fā)者、架構(gòu)師等人學(xué)習(xí)、研究的典范。

日前微軟推出了基于.NET Framework 2.0開(kāi)發(fā)的Petshop 4。新的Petshop4實(shí)現(xiàn)了與Petshop 3相同甚至更多的特性,由于采用了Master Pages,Membership,以及Profile,SqlCacheDependency,但是代碼量卻減少了四分之一。同時(shí),在事務(wù)、數(shù)據(jù)緩存、安全方面使用了.NET 2.0附帶的特性,構(gòu)建了一個(gè)靈活的最佳實(shí)踐的應(yīng)用程序。


他們利用了Project Conversion Wizard把項(xiàng)目從ASP.NET 1.1移植到了ASP.NET 2.0,然后做了以下改動(dòng):

1.用System.Transactions代替了原來(lái)的Serviced Components提供的事務(wù)功能

代碼實(shí)現(xiàn):PetShop.BLL.OrderSynchronous 的 public void Insert(PetShop.Model.OrderInfo order)。

2.用強(qiáng)類(lèi)型的范型集合代替了原來(lái)的弱類(lèi)型集合

        public IList<ProductInfo> GetProductsByCategory(string category)

        {

            // Return new if the string is empty

            if (string.IsNullOrEmpty(category))

                return new List<ProductInfo>();

 

            // Run a search against the data store

            return dal.GetProductsByCategory(category);

        }

3.采用ASP.NET 2.0 Membership來(lái)做認(rèn)證和授權(quán)

4.創(chuàng)建了針對(duì)Oracle 10g的Custom  ASP.NET 2.0 Membership Provider

5.利用ASP.NET 2.0的Custom Oracle 和 SQL Server Profile Providers 做用戶(hù)狀態(tài)管理,包括購(gòu)物車(chē)等

6.采用了Master Pages,取代了原來(lái)的用戶(hù)控件,來(lái)實(shí)現(xiàn)統(tǒng)一的界面效果

7.使用了ASP.NET 2.0 Wizard控件實(shí)現(xiàn)check-out

8.使用了SqlCacheDependency來(lái)實(shí)現(xiàn)數(shù)據(jù)庫(kù)層次的緩存更新(cache invalidation)功能

9.使用了消息隊(duì)列來(lái)實(shí)現(xiàn)異時(shí)訂單處理。

 

2.整體架構(gòu):


數(shù)據(jù)庫(kù):(暫略)

項(xiàng)目列表:從整體可以看出,Pet Shop 4的項(xiàng)目體系已經(jīng)很龐大,考慮的方面也較3.0更全面復(fù)雜。


序號(hào)

項(xiàng)目名稱(chēng)

描述

1

BLL

業(yè)務(wù)邏輯層

2

CacheDependencyFactory

緩存依賴(lài)類(lèi)的工廠(chǎng)類(lèi)

3

WEB

表示層

4

DALFactory

數(shù)據(jù)層的抽象工廠(chǎng)

5

DBUtility

數(shù)據(jù)訪(fǎng)問(wèn)類(lèi)組件

6

IBLLStrategy

同步/異步策略接口

7

ICacheDependency

緩存依賴(lài)類(lèi)接口

8

IDAL

數(shù)據(jù)訪(fǎng)問(wèn)層接口定義

9

IMessaging

異時(shí)處理消息隊(duì)列接口定義

10

IProfileDAL

Profile的數(shù)據(jù)訪(fǎng)問(wèn)層接口定義

11

Membership

Membership認(rèn)證和授權(quán)管理

12

MessagingFactory

異時(shí)處理消息隊(duì)列的抽象工廠(chǎng)

13

Model

業(yè)務(wù)實(shí)體

14

MSMQMessaging

異時(shí)處理消息隊(duì)列的實(shí)現(xiàn)

15

OracleDAL

Oracle數(shù)據(jù)訪(fǎng)問(wèn)層

16

OracleProfileDAL

Oracle的Profile Providers

做用戶(hù)狀態(tài)管理,包括購(gòu)物車(chē)等

17

OrderProcessor

后臺(tái)處理進(jìn)程,處理訂單隊(duì)列

18

Profile

Profile的數(shù)據(jù)訪(fǎng)問(wèn)層

19

ProfileDALFactory

ProfileDAL的工廠(chǎng)類(lèi)(反射創(chuàng)建ProfileDAL)

20

SQLProfileDAL

SQL Server 的Profile Providers

做用戶(hù)狀態(tài)管理,包括購(gòu)物車(chē)等

21

SQLServerDAL

SQLServer數(shù)據(jù)訪(fǎng)問(wèn)層

22

TableCacheDependency

緩存依賴(lài)實(shí)現(xiàn)類(lèi)


項(xiàng)目分解

由于整體已經(jīng)有22個(gè)項(xiàng)目,所以,對(duì)于初學(xué)者一看就暈了,所以,我做了分解,可以大體上分幾塊去理解。

序號(hào)

項(xiàng)目名稱(chēng)

描述

1

WEB

表示層

2

Model

業(yè)務(wù)實(shí)體

3

BLL

業(yè)務(wù)邏輯層

4

DALFactory

數(shù)據(jù)層的抽象工廠(chǎng)

5

IDAL

數(shù)據(jù)訪(fǎng)問(wèn)層接口定義

6

SQLServerDAL

SQLServer數(shù)據(jù)訪(fǎng)問(wèn)層

7

OracleDAL

Oracle數(shù)據(jù)訪(fǎng)問(wèn)層

8

DBUtility

數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)組件基礎(chǔ)類(lèi)

9

CacheDependencyFactory

緩存依賴(lài)類(lèi)的工廠(chǎng)類(lèi)

10

ICacheDependency

緩存依賴(lài)類(lèi)接口

11

TableCacheDependency

緩存依賴(lài)實(shí)現(xiàn)類(lèi)

12

IBLLStrategy

同步/異步處理策略接口(實(shí)現(xiàn)在bll根據(jù)配置反射選擇)

13

MessagingFactory

異時(shí)處理消息隊(duì)列的抽象工廠(chǎng)

14

IMessaging

異時(shí)處理消息隊(duì)列接口定義

15

MSMQMessaging

異時(shí)處理消息隊(duì)列的實(shí)現(xiàn)

16

Profile

Profile的數(shù)據(jù)訪(fǎng)問(wèn)層

17

ProfileDALFactory

ProfileDAL的工廠(chǎng)類(lèi)(反射創(chuàng)建ProfileDAL)

18

IProfileDAL

Profile的數(shù)據(jù)訪(fǎng)問(wèn)層接口定義

19

OracleProfileDAL

Oracle的Profile Providers

做用戶(hù)狀態(tài)管理

20

SQLProfileDAL

SQL Server 的Profile Providers

做用戶(hù)狀態(tài)管理

21

Membership

Membership認(rèn)證和授權(quán)管理

22

OrderProcessor

后臺(tái)處理進(jìn)程,處理訂單隊(duì)列

 



3.Petshop 4中的設(shè)計(jì)模式

工廠(chǎng)模式:

首當(dāng)其沖的就是工廠(chǎng)模式,很容易就可以看出來(lái),也是應(yīng)用最多的。

DALFactory:數(shù)據(jù)訪(fǎng)問(wèn)層的抽象工廠(chǎng)(決定創(chuàng)建哪種數(shù)據(jù)庫(kù)類(lèi)型的數(shù)據(jù)訪(fǎng)問(wèn)層。可以選擇:SQLServer,Oracle)

CacheDependencyFactory:緩存依賴(lài)類(lèi)的工廠(chǎng)類(lèi)。(創(chuàng)建具體表的緩存依賴(lài))

MessagingFactory :異時(shí)處理消息隊(duì)列的抽象工廠(chǎng)(反射創(chuàng)建具體的異時(shí)處理類(lèi))

ProfileDALFactory:ProfileDAL的工廠(chǎng)類(lèi)(反射選擇創(chuàng)建Oracle 和SQL Server的 ProfileDAL)

]]>
基于.NET Framework的Web管理系統(tǒng)研究與開(kāi)發(fā)(C#)http://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=78&ID=2644&Page=1wangxinxin2010-12-15 11:14:49  關(guān)鍵詞:C#;控件;數(shù)據(jù)獲取;數(shù)據(jù)綁定

  中圖分類(lèi)號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2010)17-4660-04

  Based on .Net Framework's Research and Development about Web Management System (C#)

  CHEN Zhao-yun, DONG Hai-yan, ZHOU Yong-fu

  (Heyuan Vocational Technical College of Electronics and Information Engineering, Heyuan 517000, China)

  Abstract: This composition introduces Users Manager System of Web in details from the system’s environment to the system’s framework and development’s technology.It can helps many programmers to solve the problems about C# programming、using components about .NET framwork、data Acquisition、databinding and so on.

  Key words: C#; components; data Acquisition; databinding

  Microsoft.NET Framework是微軟于2000年推出的用于構(gòu)建新一代Internet集成服務(wù)平臺(tái)的最新框架,這種集成服務(wù)平臺(tái)允許各種系統(tǒng)環(huán)境下的應(yīng)用程序通過(guò)互聯(lián)網(wǎng)進(jìn)行通信和共享數(shù)據(jù)。

]]>
Microsoft .NET vs. J2EE:http://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=78&ID=2643&Page=1wangxinxin2010-12-15 11:13:20What exactly is the .NET platform [and] how does the .NET architecture measure up against J2EE?

Java runs on any platform with a Java VM. C# only runs in Windows for the foreseeable future.

.NET and J2EE offer pretty much the same laundry list of features, albeit in different ways.

By allowing cross-language component interactions, .NET is enfranchising Perl, Eiffel, Cobol, and other programmers.

.NET is a good thing for those of you committed to Microsoft architectures.

.NET will undoubtedly become the default development environment for Microsoft platforms.

However, several of the goals of the .NET platform are fairly lofty and not at all guaranteed to fly, at least not in the short term.

It would be easy to dismiss .NET as more Microsoft marketing-ware and continue on your merry way. But don't.

[Microsoft is] fighting Java and open source initiatives on their own terms, putting their own spin on "open" and attempting to directly address the needs of developers.

If you consider yourself an evangelist for Java or open source platforms, then the nature of the war is changing. Be prepared.

Microsoft has put a stake in the ground with SOAP, and they're pushing hard to put something understandable and useful in the hands of developers. J2EE proponents need to do the same with their platform.

Even if you don't write code dedicated to Microsoft platforms, you have probably heard by now about Microsoft .NET, Microsoft's latest volley in their campaign against all things non-Windows. If you've read the media spin from Microsoft, or browsed through the scant technical material available on the MSDN site, or even if you attended the Microsoft Professional Developers' Conference (where the .NET platform was officially "launched"), you're probably still left with at least two big questions:

  • What exactly is the .NET platform?
  • How does the .NET architecture measure up against J2EE?

And, if you think more long-term, you might have a third question rattling around your head:

  • What can we learn from the .NET architecture about pushing the envelope of enterprise software development?

The .NET framework is at a very early stage in its lifecycle, and deep details are still being eked out by the Microsoft .NET team. But we can, nevertheless, get fairly decent answers to these questions from the information that's already out there.

What is it?

Current ruminations about .NET in various forums are reminiscent of the fable of the three blind men attempting to identify an elephant: It's perceived as very different things, depending on your perspective. Some see .NET as Microsoft's next-generation Visual Studio development environment. Some see it as yet another new programming language (C#). Some see it as a new data-exchange and messaging framework, based on XML and SOAP. In reality, .NET wants to be all of these things, and a bit more.

First, let's get some concrete details. Here's one cut at an itemized list of the technical components making up the .NET platform:

  • C#, a "new" language for writing classes and components, that integrates elements of C, C++, and Java, and adds additional features, like metadata tags, related to component development.

  • A "common language runtime", which runs bytecodes in an Internal Language (IL) format. Code and objects written in one language can, ostensibly, be compiled into the IL runtime, once an IL compiler is developed for the language.

  • A set of base components, accessible from the common language runtime, that provide various functions (networking, containers, etc.).

  • ASP+, a new version of ASP that supports compilation of ASPs into the common language runtime (and therefore writing ASP scripts using any language with an IL binding).

  • Win Forms and Web Forms, new UI component frameworks accessible from Visual Studio.

  • ADO+, a new generation of ADO data access components that use XML and SOAP for data interchange.

How do .NET and J2EE compare?

As you can see, the .NET platform has an array of technologies under its umbrella. Microsoft is ostensibly presenting these as alternatives to other existing platforms, like J2EE and CORBA, in order to attract developers to the Windows platform. But how do the comparisons play out item-by-item? One way to lay out the alternatives between .NET and J2EE is shown in the following table:

Microsoft.NET J2EE Key differentiators
C# programming language Java programming language C# and Java both derive from C and C++. Most significant features (e.g., garbage collection, hierarchical namespaces) are present in both. C# borrows some of the component concepts from JavaBeans (properties/attributes, events, etc.), adds some of its own (like metadata tags), but incorporates these features into the syntax differently.

Java runs on any platform with a Java VM. C# only runs in Windows for the foreseeable future.

C# is implicitly tied into the IL common language runtime (see below), and is run as just-in-time (JIT) compiled bytecodes or compiled entirely into native code. Java code runs as Java Virtual Machine (VT) bytecodes that are either interpreted in the VM or JIT compiled, or can be compiled entirely into native code.

.NET common components (aka the ".NET Framework SDK") Java core API High-level .NET components will include support for distributed access using XML and SOAP (see ADO+ below).
Active Server Pages+ (ASP+) Java ServerPages (JSP) ASP+ will use Visual Basic, C#, and possibly other languages for code snippets. All get compiled into native code through the common language runtime (as opposed to being interpreted each time, like ASPs). JSPs use Java code (snippets, or JavaBean references), compiled into Java bytecodes (either on-demand or batch-compiled, depending on the JSP implementation).
IL Common Language Runtime Java Virtual Machine and CORBA IDL and ORB .NET common language runtime allows code in multiple languages to use a shared set of components, on Windows. Underlies nearly all of .NET framework (common components, ASP+, etc.).

Java's Virtual Machine spec allows Java bytecodes to run on any platform with a compliant JVM.

CORBA allows code in multiple languages to use a shared set of objects, on any platform with an ORB available. Not nearly as tightly integrated into J2EE framework.

Win Forms and Web Forms Java Swing Similar web components (e.g., based on JSP) not available in Java standard platform, some proprietary components available through Java IDEs, etc.

Win Forms and Web Forms RAD development supported through the MS Visual Studio IDE - no other IDE support announced at this writing. Swing support available in many Java IDEs and tools.

ADO+ and SOAP-based Web Services JDBC, EJB, JMS and Java XML Libraries (XML4J, JAXP) ADO+ is built on the premise of XML data interchange (between remote data objects and layers of multi-tier apps) on top of HTTP (AKA, SOAP). .NET's web services in general assume SOAP messaging models. EJB, JDBC, etc. leave the data interchange protocol at the developer's discretion, and operate on top of either HTTP, RMI/JRMP or IIOP.

The comparisons in this table only scratch the surface. Here's an executive summary of .NET vs. J2EE:

Features: .NET and J2EE offer pretty much the same laundry of list of features, albeit in different ways.

Portability: The .NET core works on Windows only but theoretically supports development in many languages (once sub-/supersets of these languages have been defined and IL compilers have been created for them). Also, Net's SOAP capabilities will allow components on other platforms to exchange data messages with .NET components. While a few of the elements in .NET, such as SOAP and its discovery and lookup protocols, are provided as public specifications, the core components of the framework (IL runtime environment, ASP+ internals, Win Forms and Web Forms component "contracts", etc.) are kept by Microsoft, and Microsoft will be the only provider of complete .NET development and runtime environments. There has already been some pressure by the development community for Microsoft to open up these specifications, but this would be counter to Microsoft's standard practices.

J2EE, on the other hand, works on any platform with a compliant Java VM and a compliant set of required platform services (EJB container, JMS service, etc., etc.). All of the specifications that define the J2EE platform are published and reviewed publicly, and numerous vendors offer compliant products and development environments. But J2EE is a single-language platform. Calls from/to objects in other languages are possible through CORBA, but CORBA support is not a ubiquitous part of the platform.

The Bigger Picture

These last points highlight some of the key differentiators between .NET and J2EE, and point towards Microsoft's real play here. Microsoft is doing two very notable things with .NET: It is opening up a channel to developers in other programming languages, and it is opening up a channel to non-.NET components by integrating XML and SOAP into their messaging scheme.

By allowing cross-language component interactions, .NET is enfranchising Perl, Eiffel, Cobol, and other programmers by allowing them to play in the Microsoft sandbox. Devotees of these languages are particularly amenable to gestures like this, since for the most part they have felt somewhat disenfranchised and marginalized in the Microsoft/Sun/Open Source wars. And by using XML and SOAP in their component messaging layer, Microsoft is bolstering their diplomatic face and adding an element of openness to their platform, providing ammunition against claims of proprietary behavior.

What's the correct response?

For Microsoft developers:

.NET is a good thing for those of you committed to Microsoft architectures. ASP+ is better than ASP, ADO+ is better, but different, than ADO and DCOM, C# is better than C and C++. The initial version of .NET won't be real until sometime in 2001, so you have some time to prepare, but this will undoubtedly become the default development environment for Microsoft platforms. And if you're developing within the Microsoft development framework now, you will undoubtedly benefit from adopting elements of the .NET framework into your architectures.

However, several of the goals of the .NET platform are fairly lofty and not at all guaranteed to fly, at least not in the short term. The IL common language runtime, for example, has some fairly significant hurdles to overcome before it has any real payoff for developers. Each language that wants to integrate with the component runtime has to define a subset/superset of the language that maps cleanly into and out of the IL runtime, and has to define constructs that provide the component metadata that IL requires. Then compilers (x-to-IL and IL-to-x) will have to be developed to both compile language structures (objects, components, etc.) into IL component bytecodes, and also generate language-specific interfaces to

]]>
VS2005離線(xiàn)調(diào)試.Net Framework2.0http://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=78&ID=2642&Page=1wangxinxin2010-12-15 11:12:11VS2008的發(fā)布,迫于開(kāi)源的壓力和幫助推廣VS2008這兩方面的原因,微軟允許VS2008在debugging時(shí),可以查看并調(diào)試Net Framework的一些源代碼,前提是您的電腦必須是聯(lián)網(wǎng)狀態(tài),而是只支持VS2008,卻不支持已被廣泛使用的VS2005,這兩天看了一些牛人(國(guó)外的)的文章,發(fā)現(xiàn)國(guó)外的人就是牛,有兩個(gè)家伙就開(kāi)發(fā)了一個(gè)小工具(http://www.codeplex.com/NetMassDownloader),可以把.NET Framework的源碼給下載下來(lái)。同時(shí)支持在VS2005上進(jìn)行離線(xiàn)調(diào)試。園子里早有朋友已經(jīng)寫(xiě)過(guò)類(lèi)似的文章,我就不多說(shuō)了,我今天在這里主要把安裝的步驟給寫(xiě)下來(lái),希望對(duì)需要的朋友有所幫助。

  第一步:下載.NET Mass Downloader.

  第二步:下載.NET Framework3.5的安裝文件,這是完整的可再發(fā)行組件包。有190多MB,下載完成后,安裝它。

  第三步:找到文件下載的目錄。例如,我把文件放在的C盤(pán)的跟目錄,文件的解壓后的目錄為C:\NetMassDownloader,然后我們運(yùn)行cmd.exe,指向我剛才解壓的目錄:

  

圖片點(diǎn)擊可在新窗口打開(kāi)查看

  第四步:對(duì)NetMassDownloader的參數(shù)進(jìn)行設(shè)置,我是這樣設(shè)置的。

  

圖片點(diǎn)擊可在新窗口打開(kāi)查看

  這條命令我解釋一下:

  (1)-d C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727是我們安裝.net2.0時(shí),.net類(lèi)庫(kù)存放的文件夾。

  (2)-output E:\NETFramework2.0是我們存放下載的.Net Framework的源代碼的文件夾。這個(gè)目錄你可以自定義,不一定非要和我寫(xiě)的一樣。

  (3)-vsver 8.0表示我們要下載的源代碼的版本是.net2.0

  netmassdownloader.exe還有其他一些參數(shù)可以設(shè)置,大家輸入netmassdownloader.exe /?就可以查看。在此就不羅嗦了。

  參數(shù)配置好后,我們?cè)试S它,我們不要關(guān)閉它,.net framework的源代碼大概有120多MB,我們耐心等待就行了,在運(yùn)行的時(shí)候,可能會(huì)出現(xiàn)一些文件找不到的信息,我們不要管它。

  第五步:源代碼下載完成后,我們開(kāi)始配置VS2005。

  (1)按照我的截圖配置:

  

圖片點(diǎn)擊可在新窗口打開(kāi)查看

  

圖片點(diǎn)擊可在新窗口打開(kāi)查看

  將啟用“僅我的代碼”(僅限托管)和要求源文件與原版本完全匹配的選項(xiàng)給去掉。

  第六步:配置你的解決方案,以后如果你創(chuàng)建了新的解決方案,第六步也是少不了的。

  

圖片點(diǎn)擊可在新窗口打開(kāi)查看

  在“包含源代碼的目錄”中設(shè)定E:\NETFramework2.0,就是我們下載的.net framework2.0的源代碼的目錄。

]]>
Microsoft.NET 的真面目http://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=78&ID=2641&Page=1wangxinxin2010-12-15 11:06:36
  2000年11月,微軟在Comdex計(jì)算機(jī)大展上發(fā)布了Visual Studio.NET軟件,并展示了其.NET發(fā)展戰(zhàn)略的框架體系和開(kāi)發(fā)工具的相關(guān)特性,全面加速了微軟以.NET技術(shù)進(jìn)軍市場(chǎng)的步伐。

  隨著.NET步伐的一步步加快,作為中國(guó)IT界的一分子,我們無(wú)論從那一種角度出發(fā),都需要仔細(xì)地審視一下.NET本身的內(nèi)容及其背后的潛臺(tái)詞。

  .NET真面目
  .NET的發(fā)生發(fā)展離不開(kāi)IT業(yè)界數(shù)年來(lái)圍繞著Internet的種種發(fā)展、起落和沉浮。微軟在這一領(lǐng)域中曾經(jīng)落后過(guò),它一直在奮起直追,激烈的業(yè)界競(jìng)爭(zhēng)和不斷的官司纏身使其必須提出一個(gè)嶄新的戰(zhàn)略和概念來(lái)重新樹(shù)立自己在軟件業(yè)界的信心和地位,這就是.NET。

圖片點(diǎn)擊可在新窗口打開(kāi)查看

  在.NET體系結(jié)構(gòu)中,XML是各應(yīng)用之間無(wú)縫接合的關(guān)鍵

  對(duì)于.NET到底是什么這個(gè)問(wèn)題,有著各種各樣的說(shuō)法。但當(dāng)時(shí)作為首席執(zhí)行官的鮑爾默應(yīng)該最能代表微軟公司的觀(guān)點(diǎn),他說(shuō):“Microsoft.NET 代表了一個(gè)集合、一個(gè)環(huán)境、一個(gè)可以作為平臺(tái)支持下一代Internet的可編程結(jié)構(gòu)。”確實(shí),這句話(huà)基本上簡(jiǎn)單扼要地表述了.NET的外特性。

  .NET首先是一個(gè)環(huán)境。這是一個(gè)理想化的未來(lái)互聯(lián)網(wǎng)環(huán)境,微軟的構(gòu)想是一個(gè)“不再關(guān)注單個(gè)網(wǎng)站、單個(gè)設(shè)備與因特網(wǎng)相連的互聯(lián)網(wǎng)環(huán)境,而是要讓所有的計(jì)算機(jī)群、相關(guān)設(shè)備和服務(wù)商協(xié)同工作”的網(wǎng)絡(luò)計(jì)算環(huán)境。簡(jiǎn)而言之,互聯(lián)網(wǎng)提供的服務(wù),要能夠完成更高程度的自動(dòng)化處理。未來(lái)的互聯(lián)網(wǎng),應(yīng)該以一個(gè)整體服務(wù)的形式展現(xiàn)在最終用戶(hù)面前,用戶(hù)只需要知道自己想要什么,而不需要一步步地在網(wǎng)上搜索、操作來(lái)達(dá)到自己的目的。這是一種理想,但的的確確是互聯(lián)網(wǎng)的發(fā)展趨勢(shì)所在。

  .NET謀求的是一種理想的互聯(lián)網(wǎng)環(huán)境。而要搭建這樣一種互聯(lián)網(wǎng)環(huán)境,首先需要解決的問(wèn)題是針對(duì)現(xiàn)有因特網(wǎng)的缺陷,來(lái)設(shè)計(jì)和創(chuàng)造一種下一代Internet結(jié)構(gòu)。這種結(jié)構(gòu)不是物理網(wǎng)絡(luò)層次上的拓?fù)浣Y(jié)構(gòu),而是面向軟件和應(yīng)用層次的一種有別于瀏覽器只能靜態(tài)瀏覽的可編程Internet軟件結(jié)構(gòu)。因此.NET把自己定位為可以作為平臺(tái)支持下一代Internet的可編程結(jié)構(gòu)。

  .NET的最終目的就是讓用戶(hù)在任何地方、任何時(shí)間,以及利用任何設(shè)備都能訪(fǎng)問(wèn)他們所需要的信息、文件和程序。而用戶(hù)不需要知道這些東西存在什么地方,甚至連如何獲得等具體細(xì)節(jié)都不知道。他們只需發(fā)出請(qǐng)求,然后只管接收就是了,而所有后臺(tái)的復(fù)雜性是完全屏蔽起來(lái)的。所以對(duì)于企業(yè)的IT人員來(lái)說(shuō),他們也不需要管理復(fù)雜的平臺(tái)以及各種分布應(yīng)用之間的工作是如何協(xié)調(diào)的。

圖片點(diǎn)擊可在新窗口打開(kāi)查看
  .NET Framework包括通用語(yǔ)言運(yùn)行環(huán)境、Framework類(lèi)庫(kù)和Active Server Pages+

  有了理想目標(biāo)和相應(yīng)可編程Internet軟件結(jié)構(gòu),.NET這樣的一個(gè)協(xié)同計(jì)算環(huán)境的具體實(shí)現(xiàn)還必然需要一系列的軟件產(chǎn)品支撐,因此微軟的.NET還包括一個(gè)產(chǎn)品的集合。這個(gè)集合包含以下組成部分:

  .NET平臺(tái)

  這一平臺(tái)建立在XML和因特網(wǎng)標(biāo)準(zhǔn)協(xié)議的基礎(chǔ)上,包含了.NET的基礎(chǔ)結(jié)構(gòu)和基礎(chǔ)工具,為開(kāi)發(fā)新型的互動(dòng)協(xié)作軟件提供了一個(gè)先進(jìn)的體系結(jié)構(gòu)模型。

  .NET系列產(chǎn)品和服務(wù)

  如MSN.NET、OFFICE.NET、Visual Studio.NET、bCentral.NET等。

  第三方廠(chǎng)商的.NET服務(wù)建立在.NET平臺(tái)和產(chǎn)品上的面向不同應(yīng)用領(lǐng)域的具體服務(wù)。

  從上面對(duì).NET的簡(jiǎn)單分析可以看出,在對(duì)新技術(shù)和IT產(chǎn)業(yè)的推動(dòng)上,無(wú)論如何,微軟還是功不可沒(méi)的。但與此同時(shí),也可以推測(cè)出,如果.NET一旦成為事實(shí),那么對(duì)于其他非應(yīng)用軟件廠(chǎng)商而言,可能會(huì)產(chǎn)生巨大的競(jìng)爭(zhēng)壓力。

  .NET的技術(shù)特征
  .NET包括4個(gè)重要特點(diǎn),一是軟件變服務(wù),二是基于XML的共同語(yǔ)言,三是融合多種設(shè)備和平臺(tái),四是新一代的人機(jī)界面。這四個(gè)特點(diǎn)基本上覆蓋了.NET的技術(shù)特征。

  軟件變服務(wù)

  史蒂夫·鮑爾默在談到軟件服務(wù)時(shí)說(shuō)道,“今天的軟件產(chǎn)品僅僅是一張光盤(pán),用戶(hù)購(gòu)買(mǎi)軟件,親自安裝、管理和維護(hù)。但是軟件服務(wù)是來(lái)自因特網(wǎng)的服務(wù),它替用戶(hù)安裝、更新和跟蹤這些軟件,并讓它們和用戶(hù)一同在不同的機(jī)器間漫游。它為用戶(hù)存儲(chǔ)自己的信息和參考資料。這些就是軟件和軟件服務(wù)各自不同的風(fēng)格。”

圖片點(diǎn)擊可在新窗口打開(kāi)查看
  Orchestration可視化編程工具產(chǎn)生基于XML的XLANG代碼,它和BizTalk服務(wù)器、.NET Framework,以及Visual Studio.NET都曾是Windows DNA 2000戰(zhàn)略的重要部分。

  伴隨著ASP產(chǎn)業(yè)的興起,軟件正逐漸從產(chǎn)品形式向服務(wù)形式轉(zhuǎn)化,這是整個(gè)IT行業(yè)的大勢(shì)所趨。在.NET中,最終的軟件應(yīng)用是以Web服務(wù)的形式出現(xiàn)并在Internet發(fā)布的。Web服務(wù)是一種包裝后的可以在Web上發(fā)布的組件,.NET通過(guò)WSDL協(xié)議來(lái)描述和發(fā)布這種Web服務(wù)信息,通過(guò)DISCO協(xié)議來(lái)查找相關(guān)的服務(wù),通過(guò)SOAP協(xié)議進(jìn)行相關(guān)的簡(jiǎn)單對(duì)象傳遞和調(diào)用。

  微軟的.NET戰(zhàn)略意味著:微軟公司以及在微軟平臺(tái)上的開(kāi)發(fā)者將會(huì)制造服務(wù),而不是制造軟件。在未來(lái)幾年之內(nèi),微軟將陸續(xù)發(fā)布有關(guān).NET的平臺(tái)和工具,用于在因特網(wǎng)上開(kāi)發(fā)Web服務(wù)。那時(shí),工作在.NET上的用戶(hù)、開(kāi)發(fā)人員和IT工作人員都不再購(gòu)買(mǎi)軟件、安裝軟件和維護(hù)軟件。取而代之的是,他們將定制服務(wù),軟件會(huì)自動(dòng)安裝,所有的維護(hù)和升級(jí)也會(huì)通過(guò)互聯(lián)網(wǎng)進(jìn)行。

  基于XML的共同語(yǔ)言

  XML是從SGML語(yǔ)言演化而來(lái)的一種標(biāo)記語(yǔ)言。作為元語(yǔ)言,它可以定義不同種類(lèi)應(yīng)用的數(shù)據(jù)交換語(yǔ)言。在.NET體系結(jié)構(gòu)中,XML作為一種應(yīng)用間無(wú)縫接合的手段,用于多種應(yīng)用之間的數(shù)據(jù)采集與合并,用于不同應(yīng)用之間的互操作和協(xié)同工作。具體而言,.NET通過(guò)XML語(yǔ)言定義了簡(jiǎn)單對(duì)象訪(fǎng)問(wèn)協(xié)議(SOAP)、Web服務(wù)描述語(yǔ)言(WSDL)、Web服務(wù)發(fā)現(xiàn)協(xié)議(DISCO)。SOAP協(xié)議提供了在無(wú)中心分布環(huán)境中使用XML交換結(jié)構(gòu)化有類(lèi)型數(shù)據(jù)的簡(jiǎn)單輕量的機(jī)制。WSDL協(xié)議定義了服務(wù)描述文檔的結(jié)構(gòu),如類(lèi)型、消息、端口類(lèi)型、端口和服務(wù)本身。DISCO協(xié)議定義了如何從資源或者資源集合中提取服務(wù)描述文檔、相關(guān)服務(wù)發(fā)現(xiàn)算法等。

  融合多種設(shè)備和平臺(tái)

  隨著Internet逐漸成為一個(gè)信息和數(shù)據(jù)的中心,各種設(shè)備和服務(wù)已經(jīng)或正在接入和融入Internet,成為其中的一部分。.NET謀求與各種Internet接入設(shè)備和平臺(tái)的一體化,主要關(guān)注在無(wú)線(xiàn)設(shè)備和家庭網(wǎng)絡(luò)設(shè)備及相關(guān)軟件、平臺(tái)方面。

  新一代的人機(jī)界面

  新一代人機(jī)界面主要體現(xiàn)在“智能與互動(dòng)”兩個(gè)方面。.NET包括通過(guò)自然語(yǔ)音、視覺(jué)、手寫(xiě)等多種模式的輸入和表現(xiàn)方法;基于XML的可編輯復(fù)合信息架構(gòu)——通用畫(huà)布;個(gè)性化的信息代理服務(wù);使機(jī)器能夠更好地進(jìn)行自動(dòng)處理的智能標(biāo)記等技術(shù)。

  .NET的平臺(tái)及框架是基于微軟軟件工業(yè)基礎(chǔ)的又一次升級(jí)和演化。然而,.NET還是要盡力保證Windows系統(tǒng)及系列產(chǎn)品和.NET能夠融為一體,盡量在微軟公司原有的軟件資產(chǎn)基礎(chǔ)上,使.NET繼續(xù)成為Internet的中心。

  .NET有多少創(chuàng)新
  .NET主要組成部分及其作用介紹如下:

  1) Windows.NET
  Windows.NET是融入.NET技術(shù)的Windows,它將緊密地整合了.NET的一系列核心構(gòu)造模塊,為數(shù)字媒體及應(yīng)用間協(xié)同工作提供支持,是微軟公司的下一代Windows桌面平臺(tái)。

  2) .NET Framework
  .NET Framework的目的是便于開(kāi)發(fā)商更容易地建立網(wǎng)絡(luò)應(yīng)用程序和Web服務(wù),它的關(guān)鍵特色是提供了一個(gè)多語(yǔ)言組件開(kāi)發(fā)和執(zhí)行的環(huán)境。從層次結(jié)構(gòu)來(lái)看,.NET Framework又包括三個(gè)主要組成部分:通用語(yǔ)言運(yùn)行環(huán)境(Common Language Runtime)、服務(wù)框架(Services Framework)、上層的兩類(lèi)應(yīng)用模板——面向Web的網(wǎng)絡(luò)應(yīng)用程序模板(Web Forms或Web Services)和Windows應(yīng)用程序模板(Win Forms)。

  其中通用語(yǔ)言運(yùn)行環(huán)境在組件運(yùn)行時(shí),負(fù)責(zé)管理內(nèi)存分配、啟動(dòng)和中止線(xiàn)程和進(jìn)程、強(qiáng)化安全系數(shù),同時(shí)還調(diào)整任何該組件涉及到的其他組件的附件配置。

  在通用語(yǔ)言運(yùn)行環(huán)境上是服務(wù)框架,它為開(kāi)發(fā)人員提供了一套能夠被任何現(xiàn)代編程語(yǔ)言調(diào)用的、統(tǒng)一的面向?qū)ο蟆惒健哟谓Y(jié)構(gòu)的可擴(kuò)展類(lèi)庫(kù),包括集合、輸入/輸出、字符串、圖畫(huà)、網(wǎng)絡(luò)、線(xiàn)程、全球化、安全加密、數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)、調(diào)試相關(guān)服務(wù)等類(lèi)庫(kù)。在服務(wù)框架之上是兩種應(yīng)用類(lèi)型的模板,一類(lèi)是傳統(tǒng)的Windows應(yīng)用程序模板,另一類(lèi)是基于A(yíng)SP+的Web網(wǎng)絡(luò)應(yīng)用程序模板。其中ASP+以一組控件和體系結(jié)構(gòu)的方式提供了一個(gè)Web應(yīng)用模型,由.NET框架提供的類(lèi)庫(kù)構(gòu)建而成,通過(guò)它可以簡(jiǎn)化Web應(yīng)用的實(shí)現(xiàn)過(guò)程。

  3) .NET企業(yè)服務(wù)器
  在微軟宣稱(chēng)的“第三代互聯(lián)網(wǎng)”中,.NET企業(yè)服務(wù)器是企業(yè)集成和管理所有基于Web的各種應(yīng)用的基礎(chǔ),它提供企業(yè)未來(lái)開(kāi)展電子商務(wù)的高可靠性、高性能、高可伸縮性以及高可管理性。.NET企業(yè)服務(wù)器的構(gòu)成異常龐大而復(fù)雜,它共包括8個(gè)各司其職的服務(wù)器,如表所示。
]]>
DLL "C:\WINNTG\Microsoft.NET\Framework\v2.0.50727\aspnet_perf.dll" 中服務(wù) "ASP.NET" 的打開(kāi)過(guò)程出現(xiàn)故障。 該服務(wù)的性能數(shù)據(jù)將不可使用。返回的狀態(tài)碼 是數(shù)據(jù) DWORD 0。http://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=78&ID=2640&Page=1wangxinxin2010-12-15 11:04:06DLL "C:\WINNTG\Microsoft.NET\Framework\v2.0.50727\aspnet_perf.dll" 中服務(wù) "ASP.NET" 的打開(kāi)過(guò)程出現(xiàn)故障。 該服務(wù)的性能數(shù)據(jù)將不可使用。返回的狀態(tài)碼 是數(shù)據(jù) DWORD 0。

服務(wù)器.netframework asp.net2.0每三分鐘報(bào)錯(cuò)|perflib1008。服務(wù)器上每三分鐘都會(huì)報(bào)錯(cuò):source Perflib ID:1008,請(qǐng)問(wèn)這個(gè)要如何解決呢?

事件類(lèi)型: 錯(cuò)誤
事件來(lái)源: Perflib
事件種類(lèi): 無(wú)
事件 ID: 1008
日期:  2007-9-26
事件:  13:46:46
用戶(hù):  N/A
計(jì)算機(jī): REPORTSRV
描述:DLL "C:\WINNT\Microsoft.NET\Framework\v2.0.50727\aspnet_perf.dll" 中服務(wù)
"ASP.NET_2.0.50727" 的打開(kāi)過(guò)程出現(xiàn)故障。 該服務(wù)的性能數(shù)據(jù)將不可使用。返回的狀態(tài)碼 是數(shù)據(jù) DWORD 0。
數(shù)據(jù):0000: 05 40 00 80               .@.?


解決辦法:
回答:根據(jù)您的描述,我對(duì)這個(gè)問(wèn)題的理解是:Windows 2000 Server ,在日志中每隔3分鐘記錄Perflib 1008 的錯(cuò)誤事件。如果我的理解有誤,請(qǐng)告訴我。

這是由于沒(méi)有正確安裝aspnet的性能計(jì)數(shù)器的dll文件導(dǎo)致,建議您嘗試以下方法修復(fù):
1. 在命令行,輸入以下命令卸載mscoree.dll和aspnet_isapi.dll的注冊(cè)信息。
regsvr32 /u %windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll
regsvr32 /u %windir%\System32\mscoree.dll
完成后重啟系統(tǒng)。

2. 如果卸載出錯(cuò),在命令行,定位到C:\WINNT\Microsoft.NET\Framework\v2.0.50727目錄,運(yùn)行以下命令:
aspnet_regiis.exe –ua 卸載ASP.NET
aspnet_regiis.exe –I 重新安裝 

完成后,重啟系統(tǒng),查看是否還有問(wèn)題。建議您從添加刪除程序刪除所有.net framework,然后重啟系統(tǒng),重新安裝,看是否還有問(wèn)題。我意思是重新安裝.net framework,這個(gè)計(jì)數(shù)器是由Framework 提供的,重新安裝該組件,則可以重新創(chuàng)建計(jì)數(shù)器。

另外,這是ASP.NET的性能計(jì)數(shù)器無(wú)法使用,但不影響ASP.NET的使用,如果不使用性能計(jì)數(shù)器,您也可以禁用該計(jì)數(shù)器,更改以下注冊(cè)表鍵值:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ASP.NET_2.0.50727\Performance
"Disable Performance Counters"=dword:00000001

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ASP.NET\Performance
"Disable Performance Counters"=dword:00000001

]]>
Microsoft.Net綜述http://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=78&ID=2639&Page=1wangxinxin2010-12-15 10:53:16緒論

  未來(lái)是網(wǎng)絡(luò)為中心的世界。面對(duì)這個(gè)已經(jīng)或即將來(lái)臨的世界,每個(gè)IT巨人都在思考。發(fā)布于2000年秋天的Microsoft.NET,表明微軟將以網(wǎng)絡(luò)為中心,徹底轉(zhuǎn)換產(chǎn)品研發(fā)、發(fā)布的方式,改變產(chǎn)品和服務(wù)的范圍。

  Microsoft.NET是一項(xiàng)革命性的技術(shù)框架。.NET的核心技術(shù)包括分布式計(jì)算、XML、組件技術(shù)、即時(shí)編譯技術(shù)等。分布式計(jì)算是網(wǎng)絡(luò)的本質(zhì):XML奠定了新一代電子數(shù)據(jù)交換的標(biāo)準(zhǔn),正是數(shù)據(jù)交換使網(wǎng)絡(luò)計(jì)算成為可能;組件技術(shù)是軟件技術(shù)多年來(lái)的發(fā)展成果,它使程序設(shè)計(jì)員從大量的API中解放出來(lái),以采用面向?qū)ο蠛兔嫦蚪M件的技術(shù)來(lái)解決軟件問(wèn)題;即時(shí)編譯技術(shù)使應(yīng)用程序在運(yùn)行時(shí),還能夠根據(jù)主機(jī)的硬件和軟件環(huán)境進(jìn)行代碼優(yōu)化,并簡(jiǎn)化代碼發(fā)放的過(guò)程。

  自從.NET發(fā)布以來(lái),一直就是媒體的追逐目標(biāo),大量程序員參與到.NET的測(cè)試和研究中,出現(xiàn)了很多.NET的技術(shù)論壇和技術(shù)站點(diǎn)。微軟掌門(mén)人比爾.蓋茨更是到中國(guó)、印度等國(guó)演講宣傳.NET,鼓動(dòng)程序員使用.NET。據(jù)報(bào)道很多商業(yè)網(wǎng)站已經(jīng)決定在.NET構(gòu)架下建立英特網(wǎng)服務(wù)平臺(tái),如全球最大的拍賣(mài)站點(diǎn)ebay.com。

  微軟新一代軟件開(kāi)發(fā)平臺(tái),稱(chēng)為Visual Studio.NET,它是微軟.NET戰(zhàn)略產(chǎn)品的重要部分。Visual Studio.NET集成了VB.NET、C#、ASP.NET的開(kāi)發(fā)環(huán)境,而微軟第一次統(tǒng)一了VB和VC的底層對(duì)象,使VB.NET和C#能夠在同一個(gè)運(yùn)行苦的基礎(chǔ)上訪(fǎng)問(wèn)相同的組件的屬性和方法。這就是編寫(xiě)C#和編寫(xiě)VB.NET程序同樣的簡(jiǎn)單和高效,在這以前,大多數(shù)人認(rèn)為,VC++程序員就是比VB程序員更高級(jí)些。在.NET時(shí)代,這種差別將不復(fù)存在。

  MicroSoft .NET平臺(tái)包括用于創(chuàng)建和操作新一代服務(wù)的.NET基礎(chǔ)結(jié)構(gòu)和工具;可以啟用大量客戶(hù)機(jī)的.NET User Experience;用于建立新一代高度分布式的數(shù)以百萬(wàn)計(jì)的.NET積木式組件服務(wù);以及用于啟用新一代智能互聯(lián)網(wǎng)設(shè)備的.NET設(shè)備軟件。

  MicroSoft .NET產(chǎn)品和服務(wù)-包括Windows.NET,連同建立積木式服務(wù)的核心集成套件;MSNTM .NET;個(gè)人訂購(gòu)服務(wù);Office.NET;Visual Studio .NET;以及用于.NET的bCentralTM。

]]>
microsoft.NET framework2.0和microsoftNET framework2.3.0都在怎么回事asp.net 工作流http://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=78&ID=2638&Page=1wangxinxin2010-12-15 10:47:48不懂的題目:在添加刪除程序里有microsoft.NET framework2.0和microsoftNET framework2.3.0兩個(gè)


最好答案:ADO.NET2.0的十大新特性
本文簡(jiǎn)要先容了.net framework 2.0里的ado.net2.0的最新特性。在以下敘述中將附帶一些簡(jiǎn)略的例子來(lái)討論這些特性的細(xì)節(jié)。

【相干文章:Java的中文編程與配置心…】

【擴(kuò)大閱讀:蔡學(xué)鏞:編譯、反編譯、…】

以下便是ado.net新增的特性: 【擴(kuò)大信息:Web服務(wù)器和應(yīng)用程序服務(wù)…】

1. 批量復(fù)制操作(bulk copy operation)

將數(shù)值從一個(gè)數(shù)值源批量復(fù)制到另一個(gè)數(shù)值源是ado.net 2.0的一個(gè)新特性。批量復(fù)制類(lèi)提供了最快的要領(lǐng)把數(shù)值從一個(gè)數(shù)值源遷徙到另一個(gè)數(shù)值源。每個(gè)ado.net的數(shù)值提供者城市提供相應(yīng)的批量復(fù)制類(lèi)。例如,在sql.net數(shù)值提供者里,批量復(fù)制操作是由一個(gè)叫sqlbulkcopy的類(lèi)來(lái)完成的,它可以讀取一個(gè)dataset, datatable, datareader或xml 對(duì)象。

2.批量更新(batch update)

要是數(shù)值庫(kù)服務(wù)器支持批量更新特性,batch update代替了幾個(gè)短周期提交請(qǐng)求的方式,從而大大改善在一個(gè)短周期內(nèi)向服務(wù)器產(chǎn)生多個(gè)批量更新時(shí)的性能。updatebatchsize屬asp.net 工作流性提供在一批更新里要更新行數(shù)。這個(gè)屬性值能被限制到小數(shù)位。

<!-- Easy AdSense V2.92 --><!-- Post[count: 2] -->
<!-- Easy AdSense V2.92 -->

3.數(shù)值分頁(yè)

現(xiàn)在command對(duì)象具有一個(gè)新的執(zhí)行要領(lǐng)叫做executepagereader。這個(gè)要領(lǐng)有三個(gè)參數(shù)——commandbehavior, startindex, 與 pagesize。要是你意料得到數(shù)值行數(shù)是101-200,你可以通過(guò)挪用這個(gè)要領(lǐng)設(shè)置startindex為101與pagesize為100而輕易完成這個(gè)功能。

4.數(shù)值毗連(connection)明細(xì)

現(xiàn)在你可以通過(guò)設(shè)置毗連的statisticsenabled屬性為真來(lái)獲取一個(gè)毗連更多的信息。connection對(duì)象提供了兩個(gè)新要領(lǐng)——retrievestatistics 與 resetstatistics。retrievestatistics要領(lǐng)歸回一個(gè)hashtable對(duì)象來(lái)填充毗連信息,如:數(shù)值轉(zhuǎn)移,用戶(hù)明細(xì),游標(biāo)明細(xì),緩存信息與事務(wù)處理。

5.dataset.remoringformat屬性

當(dāng)dataset.remoringformat設(shè)置為二進(jìn)制時(shí), dataset的序列化格式由二進(jìn)制格式代替了原本的xml標(biāo)記格式,這種改變能顯著改善序列化與還原序列化操作的性能。

.NET Framework 3.0 中增加了不少新功能,例如 Windows Workflow Foundation (WF)、Windows Communication Foundation (WCF)、Windows Presentation Foundation (WPF) 和 Windows CardSpace,.NET Framework 3.5 在這些新增功能的基礎(chǔ)上增量構(gòu)建而成。這個(gè)之外,.NET Framework 3.5 還包羅若干技術(shù)領(lǐng)域中的大量新功能,它們以新程序集的形式添加,以制止重大更改。這asp.net 工作流些新功能包孕:

與語(yǔ)言集成查詢(xún) (LINQ) 和數(shù)值感知緊密集成。借助這個(gè)新功能,您可以使用相同的語(yǔ)法,在任何支持 LINQ 的語(yǔ)言中編著相干代碼,以篩選和枚舉多種類(lèi)型的 SQL 數(shù)值、調(diào)集、XML 和數(shù)值集,以及創(chuàng)建它們的投影。
利用 ASP.NET AJAX 可以創(chuàng)建更有效、更具交互性、高度個(gè)性化的 Web 體驗(yàn),這些體驗(yàn)在所有最流行的瀏覽器上都能實(shí)現(xiàn)。
用于生成 WCF 服務(wù)的全新 Web 協(xié)議支持,包孕 AJAX、JSON、REST、POX、RSS、ATOM 和若干新的 WS-* 標(biāo)準(zhǔn)。
Visual Studio 2008 中面向 WF、WCF 和 WPF 的完整工具支持,其中包孕支持工作流的服務(wù)這一新技術(shù)。
.NET Framework 3.5 基類(lèi)庫(kù) (BCL) 中的新類(lèi)可滿(mǎn)足許多常見(jiàn)的客戶(hù)請(qǐng)求。

重要事項(xiàng):
要是安裝有 .NET Framework 3.5 的早期預(yù)發(fā)行版本,則運(yùn)行此安裝之前,必須使用“添加/刪除程序”卸載那一些預(yù)發(fā)行版本。


]]>
NET Framework 3.5 SP1正式版http://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=78&ID=2637&Page=1wangxinxin2010-12-15 10:46:35微軟今天發(fā)布了.NET Framework 3.5第一個(gè)SP服務(wù)包的最終版。這是一個(gè)累積更新,包含很多基于.NET Framework 2.0、3.0和3.5不斷生成的新功能,此外還包括.NET Framework 2.0 SP2和.NET Framework 3.0 SP2累積更新,支持x86、x64、IA64三種架構(gòu)。

.NET Framework 3.5 SP1集成了此前發(fā)布的三十個(gè)相關(guān)Hotfix熱修復(fù)補(bǔ)丁,同時(shí)還引入了不少新特性和改進(jìn):

1、ASP.NET動(dòng)態(tài)數(shù)據(jù),它提供了豐富的框架,從而使用戶(hù)可以快速進(jìn)行數(shù)據(jù)驅(qū)動(dòng)的開(kāi)發(fā),而無(wú)需編寫(xiě)代碼;ASP.NET AJA 的一項(xiàng)新增功能,對(duì)管理瀏覽器歷史記錄提供了支持(支持后退按鈕)。有關(guān)更多信息,請(qǐng)參見(jiàn)ASP.NET和Web開(kāi)發(fā)中的新增功能

2、對(duì)公共語(yǔ)言運(yùn)行時(shí)的核心改進(jìn)包括:改進(jìn)了.NET Framework本機(jī)映像的布局、選擇不再對(duì)完全受信任的程序集進(jìn)行強(qiáng)名稱(chēng)驗(yàn)證、提高了應(yīng)用程序啟動(dòng)性能、改進(jìn)了生成的代碼以縮短端對(duì)端應(yīng)用程序執(zhí)行時(shí)間、選擇在A(yíng)SLR(地址空間布局隨機(jī)化)模式下運(yùn)行托管代碼(如果操作系統(tǒng)支持)。此外,從網(wǎng)絡(luò)共享打開(kāi)的托管應(yīng)用程序在完全受信任環(huán)境下運(yùn)行時(shí)與本機(jī)應(yīng)用程序具有相同的行為。

3、提高了Windows Presentation Foundation的性能,包括縮短了啟動(dòng)時(shí)間,提高了與位圖效果有關(guān)的性能。WPF的其他新增功能包括:改善了對(duì)業(yè)務(wù)線(xiàn)應(yīng)用程序、本機(jī)初始屏幕、DirectX 像素著色器的支持,并且新增了WebBrowser控件。

4、ClickOnce應(yīng)用程序發(fā)行者可以決定在適當(dāng)情況下不進(jìn)行簽名和加密,開(kāi)發(fā)人員可以編程方式安裝ClickOnce應(yīng)用程序以顯示自定義署名,并且ClickOnce錯(cuò)誤對(duì)話(huà)框支持鏈接到Web上應(yīng)用程序特定的支持網(wǎng)站。

5、實(shí)體框架是從現(xiàn)有的一套ADO.NET數(shù)據(jù)訪(fǎng)問(wèn)技術(shù)發(fā)展而來(lái)的。利用實(shí)體框架,開(kāi)發(fā)人員可以按照應(yīng)用程序特定的域模型(而不是基礎(chǔ)數(shù)據(jù)庫(kù)模型)來(lái)針對(duì)關(guān)系數(shù)據(jù)庫(kù)進(jìn)行編程。有關(guān)更多信息,請(qǐng)參見(jiàn)實(shí)體框架入門(mén)。實(shí)體框架還引入了一些其他功能,包括支持SQL Server 2008的新類(lèi)型、默認(rèn)實(shí)體圖形序列化和實(shí)體數(shù)據(jù)源。在此版本中,實(shí)體框架支持SQL Server 2008中的新日期和文件流功能。圖形序列化工作可幫助開(kāi)發(fā)人員生成將全部圖形建模為數(shù)據(jù)協(xié)定的Windows Communication Foundation (WCF)服務(wù)。實(shí)體數(shù)據(jù)源為希望使用實(shí)體框架的ASP.NET應(yīng)用程序構(gòu)建者提供了傳統(tǒng)的數(shù)據(jù)源體驗(yàn)。

6、LINQ to SQL新增了對(duì)SQL Server 2008中的新日期和文件流功能的支持。

7、ADO.NET Data Services Framework由滿(mǎn)足以下條件的模式和庫(kù)組合而成:支持將數(shù)據(jù)公開(kāi)為一項(xiàng)基于REST(具象狀態(tài)傳輸)的靈活數(shù)據(jù)服務(wù),企業(yè)網(wǎng)絡(luò)內(nèi)部或整個(gè)互聯(lián)網(wǎng)上的Web客戶(hù)端都可以使用該服務(wù)。ADO.NET Data Services Framework支持基于任何數(shù)據(jù)源創(chuàng)建數(shù)據(jù)服務(wù)。通過(guò)與 ADO.NET Entity Framework 的充分集成,可以輕松公開(kāi)基礎(chǔ)存儲(chǔ)架構(gòu)的概念視圖模型。可以輕松地從任一平臺(tái)訪(fǎng)問(wèn)使用ADO.NET Data Services Framework創(chuàng)建的服務(wù)以及兼容的Windows Live (dev.live.com)服務(wù)。針對(duì)運(yùn)行在微軟平臺(tái)上的客戶(hù)端應(yīng)用程序提供了一組客戶(hù)端庫(kù),以簡(jiǎn)化與數(shù)據(jù)服務(wù)的交互。例如,基于.NET Framework的客戶(hù)端可以使用LINQ查詢(xún)數(shù)據(jù)服務(wù),也可以使用簡(jiǎn)單的.NET Framework對(duì)象層更新此服務(wù)中的數(shù)據(jù)。

8、現(xiàn)在,Windows Communication Foundation改進(jìn)了對(duì)互操作性的支持,增強(qiáng)了部分受信任情況下的調(diào)試體驗(yàn),并且擴(kuò)展了整合協(xié)議支持以便在Web 2.0應(yīng)用程序中可以進(jìn)行更廣泛的應(yīng)用,從而使DataContract序列化程序變得更易于使用。

9、用于SQL Server(SqlClient) 的.NET Framework數(shù)據(jù)提供程序新增了對(duì)SQL Server 2008中的文件流和稀疏列功能的支持

.NET Framework 3.5 SP1正式版完整安裝包本地下載(231MB):
http://drivers.mydrivers.com/drivers/243-97382-Microsoft-Microsoft.NET-Framework-3.5-SP1/

知識(shí)庫(kù)文章KB951847:
http://support.microsoft.com/kb/951847/en-us

發(fā)行說(shuō)明:
http://download.microsoft.com/download/A/2/8/A2807F78-C861-4B66-9B31-9205C3F22252/dotNet35SP1Readme.htm

]]>
讓你的.NET程序脫離Framework跑起來(lái)http://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=78&ID=2636&Page=1wangxinxin2010-12-15 10:43:50  files:

  c:\windows\system32\mscoree.dll

  c:\windows\system32\mscorier.dll

  c:\windows\system32\mscories.dll

  c:\windows\system32\dfshim.dll

  c:\windows\system32\netfxperf.dll

  這幾個(gè)文件一定要放在system32下面

  C:\windows\system32\mui\0409\mscoreer.dll

  C:\windows\system32\mui\0409\mscorees.dll

  我們猜想mui下面其他們版本的也是必須的

  C:\WINDOWS\assembly\GAC_32\mscorlib\2.0.0.0__b77a5c561934e089

  c:\windows\assembly\gac_32\[others]

  需要其他們的組件也要添加,,比如System.Windows.Forms

  C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscorjit.dll

  C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscorwks.dll

  C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\[others]

  這個(gè)文件夾下面只需要mscorjit.dll mscorwks.dll兩個(gè)文件就可以使console運(yùn)作正常。

  c:\windows\winsxs\Manifests\...

  c:\windows\winsxs\policies\...

  c:\windows\winsxs\...

  winsxs下有很多重要的組件,版本也很繁雜。確保一個(gè)都不能少。這些文件支撐著mscorwks.dll,沒(méi)有他們,mscorwks也無(wú)法加載。

  REG:

  HKEY_CLASSES_ROOT\TypeLib\{BED7F4EA-1A96-11D2-8F08-00A0C9A6186D}

  HKEY_CLASSES_ROOT\TypeLib\{BED7F4EA-1A96-11D2-8F08-00A0C9A6186D}\2.0 = REG_SZ, mscorlib.dll

  HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\InstallRoot = REG_SZ,C:\WINDOWS\Microsoft.NET\Framework\

  只要設(shè)置了安裝位置,jit自己能找到相應(yīng)的framework。有了這些文件,你們就能運(yùn)行.net 2.0的程序了。圖片點(diǎn)擊可在新窗口打開(kāi)查看

]]>
安裝.NET Framework SDK 快速入門(mén)FAQhttp://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=78&ID=2635&Page=1wangxinxin2010-12-15 10:42:40在安裝好IIS,SQL Server Express等前提下,安裝失敗,問(wèn)題如下。
日志描述:
10:49:29 2006年12月15日: [信息] 正在安裝 ASP.NET 腳本映射。命令: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -s W3SVC/1/ROOT/QuickStartv20
10:49:29 2006年12月15日: [失敗] Config_IIS_Install: IIS (Internet 信息服務(wù))虛擬目錄注冊(cè)(失敗): [失敗] 未能安裝 ASP.NET 腳本映射。命令: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -s W3SVC/1/ROOT/QuickStartv20
10:49:29 2006年12月15日: [開(kāi)始示例回滾]
解決方法:
進(jìn)入CMD,運(yùn)行 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i 重安裝下就OK了
]]>
Microsoft.NET Framework 2.0 的安裝錯(cuò)誤的問(wèn)題http://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=78&ID=2634&Page=1wangxinxin2010-12-15 10:40:47

請(qǐng)教高手,我在安裝 Microsoft.NET Framework 2.0 到一半的時(shí)候,出現(xiàn)了以下文字,改怎么解決:

“Error 25002.初始化合成時(shí)發(fā)生錯(cuò)誤。無(wú)法加載mscoree.dll。系統(tǒng)錯(cuò)誤:內(nèi)存分配訪(fǎng)問(wèn)”

關(guān)閉后Microsoft需要我發(fā)送錯(cuò)誤報(bào)告````

錯(cuò)誤簽名:
EventType : visualstudio8setup     P1 : 183     P2 : 8.0.50727.42_rtm_x86ret
P3 : msi     P4 : inst     P5 : f     
P6 : ca_installassemblydef.3643236f_fc70_11d3_a536     P7 : -     P8 : 1603
P9 : -     P10 : -   

錯(cuò)誤報(bào)告的內(nèi)容:

C:\DOCUME~1\GreenTea\LOCALS~1\Temp\WLFA6.tmp
C:\DOCUME~1\GreenTea\LOCALS~1\Temp\SDBA7.tmp
C:\DOCUME~1\GreenTea\LOCALS~1\Temp\VSW0\VSSWMSISummary.txt
C:\DOCUME~1\GreenTea\LOCALS~1\Temp\VSW0\VSSWMSIInstallTime.txt
C:\DOCUME~1\GreenTea\LOCALS~1\Temp\VSW0\VSSWMSIFailInfo.txt
<NoFiles>


]]>
NET Framework 以及 CLR 版本辨析http://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=78&ID=2633&Page=1wangxinxin2010-12-15 10:28:50

我們來(lái)看看以下 ClrInfo.cs 吧:


using System;
using System.Text;

namespace Skyiv
{
  public class ClrInfo
  {
    static void Main()
    {
      Console.WriteLine("      OS Version: {0}", Environment.OSVersion);
      Console.WriteLine("     CLR Version: {0}  ( {1} )", Environment.Version, RuntimeFramework.CurrentFramework);
      Console.WriteLine("Default Encoding: {0}", Encoding.Default);
      Console.WriteLine();
      Console.WriteLine(typeof(string).AssemblyQualifiedName);
#if !NetFx20
      Console.WriteLine(typeof(System.IO.Packaging.Package).AssemblyQualifiedName);
      Console.WriteLine(typeof(System.TimeZoneInfo).AssemblyQualifiedName);
#endif
      Console.WriteLine();
      Console.WriteLine("Available Frameworks:");
      foreach (var frame in RuntimeFramework.AvailableFrameworks) Console.WriteLine("  " + frame);
    }
  }
}

使用以下 makefile 文件來(lái)編譯(請(qǐng)參見(jiàn): 淺談 make 工具):

CLR35 = C:\Windows\Microsoft.NET\Framework\v3.5
CLR40 = C:\Windows\Microsoft.NET\Framework\v4.0.30319
CSC35 = $(CLR35)\csc.exe
CSC40 = $(CLR40)\csc.exe
SRC1 = ClrInfo.cs RuntimeFramework.cs

ClrInfo20.exe: $(SRC1)
	$(CSC35) -out:$@ $(SRC1) -D:NetFx20

ClrInfo35.exe: $(SRC1)
	$(CSC35) -out:$@ $(SRC1) -r:WindowsBase.dll

ClrInfo40.exe: $(SRC1)
	$(CSC40) -out:$@ $(SRC1) -r:$(CLR40)\WPF\WindowsBase.dll

   使用 nmake.exe 進(jìn)行編譯(所需的 RuntimeFamework.cs 請(qǐng)參見(jiàn) .NET Framework CLR 版本檢測(cè)):

E:\CS\ClrInfo> nmake ClrInfo20.exe
Microsoft (R) 程序維護(hù)實(shí)用工具 9.00.30729.01 版
版權(quán)所有(C) Microsoft Corporation。保留所有權(quán)利。

C:\Windows\Microsoft.NET\Framework\v3.5\csc.exe -out:ClrInfo20.exe ClrInfo.cs RuntimeFramework.cs -D:NetFx20
適用于 Microsoft(R) .NET Framework 3.5 版的 Microsoft(R) Visual C# 2008 編譯器 3.5.30729.1 版
版權(quán)所有(C) Microsoft Corporation。保留所有權(quán)利。

E:\CS\ClrInfo> nmake ClrInfo35.exe
Microsoft (R) 程序維護(hù)實(shí)用工具 9.00.30729.01 版
版權(quán)所有(C) Microsoft Corporation。保留所有權(quán)利。

C:\Windows\Microsoft.NET\Framework\v3.5\csc.exe -out:ClrInfo35.exe ClrInfo.cs RuntimeFramework.cs -r:WindowsBase.dll
適用于 Microsoft(R) .NET Framework 3.5 版的 Microsoft(R) Visual C# 2008 編譯器 3.5.30729.1 版
版權(quán)所有(C) Microsoft Corporation。保留所有權(quán)利。

E:\CS\ClrInfo> nmake ClrInfo40.exe
Microsoft (R) 程序維護(hù)實(shí)用工具 9.00.30729.01 版
版權(quán)所有(C) Microsoft Corporation。保留所有權(quán)利。

C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe -out:ClrInfo40.exe ClrInfo.cs RuntimeFramework.cs
 -r:C:\Windows\Microsoft.NET\Framework\v4.0.30319\WPF\WindowsBase.dll
Microsoft (R) Visual C# 2010 Compiler version 4.0.30319.1
Copyright (C) Microsoft Corporation. All rights reserved.

E:\CS\ClrInfo> dir *.exe
2010/04/17  19:59             7,168 ClrInfo20.exe
2010/04/17  19:59             7,168 ClrInfo35.exe
2010/04/17  19:59             7,680 ClrInfo40.exe

  使用 Sun VirtualBox 全新安裝 Microsoft Windows Server 2003 R2 Enterprise Edition Service Pack 2 操作系統(tǒng):

 

  運(yùn)行 ClrInfo35.exe,結(jié)果如下所示:

 

  運(yùn)行 ClrInfo40.exe,結(jié)果如下所示:

 

 

  好吧,讓我們安裝 Microsoft .NET Framework 2.0 SP2 吧

]]>
Microsoft.Net框架程序設(shè)計(jì), Part I: Basics of the Microsoft .NET Framework(中文)http://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=78&ID=2632&Page=1wangxinxin2010-12-15 10:23:04English Version go here.

By Alva Chien

Part I: Basics of the Microsoft .NET Framework

Chapter 1: The Architecture of the .NET framework Development Platform

1.       .Net中的common language runtime (CLR) 是一個(gè)可以被多個(gè)不同語(yǔ)言使用的runtime. 不管使用哪種編譯器,所生成的結(jié)果都是一個(gè)managed module. 一個(gè)managed module是一個(gè)標(biāo)準(zhǔn)的Windows Portable executable (PE) 文件,這個(gè)文件必須由CLR來(lái)執(zhí)行.

一個(gè)managed module的組成:

Part

Description

PE Header

標(biāo)準(zhǔn)的 Windows PE header, 類(lèi)似于Common Object File Format (COFF) header. 這個(gè)header包含了文件類(lèi)型: GUI, CUI, or DLL, 它同樣包含了一個(gè)文件創(chuàng)建時(shí)的時(shí)間戳. 對(duì)只包含IL代碼的的modulesPE header中的大部分信息被忽略. 對(duì)包含native CPU代碼的module,這個(gè)header包含了關(guān)于native CPU代碼的信息.

CLR Header

包含了一個(gè)managed module所必須的信息(CLR和其工具解析) . 這個(gè)header包含了所需的CLR版本和一些狀態(tài)標(biāo)志位, managed module的入口方法(Main方法,一個(gè)MethodDef metadata token), metadata的位置/大小, 資源, strong name, 一些標(biāo)志位和其他信息.

Metadata

每個(gè)managed module都包含metadata. 這些表有兩種類(lèi)型: 定義typesmembers的的表和定義Referencedtypemembers的表.

Intermediate language (IL) code

由編譯器編譯的代碼,真正執(zhí)行時(shí)候CLR會(huì)將IL代碼編譯為native CPU instructions.

2.       一個(gè) assembly是一個(gè)或多個(gè)managed modules/資源文件的邏輯組合, 它是最小的可重用,擁有版本信息和安全信息的單元. PE文件包含一塊叫做manifest的數(shù)據(jù)塊. 一個(gè)manifest是另一個(gè)metadata tables的集合. 這些tables定義了組成一個(gè)assembly的文件, 由這些文件定義的exported types, 跟這個(gè)assembly關(guān)聯(lián)的資源或數(shù)據(jù)文件. 一個(gè)典型的例子: 把一些較少使用的types或資源定義在assembly的一個(gè)獨(dú)立文件中,這個(gè)文件只會(huì)在其中的type或資源被使用的時(shí)候才被加載.

3.       可以通過(guò)查找MSCorEE.dll 文件來(lái)判斷.NET是否被安裝,這個(gè)文件位于%windir%\system32 文件夾中. 但是,一臺(tái)機(jī)器允許同時(shí)安裝幾個(gè)版本的.Net Framewor.可以通過(guò)查看一下注冊(cè)表的鍵值來(lái)判斷當(dāng)前.NET的版本: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\policy

4.       如何裝載 CLR:

  • 當(dāng)創(chuàng)建一個(gè)EXE assembly, 編譯器/鏈接器在生成的assembly’s PE file header嵌入一些特別的信息在.text section.
  • 當(dāng)創(chuàng)建一個(gè)DLL assembly, 如果一個(gè)unmanaged程序調(diào)用LoadLibrary 裝載它, 這個(gè)DLL’s 入口函數(shù)知道如果裝載CLR來(lái)正確處理assembly中的代碼.

5.       當(dāng)創(chuàng)建一個(gè)EXE assembly, 一個(gè)的6字節(jié)的x86 sub function被嵌入到.text section: JMP _CoreExeMain. 這個(gè)_CoreExeMain函數(shù)從MSCorEE.dll導(dǎo)入, 這個(gè)MSCoreEE.dll (Microsoft Component Object Runtime Execution Engine) assembly file’s .idata section定義了引用. 所以當(dāng)assembly像正常程序一樣啟動(dòng)時(shí), MSCoreEE.dll被導(dǎo)入到這個(gè)進(jìn)程的地址空間, 這時(shí)_CorExemain 函數(shù)的地址被獲取,同時(shí)JMP instruction被執(zhí)行. 這個(gè)函數(shù)將初始化CLR并且查找這個(gè)可執(zhí)行assembly’s CLR header的可執(zhí)行入口方法,這個(gè)方法的IL代碼將被編譯為native CPU instructions 隨后CLR跳轉(zhuǎn)這個(gè)native code, 這時(shí),程序已經(jīng)啟動(dòng).

6.       當(dāng)創(chuàng)建一個(gè)DLL assembly, 一個(gè)類(lèi)似的6字節(jié)長(zhǎng)的x86 stub function被嵌入到.text section: JMP _CorDllMain. _CorDllMain 函數(shù)同樣從MSCorEE.dll中引入, 這個(gè)DLL’s .idata section 中包含MSCorEE.dll的引用定義. 所以, 當(dāng)LoadLibrary 執(zhí)行時(shí)_CorDllMain 被調(diào)用來(lái)初始化CLR并返回給應(yīng)用程序來(lái)繼續(xù)執(zhí)行.

7.       這個(gè)6字節(jié)的stub function僅僅在非Windows XP系統(tǒng)中被添加. Windows XP以及以后版本中, OS loader檢查嵌入managed code的文件的PE file headerdirectory entry 14. (IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR定義在WinNT.h) 如果這個(gè)directory entry存在并且擁有一個(gè)非0, OS loader忽略這個(gè)文件的導(dǎo)入 (.idata) section并且自動(dòng)裝載MSCorEE.dll到進(jìn)程的地址空間并直接跳轉(zhuǎn)到對(duì)應(yīng)的函數(shù).

8.       最后一個(gè)關(guān)于managed PE文件的注意點(diǎn): 他們總是使用32PE文件格式, 而不是64PE文件格式. 64位系統(tǒng)上, OS loader檢查這個(gè)managed 32PE文件并知道如何去創(chuàng)建一個(gè)64位地址空間.

9.       至于知識(shí)產(chǎn)權(quán)保護(hù), 對(duì)于所有的編譯位IL的代碼并且IL代碼能被很容易被Disassembler程序reverse, 可以使用一個(gè)第三方提供的obfuscator工具. 這些工具scramble” managed module’s metadata中所有private symbols的名稱(chēng). 另外,可以把一些代碼編譯為unmanaged DLL并在assembly中調(diào)用它.

10.   所有的高級(jí)語(yǔ)言都只是提供了CLR的一個(gè)功能子集. 但是,IL提供了CLR所有的功能.

11.   如果Assembly中的一個(gè)方法第一次被調(diào)用,它的IL代碼需要被編譯為native CPU代碼, 這部分功能由CLR’s JIT (just-in-time)完成. JIT編譯器在內(nèi)存中保存了native CPU instructions, 所以當(dāng)應(yīng)用程序終止時(shí)候,編譯的代碼都將失效. 另外一個(gè)值得記住的重點(diǎn)是JIT編譯過(guò)程當(dāng)中有一個(gè)專(zhuān)門(mén)的優(yōu)化編譯代碼的過(guò)程.

12.   Microsoft .Net framework提供了一個(gè)名為NGen.exe的工具; 這個(gè)工具編譯一個(gè)assembly的全部IL代碼為native CPU代碼并將結(jié)果保存到一個(gè)硬盤(pán)文件.

13.   IL是一個(gè)stack-based的語(yǔ)言, 所有的IL instructions會(huì)把operands壓棧,并將結(jié)果彈出. IL沒(méi)有提供操作CPU寄存器的指令.

]]>
WM5-WM6.5NET CF Microsoft.NET Compact Framework3.7安裝/卡版http://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=78&ID=2631&Page=1wangxinxin2010-12-15 10:17:181、支持WM5-WM6.5NET CF Microsoft.NET Compact Framework3.7安裝版。
提示:在安裝時(shí)會(huì)提示與當(dāng)前系統(tǒng)不兼容,不理它,點(diǎn)確定安裝安裝后正常使用。

此工具相當(dāng)于電腦上的微軟.NET,.NET是微軟提出的一種跨平臺(tái)的框架協(xié)議,通俗地說(shuō),你就把它當(dāng)作軟件的Direct X吧。就像很多游戲依賴(lài)Direct X一樣。.NET Framework是一些軟件運(yùn)行的必備條件。.NET Compact Framework3.7是PPC上目前最新版本,WM5似乎不支持,得WM6以上操作系統(tǒng)的PPC才行。

圖示說(shuō)明

圖片點(diǎn)擊可在新窗口打開(kāi)查看 圖片點(diǎn)擊可在新窗口打開(kāi)查看
圖片點(diǎn)擊可在新窗口打開(kāi)查看

圖片點(diǎn)擊可在新窗口打開(kāi)查看 圖片點(diǎn)擊可在新窗口打開(kāi)查看

下載:

Net3.7.cab ]]>
Interview with Microsoft's .NET Compact Framework Technical Evangelisthttp://www.hufushizhe.com/bbs/dispbbs.asp?BoardID=78&ID=2630&Page=1wangxinxin2010-12-15 10:05:46Robert Levy: First off, I'd like to thank you for taking the time to speak with us and participate in this interview. As the ".NET Compact Framework Technical Evangelist" what exactly is your role within Microsoft? What services are you able to provide to software developers?

Kent Sharkey: The Technical Evangelist role is always good for a smile. There aren't too many companies willing to call people that. Basically, our role is to go forth into the community to introduce developers to technologies that aren't shipping yet. We are the advance scouts, if you will, preparing people for changes to come.

RL: In your own words, how would you define the goals and strategy Microsoft is using to merge existing (and future) mobile technology with the larger concept of ".NET"?

KS: Good one. If you think of the overall goal of .NET as helping programs (and people) to communicate better it becomes clearer. Today, and in the past, this has been fairly difficult in the mobile space. People needed to be mobile experts, and used primitive tools to craft apps for Pocket PC or phones. Microsoft is attempting to make this easier for developers, and to enable new forms of applications by doing this.

RL: More specifically, how would you define the .NET Compact Framework and Microsoft's goals in developing it?

KS: The .NET Compact Framework is a lightweight version of the .NET Framework, designed to work well with resource constrained devices. The execution engine and garbage collection has been tightened up, to help with devices where overall memory is still measured in MB. In addition, our support for important standards on the device, such as XML and SOAP support, as well as strong database support with SQL CE are a first in the industry. (well, maybe not the strong database support, but hopefully you're with me) What the .NET Compact Framework is doing is giving developers a set of tools that span devices through servers with a single, consistent programming model.

RL: The .NET Compact Framework and Mobile Internet Toolkit are 2 opposing Microsoft technologies that can be used to develop mobile applications with .NET. Generally speaking, what types of applications do you see as best suited for each of these? What are the key differences between them in terms of development tools, programming techniques, development costs, deployment procedures, and end-user experiences.

KS: I wouldn't say that they were opposing, but complementary. Think of them as the device analogs of Windows Forms (.NET Compact Framework) and Web Forms (MMIT). They both have their place, and optimal usage model. In the case of MMIT, the idea is really reach -- MMIT is great for moving your web applications out to a wide variety of devices, phones, etc. It is a great extension to the ASP.NET model. It's problem is the types of devices it typically targets -- cell phones. They typically have poor data entry capabilities. As such, I would say that MMIT is best for apps that don't require a good deal of data entry, and where the amount of data displayed is relatively small (again, due to phone limitations). Finally, MMIT is best suited for always online applications. .NET Compact Framework, on the other hand, brings a few neat items to the table. First up, through either the larger memory on the device and/or SQL CE, it has data storage capabilities. Therefore, .NET Compact Framework is great for applications that spend part of 'their life' disconnected. SQL CE replication allows you to merge your data back into SQL Server as needed (when connected). Second, .NET Compact Framework gives you the richer capabilities of the device UI. You can use controls such as TreeView, ListView and (soon), DataGrid in your applications without having to struggle with a cross platform DHTML solution. The application could also be faster, as no return time is required to retrieve data. Finally, the development model of .NET Compact Framework is just the same as that of desktop Windows Forms, allowing a developer to move freely and easily between developing for the device and the desktop. MMIT has a somewhat different programming model, possibly confusing some.

RL: As a "Technical Evangelist" you recruit developers to use emerging technology. When doing this, who is your target audience? In other words, what types of organizations do you see as being the best candidates for quickly adopting the .NET Compact Framework? Who do you predict will be (or currently are) the early adopters of this technology?

KS: I look at the target audience as being in two main groups. First, there are those groups doing device development today. .NET Compact Framework gives this group a rich set of tools and consistency with the desktop that will help their move forward. Second, there are those who have never done device development. This is the very exciting group, as .NET Compact Framework means that they can now extend their existing applications to the device easily. They no longer have to learn a new programming environment, with new tools and languages.

RL: Through your interactions with the developer community, what have you found to be the most compelling reasons given for adopting the .NET Compact Framework? Conversely, what reasons have been given for NOT adopting the technology?

KS: The most compelling reason for me is that it uses the same tool and programming model as you develop on the desktop. The consistency between .NET and the .NET Compact Framework means that you already know how to do most things on the device. You build both in Visual Studio .NET. As for reasons for NOT adopting the technology, well, I'm just the wrong person to ask that. There isn't any.

More seriously, some of the companies I've spoken with have decided not to move to .NET Compact Framework because they are already working with (and happy with) Embedded Visual C++ or Embedded Visual Basic. Particularly for small developer shops, that have already scaled the learning curve to get their code on the device 'the hard way', the added training time does not make economic sense.

RL: What advice can offer for developers who have already created and deployed applications for the Windows CE platform using Embedded Visual Basic and/or Embedded Visual C++? What factors should be considered when deciding between maintaining existing code or rewriting applications with the .NET Compact Framework?

KS: The answer is easier for the Embedded Visual Basic people, so I'll start there.

Many of the eVB customers that I've spoken to have been happy with the product. Others, however, feel that there is a 'glass ceiling' to the product. If you try to do applications that go beyond this barrier, it becomes quite difficult. In addition, the fact that it was limited to VBScript was quite limiting. For these developers, we have only good news. Now, they have the full VB .NET language, with the Compact Framework of classes to create their applications with.

Embedded Visual C++ developers, on the other hand do have a choice to make. If they need absolute control of the device, and they're happy developing with eVC, I often encourage them to continue. Those that want to create Web Services, or otherwise take advantage of the functionality available with the .NET Compact Framework, however, should do more than look at .NET Compact Framework. They will find that C# is an amazingly easy language to learn, and the framework does make doing a lot of stuff very easy.

<!-- FIN ARTICLE -->

 

]]>
主站蜘蛛池模板: 亚洲日本香蕉视频| 日日麻批免费40分钟无码| 国产无套粉嫩白浆在线观看 | 黄色一级视频免费观看| 性xxxxx大片免费视频| 亚洲人成色7777在线观看不卡| 男人的j进女人视频| 国产壮汉男同志69可播放| a毛片免费在线观看| 成人禁在线观看| 亚洲aⅴ男人的天堂在线观看| 污网站在线免费看| 国产三级a三级三级| 18禁止午夜福利体验区| 在线观看网址入口2020国产| 久久久久久成人毛片免费看| 杨晨晨被老师掀裙子露内内| 免费在线看视频| 综合558欧美成人永久网站| 国产手机精品一区二区| 99爱在线精品免费观看| 好男人社区www在线观看| 久久精品中文字幕久久| 欧美zoozzooz在线观看| 伊人色综合久久天天| 精品国产三上悠亚在线观看| 国产婷婷综合丁香亚洲欧洲| 91香蕉在线观看免费高清| 天仙tv在线视频一区二区| 中文字幕在线视频不卡| 日本人的色道www免费一区| 亚洲午夜国产精品无卡| 欧美成人一区二区三区在线视频 | 美女视频一区二区| 国产愉拍精品视频手机| 88av在线看| 国内精品一区二区三区在线观看| 七次郎在线视频永久地址| 成人网站在线进入爽爽爽| 久久精品国产导航| 日韩美一区二区|