Files
2026-08-16 19:03:44 +02:00

955 lines
134 KiB
HTML
Vendored

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- saved from url=(0131)https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/2010/05/05/asynchrone-kommunikation-mit-dem-async-pattern/ -->
<html xmlns="http://www.w3.org/1999/xhtml" class=" zvkwck idc0_350"><head profile="http://gmpg.org/xfn/11"><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><script src="./aync_files/athena.js.Download" type="text/javascript"></script>
<script type="text/javascript">window.addEventListener('DOMContentLoaded',function(){var v=archive_analytics.values;v.service='wb';v.server_name='wwwb-app220.us.archive.org';v.server_ms=516;archive_analytics.send_pageview({});});</script>
<script type="text/javascript" src="./aync_files/bundle-playback.js.Download" charset="utf-8"></script>
<script type="text/javascript" src="./aync_files/wombat.js.Download" charset="utf-8"></script>
<script>window.RufflePlayer=window.RufflePlayer||{};window.RufflePlayer.config={"autoplay":"on","unmuteOverlay":"hidden"};</script>
<script type="text/javascript" src="./aync_files/ruffle.js.Download"></script>
<script type="text/javascript">
__wm.init("https://web.archive.org/web");
__wm.wombat("http://blog.aztec-project.org:80/2010/05/05/asynchrone-kommunikation-mit-dem-async-pattern/","20111007131715","https://web.archive.org/","web","/_static/",
"1317993435");
</script>
<link rel="stylesheet" type="text/css" href="./aync_files/banner-styles.css">
<link rel="stylesheet" type="text/css" href="./aync_files/iconochive.css">
<!-- End Wayback Rewrite JS Include -->
<title>build broken » Asynchrone Kommunikation mit dem Async-Pattern</title>
<meta name="generator" content="WordPress 3.0.4">
<meta name="theme" content="Mandigo 1.41">
<link rel="stylesheet" href="./aync_files/style.css" type="text/css" media="screen">
<style type="text/css">
body {
font-family: Arial, Sans-Serif;
background-color: #44484F;
}
a {
font-weight: bold;
}
.narrowcolumn .entry, .widecolumn .entry {
line-height: 1.4em;
}
.inline-widgets #wp-calendar caption, .blogname, .blogdesc {
font-family: 'Trebuchet MS', 'Lucida Grande', Verdana, Arial, Sans-Serif;
}
.blogname {
font-size: 4em;
margin-top: 15px;
}
.posttitle, #comments, #respond .title, #respond.pre27, #trackbacks {
font-family: 'Trebuchet MS', 'Lucida Grande', Verdana, Arial, Sans-Serif;
}
.commentlist li, #commentform input, #commentform textarea {
font-family: 'Lucida Grande', Verdana, Arial, Sans-Serif;
}
#commentform p {
font-family: 'Lucida Grande', Verdana, Arial, Sans-Serif;
}
.sidebars {
font-family: 'Lucida Grande', Verdana, Arial, Sans-Serif;
}
#page {
width: 987px;
}
#header {
background: url(https://web.archive.org/web/20111007131715im_/http://blog.aztec-project.org/wp-content/themes/mandigo/images/header-1024.png);
height: 243px;
width: 987px;
}
#headerimg {
height: 226px;
width: 961px;
background: url(https://web.archive.org/web/20111007131715im_/http://blog.aztec-project.org/wp-content/themes/mandigo/schemes/orange/images/head-1024.jpg) bottom center no-repeat;
}
#main {
background: url(https://web.archive.org/web/20111007131715im_/http://blog.aztec-project.org/wp-content/themes/mandigo/images/bg-1024.png);
width: 957px;
}
#footer {
background: url(https://web.archive.org/web/20111007131715im_/http://blog.aztec-project.org/wp-content/themes/mandigo/images/foot-1024.png);
}
.post {
text-align: justify;
background: #FAFAFA;
border: 1px solid #EEEEEE;
}
#footer {
width: 987px;
}
.sidebars {
background: #EEEEEE;
border: 1px solid #DDDDDD;
}
#sidebar1 .sidebars {
width: 210px;
}
#sidebar2 .sidebars {
width: 210px;
}
.entry img {
float: none;
}
.sidebars li {
list-style-image: url(https://web.archive.org/web/20111007131715im_/http://blog.aztec-project.org/wp-content/themes/mandigo/schemes/orange/images/star.gif);
}
.commentlist {
}
.commentlist li {
list-style: none;
}
#wp-calendar {
margin: 0 !important; margin-top: -1.5em;
}
#wp-calendar caption {
margin-top: -1.4em;
}
/* dirty fix for the event calendar plugin */
div#wp-calendar .nav {
margin: 0;
}
/* end dirty fix */
.datestamp div {
font-family: 'Lucida Grande', 'Lucida Sans Unicode', Arial, Sans-Serif;
}
.cal3 {
}
.pages {
text-align: right;
}
.pages ul li.has_sub {
background: url(https://web.archive.org/web/20111007131715im_/http://blog.aztec-project.org/wp-content/themes/mandigo/images/icons/bullet_arrow_right.png) no-repeat center right;
}
.head_overlay {
background: url(https://web.archive.org/web/20111007131715im_/http://blog.aztec-project.org/wp-content/themes/mandigo/images/head_overlay.png);
}
</style>
<link rel="stylesheet" href="./aync_files/scheme.css" type="text/css" media="screen">
<link rel="alternate" type="application/rss+xml" title="build broken RSS Feed" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/feed/">
<link rel="pingback" href="https://blog.aztec-project.org/xmlrpc.php">
<link rel="alternate" type="application/rss+xml" title="build broken » Asynchrone Kommunikation mit dem Async-Pattern Kommentar Feed" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/2010/05/05/asynchrone-kommunikation-mit-dem-async-pattern/feed/">
<link rel="stylesheet" id="A2A_SHARE_SAVE-css" href="./aync_files/addtoany.min.css" type="text/css" media="all">
<script type="text/javascript" src="./aync_files/comment-reply.js.Download"></script>
<link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://blog.aztec-project.org/xmlrpc.php?rsd">
<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="https://blog.aztec-project.org/wp-includes/wlwmanifest.xml">
<link rel="index" title="build broken" href="https://blog.aztec-project.org/">
<link rel="start" title="Umsetzung des Plug-In-Patterns" href="https://blog.aztec-project.org/2009/06/05/umsetzung-des-plug-in-patterns/">
<link rel="prev" title="(Spreu + Weizen).Select(Programmierer)" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/2010/03/14/spreu-weizen-selectprogrammierer/">
<link rel="next" title="Asynchrone Kommunikation mit dem Async-Pattern (Refactored)" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/2010/05/06/asynchrone-kommunikation-mit-dem-async-pattern-refactored/">
<link rel="canonical" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/2010/05/05/asynchrone-kommunikation-mit-dem-async-pattern/">
<link rel="shortlink" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/?p=961">
<meta property="og:site_name" content="build broken"><meta property="og:url" content="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/2010/05/05/asynchrone-kommunikation-mit-dem-async-pattern/"><meta property="og:title" content="Asynchrone Kommunikation mit dem Async-Pattern"><!--[if IE]>
<style type="text/css">
.addtoany_list a img{filter:alpha(opacity=70)}
.addtoany_list a:hover img,.addtoany_list a.addtoany_share_save img{filter:alpha(opacity=100)}
</style>
<![endif]-->
<script type="text/javascript" src="./aync_files/jquery.js.Download"></script>
<script type="text/javascript" src="./aync_files/jquery.ifixpng.js.Download"></script>
<script type="text/javascript">jQuery.noConflict();</script>
<style type="text/css">
.entry img, .entry embed, .entry object { max-width: 880px; width: expression(this.clientWidth > 880 ? 880 : true); }
.entry img { height: auto; }</style>
<meta property="fb:admins" content="1109299946">
<meta property="fb:app_id" content="134622216554391"><script charset="UTF-8" src="./aync_files/de.js.Download"></script><style type="text/css">.a2a_menu,.a2a_menu *{float:none;margin:0;padding:0;height:auto;width:auto}.a2a_menu table{border-collapse:collapse;border-spacing:0;width:auto}.a2a_menu table,.a2a_menu tbody,.a2a_menu td,.a2a_menu tr{border:0;margin:0;padding:0;background-color:#FAFAFA}.a2a_menu td{vertical-align:top}.a2a_menu,.a2a_menu_inside{-webkit-border-radius:16px;-moz-border-radius:16px}.a2a_menu{display:none;z-index:9999999;position:absolute;direction:ltr;min-width:200px;background:#FAFAFA;background:rgba(250,250,250,.6);font:12px Arial,Helvetica,sans-serif;color:#000;line-height:12px;border:1px solid transparent;_border:1px solid #FAFAFA;padding:7px;vertical-align:baseline;overflow:hidden}.a2a_menu_inside{background-color:#FAFAFA;border:1px solid #AECADB;padding:8px}.a2a_menu a span,.a2a_tabs .a2a_tab_selected span{color:#FF9B2A}.a2a_menu a:hover span,.a2a_tabs div span,.a2a_tabs a span{color:#FF9B2A}.a2a_menu a,#a2a_hist_list a,.a2a_tabs div{color:#FF9B2A;text-decoration:none;font:12px Arial,Helvetica,sans-serif;line-height:12px;height:auto;width:auto;clear:none;outline:none;-moz-outline:none;-webkit-border-radius:8px;-moz-border-radius:8px}.a2a_menu a:visited,#a2a_hist_list a:visited{color:#FF9B2A;clear:right}.a2a_menu a:hover,.a2a_menu a:active,.a2a_menu a.a2a_i:focus,.a2a_tabs div:hover{color:#FF9B2A;border:1px solid #AECADB;background-color:#FAFAFA;text-decoration:none}.a2a_menu span,.a2a_img{background:url(https://web.archive.org/web/20111007123523/http://static.addtoany.com/menu/icons_19.png) no-repeat;border:0;display:block;line-height:16px}.a2a_menu span.a2a_i_find{height:16px;left:5px;position:absolute;top:2px;width:16px}#a2a_menu_container{display:inline-block}#a2a_menu_container{_display:inline}.a2a_menu_title_container{margin-bottom:2px;padding:6px}.a2a_menu_find_container{position:relative;text-align:left;margin:4px 1px;padding:1px 24px 1px 0;border:1px solid #FF9B2A;-webkit-border-radius:8px;-moz-border-radius:8px}.a2a_menu input,.a2a_menu input[type="text"]{display:block;background-image:none;box-shadow:none;line-height:100%;margin:0;overflow:hidden;padding:0;-moz-box-shadow:none;-webkit-box-shadow:none;-webkit-appearance:none}.a2a_menu_title_container input.a2a_menu_title{color:#FF9B2A;background-color:#FAFAFA;border:0;margin:0;padding:0;width:100%}.a2a_menu_find_container input.a2a_menu_find{position:relative;left:24px;color:#FF9B2A;font-size:12px;padding:2px 0;outline:0;border:0;background-color:transparent;_background-color:#FAFAFA;width:250px}table.a2a_cols_container{width:100%}.a2a_cols{width:50%}.a2a_clear{clear:both} .a2a_default_style a{float:left;line-height:16px;padding:0 2px}.a2a_default_style .a2a_img{display:block;height:16px;line-height:16px;overflow:hidden;width:16px}.a2a_default_style .a2a_img,.a2a_default_style .a2a_dd{float:left}.a2a_default_style .a2a_img_text{margin-right:4px}.a2a_default_style .a2a_divider{border-left:1px solid #000;display:inline;float:left;height:16px;line-height:16px;margin:0 5px}.a2a_kit a{cursor:pointer}.a2a_hr{margin:0 12px 12px;padding:1px;background:none;background-color:#FAFAFA}.a2a_nowrap{white-space:nowrap}.a2a_note{margin:0 auto;padding:9px;font-size:11px;text-align:center}.a2a_note .a2a_note_note{margin:0 0 9px;color:#FF9B2A}.a2a_wide a{display:block;margin-top:3px;border:1px solid #FAFAFA;padding:3px;text-align:center}.a2a_tabs{float:left;margin:0 0 3px}.a2a_tabs a,.a2a_tabs div{margin:1px;background-color:#FAFAFA;border:1px solid #FAFAFA;font-size:11px;padding:6px 12px 2px;white-space:nowrap}.a2a_tabs a span,.a2a_tabs div span{margin-bottom:4px;padding-left:20px}.a2a_tabs a,.a2a_tabs a:visited,.a2a_tabs a:hover,.a2a_tabs div,.a2a_tabs div:hover{cursor:pointer;border-bottom:1px solid #FAFAFA;color:#FF9B2A;-webkit-border-bottom-left-radius:0;-moz-border-radius-bottomleft:0;-webkit-border-bottom-right-radius:0;-moz-border-radius-bottomright:0}a.a2a_tab_selected,a.a2a_tab_selected:visited,a.a2a_tab_selected:hover,a.a2a_tab_selected:active,a.a2a_tab_selected:focus,div.a2a_tab_selected,div.a2a_tab_selected:hover{color:#FF9B2A;background-color:#FAFAFA;border:1px solid #AECADB;border-bottom:1px solid #FAFAFA}a.a2a_i{display:block;padding:4px 6px;border:1px solid #FAFAFA;text-align:left;white-space:nowrap}a.a2a_i span{padding-left:20px}a.a2a_sss{font-weight:700}a.a2a_ind{display:inline;margin:0;padding:0}a.a2a_emailer{display:inline-block;border:1px solid #EEE;margin:0 9px;text-align:center}a.a2a_email_client{padding-left:6px}a.a2a_email_client span{display:inline-block;height:16px;line-height:16px;margin:0 2px;padding-left:0;width:16px}a.a2a_menu_show_more_less{margin:4px 0 8px;padding:0}a.a2a_menu_show_more_less span{display:inline-block;height:14px;margin:0 auto;vertical-align:baseline;width:16px}div.a2a_menu_powered_by{background-color:#FAFAFA;font-size:9px;color:#FF9B2A;text-align:center;padding:4px;border-radius:8px;-webkit-border-radius:8px;-moz-border-radius:8px}div.a2a_menu_powered_by a,div.a2a_menu_powered_by a:visited{display:inline;font-size:9px;line-height:9px;color:#FF9B2A}div.a2a_menu_powered_by a:hover{border:0;text-decoration:underline}iframe.a2a_shim{border:0;position:absolute;z-index:999999}.a2a_dd img{border:0}.a2a_i_a2a{background-position:0 0!important}.a2a_i_agregator{background-position:0 -17px!important}.a2a_i_aiderss{background-position:0 -34px!important}.a2a_i_aim{background-position:0 -51px!important}.a2a_i_allvoices{background-position:0 -68px!important}.a2a_i_amazon{background-position:0 -85px!important}.a2a_i_aol{background-position:0 -102px!important}.a2a_i_apple_mail{background-position:0 -119px!important}.a2a_i_arto{background-position:0 -136px!important}.a2a_i_ask{background-position:0 -153px!important}.a2a_i_avantgo{background-position:0 -170px!important}.a2a_i_backflip{background-position:0 -187px!important}.a2a_i_bebo{background-position:0 -204px!important}.a2a_i_bibsonomy{background-position:0 -221px!important}.a2a_i_bitty{background-position:0 -238px!important}.a2a_i_blinklist{background-position:0 -255px!important}.a2a_i_blogger{background-position:0 -272px!important}.a2a_i_bloglines{background-position:0 -289px!important}.a2a_i_blogmarks{background-position:0 -306px!important}.a2a_i_blogrovr{background-position:0 -323px!important}.a2a_i_bookmark{background-position:0 -340px!important}.a2a_i_bookmarks_fr{background-position:0 -357px!important}.a2a_i_box{background-position:0 -374px!important}.a2a_i_buddymarks{background-position:0 -391px!important}.a2a_i_buzmob{background-position:0 -408px!important}.a2a_i_buzz{background-position:0 -425px!important}.a2a_i_bzzster{background-position:0 -442px!important}.a2a_i_care2{background-position:0 -459px!important}.a2a_i_chrome{background-position:0 -476px!important}.a2a_i_citeulike{background-position:0 -493px!important}.a2a_i_clear{background-position:0 -510px!important}.a2a_i_connotea{background-position:0 -527px!important}.a2a_i_current{background-position:0 -544px!important}.a2a_i_dailyme{background-position:0 -561px!important}.a2a_i_dailyrotation{background-position:0 -578px!important}.a2a_i_darr{background-position:0 -595px!important}.a2a_i_darr_wt{background-position:0 -612px!important}.a2a_i_default{background-position:0 -629px!important}.a2a_i_delicious{background-position:0 -646px!important}.a2a_i_designfloat{background-position:0 -663px!important}.a2a_i_digg{background-position:0 -680px!important}.a2a_i_diglog{background-position:0 -697px!important}.a2a_i_diigo{background-position:0 -714px!important}.a2a_i_dzone{background-position:0 -731px!important}.a2a_i_email{background-position:0 -748px!important}.a2a_i_eskobo{background-position:0 -765px!important}.a2a_i_evernote{background-position:0 -782px!important}.a2a_i_excitemix{background-position:0 -799px!important}.a2a_i_expression{background-position:0 -816px!important}.a2a_i_facebook{background-position:0 -833px!important}.a2a_i_fark{background-position:0 -850px!important}.a2a_i_faves{background-position:0 -867px!important}.a2a_i_feed{background-position:0 -884px!important}.a2a_i_feedblitz{background-position:0 -901px!important}.a2a_i_feedbucket{background-position:0 -918px!important}.a2a_i_feedlounge{background-position:0 -935px!important}.a2a_i_feedm8{background-position:0 -952px!important}.a2a_i_feedmailer{background-position:0 -969px!important}.a2a_i_feedreader_net{background-position:0 -986px!important}.a2a_i_feedshow{background-position:0 -1003px!important}.a2a_i_find{background-position:0 -1020px!important}.a2a_i_fireant{background-position:0 -1037px!important}.a2a_i_firefox{background-position:0 -1054px!important}.a2a_i_flurry{background-position:0 -1071px!important}.a2a_i_folkd{background-position:0 -1088px!important}.a2a_i_foxiewire{background-position:0 -1105px!important}.a2a_i_friendfeed{background-position:0 -1122px!important}.a2a_i_friendster{background-position:0 -1139px!important}.a2a_i_funp{background-position:0 -1156px!important}.a2a_i_furl{background-position:0 -1173px!important}.a2a_i_fwicki{background-position:0 -1189px!important}.a2a_i_gabbr{background-position:0 -1206px!important}.a2a_i_global_grind{background-position:0 -1223px!important}.a2a_i_gmail{background-position:0 -1240px!important}.a2a_i_google{background-position:0 -1257px!important}.a2a_i_google_buzz{background-position:0 -1274px!important}.a2a_i_healthranker{background-position:0 -1291px!important}.a2a_i_hellotxt{background-position:0 -1308px!important}.a2a_i_hemidemi{background-position:0 -1325px!important}.a2a_i_hi5{background-position:0 -1342px!important}.a2a_i_hubdog{background-position:0 -1359px!important}.a2a_i_hugg{background-position:0 -1376px!important}.a2a_i_hyves{background-position:0 -1393px!important}.a2a_i_identica{background-position:0 -1410px!important}.a2a_i_im{background-position:0 -1427px!important}.a2a_i_imera{background-position:0 -1444px!important}.a2a_i_instapaper{background-position:0 -1461px!important}.a2a_i_iterasi{background-position:0 -1478px!important}.a2a_i_itunes{background-position:0 -1495px!important}.a2a_i_jamespot{background-position:0 -1512px!important}.a2a_i_jots{background-position:0 -1529px!important}.a2a_i_jumptags{background-position:0 -1546px!important}.a2a_i_khabbr{background-position:0 -1563px!important}.a2a_i_kledy{background-position:0 -1580px!important}.a2a_i_klipfolio{background-position:0 -1597px!important}.a2a_i_linkagogo{background-position:0 -1614px!important}.a2a_i_linkatopia{background-position:0 -1631px!important}.a2a_i_linkedin{background-position:0 -1648px!important}.a2a_i_live{background-position:0 -1665px!important}.a2a_i_livejournal{background-position:0 -1682px!important}.a2a_i_ma_gnolia{background-position:0 -1699px!important}.a2a_i_maple{background-position:0 -1716px!important}.a2a_i_meneame{background-position:0 -1733px!important}.a2a_i_mindbodygreen{background-position:0 -1750px!important}.a2a_i_miro{background-position:0 -1767px!important}.a2a_i_mister-wong{background-position:0 -1784px!important}.a2a_i_mixx{background-position:0 -1801px!important}.a2a_i_mobile{background-position:0 -1818px!important}.a2a_i_mozillaca{background-position:0 -1835px!important}.a2a_i_msdn{background-position:0 -1852px!important}.a2a_i_multiply{background-position:0 -1869px!important}.a2a_i_my_msn{background-position:0 -1886px!important}.a2a_i_mylinkvault{background-position:0 -1903px!important}.a2a_i_myspace{background-position:0 -1920px!important}.a2a_i_netimechannel{background-position:0 -1937px!important}.a2a_i_netlog{background-position:0 -1954px!important}.a2a_i_netomat{background-position:0 -1971px!important}.a2a_i_netvibes{background-position:0 -1988px!important}.a2a_i_netvouz{background-position:0 -2005px!important}.a2a_i_newgie{background-position:0 -2022px!important}.a2a_i_newsalloy{background-position:0 -2039px!important}.a2a_i_newscabby{background-position:0 -2056px!important}.a2a_i_newsgator{background-position:0 -2073px!important}.a2a_i_newshutch{background-position:0 -2090px!important}.a2a_i_newsisfree{background-position:0 -2107px!important}.a2a_i_newstrust{background-position:0 -2124px!important}.a2a_i_newsvine{background-position:0 -2141px!important}.a2a_i_nowpublic{background-position:0 -2158px!important}.a2a_i_odeo{background-position:0 -2175px!important}.a2a_i_oneview{background-position:0 -2192px!important}.a2a_i_openbm{background-position:0 -2209px!important}.a2a_i_orkut{background-position:0 -2226px!important}.a2a_i_outlook{background-position:0 -2243px!important}.a2a_i_pageflakes{background-position:0 -2260px!important}.a2a_i_pdf{background-position:0 -2277px!important}.a2a_i_phonefavs{background-position:0 -2294px!important}.a2a_i_ping{background-position:0 -2311px!important}.a2a_i_plaxo{background-position:0 -2328px!important}.a2a_i_plurk{background-position:0 -2345px!important}.a2a_i_plusmo{background-position:0 -2362px!important}.a2a_i_podnova{background-position:0 -2379px!important}.a2a_i_posterous{background-position:0 -2396px!important}.a2a_i_print{background-position:0 -2413px!important}.a2a_i_printfriendly{background-position:0 -2430px!important}.a2a_i_propeller{background-position:0 -2447px!important}.a2a_i_protopage{background-position:0 -2464px!important}.a2a_i_pusha{background-position:0 -2481px!important}.a2a_i_rapidfeeds{background-position:0 -2498px!important}.a2a_i_rasasa{background-position:0 -2515px!important}.a2a_i_reader{background-position:0 -2532px!important}.a2a_i_reddit{background-position:0 -2549px!important}.a2a_i_rssfwd{background-position:0 -2566px!important}.a2a_i_segnalo{background-position:0 -2583px!important}.a2a_i_share{background-position:0 -2600px!important}.a2a_i_shoutwire{background-position:0 -2617px!important}.a2a_i_shyftr{background-position:0 -2634px!important}.a2a_i_simpy{background-position:0 -2651px!important}.a2a_i_sitejot{background-position:0 -2668px!important}.a2a_i_skimbit{background-position:0 -2685px!important}.a2a_i_slashdot{background-position:0 -2702px!important}.a2a_i_smaknews{background-position:0 -2719px!important}.a2a_i_sodahead{background-position:0 -2736px!important}.a2a_i_sofomo{background-position:0 -2753px!important}.a2a_i_spaces{background-position:0 -2770px!important}.a2a_i_sphere{background-position:0 -2787px!important}.a2a_i_sphinn{background-position:0 -2803px!important}.a2a_i_spurl{background-position:0 -2820px!important}.a2a_i_squidoo{background-position:0 -2837px!important}.a2a_i_startaid{background-position:0 -2854px!important}.a2a_i_strands{background-position:0 -2871px!important}.a2a_i_stumbleupon{background-position:0 -2888px!important}.a2a_i_stumpedia{background-position:0 -2905px!important}.a2a_i_symbaloo{background-position:0 -2922px!important}.a2a_i_taggly{background-position:0 -2939px!important}.a2a_i_tagza{background-position:0 -2956px!important}.a2a_i_tailrank{background-position:0 -2973px!important}.a2a_i_technet{background-position:0 -2990px!important}.a2a_i_technorati{background-position:0 -3007px!important}.a2a_i_technotizie{background-position:0 -3024px!important}.a2a_i_thefreedictionary{background-position:0 -3041px!important}.a2a_i_thefreelibrary{background-position:0 -3058px!important}.a2a_i_thunderbird{background-position:0 -3075px!important}.a2a_i_tipd{background-position:0 -3092px!important}.a2a_i_toolbar_google{background-position:0 -3109px!important}.a2a_i_tumblr{background-position:0 -3126px!important}.a2a_i_twiddla{background-position:0 -3143px!important}.a2a_i_twine{background-position:0 -3160px!important}.a2a_i_twitter{background-position:0 -3177px!important}.a2a_i_txtvox{background-position:0 -3194px!important}.a2a_i_typepad{background-position:0 -3211px!important}.a2a_i_uarr{background-position:0 -3228px!important}.a2a_i_uarr_wt{background-position:0 -3245px!important}.a2a_i_unalog{background-position:0 -3262px!important}.a2a_i_viadeo{background-position:0 -3279px!important}.a2a_i_webnews{background-position:0 -3296px!important}.a2a_i_webwag{background-position:0 -3314px!important}.a2a_i_wikio{background-position:0 -3331px!important}.a2a_i_windows_mail{background-position:0 -3348px!important}.a2a_i_wink{background-position:0 -3365px!important}.a2a_i_winksite{background-position:0 -3382px!important}.a2a_i_wists{background-position:0 -3399px!important}.a2a_i_wordpress{background-position:0 -3416px!important}.a2a_i_xanga{background-position:0 -3433px!important}.a2a_i_xerpi{background-position:0 -3450px!important}.a2a_i_xianguo{background-position:0 -3467px!important}.a2a_i_yahoo{background-position:0 -3484px!important}.a2a_i_yample{background-position:0 -3501px!important}.a2a_i_yigg{background-position:0 -3518px!important}.a2a_i_yim{background-position:0 -3535px!important}.a2a_i_yoolink{background-position:0 -3552px!important}.a2a_i_youmob{background-position:0 -3569px!important}.a2a_i_yourminis{background-position:0 -3586px!important}.a2a_i_zaptxt{background-position:0 -3603px!important}.a2a_i_zhuaxia{background-position:0 -3620px!important}.a2a_i_zune{background-position:0 -3637px; }</style><style type="text/css">.fb_hidden{position:absolute;top:-10000px;z-index:10001}
.fb_invisible{display:none}
.fb_reset{background:none;border-spacing:0;border:0;color:#000;cursor:auto;direction:ltr;font-family:"lucida grande", tahoma, verdana, arial, sans-serif;font-size: 11px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:1;margin:0;overflow:visible;padding:0;text-align:left;text-decoration:none;text-indent:0;text-shadow:none;text-transform:none;visibility:visible;white-space:normal;word-spacing:normal}
.fb_link img{border:none}
.fb_dialog{background:rgba(82, 82, 82, .7);position:absolute;top:-10000px;z-index:10001}
.fb_dialog_advanced{padding:10px;-moz-border-radius:8px;-webkit-border-radius:8px}
.fb_dialog_content{background:#fff;color:#333}
.fb_dialog_close_icon{background:url(https://web.archive.org/web/20111007131715/http://static.ak.fbcdn.net/rsrc.php/v1/yq/r/IE9JII6Z1Ys.png) no-repeat scroll 0 0 transparent;_background-image:url(https://web.archive.org/web/20111007131715/http://static.ak.fbcdn.net/rsrc.php/v1/yL/r/s816eWC-2sl.gif);cursor:pointer;display:block;height:15px;position:absolute;right:18px;top:17px;width:15px;top:8px\9;right:7px\9}
.fb_dialog_mobile .fb_dialog_close_icon{top:5px;left:5px;right:auto}
.fb_dialog_padding{background-color:transparent;position:absolute;width:1px;z-index:-1}
.fb_dialog_close_icon:hover{background:url(https://web.archive.org/web/20111007131715/http://static.ak.fbcdn.net/rsrc.php/v1/yq/r/IE9JII6Z1Ys.png) no-repeat scroll 0 -15px transparent;_background-image:url(https://web.archive.org/web/20111007131715/http://static.ak.fbcdn.net/rsrc.php/v1/yL/r/s816eWC-2sl.gif)}
.fb_dialog_close_icon:active{background:url(https://web.archive.org/web/20111007131715/http://static.ak.fbcdn.net/rsrc.php/v1/yq/r/IE9JII6Z1Ys.png) no-repeat scroll 0 -30px transparent;_background-image:url(https://web.archive.org/web/20111007131715/http://static.ak.fbcdn.net/rsrc.php/v1/yL/r/s816eWC-2sl.gif)}
.fb_dialog_loader{background-color:#f2f2f2;border:1px solid #606060;font-size: 24px;padding:20px}
.fb_dialog_top_left,
.fb_dialog_top_right,
.fb_dialog_bottom_left,
.fb_dialog_bottom_right{height:10px;width:10px;overflow:hidden;position:absolute}
.fb_dialog_top_left{background:url(https://web.archive.org/web/20111007131715/http://static.ak.fbcdn.net/rsrc.php/v1/ye/r/8YeTNIlTZjm.png) no-repeat 0 0;left:-10px;top:-10px}
.fb_dialog_top_right{background:url(https://web.archive.org/web/20111007131715/http://static.ak.fbcdn.net/rsrc.php/v1/ye/r/8YeTNIlTZjm.png) no-repeat 0 -10px;right:-10px;top:-10px}
.fb_dialog_bottom_left{background:url(https://web.archive.org/web/20111007131715/http://static.ak.fbcdn.net/rsrc.php/v1/ye/r/8YeTNIlTZjm.png) no-repeat 0 -20px;bottom:-10px;left:-10px}
.fb_dialog_bottom_right{background:url(https://web.archive.org/web/20111007131715/http://static.ak.fbcdn.net/rsrc.php/v1/ye/r/8YeTNIlTZjm.png) no-repeat 0 -30px;right:-10px;bottom:-10px}
.fb_dialog_vert_left,
.fb_dialog_vert_right,
.fb_dialog_horiz_top,
.fb_dialog_horiz_bottom{position:absolute;background:#525252;filter:alpha(opacity=70);opacity:.7}
.fb_dialog_vert_left,
.fb_dialog_vert_right{width:10px;height:100%}
.fb_dialog_vert_left{margin-left:-10px}
.fb_dialog_vert_right{right:0;margin-right:-10px}
.fb_dialog_horiz_top,
.fb_dialog_horiz_bottom{width:100%;height:10px}
.fb_dialog_horiz_top{margin-top:-10px}
.fb_dialog_horiz_bottom{bottom:0;margin-bottom:-10px}
.fb_dialog_iframe{line-height:0}
.fb_dialog_content .dialog_title{background:#6d84b4;border:1px solid #3b5998;color:#fff;font-size: 14px;font-weight:bold;margin:0}
.fb_dialog_content .dialog_title > span{background:url(https://web.archive.org/web/20111007131715/http://static.ak.fbcdn.net/rsrc.php/v1/yd/r/Cou7n-nqK52.gif)
no-repeat 5px 50%;float:left;padding:5px 0 7px 26px}
body.fb_hidden{-webkit-transform:none;height:100%;margin:0;left:-10000px;overflow:visible;position:absolute;top:-10000px;width:100%
}
.fb_dialog.fb_dialog_mobile.loading{background:url(https://web.archive.org/web/20111007131715/http://static.ak.fbcdn.net/rsrc.php/v1/yO/r/_j03izEX40U.gif)
white no-repeat 50% 50%;min-height:100%;min-width:100%;overflow:hidden;position:absolute;top:0;z-index:10001}
.fb_dialog.fb_dialog_mobile.loading.centered{max-height:590px;min-height:590px;max-width:500px;min-width:500px}
#fb-root #fb_dialog_ipad_overlay{background:rgba(0, 0, 0, .45);position:absolute;left:0;top:0;width:100%;min-height:100%;z-index:10000}
#fb-root #fb_dialog_ipad_overlay.hidden{display:none}
.fb_dialog.fb_dialog_mobile.loading iframe{visibility:hidden}
.fb_dialog_content .dialog_header{-webkit-box-shadow:white 0 1px 1px -1px inset;background:-webkit-gradient(linear, 0 0, 0 100%, from(#738ABA), to(#2C4987));border-bottom:1px solid;border-color:#1d4088;color:#fff;font:14px Helvetica, sans-serif;font-weight:bold;text-overflow:ellipsis;text-shadow:rgba(0, 30, 84, .296875) 0 -1px 0;vertical-align:middle
white-space:nowrap}
.fb_dialog_content .dialog_header table{-webkit-font-smoothing:subpixel-antialiased;height:43px;width:100%
}
.fb_dialog_content .dialog_header td.header_left{font-size: 12px;padding-left:5px;vertical-align:middle;width:60px
}
.fb_dialog_content .dialog_header td.header_right{font-size: 12px;padding-right:5px;vertical-align:middle;width:60px
}
.fb_dialog_content .touchable_button{background:-webkit-gradient(linear, 0 0, 0 100%, from(#4966A6),
color-stop(0.5, #355492), to(#2A4887));border:1px solid #29447e;-webkit-background-clip:padding-box;-webkit-border-radius:3px;-webkit-box-shadow:rgba(0, 0, 0, .117188) 0 1px 1px inset,
rgba(255, 255, 255, .167969) 0 1px 0;display:inline-block;margin-top:3px;max-width:85px;line-height:18px;padding:4px 12px;position:relative}
.fb_dialog_content .dialog_header .touchable_button input{border:none;background:none;color:#fff;font:12px Helvetica, sans-serif;font-weight:bold;margin:2px -12px;padding:2px 6px 3px 6px;text-shadow:rgba(0, 30, 84, .296875) 0 -1px 0}
.fb_dialog_content .dialog_header .header_center{color:#fff;font-size: 16px;font-weight:bold;line-height:18px;text-align:center;vertical-align:middle}
.fb_dialog_content .dialog_content{background:url(https://web.archive.org/web/20111007131715/http://static.ak.fbcdn.net/rsrc.php/v1/y9/r/jKEcVPZFk-2.gif) no-repeat 50% 50%;border:1px solid #555;border-bottom:0;border-top:0;height:150px}
.fb_dialog_content .dialog_footer{background:#f2f2f2;border:1px solid #555;border-top-color:#ccc;height:40px}
#fb_dialog_loader_close{float:left}
.fb_dialog.fb_dialog_mobile .fb_dialog_close_button{text-shadow:rgba(0, 30, 84, .296875) 0 -1px 0}
.fb_dialog.fb_dialog_mobile .fb_dialog_close_icon{visibility:hidden}
.fb_iframe_widget{position:relative;display:-moz-inline-block;display:inline-block}
.fb_iframe_widget iframe{position:relative;vertical-align:text-bottom}
.fb_iframe_widget span{position:relative}
.fb_hide_iframes iframe{position:relative;left:-10000px}
.fb_iframe_widget_loader{position:relative;display:inline-block}
.fb_iframe_widget_loader iframe{min-height:32px;z-index:2;zoom:1}
.fb_iframe_widget_loader .FB_Loader{background:url(https://web.archive.org/web/20111007131715/http://static.ak.fbcdn.net/rsrc.php/v1/y9/r/jKEcVPZFk-2.gif) no-repeat;height:32px;width:32px;margin-left:-16px;position:absolute;left:50%;z-index:4}
.fb_button_simple,
.fb_button_simple_rtl{background-image:url(https://web.archive.org/web/20111007131715/http://static.ak.fbcdn.net/rsrc.php/v1/yH/r/eIpbnVKI9lR.png);background-repeat:no-repeat;cursor:pointer;outline:none;text-decoration:none}
.fb_button_simple_rtl{background-position:right 0}
.fb_button_simple .fb_button_text{margin:0 0 0 20px;padding-bottom:1px}
.fb_button_simple_rtl .fb_button_text{margin:0 10px 0 0}
a.fb_button_simple:hover .fb_button_text,
a.fb_button_simple_rtl:hover .fb_button_text,
.fb_button_simple:hover .fb_button_text,
.fb_button_simple_rtl:hover .fb_button_text{text-decoration:underline}
.fb_button,
.fb_button_rtl{background:#29447e url(https://web.archive.org/web/20111007131715/http://static.ak.fbcdn.net/rsrc.php/v1/yL/r/FGFbc80dUKj.png);background-repeat:no-repeat;cursor:pointer;display:inline-block;padding:0 0 0 1px;text-decoration:none;outline:none}
.fb_button .fb_button_text,
.fb_button_rtl .fb_button_text{background:#5f78ab url(https://web.archive.org/web/20111007131715/http://static.ak.fbcdn.net/rsrc.php/v1/yL/r/FGFbc80dUKj.png);border-top:solid 1px #879ac0;border-bottom:solid 1px #1a356e;color:#fff;display:block;font-family:"lucida grande",tahoma,verdana,arial,sans-serif;font-weight:bold;padding:2px 6px 3px 6px;margin:1px 1px 0 21px;text-shadow:none}
a.fb_button,
a.fb_button_rtl,
.fb_button,
.fb_button_rtl{text-decoration:none}
a.fb_button:active .fb_button_text,
a.fb_button_rtl:active .fb_button_text,
.fb_button:active .fb_button_text,
.fb_button_rtl:active .fb_button_text{border-bottom:solid 1px #29447e;border-top:solid 1px #45619d;background:#4f6aa3;text-shadow:none}
.fb_button_xlarge,
.fb_button_xlarge_rtl{background-position:left -60px;font-size: 24px;line-height:30px}
.fb_button_xlarge .fb_button_text{padding:3px 8px 3px 12px;margin-left:38px}
a.fb_button_xlarge:active{background-position:left -99px}
.fb_button_xlarge_rtl{background-position:right -268px}
.fb_button_xlarge_rtl .fb_button_text{padding:3px 8px 3px 12px;margin-right:39px}
a.fb_button_xlarge_rtl:active{background-position:right -307px}
.fb_button_large,
.fb_button_large_rtl{background-position:left -138px;font-size: 13px;line-height:16px}
.fb_button_large .fb_button_text{margin-left:24px;padding:2px 6px 4px 6px}
a.fb_button_large:active{background-position:left -163px}
.fb_button_large_rtl{background-position:right -346px}
.fb_button_large_rtl .fb_button_text{margin-right:25px}
a.fb_button_large_rtl:active{background-position:right -371px}
.fb_button_medium,
.fb_button_medium_rtl{background-position:left -188px;font-size: 11px;line-height:14px}
a.fb_button_medium:active{background-position:left -210px}
.fb_button_medium_rtl{background-position:right -396px}
.fb_button_text_rtl,
.fb_button_medium_rtl .fb_button_text{padding:2px 6px 3px 6px;margin-right:22px}
a.fb_button_medium_rtl:active{background-position:right -418px}
.fb_button_small,
.fb_button_small_rtl{background-position:left -232px;font-size: 10px;line-height:10px}
.fb_button_small .fb_button_text{padding:2px 6px 3px;margin-left:17px}
a.fb_button_small:active,
.fb_button_small:active{background-position:left -250px}
.fb_button_small_rtl{background-position:right -440px}
.fb_button_small_rtl .fb_button_text{padding:2px 6px;margin-right:18px}
a.fb_button_small_rtl:active{background-position:right -458px}
.fb_share_count_wrapper{position:relative;float:left}
.fb_share_count{background:#b0b9ec none repeat scroll 0 0;color:#333;font-family:"lucida grande", tahoma, verdana, arial, sans-serif;text-align:center}
.fb_share_count_inner{background:#e8ebf2;display:block}
.fb_share_count_right{margin-left:-1px;display:inline-block}
.fb_share_count_right .fb_share_count_inner{border-top:solid 1px #e8ebf2;border-bottom:solid 1px #b0b9ec;margin:1px 1px 0 1px;font-size: 10px;line-height:10px;padding:2px 6px 3px;font-weight:bold}
.fb_share_count_top{display:block;letter-spacing:-1px;line-height:34px;margin-bottom:7px;font-size: 22px;border:solid 1px #b0b9ec}
.fb_share_count_nub_top{border:none;display:block;position:absolute;left:7px;top:35px;margin:0;padding:0;width:6px;height:7px;background-repeat:no-repeat;background-image:url(https://web.archive.org/web/20111007131715/http://static.ak.fbcdn.net/rsrc.php/v1/yU/r/bSOHtKbCGYI.png)}
.fb_share_count_nub_right{border:none;display:inline-block;padding:0;width:5px;height:10px;background-repeat:no-repeat;background-image:url(https://web.archive.org/web/20111007131715/http://static.ak.fbcdn.net/rsrc.php/v1/yX/r/i_oIVTKMYsL.png);vertical-align:top;background-position:right 5px;z-index:10;left:2px;margin:0 2px 0 0;position:relative}
.fb_share_no_count{display:none}
.fb_share_size_Small .fb_share_count_right .fb_share_count_inner{font-size: 10px}
.fb_share_size_Medium .fb_share_count_right .fb_share_count_inner{font-size: 11px;padding:2px 6px 3px;letter-spacing:-1px;line-height:14px}
.fb_share_size_Large .fb_share_count_right .fb_share_count_inner{font-size: 13px;line-height:16px;padding:2px 6px 4px;font-weight:normal;letter-spacing:-1px}
.fb_share_count_hidden .fb_share_count_nub_top,
.fb_share_count_hidden .fb_share_count_top,
.fb_share_count_hidden .fb_share_count_nub_right,
.fb_share_count_hidden .fb_share_count_right{visibility:hidden}
.fb_connect_bar_container div,
.fb_connect_bar_container span,
.fb_connect_bar_container a,
.fb_connect_bar_container img,
.fb_connect_bar_container strong{background:none;border-spacing:0;border:0;direction:ltr;font-style:normal;font-variant:normal;letter-spacing:normal;line-height:1;margin:0;overflow:visible;padding:0;text-align:left;text-decoration:none;text-indent:0;text-shadow:none;text-transform:none;visibility:visible;white-space:normal;word-spacing:normal;vertical-align:baseline}
.fb_connect_bar_container{position:fixed;left:0 !important;right:0 !important;height:42px !important;padding:0 25px !important;margin:0 !important;vertical-align:middle !important;border-bottom:1px solid #333 !important;background:#3b5998 !important;z-index:99999999 !important;overflow:hidden !important}
.fb_connect_bar_container_ie6{position:absolute;top:expression(document.compatMode=="CSS1Compat"? document.documentElement.scrollTop+"px":body.scrollTop+"px")}
.fb_connect_bar{position:relative;margin:auto;height:100%;width:100%;padding:6px 0 0 0 !important;background:none;color:#fff !important;font-family:"lucida grande", tahoma, verdana, arial, sans-serif !important;font-size: 13px !important;font-style:normal !important;font-variant:normal !important;font-weight:normal !important;letter-spacing:normal !important;line-height:1 !important;text-decoration:none !important;text-indent:0 !important;text-shadow:none !important;text-transform:none !important;white-space:normal !important;word-spacing:normal !important}
.fb_connect_bar a:hover{color:#fff}
.fb_connect_bar .fb_profile img{height:30px;width:30px;vertical-align:middle;margin:0 6px 5px 0}
.fb_connect_bar div a,
.fb_connect_bar span,
.fb_connect_bar span a{color:#bac6da;font-size: 11px;text-decoration:none}
.fb_connect_bar .fb_buttons{float:right;margin-top:7px}
.fb_edge_widget_with_comment{position:relative;*z-index:1000}
.fb_edge_widget_with_comment span.fb_edge_comment_widget{position:absolute}
.fb_edge_widget_with_comment span.fb_edge_comment_widget iframe.fb_ltr{left:-4px}
.fb_edge_widget_with_comment span.fb_edge_comment_widget iframe.fb_rtl{left:2px}
.fb_edge_widget_with_comment span.fb_send_button_form_widget{left:0;z-index:1}
.fb_edge_widget_with_comment span.fb_send_button_form_widget .FB_Loader{left:0;top:1px;margin-top:6px;margin-left:0;background-position:50% 50%;background-color:#fff;height:150px;width:394px;border:1px #666 solid;border-bottom:2px solid #283e6c;z-index:1}
.fb_edge_widget_with_comment span.fb_send_button_form_widget.dark .FB_Loader{background-color:#000;border-bottom:2px solid #ccc}
.fb_edge_widget_with_comment span.fb_send_button_form_widget.siderender
.FB_Loader{margin-top:0}
.fbpluginrecommendationsbar{position:fixed !important;bottom:0;z-index:999}
.fbpluginrecommendationsbarleft{left:10px}
.fbpluginrecommendationsbarright{right:10px}
</style></head>
<body><iframe id="a2apage_sm_ifr" height="1" width="1" transparency="true" allowtransparency="true" frameborder="0" src="./aync_files/sm6.html" style="border: 0px; left: 0px; top: 0px; position: absolute; z-index: 100000;" allow="autoplay &#39;self&#39;; fullscreen &#39;self&#39;" data-ruffle-polyfilled=""></iframe><div style="position: static;"><div id="a2apage_dropdown" class="a2a_menu" onmouseover="a2a.onMouseOver_stay()" onmouseout="a2a.onMouseOut_delay()"><div class="a2a_menu_inside"><table><tbody><tr><td><div id="a2apage_title_container" class="a2a_menu_title_container" style="display:none"><input id="a2apage_title" class="a2a_menu_title"></div><div class="a2apage_wide a2a_wide"><div class="a2a_tabs"><div id="a2apage_DEFAULT" class="a2a_tab_selected" style="margin-right:1px" onclick="return a2a.tabs(&#39;DEFAULT&#39;)"><span class="a2a_i_share">Empfehlen / Speichern</span></div></div><div class="a2a_tabs"><div title="per E-Mail empfehlen" id="a2apage_EMAIL" style="margin-right:1px" onclick="return a2a.tabs(&#39;EMAIL&#39;,true)"><span class="a2a_i_email">E-Mail</span></div></div><div class="a2a_tabs"><div onclick="a2a.bmBrowser()" title="Seite den Bookmarks hinzufügen" id="a2apage_BROWSER" style="margin-left:1px"><span class="a2a_i_bookmark">Bookmark</span></div></div></div><div class="a2a_clear"></div><div id="a2apage_find_container" class="a2a_menu_find_container"><input id="a2apage_find" class="a2a_menu_find" type="text" onclick="a2a.focus_find()" onkeyup="a2a.do_find()" autocomplete="off" onfocus="a2a[&#39;page&#39;].find_focused=true;a2a.onMouseOver_stay()" onblur="a2a.blur_find()" title="Um weitere Dienste ergänzen"><span id="a2apage_find_icon" class="a2a_i_find" onclick="a2a.focus_find()"></span></div><table id="a2apage_cols_container" class="a2a_cols_container"><tbody><tr><td class="a2a_cols"><div id="a2apage_col1"><a id="a2apage_facebook" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank"><span class="a2a_i_facebook">Facebook</span></a><a id="a2apage_delicious" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank"><span class="a2a_i_delicious">Delicious</span></a><a id="a2apage_google_bookmarks" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank"><span class="a2a_i_google">Google Bookmarks</span></a><a id="a2apage_myspace" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank"><span class="a2a_i_myspace">MySpace</span></a><a id="a2apage_live" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank"><span class="a2a_i_live">Messenger</span></a><a id="a2apage_yahoo_bookmarks" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_yahoo">Yahoo Bookmarks</span></a><a id="a2apage_mister_wong" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_mister-wong">Mister-Wong</span></a><a id="a2apage_google_reader" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_reader">Google Reader</span></a><a id="a2apage_xing" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_default">XING</span></a><a id="a2apage_netvibes_share" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_netvibes">Netvibes Share</span></a><a id="a2apage_posterous" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_posterous">Posterous</span></a><a id="a2apage_business_exchange" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_default">Business Exchange</span></a><a id="a2apage_technet" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_technet">TechNet</span></a><a id="a2apage_arto" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_arto">Arto</span></a><a id="a2apage_smaknews" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_smaknews">SmakNews</span></a><a id="a2apage_aim" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_aim">AIM</span></a><a id="a2apage_identi_ca" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_identica">Identi.ca</span></a><a id="a2apage_blogger_post" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_blogger">Blogger Post</span></a><a id="a2apage_box_net" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_box">Box.net</span></a><a id="a2apage_netlog" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_netlog">Netlog</span></a><a id="a2apage_shoutwire" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_shoutwire">Shoutwire</span></a><a id="a2apage_jumptags" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_jumptags">Jumptags</span></a><a id="a2apage_funp" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_funp">FunP</span></a><a id="a2apage_phonefavs" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_phonefavs">PhoneFavs</span></a><a id="a2apage_netvouz" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_netvouz">Netvouz</span></a><a id="a2apage_diigo" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_diigo">Diigo</span></a><a id="a2apage_blogmarks" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_blogmarks">BlogMarks</span></a><a id="a2apage_startaid" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_startaid">StartAid</span></a><a id="a2apage_khabbr" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_khabbr">Khabbr</span></a><a id="a2apage_yoolink" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_yoolink">Yoolink</span></a><a id="a2apage_technotizie" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_technotizie">Technotizie</span></a><a id="a2apage_multiply" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_multiply">Multiply</span></a><a id="a2apage_plaxo_pulse" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_plaxo">Plaxo Pulse</span></a><a id="a2apage_squidoo" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_squidoo">Squidoo</span></a><a id="a2apage_blinklist" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_blinklist">Blinklist</span></a><a id="a2apage_yigg" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_yigg">YiGG</span></a><a id="a2apage_segnalo" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_segnalo">Segnalo</span></a><a id="a2apage_youmob" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_youmob">YouMob</span></a><a id="a2apage_fark" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_fark">Fark</span></a><a id="a2apage_jamespot" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_jamespot">Jamespot</span></a><a id="a2apage_twiddla" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_twiddla">Twiddla</span></a><a id="a2apage_mindbodygreen" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_mindbodygreen">MindBodyGreen</span></a><a id="a2apage_hugg" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_hugg">Hugg</span></a><a id="a2apage_nowpublic" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_nowpublic">NowPublic</span></a><a id="a2apage_livejournal" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_livejournal">LiveJournal</span></a><a id="a2apage_hellotxt" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_hellotxt">HelloTxt</span></a><a id="a2apage_yample" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_yample">Yample</span></a><a id="a2apage_linkatopia" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_linkatopia">Linkatopia</span></a><a id="a2apage_linkedin" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_linkedin">LinkedIn</span></a><a id="a2apage_ask_com_mystuff" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_ask">Ask.com MyStuff</span></a><a id="a2apage_maple" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_maple">Maple</span></a><a id="a2apage_connotea" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_connotea">Connotea</span></a><a id="a2apage_mylinkvault" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_mylinkvault">MyLinkVault</span></a><a id="a2apage_sphinn" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_sphinn">Sphinn</span></a><a id="a2apage_care2_news" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_care2">Care2 News</span></a><a id="a2apage_sphere" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_sphere">Sphere</span></a><a id="a2apage_gabbr" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_gabbr">Gabbr</span></a><a id="a2apage_tagza" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_tagza">Tagza</span></a><a id="a2apage_vodpod" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_default">VodPod</span></a><a id="a2apage_amazon_wish_list" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_amazon">Amazon Wish List</span></a><a id="a2apage_read_it_later" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_default">Read It Later</span></a><a id="a2apage_email" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_email">Email</span></a></div><div id="a2apage_2_col1" style="display:none"><a id="a2apage_yahoo_mail" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank"><span class="a2a_i_yahoo">Yahoo Mail</span></a><a id="a2apage_aol_mail" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank"><span class="a2a_i_aol">AOL Mail</span></a></div></td><td class="a2a_cols"><div id="a2apage_col2"><a id="a2apage_twitter" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank"><span class="a2a_i_twitter">Twitter</span></a><a id="a2apage_digg" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank"><span class="a2a_i_digg">Digg</span></a><a id="a2apage_google_buzz" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank"><span class="a2a_i_google_buzz">Google Buzz</span></a><a id="a2apage_reddit" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank"><span class="a2a_i_reddit">Reddit</span></a><a id="a2apage_stumbleupon" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank"><span class="a2a_i_stumbleupon">StumbleUpon</span></a><a id="a2apage_bebo" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_bebo">Bebo</span></a><a id="a2apage_wordpress" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_wordpress">WordPress</span></a><a id="a2apage_orkut" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_orkut">Orkut</span></a><a id="a2apage_evernote" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_evernote">Evernote</span></a><a id="a2apage_strands" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_strands">Strands</span></a><a id="a2apage_dailyme" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_dailyme">DailyMe</span></a><a id="a2apage_msdn" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_msdn">MSDN</span></a><a id="a2apage_expression" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_expression">Expression</span></a><a id="a2apage_tipd" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_tipd">Tipd</span></a><a id="a2apage_plurk" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_plurk">Plurk</span></a><a id="a2apage_yahoo_messenger" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_yim">Yahoo Messenger</span></a><a id="a2apage_mozillaca" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_mozillaca">Mozillaca</span></a><a id="a2apage_typepad_post" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_typepad">TypePad Post</span></a><a id="a2apage_mixx" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_mixx">Mixx</span></a><a id="a2apage_technorati_favorites" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_technorati">Technorati Favorites</span></a><a id="a2apage_citeulike" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_citeulike">CiteULike</span></a><a id="a2apage_hemidemi" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_hemidemi">Hemidemi</span></a><a id="a2apage_instapaper" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_instapaper">Instapaper</span></a><a id="a2apage_xerpi" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_xerpi">Xerpi</span></a><a id="a2apage_wink" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_wink">Wink</span></a><a id="a2apage_bibsonomy" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_bibsonomy">BibSonomy</span></a><a id="a2apage_tailrank" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_tailrank">Tailrank</span></a><a id="a2apage_kledy" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_kledy">Kledy</span></a><a id="a2apage_meneame" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_meneame">Meneame</span></a><a id="a2apage_bookmarks_fr" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_bookmarks_fr">Bookmarks.fr</span></a><a id="a2apage_newsvine" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_newsvine">NewsVine</span></a><a id="a2apage_friendfeed" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_friendfeed">FriendFeed</span></a><a id="a2apage_ping" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_ping">Ping</span></a><a id="a2apage_protopage_bookmarks" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_protopage">Protopage Bookmarks</span></a><a id="a2apage_faves" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_faves">Faves</span></a><a id="a2apage_webnews" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_webnews">Webnews</span></a><a id="a2apage_pusha" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_pusha">Pusha</span></a><a id="a2apage_slashdot" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_slashdot">Slashdot</span></a><a id="a2apage_allvoices" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_allvoices">Allvoices</span></a><a id="a2apage_imera_brazil" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_imera">Imera Brazil</span></a><a id="a2apage_linkagogo" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_linkagogo">LinkaGoGo</span></a><a id="a2apage_unalog" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_unalog">unalog</span></a><a id="a2apage_diglog" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_diglog">Diglog</span></a><a id="a2apage_tumblr" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_tumblr">Tumblr</span></a><a id="a2apage_current" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_current">Current</span></a><a id="a2apage_spurl" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_spurl">Spurl</span></a><a id="a2apage_oneview" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_oneview">Oneview</span></a><a id="a2apage_simpy" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_simpy">Simpy</span></a><a id="a2apage_buddymarks" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_buddymarks">BuddyMarks</span></a><a id="a2apage_viadeo" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_viadeo">Viadeo</span></a><a id="a2apage_wists" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_wists">Wists</span></a><a id="a2apage_backflip" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_backflip">Backflip</span></a><a id="a2apage_sitejot" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_sitejot">SiteJot</span></a><a id="a2apage_dzone" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_dzone">DZone</span></a><a id="a2apage_hyves" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_hyves">Hyves</span></a><a id="a2apage_bitty_browser" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_bitty">Bitty Browser</span></a><a id="a2apage_symbaloo_feeds" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_symbaloo">Symbaloo Feeds</span></a><a id="a2apage_folkd" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_folkd">Folkd</span></a><a id="a2apage_newstrust" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_newstrust">NewsTrust</span></a><a id="a2apage_printfriendly" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_printfriendly">PrintFriendly</span></a><a id="a2apage_tuenti" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_default">Tuenti</span></a><a id="a2apage_rediff" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank" style="display: none;"><span class="a2a_i_default">Rediff MyPage</span></a></div><div id="a2apage_2_col2" style="display:none"><a id="a2apage_google_gmail" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank"><span class="a2a_i_gmail">Google Gmail</span></a><a id="a2apage_hotmail" rel="nofollow" class="a2a_i" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/" target="_blank"><span class="a2a_i_live">Hotmail</span></a></div></td></tr></tbody></table><div id="a2apage_note_BROWSER" class="a2a_note" style="display:none"></div><div id="a2apage_note_EMAIL" class="a2a_note" style="display:none"><div class="a2a_hr"></div><div class="a2a_note_note">Von E-Mail-Adresse oder E-Mail-Programm senden:</div><div class="a2a_nowrap"><a href="https://web.archive.org/web/20111007131715mp_/http://blog.aztec-project.org/" id="a2apage_any_email" class="a2a_i a2a_emailer" target="_blank" servicename="Email (form)" safename="email_form" customserviceuri="https://web.archive.org/web/20111007123523/http://www.addtoany.com/email?linkurl=A2A_LINKURL_ENC&amp;linkname=A2A_LINKNAME_ENC" onkeydown="a2a.linker(this)" onmousedown="a2a.linker(this)" onmouseup="a2a.a2a_track(&#39;testShare1&#39;, &#39;Email&#39;);if(a2a.c.track_pub)a2a.a2a_track(&#39;z_&#39;+a2a.c.track_pub+&#39;Share&#39;, &#39;Email&#39;)" style="margin-right:9px"><span class="a2a_i_email">Any email</span></a><a href="https://web.archive.org/web/20111007131715mp_/http://blog.aztec-project.org/" class="a2a_i a2a_emailer a2a_email_client" id="a2apage_email_client" servicename="Email (mailto)" safename="email_mailto" customserviceuri="mailto:?subject=A2A_LINKNAME_ENC&amp;body=A2A_LINKURL_ENC" onkeydown="a2a.linker(this)" onmousedown="a2a.linker(this)" onmouseup="a2a.a2a_track(&#39;testShare1&#39;, &#39;Email&#39;);if(a2a.c.track_pub)a2a.a2a_track(&#39;z_&#39;+a2a.c.track_pub+&#39;Share&#39;, &#39;Email&#39;)" style="margin-left:9px"><span class="a2a_i_outlook">&nbsp;</span><span class="a2a_i_windows_mail">&nbsp;</span><span class="a2a_i_apple_mail">&nbsp;</span><span class="a2a_i_thunderbird">&nbsp;</span></a></div></div><div class="a2apage_wide a2a_wide"><a href="javascript:void(0)" id="a2apage_show_more_less" class="a2a_menu_show_more_less" onclick="return a2a.show_more_less(0)" onmouseover="img=this.firstChild;if(a2a.c.color_arrow_hover==&#39;fff&#39;){if(img.className.indexOf(&#39;_wt&#39;)==-1)img.className+=&#39;_wt&#39;}else img.className=img.className.replace(/_wt/,&#39;&#39;)" onmouseout="img=this.firstChild;if(a2a.c.color_arrow==&#39;fff&#39;){if(img.className.indexOf(&#39;_wt&#39;)==-1)img.className+=&#39;_wt&#39;}else img.className=img.className.replace(/_wt/,&#39;&#39;)" title="zeige alle"><span class="a2a_i_darr"></span></a></div><div class="a2a_menu_powered_by" id="a2apage_powered_by" onmouseover="if(!window.opera)this.innerHTML=this.orig;this.style.textAlign=&#39;center&#39;"><a href="https://web.archive.org/web/20111007123523/http://www.addtoany.com/" target="_blank" title="Share Buttons">AddToAny</a> by <a href="https://web.archive.org/web/20111007123523/http://lockerz.com/" target="_blank" title="Social Commerce">Lockerz</a></div></td></tr></tbody></table></div></div></div><!-- BEGIN WAYBACK TOOLBAR INSERT -->
<script>__wm.rw(0);</script>
<div id="wm-ipp-base" lang="en" style="display: block; direction: ltr;"><template shadowrootmode="closed"><div id="wm-ipp" style="position:fixed;left:0;top:0;right:0;">
<div id="donato" style="position:relative;width:100%;">
<div id="donato-base">
<iframe id="donato-if" src="https://archive.org/includes/donate.php?as_page=1&amp;platform=wb&amp;referer=https%3A//web.archive.org/web/20111007131715/http%3A//blog.aztec-project.org/2010/05/05/asynchrone-kommunikation-mit-dem-async-pattern/" scrolling="no" frameborder="0" style="width:100%; height:100%">
</iframe>
</div>
</div><div id="wm-ipp-inside">
<div id="wm-toolbar" style="position:relative;display:flex;flex-flow:row nowrap;justify-content:space-between;">
<div id="wm-logo" style="/*width:110px;*/padding-top:12px;">
<a href="https://web.archive.org/web/" title="Wayback Machine home page"><img src="https://web.archive.org/_static/images/toolbar/wayback-toolbar-logo-200.png" srcset="/_static/images/toolbar/wayback-toolbar-logo-100.png, /_static/images/toolbar/wayback-toolbar-logo-150.png 1.5x, /_static/images/toolbar/wayback-toolbar-logo-200.png 2x" alt="Wayback Machine" style="width:100px" border="0"></a>
</div>
<div class="c" style="display:flex;flex-flow:column nowrap;justify-content:space-between;flex:1;">
<form class="u" style="display:flex;flex-direction:row;flex-wrap:nowrap;" target="_top" method="get" action="https://web.archive.org/web/submit" name="wmtb" id="wmtb"><input type="text" name="url" id="wmtbURL" value="http://blog.aztec-project.org/2010/05/05/asynchrone-kommunikation-mit-dem-async-pattern/" onfocus="this.focus();this.select();" style="flex:1;" autocomplete="off"><input type="hidden" name="type" value="replay"><input type="hidden" name="date" value="20111007131715"><input type="submit" value="Go">
</form>
<div style="display:flex;flex-flow:row nowrap;align-items:flex-end;">
<div class="s" id="wm-nav-captures" style="flex:1;"><a class="t" href="https://web.archive.org/web/*/http://blog.aztec-project.org/2010/05/05/asynchrone-kommunikation-mit-dem-async-pattern/" title="See a list of every capture for this URL">13 captures</a><div class="r" title="Timespan for captures of this URL">14 May 2010 - 19 Apr 2021</div></div>
<div class="k">
<a href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/2010/05/05/asynchrone-kommunikation-mit-dem-async-pattern/" id="wm-graph-anchor">
<div id="wm-ipp-sparkline" title="Explore captures for this URL" style="position: relative">
<canvas id="wm-sparkline-canvas" width="750" height="27" border="0"></canvas>
<div class="yt" style="display: none; width: 25px; height: 27px;"></div><div class="mt" style="display: none; width: 2px; height: 27px;"></div></div>
</a>
</div>
</div>
</div>
<div class="n">
<table>
<tbody>
<!-- NEXT/PREV MONTH NAV AND MONTH INDICATOR -->
<tr class="m">
<td class="b" nowrap="nowrap"><a href="https://web.archive.org/web/20110824132305/http://blog.aztec-project.org:80/2010/05/05/asynchrone-kommunikation-mit-dem-async-pattern" title="24 Aug 2011"><strong>Aug</strong></a></td>
<td class="c" id="displayMonthEl" title="You are here: 13:17:15 Oct 07, 2011">OCT</td>
<td class="f" nowrap="nowrap"><a href="https://web.archive.org/web/20130923030624/http://blog.aztec-project.org/2010/05/05/asynchrone-kommunikation-mit-dem-async-pattern/" title="23 Sep 2013"><strong>Sep</strong></a></td>
</tr>
<!-- NEXT/PREV CAPTURE NAV AND DAY OF MONTH INDICATOR -->
<tr class="d">
<td class="b" nowrap="nowrap"><a href="https://web.archive.org/web/20110824132305/http://blog.aztec-project.org:80/2010/05/05/asynchrone-kommunikation-mit-dem-async-pattern" title="13:23:05 Aug 24, 2011"><img src="https://web.archive.org/_static/images/toolbar/wm_tb_prv_on.png" alt="Previous capture" width="14" height="16" border="0"></a></td>
<td class="c" id="displayDayEl" style="width:34px;font-size:22px;white-space:nowrap;" title="You are here: 13:17:15 Oct 07, 2011">07</td>
<td class="f" nowrap="nowrap"><a href="https://web.archive.org/web/20130923030624/http://blog.aztec-project.org/2010/05/05/asynchrone-kommunikation-mit-dem-async-pattern/" title="03:06:24 Sep 23, 2013"><img src="https://web.archive.org/_static/images/toolbar/wm_tb_nxt_on.png" alt="Next capture" width="14" height="16" border="0"></a></td>
</tr>
<!-- NEXT/PREV YEAR NAV AND YEAR INDICATOR -->
<tr class="y">
<td class="b" nowrap="nowrap"><a href="https://web.archive.org/web/20100514031431/http://blog.aztec-project.org:80/2010/05/05/asynchrone-kommunikation-mit-dem-async-pattern/" title="14 May 2010"><strong>2010</strong></a></td>
<td class="c" id="displayYearEl" title="You are here: 13:17:15 Oct 07, 2011">2011</td>
<td class="f" nowrap="nowrap"><a href="https://web.archive.org/web/20130923030624/http://blog.aztec-project.org/2010/05/05/asynchrone-kommunikation-mit-dem-async-pattern/" title="23 Sep 2013"><strong>2013</strong></a></td>
</tr>
</tbody>
</table>
</div>
<div class="r" style="display:flex;flex-flow:column nowrap;align-items:flex-end;justify-content:space-between;">
<div id="wm-btns" style="text-align:right;height:23px;">
<span class="xxs">
<div id="wm-save-snapshot-success">success</div>
<div id="wm-save-snapshot-fail">fail</div>
<a id="wm-save-snapshot-open" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/2010/05/05/asynchrone-kommunikation-mit-dem-async-pattern/#" title="Share via My Web Archive" style="display: none;">
<span class="iconochive-web"></span>
</a>
<a href="https://archive.org/account/login.php" title="Sign In" id="wm-sign-in" style="display: inline-block;">
<span class="iconochive-person"></span>
</a>
<span id="wm-save-snapshot-in-progress" class="iconochive-web" style="display: none;"></span>
</span>
<a class="xxs" href="http://faq.web.archive.org/" title="Get some help using the Wayback Machine" style="top:-6px;"><span class="iconochive-question" style="color:rgb(87,186,244);font-size:160%;"></span></a>
<a id="wm-tb-close" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/2010/05/05/asynchrone-kommunikation-mit-dem-async-pattern/#close" style="top:-2px;" title="Close the toolbar"><span class="iconochive-remove-circle" style="color:#888888;font-size:240%;"></span></a>
</div>
<div id="wm-share" class="xxs">
<a href="https://web.archive.org/web/20111007131715/http://web.archive.org/screenshot/http://blog.aztec-project.org/2010/05/05/asynchrone-kommunikation-mit-dem-async-pattern/" id="wm-screenshot" title="screenshot" style="visibility: hidden;">
<span class="wm-icon-screen-shot"></span>
</a>
<a href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/2010/05/05/asynchrone-kommunikation-mit-dem-async-pattern/#" id="wm-video" title="video">
<span class="iconochive-movies"></span>
</a>
<a id="wm-share-facebook" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/2010/05/05/asynchrone-kommunikation-mit-dem-async-pattern/#" data-url="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org:80/2010/05/05/asynchrone-kommunikation-mit-dem-async-pattern/" title="Share on Facebook" style="margin-right:5px;" target="_blank"><span class="iconochive-facebook" style="color:#3b5998;font-size:160%;"></span></a>
<a id="wm-share-twitter" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/2010/05/05/asynchrone-kommunikation-mit-dem-async-pattern/#" data-url="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org:80/2010/05/05/asynchrone-kommunikation-mit-dem-async-pattern/" title="Share on Twitter" style="margin-right:5px;" target="_blank"><span class="iconochive-twitter" style="color:#1dcaff;font-size:160%;"></span></a>
</div>
<div style="padding-right:2px;text-align:right;white-space:nowrap;">
<a id="wm-expand" class="wm-btn wm-closed" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/2010/05/05/asynchrone-kommunikation-mit-dem-async-pattern/#expand"><span id="wm-expand-icon" class="iconochive-down-solid"></span> <span class="xxs" style="font-size:80%;">About this capture</span></a>
</div>
</div>
</div>
<div id="wm-capinfo" style="border-top:1px solid #777;display:none; overflow: hidden">
<div id="wm-capinfo-notice" source="api"></div>
<div id="wm-capinfo-collected-by">
<div style="background-color:#666;color:#fff;font-weight:bold;text-align:center">COLLECTED BY</div>
<div style="padding:3px;position:relative" id="wm-collected-by-content">
<div style="display:inline-block;vertical-align:top;width:50%;">
<span class="c-logo" style="background-image:url(https://archive.org/services/img/alexacrawls);"></span>
Organization: <a style="color:#33f;" href="https://archive.org/details/alexacrawls" target="_new"><span class="wm-title">Alexa Crawls</span></a>
<div style="max-height:75px;overflow:hidden;position:relative;">
<div style="position:absolute;top:0;left:0;width:100%;height:75px;background:linear-gradient(to bottom,rgba(255,255,255,0) 0%,rgba(255,255,255,0) 90%,rgba(255,255,255,255) 100%);"></div>
Starting in 1996, <a href="http://www.alexa.com/">Alexa Internet</a> has been donating their crawl data to the Internet Archive. Flowing in every day, these data are added to the <a href="http://web.archive.org/">Wayback Machine</a> after an embargo period.
</div>
</div>
<div style="display:inline-block;vertical-align:top;width:49%;">
<span class="c-logo" style="background-image:url(https://archive.org/services/img/alexacrawls)"></span>
<div>Collection: <a style="color:#33f;" href="https://archive.org/details/alexacrawls" target="_new"><span class="wm-title">Alexa Crawls</span></a></div>
<div style="max-height:75px;overflow:hidden;position:relative;">
<div style="position:absolute;top:0;left:0;width:100%;height:75px;background:linear-gradient(to bottom,rgba(255,255,255,0) 0%,rgba(255,255,255,0) 90%,rgba(255,255,255,255) 100%);"></div>
Starting in 1996, <a href="http://www.alexa.com/">Alexa Internet</a> has been donating their crawl data to the Internet Archive. Flowing in every day, these data are added to the <a href="http://web.archive.org/">Wayback Machine</a> after an embargo period.
</div>
</div>
</div>
</div>
<div id="wm-capinfo-timestamps">
<div style="background-color:#666;color:#fff;font-weight:bold;text-align:center" title="Timestamps for the elements of this page">TIMESTAMPS</div>
<div>
<div id="wm-capresources" style="margin:0 5px 5px 5px;max-height:250px;overflow-y:scroll !important"></div>
<div id="wm-capresources-loading" style="text-align:left;margin:0 20px 5px 5px;display:none"><img src="https://web.archive.org/_static/images/loading.gif" alt="loading"></div>
</div>
</div>
</div></div></div><link rel="stylesheet" type="text/css" href="./aync_files/banner-styles.css"><link rel="stylesheet" type="text/css" href="./aync_files/iconochive.css"><div class="wb-autocomplete-suggestions "></div></template>
</div><div id="wm-ipp-print">The Wayback Machine - https://web.archive.org/web/20111007131715/http://blog.aztec-project.org:80/2010/05/05/asynchrone-kommunikation-mit-dem-async-pattern/</div>
<script type="text/javascript">//<![CDATA[
__wm.bt(750,27,25,2,"web","http://blog.aztec-project.org/2010/05/05/asynchrone-kommunikation-mit-dem-async-pattern/","20111007131715",1996,"/_static/",["/_static/css/banner-styles.css?v=S1zqJCYt","/_static/css/iconochive.css?v=3PDvdIFv"], false);
__wm.rw(1);
//]]></script>
<!-- END WAYBACK TOOLBAR INSERT -->
<div id="page">
<div id="header" class="png">
<div id="headerimg">
<h1 class="blogname" id="blogname"><a href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/">build broken</a></h1><span class="blogname text-stroke-br">build broken</span><span class="blogname text-stroke-bl">build broken</span><span class="blogname text-stroke-tr">build broken</span><span class="blogname text-stroke-tl">build broken</span>
<h6 class="blogdesc" id="blogdesc">but we can fix it! Sometimes :)</h6><span class="blogdesc text-stroke-br">but we can fix it! Sometimes :)</span><span class="blogdesc text-stroke-bl">but we can fix it! Sometimes :)</span><span class="blogdesc text-stroke-tr">but we can fix it! Sometimes :)</span><span class="blogdesc text-stroke-tl">but we can fix it! Sometimes :)</span>
<ul class="pages png head_overlay">
<li class="page_item"><a href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/">Home</a></li>
<li class="page_item page-item-2"><a href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/about/" title="About">About</a></li>
</ul>
</div>
</div>
<div id="main" class="png">
<table>
<tbody><tr>
<td id="content" class="widecolumn">
<div class="navigation">
<div class="alignleft">«&nbsp;<a href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/2010/03/14/spreu-weizen-selectprogrammierer/" rel="prev">(Spreu + Weizen).Select(Programmierer)</a></div>
<div class="alignright"><a href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/2010/05/06/asynchrone-kommunikation-mit-dem-async-pattern-refactored/" rel="next">Asynchrone Kommunikation mit dem Async-Pattern (Refactored)</a>&nbsp;»</div>
</div>
<div class="post" id="post-961">
<div class="postinfo">
<div class="datestamp">
<div>
<span class="cal1 cal1x">Mai</span>
<span class="cal2">05</span>
<span class="cal3">2010</span>
</div>
</div>
<span class="switch-post">
<a href="javascript:toggleSidebars();" class="switch-sidebars"><img src="./aync_files/bullet_sidebars_hide.png" alt="" class="png"></a><a href="javascript:togglePost(961);" id="switch-post-961"><img src="./aync_files/bullet_toggle_minus.png" alt="" class="png"></a>
</span>
<h2 class="posttitle"><a href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/2010/05/05/asynchrone-kommunikation-mit-dem-async-pattern/" rel="bookmark" title="Permanent Link: Asynchrone Kommunikation mit dem Async-Pattern">Asynchrone Kommunikation mit dem Async-Pattern</a></h2>
<small>
Geschrieben von <a href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/author/tch/" title="Artikel von Thomas Christian">Thomas Christian</a> in <a href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/category/architektur/" title="Alle Artikel in Architektur ansehen" rel="category tag">Architektur</a>, <a href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/category/pattern/" title="Alle Artikel in Pattern ansehen" rel="category tag">Pattern</a>, <a href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/category/tipps/" title="Alle Artikel in Tipps ansehen" rel="category tag">Tipps</a> </small>
</div>
<div class="entry">
<p class="MsoNormal" style="text-align: justify;">Bevor ich anhand eines Beispiels zeige, wie man mit Hilfe des Async-Pattern ein asynchrone Kommunikation implementieren kann, möchte ich kurz beschreiben, wo der Unterschied zwischen der synchronen und der asynchronen Kommunikation liegt und wofür die asynchrone Kommunikation nützlich ist.</p>
<p class="MsoListParagraphCxSpFirst" style="margin-left: 35.45pt; text-align: justify;">
</p><p class="MsoListParagraphCxSpMiddle" style="margin-left: 0cm; text-align: justify;"><strong><span style="font-size: 12pt; line-height: 115%;">Synchrone Kommunikation</span></strong></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left: 0cm; text-align: justify;">Bei der synchronen Kommunikation handelt es sich um eine Echtzeit-Kommunikation. Das bedeutet, dass Anfragen und Antworten jeweils vollständig nacheinander abgearbeitet werden. Kommuniziert ein Prozess mit einem Webserver synchron, so ist der Prozess solange blockiert, bis er die vollständige Antwort vom Webserver erhalten hat.</p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left: 0cm; text-align: justify;">
</p><p class="MsoListParagraphCxSpMiddle" style="margin-left: 0cm; text-align: justify;"><strong><span style="font-size: 12pt; line-height: 115%;">Asynchrone Kommunikation</span></strong></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left: 0cm; text-align: justify;">Im Gegensatz zur synchronen Kommunikation handelt es sich bei der asynchronen Kommunikation nicht um eine Echtzeit-Kommunikation. Das bedeutet, dass bei der Kommunikation eines Prozesses mit einem Webserver der Prozess nicht blockiert. Der Prozess verschickt lediglich die Anfrage an den Webserver und kehrt danach sofort zur weiteren Prozessausführung zurück. Der Prozess geht dabei davon aus, dass die Anfrage an den Webservice korrekt gestellt wurde. Die Antwort wird dann zu einem unbestimmten Zeitpunkt vom Webservice geliefert, und zwar dann, wenn dieser mit der Abarbeitung der Anfrage fertig ist.</p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left: 0cm; text-align: justify;">
</p><p class="MsoListParagraphCxSpMiddle" style="margin-left: 0cm; text-align: justify;"><strong><span style="font-size: 12pt; line-height: 115%;">Warum Asynchrone Kommunikation</span></strong></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left: 0cm; text-align: justify;">Asynchrone Kommunikation bietet sich in unterschiedlichsten Situationen an. So ist es z.B. sinnvoll, dass eine WinForms-Anwendung asynchron mit einem Webservice kommuniziert, da der Haupt-Thread der WinForm-Anwendung sonst so lange blockiert wäre, bis der Webservice die Antwort auf die Anfrage liefert. Die Folge wäre, dass im Titel der Anwendung stehen würde, dass die Anwendung nicht antwortet (s. Abbildung 1). Viele Benutzer denken dass es sich bei dieser Meldung um einen Fehler im Programm handelt und beenden das Programm fix über den Task-Manager. Dabei lag es nur an der etwas länger dauernden Kommunikation zwischen der WinForm-Anwendung und dem Webservice.</p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left: 0cm; text-align: justify;">
</p><p class="MsoListParagraphCxSpMiddle" style="margin-left: 35.45pt; text-align: center; page-break-after: avoid;"><span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left: 35.45pt; text-align: center; page-break-after: avoid;"><a href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/wp-content/uploads/2010/05/keineRueckmeldung.png"><img class="aligncenter size-full wp-image-973" title="keineRueckmeldung" src="./aync_files/keineRueckmeldung.png" alt="" width="308" height="53"></a> Abbildung 1</p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left: 35.45pt; text-align: justify;">
</p><p class="MsoListParagraphCxSpMiddle" style="margin-left: 0cm; text-align: justify;">Ein weiterer Grund für eine asynchrone Kommunikation wäre, wenn eine Anwendung nur Nachrichten verschicken möchte und es im Grunde keine Rolle spielt, ob diese Nachricht korrekt verarbeitet wurde. Vorstellbar wäre hier Loggen von Aktionen. Mir wäre es jetzt egal, ob die Nachricht korrekt gespeichert wurde oder nicht. Ich will nur nicht, dass meine Anwendung, nur weil Daten geloggt werden müssen,<span> </span>langsamer wird. Es handelt sich ja bei den Log-Daten nicht um Informationen die für die Abarbeitung notwendig sind.</p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left: 0cm; text-align: justify;">
</p><p class="MsoListParagraphCxSpMiddle" style="margin-left: 0cm; text-align: justify;">Ein weiterer Fall wäre z. B. das Skalieren von Datenbankabfragen. So könnten mehrere Threads gleichzeitig Daten von gleichen oder unterschiedlichen Datenbeständen abfragen um schnellere Antwortzeiten zu erhalten.</p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left: 0cm; text-align: justify;"><strong><span style="font-size: 12pt; line-height: 115%;">Beispiel</span></strong></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left: 0cm; text-align: justify;">
Um die asynchrone Kommunikation zu realisieren gibt es unterschiedliche Möglichkeiten. Ich habe mich allerdings für eine Event-Based-Variante entschieden. Der große Vorteil von einem Event-Based Async-Pattern liegt in meinen Augen darin, dass der Nutzer von asynchrone Methoden sich nicht wirklich mit Multithread-Umgebungen auskennen muss. Für den Nutzer ist es völlig transparent wie die Threads im Hintergrund erzeugt werden und wie die Synchronisation der einzelnen Thread funktioniert. Für den Nutzer ist es nur wichtig zu wissen, dass er eine Methode aufrufen kann die asynchron abläuft und somit nicht den erwarteten Rückgabewert besitzt wie die synchrone Methode und dass ein Event ausgelöst wird, wenn die Methode komplett abgearbeitet wurde und der erwartete Rückgabewert zur Verfügung steht.</p>
<p>Nun aber genug geredet, jetzt wird programmiert. Für das Beispiel habe ich mich für eine WinForm-Anwendung entschieden, die nichts anderes tut, als die eingegebene Zahl zu quadrieren. Diese Berechnung dauert aufgrund eines Thread.Sleep() zehn Sekunden, um eine verzögerte Ausführung zu simulieren. Die Berechnung habe ich dabei in eine extra Komponente ausgelagert, die eine Schnittstelle zur asynchronen Kommunikation bereitstellt. Dabei gilt es eine gewisse Namenskonvention einzuhalten. Neben der synchronen Methode „Calc“, wird die asynchrone Methode mit dem Zusatz „Async“ bezeichnet („CalcAsync“). Da das Async-Pattern Event-Based ist, muss ein Event bereitgestellt werden, welches ausgelöst wird, wenn die asynchrone Verarbeitung beendet wurde. Laut Namenskonvention muss solch ein Event „&lt;Methodenname&gt;Completed“ heißen. Mein Event heißt somit „CalcCompleted“.</p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left: 0cm; text-align: justify;">
</p><p class="MsoListParagraphCxSpMiddle" style="margin-left: 0cm; text-align: justify;">Die Abbildung 2 zeigt die UI der Anwendung. Bei dem Drücken des „Run“-Buttons, soll die eingegebene Zahl asynchron quadriert werden und im Anschluss in das Feld „Ergebnis“ ausgegeben werden.</p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left: 0cm; text-align: justify;">
</p><p class="MsoListParagraphCxSpLast" style="margin-left: 0cm; text-align: center; page-break-after: avoid;"><span></span></p>
<p class="MsoNormal" style="text-align: center;"><a href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/wp-content/uploads/2010/05/Form1.png"><img class="aligncenter size-full wp-image-980" title="Form1" src="./aync_files/Form1.png" alt="" width="300" height="200"></a>Abbildung 2</p>
<p class="MsoNormal">Der Code hinter der UI sieht folgendermaßen aus. Beim instanziieren des Forms, wird eine Instanz des Calculators erstellt und ein Delegate auf das „CalcCompleted“-Event registriert. Dieses Event wird aufgerufen sobald der Calculator mit der Berechnung fertig ist.</p>
<p class="MsoNormal">Bei dem Drücken des „Run“-Buttons, wird die Methode Calculator.CalcAsync(…) aufgerufen.</p>
<p class="MsoNormal">
</p><div style="font-family: Courier New; font-size: 10pt; color: black; background: white;">
<div style="font-family: Courier New; font-size: 10pt; color: black; background: white;">
<p style="margin: 0px;"><span style="color: blue;">public</span> <span style="color: blue;">partial</span> <span style="color: blue;">class</span> <span style="color: #2b91af;">Form1</span> : <span style="color: #2b91af;">Form</span> {</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">private</span> <span style="color: #2b91af;">ICalculator</span> m_calculator;</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">public</span> Form1() {</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; InitializeComponent();</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; m_calculator = <span style="color: blue;">new</span> <span style="color: #2b91af;">Calculator</span>();</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; m_calculator.CalcCompleted += Calculator_CalcCompleted;</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p>
<p style="margin: 0px;">&nbsp;</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">private</span> <span style="color: blue;">void</span> Run_Click(<span style="color: blue;">object</span> sender, <span style="color: #2b91af;">EventArgs</span> e) {</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">int</span> number;</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">if</span> (<span style="color: #2b91af;">Int32</span>.TryParse(txbEingabe.Text, <span style="color: blue;">out</span> number)) {</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; m_calculator.CalcAsync(number, number);</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p>
<p style="margin: 0px;">&nbsp;</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">void</span> Calculator_CalcCompleted(<span style="color: blue;">object</span> sender, <span style="color: #2b91af;">CalcEventArgs</span> eventArgs) {</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; lblCounter.Text = eventArgs.Result.ToString();</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; }</p>
</div>
</div>
<p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;">
</p><p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;">
</p><p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;">Sobald die Berechnung fertig ist, wird das CalcCompleted-Event ausgelöst und somit die Calculator_CalcComplete-Methode aufgerufen und das Ergebnis der Berechnung in ein Label geschrieben. Der große Vorteil ist, dass man sich an dieser Stelle nicht mehr um die Synchronisierung der Threads kümmern muss, sodass man direkt auf das Label schreiben darf und es nicht zu einem threadübergreifenden Zugriff kommt.</p>
<p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;">
</p><p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;">Der Calculator sieht wie folgt aus:</p>
<div style="font-family: Courier New; font-size: 10pt; color: black; background: white;">
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;</p>
<p style="margin: 0px;"><span style="color: blue;">public</span> <span style="color: blue;">interface</span> <span style="color: #2b91af;">ICalculator</span> {</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">event</span> <span style="color: #2b91af;">Calculator</span>.<span style="color: #2b91af;">CalcCompletedEventHandler</span> CalcCompleted;</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">int</span> Calc(<span style="color: blue;">int</span> number);</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">void</span> CalcAsync(<span style="color: blue;">int</span> number, <span style="color: blue;">object</span> userState);</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; }</p>
<p style="margin: 0px;">&nbsp;</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; <span style="color: blue;">public</span> <span style="color: blue;">class</span> <span style="color: #2b91af;">Calculator</span> : <span style="color: #2b91af;">ICalculator</span> {</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">public</span> <span style="color: blue;">delegate</span> <span style="color: blue;">void</span> <span style="color: #2b91af;">CalcCompletedEventHandler</span>(<span style="color: blue;">object</span> sender, <span style="color: #2b91af;">CalcEventArgs</span> eventArgs);</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">public</span> <span style="color: blue;">event</span> <span style="color: #2b91af;">CalcCompletedEventHandler</span> CalcCompleted;</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">private</span> <span style="color: #2b91af;">AsyncOperation</span> m_asyncOperation;</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">private</span> <span style="color: blue;">bool</span> m_isRunning;</p>
<p style="margin: 0px;">&nbsp;</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">public</span> <span style="color: blue;">int</span> Calc(<span style="color: blue;">int</span> number) {</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">Thread</span>.Sleep(10000);</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">return</span> number * number;</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p>
<p style="margin: 0px;">&nbsp;</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">public</span> <span style="color: blue;">void</span> CalcAsync(<span style="color: blue;">int</span> number, <span style="color: blue;">object</span> userState) {</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">lock</span> (<span style="color: blue;">this</span>) {</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">if</span> (m_isRunning) {</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">throw</span> <span style="color: blue;">new</span> <span style="color: #2b91af;">InvalidOperationException</span>(<span style="color: #a31515;">"Diese Operation wird bereits ausgeführt"</span>);</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; m_isRunning = <span style="color: blue;">true</span>;</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; m_asyncOperation = <span style="color: #2b91af;">AsyncOperationManager</span>.CreateOperation(userState);</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">ThreadPool</span>.QueueUserWorkItem(ExecuteCalc, number);</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; .</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; .</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; .</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; }</p>
</div>
<p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;">
</p><p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;">Wie man im Interface des Calculator sieht, gibt es eine synchrone und eine asynchrone Methode für die Berechnung.<span> </span>Uns interessiert allerdings nur die asynchrone Methode. Das lock und die Prüfung auf m_isRunning verhindern lediglich, dass die asynchrone Methode während ihrer Ausführung öfter aufgerufen wird. Das Wesentliche an dieser Methode ist der Aufruf von AsyncOperationManager.CreateOperation, denn dieser Aufruf stellt einen Synchronisationskontext bereit, der die Threads miteinander synchronisiert. <span> </span>Für die eigentliche Berechnung wird sich über den ThreadPool ein neuer Thread besorgt, der sich dann um die Abarbeitung der ExecuteCalc in einem eigenen Thread kümmert.</p>
<p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;">
</p><div style="font-family: Courier New; font-size: 10pt; color: black; background: none repeat scroll 0% 0% white;">
<div style="font-family: Courier New; font-size: 10pt; color: black; background: white;">
<p style="margin: 0px;"><span style="color: blue;">public</span> <span style="color: blue;">class</span> <span style="color: #2b91af;">Calculator</span> : <span style="color: #2b91af;">ICalculator</span> {</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; .</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; .</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; .</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">private</span> <span style="color: blue;">void</span> ExecuteCalc(<span style="color: blue;">object</span> state) {</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">int</span> result = Calc((<span style="color: blue;">int</span>)state);</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; m_asyncOperation.PostOperationCompleted(CalcCompletedSuccessful, result);</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p>
<p style="margin: 0px;">&nbsp;</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">private</span> <span style="color: blue;">void</span> CalcCompletedSuccessful(<span style="color: blue;">object</span> result) {</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">if</span> (CalcCompleted != <span style="color: blue;">null</span>) {</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; CalcCompleted(<span style="color: blue;">this</span>, <span style="color: blue;">new</span> <span style="color: #2b91af;">CalcEventArgs</span>(<span style="color: blue;">null</span>, <span style="color: blue;">false</span>, (<span style="color: blue;">int</span>)result, result));</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; }</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; <span style="color: blue;">public</span> <span style="color: blue;">class</span> <span style="color: #2b91af;">CalcEventArgs</span> : <span style="color: #2b91af;">AsyncCompletedEventArgs</span> {</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">public</span> CalcEventArgs(<span style="color: #2b91af;">Exception</span> error, <span style="color: blue;">bool</span> cancelled, <span style="color: blue;">int</span> result, <span style="color: blue;">object</span> userState)</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; : <span style="color: blue;">base</span>(error, cancelled, userState) {</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Result = result;</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">public</span> <span style="color: blue;">int</span> Result { <span style="color: blue;">get</span>; <span style="color: blue;">private</span> <span style="color: blue;">set</span>; }</p>
<p style="margin: 0px;">&nbsp;&nbsp;&nbsp; }</p>
</div>
</div>
<p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"><span style="font-size: 10pt; font-family: &amp;amp;amp;"> </span></p>
<p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;">Sobald die Berechnung abgeschlossen ist, wird der Thread mit dem MainThread über den Aufruf von PostOperationCompleted synchronisiert und das CalcCompleted-Event ausgelöst und das Ergebnis in das Label geschrieben (s. o.).</p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 1799px; width: 1px; height: 1px; overflow: hidden;">
<p style="margin: 0cm 0cm 0.0001pt; background: none repeat scroll 0% 0% white;"><span style="font-size: 10pt; font-family: &amp;amp;amp; color: #2b91af;" lang="EN-US">6</span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: black;" lang="EN-US"> </span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: blue;" lang="EN-US">public</span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: black;" lang="EN-US"> </span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: blue;" lang="EN-US">partial</span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: black;" lang="EN-US"> </span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: blue;" lang="EN-US">class</span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: black;" lang="EN-US"> </span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: #2b91af;" lang="EN-US">Form1</span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: black;" lang="EN-US"> : </span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: #2b91af;" lang="EN-US">Form</span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: black;" lang="EN-US"> {</span></p>
<p style="margin: 0cm 0cm 0.0001pt; background: none repeat scroll 0% 0% white;"><span style="font-size: 10pt; font-family: &amp;amp;amp; color: #2b91af;" lang="EN-US"> 7</span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: black;" lang="EN-US"> </span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: blue;" lang="EN-US">private</span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: black;" lang="EN-US"> </span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: #2b91af;" lang="EN-US">ICalculator</span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: black;" lang="EN-US"> m_calculator;</span></p>
<p style="margin: 0cm 0cm 0.0001pt; background: none repeat scroll 0% 0% white;"><span style="font-size: 10pt; font-family: &amp;amp;amp; color: #2b91af;" lang="EN-US"> 8</span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: black;" lang="EN-US"> </span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: blue;" lang="EN-US">public</span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: black;" lang="EN-US"> Form1() {</span></p>
<p style="margin: 0cm 0cm 0.0001pt; background: none repeat scroll 0% 0% white;"><span style="font-size: 10pt; font-family: &amp;amp;amp; color: #2b91af;" lang="EN-US"> 9</span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: black;" lang="EN-US"> InitializeComponent();</span></p>
<p style="margin: 0cm 0cm 0.0001pt; background: none repeat scroll 0% 0% white;"><span style="font-size: 10pt; font-family: &amp;amp;amp; color: #2b91af;" lang="EN-US"> 10</span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: black;" lang="EN-US"> m_calculator = </span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: blue;" lang="EN-US">new</span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: black;" lang="EN-US"> </span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: #2b91af;" lang="EN-US">Calculator</span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: black;" lang="EN-US">();</span></p>
<p style="margin: 0cm 0cm 0.0001pt; background: none repeat scroll 0% 0% white;"><span style="font-size: 10pt; font-family: &amp;amp;amp; color: #2b91af;" lang="EN-US"> 11</span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: black;" lang="EN-US"> m_calculator.CalcCompleted += Calculator_CalcCompleted;</span></p>
<p style="margin: 0cm 0cm 0.0001pt; background: none repeat scroll 0% 0% white;"><span style="font-size: 10pt; font-family: &amp;amp;amp; color: #2b91af;" lang="EN-US"> 12</span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: black;" lang="EN-US"> }</span></p>
<p style="margin: 0cm 0cm 0.0001pt; background: none repeat scroll 0% 0% white;"><span style="font-size: 10pt; font-family: &amp;amp;amp; color: #2b91af;" lang="EN-US"> 13</span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: black;" lang="EN-US"> </span></p>
<p style="margin: 0cm 0cm 0.0001pt; background: none repeat scroll 0% 0% white;"><span style="font-size: 10pt; font-family: &amp;amp;amp; color: #2b91af;" lang="EN-US"> 14</span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: black;" lang="EN-US"> </span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: blue;" lang="EN-US">private</span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: black;" lang="EN-US"> </span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: blue;" lang="EN-US">void</span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: black;" lang="EN-US"> Run_Click(</span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: blue;" lang="EN-US">object</span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: black;" lang="EN-US"> sender, </span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: #2b91af;" lang="EN-US">EventArgs</span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: black;" lang="EN-US"> e) {</span></p>
<p style="margin: 0cm 0cm 0.0001pt; background: none repeat scroll 0% 0% white;"><span style="font-size: 10pt; font-family: &amp;amp;amp; color: #2b91af;" lang="EN-US"> 15</span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: black;" lang="EN-US"> </span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: blue;" lang="EN-US">int</span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: black;" lang="EN-US"> number;</span></p>
<p style="margin: 0cm 0cm 0.0001pt; background: none repeat scroll 0% 0% white;"><span style="font-size: 10pt; font-family: &amp;amp;amp; color: #2b91af;" lang="EN-US"> 16</span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: black;" lang="EN-US"> </span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: blue;" lang="EN-US">if</span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: black;" lang="EN-US"> (</span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: #2b91af;" lang="EN-US">Int32</span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: black;" lang="EN-US">.TryParse(txbEingabe.Text, </span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: blue;" lang="EN-US">out</span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: black;" lang="EN-US"> number)) {</span></p>
<p style="margin: 0cm 0cm 0.0001pt; background: none repeat scroll 0% 0% white;"><span style="font-size: 10pt; font-family: &amp;amp;amp; color: #2b91af;" lang="EN-US"> 17</span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: black;" lang="EN-US"> m_calculator.CalcAsync(number, number);</span></p>
<p style="margin: 0cm 0cm 0.0001pt; background: none repeat scroll 0% 0% white;"><span style="font-size: 10pt; font-family: &amp;amp;amp; color: #2b91af;" lang="EN-US"> 18</span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: black;" lang="EN-US"> }</span></p>
<p style="margin: 0cm 0cm 0.0001pt; background: none repeat scroll 0% 0% white;"><span style="font-size: 10pt; font-family: &amp;amp;amp; color: #2b91af;" lang="EN-US"> 19</span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: black;" lang="EN-US"> }</span></p>
<p style="margin: 0cm 0cm 0.0001pt; background: none repeat scroll 0% 0% white;"><span style="font-size: 10pt; font-family: &amp;amp;amp; color: #2b91af;" lang="EN-US"> 20</span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: black;" lang="EN-US"> </span></p>
<p style="margin: 0cm 0cm 0.0001pt; background: none repeat scroll 0% 0% white;"><span style="font-size: 10pt; font-family: &amp;amp;amp; color: #2b91af;" lang="EN-US"> 21</span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: black;" lang="EN-US"> </span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: blue;" lang="EN-US">void</span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: black;" lang="EN-US"> Calculator_CalcCompleted(</span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: blue;" lang="EN-US">object</span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: black;" lang="EN-US"> sender, </span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: #2b91af;" lang="EN-US">CalcEventArgs</span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: black;" lang="EN-US"> eventArgs) {</span></p>
<p style="margin: 0cm 0cm 0.0001pt; background: none repeat scroll 0% 0% white;"><span style="font-size: 10pt; font-family: &amp;amp;amp; color: #2b91af;" lang="EN-US"> 22</span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: black;" lang="EN-US"> lblCounter.Text = eventArgs.UserState.ToString();</span></p>
<p style="margin: 0cm 0cm 0.0001pt; background: none repeat scroll 0% 0% white;"><span style="font-size: 10pt; font-family: &amp;amp;amp; color: #2b91af;" lang="EN-US"> </span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: #2b91af;">23</span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: black;"> }</span></p>
<p style="margin: 0cm 0cm 0.0001pt; background: none repeat scroll 0% 0% white;"><span style="font-size: 10pt; font-family: &amp;amp;amp; color: #2b91af;"> 24</span><span style="font-size: 10pt; font-family: &amp;amp;amp; color: black;"> }</span></p>
</div>
<p><a href="https://web.archive.org/web/20111007131715/http://dotnet-kicks.de/kick/?url=http%3a%2f%2fblog.aztec-project.org%2f2010%2f05%2f05%2fasynchrone-kommunikation-mit-dem-async-pattern%2f"><img src="./aync_files/KickItImageGenerator.ashx" alt="kick it on dotnet-kicks.de" border="0"></a></p><a href="https://web.archive.org/web/20111007131715/http://dotnet-kicks.de/kick/?url=http%3a%2f%2fblog.aztec-project.org%2f2010%2f05%2f05%2fasynchrone-kommunikation-mit-dem-async-pattern%2f">
</a><div class="addtoany_share_save_container"><a href="https://web.archive.org/web/20111007131715/http://dotnet-kicks.de/kick/?url=http%3a%2f%2fblog.aztec-project.org%2f2010%2f05%2f05%2fasynchrone-kommunikation-mit-dem-async-pattern%2f"></a><div class="a2a_kit addtoany_list"><a href="https://web.archive.org/web/20111007131715/http://dotnet-kicks.de/kick/?url=http%3a%2f%2fblog.aztec-project.org%2f2010%2f05%2f05%2fasynchrone-kommunikation-mit-dem-async-pattern%2f"></a><a class="a2a_dd addtoany_share_save" href="https://web.archive.org/web/20111007123523/http://www.addtoany.com/share_save#url=https%3A%2F%2Fweb.archive.org%2Fweb%2F20111007131715%2Fhttp%3A%2F%2Fblog.aztec-project.org%2F2010%2F05%2F05%2Fasynchrone-kommunikation-mit-dem-async-pattern%2F&amp;title=Asynchrone%20Kommunikation%20mit%20dem%20Async-Pattern&amp;description="><img src="./aync_files/share_save_171_16.png" width="171" height="16" alt="Share"></a></div>
<script type="text/javascript"><!--
var a2a_config = a2a_config || {};
a2a_localize = {
Share: "Empfehlen",
Save: "Speichern",
Subscribe: "Abonnieren",
Email: "E-Mail",
Bookmark: "Bookmark",
ShowAll: "zeige alle",
ShowLess: "Zeige weniger",
FindServices: "Finden Dienstleistung(en)",
FindAnyServiceToAddTo: "Um weitere Dienste ergänzen",
PoweredBy: "Powered by",
ShareViaEmail: "per E-Mail empfehlen",
SubscribeViaEmail: "per E-Mail abonnieren",
BookmarkInYourBrowser: "Seite den Bookmarks hinzufügen",
BookmarkInstructions: "Drücken Sie Strg + D oder ⌘ + D, um diese Seite den Bookmarks hinzuzufügen",
AddToYourFavorites: "Zu Ihren Favoriten hinzufügen",
SendFromWebOrProgram: "Von E-Mail-Adresse oder E-Mail-Programm senden",
EmailProgram: "E-Mail-Programm"
};
a2a_config.linkname="Asynchrone Kommunikation mit dem Async-Pattern";
a2a_config.linkurl="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/2010/05/05/asynchrone-kommunikation-mit-dem-async-pattern/";
a2a_color_main="FAFAFA";a2a_color_border="AECADB";a2a_color_link_text="FF9B2A";a2a_color_link_text_hover="FF9B2A";a2a_color_bg="FAFAFA";
//--></script><script type="text/javascript" src="./aync_files/page.js.Download"></script>
</div><fb:like href="http://blog.aztec-project.org/2010/05/05/asynchrone-kommunikation-mit-dem-async-pattern/" layout="standard" show_faces="true" width="450" action="like" colorscheme="light" style="margin-top:5px;" class="fb_edge_widget_with_comment fb_iframe_widget"><span><iframe id="f35094551f64ece" name="f3759d408b57b8a" scrolling="no" title="Like this content on Facebook." class="fb_ltr" style="border: none; overflow: hidden; height: 80px; width: 450px;" allow="autoplay &#39;self&#39;; fullscreen &#39;self&#39;" src="./aync_files/like.html"></iframe></span></fb:like>
<p class="postmetadata alt clear">
<small>
Geschrieben am Mittwoch, 5. Mai 2010 um 4:52 pm und ist zu finden in <a href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/category/architektur/" title="Alle Artikel in Architektur ansehen" rel="category tag">Architektur</a>, <a href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/category/pattern/" title="Alle Artikel in Pattern ansehen" rel="category tag">Pattern</a>, <a href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/category/tipps/" title="Alle Artikel in Tipps ansehen" rel="category tag">Tipps</a>. Du kannst die Antworten zu diesem Thema verfolgen unter <a href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/2010/05/05/asynchrone-kommunikation-mit-dem-async-pattern/feed/">RSS 2.0</a> feed. Du kannst <a href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/2010/05/05/asynchrone-kommunikation-mit-dem-async-pattern/#respond">Antwort</a>, oder <a href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/2010/05/05/asynchrone-kommunikation-mit-dem-async-pattern/trackback/" rel="trackback">trackback</a> von deiner Seite.
</small>
</p>
</div>
</div>
<div id="comments">
3 Antworten zu “Asynchrone Kommunikation mit dem Async-Pattern”
</div>
<ol class="commentlist" id="commentlist">
<li class="comment even thread-even depth-1 alt" id="comment-468">
<div id="div-comment-468" class="comment-body">
<span class="switch-post"><a href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/2010/05/05/asynchrone-kommunikation-mit-dem-async-pattern/#"><img src="./aync_files/bullet_toggle_minus(1).png" alt="" class="png"></a></span><div class="comment-author vcard">
<img alt="" src="./aync_files/3e7b6cb163ea9cc8549abcb8b5a03e2e.jpeg" class="avatar avatar-32 photo" height="32" width="32"> <cite class="fn"><a href="https://web.archive.org/web/20111007131715/http://ralfw.blogspot.com/" rel="external nofollow" class="url">Ralf Westphal</a></cite> <span class="says">sagt:</span> </div>
<div class="comment-meta commentmetadata"><a href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/2010/05/05/asynchrone-kommunikation-mit-dem-async-pattern/comment-page-1/#comment-468">
Mai 6, 2010 um 10:34 am</a> </div>
<div class="comment"><p>Statt eines Kommentars ein Blogartikel, der eine alternative Implementation mit Event-Based Components zeigt:</p></div>
<div class="comment"><p><a href="https://web.archive.org/web/20111007131715/http://ralfw.blogspot.com/2010/05/asynchrone-kommunikation-mit-ebcs-statt.html" rel="nofollow">http://ralfw.blogspot.com/2010/05/asynchrone-kommunikation-mit-ebcs-statt.html</a></p></div>
<div class="comment"><div class="reply">
</div></div>
</div>
</li>
<li class="pingback odd alt thread-odd thread-alt depth-1" id="comment-469">
<div id="div-comment-469" class="comment-body">
<span class="switch-post"><a href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/2010/05/05/asynchrone-kommunikation-mit-dem-async-pattern/#"><img src="./aync_files/bullet_toggle_minus(1).png" alt="" class="png"></a></span><div class="comment-author vcard">
<cite class="fn"><a href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/2010/05/06/asynchrone-kommunikation-mit-dem-async-pattern-refactored/" rel="external nofollow" class="url">build broken » Asynchrone Kommunikation mit dem Async-Pattern (Refactored)</a></cite> <span class="says">sagt:</span> </div>
<div class="comment-meta commentmetadata"><a href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/2010/05/05/asynchrone-kommunikation-mit-dem-async-pattern/comment-page-1/#comment-469">
Mai 6, 2010 um 2:37 pm</a> </div>
<p>[...] «&nbsp;Asynchrone Kommunikation mit dem Async-Pattern Mai 06 2010 [...]</p>
<div class="reply">
</div>
</div>
</li>
<li class="pingback even thread-even depth-1 alt" id="comment-473">
<div id="div-comment-473" class="comment-body">
<span class="switch-post"><a href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/2010/05/05/asynchrone-kommunikation-mit-dem-async-pattern/#"><img src="./aync_files/bullet_toggle_minus(1).png" alt="" class="png"></a></span><div class="comment-author vcard">
<cite class="fn"><a href="https://web.archive.org/web/20111007131715/http://topsy.com/trackback?utm_source=pingback&amp;utm_campaign=L1&amp;url=http://blog.aztec-project.org/2010/05/05/asynchrone-kommunikation-mit-dem-async-pattern/" rel="external nofollow" class="url">Tweets that mention build broken » Asynchrone Kommunikation mit dem Async-Pattern -- Topsy.com</a></cite> <span class="says">sagt:</span> </div>
<div class="comment-meta commentmetadata"><a href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/2010/05/05/asynchrone-kommunikation-mit-dem-async-pattern/comment-page-1/#comment-473">
Mai 6, 2010 um 9:17 pm</a> </div>
<p>[...] This post was mentioned on Twitter by .NET German Bloggers. .NET German Bloggers said: Asynchrone Kommunikation mit dem Async-Pattern: Bevor ich anhand eines Beispiels zeige, wie man mit Hilfe des Asyn… <a href="https://web.archive.org/web/20111007131715/http://bit.ly/dfCLjB" rel="nofollow">http://bit.ly/dfCLjB</a> [...]</p>
<div class="reply">
</div>
</div>
</li>
<li style="display: none;">&nbsp;</li>
</ol>
<div class="navigation">
<div class="alignleft"></div>
<div class="alignright"></div>
</div>
<div id="respond">
<div class="title">Hinterlasse einen Kommentar</div>
<div class="cancel-comment-reply">
<small><a rel="nofollow" id="cancel-comment-reply-link" href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/2010/05/05/asynchrone-kommunikation-mit-dem-async-pattern/#respond" style="display:none;">Click here to cancel reply</a></small>
</div>
<form action="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/wp-comments-post.php" method="post" id="commentform">
<input type="hidden" name="comment_post_ID" value="961" id="comment_post_ID">
<input type="hidden" name="comment_parent" id="comment_parent" value="0">
<p><input type="text" name="author" id="author" value="" size="22" tabindex="1">
<label for="author"><small>Name (benötigt)</small></label></p>
<p><input type="text" name="email" id="email" value="" size="22" tabindex="2">
<label for="email"><small>E-mail (wird nicht veröffentlicht) (benötigt)</small></label></p>
<p><input type="text" name="url" id="url" value="" size="22" tabindex="3">
<label for="url"><small>Webseite</small></label></p>
<p><textarea name="comment" id="comment" cols="100%" rows="10" tabindex="4"></textarea></p>
<p>
<input name="submit" type="submit" id="submit" tabindex="5" value="Kommentar absenden">
<input type="hidden" name="comment_post_ID" value="961">
</p>
<p style="display: none;"><input type="hidden" id="akismet_comment_nonce" name="akismet_comment_nonce" value="6fd43d365a"></p>
<p style="clear: both;" class="subscribe-to-comments">
<input type="checkbox" name="subscribe" id="subscribe" value="subscribe" style="width: auto;">
<label for="subscribe">Notify me of followup comments via e-mail</label>
</p>
<br class="clear">
</form>
</div>
<script type="text/javascript">
<!-- // <![CDATA[
jQuery(document).ready(function() {
if (jQuery('#trackbacklist li').length == 1)
jQuery('#trackbacks, #trackbacklist').hide();
jQuery('li.comment>div>*').filter(':not(.comment-author, .comment-meta)').wrap('<div class="comment"><\/div>');
jQuery('.comment-author').before('<span class="switch-post"><a href="#"><img src="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/wp-content/themes/mandigo/images/icons/bullet_toggle_minus.png" alt="" class="png" /><\/a><\/span>');
});
// ]]> -->
</script>
</td>
<script src="./aync_files/Loader_37820.js.Download" type="text/javascript"></script></tr>
</tbody></table>
</div>
<div id="footer" class="png">
<p>
Unterstützt von <a href="https://web.archive.org/web/20111007131715/http://wordpress.org/">WordPress</a>, <a href="https://web.archive.org/web/20111007131715/http://www.onehertz.com/portfolio/wordpress/" target="_blank" title="WordPress themes">Mandigo theme</a> by tom.
<br><a href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/feed/"><img src="./aync_files/rss_s.gif" alt=""> Einträge (RSS)</a>
und <a href="https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/comments/feed/"><img src="./aync_files/rss_s.gif" alt=""> Kommentare (RSS)</a>.
</p>
</div>
</div>
<div id="fb-root"><script src="./aync_files/all.js.Download" async=""></script></div>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '',
status : true,
cookie : true,
xfbml : true
});
};
(function() {
var e = document.createElement('script');
e.src = document.location.protocol + '//web.archive.org/web/20111007131715/http://connect.facebook.net/en_US/all.js';
e.async = true;
document.getElementById('fb-root').appendChild(e);
}());
</script>
<script type="text/javascript">
<!-- // <![CDATA[
jQuery(document).ready(function() {
jQuery('#rssicon, #searchsubmit').hover(
function() { this.src = this.src.replace('.gif','_hover.gif'); },
function() { this.src = this.src.replace('_hover.gif','.gif'); }
);
jQuery('.entry img[align=left]' ).addClass('alignleft' );
jQuery('.entry img[align=right]').addClass('alignright');
if (jQuery.browser.msie) {
if (/^[56]/.test(jQuery.browser.version)) {
jQuery.ifixpng('https://web.archive.org/web/20111007131715/http://blog.aztec-project.org/wp-content/themes/mandigo/images/1x1.gif');
jQuery('body, .png').ifixpng();
jQuery('.commentlist.pre27 .avatar').height(36);
}
}
jQuery('p:has(.dropcap)').append('<br class="clear"/>');
togglePost = function(id) {
if (!id) return;
icon = jQuery('#switch-post-'+ id +' img');
icon.attr('src', /minus/.test(icon.attr('src')) ? icon.attr('src').replace('minus', 'plus') : icon.attr('src').replace('plus', 'minus'));
jQuery('#post-'+ id +' .entry').animate({ height: 'toggle', opacity: 'toggle' }, 1000);
}
jQuery('.switch-post img').bind('click', function() {
id = jQuery(this).parents('li').attr('id').replace(/[^\d]+-/, '');
icon = jQuery('#comment-'+ id +' .switch-post img');
src = icon.attr('src');
icon.attr('src', /minus/.test(src) ? src.replace('minus', 'plus') : src.replace('plus', 'minus'));
jQuery('#comment-'+ id +' div.comment').animate({ height: 'toggle', opacity: 'toggle' }, 1000);
return false;
});
toggleSidebars = function() {
icon = jQuery('.switch-sidebars img');
icon.attr('src', /hide/.test(icon.attr('src')) ? icon.attr('src').replace('hide', 'show') : icon.attr('src').replace('show', 'hide'));
jQuery('.sidebars').animate({ width: 'toggle', height: 'toggle', padding: 'toggle', border: 'toggle' }, 1000);
}
jQuery('.widgettitle, .linkcat *:first, .wpg2blockwidget h3').click(function() {
jQuery(this).siblings().animate({ height: 'toggle', opacity: 'toggle' }, 1000);
}).css({cursor: 'n-resize'});
jQuery.each(['tl','tr','bl','br'],function() {
jQuery('#blogname').after('<span class="blogname text-stroke-'+ this +'">'+ jQuery('#blogname a').html() +'<\/span>');
jQuery('#blogdesc').after('<span class="blogdesc text-stroke-'+ this +'">'+ jQuery('#blogdesc' ).html() +'<\/span>');
});
jQuery('#header .page_item:has(ul)').addClass('has_sub, png');
jQuery('#header .page_item').hover(
function() {
ul = jQuery(this).find('>ul');
if (ul.hasClass('sliding')) return;
a = jQuery(this).find('>a');
if (jQuery(this).parent().hasClass('pages')) {
y = a.position().top + a.height();
x = a.position().left + a.width() - ul.width();
}
else {
y = jQuery(this).position().top - 5;
x = jQuery(this).parent().width();
}
jQuery(this)
.find('>ul')
.css({left:x, top:y})
.addClass('sliding')
.slideDown(300, function() { jQuery(this).removeClass('sliding'); });
},
function() {
jQuery(this)
.find('>ul')
.addClass('sliding')
.slideUp(800, function() { jQuery(this).removeClass('sliding').hide(); });
}
);
jQuery('.commentlist li:even').addClass('alt');
});
// ]]> -->
</script>
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://web.archive.org/web/20111007131715/https://ssl." : "https://web.archive.org/web/20111007131715/http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script><script src="./aync_files/ga.js.Download" type="text/javascript"></script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-9511047-1"); pageTracker._trackPageview(); } catch(err) {}</script>
<div data-lastpass-root="" style="position: absolute !important; top: 0px !important; left: 0px !important; height: 0px !important; width: 0px !important;"><template shadowrootmode="closed"><div style="position: absolute; height: 100vh; width: 100vw; z-index: 2147483647; border-radius: 4px; top: 0px; left: 0px; max-height: 0px; max-width: 280px; min-width: auto;"><iframe data-lastpass-infield="true" allow="clipboard-write" src="chrome-extension://hdokiejnpimakedhajhdlcegeplioahd/webclient-infield.html" style="border: none; height: 100%; width: 100%;"></iframe></div></template></div><script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon='{"version":"2024.11.0","token":"8b76ed93c4de44488aa63aca2c070224","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
</body></html>