
How .NET saves lives or peculiarities of building complex emergency solutions


Artem Goncharov, CEO, Founder, Binary Studio
When choosing a technology stack for a new project lots of criteria should be taken into consideration (scalability, complexity, cost, etc). If a project is of light or medium complexity - the variety of possible technologies and frameworks may be huge and the choice is usually a matter of preference and experience. However, finding the best stack for a compound system consisting of several different applications - might be a challenge.
"Our Company developed a complex emergency system which comprises processing services, a desktop client and mobile applications for all major platforms"
For development purposes it would be ideal to use the same technology and programming language across all system parts. It is also essential to consider further development and maintenance after the first release, to think through how developers will "live" along the chosen technologies, resolve the issues and improve the project, how easily it will be to reach version 2.0, 3.0 and so on, and whether it will be possible to adapt the solution to some specific customer requirements.
Our company developed a complex emergency system which comprises processing services, a desktop client and mobile applications for all major platforms. Certainly, the system of this kind has to be reliable and able to process high number of requests. Apart from that, it should surely store and manipulate lots of data, and provide the possibility to scale the services to reach necessary performance, and host them in the public and/or private cloud. Moreover, each service, depending on its tasks, should be started upon request or work 24/7 and respond with a minimal latency. Thus, required services should be hosted differently: some on the web server, some as independent applications.
So, we had complex requirements for very different subprojects and we preferred using one platform that would gracefully cover everything and still give us flexibility to make changes when needed. Looking at technology trends, we've decided to settle on Microsoft .NET platform. Why? To answer this question let's take a closer look at main parts of the solution architecture.
In our emergency system the information about an incident comes from dispatchers and the staff that use smart-phones and special mobile devices. Dispatchers use the desktop client application, which displays the information about each active incident, builds charts, generates statistics and reports and provides access to all the data in the system. Dispatchers register new incidents through the rich user-friendly UI, see the current location of people on map and how far they are from the incident location. Microsoft .NET provides two main technologies for the desktop applications: WinForms and Windows Presentation Foundation (WPF). The later is actually used by Microsoft itself in the majority of their products. Both of them are well documented and well-tested frameworks, and are ideal for building rich and responsive UI applications. Moreover, there are a lot of framework and controls, based on WPF and WinForms. For our application we've used WPF and DevExpress controls which are extremely convenient when building complex client-side applications.
Other staffs use smartphones with our mobile client application for sending alerts, updating statuses and communicating with organization management. The Xamarin technology, actively supported by Microsoft, allowed our team to use the .NET Framework for developing one application for Windows Phone, iOS and Android operating systems at the same time.
Our server side consists of Gateway, several processing and notification services. We host them in a private cloud. Actually, speaking about hosting of .NET services, it’s worth mentioning that there are many options available: at any moment we can migrate, for example, to such well known clouds as Microsoft Azure and Amazon Web Services, if the product would need such step.
After receiving a raw incident message Gateway service parses it and creates data structure ready for processing. The information about active incidents in our case is stored in the document database, because it's much easier to store temporary unstructured data in the non relational schema-less database. On the contrary, all the data that is rarely changed and archive data about incidents are stored in the relational database. And of course, there are a lot of drivers and object relational mapping (ORM) frameworks for the .NET to work with almost all widely used databases: both, relational and document ones. In our solution we use MongoDB with their official .NET driver that nicely supports language-integrated queries (LINQ) exclusively available only in .NET. And for SQL Server – NHibernate ORM is used.
Initially, most of the services were implemented as RESTful: first, we were using the ServiceStack. NET, and then we switched to the Web API. However, performance of HTTPS requests was too slow for us. Hopefully, there are options how to deal with the problem. In one or two weeks we easily migrated all essential services to the Windows Communication Foundation (WCF) and now they communicate using the TCP protocol. The rest Web API services support Open Web Interface (OWIN) for .NET that means that it's possible to host each one wherever we need (on IIS, Nginx, self-hosted, etc.) depends on what tasks the service does.
As a result, we have a working complex solution. It is easy to implement new features and improve the existing ones, because the .NET environment provides everything we need. There are a lot of libraries, frameworks, tools, IDEs, documentation available for the .NET. Thus, we are happy with our choice!
Summing up, .NET is a mature well designed and well-documented platform with a great support of community. Most of the technologies are open-source and free to use in commercial products. Currently, technologies from the .NET stack can be used not only on Windows infrastructure, but also on Linux, Mac, iOS, Android, and even on the embedded devices (using the .NET Micro Framework). In other words, .NET becomes a great solution for almost all kinds of projects you can imagine!
ON THE DECK
Featured Vendors
TEERHUB TECHNOLOGY PRIVATE LIMITED (TTPL): "Collaboration to Cognitive" a Microsoft Services Providers Journey
Integrated Business Systems: Solutions for Accessing and Leveraging Data in a Mobile and Interconnected World
StratusLIVE: Advancing Nonprofit Success with Relationship-Focused Enterprise CRM Software & Business Intelligence Solutions
Data Systems Analysts: Providing Comprehensive Secure Collaboration Solutions to the Federal Government
Kollective Technology: Software Defined Enterprise Content Delivery Network for Scalable, High Quality Video
Highpoint Technology Group: Crafting Business Enabling Solutions through the Power of Microsoft Technologies
IntelliPoint Technologies, LLC: Enabling Efficient Operations through Dynamics GP and Network Automation
Imaginet: Developing InnovativeSolutions, Gaining Productivity and Visibility of the Microsoft Lands
Strategic CRM: Providing CRM Insights, Enhancing Customer Experience, and Promoting Channel Optimiza
Time Saver Technologies: Enabling Construction Companies to perk-up their Business and Planning Proc
EDITOR'S PICK
Essential Technology Elements Necessary To Enable...
By Leni Kaufman, VP & CIO, Newport News Shipbuilding
Comparative Data Among Physician Peers
By George Evans, CIO, Singing River Health System
Monitoring Technologies Without Human Intervention
By John Kamin, EVP and CIO, Old National Bancorp
Unlocking the Value of Connected Cars
By Elliot Garbus, VP-IoT Solutions Group & GM-Automotive...
Digital Innovation Giving Rise to New Capabilities
By Gregory Morrison, SVP & CIO, Cox Enterprises
Staying Connected to Organizational Priorities is Vital...
By Alberto Ruocco, CIO, American Electric Power
Comprehensible Distribution of Training and Information...
By Sam Lamonica, CIO & VP Information Systems, Rosendin...
The Current Focus is On Comprehensive Solutions
By Sergey Cherkasov, CIO, PhosAgro
Big Data Analytics and Its Impact on the Supply Chain
By Pascal Becotte, MD-Global Supply Chain Practice for the...
Technology's Impact on Field Services
By Stephen Caulfield, Executive Director, Global Field...
Carmax, the Automobile Business with IT at the Core
By Shamim Mohammad, SVP & CIO, CarMax
The CIO's role in rethinking the scope of EPM for...
By Ronald Seymore, Managing Director, Enterprise Performance...
Driving Insurance Agent Productivity with Mobile and Big...
By Brad Bodell, SVP and CIO, CNO Financial Group, Inc.
Transformative Impact On The IT Landscape
By Jim Whitehurst, CEO, Red Hat
Get Ready for an IT Renaissance: Brought to You by Big...
By Clark Golestani, EVP and CIO, Merck
Four Initiatives Driving ECM Innovation
By Scott Craig, Vice President of Product Marketing, Lexmark...
Technology to Leverage and Enable
By Dave Kipe, SVP, Global Operations, Scholastic Inc.
By Meerah Rajavel, CIO, Forcepoint
AI is the New UI-AI + UX + DesignOps
By Amit Bahree, Executive, Global Technology and Innovation,...
Evolving Role of the CIO - Enabling Business Execution...
By Greg Tacchetti, CIO, State Auto Insurance
Read Also
The Journey to Swift Digital Transformation
Will data protection law reform open the door to easier international...
Virtual Immersive Learning: The Next Frontier in Higher Education
Making the Case For Moving from Health IT to Health Analytics
Data as a Business
