Re: [otlkcon-devel] C# / COM+ - RE: Status?

2009-07-22 Thread Kervin Pierre

This sounds good.  But the serialization/deserialization ends up being a lot of 
work.  MAPI is a large API, so even after reducing things as much as I can I 
ended up with a large vocabulary for the protocol.  Also not all the calls 
are data access related, so the database could not be used as much.

With COM, ideally IDispatch does this for us.

The C++ stubs could be rewritten easily if the C# ( Mono or otherwise ) COM+ 
server was done.  Something like 
http://my.execpc.com/~gopalan/dotnet/complus/complus.net_accountmanager.html  
that exposes IMAPIProp, IMAPIPropData, IMAPITable, and IMAPITableData 
interfaces.

Does that sound interesting to you?

Best regards,
Kervin

From: Dr. Net! - Eugen Rieck [mailto:eu...@drnet.at]
Sent: Wednesday, July 22, 2009 2:28 PM
To: Kervin Pierre
Cc: otlkcon-devel@lists.sourceforge.net
Subject: Re: C# / COM+ - RE: [otlkcon-devel] Status?

Kervin Pierre schrieb:
In the solution, there's a C# project called OpenConnector.  This buildings 
the executable used to access the network amongst other things.  This exe 
communicates to the MAPI plugin via a shared memory protocol. Almost all ( if 
not all ) CalDAV communication is done in this exe.

Maybe my old abandoned Pascal project is still of use for the structure:
I implemented only stubs, these just serialized the request and sent it to a 
socket. On the other end there was a worker daemon unserializing the call, 
doing the work, serializing the reply and sending it back.

The idea behind that (and this part worked OK) was, that the worker daemon 
could run on the same machine (use either socket to localhost or named pipe) or 
on the server (use real network socket). The worker daemon itself can do 
different things: Go to the Database directly (e.g. Zarafa server or just a DB 
instance - MSSQL or MySQL or whatever) or proxy to something else (Zarafa via 
API, Scalix, CalDAV, etc.)

My (finally unsolvable) problem was, that there was no good way for memory 
management - using the functions from the MAPI helper object was not really 
working from Free Pascal 1.x, all workarounds and hacks ended in either extreme 
memory leaks (Read: Never free any memory) or weird segfaults.



The problem currently is that I am using a course-grain locking/polling 
algorithm for synchronization between the C# executable and the MAPI plugin.  
It's really too slow for any meaningful volume of data.

Just to make that clear: In my model there can be (quite many) concurrent 
requests from one instance of the MAPI plugin to the worker daemon, so the 
locking is moved to the datastore level, as I figured a Database is quite good 
in locking.



The MAPI API and the .Net CLR cannot be loaded in the same process space.  So 
using regular C#/COM is out.  But one solution I haven't tried as yet is COM+ 
and dllhost.exe.  See...

http://www.codeproject.com/KB/dotnet/complusnetpracticalapp01.aspx

This _should_ provide the isolation between MAPI and .Net CLR that we need 
without the course-grain locking.

Sorry again - I am an old fart and have never (really) learned C[++], I come 
from the dark Pascal ages and skipped directly to Mono (.NET) and PHP.

