Контекст этого вопроса заключается в том, что я пытаюсь отладить проблемы с производительностью (кроме очевидных, о которых я уже знаю и могу найти).
Я унаследовал кодовую базу (VB.NET) для приложения ASP.NET. Это приложение, которое было разработано еще в дни .NET 1.1, и было первым приложением .NET для многих разработчиков, которые над ним работали.
В этой базе кода находится класс DatabaseUtility, который содержит несколько общих общедоступных методов, а также непубличные общедоступные функции и вспомогательные элементы для операций CRUD для базы данных (SQL Server).
В моем "BL" часто встречается метод, который создает экземпляр DatabaseUtility, который, по сути, выясняет, какой должна быть строка соединения, и открывает соединение, а также дает разработчику указатель на другие методы, содержащиеся в нем. .
Dim utility as New DatabaseUtility()
Получив это, я начинаю создавать параметры, которые собираюсь передать одному из методов в DatabaseUtility (например, GetDataSet). В моей DatabaseUtility есть метод Shared, называемый CreateParameter, который делает это по существу. Он создает объект SqlParameter, поэтому я могу добавить его в коллекцию параметров.
Теперь кодовая база изобилует этим:
utility.CreateParameter(...)
Однако, поскольку CreateParameter является методом общего доступа, я не уверен, что происходит за кулисами. Я знаю, потому что это общий член, что экземпляр DatabaseUtility не создается, когда я называю его так:
DatabaseUtility.CreateParameter(...)
Однако, поскольку я вызываю его из экземпляра (утилиты), это вообще меняет поведение?