Book a Demo

Author Topic: Best language and tools to develop AddIns  (Read 7726 times)

EXploringEA

  • EA User
  • **
  • Posts: 172
  • Karma: +8/-0
    • View Profile
Best language and tools to develop AddIns
« on: December 19, 2013, 11:46:59 pm »
I am in the process of developing some example AddIns to demonstrate to potential developers.  Clearly they will all have their own preferences for developing software but the question that has come to my mind is:-

"what is the best language to write an AddIn?"

And further:-

"what are the best tools for developing and testing AddIns?"

Clearly there is a limited set of languages - VB, C++, C# - not sure if any others. And tools VS, sharpdevelop,...??

My answers are:
- VB.Net! The reason being circumstances - this is the language I was asked to use by my client for the 1st AddIn I developed and since Java isn't an option I haven't switched, and probably won't now due to familiarity.
- development is mainly done with VS-2010

Finally, any views on what would be good demonstrations - I've already developed some simple ones and plan to produce some more advanced AddIns so what would be good utilities.  I am aware of the good stuff done by Geert and Helmut but suspect I need to work at a level below these, at least to start with.

I would welcome your answers together with any views, suggestions and reasons for the choice e.g. Customer demand, no other options

Many thanks and happy christmas
EXploringEA - information, utilities and addins

Geert Bellekens

  • EA Guru
  • *****
  • Posts: 13523
  • Karma: +574/-33
  • Make EA work for YOU!
    • View Profile
    • Enterprise Architect Consultant and Value Added Reseller
Re: Best language and tools to develop AddIns
« Reply #1 on: December 19, 2013, 11:51:43 pm »
Use use C# and Sharpdevelop.
I have Visual Studio at work, but I still prefer Sharpdevelop.

Geert

Helmut Ortmann

  • EA User
  • **
  • Posts: 970
  • Karma: +42/-1
    • View Profile
Re: Best language and tools to develop AddIns
« Reply #2 on: December 20, 2013, 12:53:51 am »
Hello,

I use C# + Visual Studio.

I have chosen C# because I wanted to learn C#. Now I enjoy this language.

Just use the language you like to use.

If you want to develop fast user access via Addin think about using ActiveX as an EA (Tab)Window. Geerts Navigator is an example for that.

It's a little work to get it running but in my opinion it's worth the efford.

Helmut
Coaching, Training, Workshop (Addins: hoTools, Search&Replace, LineStyle)

Uffe

  • EA Practitioner
  • ***
  • Posts: 1859
  • Karma: +133/-14
  • Flutes: 1; Clarinets: 1; Saxes: 5 and counting
    • View Profile
Re: Best language and tools to develop AddIns
« Reply #3 on: December 20, 2013, 03:00:49 am »
Hi,

C# and Visual Studio. Haven't really shopped around, but I find VS performs adequately and with InstallShield included it's easy to build simple install packages.

One C# feature I like for this sort of work is extension methods, which you can use to good effect with the EA API.

For testing I use one or more virtual machines, VirtualBox for my own things and on-site whatever the client uses (usually VMware). I don't do a lot of automated testing.

As to suitable beginner tasks, how's this:
  • Write an Add-In that creates its own output tab and writes "Hello world" when a project is opened
  • Write "Goodbye cruel world" when the project is closed
  • Dump some information when an element is created
  • Block connectors of a certain type from being deleted
  • Add a menu item to show/hide the output tab

Cheers,


/Uffe
My theories are always correct, just apply them to the right reality.

KP

  • EA Administrator
  • EA Expert
  • *****
  • Posts: 2919
  • Karma: +55/-3
    • View Profile
Re: Best language and tools to develop AddIns
« Reply #4 on: December 20, 2013, 09:36:32 am »
My usual recommendation is to use C# because you can download an add-in framework from the Sparx website, which (I hope) makes it the easiest language to get started with. It's also what I use for my test add-ins.
The Sparx Team
[email protected]

