Index: src/site/docs/serverguide.markdown |
diff --git a/src/site/docs/serverguide.markdown b/src/site/docs/serverguide.markdown |
new file mode 100644 |
index 0000000000000000000000000000000000000000..1c50e319bf62e6b17d8a9e8c9961fe1ed8bc8ff2 |
--- /dev/null |
+++ b/src/site/docs/serverguide.markdown |
@@ -0,0 +1,149 @@ |
+--- |
+layout: article |
+title: "Command-Line Apps" |
+description: "Documentation, references, and more about server-side programming." |
+has-permalinks: true |
+--- |
+ |
+{% include docs_toc.html %} |
+ |
+# {{ page.title }} |
+ |
+You can use Dart for any kind of command-line app from scripts to servers. |
+ |
+## Show me the code |
+ |
+If you prefer to plow through code, start here. |
Shams
2014/01/03 00:28:17
Does Google have a standard for verbiage for links
mem
2014/01/03 00:35:02
Done.
|
+These samples progress from simple to complex |
+and illustrate a variety of APIs specific to command-line apps and servers. |
+ |
+<hr> |
+ |
+<div class="row"> |
+<div class="col-md-5"> |
+ |
+### Best place to start |
+ |
+* [Dart by Example](/dart-by-example/#dart-io-and-command-line-apps) |
+ |
+</div> |
+<div class="col-md-7"> |
+ |
+#### Top 10 |
+ |
+10. Using files, directories, and symlinks |
+9. Reading and writing files |
+8. Listing contents of directories |
+7. Using streams |
+6. Making HTTP requests |
+5. Getting the response |
+4. Handling errors |
+3. Serving index.html |
+2. Adding custom headers |
+1. Implementing an HTTP server |
+0. ...and more... |
+ |
+</div> |
+</div> |
+ |
+<hr> |
+ |
+<div class="row"> |
+<div class="col-md-5"> |
+ |
+### Basic command-line apps |
+ |
+* [dcat](https://code.google.com/p/dart/source/browse/branches/bleeding_edge/dart/samples/dcat/README.md) |
+* [dgrep](https://code.google.com/p/dart/source/browse/branches/bleeding_edge/dart/samples/dgrep/README.md) |
+</div> |
+<div class="col-md-7"> |
+ |
+#### APIs |
+ |
+* parsing command-line arguments |
Shams
2014/01/03 00:28:17
The first section uses a numbered list and the fir
mem
2014/01/03 00:35:02
keeping the numbered list because it's the top 10.
|
+* reading a file |
+* converting data |
+* using stdin, stdout, and stderr |
+* listing a directory recursively |
+* testing and getting information about paths |
+</div> |
+</div> |
+ |
+<hr> |
+ |
+<div class="row"> |
+<div class="col-md-5"> |
+ |
+#### Servers |
+ |
+* [slambookserver](https://github.com/dart-lang/dart-tutorials-samples/blob/master/web/slambook/) |
+* [dartiverse_search](https://code.google.com/p/dart/source/browse/branches/bleeding_edge/dart/samples/dartiverse_search/readme.txt) |
+ |
+</div> |
+<div class="col-md-7"> |
+ |
+#### APIs |
+ |
+* using the HttpServer class |
+* handling GET, POST, and OPTIONS requests |
+* using CORS headers |
+* using WebSockets |
+* getting responses |
+* routing requests |
+* handling errors |
+ |
+</div> |
+</div> |
+ |
+<hr> |
+ |
+## Read all about it |
+ |
+Follow these links in order to gain a full understaning |
Shams
2014/01/03 00:28:17
spelling...
mem
2014/01/03 00:35:02
Done.
|
+of how to write various kinds of command-line apps in Dart using |
+various Dart libraries and packages. |
Shams
2014/01/03 00:28:17
Use a different word (various twice in the same se
mem
2014/01/03 00:35:02
Done.
|
+ |
+### Prerequisites (dart:async library) |
+ |
+* [Use Future-Based APIs](/docs/tutorials/futures/) |
+<img src="/docs/tutorials/images/target.png" height="16" width="16"> |
+* [Use Streams for Data](/docs/tutorials/streams/) |
+<img src="/docs/tutorials/images/target.png" height="16" width="16"> |
+ |
+### The Basics |
+ |
+* [Write a Command-Line App](/docs/tutorials/cmdline/) |
+<img src="/docs/tutorials/images/target.png" height="16" width="16"> |
+ |
+### Servers |
+ |
+* [Get Input from a Form](/docs/tutorials/forms/) |
+<img src="/docs/tutorials/images/target.png" height="16" width="16"> |
+(contains an HTTP server/client pair) |
+* [Walkthrough: Dartiverse Search](/docs/dart-up-and-running/contents/ch05.html) |
+* [Deploy to Heroku](https://github.com/igrigorik/heroku-buildpack-dart) |
+ |
+{% comment %} |
+* How to write a basic server using http_server package (sample link) |
+* How to write a web server (sample link) |
+* How to use Heroku to deploy (external link) |
+ |
+#### Other server-specific tasks |
+ |
+* How to perform server-side templating (??) |
+* How to use SSL to perform secure web messaging (??) |
+* Use zones for more control over your asychronous computations (??) |
+* How to write a long-running server (??) |
+* Using TCP for reliable transmissions (??) |
+* Using UDP for lightweight, efficient transmissions (??) |
+* Connecting to the postgres database (and concepts for other databases) (??) |
+* URL routing for god knows what purpose (??) |
+ |
+{% endcomment %} |
+ |
+### Reference docs |
+ |
+* [dart:io](https://api.dartlang.org/dart_io.html) |
+* [args package](https://api.dartlang.org/args.html) |
+* [dart:async](https://api.dartlang.org/dart_async.html) |
+* [dart:convert](https://api.dartlang.org/dart_convert.html) |