I don't have any good links, just my own opinions ;)
You're absolutely right. The DataSet is not object oriented, gets you up
and running fast and helps tremendously with DataBinding. For many
simple, data driven applications, that's an acceptable set of
trade-offs.
However, if you're looking at more complex apps then you're right about
asking for more. You have some data binding support in windows forms for
classes with properties, but unfortunately VS.NET and wsdl.exe don't
create such classes until the VS 2005 release. You can look at wscf [0]
to generate classes with properties instead of fields. In VS 2005 the
whole object-oriented aspect of data binging improves, but that probably
doesn't help you today.
With regards to where you're business logic should go, the answer is
always the same: In the services layer. Smart clients enable richer user
interaction, but that should be it. You are adding quite a bit of
maintenance liability if you deploy business logic to the client. That
logic should still remain on the middle tier, which is exposed through
the service layer.
Now, you as the designer have to decide how complex your business logic
is and what the benefits of OO are to your application and then if those
benefits are worth losing the benefits of weak typing and DataSets.
Generally, I am very much for strongly typed service interfaces, which
DataSets do not provide. You may want to look at typed datasets as some
form of compromise.
HTH,
Christoph Schittko
MVP XML
http://weblogs.asp.net/cschittko [0]
http://www.thinktecture.com/Resources/Software/WSContractFirst/default.h tml
[quoted text, click to view] > -----Original Message-----
> From: nixon [mailto:niro@nnit.com]
> Posted At: Wednesday, December 29, 2004 1:13 PM
> Posted To: microsoft.public.dotnet.framework.webservices
> Conversation: 3-tier application with webservices, objectoriented?
> Subject: 3-tier application with webservices, objectoriented?
>
> Hi there!
> Im trying to build a 3 tier application that uses a smartclient in the
> "view" layer.
> The communication between the smartclient and the server should be
> webservices because of potentiel firewall issues.
> I´ve looke at to smartclient demos to figure out how the experts do
the
> stuff, design and overall architecture, Microsofts IssueVision 3and
> TaskVision.
>
> These applications uses DataSet´s to communicate between the layers
and
> binds these Dataset´s directly to the UI. The approach seems to get
you
> "up
> and running" very fast. However, from my point of view, thisapproach
is
> not
> very "objectoriented". No Businessobjects encapsulating business rules
and
> so on.
> I´m not trying to start a religious discussion about objectorientation
vs.
> proc. programming, I just don´t get it!
> In my application we have tons of business rules and transformation of
> data,
> where should we put this logic if we go for an design like the demos
> mentioned above?
>
> I could define and instantiate my custom Business objects on the
client
> that
> were instantiated from a DataSet (the dataset is returned from som
> webservice). However, in this kind of approach i loose all the
benefits
> from
> the DataSet in e.g.
>
> - ease of Binding to win controls
> - synchronisatzion with the server, update, delete etc.
>
> Do you have any good advices or links to articles demos?
> Thanks!
>
> Best regards niclas
>
>
>
>
>
>
>
>