Visual Studio Add In


Author
Message
Paul Chase
Paul Chase
Advanced StrataFrame User (510 reputation)Advanced StrataFrame User (510 reputation)Advanced StrataFrame User (510 reputation)Advanced StrataFrame User (510 reputation)Advanced StrataFrame User (510 reputation)Advanced StrataFrame User (510 reputation)Advanced StrataFrame User (510 reputation)Advanced StrataFrame User (510 reputation)Advanced StrataFrame User (510 reputation)
Group: Forum Members
Posts: 414, Visits: 2.8K
I wrote this add-in to save myself some time while working on a project I am doing that has lots of lookup tables and views. It took me a bit longer that I thought but it was interesting.I think it's a useful utility and add-in example to share with all of you. Hope it helps

I put this together LATE last night and finshed tonight so beware Smile there might be a mosquito just waiting to stingBigGrin.

I added a few screenshots, a zip with the source andv a zip containing the addin and the .dll you can just unzip to your C:\Documents and Settings\[username]\My Documents\Visual Studio 2008\Addins or wherever you addins directory is.

Gotta go Enjoy

Paul

Currently to set up a bo

1.Add each business object(s)  to VisualStudio--- for 10 Bo's do this step 10 times

2.Launch the business object mapper

3.Configure the project

4.Configure the each Business Object--- for 10 Bo's do this step 10 times

5. Build the partial class(s). You would select the table and views you wich to create 

With Add In

1. Launch BoGenerator

2.Configure project (Same as step 3 above)

3.Select multiple Table(s) and View(s) from list.

4.Generate Business Object --- for 10 bo's it add's all 10 bo's to project and also configures the business object

5.Auto Launches the bo mapper then Build Partial Classes (Same as step 5)

Attachments
mainform.png (450 views, 34.00 KB)
mainformtables.png (426 views, 41.00 KB)
source.zip (353 views, 988.00 KB)
Addin.zip (345 views, 46.00 KB)
Trent Taylor
Trent Taylor
StrataFrame Developer (8.5K reputation)StrataFrame Developer (8.5K reputation)StrataFrame Developer (8.5K reputation)StrataFrame Developer (8.5K reputation)StrataFrame Developer (8.5K reputation)StrataFrame Developer (8.5K reputation)StrataFrame Developer (8.5K reputation)StrataFrame Developer (8.5K reputation)StrataFrame Developer (8.5K reputation)
Group: StrataFrame Developers
Posts: 6.6K, Visits: 6.9K
I will have to take a look, Paul.  Thanks for the contribution!
Edhy Rijo
E
StrataFrame VIP (3.7K reputation)StrataFrame VIP (3.7K reputation)StrataFrame VIP (3.7K reputation)StrataFrame VIP (3.7K reputation)StrataFrame VIP (3.7K reputation)StrataFrame VIP (3.7K reputation)StrataFrame VIP (3.7K reputation)StrataFrame VIP (3.7K reputation)StrataFrame VIP (3.7K reputation)
Group: StrataFrame Users
Posts: 2.4K, Visits: 23K
Hi Paul,

Thanks a lot for this contribution, this is a major tool specially for new SF developers.

Trent L. Taylor (04/12/2008)
I will have to take a look, Paul.  Thanks for the contribution!

Trent, have you look at this yet?  I see a lot of benefits in adding this kind of automation to SF. Hehe

Edhy Rijo

Alex Luyando
Alex Luyando
StrataFrame User (184 reputation)StrataFrame User (184 reputation)StrataFrame User (184 reputation)StrataFrame User (184 reputation)StrataFrame User (184 reputation)StrataFrame User (184 reputation)StrataFrame User (184 reputation)StrataFrame User (184 reputation)StrataFrame User (184 reputation)
Group: StrataFrame Users
Posts: 112, Visits: 1.2K
Paul -



Awesome... Was just discussing yesterday how semi-tedious it can be to build multiple business objects, and how an add-in could save the day. Wish I had seen this posting about eight business objects ago!! LOL



Thanks a bunch!

