Smartclient Win App

Posts   
 
    
hameedAEM1
User
Posts: 17
Joined: 14-Sep-2006
# Posted on: 19-Sep-2006 16:46:11   

Hi all,

I am developing an application which requires me to make some architectural choices up front.

I have decided to develop a smartclient application that will be deployed to a server using ClickOnce technology which would enable the users to just go to a url and run it without installing it onto their machine. (Internet users outside the firewall)

Now what I need to do is to determine exactly how I will distribute the data. I am planning to use webservices (unless there is another way), I can't use remoting since the users will be outside the firewall connecting over the internet.

I understand there are issues with using LLBLGEN (a great tool by the way ;-)) via webservices.

I understand some people are using DTO but this sounds like alot of replicating of llblgen entities, unless I fail to understand them properly. And I can't understand how DTO will handle collections, crud operations etc.

In addition I have also read CSLA. Now from my understanding this is just for remoting and I don't believe I can use this as stated above. Please correct me if I am wrong.

Also I would prefer to use Selfservice since its much easier to work with but I believe in distributed applications I have to use the adapter pattern.

Applogies if this message does not flow that well but I guess this is a reflection of my confused state. I want to use LLBLGEN and am currently attemting to convince my team to adopt this but I need clarity on these points so I can demo a simple test application.

I look forward to any assistance.

Hameed.

Jessynoo avatar
Jessynoo
Support Team
Posts: 296
Joined: 19-Aug-2004
# Posted on: 19-Sep-2006 17:05:34   

Hi,

I think it depends a lot on what you plan to have on the smart client side.

I'm not sure what you mean but run it without installing it onto their machine". A web app then? I guess that's not what you meant, cause in that case you just don't need webservices. But did you think about that? I think a web app is much less work than a distributed app on a smartclient.

Now, for web services, Adapter is preferred indeed because it allows to keep the dbspecific dll on the server side.

Now I think we need more details to properly help you.

Cheers

hameedAEM1
User
Posts: 17
Joined: 14-Sep-2006
# Posted on: 19-Sep-2006 17:35:05   

Hi jessynoo,

Thanks for your prompt response.

I'm afraid I have to develop a smartclient (Winforms) application.

The scenario is this; a user can type in a url address from their machine at home outside the company firewall. Using Clickonce the application will be opened on the users machine providing him/her the opportunity to do their work. When they make changes add a new record etc this will be saved using the webservice as an endpoint. If the webservice is not available then it requires to be saved locally onto their machine until the service is available again.

I was really asking for best architectural advise on how to develop this application. I am certain that this type of requirement (for smartclients) is common as their must be other people developing these type of applications.

My thinking is that I will generate the code and create a BLL to sit ontop of this. The BLL will be exposed by the use of simple lightweight webservice methods.

On the client side the generated generic dll reference will be provided. The webservice will be called for example GetAllTourOperators(). This will return an EntityCollection and will be databound to the grid on winforms. Once a tour operator is selected then i will return the associated collections/entities by the use of prefetch.

I hope this is clearer.

Again any advise on best architectural approach will be appreciated.

Hameed

Answer
User
Posts: 363
Joined: 28-Jun-2004
# Posted on: 19-Sep-2006 18:31:54   

Well,

i also am writing a smart client. First off, you can use remoting over the internet just liek a web service...You jsut host the service in IIS, and use SSL for encryption. If you use windows authentication is solves the authentication problem as well. If you dont use windows authentication well then you have to do a bit more work on your own... but still i dont believe its that hard to pass a username/password in the remoting context..

So if your client is .NET which it sounds like it is, then i would probably stick with remoting as it just WORKS and its fast simple_smile

The llblgen over webservices is not other systems friendly anyway. So unless you need the WSE addons or have another good reason to use webservices i would prolly stick with remoting...

mihies avatar
mihies
User
Posts: 800
Joined: 29-Jan-2006
# Posted on: 20-Sep-2006 09:48:32   

Remoting over HTTP (as suggested in previous thread) is for you. Avoid webservices unless you need interoperability with non .net systems.

hameedAEM1
User
Posts: 17
Joined: 14-Sep-2006
# Posted on: 20-Sep-2006 10:45:45   

Thanks for the responses.

I was wondering if either of the previous posters could provide some details about remoting over HTTP and how it would work.

I'm wondering if I would/should use the JCL framework for this. I downloaded it lastnight but could not get it to work due to some interface problem. What I wanted to do was to try and understand what it is and in what circumstances it should be used.

I got to I hasve as much loss of understanding as when I started.

As always any comments/advise would be greatly appreciated.

Hameed.

hameedAEM1
User
Posts: 17
Joined: 14-Sep-2006
# Posted on: 20-Sep-2006 10:49:24   

In addition I am guessing if I use remoting over HTTP I would need to open a port, which could be an issue, whereas with webservices I would just use the standard internet port. (80).

Hameed.

mihies avatar
mihies
User
Posts: 800
Joined: 29-Jan-2006
# Posted on: 20-Sep-2006 13:01:17   

Remoting over HTTP is just a remoting over HTTP simple_smile It works as remoting, just the transportation channel used is HTTP which implies that you can use port 80 or HTTPS (encryption for free). I suggest you to read a topic or two on remoting. Basically you just have to configure proper channel and host you server part under IIS.

If I am not mistaken this article uses remoting over HTTP.

HTH

Answer
User
Posts: 363
Joined: 28-Jun-2004
# Posted on: 20-Sep-2006 18:01:06   

As the previous poster said, no ports need to be opened. It works over the HTTP channel...

here are a few links to get you started http://www.thinktecture.com/resources/remotingfaq/default.html http://msdn.microsoft.com/webservices/remoting/default.aspx