Tizen .NET is an exciting new way to develop applications for the Tizen operating system, running on 50 million Samsung devices, including TVs, wearables, mobile, and many other IoT devices around the world. The existing Tizen frameworks are either C-based with no advantages of a managed runtime, or HTML5-based with fewer features and lower performance than the C-based solution. With Tizen .NET,  you can use the C# programming language and the Common Language Infrastructure standards and benefit from a managed runtime for faster application development, and efficient, secure code execution.

Managed Runtime Advantages

A managed runtime offers the following advantages for your application development:

  • Faster time to develop
    Application development is accelerated since the managed runtime already handles many functions that otherwise have to be coded in the application (the Tizen Native API and Tizen Web API already provide this type of benefit).
  • Safer code
    Managed runtimes can handle, for example, bound checking, type safety, garbage collection, memory protection services, and objects being invoked directly (the Tizen Web API already provides some of these benefits, but not type safety, as JavaScript is not a strongly typed language).
  • Lower deployment costs
    Component-based architecture makes it easier and faster to deploy applications in an enterprise environment characterized by multiple platforms, devices, and legacy systems.
  • Better quality software
    Managed runtimes free you to focus on the business logic and code specific to the application while reducing the number of coding errors.
  • Cross-platform support
    The managed code is portable; Tizen .NET applications can have large portions of their logic applied to other systems supported by the .NET Core and Xamarin.Forms portions of the runtime.

Tizen .NET Features and Components

Tizen .NET consists of the following main components:

  • .NET Core

    .NET Core is a general purpose development platform maintained by Microsoft and the .NET community on GitHub. It is cross-platform, supporting Windows®, Mac OS® X, and Linux, and can be used in device, cloud, and embedded/IoT scenarios.

    .NET Core is composed of the following parts:

    • .NET runtime, which provides a type system, assembly loading, a garbage collector, native interop and other basic services.

    • A set of framework libraries, which provide primitive data types, app composition types and fundamental utilities.

    • A set of SDK tools and language compilers that enable the base developer experience, available in the .NET Core SDK.

    • The 'dotnet' app host, which is used to launch .NET Core apps. It selects the runtime and hosts the runtime, provides an assembly loading policy and launches the app. The same host is also used to launch SDK tools in much the same way.

  • Xamarin.Forms as a UI framework

    Xamarin.Forms is a cross-platform UI toolkit that allows you to efficiently create native user interface layouts that can be shared across iOS, Android, Windows Phone, and Universal Windows Platform applications.

  • Tizen Platform-Specific API

    Tizen .NET supports C# APIs, which expose the Tizen-specific features:

    • Tizen.Account: Provides CRUD (Create, Read, Update, Delete) account management functionality and the OAuth Core RFC 6749 protocol.
    • Tizen.Applications: Provides the Tizen application framework, including application state change events, inter-application messaging, and notification services.
    • Tizen.Common: Provides predefined color names.
    • Tizen.Content: Provides content management services, such as file and media downloads, storing and indexing audio and video content, and associating content types with helper applications.
    • Tizen.Location: Manages geographical location services and geofencing.
    • Tizen.Messaging: Provides functions to receive push notifications.
    • Tizen.Multimedia: Interacts with media services, including audio playback, recording, and device policy.
    • Tizen.Network: Provides APIs to control connectivity devices, as well as providing various network information.
    • Tizen.Security: Provides access to secure storage for passwords, keys, certificates, and other sensitive data.
    • Tizen.Sensor: Provides sensor types and sensor information.
    • Tizen.System: Provides device-specific services, including status, system information and settings, feedback, and sensor control and access.
    • Tizen.Telephony: Provides call, modem, network, and SIM information.
    • Tzien.Uix: Provides functions to recognize the speech and to synthesize voice from text and playing synthesized sound data.
    • Tizen.Log: Provides methods to print log messages to Tizen logging system.
    • Tizen.Tracer: Provides functions for writing trace message to the system trace buffer.

Tizen .NET enables you to build .NET applications with Xamarin.Forms and the Tizen .NET framework. Xamarin.Forms allows you to easily create a user interface, and the Tizen platform API provides numerous interfaces to much of the hardware that is found in modern TVs, and mobile, wearable, and IoT devices.

Figure: Tizen .NET Architecture

Tizen .NET Architecture

Visual Studio Tools for Tizen

Visual Studio Tools for Tizen provides the following tools:

  • Project Wizard
    The Project Wizard is a tool that is used to create a Tizen .Net application project.
  • Certificate Manager
    The certificates can be created, edited, removed, and set as active in the Certificate Manager. The active certificates are used when packaging your application.
  • Tizen Manifest Editor
    The Tizen Manifest Editor is a tool that is used to edit Tizen manifest file, called tizen-manifest.xml, which is used to describe the application information
  • Emulator Manager
    The Emulator Manager provides emulators to run your application in a virtual environment.
  • Emulator Control Panel
    The Emulator Control Panel allows you to run the application in the emulator, and test a variety of user scenarios, such as network access, audio input and out, and text messages. 
  • Device Manager
    The Tizen Device Manager is a tool that is used to manage connected Tizen devices or emulators, which is used to browse, push and pull files from them. 
  • Log Viewer
    The Tizen Log Viewer is a tool that is used to see logs from connected Tizen devices or emulaotors.