webForumDet fria alternativet

struktur

4 svar · 327 visningar · startad av henrikjohansson

henrikjohanssonMedlem sedan maj 2000360 inlägg
#1

Jag har började kolla på .net för ca 3 veckor sedan och har exprimenterat lite. Nu har jag kommit en bit på en sida jag håller på med och skulle vilja ha hjälp med strukturen..

är detta en bra struktur eller är det dålig? vad bör jag ändra?
m.m.
och eftersom jag kan lite VB6.0 så tänkte jag börja med VB men när jag har lite mer kött på benen så skall jag eventuellt gå över till C#..

ASPX-filen

<%@ Page Language="vb" AutoEventWireup="false" Codebehind="personal.aspx.vb" Inherits="JagBaraTestar.personal"%>
<%@ Import namespace="JagBaraTestar.Klasser" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
	<HEAD>
		<title>personal</title>
		<meta content="Microsoft Visual Studio.NET 7.0" name="GENERATOR">
		<meta content="Visual Basic 7.0" name="CODE_LANGUAGE">
		<meta content="JavaScript" name="vs_defaultClientScript">
		<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
		<LINK href="Styles.css" type="text/css" rel="stylesheet">
	</HEAD>
	<body MS_POSITIONING="FlowLayout">
		<form id="Form1" method="post" runat="server">
			<asp:repeater id="repPersonal" runat="server">
				<ItemTemplate>
					<tr>
						<td>
							<span class="PersonalNamn">
								<%#fixtext(Container.dataitem("EfterNamn") & ", " & Container.dataitem("ForNamn"),true)%>
							</span>
							<br>
							<span class="PersonalTitel">
								<%#Fixtext(Container.dataitem("Titel"),true)%>
							</span>
							<br>
							<span class="Personal"><a href="Mail" class="Personal">
									<%#Fixtext(Container.dataitem("email"),true)%>
								</a></span>
							<br>
							<span class="Personal">
								<%#fixtext(Container.dataitem("telnr"),true)%>
							</span>
							<br>
							<br>
							<span class="Personal">
								<%#fixtext(Container.dataitem("Texten"),true)%>
							</span>
						</td>
						<td width="100">
							<%#Bild("personal/" & Container.dataitem("bild"),"")%>
						</td>
					</tr>
				</ItemTemplate>
				<HeaderTemplate>
					<table width="100%">
				</HeaderTemplate>
				<FooterTemplate>
					</table>
				</FooterTemplate>
				<SeparatorTemplate>
					<tr>
						<td height="4" style="BACKGROUND-IMAGE: url(img/dotted.gif); BACKGROUND-REPEAT: repeat-x" colspan="2">&nbsp;</td>
					</tr>
				</SeparatorTemplate>
			</asp:repeater>
		</form>
	</body>
</HTML>

ASPX.VB filen

Imports JagBaraTestar.Klasser
Public Class personal
    Inherits System.Web.UI.Page
    Protected WithEvents DLpersonal As System.Web.UI.WebControls.DataList
    Protected WithEvents DataList1 As System.Web.UI.WebControls.DataList
    Protected WithEvents DataGrid1 As System.Web.UI.WebControls.DataGrid
    Protected WithEvents repPersonal As System.Web.UI.WebControls.Repeater
#Region " Web Form Designer Generated Code "

    'This call is required by the Web Form Designer.
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

    End Sub

    Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
        'CODEGEN: This method call is required by the Web Form Designer
        'Do not modify it using the code editor.
        InitializeComponent()
    End Sub

#End Region
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'Put user code to initialize the page here
        Dim iID As Integer = Val(Request.QueryString("ID"))
        If Not IsPostBack Then
            Personalen.SattPersonal()
            Personalen.Fillobj(repPersonal)

        End If
    End Sub
End Class

och klasser.vb

Imports System.Data.OleDb
Imports System.Web.HttpUtility

Imports System.Web.Mail

