13. december 2004 - 08:13Der er
6 kommentarer og 2 løsninger
Genbruge kode / funktioner / subs
Jeg er igang med at lære ASP.NET - primært VB, da det er dét, jeg er vant til, at programmere asp i.
Det går fremad, men jeg er lidt i tvivl om, hvordan jeg kan genbruge kode, der allerede ér lavet i et projekt / applikation.
Før lavede jeg en include fil med alle mine funktioner og subs i, men det skulle vist ikke længere være nødvendigt længere. Jeg HAR været forbi en masse MSDN, diverse bøger og så videre og så videre.
Er der en, der kan forklare det på dansk, på en måde, selv jeg kan fatte?
Efter ti år i London, Madrid, Paris og Utrecht kommer Sabios AI-fokuserede program af arrangementer om kundeoplevelser, ‘Disrupt’, for første gang til Danmark.
ByteFx er en genbrugelig komponent du kan bruge til at kommunikere med et MySql-database med.
Hvis du sørger for at lægge den i din binfolder kan du sørge for at der bliver "kigget i den" sådan her : <%@ assembly name="ByteFX.MySqlClient" %>
For at slippe for at angive det fulde navn på de klasser du vil bruge fra denne assembly kan du sørge for at importere namespacet sådan her : <%@ import Namespace="ByteFX.Data.MySqlClient" %>
altså.... "bytefx-klodsen" er bare et eksempel på en genbrugelig komponent. det kunne ligeså godt have været en du selv havde lavet ved at producere at library som arne skrev.
der er nogle praktiske forskelle på hvordan du gør det, afhængig af udviklingsværktøj.... bruger du visual studio eller ?
Ok - Jeg har lavet en chat applikation, hvor fx. disse elementer indgår:
Sub brugerlisteopdater() Dim i As Integer Dim User, xid, rid As String Dim Remove As ArrayList = New ArrayList Dim BrRum As Array
Application.Set(Session("Name"), TimeOfDay)
For i = 0 To Application.Count - 1 If Application.GetKey(i) <> "Conversation" Then If DateDiff("s", Application(i), TimeOfDay) > 20 Then Remove.Add(Application.GetKey(i)) End If End If Next
If Remove.Count > 0 Then Application.Lock() For Each User In Remove BrRum = Split(User, "Chat") brugerindogud(BrRum(0), BrRum(1)) opdaterbrugerrum(BrRum(1)) Application.Remove(User) Next Application.UnLock() End If End Sub Sub brugerindogud(ByVal rid, ByVal xid) Dim myConnection As String ' If the connection string is null, use a default.myConnection As String If myConnection = "" Then myConnection = "DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost;DATABASE=XXXXXXXXXXX;USER=XXXXXXXXXXX;PASSWORD=XXXXXXXXXXX; OPTION=3" End If Dim myConn As New OdbcConnection(myConnection) Dim myInsertQuery As String = "INSERT INTO chat (chatbesked,xid,tid,room) values (" myInsertQuery = myInsertQuery & "'" & findBrugereUd(xid) & " Har forladt chatten " & DatePart("d", Now) & "-" & DatePart("m", Now) & "-" & DatePart("yyyy", Now) & " kl. " & DatePart("h", Now) & ":" & DatePart("n", Now) & ":" & DatePart("s", Now) & "'" myInsertQuery = myInsertQuery & ",18,'" & DatePart("yyyy", Now) & "-" & DatePart("m", Now) & "-" & DatePart("d", Now) & "" & DatePart("h", Now) & ":" & DatePart("n", Now) & ":" & DatePart("s", Now) myInsertQuery = myInsertQuery & "'," & rid 'tal myInsertQuery = myInsertQuery & ")" 'Response.Write(myInsertQuery) Dim myOdbcCommand As New OdbcCommand(myInsertQuery) myOdbcCommand.Connection = myConn myConn.Open() myOdbcCommand.ExecuteNonQuery() myOdbcCommand.Connection.Close()
End Sub Sub opdaterbrugerrum(ByVal xid) Dim myConnection As String myConnection = "DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost;DATABASE=XXXXXXXXXXX;USER=XXXXXXXXXXX;PASSWORD=XXXXXXXXXXX; OPTION=3" Dim myConn As New OdbcConnection(myConnection) Dim myUpdateQuery As String = "UPDATE xxxxxx " myUpdateQuery = myUpdateQuery & "set FElt=0" myUpdateQuery = myUpdateQuery & " where xxx=" & xid Dim myOdbcCommand As New OdbcCommand(myUpdateQuery) myOdbcCommand.Connection = myConn myConn.Open() myOdbcCommand.ExecuteNonQuery() myOdbcCommand.Connection.Close()
End Sub Function findBrugere(ByVal Bxid) Dim strConnection As String = "DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost;DATABASE=XXXXXXXXXXX;XXXXXXXXXXX=root;PASSWORD=XXXXXXXXXXX; OPTION=3" Dim objConnection As OdbcConnection = New OdbcConnection(strConnection) Dim brugernavn, gender, profil, fraBruger As String Dim antal, x As Integer Dim strSQL, s As String Bxid = Bxid.ToString Dim objCommand As OdbcCommand Dim objDataReader As OdbcDataReader objConnection.Open() strSQL = "Select xid,brugernavn,profil,gender, userlevel from brugere where xid = " & Bxid objCommand = New OdbcCommand(strSQL, objConnection) objDataReader = objCommand.ExecuteReader(CommandBehavior.CloseConnection) While objDataReader.Read() Bla. Bla. Bla. Bla. Bla. End While objDataReader.Close() End Function Function findBrugereUd(ByVal Bxid) Dim strConnection As String = "DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost;DATABASE=XXX;USER=XXXX;PASSWORD=XXXXXXXXXXX; OPTION=3" Dim objConnection As OdbcConnection = New OdbcConnection(strConnection) Dim brugernavn As String Dim strSQL, s As String Bxid = Bxid.ToString Dim objCommand As OdbcCommand Dim objDataReader As OdbcDataReader objConnection.Open() strSQL = "Select xid,xrugernavn,xrofil,xender from xxx where xid = " & Bxid objCommand = New OdbcCommand(strSQL, objConnection) objDataReader = objCommand.ExecuteReader(CommandBehavior.CloseConnection) While objDataReader.Read() findBrugereUd = objDataReader("brugernavn") End While objDataReader.Close() End Function
i en side ved navn chat.aspx
Jeg bruger VS .net 2003, så koden kompileres hver gang jeg gemmer.
Den starter således:
Public Class Chat Inherits System.Web.UI.Page
Vil det så sige, at jeg vil kunne genbruge disse elementer i andre sider i applikationen, ved at skrive <%@ import Namespace="Chat" %>
hvis du bruger visual studio, og bruger miljøet til at oprette dine sider, vil de som udgangspunkt ligger i samme namespace.
hvis du vil lave kontroller til genbrug kan du enten oprette dig nogle usercontrols (giver dig en ascx-fil du kan lave dit layout i, og en code-behind fil). sådanne kontroller kan du bare trække ind på siden i vs.
ellers kan du lave dig et regulært kontrolbibliotek (en projekttype du har mulighed for at vælge), og i det bygge nogle kontroller op i ren kode. du vil kunne sætte dem op i din toolbox på samme måde som dem der ligger der i forvejen.
mvh
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.