CapeSoft.Com
Clarion Accessories
NetTalk
Doc Index
Selecting
CapeSoft Logo

CapeSoft NetTalk
Selecting a Web Approach

Download Latest Version
Installed Version Latest Version

NetTalk WebServer - Selecting a Tool for Building Web Applications

Why NetTalk?

There is a danger when detailing a specific technique in inadvertently suggesting that this is the only technique, or even the best technique, in order to fulfill a specific task. Before you begin using NetTalk to build a web server you need to be sure that this is the right tool for the job you have to do. In the right circumstances the NetTalk WebServer will make you productive. In other circumstances it will hinder you.

Thus before we begin discussing the NetTalk web server it is worth taking a moment to discuss alternative approaches, and when those approaches would be most suitable.

Web Browser Options

Browser options are most useful where there are a large number, of “unknown” users, which may be running on a variety of operating systems. They don’t require any special client-side software, and allow clients to access the site via Windows, Mac, Linux or any other platform that has a web browser. Access via PDA or cell-phone is also possible.

Clarion.ASP / Clarion.PHP

http://www.softvelocity.com

The Clarion ASP and PHP templates are similar enough to each other that I can cover them together. These products allow you to generate ASP or PHP code (respectively), which can be used by a commercial web server (IIS, Apache etc). Using a set of templates, and by using information in the dictionary, they are more productive than coding ASP or PHP by hand.

The main advantages of these templates are:
  1. They generate the web site using very main-stream languages (namely ASP and PHP). You will find hosting ASP or PHP sites, at commercial providers, easy to do – and ISP’s will gladly assist you in setting them up.  If you are targeting a very high volume web site, a single one-off site, and if you do not have your own “internet server” then these templates can be considered.
  2. They use very well established technology as their “base”. For example IIS or Apache.
  3. Of all the solutions listed here, the PHP templates are the only ones that can be run from a Linux server. All the other options require Windows on the server.
The main disadvantages of these templates are:
  1. They generate “programs” written in native ASP or PHP code. This implies that you either need to know, or learn, one of these languages in order to make best use of the templates. Note that you do not have to know these languages to get stuff done, just as you don’t need to know the Clarion language to write Clarion apps, but it does help enormously, and realistically you will need to at least be able to read the code in order to code sophisticated apps. A basic knowledge of HTML and CSS is almost certainly required, especially as you will use this to control the overall “look” of the site.
  2. Both template sets use ADO as their data source, and hence limit the data files you can use in your app.  This may, or may not, be a problem depending on what backend you are currently using.
  3. Deploying at your ISP means the database must reside at your ISP. If you are dealing with a situation where this database becomes a “copy” of another database (which might be on your LAN) then you have to deal with synchronization issues.
  4. Because they rely on “other” software, installation and configuration can be an issue. If you intend for users to deploy the system themselves, or with minimal assistance, then the deployment overhead may be significant.
  5. Both systems generate Web 1.0 "Page based" applications. They have not been updated in some time.
We would use these templates in situations where:
  1. We are reliant on commercial ISP’s for hosting.

Web Builder

http://www.softvelocity.com

Although it ships in the box in the Enterprise Edition, the Web Builder templates are often overlooked.

The main advantages of these templates are:
  1. They take an existing application, and webify it. Thus, if you have an existing app, the time required from start to finish could be extremely short. In many cases no more than a few minutes.
  2. The code underneath the app is written in Clarion. Thus no extra language skills (other then HTML) are required.
  3. It delivers the same interface via your web site as via your Windows 32 bit program. People familiar with your Windows app will be comfortable straight away with the interface.
  4. As it is a Clarion program, it can use any data source available to any clarion program, including TPS, SQL, ODBC etc.
  5. The client-side interface is a Browser. (Compared for example, to the IP driver or ClarioNet where the client side is a Clarion program.)
The main disadvantages are:
  1. It requires the proprietary Application Broker. In a public-web sense this means you will need your own internet server. However Windows based, virtual servers are freely available at very low prices from RackSpace, Amazon, OVH and the like.
  2. It does not scale up very well. It is best suited to "tens of users" per server.
  3. It delivers the same interface via your web site as via your Windows 32 bit program. It’s quite possible that this will be overkill for what you are trying to achieve. Also the “feel” of the site will not be web-specific, it’ll “feel” like a Windows app trying to run in a browser.
  4. Web Builder requires a stateful connection between the client and the server. This makes it somewhat intolerant of broken connections. I’ll discuss the concept of Stateful, and Stateless, approaches in the next chapter.
  5. It generates Web 1.0 "Page based" applications. It has not been updated in some time (see H5 below)
We would use the WebBuilder approach when:
  1. A customer wished to experiment with web access to the program, but without spending a lot of money .
  2. A small number of users wished to access my program remotely, with the same feature set offered by the Windows 32 bit application and,
  3. If I was targeting an intranet, rather than public web app, or if I was targeting a small-volume public web app.

H5

At the time of writing this H5 was not yet released. However from information released it can be considered a major upgrade to Web Builder. It contains similar advantages and disadvantages to Web Builder in that it is still fast to implement, and dependent on the Application Broker. However it leverages current web app frameworks and techniques to bring it up to date.

Clarion Handy Tools

http://www.cwhandy.com

NetTalk

http://www.capesoft.com/accessories/netsp.htm

NetTalk adopts the position that a Clarion program itself can be a web server. There is no need for a supporting product, thus no IIS, Apache or Application Broker. This makes deployment a lot easier.

