1

I am developing a multi-tabbed application in .NET. I want to create different process for different tabs, something similar to Chrome. The reason for this is that each tab is memory intensive and crash in one tab, should not affect other. Each tab is responsible for displaying very big documents.

I would highly appreciate suggestions about the design in this regards.

Algorist
  • 492
  • 1
  • 5
  • 17
  • possible duplicate of [Tabs in their own process with C# and WinForms](http://stackoverflow.com/questions/201674/tabs-in-their-own-process-with-c-sharp-and-winforms) – Cody Gray - on strike Jan 12 '12 at 13:11
  • I doubt Windows Forms allows you to really host the tab pages in different processes, I think the UI control (TabControl and TabPages) has to be in the main app process / UI Thread but surely you could do all the cpu/memory intensive operations in controller classes (or BusinessLogic, call these the way you prefer) which run in separated processes or AppDomaiins then the TabPages are onl showing the results – Davide Piras Jan 12 '12 at 13:11
  • Whoops, that was the wrong one. Somehow that question got closed as a duplicate of [this one](http://stackoverflow.com/questions/197182/windows-forms-application-like-google-chrome-with-multiple-processes) without having the duplicate edited into the question. – Cody Gray - on strike Jan 12 '12 at 13:11

1 Answers1

1

You can keep the view layer (controls, forms) in the host process in that tab (just as you normally would).

But, split out the business logic data etc... into a separate process and communicate with it through interprocess communications like named pipes, TCP etc... WCF is one option, .net remoting is another, straight up TCP sockets is another.

Hopefully, it's the data and business logic that's memory intensive and not your view layer.

Here's a related SO post on interprocess communications in .net: What is the best choice for .NET inter-process communication?

Community
  • 1
  • 1
bryanmac
  • 38,941
  • 11
  • 91
  • 99