EXploringEA

  • EA User
  • **
  • Posts: 172
  • Karma: +8/-0
    • View Profile
Re: Best language and tools to develop AddIns
« Reply #5 on: December 20, 2013, 08:31:56 pm »
Thanks for all your feedback.

Looks like C# is the unanimous choice - not a language that has been used in any of the projects I've worked on or managed but must be the language youngsters are now brought up with:-), so will add to my repertoire.

Apart from testing environment e.g. VirtualBox, which is what I use most of the time, no mention of any testing tools???

@Geert - re Sharpdevelop I remember reading one of your blogs a while ago where you stated that it doesn't have the same debugging capabilities as VS and it wasn't possible to launch EA in debug from the IDE. Is that still the case?   Would make a lot of sense to present examples with open source tools as this removes some of the barriers users may otherwise have.

@Uffe - thanks for the suggested examples

@Helmut - I use tabs and AddIn windows etc for example when embedding office apps and then the inevitable challenges associated with integration but hadn't thought of of simple ones, could be a runner.

@KP - do Sparx do any of their development in C#?   I guess the answer is probably no, as the main development pre-dates it.

Also re framework - useful.  One of the things I did some time ago was to produce an EA model with all the AddIn interface (I also have one for the object model), so each time I produce an AddIn I can clone, modify me then export in the desired language. One suggestion would be that Sparx provide an EA model of this interface as I would imagine it exists and would save time updating.

Off to play with C# - something to do instead of re-watching old movies after eating too much over Xmas!

Many thanks for your feedback.
EXploringEA - information, utilities and addins

Hermelin

  • EA User
  • **
  • Posts: 23
  • Karma: +0/-0
    • View Profile
Re: Best language and tools to develop AddIns
« Reply #6 on: December 20, 2013, 10:30:09 pm »
I use SharpDevelop and find it to be splendid. Don't know much about VS debugging capabilites, but Sharpdevlop can be attached to a running process and thus debug the addin during runtime (and you escape that horride all capital toolbar in VS).
 
« Last Edit: December 20, 2013, 10:33:26 pm by hermelin »

EXploringEA

  • EA User
  • **
  • Posts: 172
  • Karma: +8/-0
    • View Profile
Re: Best language and tools to develop AddIns
« Reply #7 on: December 20, 2013, 10:43:50 pm »
Thanks for this - to me the ability to debug is key as I never code perfectly first time and it's great to know it can be done before wasting time trying to so the impossible.  :)
EXploringEA - information, utilities and addins

Geert Bellekens

  • EA Guru
  • *****
  • Posts: 13523
  • Karma: +574/-33
  • Make EA work for YOU!
    • View Profile
    • Enterprise Architect Consultant and Value Added Reseller
Re: Best language and tools to develop AddIns
« Reply #8 on: December 20, 2013, 11:36:59 pm »
Quote
Thanks for all your feedback.

Looks like C# is the unanimous choice - not a language that has been used in any of the projects I've worked on or managed but must be the language youngsters are now brought up with:-), so will add to my repertoire.

Apart from testing environment e.g. VirtualBox, which is what I use most of the time, no mention of any testing tools???

@Geert - re Sharpdevelop I remember reading one of your blogs a while ago where you stated that it doesn't have the same debugging capabilities as VS and it wasn't possible to launch EA in debug from the IDE. Is that still the case?   Would make a lot of sense to present examples with open source tools as this removes some of the barriers users may otherwise have.

- Testing: See Testing and debugging your Enterprise Architect C# add-in
- Framework: I prefer my Enterprise-Architect-Add-in-Framework which includes an add-in baseclass that you can extend.
- Debugging in Sharpdevelop: I can do all I need with Sharpdevelop. I think it doesn't allow starting up EA from withing Sharpdevelop (but I've never use that when working with VS either) and I think it also doesn't support changing variable values at runtime. Neither of those features are crucial for me.

- C#: If you know  how to develop in Java you know how to develop in C#. It is simply the Microsoft translation of Java.

Geert