Show performance/system logs on the Microsoft Mesh application - windows

I've been playing around with Microsoft Mesh (a remote AR/VR/MR collaboration solution for Teams) for a few days. The thing I want to know is if it’s possible to log some performance/system indicators when using the application. For example, frames per second, network I/O, CPU/Memory usage.
Since it runs on only HoloLens 2 (for now), whose OS is a modified version of Windows and CPU is ARM-based, it seems difficult to grab detailed information as in Linux where almost everything is open-sourced (I'm a newbie in Windows-related development).
I'm wondering if there are some APIs for these logs (whether system level or application level). Thank you all!

You can use the Performance Tracking in the device portal, refer to Using the Windows Device Portal - Mixed Reality | Microsoft Docs, you can refer to Performance tracing and analysis with WPA - Mixed Reality | Microsoft Docs for further analysis of this data, and you can also get this data via Device portal API reference - Mixed Reality | Microsoft Docs.

Related

App Development - Finding the right platform to migrate to from an existing infrastructure

We have an existing cross-platform Mobile Application, that also has an accompanying web application, that uses AWS as a back end (RDS for Database, Four server instances, and a Load Balancer to distribute traffic). APK and IPA files are packaged and sent to the stores, while components are retrieved from our server per request, which enables us to reduce the number of store builds, and make the process easier for getting changes out to clients.
We are at the stage of Development that we need to move to another platform to better facilitate our fast growing client base.
Due to the conditions upon our clients, these things must be considered.
must be cross platform (Android / iOS).
must be offline based (users need to be able to access without an internet connection)
must be able to sync with an existing database when there is a connection
requires Authentication
Cloud based (? may not be the right term, but meaning the ability for us to store components on a server and have a device check for updates and download a local copy - enabling us to work and distribute fixes faster)
Ideally compatible with AWS
We are currently looking at Xamarin to facilitate us for this move, however there is a lot of documentation and plugins out there to do all sorts of different things.
As developers, we all have some .net / c# experience, however none particularly with Xamarin.
We have a particular timeline that we need to adhere to (and need to ramp up in the next couple of weeks), and right now are essentially stuck in Limbo in a research phase, as we can't afford to get some things right. We are unable to move forward until we know Xamarin (or some other framework) is able to do everything that we need it to do.
It's hard to escape from the 'code it all ourselves' mentality - especially as we don't know where to start looking in terms of third party packages for Xamarin, and their documentation itself.
A lot of documentation mentions various systems of Azure - we would not be against moving to Azure over AWS if it _had to be done*, but because of the existing infrastructure with AWS - staying with AWS is obviously the preferred option (users need to access the current system whilst we build the new system)
This stack overflow post is to ask for recommendations, comments, or other observations on anything and everything involved with the process in regards to choosing frameworks, design patterns, methodologies, third party packages, etc.
Obviously we would like to use best practises for everything moving forward for optimum scalability and cleaner, more robust code. It's just hard to know where to start!
Any input will be highly appreciated.
Cheers!
edit: I am aware that this is 'asking for recommendations' which is 'specifically off-topic'. I have read the posting guidelines about open ended discussion, and am quite confident that this case is different. There is an underlying problem here, in that we are seeking advice on combinations of frameworks and plugins that are fully compatible with all of the items in the list (above)
Let's try to breakdown each of your requirement and constraint mentioned in the question.
1. You need a offline first architecture (With Sync mechanism)
Xamarin + Azure would make a good comdo for you, as it would support offline storage out of box (With a simple PullAsync call).
Albeit there are AWS SDK available for Xamarin. Here it goes http://docs.aws.amazon.com/mobile/sdkforxamarin/developerguide/setup.html
So the call is yours. There are few other ways to achieve caching offline storage in Xamarin, you can build upon those strategy in your logic. Alternatively there is a very interesting C# library Akavache for caching and offline storage.
2. OAuth 2.0 Authentication
Xamarin has a very good library named Xamarin.Auth. Though I would not say it is very easily extendible at this but there has been some serious work going on from Xamarin on this library.
But I would say it is very easy to use. The apps I have developed so far that includes - Google OAuth, Facebook integration, Microsoft account integration. It worked fine for all of them.
3. Cloud based distribution
There are nice tools available with Microsoft. Which makes the distribution easy. Have a look at https://mobile.azure.com . Also hockeyApp is good for distribution I found.
Where to start:
A very good starting point for you would be https://channel9.msdn.com . Just go there search with keyword "Xamarin" and view some videos. May be all these cross platform dynamics will be much easier for you.
Overall I found Xamarin a cool product to work with. Because anything that can be done in native Objective C/Swift or Java can very well be done in Xamarin using C#.

Cross Platform Desktop Application Development

I’d like to develop Windows 8 applications and have them hosted on Azure as if they were any other website, i.e. accessible to Macs, PCs, etc. I don’t want to be limited to people downloading Windows 8 applications to a Windows 8 PC or device. Can you explain how Azure achieves this?
I’d like to develop Windows 8 applications for desktops, but not be limited to running them on Windows 8 PCs and devices.
Thanks
Azure doesn't achieve this at all, other than providing a public endpoint for access to 'code'. What you have up in the cloud will depend on what you want to achieve and who you want to reach.
You mention web site and application, but those connote two very different architectures.
A web site will give you the most reach since you'll (presumably) be using standards like HTML5/JavaScript and CSS that are available on a multitude of platforms. As you can see by using applications like outlook.com, the user experience can be quite immersive. With a web site there's little to no client-side requirements other than a browser.
An application typically implies native installation on the target machine and provides the richest possible experience because you use techniques, frameworks, and APIs that are specific to a platform or a device. Applications also (arguably better than web sites) enable reach and monetization via marketplaces like Apple's App Store, Google Play, and the Window Store.
Technologies like Silverlight and Flash were part of the RIA wave (Rich Internet Application) that was a hybrid of both: use the web for reach, and a plug-in for richness. Those are still valid models, but the tide is shifting to HTML5 which is now much closer to reality and narrows the user experience gap that Silverlight and Flash filled. While Silverlight is definitely supported (in an out-of-browser mode as well), the choice of using a plug-in technology will limit your audience because of platforms supported and the need for an additional installation. That may or may not be acceptable given your target application.
What we are seeing now is a trend toward mobile application development paradigms - native still, of course, but also hybrid applications such as afforded by PhoneGap, AppMobi, Sencha, and other HTML5 frameworks and cross-platform options like Xamarin. Each of these allows you to develop in the language and constructs you know well for a given platform, but create applications which are partially or wholly 'native' and can run on multiple devices and platforms. Typically, you will reuse much of your 'back-end' and data integration layers across you targeted platforms, but rework the user interface to be in-line with the expectation for the device.
Windows Azure figures prominently in the development of such apps by providing infrastructure for data storage, services, identity management, push notifications, and other facilities that rely on centralization and scale.
And I suppose there's one other option in all this, virtualization, but that's a larger hurdle for end users and wouldn't recommend that as a general approach.
You can create Silverlight apps, it runs in browser. So it can be open Windows PC as well as in Mac. Do visit Microsoft Silverlight website. Here's few links regarding Azure with Silverlight.
Silverlight in the Azure cloud
Microsoft Silverlight 5 and Windows Azure Enterprise Integration
Windows Azure with Silverlight End To End Demo
More you google, more you will get results.

Any desktop application metric services (think Flurry for OS X)?

What are the options for desktop application metrics collection in 2013?
I know of Usermetrix and Deskmetrix, but surely they can't be the only ones? If you look at mobile analytics services the market seems to be a lot more developed.
Specifically I am looking for usage analysis (stuff like retention, crash reports, custom event reporting, version tracking.
EDIT: I should note that I'm aware of the similar questions but they're a few years old and was hoping to get an up to date picture, especially since the advent of the Mac App Store.
You should check out Trackerbird Software Analytics.
SDK is available for .NET/C++/Python and Mac OS X. Integration takes just a few minutes and apart from basic installation/usage tracking you can also use it for in-app marketing and conversion analysis.
Disclaimer: I am affiliated with the company.
While Deskmetrix seems quite nice, I ended up using Tapstream because it's free and Deskmetrix is pretty expensive.
Since Tapstream's main focus is evaluating advertisement campaigns its analytics feature is rather poor (compared to Flurry for instance). However, they allow custom event tracking.
When developing Mils, it was of great help that Tapstream supports both Mac OS X and Windows 8.
I've been successfully using Mixpanel (which has a free tier): they don't have an official Mac SDK (iOS only) but I've written a simple Obj-C wrapper for their APIs: https://github.com/swisspol/MixpanelTracker

An Application interfaced with mobile

I have an idea to design an application which is interfaced with a mobile. The application has to note down each and every transactions happening in the mobile like making a note of all incoming messages and store appropriate information in the application's database to perform manipulations. Is this possible ? Can you suggest me an appropriate technologies for the same.
in j2me for blackberry call logs apis are there but not for another devices.
like for nokia you have to use symbian c++.
You included an Oracle tag but didn't say why. I am guessing your core application has an Oracle database.
If you are looking for an embedded database for your mobile app which can exchange data with the main DB then have a look at Oracle Lite. This is a Java product which runs on the main mobile platforms (Windows 2003/XP/Vista, Windows Mobile and Pocket PC, Linux, embedded Linux and the Symbian OS but not - yet - the iPhone).
The Oracle Lite model is designed for primarily offline working, with sporadic data refreshes (using Oracle's Replication functionality). The alternative model, online working using 3G data (or WiFi or whatever) is more complicated. This is because the implications for losing a signal midway through a database transaction are considerably more significant than when we are surfing Boing Boing. Unfortunately you are not entirely clear in your question as to which approach you want to take.

What is a "Cloud OS"?

The term is getting 'hotter' with Microsoft Azure and Windows 7.
What are the benefits + how does the status quo of desktop computing now change? Does the machine no longer need an OS installation (or a highly stripped down version of a typical OS)... what is needed to interact with the 'Cloud' ?
Update: Received my first RTFM on SO today.
To elaborate.. I'm interested in knowing how different is the 'new way' w.r.t. the services provided by a typical desktop OS today (read Win XP/Vista, linux flavors galore, etc.)... NOT the benefits of cloud computing.
Two buzzwords.
Basically its Microsoft's form of competition against Google's recent web-apps boom. So if you want to know what it's all about just open up google docs and gmail, and there you go :)
Now on a personal note, I'm glad Microsoft and Apple(Mobile Me) are trying to fight back against Google. We need the competition, so us the users can choose and get better apps.
Also I'm really not a fan of any corporation, so I'm not all that excited about Google killing off everyone else any more than Microsoft doing the same to others.
When Microsoft says Azure is a Cloud OS, what they mean is that it provides the same kind of services to developers targeting the "Cloud" abstractions that are akin to what a Desktop OS provides developers targeting desktop.
Amitabh Srivistava gave a great interview on Channel 9 explaining it. Basically, if you want to write a notepad application for a desktop user, you don't have to be concerned with writing code that interprets key strokes from the keyboard, or that sets up communications with a printer. This is due to the desktop os. Similarly, Azure lets a developer focus on their cloud app better by abstracting things like load balancing, authentication and authorization, failover, and a lot of concerns that one would normally have to address when developing for the Cloud.
Old school network diagrams always showed the internet as a cloud. Microsofts approach is still a client-server model, although a real 'cloud' os in theory would be a SOA architecture of loosely fit components interconnecting and working together without really being aware of eachother. Example: creating services for email, document authoring, file storage, etc- which could all be interconnected by different services that don't erally need to be aware of the final product.
So different way of thinking of it: the 'system' exists in the network- not one single location.
Gains: Transparency, redundancy (not only of each service, but for replacing parts if vendors drop out) and availability (as long as you are also connected to the network).
Losses: Vendor lock-ins, vendor's dropping out, interoperability nightmare, as far as I know- there are no real standards for this model.
Microsoft did not coin 'cloud' computing term. Please refer to the wikipedia entry for a more specific definition and etymology.
whats with the RTFM questions on SO lately? unless I'm missing some deeper meaning, your questions are obvious.
http://en.wikipedia.org/wiki/Cloud_computing
Cloud computing is Internet-based
("cloud") development and use of
computer technology ("computing"). The
cloud is a metaphor for the Internet
(based on how it is depicted in
computer network diagrams) and is an
abstraction for the complex
infrastructure it conceals.[1] It is a
style of computing in which IT-related
capabilities are provided “as a
service”,[2] allowing users to access
technology-enabled services from the
Internet ("in the cloud")[3] without
knowledge of, expertise with, or
control over the technology
infrastructure that supports them.[4]
According to a 2008 paper published by
IEEE Internet Computing "Cloud
Computing is a paradigm in which
information is permanently stored in
servers on the Internet and cached
temporarily on clients that include
desktops, entertainment centers, table
computers, notebooks, wall computers,
handhelds, sensors, monitors, etc."[5]
http://en.wikipedia.org/wiki/Azure_Services_Platform
Microsoft's Azure Services Platform is
a cloud platform (cloud computing
platform as a service) offering that
"provides a wide range of internet
services that can be consumed from
both on-premises environments or the
internet"[1]. It is signficant in that
it is Microsoft's first step into
cloud computing following the recent
launch of the Microsoft Online
Services offering.
...
The idea and push from Microsoft to
compete directly in the software as a
service model that Google's Google
Docs have offered is increasingly seen
by them and others as an important
next step in application development.
In this idea, a software doesn't have
to be installed and managed on the
user's computer. It also allows files
and folders to be accessed from the
web.
So far, it looks like the idea of having software & your data hosted at msft's data centre.
SOA seems to be related to what cloud is offering.
No need to have local software (office will run from internet, your docs will be saved there. so that, you can access it anywhere). I think, the target could be big companies - thereby giving them services (software + hardware (data storage + processing power)) on subscription basis.
An expert can shed light on how this can be useful?
Will people be willing to put everything in the cloud?
Cloud is Time Sharing. Us old timers remember those days. You either wrote your own apps and ran it on their (the Time Share/Cloud providers) systems or you use the software they supplied. Usually word processors and accounting apps.
Google Apps is cloud. And since you get HD space you can already serve up your own app running on their systems.
Time Share was all the rage in the 70's and 80. Cause maintaining a system of your own wasn't cheap. Back then the smallest system any company ran was a mid-range (like Honeywell, AS400, Dec, etc, etc). Fell out of favor as the PC became popular. I remember when Lotus 1-2-3 came out and everyone predicted it would destroy what was left of Time Sharing. And it (along with dBase and other aps) did.
It's funny how we re-invite everything.
PS: Forgot one thing about Time Sharing. Since the Net wasn't around, you had to schedule your time. SO your staff would go to the providers Data Center and work. It was like renting space and the systems. Time Share and Cloud operate differently, but the function is the same.
Well like many new terms, there can be more than one answer. Frequently it can be defined as a compute platform, where the developer doesn't have to worry about resource management, scalability or hardware failures, because the cloud infrastructure handles it. Here is a link to some information the company I work for has:
http://www.appistry.com/resource-library/index.html
There are some good white papers linked here that might be helpful to you.
-Brett
A cloud operating system primarily manages the operation of one or more virtual machines within a virtualized environment.
Microsoft Windows Azure and Google Chrome OS are among current examples of cloud operating systems.
Azure App Service is one of the common and most used services. While it is possible to immediately deploy apps, jobs etc., to the app service, a common factor that baffles decision makers is the wide spectrum of the tiers (options of plans) available in the marketspace. To know more details,visit:https://www.impigertech.com/blog/azure-app-service/

Resources