XBAP usage and maturity issues
Asked Answered
T

5

5

we're considering migrating our UI to XBAP. we've chosen XBAP despite knowing the clients must have .net pre-installed, since we're not targeting the masses but rather IT professionals in the corporate environment, and it's a way to preserve our investment (in a WPF based UI in a client-server architecture) and enjoy web deployment. however, we are concerned about the maturity of the platform/architecture and it's adoption.

do you know of any commercial applications out there using XBAP, and do you have any experience using it? can you elaborate on that experience?

also, as @Murph suggested, can you think of strong reasons to prefer clickOnce over XBAP (or the other way around)?

Tensile answered 21/10, 2009 at 9:55 Comment(3)
In looking at this one would also need to ask why XBAP over Clickonce? Unfortunately I can do much by way of an answer either way!Galenic
good question, I have to say I don't know which is preferable, will update my question.Tensile
SORRY EVERYONE! I wanted to choose a receiver for the bounty, however StackOverflow didn't allow this (took too long). I think this really sucks, and I wrote about it in the meta site, but alas I can't change this. so my apologies to everyone, and thanks for you help!Tensile
S
3

I've been doing an XBAP tool, also for internal corporate needs. It's pretty easy to rollout updates -- just update the server app version and the clients will be updated next time they connect. So, in this aspect its not very different from ClickOnce.

The main problem for us was the "partial trust" mode, that you have to obey. And it goes wrong in some very unexpected situations, like for example, some of our third-party WPF failed because they used WPF bitmap effects, which in turn used GPU shaders, which was considered as a security violation by the system and blocked. I'm not sure if that kind of problem is solved in ClickOnce. The rumors are the XBAP trust mode will be less paranoid in .NET 4.

Otherwise, I don't see any difference. At least the development of XBAP vs stand-alone WPF is all the same. (Note: Silverlight is different, it uses only a subset of .NET framework, which is separately installed and available for several platforms. XBAP requires Windows platform and .NET Framework 3+).

Sumikosumma answered 30/10, 2009 at 22:22 Comment(4)
in partial trust, how difficult/easy is it to use modal dialogues/open new windows, etc? I've read that opening a new window will dispatch the pop-up blocker, is there a way to have it work out of the box without further local configurations?Tensile
In general, you are not allowed to open new windows or use your own dialogs (msdn.microsoft.com/en-us/library/aa970910.aspx). You can call some standard dialogs, like File Open, and you can create Popup instances. Not sure if they will be blocked or not, but you'll also have to implement the "modality" on your own (social.msdn.microsoft.com/forums/en-US/wpf/thread/…)...Sumikosumma
another question - my client calls a web service, with WCF configured via app.config. when I played around with XBAP I couldn't find a way to deploy it, and anyway app.config isn't available since the process runs in the context of PresentationHost. did you have any experience with an alternative to app.config (especially in the context of web services)? (deploy another file and manually load? use hard-coded configuration?)Tensile
AFAIK, we use App.config to connect to a WCF-service and it works, no special treatment needed...Sumikosumma
A
2

We've had much success with ClickOnce, including production rollout to external, non-technical customers. It was easy to use, including being easy to integrate into our automated build process. Our experience is at least one more datapoint for you to consider in weighing the risks of the 2 alternatives.

You're right that adoption for XBAP is, indeed, very low. I think that's primarily because Silverlight makes so much more sense for most people who want the benefits of WPF/DotNet in a browser (since their apps can be cross platform with Silverlight).

Agnusago answered 28/10, 2009 at 21:21 Comment(3)
could you elaborate on the first point - clickOnce? is it easy to role out updates? (or is it a copy & run per click?) as I said, our motivation is mainly quick and effortless deployment for helpdesk users for instance. as to the second point - again, we'd like to use as much of the existing code, and it seems that silverlight will be much more restrictive when using our common assemblies etc, since a silverlight project can't reference non silverlight assemblies.Tensile
Yes, it's very easy to rollout updates - that is a core part of ClickOnce. So you post the new build of your tool to the HTTP server where they installed from and the next time they run it will automatically upgrade. You can control how draconian it should be: force update, prompt for update, etc.Agnusago
You're quite right about Silverlight in your case. I only mentioned it as a possible explanation for the low adoption of XBAP, not as a recommendation for you to use on this problem.Agnusago
C
2

We develop an application that has both a desktop and a web implementation. Because the functionality is almost the same we want a single source solution. The application is a project and drawing management tool for a CAD application. Most important reason to have it run in a browser is that the application will be used as a collaboration tool to exchange project data and drawings.

The problem with browser hosted applications is that they run in the browser and are thus limited to the rules that apply (as mentioned in another reply eg. new windows and trust limitations).

Because our application is mainly used in controlled intranets and extranets we think we can manage with our solution. Our application runs in full trust and is signed with our own certificate which makes life a little easier.

The benefits are of course the click once installation (and update maintenance) and the ability to let users install the application 'anywhere' (or course you need .NET and the certificate on our case) via a web site.

The biggest problems we faced were related to trust, navigation and dialogs which we could solve. Another problem is that our application uses web services to access data. The binding between a client and the web service is quite hard by default (embedded) but we also found ways to overcome this.

We can also run our application outside the browser (but install it via the browser). But our product owner currently wants the browser experience as this makes more sense to users. If you install via a web site but run the application outside the browser then the limitations that the browser demands are less.

Chirurgeon answered 13/4, 2010 at 11:48 Comment(0)
A
2

Here's a fun fact. In .NET 4.0, they have added the ability for XBAP applications deployed via ClickOnce to run in full trust. No more partial trust required. That should give you some options!

Articulation answered 14/4, 2010 at 9:35 Comment(0)
C
1

I could be wrong, but IIRC XBAP uses ClickOnce as it's underlying deployment method. [Cant find where I read this, so take that with a grain of salt.]

That said, I've had great success running a WPF application via ClickOnce deployment. As was stated before, you deploy all the files to your web server. As you release updates you simply copy them to your web server, as clients run the app they get prompted to update to the newest verison, you can require update, or allow them to deferr.

Its very user friendly and doesn't require the overhead of a browser to run your application.

Came answered 30/10, 2009 at 15:29 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.