亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 組件對象開發(fā)web應用的實例分析 (2000年11月21日).txt

?? delphi 編程技巧
?? TXT
字號:
組件對象開發(fā)Web應用的實例分析 (2000年11月21日) 

本站更新  分類:   作者:夏長虹 童亮 陳文博   推薦:   閱讀次數(shù):537  
(http://www.codesky.net)  

--------------------------------------------------------------------------------
一. 應用實例的分析與開發(fā) 

---- 我們以學籍管理系統(tǒng)為背景,基于Windows DNA的思想,開發(fā)了一套應用系統(tǒng)。在該系統(tǒng)中,有關教務
學籍的事務邏輯都是由定制COM組件來處理的,動態(tài)Web頁面通過ASP腳本調(diào)用這些組件。系統(tǒng)在開發(fā)速度和軟
件質(zhì)量等方面都優(yōu)于不用COM組件而僅用ASP腳本的方案。為說明問題,我們通過一個定制組件和ASP腳本的主
要代碼簡單介紹局部功能的實現(xiàn)過程。 

---- 在displayscore.asp頁面中接受、辨別用戶的查詢請求,做出不同的查詢處理。當客戶的身份為教師
或教務時,可以查詢所有學生的成績;當客戶的身份為學生時,只能查詢該生本人的成績。 


---- 定制COM組件Score.dll進行查詢處理。首先設計該組件的接口,為組件設置四個屬性: Subj(課
程)、Term(課程所屬學期)、Class(查詢的班級)和Stu_No(查詢學生的學號);定義兩個方法:
RequeryScores和RequeryAllScores,分別對教師、教務部門和學生的請求做出相應的處理,并將查詢結(jié)果
集返回給用戶。 

---- 以下是實現(xiàn)該組件Score.dll的部分關鍵代碼。從中我們可以看到組件的接口是如何實現(xiàn)的: 

Option Explicit
Private m_StuNo As Variant
Private m_Subj As String
Private m_Term As String
Private m_Class As String
' 設置屬性為可寫入的
Public Property Let StuNo(ByVal vNewValue As Variant)
m_StuNo = vNewValue
End Property
Public Property Let Subj(ByVal vNewValue As Variant)
m_Subj = vNewValue
End Property
...... 
' 學生查詢成績請求處理
Public Function RequeryScores() As Object
Dim objContext As MTxAS.ObjectContext
Set objContext = GetObjectContext()
' 建立事務性組件
Dim ObjConn As ADODB.Connection
' 利用ADO訪問數(shù)據(jù)庫
Dim ObjRecordset As ADODB.Recordset
Set ObjConn = New ADODB.Connection
ObjConn.Open "xia", "sa", ""
Set ObjRecordset = New ADODB.Recordset
Dim query As String
' 根據(jù)查詢要求(查詢所有課程、查詢特定學期的所有課程、
查詢指定課程、查詢特定學期的某一課程)進行不同的查詢操作
If (m_Subj = "all" And m_Term <> "all") Then
query="select Client_Name,Client.Client_No,Courses.subject,
stu_score.score,stu_score.term,sub_type"
query = query & " from client,stu_score,courses"
query=query&"where client.client_no=stu_score.client_no
and stu_score.subject=courses.subject
and courses.term=stu_score.term
and courses.term='" & m_Term & "'
and Client.Client_no='" & m_StuNo & "'"
End If
......
ObjRecordset.Open query, ObjConn
' 進行數(shù)據(jù)庫查詢
ObjContext.SetComplte
' 若事務成功完成,則提交該事務
RequeryScoresExit:
Set RequeryScores = ObjRecordset
' 返回查詢結(jié)果集
Exit Function
RequeryScoresErr:
Set RequeryScores=Nothing
' 事務失敗處理
End Function
' 教師、教務查詢成績請求處理
Public Function RequeryAllScores() As Object
......
End Function
---- 在ASP頁面displayscore.asp中引用組件,ASP代碼如下(其中加粗的部分便是對該組件的調(diào)用): 


