Quickbooks Desktop SDK Perofrmance - c#

We are using the QuickBooks SDK to communicate with QuickBooks desktop.
It could take very long (like more then about two minutes) to retrieve results from QuickBooks , or to update a single record,
so my question is as follow:
is this a normal behavior?,
does anyone have a workaround for this problem ?
more info on our QB file its about 200 megabyte and the file is stored over a local network .

The QB desktop SDK is a nightmare, developed by an XML enthusiast who doesn't understand OOP. The documentation actually argues with users about why it's better that things are done this way. To be fair to the SDK team, they inherited an ancient, homebrew datafile system (that was probably created by generalist programmers) and had limited options. QB Online is essentially Intuit's effort to re-engineer the backend, hopefully using proven RDBMS products this time!
So, to answer your question directly, the only workaround I know of is to dump QBD for QBO or another accounting platform.

is this a normal behavior?
For many situations, yes. You didn't really give much in the way of specifics, so there's not really much else to say here.
does anyone have a workaround for this problem ?
The same solutions anyone would have for any other resource- or time- intensive job.
Batch jobs. Caching. Async communication.

Related

Group Chat Feature

I want to add a chat to my xamarin.forms app.
I've read alot of documentations about creating chats in c# but still I couldn't get an answer some of my questions:
What is the best(performance) way to create a chatroom(like a groupchat) i've read using a thread per room could be a solution but this seems senseless to me ...
Is there any Git-Projekt which implements a groupchat function where I can get some insights ?
What do I have to keep in mind in terms of my infrastructure - how can I connect my chat to SQL ?
I know these are alot of questions but I really dont know where to start.
I hope someone can help me out.
I've been using PubNub for a while, and its awesome.
You can consult examples in Android and iOS.
It has full PCL support so you don't have to do specific Android/iOS code to exchange messages.
I've also read a lot of the tests they have in the PCL and get good information from that.
You have Real Time Framework, to exchange real time messages.
They also have a very good support.
For the SQL, you have SQLite-net.

