Blog

Labels
AJAX(112) App Studio(7) Apple(1) Application Builder(245) Application Factory(207) ASP.NET(95) ASP.NET 3.5(45) ASP.NET Code Generator(72) ASP.NET Membership(28) Azure(18) Barcode(2) Barcodes(3) BLOB(18) Business Rules(1) Business Rules/Logic(140) BYOD(13) Caching(2) Calendar(5) Charts(29) Cloud(14) Cloud On Time(2) Cloud On Time for Windows 7(2) Code Generator(54) Collaboration(11) command line(1) Conflict Detection(1) Content Management System(12) COT Tools for Excel(26) CRUD(1) Custom Actions(1) Data Aquarium Framework(122) Data Sheet(9) Data Sources(22) Database Lookups(50) Deployment(22) Designer(177) Device(1) DotNetNuke(12) EASE(20) Email(6) Features(101) Firebird(1) Form Builder(14) Globalization and Localization(6) How To(1) Hypermedia(2) Inline Editing(1) Installation(5) JavaScript(20) Kiosk(1) Low Code(3) Mac(1) Many-To-Many(4) Maps(6) Master/Detail(36) Microservices(4) Mobile(63) Mode Builder(3) Model Builder(3) MySQL(10) Native Apps(5) News(18) OAuth(9) OAuth Scopes(1) OAuth2(13) Offline(20) Offline Apps(4) Offline Sync(5) Oracle(11) PKCE(2) Postgre SQL(1) PostgreSQL(2) PWA(2) QR codes(2) Rapid Application Development(5) Reading Pane(2) Release Notes(183) Reports(48) REST(29) RESTful(29) RESTful Workshop(15) RFID tags(1) SaaS(7) Security(81) SharePoint(12) SPA(6) SQL Anywhere(3) SQL Server(26) SSO(1) Stored Procedure(4) Teamwork(15) Tips and Tricks(87) Tools for Excel(2) Touch UI(93) Transactions(5) Tutorials(183) Universal Windows Platform(3) User Interface(338) Video Tutorial(37) Web 2.0(100) Web App Generator(101) Web Application Generator(607) Web Form Builder(40) Web.Config(9) Workflow(28)
Archive
Blog
Monday, April 29, 2013PrintSubscribe
Overview of Upload/Download Adapters

Large files are frequently stored in databases as BLOB fields (binary large objects). Code On Time offers out-of-the-box support for upload and download of content directly to BLOB table columns. However, common practice is to store the binary content outside of the database. There are numerous advantages to this approach:

  • Reduced database size
  • Simplified backup
  • Low cost of storing large amounts of data
  • Opportunity to create a content delivery network (CDN)

File System

The most common method to store external files is in the file system. The files can be saved on the same hard drive of the host machine, or on an external Network-Attached Storage (NAS) device. While these devices are simple to configure, they still will require maintenance to ensure redundancy and performance.

Azure Storage

Microsoft Azure Storage cloud platform is a high-redundancy and availability solution that stores all data in data centers managed by Microsoft. It offers geo redundant storage, affinity groups, and logging. Each storage account can open multiple “containers” that are accessed via HTTP requests using unique container keys. Containers may be declared as “public” if necessary.

Amazon S3

Amazon Simple Storage Service (Amazon S3) is another popular cloud solution that offers features similar to Microsoft Azure Storage. It offers data redundancy and high availability, enabling rapid scaling of application infrastructure. Each account can create multiple buckets to store data, which are accessed via HTTP requests using one or more “Secret Access Keys”.

Configuring an Upload/Download Adapter

Declare virtual BLOB fields by entering a few parameters in the BLOB Adapter Configuration of a data controller. The web application framework will perform REST requests to a specified storage system, making it possible to use any combination of adapters in a single application without creating dependencies on third-party libraries.

A physical table column storing the file name is required for each virtual BLOB field definition. It allows the application framework  to determine existence of binary content.

Optional utility table columns Length and Content Type may be specified. The matching data controller fields will enable the application framework to communicate the file type and size to the client browser.

The table below shows configuration parameters that may be used to set up an adapter.