Basically: If somebody (the two of you?) manage to get the C++ stubs running, 
so that every call is just serialized in some documented way and passed on to a 
socket, I am happy to provide the following layer (in C#).

I guess it's a smaller step from there to connectors for different groupware 
servers.

HTH,

Eugen
--
___
otlkcon-devel mailing list
otlkcon-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/otlkcon-devel


Re: [otlkcon-devel] development environment - RE: Status?

2009-07-22 Thread Kervin Pierre
This is very interesting.  I hadn't noticed that.

These providers have been around in one form or the other for  at least 10 
years now, first distributed with the MAPI Provider book.

We could never use them though because there was no explicit license attached 
to the source.

But with their inclusion on  Codeplex and explicit license we can now probably 
utilize those.  I'll look into this further.

Best regards,
Kervin


From: g...@novadsp.com [mailto:g...@novadsp.com]
Sent: Wednesday, July 22, 2009 2:32 PM
To: Kervin Pierre
Cc: otlkcon-devel@lists.sourceforge.net
Subject: Re: development environment - RE: [otlkcon-devel] Status?

K, seen these? http://www.codeplex.com/OutlookMAPISamples

Kervin Pierre wrote:
You won't need Exchange, so that should help simplify the environment.  You 
won't need to inspect packets either.  You will need to inspect assembly.  Are 
you familiar with MAPI internals at all?  Or IDA Pro and Assembly Language?

I really only ever used a CalDAV server for testing.  We can use Bedework ( 
http://bedework.com/ ) for this.

If you plan on working on migrating the datalayer to C#, then you won't need a 
server at all.  All the testing can be done locally.

If you plan to work on shared folders support then you will need IDA Pro and 
lots, and lots of patience :)

Unfortunately, there isn't much documentation.  But I will be happy to answer 
any questions you may have.

 The role of the datalayer is to save MAPI data.  This is what saves 
appointments and messages to the disk.  It is only used by a very small number 
of interfaces.  Actually IMAPIProp 
(http://otlkcon.svn.sourceforge.net/viewvc/otlkcon/trunk/otlkcon/opncon/O_IProp.cpp?view=markup
 ) and IMAPITable being the biggest consumers.  Currently, it uses an SQLite 
database.  We should move this to SQL Server Compact for better locking, 
application transaction model and more support for platform database 
abstraction features.

Again, feel free to ask as many questions as you'd like.  I will try to clarify 
things as best as I can.

Best regards,
Kervin

--
___
otlkcon-devel mailing list
otlkcon-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/otlkcon-devel


Re: [otlkcon-devel] C# / COM+ - RE: Status?

2009-07-22 Thread Kervin Pierre
Hello Henry,

Thanks for the advice.  I think it would be wise for us to take it, especially 
with the samples now being open-sourced.

I still would like to sync the PST store with a C# provider if that can work.  
The problem isn't technical, it's just that there aren't too many C++ 
application developers ( not counting embedded ) out there compared to .Net 
developers.  

The more code we have in .Net the better chance we have in attracting new 
developers.  Hence the MAPI/.Net bridge.

Best regards,
Kervin



-Original Message-
From: Henry Gusakovsky [mailto:h.ghusakov...@gmail.com] 
Sent: Wednesday, July 22, 2009 2:49 PM
To: g...@novadsp.com
Cc: Dr. Net! - Eugen Rieck; otlkcon-devel@lists.sourceforge.net; Kervin Pierre
Subject: Re: [otlkcon-devel] C# / COM+ - RE: Status?

As far as I know MAPI is implemented _only_ for Windows and _only_ by MS.

So guys I would seriously encourage you using Wrapped PST architecture
for this project.
It is not late so far.

Just imagine that providers is loaded in the several profiles.
By several processes. And event one process can create several instances.
And all of them are working simultaniously.

PST is well tested provider and using it as a base is more than start.

-- 
Regards
Henry


On Wed, Jul 22, 2009 at 9:41 PM, g...@novadsp.comg...@novadsp.com wrote:


 Dr. Net! - Eugen Rieck wrote:

 Maybe my old abandoned Pascal project is still of use for the structure:
 I implemented only stubs, these just serialized the request and sent it to a
 socket. On the other end there was a worker daemon unserializing the call,
 doing the work, serializing the reply and sending it back.

 The idea behind that (and this part worked OK) was, that the worker daemon
 could run on the same machine (use either socket to localhost or named pipe)
 or on the server (use real network socket). The worker daemon itself can do
 different things: Go to the Database directly (e.g. Zarafa server or just a
 DB instance - MSSQL or MySQL or whatever) or proxy to something else (Zarafa
 via API, Scalix, CalDAV, etc.)

 Yes IMHO this is absolutely the right way to do things.

 My (finally unsolvable) problem was, that there was no good way for memory
 management - using the functions from the MAPI helper object was not really
 working from Free Pascal 1.x, all workarounds and hacks ended in either
 extreme memory leaks (Read: Never free any memory) or weird segfaults.

 Microsoft C++ is your friend here :) But there is no reason why the code
 should not be as portable as possible. Is there MinGW MAPI support?

 Jerry.

 --

 ___
 otlkcon-devel mailing list
 otlkcon-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/otlkcon-devel



--
___
otlkcon-devel mailing list
otlkcon-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/otlkcon-devel


Re: [otlkcon-devel] Status?

2009-07-21 Thread Kervin Pierre
Hello,

I am unable to put in anytime into the project at this time, and no one has 
stepped in to continue or fund development.  So I would have to say the project 
is stalled until this situation changes.

Open Connector is primarily a CalDAV connector.  So I think your best bet would 
be to go with one of the commercial offerings out there like Zimbra Connector 
or ZideOne.

Best regards,
Kervin


From: g...@novadsp.com [mailto:g...@novadsp.com]
Sent: Monday, July 20, 2009 10:03 AM
To: otlkcon-devel@lists.sourceforge.net
Subject: [otlkcon-devel] Status?

I'm trying to establish the status of this project -

Can anyone tell me which parts of the Exchange SDK are required to build the 
connector DLL?
Has anyone had good results using the connector with Linux servers like Zimbra 
or Citadel?

Thx++

G.

--
___
otlkcon-devel mailing list
otlkcon-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/otlkcon-devel


Re: [otlkcon-devel] Status?

2009-07-21 Thread Kervin Pierre
Hello,

This is great news.  How much time do you believe you can put towards the 
project?

The most important work needed at this time is the figuring out how Outlook 
loads and uses a shared calendar.  Coincidently, this is why the Exchange MAPI 
SDK was pulled in.  I don't think much or any of it is used except for the 
header files.

Figuring that out would require really good IDA Pro skills;  No or little 
programming.

The libraries used are from the Exchange MAPI download.  I think it's at 
http://www.microsoft.com/downloads/details.aspx?FamilyID=e17e7f31-079a-43a9-bff2-0a110307611eDisplayLang=en
 now, but I can't confirm on my current computer.   I have Ex2kSdk.lib, 
