[dba-VB] Using Interfaces

Dan Waters df.waters at comcast.net
Fri Oct 11 08:42:54 CDT 2013


Hi Shamil!

Excellent!  The code you added was never mentioned anywhere in the .net help sites I visited.

Yesterday I add the remaining code to call a procedure in the Main project from the referenced project - all works well!

About VB.Net - I do like it, but then I've never learned C#.  Would the changes you made for my demo been easier with C#?

Thanks again!!!
Dan

-----Original Message-----
From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Salakhetdinov Shamil
Sent: Wednesday, October 09, 2013 4:29 PM
To: 'Discussion concerning Visual Basic and related programming issues.'
Subject: Re: [dba-VB] Using Interfaces

 Hi Dan --

Solution sent back offline, one of "myriads" of possible solutions - it all depends on one coding style/taste.
I must note VB.NET is a RPITA. (And I have been programming on VBA/VB6 for 10+ years, fulltime - 1994 - 2004+) Forget it - switch to C#!

Thank you.

-- Shamil


Wednesday, October  9, 2013 10:02 AM -05:00 from "Dan Waters" <df.waters at comcast.net>:
>Hi Shamil - I sent the app off-line. 
>
>Good Luck!
>Dan
>
>-----Original Message-----
>From:  dba-vb-bounces at databaseadvisors.com 
>[mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Salakhetdinov 
>Shamil
>Sent: Wednesday, October 09, 2013 1:45 AM
>To: Discussion concerning Visual Basic and related programming issues.
>Subject: Re: [dba-VB] Using Interfaces
>
> Hello Dan --
>
>Yes, it should work. You can send me your sample project off-line to fix. But I use VS2012. Anyway the issue should have similar solution for VS2010 and VS2012.
>
>So you have a project B, which referencing project A
>
>B -> A
>
>but some functionality to call from 'Project A' code is located in 'Project B', and you can't set a reference from 'Project A' to 'Project B'
>
>A -> B
>
>because in this case you'll get a circular reference
>
>B <-> A
>
>and VS2010 etc. do not support circular references.
>
>And you do not want to move code from 'Project B' into a new 'Project C' as that moving would require a lot of work.
>
>So you define an interface in 'Project A', let's call it
>
>IMyCallBackToProjectB
>
>with a method CallMe
>
>then you create a facade class in 'Project B' implementing IMyCallBackToProjectB interface's method CallMe handling instance(s) of 'Project B' classes to be called from 'Project A' code, or just implement that interface in your 'Project B' class, which instance methods/functionality should be called from 'Project A'. And you'll have to add instance reference to IMyCallBackToProjectB interface to all your calls to 'Project A' methods, which need calling back 'Project B' functionality. Or you can just have a global variable ( coding purists keep silent please!) in 'Project A' keeping reference to 'Project B' instance implementing IMyCallBackToProjectB interface. That instance reference can be created on program start-up. Don't forget to set it to null and program exiting, otherwise you'll have a chance to get your program left hanging in memory in 'ghost mode' on exiting.
>
>I hope I haven't made the subject even more obscure than it was presented/discussed here before I have posted these my remarks.
>
>Thank you.
>
>- Shamil
> 
>
>Tuesday, October  8, 2013 3:24 PM -05:00 from "Dan Waters" < df.waters at comcast.net >:
>>Hello!
>>
>> 
>>
>>I've been struggling with using an interface to be able to call a 
>>referencing project from a referenced project.  In Access you just use 
>>the Application.run("[ProcedureName]",arg1, arg2 .) statement.  But in 
>>VB or C# there's not a direct equivalent.
>>
>> 
>>
>>This can be done - and using an interface is the way to go.  But I've 
>>been trying to make this work for 4 days now and I need to reach out 
>>to a more knowledgeable person than me.
>>
>> 
>>
>>The simplest explanation is at:
>> 
>>http://stackoverflow.com/questions/3765177/solve-circular-references-w
>>i thout -introducing-a-new-project.  The 2nd entry has what appears to 
>>be a simple explanation of what to do.  I can make the interface, and 
>>the procedure which implements it, but the other 2 parts I can't make 
>>work.
>>
>> 
>>
>>If you'd like to try this let me know.  I've put together a small VB 
>>app (VS
>>2010) which has all the pieces which I can email as an attachment.
>>
>> 
>>
>>Thanks!
>>
>>Dan
>>
>.

--
???????????? ??????
_______________________________________________
dba-VB mailing list
dba-VB at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/dba-vb
http://www.databaseadvisors.com





More information about the dba-VB mailing list