Presentation is loading. Please wait.

Presentation is loading. Please wait.

Mark Dixon Page 1 20 – Modular Design in ASP. Mark Dixon Page 2 Session Aims & Objectives Aims –Highlight modular design techniques in ASP Objectives,

Similar presentations


Presentation on theme: "Mark Dixon Page 1 20 – Modular Design in ASP. Mark Dixon Page 2 Session Aims & Objectives Aims –Highlight modular design techniques in ASP Objectives,"— Presentation transcript:

1 Mark Dixon Page 1 20 – Modular Design in ASP

2 Mark Dixon Page 2 Session Aims & Objectives Aims –Highlight modular design techniques in ASP Objectives, by end of this week’s sessions, you should be able to: –Use procedures, functions, parameters, and modules (shared VB script files) in ASP

3 Mark Dixon Page 3 Example: Country (database)

4 Mark Dixon Page 4 Example Country (user interface)

5 Mark Dixon Page 5 Example: Countries (code v0) Countries Countries of the World <% Const cs = "…" Dim rs As Object rs = CreateObject("ADODB.Recordset") rs.Open("Select * FROM [Country]", cs) Do Until rs.EOF() Response.Write(rs.Fields("Name").value & " ") rs.MoveNext() Loop rs.Close() rs = Nothing %> Countries.aspx HTML and ASP mixed together –messy

6 Mark Dixon Page 6 Example: Countries (code v1) Const cs = "…" Sub DisplayCountries() Dim rs As Object rs = CreateObject("ADODB.Recordset") rs.Open("Select * FROM [Country]", cs) Do Until rs.EOF() Response.Write(rs.Fields("Name").value & " ") rs.MoveNext() Loop rs.Close() rs = Nothing End Sub Countries Countries of the World Countries.aspx HTML and ASP separated

7 Mark Dixon Page 7 Example: Countries (v2) Add facility to order list:

8 Mark Dixon Page 8 Example: Countries (code v2) Const cs = "…" Sub DisplayCountries( sql As String ) Dim rs As Object rs = CreateObject("ADODB.Recordset") rs.Open("Select * FROM [Country] " & sql, cs) Do Until rs.EOF() Response.Write(rs.Fields("Name").value & " ") rs.MoveNext() Loop rs.Close() rs = Nothing End Sub Countries Countries of the World <% If Request.Form("btnOrder") <> "" Then DisplayCountries( " ORDER BY [Name]" ) Else DisplayCountries( "" ) End If %> Countries.aspx parameters allow same procedure to do different things  file getting long

9 Mark Dixon Page 9 Adding VB Script file Right click project click 'add new item'

10 Mark Dixon Page 10 Example: Countries (code v3) Countries Countries of the World <% If Request.Form("btnOrder") <> "" Then DisplayCountries(" ORDER BY [Name]") Else DisplayCountries("") End If %> Countries.aspx split code and html into 2 files Const cs = "…" Sub DisplayCountries(sql As String) Dim rs As Object rs = CreateObject("ADODB.Recordset") rs.Open("Select * FROM [Country] " & sql, cs) Do Until rs.EOF() Response.Write(rs.Fields("Name").value & " ") rs.MoveNext() Loop rs.Close() rs = Nothing End Sub Countries.vbs

11 Mark Dixon Page 11 Example: People Database Person PersonIDSurnameForenamesGenderPhoneeMail 1DixonMarkYes01752 232556mark.dixon@plymouth.ac.uk 2SmithJohnYes01752 111111john.smith@john.smith.ac.uk 3JonesSallyNo01752 888888sally.jones@sally.jones.com 4BloggsFredYes01752 123123fred.bloggs@aaaaaa.com 5AndersonGennyNo01752 987987genny@bbbb.cccc.com 6SmithBobYes01752 898898bob.smith@bob-smith.com

12 Mark Dixon Page 12 Example: People (design)

13 Mark Dixon Page 13 Example: People (code v0) 2 pages duplicate same code Const cs = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\databases\People.mdb;Persist Security Info=False" Const adOpenDynamic = 3 Sub DisplayMenu() Response.Write(" ") Response.Write(" People | ") Response.Write(" Person ") Response.Write(" ") End Sub Function PersonName(ByVal r As Object) As String PersonName = r.Fields("Forenames").Value & " " & r.Fields("Surname").Value End Function People <% DisplayMenu Dim rs As Object rs = CreateObject("ADODB.Recordset") rs.Open("Person", cs) Do Until rs.EOF() Response.Write(PersonName(rs) & " ") rs.MoveNext() Loop rs.Close() rs = Nothing %> Const cs = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\databases\People.mdb;Persist Security Info=False" Const adOpenDynamic = 3 Sub DisplayMenu() Response.Write(" ") Response.Write(" People | ") Response.Write(" Person ") Response.Write(" ") End Sub Function PersonName(ByVal r As Object) As String PersonName = r.Fields("Forenames").Value & " " & r.Fields("Surname").Value End Function Person Page <% DisplayMenu Dim rs As Object rs = CreateObject("ADODB.Recordset") rs.Open("Person", cs, adOpenDynamic) If Session("curID") <> "" Then rs.Find("[ID] = " & Session("curID")) If Request.Form("btnPrev") <> "" Then rs.MovePrevious() ElseIf Request.Form("btnNext") <> "" Then rs.MoveNext() End If Session("curID") = CStr(rs.Fields("ID").Value) Response.Write(PersonName(rs) & " ") rs.Close() rs = Nothing %> Person.aspx People.aspx

14 Mark Dixon Page 14 Example: People (code v1) People <% DisplayMenu Dim rs As Object rs = CreateObject("ADODB.Recordset") rs.Open("Person", cs) Do Until rs.EOF() Response.Write( PersonName (rs) & " ") rs.MoveNext() Loop rs.Close() rs = Nothing %> Const cs = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\People.mdb;Persist Security Info=False" Const adOpenDynamic = 3 Sub DisplayMenu() Response.Write(" ") Response.Write(" People ") Response.Write(" Person ") Response.Write(" ") End Sub Function PersonName(r As Object) As String PersonName = r.Fields("Forenames").Value & " " & r.Fields("Surname").Value End Function Person Page <% DisplayMenu Dim rs As Object rs = CreateObject("ADODB.Recordset") rs.Open("Person", cs, adOpenDynamic) If Session("curID") <> "" Then rs.Find("[ID] = " & Session("curID")) If Request.Form("btnPrev") <> "" Then rs.MovePrevious() ElseIf Request.Form("btnNext") <> "" Then rs.MoveNext() End If Session("curID") = CStr(rs.Fields("ID").Value) Response.Write( PersonName (rs) & " ") rs.Close() rs = Nothing %> Person.aspx People.aspx _People.vbs 2 pages –share same code change one place

15 Mark Dixon Page 15 Tutorial Exercise: Countries Task 1: Get the countries example (from the lecture) working. Task 2: Modify your page to display more information about each country. Task 3: Add an unordered button to your page. Task 4: Add an order by population button to your page

16 Mark Dixon Page 16 Tutorial Exercise: People Task 1: Get the people example from the lecture working. Task 2: Modify your page to display more information about each person. Task 3: Modify your page so that the user can order the list of people.

17 Mark Dixon Page 17 Tutorial Exercise: Assignment Task 1: Use module (files) and procedures in your assignment.


Download ppt "Mark Dixon Page 1 20 – Modular Design in ASP. Mark Dixon Page 2 Session Aims & Objectives Aims –Highlight modular design techniques in ASP Objectives,"

Similar presentations


Ads by Google