< %@ LANGUAGE="VBSCRIPT" % > 
< HTML > 
< HEAD > 
< META NAME="GENERATOR" Content="Microsoft 
Visual InterDev 1.0" > 
< META HTTP-EQUIV="Content-Type" 
content="text/html; charset=gb_2312-80" > 
< TITLE >Show To Teacher< /TITLE > 
< /HEAD > 
< BODY background="images/bk.GIF" > 
< % 
dim objResult 
set objResult=Server.CreateObject("Display.Score") 
dim Term,Subject Term=Cstr(Request.Form("Term")) Subject=Cstr(Request.Form("Subject")) 
objResult.term=Request.Form("term") objResult.Subj=RequestForm("Subject") 
objresult.class=Request.Form("Class") 
dim Scores 
set Scores=objResult.RequeryAllScores 
% > 
' 以下代碼為顯示處理的結(jié)果 
< div align="center" >< center > 
...... 
< table border="0" cellpadding="0" cellspacing="1" width="100" >< tr 
> 
< %For i = 0 To Scores.Fields.Count - 1% > 
< td bgcolor="#004080" > 
< strong >< font color="#FFFFFF" > < small >   
< %=scores(i).Name% >< /font > < /strong > < /td > 
< %NEXT 
Do While (Not Scores.EOF)% > 
< /tr >< tr > 
< % For i = 0 To Scores.Fields.Count - 1% > 
< td bgcolor="#ACE8F9" >< p align="center" > 
  < %= Scores(i).Value% >< /td > 
< %Next Scores.MoveNext% >< /tr > 
< %Loop% > 
< %Scores.close 
' 關閉數(shù)據(jù)庫連接 
set Scores=Nothing 
set objResult=Nothing % > 
' 釋放對象 
< /table >< /center >< /div > 
< /BODY > 
< /HTML > 
---- 可以想象,如果僅使用ASP腳本進行業(yè)務處理就會使ASP頁面中代碼十分臃腫、晦澀。而使用組件的方案
也較單純的ASP腳本執(zhí)行速度速度快。并且可以將整個查詢處理作為一個事務,保證數(shù)據(jù)庫信息的安全、完
整。將該組件在MTS中注冊,又可避免多用戶訪問該主頁時可能造成的網(wǎng)絡擁塞。 實際應用中,學生和教師
的使用權限是不同的。在學生查詢成績的頁面中,可重用該組件,只是調(diào)用其不同的接口而已。僅使用ASP腳
本進行業(yè)務處理,則需重新編寫與displayscore.asp類似的、同樣煩瑣的代碼。 在開發(fā)過程中,不同的開
發(fā)人員可各盡所能,同時進行組件和ASP頁面的設計,縮短了軟件開發(fā)周期。 

---- 以下兩圖顯示的是教師(教務)查詢成績和顯示查詢結(jié)果的頁面: 

二. 開發(fā)過程中輔助工具的使用 

---- 傳統(tǒng)的軟件工程進行的需求分析、數(shù)據(jù)庫設計等都是人們“純手工”完成的,缺乏嚴謹性和規(guī)范性。而
在以組件為中心的系統(tǒng)分析和軟件開發(fā)過程中,應力爭使用有效的計算機輔助工具,以適應快速建模和組件
方法新形勢的需要,提高分析的質(zhì)量及精度。 

---- 有很多輔助工具可以利用。由于以組件為中心的系統(tǒng)分析過程仍保留著傳統(tǒng)軟件工程方法的脈絡痕跡,
北大青鳥的CASE工具對傳統(tǒng)的軟件工程方法比較有效,我們采用了這一工具。在數(shù)據(jù)庫建模方面,我們選用
了SYBASE 公司的S-Designer,可將數(shù)據(jù)庫概念模型自動轉(zhuǎn)化為物理模型。 


---- 1. 利用青鳥CASE工具編寫需求分析文檔 

