Reasons why to use WDK
Successful projects do at least one thing right: they manage expectations properly. As you can see below, there are many good reasons to use WDK for your next web application project. But if not, you better know it in advance!
Yes, you can...
- Create a boilerplate source code package to start your own project within minutes by using the scaffolder
- Use WDK for free and without any restrictions - no matter what - WDK is free and will be free - forever!
- Significantly reduce development efforts and costs while increasing quality standards
- Benefit from an integrated architecture, planning, implementation, and testing concept
- Add new entities (like customers, contracts, invoices) to your application system in minutes using the scaffolder and create the necessary database wrapper, webservice, and gui code
- Design, define, extend data entities at one central place - and create and update related guis, database create statements, database wrappers, and webservices automatically
- Use html5 with WDK seamlessly
- Maintain multiple navigation trees (e.g. for header, sidebar, and footer menus)
- Combine different navigation trees into one
- Selectively show and hide navigation tree nodes based on user rights and coded conditions
- Create internationalized applications as screen text and static contents files are strictly separated from logic and layout files
- Cooperate in large teams as source code can be organized in so called source code file assemblies
- Develop layout and logic independently
- Restrict access to specific content or functionality based on user specific entitlements or programmed conditions
- Calculate the time of the next event based on a given time and a unix crontab rule set
- Read both Microsoft Excel and classical CSV formatted files into associative arrays
- Render date and time based on a user's locale preferences
- Render floating numbers based on user's locale preferences
- Render typical gui elements like lists, links, navigation trees, forms, tables, tab navigations, teasers, tag clouds, toolbars, icons, message boxes, and many others using coding patterns that separate logic and layout completely
- Use wiki syntax anywhere and convert it into html seemlessly
- Convert bbcode formatted text into html
- Send emails as text or html with attachments without diving into the deeps of the mail protocol
- Send encrypted mails
- Encrypt and Decrypt complex data structures with taking proper care of password hashes and init vectors (and if this doesn't ring a bell, you better use it!)
- Manage user accounts using a build in admin interface
- Create installation scripts to initialize your application
- Benefit from a build in user session mechanism that keeps track on session expiry, payload, and user login status
- Protocol users' activities and other events by the audit-safe logging functionality
- Store, manage, and query users' access rights
- Write test scripts using a testing framework that supports initialization and cleanup of temporary data
- Manage and overview tests using a quality dashboard that shows which tests are currently failing
- Schedule repetitive jobs using the build-in scheduling system - a web-based crontab manager
- Edit, approve, publish, and remove dynamic text content that can be written in plain text, bbcode, wiki syntax, or html
- Create install scripts for applications that setup database tables and verify that the hosting environment fullfills all requirements to run the application
- Sort and filter data tables stored in associative arrays easily by combining multiple filter and sorting criteria
- Simplify translation processes by storing all text in separate content files and text item files that can be imported to (and exported from) any given translation tool in the market
- Create modules that contain gui interaction and business logic that can easly be re-used
- Securely access GET and POST parameters and protect the application from malicious code injection attempts
- Protect your applications against CSRF attacks
- Display and control password policies
- Profit from consistent UTF-8 support at all places
- Debug code with the help of a trace log feature that aggregates tracing information not only from the actual website but also from all subsequently invoked webservices
- Profile code using the stopwatch functionality
- Check if a string is a valid url (sounds trivial but most code snippets you'll find on the web fail at some point)
- Protect webservices against malicious content parameters by applying strict input control
- Generate xml documents with data taken from associative arrays
- Read xml data into an associative array
- Create zip files
- Make unique temporary file names and files
- Enumerate files and folders into an array recursively
- Create and pre-fill web forms and embedd error messages without writing a single line in html
- Control the use of https and http centrally
- Just use the build-in mechanisms for user self-sign-in, email validation, and registration follow-up
- Dynamically control a user name policy
- Get and set values associated to the user session anywhere in the code without taking care if these values are then transmitted via url links, as a session payload, or cookie stored data
- Generate URLs for links that point back to the application
- Be sure not to be vulnerable against Cross-Site-Scripting and SQL-Injection attacks when using parameter processors and database wrappers
- Create webservices that deliver xml, json and csv responses
- Create custom webservice response formats if the build-in response formats are still not fit for purpose
- Manage events triggered within webservices and web applications
- Make use of the almost full-featured wiki syntax converter that can not only create html, but any structured output format
- Safe time by invoking http requests using the powerful build-in curl wrapper
- Store and load data items in a generic build-in key/value database (e.g. to store user settings) without extending the actual data model
- Comply with legal requirements by frontpaging your website with the build-in disclaimer module
- Safe more time by not re-inventing the straight forward contact form that converts user input on a website into an email
- Allow users to change they email address and invoke the email validation process again
- Enable users to specify a preferred gui language and a country specific locale setting
- Benefit from various array manipulation functions like making all strings in an array uppercase recursively and many more
- Read configuration data from files
- Apply the model view controller pattern to content pages, functional modules, and user interface elements
- Use the support for displaying monetary amounts in different currencies
- Make use of helper functions for date and time calculation
- Manage php provided error messages and warnings
- Send a file for http download
- Receive uploaded files
- Identify a user's preferred language based on the set browser language
- Inform yourself automatically if tests fail after roll-outs by using running scheduled tests scripts continuously
- Run shell commands and manage process output in all streams
- Use a variety of string manipulation and analysis functions
- Retrieve the load average of the host
- Convert variables from various types to another
- Render hexadecimal data
- Exchange layout on the fly without changing a single line of functional source code
- Create configurable layouts by applying parameters e.g. for colors to a html/css layout schema
Now this were 84 reasons why to use WDK and the list is growing.