Global System Builder

Global System Builder (GSB) is a light-weight Integrated Development Environment (IDE) designed to provide software developers with the capability to dynamically program software in real-time from anywhere to anywhere in the world over the internet using a web browser.



How it works label

Participation

All problems in computer science can be solved by another level of indirection. The GSB Web Application serves up the IDE Web Client on your computer. The IDE, through another level of indirection at the Web Server, is connected via web services to a small footprint WinForm Application deployed on the Target Server. The WinForm Application contains code to select and reflect Assemblies/Types back to the IDE Web Client to be viewed in the Assembly/Class Browser. The WinForm Application hosts an IronPython Interpreter that executes Python code on the Target Server in real-time as typed into the Interactive Console and/or Code Editor. The Remote Desktop Web Connection provides a view into the Target Server so you can see the results of your real-time programming. The Virtual Earth Map Control is a location-based user interface to geocode and locate your Target Servers from all over the world.

Using a web browser you can dynamically program software from anywhere to anywhere in the world using GSB. This additional level of indirection brings the capability of a many to many prgramming relationship for the software developer. One to many IDE Web Client's can program one to many Target Server's as illustrated in a global view below.



globalpicturelabel

globalexplanation

An example global scenario of GSB as viewed from the map-based user interface. There are three GSB Web Servers deployed, each with a number of Web Clients and Target Servers connected as illustrated by the colored lines. One IDE Web Client can have any number IDE instances open at any time dynamically programming any number of Target Servers. Conversely, any number of IDE Web Clients can be programming one Target Server at one time as in the case of a small programming team working on the same Target Server, collaborating from different geographic locations.



gsbscreen1label

gsbscreen1

Step 1 is to locate a Target Server that you have permission to log into. All of your Target Servers can be geocoded, uploaded to a Map Point web service, and retrieved on your map. This provides an inventory of your Target Servers that are easily located from a single interface.



gsbscreen2label

gsbscreen2

Step 2 is to click on the link from your map to start a Remote Desktop Web Connection with the Target Server. Once logged into the Target Server, you can download the WinForm Application using "click-once" deployment from a URL supplied by the GSB Web Server. Once downloaded, you can launch the WinForm Application and from the File menu, you can browse for assemblies you wish to inspect on the Target Server.



gsbscreen3label

gsbscreen3

Step 3 is to type "connect" into the Interactive Console which through web services will connect to the IronPython Interpreter embedded in the WinForm Application establishing a live programming session on the Target Server. The WinForm Application will reflect and retrieve the Assembly/Type information and display into the Assembly/Class Browser in the IDE Web Client.



gsbscreen4label

gsbscreen4

Step 4 is to browse the Types, Methods, Properties, Events, and code comments of the reflected assemblies from the Target Server. While our example is using the System.Windows.Forms namespace from the .NET Framework, typically you will use your custom Assemblies that you have deployed on the Target Server that you can use to hook up whatever application you are building and/or web service that you are connecting to. However, you do have access to +30,000 Types that are available in the .NET Framework Class Library.



gsbscreen5label

gsbscreen5

Step 5 is to use the Interactive Console to program the Target Server in real-time. Here is an extremely simple example of programming a Windows Forms application on the Target Server. Using the Assembly/Class browser, we have looked up the Form class in the System.Windows.Forms namespace and looked up the method Show() to be used in our simple script. Note as we execute each line of code, the output is shown in real-time in the Remote Desktop Web Connection that is connected to the Target Server.



gsbscreen6label

gsbscreen6

Step 6 is to take your Interactive Console script and paste into the Code Editor to be saved as a script that can be executed on demand. You can also load up any of your own Python scripts and execute them on the Target Server. Both the Interactive Console and Code Editor support compiling Python code to an Assembly or Executable on the Target Server.



gsbscreen6

GSB is an open source GPLv3 project. The source can be downloaded from CodePlex   If you require further information or wish to join the project team, please contact globalsystembuilder@NOSPAMgmail.com. If you are considering joining the team, we are looking for advanced ASP.NET and JavaScript developers. Software Requirements are Visual Studio 2008 Express Editions, IIS Web Server versions 5.2 (XP PRO SP2) or 6 (W2K3 Server) or 7 (Vista).



gsbscreen6

There are several features to be added to GSB. One being Dynamic Language Runtime (DLR)  support which will allow GSB to target IronPython 2.x, IronRuby, IronLisp, Visual Basic.NET, Managed JScript and other dynamic languages. A list of future features will be available shortly.