---- 長久以來,人們已習慣于“純手工”地進行需求分析。開發(fā)人員對現(xiàn)有系統(tǒng)和用戶要求進行調(diào)查后,需
要設計系統(tǒng)的數(shù)據(jù)流圖(DFD圖),編寫小說明,設計系統(tǒng)的結(jié)構圖(SC圖)。但這種分析方法是不嚴謹?shù)模?由于種種原因,可能會發(fā)生加工、數(shù)據(jù)流、文件的語法定義錯誤;數(shù)據(jù)流圖上下各層不一致;數(shù)據(jù)流圖分解
后的數(shù)據(jù)不平衡,或文件等重名及文檔不完備等各種問題,影響了我們對用戶需求的分析和理解,防礙了今
后的工作。尤其是對組件的分析失當,后果不堪設想。 


---- 青鳥CASE工具提供的即是一套支持軟件工程中采用傳統(tǒng)的結(jié)構化方法進行需求分析、軟件設計的工具。
由工具生成的每個文件即一個項目,每個項目均包括數(shù)據(jù)流圖和模塊結(jié)構圖兩部分: 

數(shù)據(jù)流圖部分輔助系統(tǒng)分析員完成對軟件系統(tǒng)的需求分析、建立目標系統(tǒng)的需求模型、生成一份正確、完整
的關于目標系統(tǒng)的說明文檔;同時,提供對需求文檔的查詢、列表、分片、影響范圍等分析功能,輔助軟件
設計人員對需求分析的結(jié)果文檔進行深入、細致的分析和理解,以利于軟件設計工作。 


模塊結(jié)構圖部分輔助程序設計人員在需求分析階段完成后對軟件系統(tǒng)進行設計,支持模塊的逐層細化,建立
系統(tǒng)的軟件體系結(jié)構,最后得到一份正確、完整的軟件設計文檔。同時,提供對設計文檔進行查詢、列表、
分片、影響范圍等分析功能,完成對設計的結(jié)果文檔進行深入、細致的分析理解,以利于軟件開發(fā)及維護工
作。在SC圖中組件的規(guī)劃方案已見端倪,繼續(xù)細化將得出每個組件的概要設計方案。 

---- 在教務系統(tǒng)的實例中,利用青鳥CASE工具生成的DFD圖和SC圖如下圖所示: 
---- 系統(tǒng)1層DFD圖 系統(tǒng)0層SC圖 

---- 2. 利用S-Designer進行數(shù)據(jù)庫設計 

---- 當完成系統(tǒng)的詳細設計后,接下來便是數(shù)據(jù)庫設計。數(shù)據(jù)庫設計在整個軟件工程中占有舉足輕重的地
位。數(shù)據(jù)庫設計不合理,數(shù)據(jù)得不到合理、有效的存儲,數(shù)據(jù)存在潛在的不一致性、不完整性或有大量冗
余,都會降低系統(tǒng)性能,甚至使系統(tǒng)崩潰。 

---- 手工的數(shù)據(jù)庫設計完全依賴于設計者的設計水平。設計者首先必須根據(jù)實際需要建立若干個邏輯上存在
的數(shù)據(jù)庫表,并使其滿足第三范式;而后根據(jù)它們之間的聯(lián)系建立特定數(shù)據(jù)庫表將其聯(lián)系起來。這是一件相
當煩瑣的事。數(shù)據(jù)庫設計者既要進行數(shù)據(jù)庫的邏輯設計,又要將邏輯模型轉(zhuǎn)成物理模型,而且設計出的數(shù)據(jù)
庫不一定能滿足第三范式。合理的庫表結(jié)構決定了訪庫組件接口的設計質(zhì)量,所以原先數(shù)據(jù)庫設計方式不適
用于以組件對象為中心的軟工設計。 

---- 在教務系統(tǒng)的實例中,S-Designer使數(shù)據(jù)庫設計變得輕松、簡單起來。設計者只須根據(jù)現(xiàn)實需要,設
計出數(shù)據(jù)庫的E-R圖,S-Designer會將邏輯模型轉(zhuǎn)化為物理模型,為數(shù)據(jù)庫表間的聯(lián)系建立新表,指明表的
主碼、外碼,并自動對數(shù)據(jù)庫表進行一致性、冗余性、完整性檢查,使數(shù)據(jù)庫表滿足第三范式。 


