OutOfMemoryException when building Silverlight application using CRM2011 OData Service Reference - web-services

Following the instructions supplied with the Microsoft Dynamics CRM SDK CrmODataSilverlight sample code I have downloaded the OrganizationData.csdl from my CRM2011 solution and readded my service reference with it. The csdl file is 4.8mb and has generated a Reference.cs in my solution of 13.4mb.
When I attempt to build my solution I get an error stating 'Source file '...\Reference.cs' could not be opened ('Exception of type 'System.OutOfMemoryException' was thrown.')
I have restarted my machine and attempted to rebuild however I get the same issue.
What approach can I take to allow my Silverlight application to build with this service reference? Can I get a cut down version of the csdl from CRM2011 containing just the entities I am interested in or is there another approach I can take? I don't fancy having to manually edit the csdl file as it makes maintenance a nightmare.

Here's an article about filtering out items when generating a proxy from crm 2011.
Probably not exactly what you need for silverlight but hopefully points you in the right direction.
http://erikpool.blogspot.com/2011/03/filtering-generated-entities-with.html
As for the out of memory, you can try to increase your virtual memory amount in windows.

Related

BIRT integration in exsiting C++ application

I hope you are doing good and i really appreciate your help here for my query.
We have our system T3000 written in C++ (http://www.temcocontrols.com/ftp/software/9TstatSoftware.zip and codes are available here https://github.com/temcocontrols/T3000_Building_Automation_System).
I am trying to integrate 'BIRT reporting tool' in my C++ application. I want to create report based on the data available in our T3000 system. I think BIRT is embeddable (??). We don't need to compile and change the project, just need to be able to call it from T3000.exe mainly.
My thinking is we may put one menu label in existing T3000 and try to display report in user single click.
Can you please help me to solve my issue with 'BIRT' ? I really appreciate your answer.
Regards
Raju
Well, the answer depends on what your definition of "embeddable" is.
BIRT is written in pure Java.
I could think of 3 different ways:
Of course it is possible to integrate Java code into an existing C/C++ program (see Embed Java into a C++ application?).
You could just use the BIRT runtime engine and generate the report as PDF or HTML from the command line (that means, basically you call the java executable from your program with several arguments). See Birt - How to run report engine on the console? and http://eclipser-blog.blogspot.de/2008/02/automatic-generation-of-birt-reports.html for more information.
You could run a Java web server like Tomcat in a second process and then start your report by calling a http URL (e.g. you could use the included Servlet example). See http://www.eclipse.org/birt/documentation/integrating/viewer-usage.php
Similar to 3. (see below)
Some notes:
The second option is slow, due to the Java and BIRT engine startup overhead (this may take several seconds). With the first and third option, the startup overhead is or can be minimized to only once (and for each report).
For the second and third option it may be necessary to modify the existing code of the example programs to suit your needs.
The first option is probably the best for an industry-quality solution, but it is also the most difficult to develop.
Anyway, Java skills are necessary IMHO.
If you plan to run this on a SOC instead of a PC, take performance into account.
Is a Java-based solution well-suited for this kind of hardware? BIRT needs quite a lot of RAM and CPU (for a SOC). Hardware like the Raspi 3 should handle this quite easily, I reckon.
I integrated the BIRT runtime into an existing Python application (all this running on an application server) in a fourth way: I wrote a listener program that listens on a TCP socket for BIRT tasks. It uses a pool of worker processes (written in Java) which in turn use the BIRT report engine to generate the output. The client program (here: written in Python) opens a TCP connection to the listener and uses this socket to tell it which report to generate (including report parameters and destination file name). The listener program then in turn chooses a worker process for the task and gives the task to the worker process.
So, basically, this fourth option is similar to the third one, with two differences:
The communication is socket-based (instead of http), allowing bi-di communication.
The architecture is multi-processes instead of multi-threading. We choose this because very large reports could cause out-of-memory errors for otherwise unrelated reports that just happen to run at the same time. It's the same basic architecture Oracle chose for their reports server.
However, developing the programs took months.
HVB: I have to give you more than a simple thanks for the explanation above, this info will save us time I am sure. Raju will be sharing our experience after we get into the project a little deeper so others can benefit.

Running a C++ program (Visual Studio application) remotely through a web server

I have written a big piece of C++ code in Visual Studio 2010 that is basically an OpenCV project. Currently, it exists only on my laptop.
When you run it, it turns on your webcam, captures your photo, tracks your face, detects some facial features, and then saves some measurements and information about the detected facial landmarks.
So far, so good...
I now want to extend this application and perform an international study; i.e. through a web browser such as Internet Explorer, users sitting at home would be able to run this VS2010 application remotely and, using their own webcams, the obtained information by the program is sent back to us and stored on a web server. Presently, I am using WampServer to have a server on my own machine, etc...
I have developed a web page where I can acquire and store the participants details, but I have no idea how to get them to access the program and run it, in order for their facial measurements and information to be captured by the software (that exists only on my machine at the moment).
I am not too sure if I have explained well what I would like to do, so please feel free to ask for clarification. But if you understand what I would like to know and find out, please provide me with tips and guidance.
Thanks in advance,
.
.
.
EDIT:
I cannot email the participants my C++ application, because (firstly) it contains copyright code and material, and (secondly) it requires installing Visual Studio 2010 on their machines! I want to reach people from all walks of life with just a Windows machine and a regular webcam. So, it has to be done through a web-server and using only a web-page. So, I guess my question is this: Is it possible to run a C++ code (that exists only on one machine/server) through peoples' web-browsers?
Short answer. Yes, possible.
capture webcam data (java,flash,silverlight,activex,html5 or custom browser native plugin)
then you send back data to the server which does whatever processing required.

SharePoint 2013: Consuming query (url) filter in custom webparts

I am building webparts and self hosted apps for sharepoint 2013, I want to consume the Query String filters that the user sets up, the process should be as simple as specified here on this microsft site.
Unfortunately I dont get the option to send values to 'my web part' but I do for other stock webparts that come with sharepoint. Which leads me to believe I need to implement IFilter or equivelent in my webpart, I have found information into IFilterConsumer interface and IFilterProvider interface on msdn which seems to be exactly what I need, however the documentation has one snag:
NOTE: This API is now obsolete.
So My question is, what is Microsofts new intended way of doing this with Sharepoint 2013.
Ultimately I need to read query variables in the HostWeb request inside my AppWeb code.
Edit: Apparently IWebPartParameters is the new interface for this.... trying to implement now.
I have also tried whats suggested here:
Passing parameters through sharepoint sitepage to web part Still not working, at the moment I have implemented IWebPartParameters, IWebPart, IWebPartRow and none of my functions that implement these interfaces are being called. I must be missing something in the manifest or features file maybe?
Thanks in advance
Crash
Ok the answer to this question is simple, firstly you can only do this in a dev environment with sharepoint installed, as you need access to the sharepoint.dll.
Then this thread answers the question http://www.manning-sandbox.com/thread.jspa?threadID=19791, with the following code solution which is here http://www.markitup.com/BookCodeSamples/TestingWebPartConnections.zip

SOAP server and client application VCL+indy demo for Delphi XE?

Delphi used to include a demos folder for web Services, but no longer seems to include this.
I just tried the Delphi 7 demo projects (SOAPDMServerWAD, a server with almost no UI at all, and SOAPDMClient) and was unable to get them to function, even in Delphi 7.
If anybody has ever made a similar demo work in Delphi XE, or Delphi 2010, identical to the old SOAPDMServerWAD+SoapDMClient demos, working in Delphi XE, and with at least the minimal UI that comes from the Delphi SOAP Server application wizard, that would be perfect.
Update: The demo appears all the way up to Delphi 2010 but uses the now-obsoleted WAD (web-app-debugger), I tried to port it to the new Indy runtime/web-app-development-harnessing-code, but I can't seem to get it working. The demo runs, but the server has no User interface, and does not appear to be running any HTTP server (tested using a regular web browser, via http://localhost:port/ urls. By the way, try googling for a demo, and this url comes up, and I asked less than an hour ago. That's scary, google.
Update2 See my own answer below, a link is coming soon with working code.
I have posted the complete set of demos for SOAP on CodeCentral as item 28789.
These contain every single one of the Delphi 2007 era SOAP demos from the WebServices folder, now updated for Delphi XE and XE2, including converting the old WAD servers into new INDY VCL servers. You'd think that was impressive, except it's not. It's really easy. Just use the wizard to create a new project, and then add the web service interface and implementation units, and any other units that belong in the old demo, to the project. Once they're added to the project, they just work. Basic demo SOAP Servers are really easy to build in Delphi, once you have a working demo, you'll find it's pretty easy to modify and extend it.
The demo that best answers the question I asked above is in the SOAPDataModule sub-folder.
The basic problems with the demo from the 2007 era are two:
The WAD (web app debugger) is gone. you have to make a new server using the Indy server, for optimal demo purposes, saving you from using WAD (which is gone) or setting up ISAPI environment, under IIS, which is hardly ideal for demo purposes. The new demo project I made is called SoapDMServerINDY, and it consists of a data module (datamod_u.pas), a VCL form User Interface unit (IndyServerVCLFormUnit.pas) and an Indy Server web module, called IndyServerWebModule.pas.
The Delphi 2007 demo broke thanks to the new practice of having a Debug/Win32 subfolder that the demo executable is now in, you need to go up further. I fixed the demo server so that it warns you with an error message if the data files cannot be located, saving you from the mysterious "XML parsing error". I also added some error checking in a few of the demos so that it tells you that you need to install interbase for this demo to work, since some of the demos require Interbase installed and running, and one requires an alias called IBLOCAL to exist, and preferably a table called EMPLOYEE to exist.
The elements of this demo are a server (SoapDMServerINDY, based on the code from SOAPDMServerWAD), and the client SOAPDMClient which connects to the demo and has two pages, one page will show basic data access via a DBGrid + dataset remoting, and the second page shows how to invoke a custom SOAP method.
To use the demo: You have to start the server, click the start button, then start the client and click Connect.

Microsoft Exchange CDOEX in a clustered environment

We have a VS2005 native C++ application which connects to Exchange
server using CDOEX and CDOEXM to create and modify calendar entries
for multiple user folders. It's a command line utility which must be installed on the same server where the exchange server is installed. What is the correct procedure to use this
utility in a clustered environment? Any help would be appreciated.
Might I suggest you take a look at.
http://msdn.microsoft.com/en-us/library/aa373130%28VS.85%29.aspx
for general information on how failover clustering works.
But I would also like to point out that going forward ( ie exchange 2007 , 2010) you don't get CDOEXM. And Instead you will have to find some way of integrating with powershell instead. There are classes to explicitly run powershell scripting from inside a program, but they are C# so you either migrate all your code to C# or use some bastardized blend of IJW.