473,395 Members | 1,456 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,395 software developers and data experts.

Best Practices with In Memory Data

Hello all,

I am coming from another development environment (Clarion for Windows) and
they offer a special In-Memory driver which acts just like a database
driver. What would be the appropriate replacement for such an animal using
VB.NET 2005? We are looking for the fastest possible speed, data does not
have to persist (may in some cases) and could be globally scoped or local to
the procedure. Would you choose a collection or an array to handle this
type of functionality? Can I bind this collection/array to a data grid box?

Thanks in advance!

Ben Kim
Emergitech
Feb 7 '06 #1
7 1361
>
I am coming from another development environment (Clarion for Windows) and
they offer a special In-Memory driver which acts just like a database
driver. What would be the appropriate replacement for such an animal
using VB.NET 2005? We are looking for the fastest possible speed, data
does not have to persist (may in some cases) and could be globally scoped
or local to the procedure. Would you choose a collection or an array to
handle this type of functionality? Can I bind this collection/array to a
data grid box?

Dataset/datatable although it is not a real SQL based in memory database has
it all functionality to to the same.
Feb 7 '06 #2
Excellent - Thanks Cor just what I needed to know!

Ben Kim

"Cor Ligthert [MVP]" <no************@planet.nl> wrote in message
news:eS*************@TK2MSFTNGP11.phx.gbl...

I am coming from another development environment (Clarion for Windows)
and they offer a special In-Memory driver which acts just like a database
driver. What would be the appropriate replacement for such an animal
using VB.NET 2005? We are looking for the fastest possible speed, data
does not have to persist (may in some cases) and could be globally scoped
or local to the procedure. Would you choose a collection or an array to
handle this type of functionality? Can I bind this collection/array to a
data grid box?

Dataset/datatable although it is not a real SQL based in memory database
has it all functionality to to the same.

Feb 7 '06 #3
CMM
I would agree with Cor. Datasets are excellent in-memory "databases."

On the other hand, arrays and the myriad of collections and dictionaries in
the System.Collections namespace are cool too... and may be more
efficient... but in terms of performance and robustness datasets can't be
beat.

To answer another one of your questions: yes you can bind both arrays and
collections to controls. They all implement the IList interface. BTW,
collections are really not much more than wrappers around an array. Again,
the dataset is the Zeus of all "lists."
Feb 7 '06 #4
There are a number of options out there. I'm not sure that I agree with the
recommendation on passing around datasets. They do have a fair amount of
bloat which you may not want if you require "fastest possible speed". There
are a number of factors to consider, including physical distance between
entities, network connection speeds, targeted platforms, etc.

Your fastest option is binary formatted remoting over TCP/IP. However, this
will only work between .Net applications and may require firewall
modifications to allow clients to access your service.

The more accepted method (SOAP) packages your data as XML inside of a
envelope (more XML) and transmits over HTTP (typically using IIS). This is a
more open standard as any platform can create and consume XML. It is human
readable as well which has it's advantages (easier to read thus easier to
program) and disadvantages (easier to read, thus harder to secure).

In between these options, there are a myrad of possibilities. I strongly
suggest you start looking at WCF (formerly code named Indigo) as it allows
switching between some of these options using command line switches. If you
are just starting a project now, you may be able to time your product's
release along with VISTA/WinFx (by all accounts before the end of the year).

I recommend you run some feasibility studies comparing the performance of
datasets compared with collections of objects. Both can be serialized using
XML. The objects can be more customized for your particular business needs
and do not incur the overhead of additional functionality you may or may not
need. As always, YMMV.

Jim Wooley

"Ben Kim" <bk**@NOSPAMemergitech.com> wrote in message
news:uL**************@TK2MSFTNGP10.phx.gbl...
Hello all,

I am coming from another development environment (Clarion for Windows) and
they offer a special In-Memory driver which acts just like a database
driver. What would be the appropriate replacement for such an animal
using VB.NET 2005? We are looking for the fastest possible speed, data
does not have to persist (may in some cases) and could be globally scoped
or local to the procedure. Would you choose a collection or an array to
handle this type of functionality? Can I bind this collection/array to a
data grid box?

