NetTalk Training Day 2

NetTalk Training day 2 is a go for launch!

The p_web.ProcessLink procedure's embed is a very common place to put code. For instance you might use this to set an owner attribute (threaded, of course) so that in a multi-company site the server opens the right database for the user.

glo:owner = p_web.GetSessionValue('ownerstring')  !You've already stored the ownerstring value in the session at login

NetTalk supports logging to the Windows system log, which you can view with Microsoft's (formerly SysInternal's) DbgView utility. 

There are template options to add various debug statements to the log.

The log will also show the thread in use - in one of Bruce's demonstrations he typed into a locator quickly and one thread executing a request for filtered data started before the previous request had finished. This makes for high performance since everything is asynchronous and there's no waiting for another request to complete. 

This is a good way to get to know how NetTalk works. 

Anything string from a p_web method is always clipped.

Lots of good information about filtering, use of keys, PROP:SQL, locators. NetTalk has some really cool locators, including the ability to search more than one column at a time. 

Bruce talked at some length about browses. We tend to think of browses more as procedures, but especially for the web it's important to see the browse as a control, and to consider all of the different ways you can style browses. They're just repeating data. 

Child browses

You can do all sorts of fancy things with child browses and their locations, including spanning columns so that you have a browse on the left, another on the right, and then a browse underneath that spans the width of the two browses above. 

You can also have a child browse inside each record of a parent browses.

Forms

Lots of different field types available for forms - I counted 21. There are several RTF editors available; you can work with image capture (e.g. signatures), etc. 

Safe vs unsafe HTML - this is a bit like SQL injection. See the story of Little Bobby Tables: http://xkcd.com/327/

Discussion of validation options - NetTalk gives you lots of control over whether and how informational validation messages appear. 

File uploads are supported, single or multiple. Uploads can be immediate or delayed until a button is clicked. 

Bruce is showing NetTalk's impressive calendaring features.

Calendaring includes planners, e.g. appointments. These can be arranged horizontally or vertically. The examples are all coming from the HotDates app (which does not in fact require the CapeSoft HotDates product.

Mobile development

We're still talking web apps here, with NetTalk as it is now. But CapeSoft's goal, as mentioned yesterday, is to get to a place where they can deploy hybrid apps via PhoneGap. It's not that far away and they do have an internal proof of concept of much of what is needed. Perhaps in NetTalk 8?

For current NetTalk apps, mobile mode uses a different CSS theme but the rest of the app is the same as for the desktop. 

Security

There are easy things and difficult things with SSL. It's easy to enable SSL but you can run into various headaches setting up the necessary certificates. You can create your own test certificates easily enough but then the browser isn't going to consider it trustworthy. Not a problem for testing but can be an issue of your users see those warnings. 

Hosting

Get yourself a virtual private server (lowest cost option). You'll access the machine via Remote Desktop. It's your machine so you can do what you like. You may want to install an FTP server so you can move files around. 

There are lots of little tasks around hosting, 

Bruce is wrapping up with a look at generated code, event handling and other web server internals, debugging/testing etc. 

Bruce: "Let me leave you with some words of encouragement..." <long pause> "...as soon as I can think of some." <laughter>

Of course he did in fact deliver quite a few words of encouragement to the group. A terrific presentation, as we've come to expect from Bruce. 

Training is done - next, the pre-conference reception!