Parameter Description Storage System
Access-Key-ID The Access Key ID of the specified Secret Access Key required to form secure requests to Amazon S3. S3
Account Name of the Azure Storage Account. Azure
Bucket The bucket that stores the binary content. S3
Container The container that stores the binary content. Azure
Content-Type-Field The name of the data controller field that stores the file content type (data type String). Optional
Field The name of the virtual BLOB field. Required
File-Name-Field The name of the field that stores the file name (data type String). Required
Key The key used to authenticate Azure Storage requests. Azure
Length-Field The name of the data controller field that stores the file length (data type Int). Optional
Path-Template The path to the binary content in the storage system. May include references to data controller field names and special names. Required
Storage-System The type of storage system that holds the binary content. Supported values are “File”, “Azure”, and “S3”. Required
Secret-Access-Key The Secret Access Key used in conjunction with Access Key ID to form secure requests to Amazon S3. S3

Configuring Path Template

The path template can reference data controller field names in curly brackets ({}). The following example references the data controller fields ProductID and PictureFileName. This path template will work with Azure and S3 storage systems.

Path-Template: Products/{ProductID}-{PictureFileName}

The file system path template must resolve as a physical path in the file system.

Path-Template: C:\Northwind\Customers\{CustomerID}-{PhotoFileName}

You can also specify a path relative to the application root when using file system storage.

Path-Template: ~\App_Data\Customers\{CustomerID}-{PhotoFileName}

Special names $Extension and $FileNameWithoutExtension can also be used in the path template with any storage system.

Path-Template: Products/{$FileNameWithoutExtension}-{ProductID}.{$Extension}

Most hosted storage systems (Azure, S3, Google Drive) are only supporting a limited set of characters in the path. The application framework will automatically replace non-alphanumeric characters with dash (-) when evaluating path templates.

Monday, April 29, 2013PrintSubscribe
Feature: Tools for Excel

Code On Time Tools for Excel provides an alternative designer that allows rapid changes to configuration element properties. This tool can be used interchangeably with the Project Designer.

List of data fields in Code On Time Tools for Excel.

The picture below shows the default Orders form in a sample Northwind web application. Let’s compare methods of changing the form layout in Project Designer and Tools for Excel.

Suppose that it is necessary to place shipping fields in a second column in the form. The word “Ship” must be removed from the field labels.

Default Orders edit form.

Using the Project Designer, you would create a category and drag all shipping data fields into the new category.

Dropping all shipping fields onto the 'Shipping Information' category.     All shipping data fields moved into 'Shipping Information' category.

Next, you would need to click on every data field, change the Header Text of the data field, and press OK to save.

You may save quite a few clicks using Tools for Excel.

Start Microsoft Excel, and switch to the Code On Time tab. Press Open | Northwind / Web Site Factory to link the project to the workbook, and then select Categories shortcut on the ribbon. Filter down to Orders controller by pressing Filter | Orders.

Filtering Categories project configuration sheet down to 'Orders' controller.

Add another category with the following properties:

ID View Controller Header Text Description New Column
myCat editForm1 Orders Shipping Information This is the shipping info. yes

Adding a new category to Orders controller.

Next, click on the Data Fields shortcut. Make the changes highlighted below:

Field Name Category View Controller Header Text
ShipName myCat editForm1 Orders Name
ShipAddress myCat editForm1 Orders Address
ShipCity myCat editForm1 Orders City
ShipRegion myCat editForm1 Orders Region
ShipPostalCode myCat editForm1 Orders Postal Code
ShipCountry myCat editForm1 Orders Country

Changing the properties for all shipping fields in editForm1 of Orders controller.

On the ribbon, press Sync to apply changes to the application. Then, press Browse to generate and open the web app in the default browser. Navigate to the Orders page and select a record. The shipping fields will now be in a separate category in a new column with new labels.

Orders edit form with shipping information in a second column.

Learn more about Tools for Excel.

Sunday, April 28, 2013PrintSubscribe
Tools for Excel: Controllers

This is a typical view of controllers in a project.

Typical view of controllers in Tools for Excel.

Consult the following table when entering property values:

Property Description
Name This is the name of the data controller. If changed, the original data controller will be deleted. Rename the controller instead.
Conflict Detection Valid values are “Overwrite Changes”, “Compare All Values”.
Connection String Name Specify a connection string name if the controller is working with the database other than the one selected for this project.
Handler Specify the name of a business rules class that can be extended to respond to the controller actions.
Annotations Specify if free form notes and attachments can be assigned to any data row by end-users at run-time.
Status Bar

The status bar is displayed in form views to provide a visualization of the Status field.

Representational State Transfer (REST) Configuration Defines settings for the REST application server.
BLOB Adapter Configuration Defines the BLOB Adapter configuration.