Thanks in advance!

Ben Kim
Emergitech

Feb 7 '06 #5
CMM
I agree with you. Like you said, the best option is "remoting."

But, you don't want to use datasets because of efficiency concerns... those
same concerns should preclude you from using SOAP. The only place for SOAP
is for interoperability (like you need to communicate with a Java
webservice.). SOAP is the absolute King of Bloat. Not only is the envelope
verbose XML but even if you decide to put a binary payload in it, it has to
be converted to a tranportable encoding which doubles even triples the size
of the payload. Putting serialized data as XML in it is even worse. I don't
hate SOAP or WebServices... I just think its retarted to use them in an
internal LAN... especially when regular ol' Remoting provides so many more
benefits.

Feb 7 '06 #6
Jim,

Datasets don't have to be serialized they are serialized.

As CMM write can it be a minor that it sends as well description
information. However it can be a plus if the information has to sent a lot
of empty fields. Those can be avoided to sent with a dataset.

Just my thought,

Cor
Feb 8 '06 #7
I think we are in agreement. I mentioned SOAP as he is needing to integrate
systems potentially. If they aren't all in .NET, passing the dataset may not
be an option, nor would remoting. I agree that the slowest option would be
SOAP over HTTP and the fastest is Remoting over TCP/IP. He will need to
weigh the business needs (interconnected systems) with the performance needs
(fastest possible) to determine the final architecture.

Jim Wooley

"CMM" <cm*@nospam.com> wrote in message
news:%2****************@TK2MSFTNGP14.phx.gbl...
I agree with you. Like you said, the best option is "remoting."

But, you don't want to use datasets because of efficiency concerns...
those same concerns should preclude you from using SOAP. The only place
for SOAP is for interoperability (like you need to communicate with a Java
webservice.). SOAP is the absolute King of Bloat. Not only is the envelope
verbose XML but even if you decide to put a binary payload in it, it has
to be converted to a tranportable encoding which doubles even triples the
size of the payload. Putting serialized data as XML in it is even worse. I
don't hate SOAP or WebServices... I just think its retarted to use them in
an internal LAN... especially when regular ol' Remoting provides so many
more benefits.


Feb 8 '06 #8

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

37
by: middletree | last post by:
Yesterday, I posted a problem which, by the way, I haven't been able to solve yet. But in Aaron's reply, he questioned why I did several things the way I did. My short answer is that I have a lot...
2
by: Steve_CA | last post by:
Hello all, I just started a new job this week and they complain about the length of time it takes to load data into their data warehouse, which they do once a month. From what I can gather,...
4
by: Chuck Ritzke | last post by:
I keep asking myself this question as I write class modules. What's the best/smartest/most efficient way to send a large object back and forth to a class module? For example, say I have a data...
11
by: DrUg13 | last post by:
In java, this seems so easy. You need a new object Object test = new Object() gives me exactly what I want. could someone please help me understand the different ways to do the same thing in...
136
by: Matt Kruse | last post by:
http://www.JavascriptToolbox.com/bestpractices/ I started writing this up as a guide for some people who were looking for general tips on how to do things the 'right way' with Javascript. Their...
0
by: Louis Aslett | last post by:
I hope this is the correct newsgroup for this query (if not please give me a pointer to where is best): I understand the theory of normalisation etc and am trying to follow best practices in the...
4
by: Collin Peters | last post by:
I have searched the Internet... but haven't found much relating to this. I am wondering on what the best practices are for migrating a developmemnt database to a release database. Here is the...
3
by: John Dalberg | last post by:
I am looking for an ASP.NET application on CodePlex which exemplifies best practices for the following: - Use of interfaces - Seperation of the UI, business and data tiers - Data Tier that uses...
7
by: =?Utf-8?B?TW9iaWxlTWFu?= | last post by:
Hello everyone: I am looking for everyone's thoughts on moving large amounts (actually, not very large, but large enough that I'm throwing exceptions using the default configurations). We're...
3
by: at_the_gonq | last post by:
Hello, I am hoping to get some guidance on the following scenerio: I have a password protected site where users have various permissions. Are sessions the best way of storing the user's id? ...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.