Вызов класса в ASP.NET - PullRequest
       18

Вызов класса в ASP.NET

1 голос
/ 28 марта 2009

Я знаю свой ASP.NET, но я должен признать, что я тупой с классами и не уверен, как они работают точно. Также еще не работал с ними, но я хочу. Но я знаю, что это место, где я могу сохранить правильный код для повторного использования? Как мой класс будет выглядеть с моим кодом?

Так что это мой код, который я использую на 3 формах - но я хочу сохранить его в 1 месте и просто вызвать его, как когда я нажимаю на btnSubmit.

Dim strConnection As String = ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString
    Dim con As SqlConnection = New SqlConnection(strConnection)
    Dim cmd As SqlCommand = New SqlCommand
    Dim objDs As DataSet = New DataSet
    Dim dAdapter As SqlDataAdapter = New SqlDataAdapter

    cmd.Connection = con
    cmd.CommandType = CommandType.Text
    cmd.CommandText = "SELECT distinct FIELD FROM TABLE order by FIELD"

    dAdapter.SelectCommand = cmd
    con.Open()
    dAdapter.Fill(objDs)
    con.Close()

    If (objDs.Tables(0).Rows.Count > 0) Then

        lstDropdown.DataSource = objDs.Tables(0)
        lstDropdown.DataTextField = "FIELD"
        lstDropdown.DataValueField = "FIELD"
        lstDropdown.DataBind()
        lstDropdown.Items.Insert(0, "Please Select")
        lstDropdown2.Items.Insert(0, "Please Select")

    Else

        lblMessage.Text = "* Our Database seem to be down!"

    End If

Что я должен поставить здесь, чтобы выполнить мой код выше?

Protected Sub btnSubmit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSubmit.Click

    ?????????????????????????????????

    End Try

End Sub

Etienne

Ответы [ 4 ]

2 голосов
/ 28 марта 2009

Класс (в VB.Net) определяется так

Public Class Person

private _firstName as string
private _lastName as string

'''Constructor with no params
public Sub New()
  _firstName = ""
  _lastName = ""
End Sub

'Contructor with params
Public Sub New(FirstName as String, LastName as String)
  _firstName = FirstName
  _lastName = LastName
End Sub

Public Property FirstName As String
 Get
  return _firstName
 End Get
 Set(value as String)
  _firstName = value
 End Set
End Property

Public Property LastName As String
     Get
      return _lastName
     End Get
     Set(value as String)
      _lastName = value
     End Set
    End Property

Public Function HitHomeRun() As Boolean
  ....'Do some stuff here
End Function
End Class

Затем вы можете создать экземпляр класса и вызвать его членов.

Dim p as New Person()
p.FirstName = "Mike"
p.LastName = "Schmidt"

dim IsHomeRunHit As Boolean = p.HitHomeRun()

Узнайте больше о создании и использовании классов в VB.Net.

Это очень большая тема, и ее можно определить по-разному. Но, как правило, вы решаетесь на архитектуру N-уровня.

Уровень доступа к данным
Бизнес Логика
UI Logic

Теперь способ, которым класс может быть построен в вашем вопросе, может быть сделан, но в конечном счете подвержен ужасу обслуживания, и модифицируемость сокращается. Не говоря уже об очень подверженных ошибкам. Использование любого типа кода доступа к данным на уровне пользовательского интерфейса - плохая практика.

Именно здесь способность иметь отдельные уровни классов (разделение задач) на каждом уровне дает вам возможность повторно использовать код и возможность легко модифицировать его для будущих расширений / функций и т. Д. Это очень важно для архитектуры ПО широкую тему поставить в один пост.

Но если вам действительно интересно, вот несколько ссылок, которые укажут вам правильные направления.

  1. N-уровневая архитектура из Википедии
  2. Уровень доступа к данным
  3. Уровень бизнес-логики
  4. Мартин Фаулер - эксперт по архитектуре

Существует программное обеспечение, которое облегчает боль DAL.
1. Linq-To-SQL возможность запрашивать ваши данные через .Net Objects (скомпилированные запросы)
2. Entity Framework Версия 2 Linq-To-SQL

И это может эффективно заменить весь ваш код SQL.

1 голос
/ 28 марта 2009

Если вы хотите повторно использовать код, вы должны поместить его в отдельный проект. Таким образом, вы можете добавить этот проект в различные решения (или просто ссылаться на скомпилированную dll).

В своем веб-проекте вы добавляете ссылку на проект (или в dll, если вы скомпилировали его ранее и не хотите добавлять проект в решение).

В ваш новый проект вы добавляете файл класса, например с именем UIHelper. В скелете класса, который создан для вас, вы добавляете метод. Поскольку класс находится в отдельном проекте, он не знает об элементах управления на странице, поэтому вы должны отправить ссылки на элементы в вызове метода:

Public Shared Sub PopulateDropdowns(lstDropdown As DropDownList, lstDropdown2 As DropDownList)

   ... here goes your code

End Sub

На вашей странице вы называете это со ссылками на выпадающие списки, которые у вас есть на странице:

UIHelper.PopulateDropdowns(lstDropdown, lstDropdown2)

Это поможет вам начать. Об использовании классов можно узнать намного больше ...

0 голосов
/ 29 марта 2009

Я думаю, вам следует изучить использование дизайнерских инструментов Visual Studio для доступа к данным и их привязки. Поиск набранных наборов данных

0 голосов
/ 28 марта 2009

Я иногда создаю «Общий» класс и помещаю в него публичные методы Shared, которые я хочу вызывать из разных мест.

Что-то вроде этого:

Public Class Common

Public Shared Sub MyMethod
  'Do things.
End Sub

End Class

Я бы тогда назвал это с помощью:

Common.MyMethod

Очевидно, что вы можете определить подфункцию / функцию, которая принимает параметры, которые вам необходимы.

Извините, если мой код VB.NET немного не работает. Я обычно использую C #.

...