---- 例:可首先設計出數(shù)據(jù)庫表課程(Courses)和學生(Client)的邏輯模型: 

---- 接下來,為表Courses和Client間建立聯(lián)系。由S-Designer自動生成的物理模型,如下圖所示,它們
為訪庫組件的接口設計提供了準確的依據(jù)。 

---- 可以相信,隨著軟件工程學的進一步成熟,將出現(xiàn)更多的計算機輔助工具,幫助軟件開發(fā)人員構建出更
完善的應用系統(tǒng)。許多輔助軟件工具可以完成相似的工作,到底選用何種輔助工具取決于這些工具的性能以
及使用者的習慣。 

---- 以組件對象為中心的動態(tài)Web方法和DNA思想并不高深莫測,開發(fā)技術也愈加規(guī)范化。應當說,這套方法
更適合客觀信息結(jié)構的現(xiàn)實,也更接近于人們的思維方式,其技術有如行云流水般自然,很適合在中小型企
業(yè)環(huán)境中推廣和普及。 

 
 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产老妇另类xxxxx| 美女高潮久久久| 国产精品自在欧美一区| 91高清视频在线| 日本一区二区三区四区| 美女网站色91| 欧美调教femdomvk| 欧美激情一区三区| 免费观看在线色综合| 在线观看视频91| 国产精品美女久久久久久久网站| 极品尤物av久久免费看| 欧美高清一级片在线| 一区二区三区蜜桃| 成人午夜私人影院| 久久久久亚洲综合| 免费久久99精品国产| 欧美美女喷水视频| 亚洲午夜电影网| 91免费版在线看| 国产欧美一区二区精品性色| 精品一区二区免费在线观看| 在线观看91精品国产麻豆| 亚洲一二三四在线观看| 一本大道综合伊人精品热热| 国产精品灌醉下药二区| 国产成人综合亚洲91猫咪| 精品成a人在线观看| 久久精品免费看| 日韩一级大片在线观看| 天堂影院一区二区| 欧美日韩国产首页在线观看| 亚洲综合免费观看高清完整版在线| 白白色 亚洲乱淫| 亚洲欧洲韩国日本视频| caoporen国产精品视频| 中文字幕一区二区在线观看| 成人综合婷婷国产精品久久蜜臀 | 久久国内精品自在自线400部| 911国产精品| 日韩激情中文字幕| 欧美一区二区三区白人| 秋霞午夜av一区二区三区| 日韩一区二区在线观看| 另类小说欧美激情| 久久亚洲私人国产精品va媚药| 国产自产v一区二区三区c| 精品免费一区二区三区| 国产一区二区精品在线观看| 国产亚洲一二三区| 北条麻妃一区二区三区| 亚洲免费av高清| 欧美男人的天堂一二区| 免费成人av资源网| 久久久不卡网国产精品二区| 国产成人aaa| 亚洲欧美aⅴ...| 欧美日韩国产乱码电影| 免费成人小视频| 久久久久国产成人精品亚洲午夜| 成人午夜免费电影| 亚洲精品国产无天堂网2021 | 成人a区在线观看| 亚洲免费观看视频| 欧美精品久久久久久久久老牛影院 | 成人小视频在线观看| 日韩一区有码在线| 在线视频你懂得一区| 日韩福利视频网| 欧美mv日韩mv亚洲| 国产成人在线视频免费播放| 亚洲四区在线观看| 91精品福利在线一区二区三区| 久草在线在线精品观看| 国产精品天美传媒| 欧美性欧美巨大黑白大战| 久久99久久精品| 最新日韩av在线| 欧美日韩成人综合| 国产精品一卡二卡在线观看| 国产精品黄色在线观看| 欧美喷潮久久久xxxxx| 国产福利一区二区| 一区二区三区蜜桃网| 日韩久久久精品| 99re这里都是精品| 奇米综合一区二区三区精品视频| 欧美激情在线一区二区三区| 欧美日韩一区中文字幕| 国产精品白丝jk白祙喷水网站| 亚洲人成人一区二区在线观看| 欧美一区二区播放| av亚洲精华国产精华精| 强制捆绑调教一区二区| 中文字幕制服丝袜一区二区三区 | 99久久久国产精品免费蜜臀| 日韩av网站在线观看| 欧美国产一区视频在线观看| 欧美日韩国产色站一区二区三区| 国产一区在线视频| 亚洲图片自拍偷拍| 国产欧美精品一区二区色综合| 欧美三级电影一区| 福利一区二区在线观看| 天天色综合成人网| 国产精品久久久久aaaa樱花 | 色综合久久久网| 黄色小说综合网站| 亚洲午夜日本在线观看| 国产欧美一区二区精品忘忧草| 欧美三级电影在线看| 成人美女视频在线看| 精品一区二区三区av| 亚洲成人午夜电影| 中文成人综合网| 日韩精品一区二区三区视频播放| 一本大道av一区二区在线播放 | 亚洲女同一区二区| 久久久91精品国产一区二区三区| 欧美日韩一卡二卡| 99热精品国产| 国产一区二区三区四区在线观看| 亚洲国产精品久久艾草纯爱| 国产精品久久久久四虎| 久久伊人蜜桃av一区二区| 欧美精品一二三四| 在线亚洲一区二区| 不卡av免费在线观看| 国产一区二区三区香蕉| 美女www一区二区| 丝袜美腿亚洲综合| 亚洲精品视频免费观看| 国产精品美女www爽爽爽| 久久久www免费人成精品| 欧美成人猛片aaaaaaa| 精品视频1区2区| 在线一区二区三区| 91麻豆国产在线观看| 成人v精品蜜桃久久一区| 国产精品1024久久| 肉肉av福利一精品导航| 自拍偷拍欧美激情| 日本一区二区久久| 久久综合九色综合97婷婷| 日韩欧美国产系列| 欧美一区二区久久久| 欧美一区二区视频在线观看2020| 欧美日韩一区二区三区在线看| 在线观看欧美精品| 一本久道中文字幕精品亚洲嫩| 99精品视频中文字幕| av电影在线观看一区| 99国产精品久久| 91麻豆产精品久久久久久 | 午夜在线电影亚洲一区| 一区二区三区美女视频| 一区二区高清免费观看影视大全 | 国产婷婷色一区二区三区四区 | 欧美日本一区二区三区四区| 精品视频1区2区3区| 欧美日韩免费电影| 91精品国产91久久久久久一区二区 | 日韩欧美一二三四区| 日韩免费在线观看| 精品国产一区二区三区av性色| 精品裸体舞一区二区三区| 欧美精品一区二区在线播放| 久久中文娱乐网| 国产午夜精品美女毛片视频| 国产欧美1区2区3区| 日韩一区在线看| 亚洲精品乱码久久久久| 亚洲国产精品久久一线不卡| 日韩影视精彩在线| 久久精品av麻豆的观看方式| 紧缚捆绑精品一区二区| 国产成人av在线影院| 99视频热这里只有精品免费| 色一区在线观看| 欧美人妇做爰xxxⅹ性高电影| 日韩欧美亚洲一区二区| 国产欧美日韩另类一区| 亚洲另类在线一区| 天涯成人国产亚洲精品一区av| 美日韩一区二区三区| 高清在线成人网| 日本伦理一区二区| 日韩一区二区高清| 国产日韩欧美电影| 亚洲乱码中文字幕| 欧美96一区二区免费视频| 国产一区三区三区| 91污片在线观看| 日韩一卡二卡三卡国产欧美| 国产亚洲一区二区三区| 一区二区三区资源| 久久国产精品露脸对白| 99国产一区二区三精品乱码| 欧美日韩成人在线| 久久久国产一区二区三区四区小说|