Re: Current approach to fast n tier oracle design
Sébastien Lorion <[email protected]>
| Newsgroups | gmane.comp.windows.devel.dotnet.advanced |
|---|---|
| Message-ID | <[email protected]> |
You cannot really hold Microsoft or anyone else responsible for the bad performance when the problem comes from the architecture itself. No matter how tight your code is, using web services will always have a perf impact, especially if your interface is chatty. If I was you, I would rather consider the web services as another consumer of your business logic rather than a provider. So I would make them a thin layer that call over a façade, the same way that your web apps should (even more so if they reside on the same server farm). In other words, the code reuse should stop at your domain layer, not at the web services level. Sébastien On Mon, Feb 2, 2009 at 1:09 PM, Fletcher's Discussion Account < [email protected]> wrote: > Dave, > > You have some good points and I will look into the binary mode of wcf. > But, > in this case, there is at least one other desktop application (beside the > one I am rewriting) that will probably use the web service. > > The initial plan calls for using a web page to communicate with the user > (vs. a desktop app currently in use.) As the queries results are generally > small, I am hoping that the response time won't be too bad. > > One thing I have found with MS is that they try to come up with some things > to make life easier for developers, but they often tend to be so > comprehensive that their performance is pitiful. > > I know I can test all this stuff, but I was hoping that some of you have > played with these and either know some tweaks that might make a difference > or if there is a variation on approach that I might use. > > I do know that I could write everything on my own, using really tight code > that just talked directly to the data, etc. But part of the goal is to > write code that can be managed by other .NET developers, so I would like to > use "standard" approaches where possible. > > Thanks, > > Fletcher > > > -----Original Message----- > From: Discussion of advanced .NET topics. > [mailto:[email protected]] On Behalf Of Dave Jones > Sent: Friday, January 30, 2009 12:12 AM > To: [email protected] > Subject: Re: [ADVANCED-DOTNET] Current approach to fast n tier oracle > design > > If this is an internal application and you can use the binary mode of wcf > and all other clients will is binary mode. Then go for it. However if you > are going to be using an XML WebService and you expect it to be fast then > think again. Design for n teir systems haven't changed since the 90's use > binary with compression intenally and some sort of machine readable text > for > exports imports. Webservices were used by one and all to provide > flexibility and to be reused. Both are a joke. It's very unlikely that you > will use the same data in more than one application so don't reinvent the > wheel, keep the same technical structure that you have now, ignore web > based > solutions they take money and time to develop, use easy methods of updating > your client, click once etc where you make the change in one place and it > propogates out without intevention. > > And I give this answer to all my clients as the best proposal, they > inevitably pick asp.net and webservices. There are the clients that are > happy with a fast rich application and those who call me back because the > latest patch to their browser broke some functionality. > > 0.2c > Dave > Dave JONES > [email protected] > 06.50.14.38.33 > > -----Original Message----- > From: Fletcher's Discussion Account <[email protected]> > > Date: Thu, 29 Jan 2009 17:03:57 > To: <[email protected]> > Subject: [ADVANCED-DOTNET] Current approach to fast n tier oracle design > > > Hi all, > > > > I have been asked to develop a spec to do something that is fairly simple. > I am just doing a quick sanity check before I start. > > > > I have to replace an application that gets data from an oracle server via > an > ODBC connection. It's a read only system that people like because it's > much > faster than using the actual application used to manage the data. I > program > in a number of languages and am just getting back into .NET (2008) so I am > not up to date on the best approach to use these days. > > > > My plan is to create a Web Service (probably the new WCF) that can pass > queries to the SQL server. > > > > Questions: > > > > 1) Is WCF the best choice given that I need speed and support for a > variety of clients (browsers and applications) > > 2) What is the best (fastest) way for the web service/WCF to talk to > the oracle server (OLE DB, ODBC, Oracle's drivers, etc.)? > > 3) Which of the .NET approaches (LINQ, TableAdaptor, CreateConnection, > etc.) will get the result the fastest from Oracle to the WS? > > 4) What is the best way to package the data to send back to the final > client (either a browser or application)? My guess is that I can probably > just pass the result set from the server on to the client > > 5) Is there anything I should do to the IIS server to make sure it is > supporting the applications the most efficiently? > > 6) With WCF, if I define an instance of the web service, does it > retain > its state until I release the instance? > > > > If the difference in speed is fairly negligible, then ease of > implementation > is the 2nd choice. > > > > I am looking at a web service because it can serve data to any client > (browser or application). We also have a problem with the IT people > changing the information that references the Oracle server, so I would > rather have one place to update instead of every user (which is what we > have > to do today with ODBC based clients.) > > > > The result sets are usually fairly small (100 rows or less) and may contain > parent-child data sets. > > > > Finally, are there any gotchas in this approach that might trip me up? > > > > Thanks, > > > > Fletcher > > > > > > > =================================== > View archives and manage your subscription(s) at > http://peach.ease.lsoft.com/archives > > =================================== > View archives and manage your subscription(s) at > http://peach.ease.lsoft.com/archives > =================================== View archives and manage your subscription(s) at http://peach.ease.lsoft.com/archives