I understand the concept behind MDIL and the role of cloud compilation of CIL -> MDIL ..
My question is, what happens when we remove the "cloud compilation" story , how or what does the MDIL compilation step for enterprise deployed windows phone apps?
Is it the CrossGen.exe that runs as part of VS when F5ing in "Release" mode? Is the XAP that we deploy in our "enterprise" store in this case a MDIL XAP or is it the CIL XAP ?
Sorry if my question sounds confusing, as im quite confused with how MDIL works for the Enterprise store :)
http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj681686.aspx
The Microsoft recommended way is to use a PowerShell script BuildMDILXap.ps1 that ships with WP8 SDK. Given a XAP file and an enterprise code signing key (that you get from Symantec) -- it unzips the contents, runs the MDIL compilation, code signs the DLLs, zips them back to XAP and signs the XAP file as well.
The script uses two tools - MDILXAPCompile.exe and XapSignTool.exe to do the work. The phone is perfectly capable of running the IL (JIT). In my experience (a simple LOB app with not-too-complex UI showing data from server) there is no visible performance difference with and without the MDIL compilation. YMMV.
While MDIL compilation makes the assemblies bigger, complex apps might benefit from it. I would watch the startup performance and perhaps any heavy computations (if applicable).
Related
The UWP infrastructure seems to have everything what's needed for a portable model.
Clear separation between os and application
Clear separation between different applications
Less dependencies
Support portable class libraries
As far I know portable scenario's are not supported right now. Is it something that we can expect in the future or is it intrinsic impossible due the architecture of UWP/WinRT
How hard would it be to create some kind of host executable that can run any local UWP app. At the moment I'm looking for portability between different Windows 10 PC's. Not so much cross device or cross OS.
I'm aware you can side load UWP apps, but that's not what I'm looking for.
Is it something that we can expect in the future or is it intrinsic impossible due the architecture of UWP/WinRT
I don't see any major technical limitations that would prevent this scenario. UWP apps can register to some global mechanisms (which is something portable apps shouldn't do), like push notifications or background tasks, but the whole application model has been designed so that users can limit access to those features on a per-application basis. So every developer publishing an app is supposed to have considered beforehand that those code-paths may fail.
But "technically possible" doesn't mean that Microsoft will do it. In fact, I seriously doubt they ever will. The reason is simple: they're pushing the store with all their might, even seeking to put Win32 apps on it. Clearly, they're moving towards putting more apps on the store, not the other way around.
As to know whether it'd be possible to make a third-party standalone runner, I think so. When running unit tests for an UWP app, Visual Studio is launching a sort of "shell" hosting the app (it has become very apparent recently because after an update of Windows 10, the API that allowed to hide the splashscreen wasn't working anymore). I don't know what API is used to create this shell, but I'd definitely dig that way if I wanted to make a portable UWP host.
Although I haven't done this myself (will update answer if and when), reading this article makes it look like there is an easy way to create an installer that calls that command.
In short, an appx package can be installed locally using the command:
C:\Program Files (x86)\Windows Kits\10\bin\x86\WinAppDeployCmd.exe
Which can probably be wrapped in a UI or CMD installer.
Here's nice example of it (not mine).
Windows Phone got my attention recently with making iOS and Android apps convertible to Windows Phone apps using Windows Bridge. I am eager to know if libgdx support translation to windows phone apps with Bridge tools? Has anyone any experience with it?
Well, the bridge is under construction still so you're not likely to get much feedback here. LIBGDX hasn't concentrated on Window's phone, but I think they've created an x86 DLL for some of their unmanaged code a while back. Not sure on the status of that.
I used a similar bridge technology for Blackberry in the past. The process was simple and only required installing plugins and executing a conversion tool on my Android APK. No code changes.
However the site for the Window's phone bridge says minimal code changes may be required. I'd speculate the process will be extremely simple so as to encourage releases of popular apps onto their platform. If Microsoft makes the process complicated, developers aren't going to bother.
Attempting to submit a Windows Phone Silverlight 8.1 app to the store. Solution has several projects, including a Models, Contracts and a Shared DLL. These 3 projects/dlls are failing the Windows App Certification Kit tests with:
File XXX.Shared.dll has failed the NXCheck check
File XXX.Contracts.dll has failed the NXCheck check
File XXX.Models.dll has failed the NXCheck check
Microsoft say the problem is a Security threat issue, because these dlls are running code that is stored in a data segment.
The suggested resolution from Microsoft is to add the /NXCOMPAT switch to the Linker options, however, I do not have a Linker page in the properties in any of the 3 offending projects. I've tried adding this to the compilation symbols, but no change.
These DLLs are low payload - they contain not much more than POCO data objects, interfaces and a few static methods. I've built a new default blank Windows Phone app and added these projects to the Solution. If I reference any one of these projects in the main phone app project, the certification fails with the same result.
So the problem is definitely isolated to these 3 projects. There are other projects of the same type included in the solution, but these do not exhibit the same problem.
Does anyone have any ideas as to what these DLLs could contain which causes this Binary Analyzer failure?
I've compared compiler / build options and checked the project properties etc, but can't see any obvious differences.
This was due to a post-compile Build Event referencing an obfuscation library in each of these projects. Solution was to remove it as the library was third party.
I am completely new to mobile development and i interested to hybrid apps and of course Intel XDK. When i reading Intel XDK's documentations i faced to "runtime" word.
What is mean of this phrase and actually what is it's mean when they saying
Crosswalk is a HTML5 runtime, ...
in their blog post.
Apologize me if I asking one of stackoverflow's stupid questions.
"Runtime" generally refers to the time a program runs, as opposed to other times in the programs life cycle like compile time. Software is typically written, then compiled, then deployed or installed, then run. These different phases are often referred to as "compile time", "install time" and "runtime". E.g. "at compile time, the compiler will ...".
"A runtime" is a software package that is necessary at, well, runtime. E.g. a library, interpreter, virtual machine or other such supporting packages. Crosswalk is a system that takes in HTML 5 "apps" (including HTML, Javascript etc.) and, well, makes them work. Executes them. Runs them. It's essentially a browser engine, but not packaged as a browser, just as a system that can interpret and run HTML 5, which you can embed into whatever other software you want.
So you could write your application in HTML 5; then to make that work like a native desktop application which can be downloaded and installed, you write a tiny Windows application and an OS X application which basically just contains Crosswalk, which runs your actual application inside it, cross-platform.
Run-time - the length of time it takes to execute a software program
The Intel XDK includes the Crosswalk runtime as a supported target of the cloud-based build service.
Crosswalk runtime can be used for creating HTML5 application with a dedicated runtime that can be run on multiple platforms without any dependency for webview. It can be used for creating application that uses HTML5 features like WebRTC, hardware-accelerated WebGL support and bleeding edge HTML5 features.
For more information please follow this resources..
crosswalk-runtime
more resources : Using the Intel XDK “Crosswalk for Android”
Is it possible to push windows 8 app directly to some not development-devices (without direct access to device)? For example, if one wants to install demo version of our app during the exhibition on devices of someone who intersted on our product.
First of all, the application deployment bypassing the Windows Store is called sideloading.
One basically has two options to perform sideloading:
Windows 8 Pro and Windows Server 8, if they are joined to a domain, are directly ready for side-loading.
Windows 8 and Windows 8 RT, as well as the above-mentioned systems without domain, require the activation of a special Sideloading key, which can be purchased by enterprises only and usually available in 100 packs (priced at $3000 per pack, $30 per licence).
The installation of the app can be done either by using the application image and DISM or in runtime by add-appxpackage PowerShell CmdLet.
Here is a good explanation of the whole process (in German).
No, it would not be practical at an exhibition to provide direct loading of your application, bypassing the Windows Store. The Windows Store is there to provide a safe environment in which to download certified applications.
It would be a far better experience if users could download from the Windows Store a trial version directly -- maybe you could provide free a wifi/network connection, and a bit.ly link or QR code of some sort to quickly get to the download for your application. :)
While it is possible to do side-loading (walkthrough) in some circumstances, it was not intended to be used in this case. It's intended for Enterprise deployment and the walkthrough article has lots of details about the specific options and the costs associated if the destination machines/Windows isn't running Windows 8+ Enterprise edition.
One other option is that you can also deploy an application for testing purposes to another developer machine (which requires a Windows 8 developer license). It would be unusual for anyone but a Windows 8 application developer to have this activated (as you know, they expire after 30 days). This may be a violation of the licensing agreement though as it is expected that this is for development purposes only. It also involves powershell, so it would be a potentially awkward installation experience at an exhibition.
It is possible dude...
Just developer unlock ur phone and deploy apps directly from PC.