HDI: High-Scalability Smart Client

HDI: High-Scalability Smart Client

Old forum URL: forums.lhotka.net/forums/t/7365.aspx


superkuton posted on Wednesday, July 29, 2009

Though only new to the use of the framework, I have finally developed my first CSLA application: a WinApp with a database in a shared host. I used LINQ to CSLA as the DAL.

But I saw some threads in the forum regarding the disadvantages of this setup from a security standpoint.

I went back to review chapter 1 of the book and have read the recommendation on moving the DAL to an application server for security and scalability purposes.

Now, I am wondering how do I move the DAL to the application server.

1. Are my worries in database security valid? Can automated malware and naughty keyboard masters easilty wreak havoc to our database?

2. In the case of a shared hosting environment, will it benefit to move the DAL to the application server? What is my "application server?" Is it simply moving dlls to the web space or something that we should create?

3. What are the requirements to move the DAL  to the application server? In my case, my database is served in a shared hosting environment.

4. What changes will I make to my LINQ DAL? Where will I put the assembly files?

5. Will this require changes to the business objects library? Or a simple change in a configuration will do?

Please helpme .Explanations or links will be appreciated. Thanks.

I am really new to this but I am proud to having this direction of study. Because of CSLA, I have graduated from studying winforms controls and dataset programming. I am glad to be learning a lot of new concepts in .NET and OOP programming because CSLA.

Thanks.

RockfordLhotka replied on Wednesday, July 29, 2009

If you are following the coding patterns from the book, then you shouldn't have to change any of your UI, business object or DAL code. You should be able to change your configuration to use a remote data portal (and set up an app server) and that's it.

Of course that's in theory. And sometimes it really is that easy.

In reality, if you build and test the app in a 2-tier model you might make mistakes in how you use or construct your objects that cause unnecessary data to flow to/from the app server.

Or if you are using older versions of CSLA (prior to 3.5) it was easy to mis-use the Save() method in a 2-tier model, making it harder to move to 3-tier. If you are using 3.5 or later, odds are very good that this won't be an issue for you.

I always recommend that people develop in 2-tier because the debugger is easier to use. And test in 3-tier, because that way you are pretty unlikely to make mistakes in the object design. Even if your production target is 2-tier, testing in 3-tier helps ensure you have the flexibility to just change later through configuration.

That's one of the key features of CSLA .NET and the data portal - the ability to switch between 2- and 3-tier deployments with no code changes.

superkuton replied on Wednesday, July 29, 2009

Thanks, Rocky.

Yes, I followed the coding patterns from the book, particularly the ProjectTracker sample codes, and I am using CSLA 3.5

I used LINQ to SQL as my DAL, like the ProjectTracker WinAp example.

How to I move the DAL to the application server?

Thanks.


mbblum replied on Wednesday, July 29, 2009

The video series Rocky' created covers n-tier deployment very thoroughly and has complete example solutions. The example solutions include WPF projects along with Silverlight, which by adding to the solution just worked.

RockfordLhotka replied on Wednesday, July 29, 2009

Chapter 19 in Expert 2008 Business Objects talks about configuring the data portal for remote scenarios, and how to set up a WCF app server. That's what you need to do to get your DAL code running on a server.

andy replied on Thursday, July 30, 2009

Yes, it's all in the book for reference.
you just switch the commnuication channel in the app.config file and off you go.
I deployed my app via trml server and click-once and found to be very scalable solution.

1) terminal client-->terminal server-->app server-->database

2) click-once->app server->database

Andy

Copyright (c) Marimer LLC