Re: Current approach to fast n tier oracle design
Fletcher's Discussion Account <[email protected]>
| Newsgroups | gmane.comp.windows.devel.dotnet.advanced |
|---|---|
| Message-ID | <01fb01c98561$71228760$53679620$@com> |
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