Good day! Unfortunately, in WPF and many other points, it is not very strong, so I ask for your help.

I am writing client server software for a small airline. So far, the main purpose of the program is to account for aircraft, flights, components for them, maintenance, etc. The base is used by Postgree, now there are about 20 tables, further it will be more, 70% of them should be edited by the user. A bunch of Entity Framework Code First + Npgsql is used.

I took on this project because of the desire to learn new things, because with projects of this kind have not yet worked.

The server will be located on a separate machine in the local network, the number of simultaneously working clients will be about 10. Clients will be on WPF. In the future, the program may go beyond the local network. Version .NET Framework 4.5

In this regard, a few questions:

1) What are some useful controls, libraries can you recommend for the interface? The memories of a year and a half ago are still fresh in my head when I tediously sawed my coursework on a WPF + DataGrid, while some classmates used LightSwitch to spend less effort and get a more pleasing result. But LightSwitch is paid, so for my purposes it is poorly suited.

2) How to implement client-server interaction? He is familiar with sockets, and writing on them is not a problem. But I also heard about the existence of a WCF, maybe you should try it?

In general, the task in my opinion is more typical for 1C, which I honestly told the customer, but he said that he did not want to get involved with him.

  • There are some good controls in the WPF Toolkit . Although DataGrid is rather uncomfortable there, in my opinion. - Vlad
  • Tip - use Prism to create a modular extensible system. On Habré a series of articles is enough for a complete understanding. For your task this is the thing It also interacts well with WCF. Specific controls that you need - google, but when writing your own, use the chips from Expression Blend. There, there are Behavior and other gadgets that make you a WPF god without disturbing MVVM! - cvvvlad

5 answers 5

Recently, I have been using Elysium Extra - well-developed, free open source Win8-style components. Basically sharpened by MVVM.

Installation: PM> Install-Package Elysium.Extra or search for Elysium Extra in NuGet

    Of course, it’s better to use WCF than to write everything on sockets. Even if you know how to work with sockets and do not know WCF. If you have at least 10 different types of requests in the project between the client and the server, then you will learn WCF faster than you can write them all on sockets.

      But wouldn't it be in this situation that the use of ASP would be more appropriate, rather than WPF + WCF bundles? Look in this direction ...

      • I offered ASP to the customer, but he needed a desktop application - 5665tm

      But LightSwitch is paid, so for my purposes it is poorly suited.

      Well, buy it if it suits you completely. Or look towards free libraries. It is desirable that she was alone.

      I offered ASP to the customer, but he needed a desktop application

      FireFox / Chrome / IE is quite a desktop application. The customer requires his business goals to be fulfilled, not a desktop application. I suspect you are thinking about something else rather than customer problems. If you do not change your point of view, this "project" is likely to be meaninglessly wasted time.

      But I also heard about the existence of a WCF

      I would look in the direction of ASP.NET Web Api, but again, much depends on what exactly you want to do. Do I need polling, broadcasting. All tools solve some problems, there is no right answer to the question: "What should I get to pound the client-server application"; the answers to the questions (or rather the questions themselves) appear only after clarification of the requirements for functionality, speed, UX, etc. P. of things.

        But the LightSwitch is paid, so for my purposes it is poorly suited

        How To Get Visual Studio LightSwitch For Free (Legally!)

        However, I note that I had a lot of pain with this tool, since the doping is equipped with a bunch of restrictions imposed by WPF and MVVM. If the project is small, then yes, the decision is quite justified. Otherwise, it is worth weighing everything well.