________________
_____/ Regards,
____/ al
Alex Luyando
Alex Luyando
StrataFrame User (184 reputation)StrataFrame User (184 reputation)StrataFrame User (184 reputation)StrataFrame User (184 reputation)StrataFrame User (184 reputation)StrataFrame User (184 reputation)StrataFrame User (184 reputation)StrataFrame User (184 reputation)StrataFrame User (184 reputation)
Group: StrataFrame Users
Posts: 112, Visits: 1.2K
Ugh.... what a tease! LOL



Add-in installed and fires up nicely. Select the tables I want BOs for then click Generate Business Objects, hear a bong and see a Wait Window flash in upper right (too fast to even see text) and get the problem asking if I want to run the BOM. Looking at the solution and the BOM none of the business objects were built. Sad



Any ideas?



Thanks.

________________
_____/ Regards,
____/ al
Paul Chase
Paul Chase
Advanced StrataFrame User (510 reputation)Advanced StrataFrame User (510 reputation)Advanced StrataFrame User (510 reputation)Advanced StrataFrame User (510 reputation)Advanced StrataFrame User (510 reputation)Advanced StrataFrame User (510 reputation)Advanced StrataFrame User (510 reputation)Advanced StrataFrame User (510 reputation)Advanced StrataFrame User (510 reputation)
Group: Forum Members
Posts: 414, Visits: 2.8K
Hi Alex,

It has been awhile since I made the add-in I mainly made it for a project that had a lot of existing lookup tables and such. I think what is happening to you is you don't have a project selected in the solution, when the addin goes to create the business object it creates it in the project that is selected in soultion explorer. I had a look at the code and that is probably the problem.I checked for the possibility that the project wasnt selected but did not show the error and exit the sub like a I should have.

To verify make sure you have the project you want to create the business objects in selected in solution explorer prior to generating business objects and it should work ok. I will fix the code and repost it if I get a chance later today or you can make the change it is in the following method.

Private Sub CreateAndAddBusinessObjects()

 

Paul

Paul Chase
Paul Chase
Advanced StrataFrame User (510 reputation)Advanced StrataFrame User (510 reputation)Advanced StrataFrame User (510 reputation)Advanced StrataFrame User (510 reputation)Advanced StrataFrame User (510 reputation)Advanced StrataFrame User (510 reputation)Advanced StrataFrame User (510 reputation)Advanced StrataFrame User (510 reputation)Advanced StrataFrame User (510 reputation)
Group: Forum Members
Posts: 414, Visits: 2.8K
Actually here is the Corrected Code, figured might as well do it while i had it open

Private Sub CreateAndAddBusinessObjects()

'Variables

Dim LcTableName, Lcfilename As String

If Me.ListView_Views.CheckedItems.Count + Me.ListView1.CheckedItems.Count = 0 Then

'nothing selected

Exit Sub

End If

'Make sure we have a project

Try

If Not _Project Is Nothing Then

' I could probably make this a bit more dynamic but it works

For Each loitem As ListViewItem In Me.ListView1.CheckedItems

LcTableName = loitem.Text

Me.SqlTableSchema.NavigateToPrimaryKey(LcTableName)

Lcfilename = Me.TxtPreFix.Text & LcTableName & TxtSuffix.Text & ".vb"

If GenerateBusinessObject(Lcfilename) Then

Me.WaitWindow1.ShowWaitWindow("Adding Table " & Lcfilename)

CreateDTE_ProjectItems(SqlTableSchema)

Else

Me.WaitWindow1.ShowWaitWindow("Failed to Add " & Lcfilename)

End If

Me.WaitWindow1.HideWaitWindow()

Next

For Each loitem As ListViewItem In Me.ListView_Views.CheckedItems

LcTableName = loitem.Text

Lcfilename = Me.TxtPreFix.Text & LcTableName & TxtSuffix.Text & ".vb"

Me.SqlViewSchema.NavigateToPrimaryKey(LcTableName)

If GenerateBusinessObject(Me.TxtPreFix.Text & LcTableName & TxtSuffix.Text & ".vb") Then

Me.WaitWindow1.ShowWaitWindow("Adding View " & Lcfilename)