Ex2KSdkD.lib and sadapi.lib in the ExchangeSDK\Lib folder.

Another thing that I would like to do is to move the data layer from C++/SQLite 
to C#/SQL Server Compact and use COM+ to communicate with Outlook.  If we can 
get the performance we need for from that setup then that would help with 
getting new developers in the future.

Best regards,
Kervin



From: g...@novadsp.com [mailto:g...@novadsp.com]
Sent: Tuesday, July 21, 2009 5:17 PM
To: Kervin Pierre
Cc: otlkcon-devel@lists.sourceforge.net
Subject: Re: [otlkcon-devel] Status?

Hello Kervin

I can actively participate in development - I'm trying to establish what OC 
needs to get built. Which Exchange SDK are you using for the current release? 
Although the calendar aspect is good I'm most keen to get shared tasks up  
running.

Sadly cannot help with funding - indeed could use some myself :)

When I get Zimbra configured I will get a chance to test their connector - 
right now it's an MX mess :\

Any info gratefully received

G.

Kervin Pierre wrote:
Hello,

I am unable to put in anytime into the project at this time, and no one has 
stepped in to continue or fund development.  So I would have to say the project 
is stalled until this situation changes.

Open Connector is primarily a CalDAV connector.  So I think your best bet would 
be to go with one of the commercial offerings out there like Zimbra Connector 
or ZideOne.

Best regards,
Kervin


From: g...@novadsp.commailto:g...@novadsp.com [mailto:g...@novadsp.com]
Sent: Monday, July 20, 2009 10:03 AM
To: 
otlkcon-devel@lists.sourceforge.netmailto:otlkcon-devel@lists.sourceforge.net
Subject: [otlkcon-devel] Status?

I'm trying to establish the status of this project -

Can anyone tell me which parts of the Exchange SDK are required to build the 
connector DLL?
Has anyone had good results using the connector with Linux servers like Zimbra 
or Citadel?

Thx++

G.


--
___
otlkcon-devel mailing list
otlkcon-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/otlkcon-devel


Re: [otlkcon-devel] iCal Server + Outlook 2007

2009-03-04 Thread Kervin Pierre
Hello Martin,

Help would be much appreciated at this point in time.

Currently I don't have much free time to put into the
connector and I don't have a funding source, so development
has been at a stand-still.

Especially we need someone with a lot of experience with
C++/Outlook and some x86 reverse engineering experience.

Best regards,
Kervin


-Original Message-
From: Martin Leonard [mailto:mleon...@sutus.com] 
Sent: Tuesday, February 24, 2009 7:47 PM
To: otlkcon-devel@lists.sourceforge.net
Subject: Re: [otlkcon-devel] iCal Server + Outlook 2007

Hi Randall,

I had exactly the same problem. I was going to try and get a pcap trace 
of the messages but then moved onto something else. I will try and get 
my setup working again and post any findings.

I agree that Calendar Server and Open Connector make a very compelling 
combination. I am going to talk to Kervin and see if there is anyway we 
can help.

Martin Leonard
Director of Software Engineering
Sutus Inc

--
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
___
otlkcon-devel mailing list
otlkcon-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/otlkcon-devel

--
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
___
otlkcon-devel mailing list
otlkcon-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/otlkcon-devel


[otlkcon-devel] Delegate Calendar Access - RE: Open Connector Project Status : 2008-11-27

2008-12-05 Thread Kervin Pierre
Hi Eugen,

 This was Outlook 2000-2003 time, so things might have changed, but then
 there only existed server-sided calendar sharing, which was easily
 achieved by just allowing access to a calendar for more than one user.

 I assume you are now talking of the client-sided calendar sharing - and
 the blasphemic question is: Do you know anyone, who really uses that?

I'm CC'ing the list hope you don't mind.

The Share Calendar feature is the Outlook
friendly-name for what's more formally called
Calendar Delegation by developers.

Basically the only documentation I've found
on the web describing this feature in Outlook
are two postings on Google groups...

http://groups.google.com/group/microsoft.public.win32.programmer.messaging/browse_thread/thread/ce6f5c1a4e2691bb
http://groups.google.com/group/microsoft.public.win32.programmer.messaging/browse_thread/thread/be255dd3c7d6c522

Although, I've implemented the changes
described in those postings, the feature is
far from complete. We have to figure out
how to document its remainder.

That's what holding-up development right
now.

To explain a bit further...

If you are familiar with Outlook, you'd may
have seen a small link near your main
calendar labeled Open a Shared Calendar...
This link allows you to gain delegate
calendar access to another user's calendar.

That way a personal assistant can schedule
an executive for a meeting if that assistant
had been given the right permissions, for
instance.  This is what needs to be
documented.

If someone volunteer's Outlook's delegation
feature documentation, we could probably have
a stable Milestone 4 within 2 months.

Without that documented, it will take 4-6+
weeks of full-time development to figure
delegation out, I suspect.  Maybe more...

So basically, I need help getting past this
prerequisite.

Best regards,
Kervin



--
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
The future of the web can't happen without you.  Join us at MIX09 to help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
___
otlkcon-devel mailing list
otlkcon-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/otlkcon-devel