doface (原文)
ASP について話すとき、多くの人は、HTML スクリプト、<% と %> で囲まれたいくつかのコード、およびいくつかの JAVASCRIPT スクリプトのコレクションに、さまざまな形式のあらゆる種類のコメントを追加すると考えています。 、それは一言で言えば「カオス」のように見えます。他人が理解できるかどうかは関係なく、それ自体の目的を達成できれば、ASP コードもスクリプトなので、顧客がその内容を見ないわけにはいきません。 DLL にはビジネスの重要性が含まれていますが、ASP コードは最も価値のないコードであると感じています。ソースを見れば、他の人が一生懸命書いた独自のスタイルをいつでも入手できます。他の人のウェブサイトからのコード。これらの理由により、ASP は書きやすく、すぐに忘れてしまうコードに発展してしまい、可読性と保守性もさまざまな言語の中で最悪です。
実際、ASP コードは他の言語と同様にオブジェクト指向でモジュール化することもでき、多くのページを 1 つのクラスに統合してカプセル化することができ、クラス内のさまざまなメソッドを使用してさまざまなページを表示できます。同じビジネス ロジックの下で、ロジックはクラスにカプセル化され、異なるメソッドを使用して実装されます。ここまで述べてきましたが、おそらく皆さんの考えは混乱しているでしょう。いくつか例を挙げてみましょう。
<%
'*****************************************
'* クラス名: clsWebWorkFlowLog
'* 関数:ワークフローログ追跡クラス
'* 履歴:
'* 作成者: doface
'* 日付: 2003/10/24 Ver 1.0
'* 変更点:
'* 日付:
'*************** * ***********************
class clsWebWorkFlowLog
'Connection オブジェクトを格納するパブリック プロパティを定義します
パブリックアクティブ接続
プライベートレスポンス
'=======================================
'= プロセス名: メイン
'= パラメータ:
'= 関数: メイン呼び出し関数
'= 異なるアクションパラメータに基づいて異なる操作を実行します
'= 戻り値:
'=======================================
サブメイン()
ケースを選択 Request("act")
ケース「リスト」
リスト()
それ以外の場合
リスト()
エンドセレクト
エンドサブ
'=======================================
'= プロセス名: リスト
'= パラメータ:
'= 機能:一覧画面の表示
'= 戻り値:
'=======================================
サブリスト()
または
set oRs = ActiveConnection.execute("select *,(wf_config から名前を選択 (id=w.wf_id)) as wfname from wf_log w where step_id=1 and user_id= & session("usr")("uid"))
'(select * from wf_log where id in (select max(id),wf_id,tab_id,rec_id from wf_log group by wf_id,tab_id,rec_id where wf_id= and tab_id=))
%> <p align="left"><img border="0" src="../images/desk/workflow-new.gif" WIDTH="32" HEIGHT="32"><font color="# FF0000"><b>ToDo アイテム:</b></font></p>
<center>
<table bgColor="#FFFFFF" border="1" borderColorDark="#ffffff" borderColorLight="#c0c0c0" cellSpacing="0" width="99%" height="25">
<tr>
<td bgColor="#808080" height="15"><font color="#FFFFFF">プロセス名</font></td>
<td bgColor="#808080" height="15"><font color="#FFFFFF">申請者</font></td>
<td bgColor="#808080" height="15"><font color="#FFFFFF">申請時間</font></td>
<td bgColor="#808080" height="15"><font color="#FFFFFF">完了時間</font></td>
<td bgColor="#808080" height="15"><font color="#FFFFFF">ステータス</font></td>
<td bgColor="#808080" height="15"><font color="#FFFFFF">操作</font></td>
</tr><%
ors.eof ではないときに実行します
dim maxID,Next_id
if glbFunc.getMaxID(oRs("id").value,ActiveConnection,maxID,Next_id) then
%><tr>
<td bgColor="#ffffff" height="19"><%=oRs("wfname")%></a></td>
<td bgColor="#ffffff" height="19"><%=session("usr")("name")%> </td>
<td bgColor="#ffffff" height="19"><%=oRs("exetime")%> </td>
<td bgColor="#ffffff" height="19"> </td>
<td bgColor="#ffffff" height="19"><%=glbFunc.getCurZT(oRs("id").value,ActiveConnection)%></td>
<td bgColor="#ffffff" height="19"><p align="left"><a href="../PubExeTab/PubExeTab.asp?act=view&tab_id=<%=oRs("tab_id")% >&id=<%=oRs("rec_id")%>"><img src="../images/action/view.gif" border="0" alt="詳細" WIDTH="16" HEIGHT=" 16"></a> <a href="javascript:newin('wfimage.asp?act=list&id=<%=oRs("wf_id")%>&bz=1&step_id=<%=next_id%>', true,false,false,false,true);"><img src="../images/action/lcchuli.gif" border="0" alt="プロセス追跡" WIDTH="16" HEIGHT="16" ></a> </p></td><%
終了する場合
%></tr><%
orRs.movenext
ループ
%></table>
</center>
<%
エンドサブ
終了クラス
「******************************************
'* 授業終了
「******************************************
「******************************************
'ASP ページが開始されます
'*****************************************
'標準HTMLヘッダーを出力
glbFunc.writeHEAD
dim oWebWorkFlowLog
set oWebWorkFlowLog = 新しい clsWebWorkFlowLog
set oWebWorkFlowLog.ActiveConnection = glbFunc.getADOConnection
oWebWorkFlowLog.main
glbFunc.writeTail()
%>
さらにメソッドを追加して、この 1 つのクラスが以前の複数の ASP ファイルの機能を完了できるようにすることができます。アクセスする際は、.ASPの後にパラメータ(どの機能にアクセスしたいか)を追加することで区別できます。