2

We are developing visual controls for WinForms in .NET, and one of our customers using our products is still compiling all his apps for .NET 4 Client Profile. He has to do this as his customers, some larger companies, would not allow the full install of dot net framework since it contained security risks that were unacceptable to some customers. I wonder, are there any benefits of using .NET Framework 4.0 Client Profile nowadays - especially looking at the fact that Microsoft abandoned client profiles with the release of .NET Framework 4.5?

And a related question. To support our customers writing apps for .NET Client Profiles, we provide our controls in two DLLs. One of the DLL is the core functionality redistributed with end-user apps, and the other DLL implements only the design-time functionality. If we do not consider this separation in the context of .NET client profiles, are there any advantages of this separation?

  • 1
    Voting to close this question as it's a request for resources (list of benefits) – David Arno Feb 14 '18 at 9:36
  • 2
    @DavidArno, it's a question to practicing programmers from my point of view. I wanted to know what REAL advantages/disadvantages we have. – TecMan Feb 14 '18 at 10:01
  • 1
    What you want as an answer, and what your reasons for asking were, are of no consequence. It's an off-topic question. Further, on this occasion, there is a simple, one-item, answer to your question. That answer has been supplied by @Euphoric. You have not only not accepted that answer though, you have rudely told him to shut up as that's not the answer you want. Your question is therefore not just off-topic; it's worthless. – David Arno Feb 14 '18 at 10:05
  • 1
    @RubberDuck,So you are suggesting that we should modify the question guidelines to "If enough people think your question interesting, then we'll ignore the rules on what constitutes an off-topic question and will answer it anyway"? – David Arno Feb 14 '18 at 11:46
  • 1
    No @DavidArno. I’m saying I think this is on topic. It’s a software engineering question related to the advantages and disadvantages of supporting legacy technology. – RubberDuck Feb 14 '18 at 13:39
2

A good question but hard to answer positively.

Microsoft say the benefit of the .net 4.0 client profile is its small size. That's all.

They further go on to say that .net 4.5 is small enough that they don't feel the need to release a client profile version.

So the naive answer is 'No. there is no benefit of .net 4.0 client profile over .net 4.5' That's why MS stopped doing it.

But, in your question you mention security concerns.

This doesn't make a lot of sense to me, as you would have thought that anything you can do in 4.5 you could program yourself in 4.0.

If you assume a machine has got some dodgy code on it. Relying on that code not running because it requires certain .net components to be pre installed seems... risky

But we all know that big organisations have to do a whole load of paperwork and checking when they install anything. Perhaps the 'security concern' is just that 4.5 hasn't been through that organizations checks and sign off yet.

The best approach, if you want to stop supporting client profile seems to me to be to suggest that it has a known security flaw which is fixed in the latest version of .net

Indeed, mearly the fact that security updates stopped being issued jan 2016 should be enough to light a fire under the security conscious.

https://blogs.msdn.microsoft.com/dotnet/2015/12/09/support-ending-for-the-net-framework-4-4-5-and-4-5-1/

2

The only good reason to support 4.0 these days is if you need to support Windows XP users. .Net Framework Supported OS by Version. Newer versions of the framework are available on all versions of Windows except XP.

The security argument just doesn’t hold water here. If they’re concerned about security, they should stop using ancient operating systems that are long out of support. The right thing to do here is announce an end of life on your 4.0 support and give your customers whatever assistance you can when they upgrade to a newer version of your tool. Of course, if they’re running XP, it’s likely they’ll just stay on the last version of your product that supports it until some security breach lights a fire under them.

1

There are no benefits of using such outdated technology.

Other than being able to sell to customers who require it.

It is up to you to decide if the added complexity, lack of newer features, and possibly harder to find willing developers, is offset by selling it to few selected customers.

Specific disadvantages I see when using .NET 4 Client profile

  • Smaller pool of willing developers. People want to use newest technology possible. And it needs specific personality not to be demotivated by being stuck on old technology.
  • Developers are more expensive. They know there are only few of them and they know you need them. So they can ask for higher compensation than average.
  • Lack of 3rd party libraries. Only small fraction of 3rd party libraries support .NET 4 and even smaller fraction of them work on Client Profile. So you are by yourself on this.
  • Some .NET 4 technologies are not mature. Concrete case is WPF. It became useful only in .NET 4.5 thanks to it's text rendering reimplementation.
  • Non-transferable skills. You, as a employer, should build up skills of developers working for you. But by targeting such old framework, you train skills that don't transfer to newer frameworks and technologies. For example, WinForms is dead technology, and being skilled in it's development has no benefit for possible projects targeting newer frameworks.
  • 2
    Honestly, I consider "being able to sell to customers who require it" a huge benefit, opposed to "not being able to sell". – Doc Brown Feb 14 '18 at 7:32
  • 2
    @DocBrown It might be huge benefit. But such capability might come at huge cost. It might be my feeling only, but in current job we are stuck at .NET 4 and it is massive pain not being able to use newer features. – Euphoric Feb 14 '18 at 7:36
  • @Euphoric, I still can't understand why you did "-1" for my question. Doc Brown is right regarding "customers who require it" - they determine what we can sell and earn our money by doing this. I asked about particular benefits or disadvantages, and if you can't write any concrete point, better write nothing. – TecMan Feb 14 '18 at 7:40
  • @TecMan I did not -1 your question. I wonder why you assume that. – Euphoric Feb 14 '18 at 7:48
  • 1
    @TecMan, the garbage collector is worse in .NET 4.0. There's no built-in support for async/await (a nuget package is needed). ASP.Net is slower. To name just three. Basically, find yourself a good list of what was new in 4.5 and everything listed there as new or improved is automatically therefore worse or missing in 4.0. Even 4.5 is getting a bit old these days. The only possible use for 4.0 is - as Euphoric states - because a customer is paying you enough to make it worth your while to stick with ancient technology. – David Arno Feb 14 '18 at 9:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.