Developing in Visual Studio is more complicated than it used to be. As Visual Studio 2015 approaches, Apache Cordova tools and open-source efforts around the .NET ecosystem open an array of new cross-platform and cross-OS possibilities for Windows developers looking to branch out across devices and onto Linux and Mac.
As Microsoft’s flagship IDE grows more malleable in the platforms it targets and the tooling it offers, developers must evolve along with it. Third-party tools around Visual Studio are changing as well, and according to Ivo Milanov, CTO of .NET development UI control and data visualization component provider Nevron, Visual Studio tools are moving toward universal controls and components available to all OSes and major .NET environments from a single codebase.
(Related: Microsoft offers major tool upgrade for mobile-first, cloud-first world)
“If you have an application or a user interface written with [current] controls for Windows Forms, that application cannot run from the same codebase under Mac or Linux,” Milanov said. “Future development efforts will be targeting the .NET Framework, which we hope will gain traction in light of .NET actually being adopted in other operating systems such as Mac and Linux.”
A brave new cross-platform world
As Microsoft and vendors such as Xamarin work to port the .NET Framework to other operating systems, .NET developers are faced with a few options. For a developer who’s spent his or her entire career developing for Windows, this challenge may appear daunting. Yet according to Milanov, developing .NET applications in Visual Studio for Linux or Mac isn’t as difficult as one might think.
“It’s very easy for Windows Form developers to start making cross-platform applications, provided they have the proper tools,” Milanov said. “All the widgets can integrate into Windows Forms projects, so this Windows Forms application is actually embedding that content inside of it.”
In the direction Visual Studio is heading, Milanov likens its cross-platform development possibilities to HTML5. As far as simplicity is concerned, he believes Visual Studio 2015 makes cross-platform development as simple as it can get, with the first platform-independent portable class library for UI development under .NET.
“This is a cross-platform development environment, just like HTML5, so it doesn’t matter whether we’re developing in Visual Studio for Windows Forms,” Milanov said. “It’s automatically transferrable without recompiling to Mac. So if HTML5 offered Web developers the ability to have a page developed in Visual Studio that you can run everywhere, it’s the same provided you integrate the DLL [dynamic link library] you built with Visual Studio and use Xamarin for Mac or a MonoMac project to target the Mac or the Silverlight environment. It doesn’t matter if you simply use that DLL.”
The more Windows changes, the more it stays the same
Nevron started back in 1998 as an ActiveX component developer, and its developer community is acquainted with the evolution of tools and product development for Microsoft products on Windows platforms. Despite the tectonic shift in development practices and tooling innovations over the past two decades, Milanov said the one thing that hasn’t changed is the underlying foundation of Windows.
“The Win32 API has remained the same for the past 16 or 18 years,” he said. “But the development tools on top of that framework have changed a great deal. We experienced the move from the ActiveX development environment toward the more productive .NET Framework. Even the .NET Framework, though, had one major throwback from very beginning: binding to Win32 APIs.”
Because the core of Windows and .NET remained static for so long, competing .NET Framework implementations such as Xamarin’s Mono emerged to fill the void. Now, as Visual Studio and the .NET Framework finally embrace cross-platform, Milanov believes Mono in combination with offerings such as the Xamarin Test Cloud and Mono JIT compiler implementation provide better code performance and data collection than even Java.
“The future of .NET is the movement of these frameworks to portable application development, something similar to Java,” Milanov said. “The problem with that, of course, was that Microsoft didn’t expose any development tools or support .NET on any other frameworks, so the development community had to turn to Mono. Because of Mono, we’ve seen the ascent of Xamarin on mobile devices, which proved to be a great move.”
Visual Studio tools are going mobile
In terms of potential cross-platform mobile growth, the comparisons between application development in .NET/Visual Studio and Java/HTML5 become even more pronounced. As open-source .NET on Linux and Mac works toward the same performance and stability as .NET on Windows, the gap between the Mono space and the Windows-only .NET space will narrow.
Nevron envisions .NET integration into browsers as well. According to Milanov, the native client profile of Google Chrome can actually run .NET code as native applications inside the Chrome browser.
He believes Visual Studio and .NET should take a cue from HTML5 and Java. Like Java, .NET is also a virtual machine and like Java, he explained the first objective of .NET was to allow the execution of code on any machine without recompilation from a JIT compiler.
“Most of the projects we currently develop with .NET for Windows are actually for servers, not for client applications, just because .NET doesn’t run on other machines and doesn’t run on mobile,” Milanov said. “Developers want to be mobile. They want to be on any device. In order for Visual Studio tools and for the whole ecosystem to go forward and to be a viable competitor with what HTML5 is offering in cross-platform mobility, .NET has to run on all devices from a single codebase. I don’t mean just the core framework, which is already running through Xamarin for mobile and through MonoMac, but also through the UI layer, which is actually HTML5-compiliant, to be able to run on all these devices.”
Ultimately, Milanov sees the future of .NET and Visual Studio as a clear path to going cross-platform as a development environment, with Visual Studio tools competing with HTML5 on the enterprise level.
“.NET simply has no other choice; it has to go cross-platform,” he said. “Otherwise it’s simply not a good alternative front-end development environment to HTML5, and will suffer the doom of being only a server-side programming language.”
What developers need to know about Visual Studio development tools
Given the impending release of Visual Studio 2015, Milanov had some advice for developers. When choosing Visual Studio tools, regardless of platform, he said Visual Studio developers should keep an eye on cross-platform ability and mobile development in both .NET and C#.
“I would advise developers to learn .NET because this is the primary development tool you can utilize in Visual Studio; Visual Studio is indeed a great tool for .NET development,” Milanov said. “Learn .NET, but have an eye open for what .NET is really about, which is being able to run your code on any device. It’s a virtual machine and it’s bare bones, so developers should pay attention to what dependencies they use by using different Microsoft or third-party components.”
A guide to tools for Visual Studio
Aspose: Aspose.Total for .NET includes every .NET component Aspose offers. Using Aspose.Total for .NET, developers can build applications that take advantage of popular business formats such as Microsoft Word documents, Excel spreadsheets, PowerPoint presentations, Visio diagrams, Project files, and Adobe PDF documents. It also includes OCR, barcode and image manipulation tools.
Borland: Borland AccuRev is a software configuration-management tool that addresses complex parallel and distributed development environments to accelerate the development process and improve asset reuse. At its core, AccuRev provides all the functionality of an enterprise version with advanced capabilities enabling workflow and process modeling, and change-based traceability. Borland Silk4NET, a Silk Test plug-in for Microsoft Visual Studio, is a solution for regression, cross-browser, cross-platform and localization testing, including complex test cases and short testing cycles. It works across AJAX and Web 2.0, Java and .NET, and client/server, terminal host, or SAP systems.
ComponentOne, a division of GrapeCity: ComponentOne Studio Enterprise is a suite of data and UI controls for Microsoft Visual Studio. The most recent release focuses on optimizing performance, enriching data analysis and delivering the latest Web technology to software developers and architects. With controls ranging from UI to complex data visualization and platforms including Windows Forms, ASP.NET, WPF, HTML5, and WinRT, Studio Enterprise provides developers everything needed to build modern touch-enabled apps as well as maintain and update legacy applications.
DevExpress: DevExpress Universal 14.2 is a comprehensive suite of UI controls, libraries and application frameworks for Visual Studio. With DevExpress technologies, developers can create exceptional user experiences and deliver high-impact, high-performance solutions for Windows Forms, WPF, ASP.NET, HTML5 and Windows 8 using existing skill sets and technology investments. The latest release includes enterprise-ready capabilities designed to help build next-generation experiences ranging from Office-inspired desktop and Web applications to touch-enabled mobile solutions.
Dundas: Dundas Dashboard is a Web-based platform for rapidly developing custom, interactive dashboards. It acts as a central BI portal allowing users to visualize and analyze data from across the organization. Dundas Dashboard 5.0 supports Big Data sources and includes several enhancements, such as advanced usage tracking, an interactive HTML5 mobile interface, and support for Map/Reduce technologies.
IncrediBuild: IncrediBuild accelerates build, compilation and development tools, shortening development time and speeding up product delivery. IncrediBuild utilizes already existing cloud or network cores, harnessing idle CPUs to parallelize tasks. IncrediBuild 6.0 supports Visual Studio 2015 Preview, accelerating Android, C# and C++ builds. IncrediBuild’s FreeDev version accelerates up to eight cores on local machines at no cost.
Infragistics: Infragistics Ultimate makes it easy to build Windows, Web and mobile apps, with a suite including comprehensive tools for Windows Forms, WPF, ASP.NET, Silverlight, HTML5 and jQuery. The latest release adds support for easy styling, touch and gesture capabilities across all platforms, and Indigo Studio, a complete solution for designing interactive prototypes. It also includes Infragistics Xamarin.Forms for building native cross-platform applications, as well as controls for iOS, Android and Windows Phone.
JNBridge: JNBridgePro connects Java and .NET components or APIs together within the same application, gaining full access to the other side. JNBridgePro can expose any Java or .NET binary, services-enabled or not. Cross-platform applications can be deployed anywhere: in the same process, across a network, on the ground or in the cloud. JNBridgePro reduces development costs by preserving existing investments, and saves maintenance costs by keeping the original source code untouched.
LEADTOOLS: LEADTOOLS imaging SDKs help programmers integrate raster, document, medical, multimedia and vector imaging into their applications. Features include OCR, Barcode, Forms Recognition, PDF, Document Conversion and Viewing, Document Cleanup, Annotations, DICOM, PACS, HL7, Audio/Video Codecs, MPEG-2 Transport, File Formats, Compression, Image Processing, Viewers, Special Effects, Scanning/Capture and more. Whatever a developer’s programming needs, LEAD has a toolkit designed to provide optimal imaging technology with high-level .NET, ASP.NET, WinRT, Silverlight and WPF components.
LeanKit: By integrating VSO with LeanKit, developers can see work items spanning multiple projects in a single place and create customized workflow views with flexible kanban boards. Teams can finally see the bigger picture of who’s doing what work and when it needs to be done. Developers can also manage VSO work items alongside stories, issues or tickets from other tools (including JIRA), providing visibility of work across teams.
Nevron: Nevron Open Vision puts .NET programming in a new perspective. Developed with the idea to provide complete and unprecedented platform independence, it offers user interface controls and heavy components for all .NET developers. NOV allows 100% code reuse of applications that run under both Windows and Mac OS, through a rich set of UIs as well as a feature-rich Text Editor, Gauges and barcodes.
Parasoft: By integrating service virtualization, API testing, and development testing, Parasoft Continuous Testing solutions reduce the time, effort, and cost of delivering secure, reliable and compliant software. Parasoft’s enterprise and embedded development solutions include static analysis, unit testing, requirements traceability, coverage analysis, functional and load testing, dev/test environment management, and more within the Microsoft Visual Studio environment.
RSSBus: RSSBus simplifies the way applications interact with data, specializing in driver technologies for real-time access to online or on-premise applications, databases and Web APIs. RSSBus drivers are universally accessible, providing database-like access to underlying data through established standards like ODBC, JDBC, ADO.NET, SQL/MySQL, OData, JSON, SSIS, BizTalk, Excel, etc.
SoftFluent: CodeFluent Entities, an alternative to Entity Framework, allows developers to generate C# code, database scripts and UI components, eliminating the need for most of the plumbing code that developers commonly need to write. CodeFluent Entities takes advantage of the Model-first modelling approach, and the latest release adds support for Visual Studio 2015 and SQL Server 2014.
Software FX: For more than two decades, Software FX has been a leading provider of data visualization and business intelligence tools for developers creating desktop and server-based applications on any platform. Chart FX is a powerful and versatile multi-platform tool for Web and Desktop data visualization. Chart FX 8 is the latest addition to the Software FX charting product family, bringing advanced data analysis capabilities to .NET, Java and HTML5/JavaScript developers.
Syncfusion: Essential Studio Enterprise Edition provides stunning data visualization tools, powerful file-format libraries, and a broad collection of navigation, layout, and editor controls for ASP.NET, ASP.NET MVC, JavaScript, Xamarin.Forms, iOS, Android, Silverlight, LightSwitch, Windows Phone, WinRT, Windows Forms, and WPF. Together, these flexible tools are everything developers need to build fully featured, modern line-of-business applications. The entire suite is also available for free through the Essential Studio Community License.
Telerik, a Progress Company: Telerik, a Progress Company, has a complete suite of UI libraries that span the .NET platform. The Telerik DevCraft suite is comprised of a 16-piece product bundle that enables customers to build stable, high-performance, and visually stunning Web, desktop and mobile applications. The company recently added mobile capabilities to its ASP.NET AJAX suite to document processing that spans WPF, WinForms, ASP.NET AJAX and Silverlight. Telerik also released two new products for Windows Universal and Xamarin.
Text Control: Text Control provides word-processing and reporting components for Microsoft development technologies, including Windows Forms, WPF and ASP.NET. Using the ASP.NET controls, cross-browser, cross-platform document editing and template creation can be added to Web applications. The controls provide comprehensive text formatting, spell checking, powerful mail merge features and word-processing key concepts.
Xamarin: Xamarin helps Visual Studio developers become mobile developers virtually overnight. Using existing C# skills, tools and code, developers can go mobile on iOS and Android. Developers can design, develop and debug native mobile apps directly in Visual Studio, together with Xamarin Test Cloud for automated app testing and Xamarin Insights for real-time monitoring for a complete mobile solution.