Unity3D lets you write scripts in C# which are (IIRC) run through the mono framework on PCs with the Unity player installed.
How does Unity3D sand-box this - I assume they must do - to prevent a malicious site trying to delete your files or report data back to a server about you and your PC?
The Unity Player runs it's own version of the Mono runtime that doesn't include file system access.
There's a massive (10MB) list of what Mono/.Net classes are available for each supported platform.
http://unity3d.com/support/documentation/ScriptReference/MonoCompatibility.html
Related
Is it possible to create an application (like a Windows executable) with visual interface using node.js?
Question arises because I was looking at an application (exe file in windows) which apparently runs javascript code and use a "web-style" presentation (probably encapsulating a Browser object) so controls look pretty much as a web application but running in a windows application.
Is there any known tool for this?
Thanks
Gus
I know that the new UWP app model has some limitations when comparing to "traditional" Win32 apps.
Let's take Visual Studio Code as an example of a desktop app.
What features of Visual Studio Code were missing or had to be different from user perspective, if it was an UWP app?
EDIT:
I've done exams for microsoft certification "Essentials of Developing Windows Store Apps Using C#" and Exam 70-355: Universal Windows Platform – App Data, Services, and Coding Patterns. So I know something about win rt api.
Please don't bother with answers like "uwp app runs in sandbox". They are useless, because they say nothing about the limitations from users' perspective. I intentionally took real life example, so we can go concrete.
The limitation could be, that your app cannot support 3rd party plugins like custom syntax highlighter or refactorin extension(it was limitation of windows store apps, not sure if its still valid).
Another limitation could be, that your app is not able to take screenshot, because there is no api in uwp for it (not sure it its true, actually)
The phrase "Win32 desktop app" is a ill-defined since the Win32 API programming model has been around since Windows NT 3.1. It can also cover dozens of development languages and UI frameworks over the intervening two decades.
Here's a quick overview of the key UWP differences:
API surface area. The UWP platform supports many but not all Win32 and COM APIs, and introduces new APIs. If your "Win32 desktop app" is using mostly ANSI APIs that date back to Windows 95, then you have a lot of updating to do. If you are using mostly Windows Vista era UNICODE APIs, then a lot of stuff "just works". See Win32 and COM API for Windows Runtime apps (System).
Security context. The UWP platform runs applications in an AppContainer security context. "Win32 desktop apps" on Windows Vista or later run as "Standard User" or as "Administrator". UWP apps have less access rights than "Standard User" and can never run as "Administrator". UWP apps can request additional capabilities to get a few more rights with permission from the user, but have limited access to the system and user data. For example, you cannot read most of the filesystem, only your installed location, an isolated application data folder, and an isolated temporary file folder. See File access and permissions (Windows Runtime apps). This also means UWP apps have limited access to devices. See Device and sensor overviews.
Windows Vista User Account Control that introduced Standard User was focused on protecting the system and other users data compared to the older "everything is administrator" model, but did little to protect the current user's data files since all apps could access or even modify it. AppContainer isolation is protecting both the system and the current user's data and settings. "Win32 desktop apps" were encouraged to install to C:\Program Files which was read-only at runtime and to use application data folders, but they were not required to.
Deployment via AppX. "Win32 desktop apps" use any number of ways of deployment, often something using MSI technology and running as "Administrator". UWP apps are packaged in AppX files and are always deployed by the system. There is no "Custom Install Step", and therefore UWP apps cannot install drivers or services, change ACLs, etc. The system takes care of deploying the C/C++ Runtime (which must be Visual C++ 2015 or later).
Interface model. There is a plethora of interface frameworks for "Win32 desktop apps" like WinForms, MFC, WPF, etc. The vast majority of these are not compatible with UWP because UWP does not support classic Win32 windowing, WM_ messages, or GDI/GDI+. For UWP apps, you can use XAML with C++ or C# code-behind, DirectX (Direct2D and/or Direct3D) with C++ (or C# via 3rd party assemblies like SharpDX), or HTML5 with JavaScript.
Deployment via MSIX.
Answering your question is therefore extremely difficult, if not impossible, without a complete understanding of the product's code base and dependencies.
See Get started with Windows apps
I'm following this tutorial that describes the way of connecting the node.js app with adobe action script 3.0. In that way I could present live video data (received by UDP from different application) to some other user. My question is - is it possible to make the video player with received data embedded on my html/php website?
I checked the official documentation and there's a sentence:
The DatagramSocket class can only be used in Adobe AIR applications and only in the application security sandbox.
and on this forum someone wrote:
You can run an Adobe Air application FROM the browser.
But you cannot run an Adobe Air applicatin WITHIN the browser.
Indeed, Adobe Air wraps webkit (a very famous html rendering engine).
Think of Adobe Air as a shell built around an browser.
If you want to run something within the browser you can go with Flash/Flex.
But it's pretty old post, so maybe something has changed? Or maybe there's a way to convert the AIR app to Flash/Flex?
Thanks!
This can kind of be done. I'm not sure if you need it to run in the browser or not, but you could do an Install Badge. It allows the user to temporarily download the AIR file and run it on there computer from the browser through a seamless link without having to actually download and save the AIR files to there computer. You can read more here:
http://help.adobe.com/en_US/AIR/1.5/devappsflex/WS5b3ccc516d4fbf351e63e3d118666ade46-7e15.html
It is not possible.
What is ADOBE AIR?
Adobe AIR is a cross-operating-system runtime that lets developers
combine HTML, JavaScript, Adobe Flash® and Flex technologies, and
ActionScript® to deploy rich Internet applications (RIAs) on a broad
range of devices including desktop computers, netbooks, tablets,
smartphones, and TVs. AIR allows developers to use familiar tools such
as Adobe Dreamweaver®, Flash Builder®, Flash Catalyst®, Flash
Professional, or any text editor to build their applications and
easily deliver a single application installer that works across
operating systems.
Adobe AIR is used to run desktop applications rather than content in the web browser, and just like a SWF file doesn't run in the browser without Flash Player installed, an AIR application won't work on your computer without Adobe AIR installed.
In short:
Flash Player is a browser plugin that takes adavantage over browsers incase Adobe AIR supporting users by providing RIAs in the devices.
And there is two kinds of AIR developemnt available for now.
AIR with SWf: AIR SDK with actionscript libraries.
AIR with HTML: HTMl and javascript within the AIR are handled by the open source Webkit/ javascript engine.
Reference
I have taken over a Windows-CE 6.0 application that I would like to port to other platforms. It is a relatively straightforward, self-contained GUI application, written in Embedded C++ Version 4.0
The very first target I am interested in would be a regular Windows desktop (i.e. XP, Vista, Windows-7).
I understand that porting a desktop application to CE is nontrivial; but what about the reverse, which is what I am interested in? Is going from Windows-CE to Windows Desktop (somewhat) upward-compatible? I sure would love to hear "buy this $1000 Microsoft XYZ C++ development environment and just compile and go!"
(FYI I have no experience with GUI applications nor with programming in the Windows environment; pretend I am but a simple linux/unix guy with decades of C/C++ experience but absolutely no Windows-Fu... ;-)
Porting up should, actually, be pretty straightforward. CE is mostly a subset of Win32, with heavy emphasis on Unicode.
You can probably make sure UNICODE is defined, build and, with a little luck, most of it will "just work". Places that are going to be hangups are:
The UI is likely to be set for a resolution that doesn't match your PC - often CE apps are targeted to a specific device and resolution and this doesn't necessarily come out very aesthetic on a PC.
Anything dynamically loaded (GetProcAddress) from coredll will have to be re-mapped to kernel32/user32/etc
If the device uses the SIP (software input panel - i.e. on-screen keyboard) then all of that has to get stripped out.
If the app uses any Notifications (icons, etc) that has to get replaced
If the app uses any power management, that has to get ripped out
If the app uses any device-specific stuff - especially direct calls to drivers, all of that has to be replaced
If the app is using point to point queues, that has to get replaced
If the app is using the device manager (e.g. to get notifications of copnnected devices) that has to get replaced
Any calls into aygshell.dll are likely to be problematic as well.
I have an embedded device,its includes windows CE 6.0 Build 3112.I want to run silverlight application on this device.I downloaded silverlight application,when I want to install it says "Silverlight is not valid application windows CE"
so what can i do?
Thx.
In Addition to ctacke's answer. Not all Windows CE devices have to have any specific component and that includes Silverlight for Embedded Devices.
To check whether your device includes Silverlight For Embedded devices, you can check whether your \Windows folder contains the xamlruntime.dll file. If it does not contain the file, then your OEM did not include Silverlight in the image.
If you want to check out a simple Silverlight for Embedded devices application you can download the code from the following tutorial: Silverlight for Embedded Tutorial
THe issue you're seeing is that while it's called "Silverlight", Silverlight for Windows Embedded really isn't what most developers who know Silverlight would call Silverlight (in fact I wish they'd rename it).
While it does use XAML and that XAML can be created using Blend, the code itself has to be written in heavily templated C++. You can't take a compiled Silverlight binary from anything other platform and use it under CE.