G#

cancel
Showing results for 
Search instead for 
Did you mean: 

What new feature would you like to see in G#?

Hi Brian,

G# really tries to have the same behaviour as C# and I don't think we will implement this. It is quite easy to just make a subclass of the G#Object (and inherit this instead of G#Object directly) and then implement your own serialization methods as you wish, using the G# serialization if needed. I must admit that I haven't used PHP, only C# for serverside programming (ASP.NET).

Anyway, really appriates that you provide this idea here.

Thanks,

Mattias

0 Kudos
Message 31 of 50
(3,267 Views)

Hi Mike,

I've done some investigation and testing regarding packed libraries and I share your idea of final solution where the root classes of G# should be included in a lvlib that could be built as a packed library. It is a simple thing moving these root classes G#Object.lvclass, G#Interface.lvclass and G#DebugServer.lvclass into a lvlib, but it causes an unwanted side effect,  the namespace changes and all existing classes will not find their root classes and cause linking problems for existing classes when installing a new version of G# Framework if this would be changed.

However, I have an idea that would make a good compromise and quite easy to put the G# root classes into lvlib if wanted/needed. If you are to build a G# project from scratch, then you could very well place G# root classes in a lvlib. Everything needs to be relinked to use the new namespace in order to work correctly.

My idea is as follow. I will include an empty lvlib called G#.lvlib, placed in:

<LabVIEW>\vi.lib\addons\_AddQ\G#.lvlib, just next to the G# root classes.

There also exist a LabVIEW project called:

<LabVIEW>\resource\Framework\Providers\AddQ\G#IDE\AddQ_G#IDE.lvproj

I will add the empty G#.lvlib and the G# root classes, template etc to this project and then it will be very easy just drag and drop the three classes into the lvlib and then resave the entire project (it also contains the G# IDE code that needs to be relinked to use the new namespace as well). Just restart LabVIEW and there you go, all G# root classes included in a G#.lvlib and everything is relinked correctly. This could be build into a packed library if needed.

If I known about packed libraries behaviour when developing G# (which is developed orginally in LV2009), I would by sure put them in a lvlib from the beginning, but can't do this at this time due to the backward compability problem described above. I hope this could be an acceptable solution that would quite easy to perform. Open a project, drag and drop the classes into the lvlib, resave project and restart and your done.

I will include this in the next G# Framework release 1.4.0. We are testing the release candidates as I write this, but need to verify a bit more on LV2011 first. Will be released within the next 1-2 weeks.

Thanks for all you investigation regarding packed libraries.

Mattias

0 Kudos
Message 32 of 50
(3,267 Views)

Hello, my first suggestion here:

(I am using LV 2010SP1 with G# Plugin 1.3.0 )

When you create a native class (e.g. testclass.lvclass) in labview and add to this class (testclass.ctl) e.g. two clusters (c1 and c2).

In each of this cluster add several elements.

Now you want to create properties of the element:

you make

1) right-mouse-click on testclass.lvclass

2) G# IDE -> Create Property...

3) Window opens for creating properties,

but you can only create properties for c1  and  c2,

but I want to create properties for the elements inside c1, e.g. c1.TestValue

Thanks

-------------------------------------------------------------------
Eugen Wiebe
Bernstein AG
CLAD - Certified LabView Associate Developer
0 Kudos
Message 33 of 50
(3,267 Views)

Hi,

This is a very good idea and not very difficult implement I believe. Actually, I am just about to implement more support for properties like delete, clone and rename and I will have a look at this cluster idea as well. I'm not sure I will be able to include it in the next release 1.4.0, which is scheduled in the next 1-2 weeks, but better property support will by sure be included in the next release after this one.

Thanks,

Mattias

0 Kudos
Message 34 of 50
(3,267 Views)

And it would be fine then if it would be possible to select multiple elements:

e.g.you want to create read/write access to c1.var1 and c1.var2 and c1.var3

the user should be able to select the 3 variables and then for each selected item a property should be created and automatically saved.

It would be VERY HELPFUL and will save a LOT OF TIME if you have (as me) big data structures in the class.

Thanks.

-------------------------------------------------------------------
Eugen Wiebe
Bernstein AG
CLAD - Certified LabView Associate Developer
0 Kudos
Message 35 of 50
(3,267 Views)

Hi again,

Interesting idea. I will see what I could do about this. Shouldn't be too hard to select multiple items and generate multiple properties.

Regards,

Mattias

0 Kudos
Message 36 of 50
(3,267 Views)

Hi Mattias,

With regards to the lvlib, I agree that it causes a HUGE pain for backwards compatibility. I think the compromise you suggested is great. I don't know how difficult it would be, but it would be really awesome if there was an option in the G#>>Options to allow switching between lvlib namespace and default namespace that would automate and script the relinking of everything to the correct namespace.

Regards,

Mike

0 Kudos
Message 37 of 50
(3,267 Views)

Hi Mike,

Yes, that idea crossed my mind as well, but since G#IDE is depending on a few VIs inside the G# code within vi.lib, the G#IDE that would be performing the change on G# classes would actually change the code that G#IDE depends on! This, in combination with the project provider difficulties would probably be a real pain to implement.

I have to think about a solution for this. The easiest would be to distribute two alternative packages, but that also require us to maintain two identical versions, with just a slight difference. I'm not so fond of that actually. Another way, would be two include both builds in the same installer and have an option in the installer, which to install, but that adds a lot of extra "duplicated" code in the installer package and still the problem of maintaining two almost identical version.

For now, I just want to keep it simple and in the just released G# Framework 1.4.0, I have include the solution with the G#.lvlib suggested above and a short instruction as well.

Thanks for your time looking into this,

Mattias

0 Kudos
Message 38 of 50
(3,267 Views)

Thanks a lot Mattias for working on that. With all the complications involved, I'm just happy there's any solution that you decided to include. Thanks again.

-Mike

0 Kudos
Message 39 of 50
(3,267 Views)

Hi

i think it would be nice to be able to install and update G# via JKI packed manager.

Message 40 of 50
(3,267 Views)