I am building a prototype application in Silverlight 4 Beta and I am using the Out-of-Browser (OOB) functionality. I need the OOB functionality to be able to access the local file system, and I would like to avoid writing an ActiveX component or Java applet.
I have a requirement to be able to launch the OOB experience from the browser once it has been installed on the client machine. All I seem to be able to do is detect from the browser whether the application has been installed, and then ask the user to start it from the desktop or start menu (as a normal application).
This however 'breaks' the experience required by the customer, which should be directed from the browser. Has anyone been able to launch the OOB application directly from the browser?
Thank you,
Martijn
This should not be possible.
Just because a user has agreed to install an application as an OOB this should not confer rights to the source site that it can then invoke the OOB experience without the user explictly deciding to do so.
So the closest your going to get is what you already have. Politely remind the user that they have the app already installed as an OOB. If possible allow some functionality from the browser and in your "already installed message" explain that the best experience may be had by using the installed version instead.
Related
I want to run an exe on client system from my c# asp.net website. When I use Process.Start()
it throws an error:
The requested operation requires elevation.
How do I set permissions to run that exe?
You can't spawn processes on the client machine from server-side code.
When you use Process.Start in server-side code, it is attempting to execute the process there, on the server where the website is hosted. If you wanted to create processes on the clients computer then you would need to expose a download for them (and not in employing subterfuge, like malign sites might do to install software - supply it gracefully, and normally (and with permission)), or a Silverlight application or something along those lines.
The bottom line is that the code you want to execute (even if that is just to spawn a process) must reside on the client, and be executed there.
You can't run an application from a web server like that. You will have to have the user download the application by supplying the EXE, a setup file or using ClickOnce.
Or you can develop an ActiveX control that you can have the browser automatically download from a Trusted Internet Zone.
Once downloaded, proper signing with a certificate (signed from the trusted (corporate) root certificate) will avoid the user getting a prompt to ask whether he wishes to allow the ActiveX control to install/be activated -
The ActiveX control can subsequently do anything the interactively logged on user could. This means that to actually install a program you'd need to elevate (UAC on Vista+); But if the goal was just to run a standalone executable, you should be good to go.
This all assumes white-hat purposes in a (larger) corporate setting, because it relies on PKI infrastructure and central browser policies, to name just two.**
This would, really, lead to some excellent questions on serverfault or superuser
I noticed you said you wanted to run an exe file on the client, but you didn't say explicitly that the exe is on the server and you want to push it to the client. Everyone seems to be assuming that is the case.
You CAN accomplish this fairly easily with a small JavaScript if you have a few prerequisites:
The executable is already present on the client machine.
All of your clients are running IE
You can enforce a policy to put your site in the Intranet or Trusted
Sites zone.
So basically this means it's a corporate intranet application. I am assuming this is probably the case since, well, if you were expecting to do this with a public app, I would be surprised.
For the script to accomplish this, please see my answer to this question:
How can I get a program on a client machine to run from an ASP.NET page?
I have an existing App in Windows store(Metro Style)[XAML,C#]. I would like to convert this to Desktop(Ultra-book enabled ) and upload in to the Intel AppUp Store.
The application uses GPS and call several web API for certain features.
I there any tool to covert? or how could i port this app to Ultra-book enabled desktop app.?
Please provide step by step help or link..
I would check with Intel what APIs they provide for AppUp. I am almost sure though that there are no tools for this and you just need to solve it on a case by case basis.
I don't think there is any tool to convert it for you. Based on my experience with Intel AppUp, if you can extract your metro app functionality and create a normal desktop application for it, you should be able to submit the app in the AppUp store.
You will have to create a msi package for your desktop app and the msi should create a desktop shortcut which can launch your app. The appUp guys somehow figure out the shortcut target and can launch the app from the AppUp client itself. You will also have to take care of uninstallation from the appup interface.
I am using .NET CF 2.0 with C#.
I need to create Policy enforcement application, which restricts backlisted application installation on windows mobile devices. How can I get notification for new application installation with an option to close the installation. I also need to get notification when someone uninstalls my application with an option to close the uninstall process.
Policy enforcement on Windows Mobile can be tricky. I'd recommend not trying to do this yourself if possible.
I've had success with the SPB Kiosk Engine in the past and found it much simpler than locking down the device yourself. Previoulsy I've only been able to lock down specific devices with software from the device manufacturers.
To detect installation of other apps you would need to create an app/service to monitor installed applications.
There isn't a way to detect/prevent uninstallation without use of another proces to monitor this. Even then I'd expect it to be VERY tricky.
We are planning to develop a Silverlight 'cross platform' application, that is expected to run on both Windows and Mac with elevated permissions. Mono alone is not an option, as the application requires Silverlight specific video features, supported only in SL 4.0
So, here are some considerations.
1 - The 'Application', should interface with a local database (outside Isolated storage)
2 - The application should be able to talk to native libraries for performing some DVD IO operations.
3 - It has to be installed via a custom installer, much like a desktop app
We are trying to identify the best way to to satisfy the requirements, if possible, with a common code base, probably using SQLLite for the database.
In Windows, things are straight forward. You can use sllauncher to install the XAP with elevated permissions, and you can access the SQLLite and other system level operations via probably a COM layer. Not a big deal.
But how to implement interfacing with SQLLite and system level libraries in Mac? Is there a documented/undocumented way to interface with Mac libraries from Silverlight (Mac)? I think no. One option might be to use Mono's XSP web server, and run an ASP.NET site from the local machine, and host the XAP locally, and then implement a handshake with the ASP.NET code running via Mono/XSP, and then do the interfacing from there.
Another option will be to host the Silverlight in the Mono's Winforms browser control (I still need to see if this is possible), and then do the talking between Mono Winforms browser and Silverlight via HTML DOM.
Both are not straight forward options in Mac.
I highly appreciate any inputs you can provide to achieve the objectives in a better way.
Part of the solution could be to define an interface on your database. In windows you could choose to talk directly to it, and for mac you write a soap server. Your silverlight app should be allowed to talk to that. You can implement the soap server in mono, then you have one language all way....
I don't believe the Winforms browser control works on Mac, but you could try MonoMac instead.
I wrote a C# application that is running well on my xp development machine.
When my client is running it on different PC, it seems to freeze on both vista and 7 machines.
I would like to know if there is any issue on running dotnet applications on vista/7.
I compiled the application for both framework 2.0 and 3.5 but it didn't help.
The log file neither doesn't help.
Is there any way to know where is the application freezing (of course, the client doesn't have VS for attaching to the application) ?
Thank you in advance for any help.
Pierre.
Generally, .NET application should run the same on any Windows version with .NET framework installed. Most common problem that occur are related to the new User Account Control policy in Vista and 7, which prevents applications from accessing areas requiring elevated privileges (which would otherwise run fine under an Administrator account in XP).
For example, if your application is trying to write configuration settings to the Program Files folder (which is a really bad idea, btw), or is using some hardcoded disk or registry paths instead of environment variables provided in .NET classes, it may fail under Vista.
To quickly check if this is an UAC privilege problem, try to run the application as an administrator (have your client right click the .exe file and select Run as Administrator). If it works, then this suggests that you need to examine your code and update it to make sure you are only accessing allowed areas.
Check this link for more information: Making apps UAC aware.
As redsquare suggested, the best way to test your application in a variety of Windows systems is to run them in several virtual machines (MS Virtual PC or VMWare Player, both of them free for download).
You do not give much information in order for us to help a great deal.
I would start by trying to recreate the issue locally on a virtual machine (vista one available here) and then profiling the app with something like memprofiler.
Ask your client to capture a process dump using Windows Task Manager,
In Task Manager, find the process that hangs.
Right click and capture a memory dump.
Then you can do some analysis on the dump to see why it hangs.
If you are not familiar with dump analysis, find someone who can help or open a support case via http://support.microsoft.com
csharp applications are supposed to run on vista/win7. This is their home:)
Your problem is not the OS. its your application.
Most probably the application is looking for a file, a folder, something on the client side that is not there and its freezing. this is my experience.
Check for project independencies and make sure you have shipped to your clients everything your project needs.
and last, distribute to one client the debug version with debug messages enable and get the feedback from their system.