CSWorks is a web-based software framework for building HMI/SCADA/M2M solutions using .NET and Silverlight and/or HTML5. It supports live data acquisition, historical data recording, alarm management, live and historical data trending. CSWorks is an open system with unlimited customization capabilities, powerful contemporary graphics, it works across network boundaries and firewalls, uses zero administration client, this is the ideal tool for building high-availability solutions. CSWorks server framework is a set of highly customizable server-side components that: provide access to arbitrary data sources through a simple yet powerful pluggable provider model (OPC, BACnet, Modbus, databases); perform live data acquisition, alarm and historical data processing. Developers are welcome to create custom data processing components. Server framework functionality is exposed to custom data processing components through web services and WCF (Windows Commonication Foundation) . All configuration settings are stored in config files and can be easily manipulated from applications or scripts. Server framework has components that perform data stream multiplexing, giving a lot of possibilities for redundancy and partitioning. CSWorks client framework is a set of Microsoft Silverlight-based and HTML5 components that: perform data exchange with CSWorks server components through web services and implement some useful graphics controls (tanks, numeric displays, alarm summary, trend control etc). Application developers can use CSWorks client framework when building zero-administration Silverlight/HTML5 clients for CSWorks server-based solutions. Microsoft Silverlight with its powerful graphics engine and unlimited possibilities for writing custom components is the hosting environment for CSWorks-powered client applications.