Possible architecture errors

I am currently creating a fairly sophisticated CRM / POS system that has the following requirements:

  • The system must be installed on one machine (PC)
  • The system must be installed on one computer, which can act as a server, and gain access to several client computers (LAN, wired and wireless).
  • The system should work without an internet connection

Once the system is up and running, the next phase will be the creation of a web version. The user interface is paramount and should be as slippery as possible for the image-oriented industry.

The architecture I settled on is as follows:

  • Sql Server 2008 Express DB
  • Linq-To-Sql Data Layer
  • WCF services displaying linq data layer
  • WPF for frontend

This should support all 3 requirements, and I hope to provide a fairly simple port from WPF to Silverlight for web phase 2.

My question is, are there any problems with my chosen architecture? I often used asp.net and Windows Forms, but I have little experience with WPF (I chose it for graphical capabilities). Are there any issues with Linq-To-Sql binding in WPF via WCF?

+4
source share
3 answers

A few thoughts:

If you plan to use the WPF port for Silverlight, I would recommend using a Separated Presentation template such as MVVM. Depending on the complexity of the user interface, by following the PRISM guidelines and using your development for WPF and SL for many purposes, you can save some time in the long run. Or you might think about completely abandoning WPF and developing an application with an external browser from the very beginning - the two XAML dialects and tools are getting closer. However, this can complicate your “disconnected” scripts.

Keep in mind that the design of your services (to ensure low speed and minimal data transfer) will be a factor in the success of the web version.

+1
source

As you will need a web solution later, why not install IIS on a single PC, so your single-machine solution is also "web-based."

Then you can use Silverlight from day one. However, do you need to do anything in the user interface on a Single PC system that Silverlight cannot run?

Would you rather get the Single PC version fast and then the pain of porting to a deployed web solution, or do you want the pain to start from the beginning?

+1
source

I recently studied this and came to the conclusion that the Entity Framework is better suited for the database and WCF / WPF. In the decision-making process, the article Entity Framework in multilayer architectures is important. It may also be better to have an agnostic DB approach.

Now we have created most of the application (DB-> EF-> WPF desktop application). I'm still glad I went with EF. EF does most of the grunts for me, and I think it really blends in well between relational and object oriented ones.

If you are going to publish a web version using silverlight, I would consider a tip to start by creating both versions as part of your architecture. It’s hard to do it retrospectively. See Code Reuse in WPF and Silverlight 2 .

In any case, I would include verification of all requirements before moving on. Create a simple proof of conceptual application that confirms that all three of your requirements can be met with your chosen architecture.

+1
source

Source: https://habr.com/ru/post/1302128/


All Articles