By not using PHP it is Windows bound, and as it create proprietary programs (i.e. an Exe) and these will require a dedicated server (like from Rackspace et al).

Unlike WebBuilder your existing app interface is not utilized. You will need to build the web interface from scratch, one procedure at a time. There is a considerable learning curve required for this. Resources like Training Videos, a book, NetTalk Central Web Forums and the Weekly NetTalk User Group webinar make things simpler, but there is a lot to learn and that takes time. Wizards exist to make procedures quickly. It is a lot faster to create browses and forms in a NetTalk app than it is in a Windows app.

NetTalk is scalable making it suitable for thousands of users per server. Unlike the Application Broker based applications it is also well suited to serving static HTML pages and files. Thus it is much easier to create a hybrid app/site than it is with the Application Broker.

Main advantages:
  1. Deployment. Since the program is the server it’s as easy as running the install program. Everything can be contained inside your Clarion Exe. It can run on the user’s work-station, or on a server. If you like you can embed literally everything inside your exe.
  2. Support is easier because there are no external dependencies to worry about.
  3. Scalability - it can easily handle many thousands of users per server.
  4. Code is 100% Clarion. HTML and CSS knowledge is recommended – especially if you wish to customize the “look” of the site. However you can get going without HTML or CSS if you need to.
  5. Leveraging the supplied NetTalk templates makes you a lot more productive than coding by hand. There are templates for Menus, Browses, Forms and so on.
  6. NetTalk uses a stateless approach on the server, which translates into far fewer resources being required by the server, even if multiple people are using the site simultaneously.
Main disadvantages:
  1. You’re creating a proprietary program. So expect to use your own server or a physical or virtual Windows server on the web.
  2. Your customers may raise security concerns because you’re not using “main stream” technology. However NetTalk has regularly undergone penetration testing and has always passed with good results.
  3. Your existing app interface is not utilized. You will need to build the web interface from scratch, one page at a time.
  4. the learning curve to become efficient with NetTalk is substantial.
I would use NetTalk when:
  1. A large number of users are expected, and scalability is a factor.
  2. We are expecting a large number of installations – typically done by the end users themselves.
  3. We wish to create a remote management, or remote access to our app without any extra overhead. For example if you are creating a Service then a web interface is encouraged. NetTalk allows you to build the interface directly into your program with very little fuss.
  4. Where we are unable, or unwilling, to support IIS, or where dependence on IIS would make an additional burden for the support staff.

Non-Browser options (Online)

Since we’ve covered the options for Browser Access, it’s only fair to cover some other non-browser options as well. The main difference with these options is that you may need to deploy some client software. Thus they are not suitable for public web sites, and may be overkill for smaller programs (interfaces to services etc.)

Thin@

http://thinetsolution.com/

ClarioNet

http://www.clarionet.com/

ClarioNet is a way to access and use ANY program, content or service on a PC via another device. ClarioNET can forward multiple client connections to multiple remote hosts (servers & connected devices). With ClarioNET, any administrator controls the applications that Users have access to and controls all related resource access and redirection from one place. You simply download ClarioNET onto your server and it works.

Technically, ClarioNET is an integration of two solutions; an HTML5 Client and a Server Gateway: The ClarioNET Gateway is a
WebSocket server plus HTTP server. It uses and allows computer and session management, server side directories sharing etc.

Main advantages are:
  1. IIt leverages an existing program, and so the time taken from conception to deployment may be very small.
  2. It presents an almost-identical interface to the user as the one they experience when running the “real” windows 32 bit app.
  3. The program is 100% Clarion. Nothing else is required, not even HTML.
Main disadvantages are:
  1. More resources per-user consumed than a web app.
  2. Best applied to Applications rather than Sites or Site/App hybrids.
  3. Priced per user, per month, so can get expensive for large numbers of casual users.
We would use ClarioNet:
  1. Where there are a fixed number of known users.
  2. Time to market is critical.
  3. No investment

Windows Terminal Server / Citrix / TS Plus

http://www.microsoft.com/windowsserver2003/techinfo/overview/termserv.mspx
http://www.citrix.com/lang/English/home.asp

Terminal Server and Citrix deserve a mention, if only because it is so similar to ClarioNet. Where ClarioNet replicates the Application interface at the client, Terminal Server or Citrix replicates the whole Windows desktop at the client.

Main advantages are:
  1. It simply doesn’t get any easier from a programmers point of view. If your program runs in Windows it runs in Terminal Server. Your client can implement this approach and there are almost certainly no changes necessary to your program. (Other than the fact that you may have limited the number of copies that can be started on a single machine.)
The main disadvantages are:
  1. Cost. Each client requires a license from Microsoft or Citrix.
  2. Each session takes up considerable resources on the server, for the whole duration of the session. Sufficient RAM for all the users is absolutely essential.
  3. Security: A large degree of trust is necessary because users can access any part of the machine.

IP Driver / SQL backend

Accessing the database remotely is an option. Using either IP Driver, or SQL technology, it is possible for your Clarion app to access data stored on another machine, with only an IP connection.

Main advantages:
  1. Simple to implement.
Main disadvantages:
  1. Client-side program required.

Offline Options

Replicate

hhttp://www.capesoft.com/accessories/replicatesp.htm

I’ll also mention Replicate here (a CapeSoft 3rd party accessory). Replicate is unique in that it allows multiple users to access the data, from remote locations, but without being connected. In other words if the ability to continue working offline is paramount then this is probably the best option.
[End of this document]/div>
Return to NetTalk Documentation Index