Multi-User Data App Architecture

M

Matt Fielder

I'm working on converting my application from a single user, to a
multi-user. The current architecture is with an MSDE data back end
(switching to SQLExpress soon, but not quite yet). Each user connects to
the database directly - the connection string is stored encrypted in a local
file, and all settings etc. are stored in the database. The problem is it
seems that this could rapidly run into problems with scalability and
security. The other issue is there are some files such as image files that
are stored in the local file system and what is stored in the database is a
path to the file. For example, if UserA add an image to a record, then
UserB opens that record, they won't be able to see the image as the file is
actually on UserA's machine. Any direction in where to go with this would
be appreciated.
 
B

BK

The other issue is there are some files such as image files that
are stored in the local file system and what is stored in the database is a
path to the file. For example, if UserA add an image to a record, then
UserB opens that record, they won't be able to see the image as the file is
actually on UserA's machine. Any direction in where to go with this would
be appreciated.

I'd store the images and any other binaries you have in the database
itself rather than just a pointer to its file location. It's easy
enough to write the binary straight into an image field type and read
it back out.
 
M

Matt Fielder

Web services isn't really an option as I don't want to have to require IIS
on servers. I've started looking at remoting - seems like that might be the
way to go.

I know that "tell me about remoting" is FAR too broad of a question... but I
would appreciate any suggestions people have for where I can go look on my
own. Any books, websites or other resources that others have found
particularly useful? (it's a broad topic, and some resources for different
subjects are alwasy better than others)
 
G

Guest

Web services isn't really an option as I don't want to have to require
IIS on servers. I've started looking at remoting - seems like that
might be the way to go.

How many users are you looking to service?
I know that "tell me about remoting" is FAR too broad of a question...
but I would appreciate any suggestions people have for where I can go
look on my own. Any books, websites or other resources that others
have found particularly useful? (it's a broad topic, and some
resources for different subjects are alwasy better than others)

Ingo Rammer's Advanced .NET remoting is the book to buy :)
 
K

Kevin Yu [MSFT]

Hi Matt,

For .NET Remoting, you can start from the following link:

http://msdn2.microsoft.com/en-us/library/aa720332(VS.71).aspx

For image problems, you can either

1. Store images as binary data in database.
2. Store images as files in some folder on the server, and put a file path
in the database.

If anything is unclear, please feel free to let me know.

Kevin Yu
Microsoft Online Community Support

==================================================
Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/subscriptions/managednewsgroups/default.aspx#notif
ications.
Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 1 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions or complex
project analysis and dump analysis issues. Issues of this nature are best
handled working with a dedicated Microsoft Support Engineer by contacting
Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/subscriptions/support/default.aspx.
==================================================

(This posting is provided "AS IS", with no warranties, and confers no
rights.)
 
M

Matt Fielder

Was looking at the book suggested on Amazon... was a little put off by the
"Advanced" in the title. While I've been working in .Net for a little under
2 years now, remoting is a new topic for me - is there enough of an intro to
remoting to not lose me right out of the gate?
 
M

Matt Fielder

Kevin,

Storing images in a DB is a decent idea and one that I'm considering. I'm
wondering what other benefits there might be to having a single point of
data connectivity to the DB as well --- have clients connect to the classes
on the server instead of the DB directly.

As for storing files in a folder on the server is concerned, that's kind of
what I had in mind with the concept of remoting. Place a class on the
server that is responsible for saving and retreiving those images so the
clients don't need access to a folder on the server. The client would
interact with classes on the server only.
 
G

Guest

Was looking at the book suggested on Amazon... was a little put off by
the "Advanced" in the title. While I've been working in .Net for a
little under 2 years now, remoting is a new topic for me - is there
enough of an intro to remoting to not lose me right out of the gate?

Yes I think so - the basics of Remoting are pretty simple to grasp ... so
you'll want the advanced topics quickly (i.e. authentication, compression,
etc : )

BTW, take a look at Geniune Channels - they're 3rd party Remoting
components which add A LOT of features Microsoft "forgot" to implement.

Also take a look at WCF (Windows Communications Framework), the succesor to
Remoting in .NET 3.0.
 
M

Matt Fielder

I'm not necessarily so concerned with all of the behind the scenes stuff
(especially since I'm sure I'll be switching over to wcf in the next year),
and can get by with c# code but write in and much prefere VB. On the other
hand having ready access answers to tough questions should they arise is
always beneficial.

It's also my experience that different authors, and different publishers for
that matter complement each other in ways that they cover different topics.
I'll go ahead and order both.

As an interesting aside, I live within 10 miles of 3 large bookstores with
large computer section. I went out last night to try and find something
locally, and could not find a single title relating to distributed
applications. I would think this would be a much more common subject.


Michel Posseth said:
Ingo Rammer's Advanced .NET remoting is the book to buy :)


if you are a C# coder , and want to know everything that happens behind
the
scenes i would say Yes you are right


however if you are VB or C# coder who just wants to create a good
designed
multi tier application and doesn`t care about the details behind the
scenes
i would recomend this book

http://www.amazon.com/Microsoft-NET..._bbs_sr_2/102-7912395-8652115?ie=UTF8&s=books


and if you are really a die hard you scroll a litle bit to the bottom and
will see that Ingo`s book and the book i mention can be bought in one
special
offer price


regards

Michel Posseth [MCP]



Spam Catcher said:
How many users are you looking to service?


Ingo Rammer's Advanced .NET remoting is the book to buy :)
 
K

Kevin Yu [MSFT]

Hi Matt,

I think both are fine but all depends on your real application. If the
images are frequently read/write, it would be better to put them in file,
which will reduce the work load for the database engine. But it will
require a little more work for creating the file structure for storing
these images.

It would be good if you can use remoting or web service techniques to unify
the access to the database. Because it will be more efficient and more
secure.

You can check the following link for more information on .NET remoting.

http://msdn2.microsoft.com/en-us/library/kwdt6w2k.aspx

If anything is unclear, please feel free to let me know.

Kevin Yu
Microsoft Online Community Support
==================================================

(This posting is provided "AS IS", with no warranties, and confers no
rights.)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads


Top