Namespace Klasser
    Public Module Funktioner
        Private Con As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\Inetpub\db.mdb")

        Private DTnyheter As New DataTable()
        Private DAnyheter As OleDbDataAdapter
        Private sSQLnyheter As String = "SELECT * FROM nyheter order by Datum DESC"

        Private DThistorik As New DataTable()
        Private DAhistorik As OleDbDataAdapter
        Private sSQLhistorik As String = "SELECT TOP 1 * FROM Historik order by ID DESC"

        Private DTtjanst As New DataTable()
        Private DAtjanst As OleDbDataAdapter
        Private sSQLtjanst As String = "SELECT * FROM Tjanster order by ID DESC"

        Private DTpersonal As New DataTable()
        Private DApersonal As OleDbDataAdapter
        Private sSQLpersonal As String = "SELECT * FROM Personal order by efternamn"

'Här kommer det sedan att ligga fler klasser för Tjänster, Personal m.m och dom är nästan identiska med Nyhet

        Public Class Nyhet
            Shared Sub Sattnyheter()
                DTnyheter.Clear()
                DAnyheter = New OleDbDataAdapter(sSQLnyheter, Con)
                DAnyheter.Fill(DTnyheter)
            End Sub
            Shared Function GetNyheter() As DataTable
                Return DTnyheter
            End Function
            Shared Sub Fillobj(ByVal obj As Object)
                obj.DataSource = DTnyheter
                obj.DataBind()
            End Sub
            Shared Sub NyNyhet(ByVal dDatum As Date, ByVal sTitel As String, ByVal sTexten As String, ByVal sBild As String)
                Dim DRnyheter As DataRow
                DRnyheter = DTnyheter.NewRow()
                DRnyheter("Titel") = sTitel
                DRnyheter("Texten") = sTexten
                DRnyheter("Bild") = sBild
                DRnyheter("datum") = dDatum
                DTnyheter.Rows.Add(DRnyheter)
            End Sub
            Shared Sub RedigeraNyhet(ByVal iRow As Integer, ByVal dDatum As Date, ByVal sTitel As String, ByVal sTexten As String, ByVal sBild As String)
                With DTnyheter.Rows(iRow)
                    .BeginEdit()
                    .Item("Titel") = sTitel
                    .Item("Texten") = sTexten
                    .Item("Bild") = sBild
                    .Item("Datum") = dDatum
                    .EndEdit()

                End With

            End Sub
            Shared Sub Spara(ByVal obj As Object)

                Dim custCB As OleDbCommandBuilder = New OleDbCommandBuilder(DAnyheter)

                If Not Con.State = ConnectionState.Open Then
                    Con.Open()

                End If

                Dim hej = DAnyheter.Update(DTnyheter)
                nyhet.Sattnyheter()
                nyhet.Fillobj(obj)
                Con.Close()
            End Sub
            Shared Sub Tabort(ByVal iRow As Integer, ByVal obj As Object)

                With DTnyheter.Rows(iRow)
                    .BeginEdit()
                    .Delete()
                    .EndEdit()

                End With
                'DTnyheter.Rows.RemoveAt(iRow)
                nyhet.Spara(obj)

            End Sub
        End Class
      

        'Publika funktioner ligger här

    End Module
End Namespace
LeffoMedlem sedan juni 200239 inlägg
#2

Hur du kodar är helt upp till dig själv, jag kan inte säga att det är en bra struktur eller inte, eller jo just nu kan jag det för det ser lite ut som min struktur ;)
Men vad känner du själv? det är ju en smaksak och alla vet ju vad smaken är. Välj en struktur du trivs med och kör på den och strunta i vad andra tycker och tänker!

henrikjohanssonMedlem sedan maj 2000360 inlägg
#3

ok.. isf så fortsätter jag såhär :D det är typ samma struktur som jag körde i gamla asp också :OO

h0lgerMedlem sedan nov. 2002105 inlägg
#4

Det finns ett antal trådar här inne som diskuterar strukturer och olika för- och nackdelar med dessa.

Välj en struktur som passar dig och som du kan växa med. Tänk inte bara på problemet som skall lösas idag utan det som kan tänkas komma om ett år.

PMedlem sedan jan. 20012 204 inlägg
#5

Om ett år.... en stor applikation!

143 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
140 ms — hämta tråd, inlägg och bilagor (db)