Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

What can provide ActiveX Exe comfort in VB.NET

Posted on 2010-09-13
4
Medium Priority
?
671 Views
Last Modified: 2012-05-10
Hi All,

I need a long term solution for interfacing various equipment to my applications in such way that the main program will not be changed (at least in short term) but the equipment interfaces can change/added upon needs. The typical equipment are generally (but not limited to);

- Image grabber boards or network cameras
- Serial communication based data transmission equipment
- RFID readers (ETH or Serial connected)
- Hardware I/O devices (relay output, signal input) that works on serial ports
- PLC interfaces

Each equipment provider has its own rules and methods to communicate with their devices.

My main reason for the needed solution is;
- I have many main applications that are registered by a certain authority and making changes to the applications is not easy because I have to register the software everytime I change the software and this costs too much.
- I have many equipment options doing similar functions (with performance and cost difference). The preference of equipment is depended on how the system will be applied and even the communication protocols of the equipment are developing continuously.

One solution is developing a COM based solution, for example, a DLL library for each group of equipment. Each compiled DLL will obey to same library documentation but will communicate with its own equipment. The related DLL will be installed to related system. In this way followings are possible;
- The main applications can be registered and distributed regardless of what the equipment is
- A DLL for each newcoming or changed equipment can be prepared and installed upon need

I have some limitations for using ordinary DLL because of the nature of the equipment; I need the interface must stay in memory and stay working because I need to make work timers and events because;
- The equipment sends it message anytime, an awake thread will need to capture it (such as serial or TCP/IP socket)
- The data need to be made ready before it is asked by the library using application (such as pooling data from more than one resource)
- There are timings required by equipment protocols
- Some initializations takes time (such as serial/Socket/board/Camera etc.) and not possible to initialize it anytime before a data poll.

I was using ActiveX Exe previously (VB6) for this purpose, and that was a real "miracle solution" for the problem.  But the ActiveX Exe is not supported by VB.NET. VB6 ActiveX Exe still can be used by VB.NET applications by Object creation methods but VB6 is getting obsolete both by Microsoft and also by equipment providers interface support.

Is there any long term technology that can be used for this purpose, i.e. directly replace to behaviour of "ActiveX Executable".

The target OS is Windows XP/Vista/7 Clients or Windows Server platforms (2003/2008) in 32 or 64 bit modes.

Thanks in Advance...
0
Comment
Question by:Weigher
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
  • 2
4 Comments
 
LVL 9

Expert Comment

by:DjDezmond
ID: 33660423
The DLL model is what you need I think. It is simply, a class project.

In the same project of your main application, insert a new "Class Library" project.

In the main application click, "Add reference", browse to the "Projects" tab, and select your class project.

You can then create instances of the class within your application, just as you could using the old active x model.
0
 

Author Comment

by:Weigher
ID: 33660545
AFAIK, Class Library (as ActiveX DLL) will not operate as a continuous thread in memory, it is just oaded and its functions are open to be used by other applications. What I need is also a listening and actively operating thread in memory (doing timer or other events).

Am I wrong in something in understanding of Class or DLL? Previously that was the reason I was building an "ActiveX Exe" instead of an "ActiveX DLL".
0
 
LVL 9

Accepted Solution

by:
DjDezmond earned 2000 total points
ID: 33660693
Ah I see,

http://stackoverflow.com/questions/604776/is-there-an-equivalent-to-out-of-process-com-exe-in-net

States that "Enterprise Services" can be used for this...

Or more familiarly, ".Net Remoting". I have experience with this, but never in a scenario like yours, so unfortunately I cannot provide code examples.
0
 

Author Closing Comment

by:Weigher
ID: 33660841
Yes, thank you. This seems what I am looking for provided that I will read many documents and try codes with this.

Now, I am hoping it is easy-to-use and can be used under Windows platforms for a long time until Microsoft  declares it is not supported by new OS or new development environment.
0

Featured Post

Enroll in September's Course of the Month

This month’s featured course covers 16 hours of training in installation, management, and deployment of VMware vSphere virtualization environments. It's free for Premium Members, Team Accounts, and Qualified Experts!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

The Fluent Interface Design Pattern You can use the Fluent Interface (http://en.wikipedia.org/wiki/Fluent_interface) design pattern to make your PHP code easier to read and maintain.  "Fluent Interface" is an object-oriented design pattern that r…
Introduction A frequently used term in Object-Oriented design is "SOLID" which is a mnemonic acronym that covers five principles of OO design.  These principles do not stand alone; there is interplay among them.  And they are not laws, merely princ…
Monitoring a network: how to monitor network services and why? Michael Kulchisky, MCSE, MCSA, MCP, VTSP, VSP, CCSP outlines the philosophy behind service monitoring and why a handshake validation is critical in network monitoring. Software utilized …
Want to learn how to record your desktop screen without having to use an outside camera. Click on this video and learn how to use the cool google extension called "Screencastify"! Step 1: Open a new google tab Step 2: Go to the left hand upper corn…

721 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question