Here we can see, “microsoft mobile development”
I’ve been porting our Anyline SDK from Android/iOS to Xamarin and Windows Phone for the past months, and it’s been quite a journey thus far. While still performing on the Windows Phone release, I can say that I’ve come an extended way, and I’m getting to share my experience with you. So here’s the primary blog post about my accomplishments, troubles, and anything in between within the world of .NET mobile development. This post, however, is devoted to the fundamentals, and that I decide to write on more specifically. NET-related topics in future posts.
So, What’s .NET?
Assuming that a number of you’ve got probably never worked with .NET or don’t exactly know what it’s, I’ll offer you a quick introduction.
.NET (pronounced “dotNET”) may be a robust framework developed by Microsoft and should even be considered an essential part of Microsoft Windows. This is because it provides a controlled programming environment where software is often created and executed on Windows-based operating systems. For .NET development, the foremost substantial IDE is Microsoft Visual Studio. to offer you a visualization, Figure 1 illustrates the most components of the .NET framework. the newest .NET version is 4.6.1, released in November 2015, and you’ll search for the changes on Github, but we’ll stick with 4.5 for now.
Software developed in .NET usually executes within the software environment called CLR (Common Language Runtime), a virtual machine that gives memory management, garbage pickup, thread management, type safety, exception-handling, labeling such code as “managed code.” Consider the CLR because of the “engine” of the .NET Framework architecture.
Figure 2 visualizes how the CLR works:
- The language compiler compiles the managed code to so-called IL (Common Intermediate Language) code
- The IL code is then translated “Just-In-Time” to machine language.
This JIT compilation happens only the primary time the code is named. Subsequently, calls to the present code will execute the native code directly.
Another significant component of the .NET framework is the so-called FCL (Framework Class Library), which is essentially a vast set of classes, interfaces, and value types that provide access to system functionality. The BCL (Base Class Library) may be a subset of the FCL and provides the foremost primary namespaces like System.IO or System. String, while the FCL provides a broader set of functionality like XML, ASP.NET, WinForms, and so on. You’ll search the namespaces at MS also.
So that’s a brief overview of the foremost fundamental components of the .NET framework. I could probably write an in-depth blog post regarding .NET architecture in the future. For now, let’s not go an excessive amount into detail here and specialize in the mobile aspect.
The Mobile Part
Mobile apps are usually categorized into three different types: Web apps, hybrid apps, and native apps. This distinction also applies to mobile .NET development. So, what options can we have when developing mobile .NET apps? It depends on what we would like to accomplish. Generally speaking, we’d like to ask ourselves some important questions first:
Would I like to focus on multiple platforms (Android, iOS, Windows devices) directly or separately? Do I want lower-level functionality like device hardware access? What about performance, data storage, look and feel app distribution, then forth? There’s no such thing as a one-size-fits-all solution when it involves mobile app development. Let’s have a glance at the various types and see how they slot in .NET:
ASP.NET supports different development models: sites, MVC (Model View Controller), and WebForms. In addition, ASP.NET MVC is often distinguished in MVC3, MVC4, and MVC5, whereas from MVC4 on, additional features to support mobile apps are available.
- Reuse of interface and core logic
- Much easier to take care of, as they need a standard code base across multiple mobile platforms.
- Do not require store submission, thus no store approval
- Users don’t need to download web apps or update them on their devices
- Limitations in terms of device APIs
- No store discoverability
- Limited to the capabilities of the mobile browser the user is using
If you select to develop a hybrid app in Visual Studio, you’ll inspect Visual Studio Tools for Apache Cordova or Telerik’s AppBuilder Extension.
- Usually easier to develop than a native app
- Reusable codebase
- It may look and desire a native app
- Lower budget costs from an organizational view
- Offline & Online
- Still doesn’t look and feel as smooth as a very native app
- Unique capabilities of various platforms require different plugins / platform-specific code
- Slower performance compared to native apps
Generally speaking, native apps are built for devices of a specific platform, using specific SDKs, and have the power to deal with all the device-specific hardware and software APIs. This allows them to supply the fastest, most reliable, and most responsive experience to users, compared to hybrid and web apps.
- Fastest performance
- Most natural look and feel
- Full app store support & ability to supply updates
- Access to built-in device features
- Requires experienced developers
- higher costs / higher maintenance, especially for multiple target platforms
- Harder to make consistency across multiple platforms
Mobile apps in .NET are usually related to the Windows (Phone) device family. Still, you should be alright aware that you can create native mobile .NET apps written in C# for Android and iOS because of Xamarin. However, you ought to remember that you’ll still need a Mac as a build host if you opt to make an iOS app on a PC using Visual Studio and Xamarin. Also, Xamarin is reasonably expensive. Talking about Xamarin deserves their blog post, though. So let’s stick with Windows for now.
I’m getting to address Windows Phone 8.1 and Windows 10 Mobile because hardly any device uses Windows Phone 8.0 or lower nowadays. As of 21 January 2015, the Windows Phone brand is being phased out, making Windows 10. With Windows Phone 8.1, WinRT (Windows Runtime) is introduced to the mobile world of Windows, providing app development in C#, VB.NET, and therefore the development of Windows Runtime components in C++/CX. With Windows 10, the UWP (Universal Windows Platform) is introduced as an extension/successor of WinRT.
As Figure 4 illustrates, most Windows-based mobile devices still run on Windows Phone 8.1; only a couple of devices (mainly of the Lumia family) are Windows 10 Mobile compliant since it’s only been released in Q4 2015.
Microsoft made the terminology around “Apps” quite confusing, mainly due to their effort to converge mobile and desktop apps and the changes that Windows 8 brought. The term “Windows Store App” includes different sorts of apps:
- Windows Apps
- Windows 8.1 Applications supported WinRT and embrace the UI design style called “Metro Style” compared to traditional desktop applications.
- Windows Phone Apps
- Apps that are either supported WinRT (Windows Phone 8.1) or Silverlight (WP 7.x, WP 8.0)
- Universal Apps
- For Windows 8.1 / Windows Phone 8.1: Apps that are supported WinRT and run on both mobile and desktop by employing a shared codebase
- For Windows 10: Apps that are supported the Universal Windows Platform (UWP) and run on both Windows 10 and Windows 10 Mobile
Microsoft makes it hard to form a sense of all its acronyms and names. For instance, Windows RT and WinRT are two various things, but both mean “Windows Runtime.” Windows RT is an OS optimized for mobile OEM Microsoft devices, whereas WinRT is the homogeneous application architecture that I briefly described earlier. When speaking of app distribution, the definition “Store” is confusing because of Microsoft’s rebranding: “Windows Store” is that the app store is primarily distributing metro-style apps for Windows 8.x, Windows Server 2012, Windows 10, and Windows 10 Mobile. “Windows Phone Store” is that the mobile counterpart that gives Windows Phone 7.x and Windows Phone 8.x apps and is being discontinued/migrated in favor of the Windows Store.
Wow, this blog post clothed to be longer than it should and that we barely even scratched the surface. I hope I didn’t leave you too puzzled thereupon the last paragraph because it can get quite confusing when it involves the mobile world of Windows. Many thanks for reading.
1.Mobile Application on Android and iPhone “Not Supported Error.”
When opening any form, regardless of the entity, there’s a mistake displayed on the mobile device;
This action isn’t supported.
If you contact support, please provide technical details
Session ID: xxxx-xxxx-xxxx-xxxx
The internal version of CRM is On-premise 365
The Phone being tested is Android version – 7.0
This was also tested on a Surface Pro 4, running Windows 10, and using the Windows 10 app, same error… However, a unique Session ID.
2.Microsoft is embracing Android because the mobile version of Windows – The Verge
3.Microsoft is bringing Android apps to Windows 11