Click here to Skip to main content
15,901,914 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Need some advice on a software engineering project that deals with large amounts of File I/O & file manipulation. Current system is written in Visual FoxPro 9 with a SQL Server 2008 database. The compiled application sits on an application server that is accessed via end users across a LAN. The end users PC have shortcuts to the application which they execute causing severe traffic at night and also causes the app server to be nothing more than a glorified hard drive/file share. Our tech services area is attempting to alleviate the problem by creating virtual machines for end users to allow the program to run from the app server correctly in order for the application to directly talk with SQL Server without bouncing traffic around the LAN. My first instinct is to create a N-Tier solution to replace the current process and I'm fairly new to this design. If this is the best approach to resolve the nightly network latency issues, please point me in the way of best practice approach. My idea is to have WPF or WinForms Presentation Layer, C# windows services as the business logic layer on the app server to handle the File I/O, and finally SQL Server 2008 and a file share on the app server as the Data Layer. Am I correct in my goal of N-Tier architecture or is there something I'm missing or incorrectly handling?

Thanks
Posted
Comments
Ashraff Ali Wahab 24-Sep-12 19:06pm    
For your kind of application the way you have tiered seems correct.

1 solution

The "n-tier" architecture originally refered to the breaking of the application into physically separate services on different machines where n being more than 3 (UI, BL, DAL) usually multiple business logic machines.

Today this is generally understood as breaking the application into logically separate layers, which may or may not be on the same physical machine.

Most applications are client/server apps where there is a clear separation of the UI and the "rest".

For your case you should first migrate your application to a dedicated data layer which is not file based like VFP.

Instead of sharing the front-end VFP from a single point deploy it to the client machines.
 
Share this answer
 
Comments
Adam197 26-Sep-12 13:41pm    
Can you explain what you mean by migrating the application (.EXE) to a dedicated data layer from it's current position on the network? I'm basically trying to decide how, when re-written, best to code on all 3 Tiers... My thoughts: C# WinForms (or WPF) on Presentation Tier [End User PC all networked on "Switch A"], WCF using TCP/Windows Services for File Processing on Business Tier [App Server on "Switch B"], and Stored Procedure calls on Data Tier [SQL Server 2008 on "Switch C" but soon to be on "Switch B"]... Provided this information am I on the right path or should I be attacking the solution from a logical "layered" standpoint where the layers are on separate physical machines?
Mehdi Gholam 26-Sep-12 14:16pm    
Yes you can do as you say, you must be aware that this no simple undertaking.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900