CreateDTE_ProjectItems(SqlViewSchema)

Else

End If

Me.WaitWindow1.HideWaitWindow()

Next

Else

'Warn User

MessageBox.Show("You must Select a Project in the Solution Explorer!!", "", MessageBoxButtons.OK, MessageBoxIcon.Error)

'Make sure wait window is hidden

Me.WaitWindow1.HideWaitWindow()

'get outta here

Exit Sub

End If

If MessageBox.Show("All Business Objects have been created " & vbCrLf & vbCrLf & "Would you like to run the business object mapper now?", "Business Object Generator", MessageBoxButtons.YesNo, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1) = System.Windows.Forms.DialogResult.Yes Then

Me.ShowBOMapper()

End If

Me.Close()

Catch ex As Exception

Finally

Me.WaitWindow1.HideWaitWindow()

End Try

End Sub


Alex Luyando
Alex Luyando
StrataFrame User (184 reputation)StrataFrame User (184 reputation)StrataFrame User (184 reputation)StrataFrame User (184 reputation)StrataFrame User (184 reputation)StrataFrame User (184 reputation)StrataFrame User (184 reputation)StrataFrame User (184 reputation)StrataFrame User (184 reputation)
Group: StrataFrame Users
Posts: 112, Visits: 1.2K
Hi Paul -



Thanks for the updated code. I rebuilt the Add-in but am getting the same error.



I started debugging the Add-in and I think the issue is inside GenerateBusinessObject(). An exception is being thrown by the loProjectItem = _Project.DTE.ItemOperations.AddNewItem("Common Items\SF Business Object", FileName) line. The exception message is:



Template 'Common Items\SF Business Object' is not valid for the selected project.



I am relatively new to .Net, so I'm not exactly sure where to go with this. I should, however, disclose the following though, just in case it's germane to this issue.



1.) My project is a C#.



2.) Due to the above I assumed (am I correct) that I needed to change the ".vb"s to ".cs"s in the Add-in. I did this before you provided the updated code, and again afterward.



3.) I do have a custom template (subclass of the StrataFrame business object class) that I am using for my business objects. I tried replacing the "Common Items\SF Business Object" reference with a fully-qualified path to my customized business object template, but that didn't work either.



Any help you can provide is much appreciated. I can see this Add-in being useful when dealing with new databases and projects where there are tons of tables and views to hit against.



Thanks!

________________
_____/ Regards,
____/ al
Paul Chase
Paul Chase
Advanced StrataFrame User (510 reputation)Advanced StrataFrame User (510 reputation)Advanced StrataFrame User (510 reputation)Advanced StrataFrame User (510 reputation)Advanced StrataFrame User (510 reputation)Advanced StrataFrame User (510 reputation)Advanced StrataFrame User (510 reputation)Advanced StrataFrame User (510 reputation)Advanced StrataFrame User (510 reputation)
Group: Forum Members
Posts: 414, Visits: 2.8K
Hi Alex,

Here is a screenshot of the template that I am referencing in the line of code you mentioned, maybe it is named something different is C# ?

Attachments
image.png (281 views, 31.00 KB)
Alex Luyando
Alex Luyando
StrataFrame User (184 reputation)StrataFrame User (184 reputation)StrataFrame User (184 reputation)StrataFrame User (184 reputation)StrataFrame User (184 reputation)StrataFrame User (184 reputation)StrataFrame User (184 reputation)StrataFrame User (184 reputation)StrataFrame User (184 reputation)
Group: StrataFrame Users
Posts: 112, Visits: 1.2K
Paul -



Good Morning!



Thanks... that was the clue I needed. I've got it working, after making a few additional adjustments to deal with VB v. C# differences (e.g., change to Inheritance).



Really appreciate your efforts in creating this BOB and in helping me get it operational in our environment. This baby will get some real use here, I anticipate.



Have a great weekend.

________________

_____/ Regards,

____/ al


________________
_____/ Regards,
____/ al
GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Similar Topics

Reading This Topic

Login

Explore
Messages
Mentions
Search