Sending email (using gmail & C#) Desktop or Web Based?

Friends,
I know there are lots of similar topics, but I'm creating this thread to take expert suggestions/guidance regarding my project for a non-profit NGO website. I'm a volunteer for rotary International and They need a utility which can be used to send their newsletter.
I'm not aware of the kind of email database they have, let's assume
.xls file with three columns (to, cc, bcc), maybe 1000s of data,
No database is available in their hosting plans, and I can't make
them spend now.
Most probably a msword (.doc) file would be available with some heavy
images as newsletter.
They have google apps ID
So what I'm seeking is: A way which is Right, shortest, quick, and easy to understand.
Lot of code is available on the internet but the right way to do things comes only with experience. So plz suggest me what do u say about this?
Standalone/Desktop, or web based? A WinForm application, or ASP.NET?
Desktop application may hang/crash due to 1000s of mail requests on google. Web application may force them to share their email database on ftp and then I will need to create another way to subscribe & unsubscribe online.
Plz help me start...
Personally I'd use (and do use) an integrated mailing system such as MailChimp
Why re-invent the wheel right? Services like this allow for uploading data from many types of storage, they manage your suscriptions and provide an easy method for users to unsubscribe.
You've suggested in your comment on Jamie's answer that you're worried about there being "nobody to take care of it after development" - but who's going to take care of whatever code you write? At least a system like MailChimp has documentation and is understood by a small but accessible group of people: code you write will only be understood by you, and won't be maintainable or extensible.
As with any project, there is no "right." There are simply tradeoffs. You've talked about automation of thousands of emails, subscribing and unsubscribing, and basing the email on a Word document. That's a lot of functionality to ask for help with on a simple Q&A site.
You say "Desktop application may hang/crash" - but that's equally true of a web application, you just won't see the hang. The trick would be to code your application in a way that doesn't hang.

Recommendations for .NET cloud service provider

Apologies for the vague question, I am looking for pointers rather than exact answers. I have an application I am developing in Silverlight which requires some back-end persistent data. I can certainly do this myself using IIS / SQL Server, but I am eager to learn something new!
Are there any suitable, free, cloud services I could use? A bit like Google App Engine, but preferably allowing me to use the .NET stack, e.g. via a WCF connection to my client.
As this is just for learning purposes I don't have many requirements regarding data volumes etc, however, it would be nice if I could run some scheduled services on my data in the cloud, e.g. some statistics calculations every hour.
Any pointers?
You can get Azure free for 30 days here. If you have a premium/ultimate MSDN subscription, you can get Azure free for 8 months.
if it's only a test and you do not expect high volume you could do with Windows Azure and SQL Azure, at least you learn how to deal with leading products and if afterwards you decide to develop something more commercial, you will reuse the know how. I do believe for testing reasons or low volume you should get it either for free or extremely cheap.
Try EyeOS. You can go for the trial version and test your applications.
Others are
icloud
Cloudo
Force

Choosing a Platform C#/MsSql or Php/Mysql or JSP or what?

It seems like there are an inordinate number of really intelligent people here, so I thought it was the best place to ask a couple involved questions (shameless flattery). Your feedback on any item would be so appreciated.
I am about to develop a very large web based operations, inventory, sales management system. I had intended on C#/MsSql/Reporting, but am now leaning towards Php/MySql.
Multiple facility support. I
would love to have it all run from a
single place, but I need for each
facility to be able to run
autonomously from each other in case
of internet connectivity loss.
Servers could reside in each
facility and replicate to a central
one. MS Replication will hang the
DB for large databases. MS
recommendation to restructure the
database into smaller
segments…thanks. MySql seems to
have very solid replicability
features. Thoughts on this issue?
Distribution: Eventually this could be marketable
to other companies in the industry.
Using the method above I would have
to distribute the system to my
server in the customer’s facility.
With C# I can distribute compiled
code. With PHP any intellectual
property is vulnerable.
Reporting. Will I be able to print labels and
really specifically configured
reports with PHP? Pdf export is a must. MsSql has the
reporting service, but it has issues
with PDF font embedment, the
flexibility is very time consuming
and I am thinking that building it
all by hand might be faster. MS
print control also seems problematic.
Cost. Load would probably not ever exceed 100
simultaneous hits. Full Ms server
licensing is cost prohibitive.
Would sql express support this load?
MySql cost structure is very
appealing.
Thanks in advance for your insight. Sorry for the book.
As with most software, the biggest cost factor is almost certain to be developer time.
That in mind, you should go with whatever your team can get up and running in the fastest. Both of the stacks you are suggesting can get the job done.
(although I'm sure someone will be along in a minute to slate PHP and suggest you use C#/the MS Stack)
To answer the other points from a PHP perspective, which is what I know best:
Replication in mysql will do what you want, but make sure you set up something to let you know if there are problems.
You can use Zend_Guard to compile PHP, it costs though. PHP 5.3 is due for release soon and includes Phar archives - a shameless copy of java's jar archives so that you can distribute an app as a single file.
PHP can do PDF via fPDF. Never used the MS options, so not sure how it compares here.
I think sql server express could do that load, and mysql could too.
Adding point 2 with point 4 if you're intending to sell, you should think that, although in your company it won't exceed 100 simultaneous hits, in the companies your going to sell to it can exceed 10000 hits. So you should think about scalability now
As it is an application with massive size for what you say, you should expect in the future to have someone wanting to communicate with it, excluding php, for jsp or c# so you can make web services if needed.
PHP won't also allow so much distribution as C# or JSP.
3 - Reporting You can do that with any of those languages.
I think in the end is pretty much up to what you know to handle better. I would go for a language i already know instead of hitting a new one. That way you'll minimize deployment time, which is probably very important also.
For database i think you can get mysql or posgresql as they are both free, and will lower your costs.
Hope it helps :)
"I am about to develop a very large web based operations, inventory, sales management system." - this is a very ambitious undertaking. Are you doing this for fun, education, or profit? Do you intend to sell or open source this?
You realize, of course, that there are a lot of alternatives already in the marketplace. What advantage will yours have over the others?
Sounds like a classic buy versus build choice. Have you considered the buy before building?
It sounds like you prefer C# and MySQL. MySQL has several articles on using .NET with MySQL and the Connector/NET driver.
Unfortunately, I know very little about reporting with MySQL.

What to use for Messaging with C#

So my company stores alot of data in a foxpro database and trying to get around the performance hit of touching it directly I was thinking of messaging anything that can be done asynchronously for a snappier user experience. I started looking at ActiveMQ but don't know how well C# will hook with it. Wanting to hear what all of you guys think.
edit : It is going to be a web application. Anything touching this foxpro is kinda slow (probably because the person who set it up 10 years ago messed it all to hell, some of the table files are incredibly large). We replicate the foxpro to sql nightly and most of our data reads are ok being a day old so we are focusing on the writes. plus the write affects a critical part of the user experience (purchasing), we store it in sql and then just message to have it put into foxpro when it can. I wish we could just get rid of the foxpro, unfortunately the company doesn't want to get rid of a very old piece of software they bought that depends on it.
ActiveMQ works well with C# using the Spring.NET integrations and NMS. A post with some links to get you started in that direction is here. Also consider using MSMQ (The System.Messaging namespace) or a .NET based asynchronous messaging solution, with some options here.
MSMQ (Microsoft Message Queueing) may be a great choice. It is part of the OS and present as an optional component (can be installed via Add/Remove Programs / Windows Components), meaning it's free (as long you already paid for Windows, of course). MSMQ provides Win32/COM and System.Messaging APIs. More modern Windows Communication Foundation (aka Indigo) queued channels also use MSMQ.
Note that MSMQ is not supported on Home SKUs of Windows (XP Home and Vista Home)
Its worth mentioning that the ActiveMQ open source project defines a C# API for messaging called NMS which allows you to develop against a single C# / .Net API that can then use various messaging back ends such as
ActiveMQ
MSMQ
TibCo's EMS
any STOMP provider
any JMS provider via StompConnect
You may want to look at MSMQ. It can be used by .NET and VFP, but you'll need to rewrite to use them. Here's an article that tells you how to use MSMQ from VFP. https://learn.microsoft.com/en-us/previous-versions/visualstudio/foxpro/ms917361(v=msdn.10)
Sorry if this isn't what you are asking for...
Have you considered some sort of cache behind the scenes that acts a bit like the "bucket system" when using asynchronous sockets in c/c++ using winsock? Basicly, it works by accepting requests, and sends an immediate response back to the web app, and when it finally gets around to finding your record, it updates it on the app via AJAX or any other technology of your choice. Since I'm not a C# programmer I can't provide any specific example. Hope this helps!
Does the Fox app use .CDX indexes? If so, you might be able to improve performance by adding indexes without needing to change any program code. If it uses .IDX indexes, though, the change would have to be done in the actual app.
As the problem is with writes, I would look more towards >removing< any unneeded indexes on the tables. As is common in RDBMS, every index on a FoxPro table slows down a write operation as the indexes need to be updated, and as you aren't reading directly from (or presumably directly querying) the table you shouldn't need very many indexes. You might also want to look at any triggers or field rules on the tables as they may be slowing down the write operation. Be sure your referential integrity is still preserved, though..

Categories

Resources