Shytik M., Sokolova N. O., Posudiyevs'ka O. R.

Oles Honchar Dnipropetrovsk National University


Software development with the help of the Microsoft.NET Framework is considered to be one of the most potential branches of application engineering. According to the Netmarketshare resource, Microsoft Windows is the leader of the world desktop operating system market, with part of 91.62% market share. The .NET Framework is intended to be used by the most new applications designed for the Microsoft Windows framework. Considering that Microsoft provides an integrated development environment (Visual Studio) for the framework and interacts with the designers via Microsoft Developer Network, software building with the help of the .NET technology is commonly widespread.

Microsoft Visual Studio is an integrated development environment from Microsoft. It is used for the development of console and graphical user interface applications along with Windows Forms applications, web-sites, web-applications, and web-services in both machine and managed code for all frameworks supported by Microsoft Windows, Windows Mobile, Windows CE, .NET Framework, .NET Compact Framework and Microsoft Silverlight. It can also allow the development of Windows Presentation Foundation (WPF) application. Visual Studio supports different programming languages by means of language services, which allow the code editor and debugger to support (to different extents) almost any programming language, that in case of existence of the language-specific service. Visual Studio includes a large number of visual designers which aid in the development of applications, such as Windows Forms Designer, WPF Designer, Web designer, Class designer, Data designer and Mapping designer.

The .NET Framework uses the Common Language Infrastructure (CLI) and the Common Type System (CTS) in order to permit several programming languages to be used in application designing for different frameworks despite the specific character of hardware architecture. The Microsoft.NET allows to develop software using the CLI programming languages, such as C#, Visual Basic .Net, F#, C++/CLI , Delphi, IronPython, IronRuby, etc.

The most widespread CLI language is C# – a multi-paradigm (imperative, structured, functional, object-oriented, event-driven, and generic) simple general-purpose programming language with strong type checking, array bounds checking and automatic garbage collector. C# is the programming language that reflects directly the basics of the Common Language Infrastructure; the most part of its intrinsic types corresponds to value-types implemented on the Microsoft.NET Framework.

The second main CLI language is Visual Basic .NET, which is a structured, imperative, object-oriented and declarative programming language. It is a more developed version of Visual Basic, implemented on the .NET Framework.

F# is a strongly typed programming language which uses functional, imperative and object-oriented programming techniques. F# is most often used as a cross-platform CLI language, but can also be used to generate JavaScript and GPU code.

The .NET Framework has specific tools for the creation of desktop applications, such as standard class libraries, which are organized in a set of namespaces. The libraries provide a large number of common functions, such as graphics drawing and rendering, file input and output, interaction with XML documents, SQL database manipulation, etc. The Microsoft.NET class libraries are available to all .NET CLI programming languages.

Windows Form is a graphical application programming interface which helps to create native Microsoft Windows interface elements. Using Windows Form API, the developer can enhance a blank form with controls, thus designing a unique user interface. The .NET Framework grants access to Windows Form API via the System.Windows.Forms namespace. The Graphics class (the System.Drawing namespace) contains methods for drawing images, icons, shapes to the display.

The System.Collections namespace supports interfaces and classes for operations with various sets of objects, such as stacks, queues, lists, arrays and hash tables. The System.Text namespace provides classes and methods for work with ASCII and Unicode and for conversion characters or strings into blocks of bytes. The System.Data namespace grants access to classes for managing data from various sources, such as SQL Server, ODBC, Oracle, etc. The System.IO namespace contains types that allow reading and outputing to streams, compressing data in streams, and managing isolated data banks. The System.Threading namespace provides types, classes, and methods that enable multithreaded programming and simplify the work with asynchronous code. The System.Diagnostics namespace methods interact with performance counters and logs, system processes, event logs, code analysis tools, application monitoring and instrumentation. The Microsoft.CSharp, Microsoft.JScript, Microsoft.VisualBasic, and Microsoft.VisualC namespaces contain classes that support compilation and code generation using the C#, JScript, Visual Basic .NET, and C++/CLI languages, respectively.

The System.XML namespace contains types, classes and methods for processing Extensible Markup Language and supporting XML documents or streams. The System.Web namespace contains classes that provide interaction with browsers or servers, as well as interface for ASP.NET forms authentication and application configuration, dynamic data, HTTP processing, JavaScript Object Notation serialization. The System.ServiceProcess namespace contains types, classes and methods that enable implementation, control, installation and extension of support during the development of Windows service applications.

The System.Runtime namespace contains types and classes that support the interaction of the application with the Common Language Runtime, as well as the types which enable such features as application data caching, advanced exception handling, application activation within application domains. The System.Management namespace contains types, classes and methods that grant access to management information and provide management of system events, devices, and applications instrumented to the Windows Management Instrumentation infrastructure. The System.Security namespace contains classes and methods that control access to the securable objects, allow authentication, provide cryptographic services and control access to operations and resources.

The Microsoft .NET Framework is the main implementation of .NET technologies. However, there exist other implementations for the framework elements, such as Mono, the .NET Micro Framework, and Portable.NET

Mono is an open-source project which grants access to .NET Framework-compatible instruments, such as C# compiler and Common Language Runtime. The purpose of Mono is the platform-independent launch of Microsoft.NET applications and to improve the use of software development tools for Linux developers. Mono can be run on many software systems including Android (and the most part of other Linux distribution packages), BSD, iOS, OS X, Windows, and on various game consoles, such as PlayStation 3, Wii and Xbox 360.

Portable.NET is a free software with open source code aiming at building the portable runtime for Common Language Infrastructure applications. The project focuses on the support of base class libraries for .NET, XML, and Windows Forms. The .NET Micro Framework is an open source .NET platform for resource-constrained devices.

The .NET Framework provides software developers with an in-built set of instruments for building desktop applications and web services quickly and cost-effectively; it also supports object-oriented programming; the .NET Framework is provided with a well-designed integrated development environment, it supports multiple programming languages and grants effective data access. Thus, the framework is one of the most convenient development tools for creating applications and services.