Asked by:
VS Extension - Creation

Question
-
Hi
Hoping itsd ok to post here, I did look at the Visual Studio forum but there wasn't a category that suited and as this would involve a visual basic project, I thought that would be the better place.
Im ok with VB.Net, never made a VS addin before so im looking for some direction / advice. I find that in all of my projects i copy / paste a standard framework of BLL DAL classes for database connection & retrieval. While i dont mind doing that, i thought it would be good to make an addin instead that let me populate a form and create the BLL DAL's instead? Im sure its possible but im yet to find out how. Here was my idea-
- Have a standard scaffold code set up with parameters that i could replace as properties.
- display a form with datagrid or listbox and add properties and property type to the list
- add the list of properties to the relevant class
- add the property names to the class functions as needed.
- create the classes and place them into a project folder DATA/BLL & DATA/DAL
- Check for existing classes
Ive added my BLL DAL code here to give an idea of what i am working with. Are there any good tutorials i can follow that give reasonable explanations? Specifically in the replacement of parameters with properties.
I figured that I could add parameters to NameSpace, Class name, Namespace.Class calls, Properties, Function calls. I can write this in vb.net, just not sure how to approach it as a VS extension. Are there any templates available that would help me understand more? There aren't any with my version of VS (2017)
BLL
Imports Microsoft.VisualBasic Namespace TestApp.BLL Public Class TestData #Region "Globals" Dim ED_DAL As TestApp.DAL.TestData = New TestApp.DAL.TestData #End Region #Region "Methods" Public Function SelectTestData(ByVal idNumber As String) As List(Of TestApp.BLL.TestData_details) SelectTestData = ED_DAL.SelectTestData(idNumber) End Function Public Function UpdateTestData(ByVal id As Integer, ByVal idNumber As String, ByVal type As String, ByVal parent As String, ByVal propertyName As String, ByVal propertyValue As String) As List(Of TestApp.BLL.TestData_details) UpdateTestData = ED_DAL.UpdateTestData(id, idNumber, type, parent, propertyName, propertyValue) End Function Public Sub DeleteTestData(ByVal id As Integer) ED_DAL.DeleteTestData(id) End Sub Public Function InsertTestData(ByVal id As Integer, ByVal idNumber As String, ByVal type As String, ByVal parent As String, ByVal propertyName As String, ByVal propertyValue As String) As List(Of TestApp.BLL.TestData_details) InsertTestData = ED_DAL.InsertTestData(id, idNumber, type, parent, propertyName, propertyValue) End Function #End Region End Class Public Class TestData_details #Region "Properties" Public Property _id As Integer = 0 Public Property _idNumber As String = String.Empty Public Property _type As String = String.Empty Public Property _parent As String = String.Empty Public Property _propertyName As String = String.Empty Public Property _propertyValue As String = String.Empty #End Region #Region "Constructors" Public Sub New() End Sub Public Sub New(ByVal Id As Integer, ByVal IdNumber As String, ByVal Type As String, ByVal Parent As String, ByVal PropertyName As String, ByVal PropertyValue As String) Me._id = Id Me._idNumber = IdNumber Me._parent = Parent Me._type = Type Me._parent = Parent Me._propertyName = PropertyName Me._propertyValue = PropertyValue End Sub #End Region End Class End Namespace
DAL
Imports System.Data Imports System.Data.SqlClient Namespace TestApp.DAL Public Class TestData #Region "Globals" Dim ED_Conn As ClassConn = New ClassConn() Dim conn As SqlConnection = ED_Conn.GetConnection() #End Region #Region "Methods" Public Function SelectTestData(ByVal idNumber As String) As List(Of TestApp.BLL.TestData_details) SelectTestData = New List(Of TestApp.BLL.TestData_details) Dim cmd As New SqlCommand("dbo.usp_tblTestDataSelect", conn) With { .CommandType = CommandType.StoredProcedure } 'update stored proc cmd.Parameters.Add(New SqlParameter("@idNumber", idNumber)) 'update param Try conn.Open() Dim reader As SqlDataReader = cmd.ExecuteReader() SelectTestData = ConvertTestData(reader) Catch ex As Exception 'Do Some Error Handling Here... Finally If (conn.State = ConnectionState.Open) Then conn.Close() End If End Try End Function Public Function UpdateTestData(ByVal id As Integer, ByVal idNumber As String, ByVal type As String, ByVal parent As String, ByVal propertyName As String, ByVal propertyValue As String) As List(Of TestApp.BLL.TestData_details) UpdateTestData = New List(Of TestApp.BLL.TestData_details) Dim cmd As New SqlCommand("dbo.usp_tblTestDataUpdate", conn) With { .CommandType = CommandType.StoredProcedure } 'update stored proc 'cmd.Parameters.Add(New SqlParameter("@ID", id)) cmd.Parameters.Add(New SqlParameter("@idNumber", idNumber)) cmd.Parameters.Add(New SqlParameter("@Type", type)) cmd.Parameters.Add(New SqlParameter("@Parent", parent)) cmd.Parameters.Add(New SqlParameter("@Value", parent)) cmd.Parameters.Add(New SqlParameter("@PropertyName", propertyName)) cmd.Parameters.Add(New SqlParameter("@PropertyValue", propertyValue)) Try conn.Open() Dim reader As SqlDataReader = cmd.ExecuteReader() UpdateTestData = ConvertTestData(reader) Catch ex As Exception 'Do Some Error Handling Here... Finally If (conn.State = ConnectionState.Open) Then conn.Close() End If End Try End Function Public Sub DeleteTestData(ByVal id As Integer) Dim cmd As New SqlCommand("dbo.usp_tblTestDataDelete", conn) With { .CommandType = CommandType.StoredProcedure } cmd.Parameters.Add(New SqlParameter("@ID", id)) Try conn.Open() cmd.ExecuteNonQuery() Catch ex As Exception 'Do Some Error Handling Here... Finally If (conn.State = ConnectionState.Open) Then conn.Close() End If End Try End Sub Public Function InsertTestData(ByVal id As Integer, ByVal idNumber As String, ByVal type As String, ByVal parent As String, ByVal propertyName As String, ByVal propertyValue As String) As List(Of TestApp.BLL.TestData_details) InsertTestData = New List(Of TestApp.BLL.TestData_details) Dim cmd As New SqlCommand("dbo.usp_tblTestDataInsert", conn) With { .CommandType = CommandType.StoredProcedure } 'cmd.Parameters.Add(New SqlParameter("@ID", id)) cmd.Parameters.Add(New SqlParameter("@idNumber", idNumber)) cmd.Parameters.Add(New SqlParameter("@Type", type)) cmd.Parameters.Add(New SqlParameter("@Parent", parent)) cmd.Parameters.Add(New SqlParameter("@PropertyName", propertyName)) cmd.Parameters.Add(New SqlParameter("@PropertyValue", propertyValue)) Try conn.Open() Dim reader As SqlDataReader = cmd.ExecuteReader() InsertTestData = ConvertTestData(reader) Catch ex As Exception 'Do Some Error Handling Here... Finally If (conn.State = ConnectionState.Open) Then conn.Close() End If End Try End Function #End Region #Region "Helpers" Protected Function ConvertTestData(ByVal reader As SqlDataReader) As List(Of TestApp.BLL.TestData_details) ConvertTestData = New List(Of TestApp.BLL.TestData_details) If reader.HasRows Then While reader.Read ConvertTestData.Add(New TestApp.BLL.TestData_details(CInt(reader("ID")), reader("idNumber").ToString(), reader("Type").ToString(), reader("Parent").ToString(), reader("PropertyName").ToString(), reader("PropertyValue").ToString())) End While End If End Function #End Region End Class End Namespace
Any guidance is greatly appreciated
Thanks
Nacho
I am here to ask questions and learn from others. Cor Ligthert DO NOT REPLY TO ANY OF MY POSTS!!
- Changed type NachoShaw Thursday, September 17, 2020 1:00 PM
- Changed type NachoShaw Thursday, September 17, 2020 1:01 PM wrong forum
- Moved by Xingyu ZhaoMicrosoft contingent staff Friday, September 18, 2020 3:16 AM
Thursday, September 17, 2020 2:16 AM
All replies
-
Hi NachoShaw,
Thank you for posting here.
You are more likely to get more efficient responses to Visual Studio Extensions issues at vs-extensions(Q&A) forum where you can contact vs experts. Thanks.
Best Regards,
Xingyu Zhao
MSDN Community Support
Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.Thursday, September 17, 2020 7:12 AM -
Thanks
i have raised the question there now. I couldnt remove this post so please if anyone wants to continue, visit this post
Thanks
I am here to ask questions and learn from others. Cor Ligthert DO NOT REPLY TO ANY OF MY POSTS!!
Thursday, September 17, 2020 1:03 PM