initial commit

This commit is contained in:
2026-08-16 19:03:44 +02:00
commit f9726ca9dc
215 changed files with 29489 additions and 0 deletions
+285
View File
@@ -0,0 +1,285 @@
{
"blog.html": {
"html_ts": "20250114141020",
"images": {}
},
"about.html": {
"html_ts": "20250601101252",
"images": {}
},
"dotnet-openspace-leipzig-2009-buchung.html": {
"html_ts": "20250705042252",
"images": {
"bullet_sidebars_hide.png": {
"url": "https://aztec-project.org/blog/dotnet-openspace-leipzig-2009-buchung_files/bullet_sidebars_hide.png",
"ts": "20250705042253"
},
"bullet_toggle_minus.png": {
"url": "https://aztec-project.org/blog/dotnet-openspace-leipzig-2009-buchung_files/bullet_toggle_minus.png",
"ts": "20250705042253"
},
"icon_wink.gif": {
"url": "https://aztec-project.org/blog/dotnet-openspace-leipzig-2009-buchung_files/icon_wink.gif",
"ts": "20250705042253"
},
"rss_s.gif": {
"url": "https://aztec-project.org/blog/dotnet-openspace-leipzig-2009-buchung_files/rss_s.gif",
"ts": "20250705042253"
}
}
},
"dotnet-openspace-leipzig-2009.html": {
"html_ts": "20260510022926",
"images": {}
},
"dotnet-openspace-sued-2009-buchung.html": {
"html_ts": "20250114132004",
"images": {}
},
"dotnet-openspace-sued-2009.html": {
"html_ts": "20250601101213",
"images": {
"16787936.jpg": {
"url": "https://aztec-project.org/blog/dotnet-openspace-sued-2009_files/16787936.jpg",
"ts": "20250601101214"
},
"P1010477.JPG": {
"url": "https://aztec-project.org/blog/dotnet-openspace-sued-2009_files/P1010477.JPG",
"ts": "20250601101214"
},
"bullet_sidebars_hide.png": {
"url": "https://aztec-project.org/blog/dotnet-openspace-sued-2009_files/bullet_sidebars_hide.png",
"ts": "20250601101213"
},
"bullet_toggle_minus.png": {
"url": "http://blog.aztec-project.org/wp-content/themes/mandigo/images/icons/bullet_toggle_minus.png",
"ts": "20151103215811"
},
"icon_smile.gif": {
"url": "https://aztec-project.org/blog/dotnet-openspace-sued-2009_files/icon_smile.gif",
"ts": "20250601101214"
},
"rss_s.gif": {
"url": "https://aztec-project.org/blog/dotnet-openspace-sued-2009_files/rss_s.gif",
"ts": "20250601101214"
}
}
},
"webservice-mit-asp-classic.html": {
"html_ts": "20250114140710",
"images": {}
},
"asp-mvc-2.html": {
"html_ts": "20250114131627",
"images": {}
},
"anonyme-datentypen.html": {
"html_ts": "20250601101329",
"images": {
"bullet_sidebars_hide.png": {
"url": "https://aztec-project.org/blog/anonyme-datentypen_files/bullet_sidebars_hide.png",
"ts": "20250601101330"
},
"bullet_toggle_minus.png": {
"url": "https://aztec-project.org/blog/anonyme-datentypen_files/bullet_toggle_minus.png",
"ts": "20250601101331"
},
"rss_s.gif": {
"url": "https://aztec-project.org/blog/anonyme-datentypen_files/rss_s.gif",
"ts": "20250601101331"
},
"share_save_171_16.png": {
"url": "https://aztec-project.org/blog/anonyme-datentypen_files/share_save_171_16.png",
"ts": "20250601101331"
}
}
},
"async.html": {
"html_ts": null,
"images": {}
},
"async-refactored.html": {
"html_ts": "20250114134342",
"images": {}
},
"barcamp-bodensee-2010.html": {
"html_ts": "20250114114407",
"images": {}
},
"clean-code-developer.html": {
"html_ts": null,
"images": {}
},
"clean-code-developer-yellow-brick-road.html": {
"html_ts": "20250601101331",
"images": {
"bullet_sidebars_hide.png": {
"url": "https://aztec-project.org/blog/clean-code-developer-yellow-brick-road_files/bullet_sidebars_hide.png",
"ts": "20250601101332"
},
"bullet_toggle_minus(1).png": {
"url": "https://aztec-project.org/blog/clean-code-developer-yellow-brick-road_files/bullet_toggle_minus(1).png",
"ts": "20250601101332"
},
"bullet_toggle_minus.png": {
"url": "https://aztec-project.org/blog/clean-code-developer-yellow-brick-road_files/bullet_toggle_minus.png",
"ts": "20250601101332"
},
"rss_s.gif": {
"url": "https://aztec-project.org/blog/clean-code-developer-yellow-brick-road_files/rss_s.gif",
"ts": "20250601101332"
}
}
},
"cleancode1.html": {
"html_ts": "20250114133226",
"images": {}
},
"cleancode2.html": {
"html_ts": "20250114122055",
"images": {}
},
"design-by-contract.html": {
"html_ts": "20250114140450",
"images": {}
},
"design-by-contract-teil2.html": {
"html_ts": "20250601101252",
"images": {}
},
"dime-casts.html": {
"html_ts": "20250114131549",
"images": {}
},
"dynamic-load.html": {
"html_ts": "20250601101323",
"images": {
"bullet_sidebars_hide.png": {
"url": "https://aztec-project.org/blog/dynamic-load_files/bullet_sidebars_hide.png",
"ts": "20250601101324"
},
"bullet_toggle_minus.png": {
"url": "https://aztec-project.org/blog/dynamic-load_files/bullet_toggle_minus.png",
"ts": "20250601101324"
},
"rss_s.gif": {
"url": "https://aztec-project.org/blog/dynamic-load_files/rss_s.gif",
"ts": "20250601101324"
}
}
},
"alt-net-energien.html": {
"html_ts": "20250114121547",
"images": {}
},
"mvp-winforms-teil1.html": {
"html_ts": null,
"images": {}
},
"mvp-winforms.html": {
"html_ts": "20250114132109",
"images": {}
},
"prio-conference-2009.html": {
"html_ts": "20250114125123",
"images": {}
},
"refaktorisierung.html": {
"html_ts": "20250601101342",
"images": {
"bullet_toggle_minus.png": {
"url": "https://aztec-project.org/blog/refaktorisierung_files/bullet_toggle_minus.png",
"ts": "20250601101342"
},
"rss_s.gif": {
"url": "https://aztec-project.org/blog/refaktorisierung_files/rss_s.gif",
"ts": "20250601101342"
}
}
},
"scrumbut.html": {
"html_ts": "20250114121008",
"images": {}
},
"softwarezellen.html": {
"html_ts": "20250601101252",
"images": {}
},
"test-public-methods.html": {
"html_ts": "20250114141241",
"images": {}
},
"plugin-pattern.html": {
"html_ts": "20250114120158",
"images": {}
},
"unittests-webforms.html": {
"html_ts": "20250114121657",
"images": {}
},
"code-to-html.html": {
"html_ts": "20250114134712",
"images": {}
},
"webcamps.html": {
"html_ts": "20260605232306",
"images": {}
},
"reflection.html": {
"html_ts": "20250114131122",
"images": {}
},
"programmierer.html": {
"html_ts": "20250114120714",
"images": {}
},
"aync.html": {
"html_ts": "20251110231532",
"images": {
"3e7b6cb163ea9cc8549abcb8b5a03e2e.jpeg": {
"url": "https://aztec-project.org/blog/aync_files/3e7b6cb163ea9cc8549abcb8b5a03e2e.jpeg",
"ts": "20250601101334"
},
"Form1.png": {
"url": "https://aztec-project.org/blog/aync_files/Form1.png",
"ts": "20250601101333"
},
"KickItImageGenerator.ashx": {
"url": "https://aztec-project.org/blog/aync_files/KickItImageGenerator.ashx",
"ts": "20250601101333"
},
"bullet_sidebars_hide.png": {
"url": "https://aztec-project.org/blog/aync_files/bullet_sidebars_hide.png",
"ts": "20250601101333"
},
"bullet_toggle_minus(1).png": {
"url": "https://aztec-project.org/blog/aync_files/bullet_toggle_minus(1).png",
"ts": "20250601101333"
},
"bullet_toggle_minus.png": {
"url": "https://aztec-project.org/blog/aync_files/bullet_toggle_minus.png",
"ts": "20250601101333"
},
"keineRueckmeldung.png": {
"url": "https://aztec-project.org/blog/aync_files/keineRueckmeldung.png",
"ts": "20250601101333"
},
"rss_s.gif": {
"url": "https://aztec-project.org/blog/aync_files/rss_s.gif",
"ts": "20250601101334"
},
"share_save_171_16.png": {
"url": "https://aztec-project.org/blog/aync_files/share_save_171_16.png",
"ts": "20250601101333"
}
}
},
"stupiddb1.html": {
"html_ts": "20250114121109",
"images": {}
},
"stupiddb2.html": {
"html_ts": "20250114131202",
"images": {}
}
}
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 402 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

File diff suppressed because one or more lines are too long
+605
View File
@@ -0,0 +1,605 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- saved from url=(0144)https://web.archive.org/web/20100412194109/http://blog.aztec-project.org/2009/08/26/gibt-es-negative-energien-in-der-deutschen-alt-net-bewegung/ -->
<html xmlns="http://www.w3.org/1999/xhtml" class=" yfgxc idc0_350"><head profile="http://gmpg.org/xfn/11"><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><script src="./alt-net-energien_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-app223.us.archive.org';v.server_ms=390;archive_analytics.send_pageview({});});</script>
<script type="text/javascript" src="./alt-net-energien_files/bundle-playback.js.Download" charset="utf-8"></script>
<script type="text/javascript" src="./alt-net-energien_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="./alt-net-energien_files/ruffle.js.Download"></script>
<script type="text/javascript">
__wm.init("https://web.archive.org/web");
__wm.wombat("http://blog.aztec-project.org:80/2009/08/26/gibt-es-negative-energien-in-der-deutschen-alt-net-bewegung/","20100412194109","https://web.archive.org/","web","/_static/",
"1271101269");
</script>
<link rel="stylesheet" type="text/css" href="./alt-net-energien_files/banner-styles.css">
<link rel="stylesheet" type="text/css" href="./alt-net-energien_files/iconochive.css">
<!-- End Wayback Rewrite JS Include -->
<title>build broken » Gibt es negative Energien in der deutschen ALT.NET Bewegung?</title>
<meta name="generator" content="WordPress abc">
<meta name="theme" content="Mandigo 1.41">
<link rel="stylesheet" href="./alt-net-energien_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/20100412194109im_/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/20100412194109im_/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/20100412194109im_/http://blog.aztec-project.org/wp-content/themes/mandigo/images/bg-1024.png);
width: 957px;
}
#footer {
background: url(https://web.archive.org/web/20100412194109im_/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/20100412194109im_/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/20100412194109im_/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/20100412194109im_/http://blog.aztec-project.org/wp-content/themes/mandigo/images/head_overlay.png);
}
</style>
<link rel="stylesheet" href="./alt-net-energien_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/20100412194109/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 » Gibt es negative Energien in der deutschen ALT.NET Bewegung? Kommentar Feed" href="https://web.archive.org/web/20100412194109/http://blog.aztec-project.org/2009/08/26/gibt-es-negative-energien-in-der-deutschen-alt-net-bewegung/feed/">
<script type="text/javascript" src="./alt-net-energien_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="Testen von nicht öffentlichen Methoden" href="https://web.archive.org/web/20100412194109/http://blog.aztec-project.org/2009/08/12/testen-von-nicht-offentlichen-methoden/">
<link rel="next" title="Unit-Tests für WebForms" href="https://web.archive.org/web/20100412194109/http://blog.aztec-project.org/2009/09/07/unit-tests-fur-webforms/">
<link rel="canonical" href="https://web.archive.org/web/20100412194109/http://blog.aztec-project.org/2009/08/26/gibt-es-negative-energien-in-der-deutschen-alt-net-bewegung/">
<script type="text/javascript" src="./alt-net-energien_files/jquery.js.Download"></script>
<script type="text/javascript" src="./alt-net-energien_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>
</head>
<body><!-- 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/20100412194109/http%3A//blog.aztec-project.org/2009/08/26/gibt-es-negative-energien-in-der-deutschen-alt-net-bewegung/" 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/2009/08/26/gibt-es-negative-energien-in-der-deutschen-alt-net-bewegung/" onfocus="this.focus();this.select();" style="flex:1;" autocomplete="off"><input type="hidden" name="type" value="replay"><input type="hidden" name="date" value="20100412194109"><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/2009/08/26/gibt-es-negative-energien-in-der-deutschen-alt-net-bewegung/" title="See a list of every capture for this URL">8 captures</a><div class="r" title="Timespan for captures of this URL">30 Aug 2009 - 19 Apr 2021</div></div>
<div class="k">
<a href="https://web.archive.org/web/20100412194109/http://blog.aztec-project.org/2009/08/26/gibt-es-negative-energien-in-der-deutschen-alt-net-bewegung/" 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/20090830220136/http://blog.aztec-project.org:80/2009/08/26/gibt-es-negative-energien-in-der-deutschen-alt-net-bewegung/" title="30 Aug 2009"><strong>Aug</strong></a></td>
<td class="c" id="displayMonthEl" title="You are here: 19:41:09 Apr 12, 2010">APR</td>
<td class="f" nowrap="nowrap"><a href="https://web.archive.org/web/20130816051233/http://blog.aztec-project.org/2009/08/26/gibt-es-negative-energien-in-der-deutschen-alt-net-bewegung/" title="16 Aug 2013"><strong>Aug</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/20090830220136/http://blog.aztec-project.org:80/2009/08/26/gibt-es-negative-energien-in-der-deutschen-alt-net-bewegung/" title="22:01:36 Aug 30, 2009"><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: 19:41:09 Apr 12, 2010">12</td>
<td class="f" nowrap="nowrap"><a href="https://web.archive.org/web/20130816051233/http://blog.aztec-project.org/2009/08/26/gibt-es-negative-energien-in-der-deutschen-alt-net-bewegung/" title="05:12:33 Aug 16, 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">2009</td>
<td class="c" id="displayYearEl" title="You are here: 19:41:09 Apr 12, 2010">2010</td>
<td class="f" nowrap="nowrap"><a href="https://web.archive.org/web/20130816051233/http://blog.aztec-project.org/2009/08/26/gibt-es-negative-energien-in-der-deutschen-alt-net-bewegung/" title="16 Aug 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/20100412194109/http://blog.aztec-project.org/2009/08/26/gibt-es-negative-energien-in-der-deutschen-alt-net-bewegung/#" 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/20100412194109/http://blog.aztec-project.org/2009/08/26/gibt-es-negative-energien-in-der-deutschen-alt-net-bewegung/#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/20100412194109/http://web.archive.org/screenshot/http://blog.aztec-project.org/2009/08/26/gibt-es-negative-energien-in-der-deutschen-alt-net-bewegung/" id="wm-screenshot" title="screenshot" style="visibility: hidden;">
<span class="wm-icon-screen-shot"></span>
</a>
<a href="https://web.archive.org/web/20100412194109/http://blog.aztec-project.org/2009/08/26/gibt-es-negative-energien-in-der-deutschen-alt-net-bewegung/#" id="wm-video" title="video">
<span class="iconochive-movies"></span>
</a>
<a id="wm-share-facebook" href="https://web.archive.org/web/20100412194109/http://blog.aztec-project.org/2009/08/26/gibt-es-negative-energien-in-der-deutschen-alt-net-bewegung/#" data-url="https://web.archive.org/web/20100412194109/http://blog.aztec-project.org:80/2009/08/26/gibt-es-negative-energien-in-der-deutschen-alt-net-bewegung/" 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/20100412194109/http://blog.aztec-project.org/2009/08/26/gibt-es-negative-energien-in-der-deutschen-alt-net-bewegung/#" data-url="https://web.archive.org/web/20100412194109/http://blog.aztec-project.org:80/2009/08/26/gibt-es-negative-energien-in-der-deutschen-alt-net-bewegung/" 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/20100412194109/http://blog.aztec-project.org/2009/08/26/gibt-es-negative-energien-in-der-deutschen-alt-net-bewegung/#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/alexa_web_2010)"></span>
<div>Collection: <a style="color:#33f;" href="https://archive.org/details/alexa_web_2010" target="_new"><span class="wm-title">alexa_web_2010</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>
this data is currently not publicly accessible.
</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="./alt-net-energien_files/banner-styles.css"><link rel="stylesheet" type="text/css" href="./alt-net-energien_files/iconochive.css"><div class="wb-autocomplete-suggestions "></div></template>
</div><div id="wm-ipp-print">The Wayback Machine - https://web.archive.org/web/20100412194109/http://blog.aztec-project.org:80/2009/08/26/gibt-es-negative-energien-in-der-deutschen-alt-net-bewegung/</div>
<script type="text/javascript">//<![CDATA[
__wm.bt(750,27,25,2,"web","http://blog.aztec-project.org/2009/08/26/gibt-es-negative-energien-in-der-deutschen-alt-net-bewegung/","20100412194109",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/20100412194109/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/20100412194109/http://blog.aztec-project.org/">Home</a></li>
<li class="page_item page-item-2"><a href="https://web.archive.org/web/20100412194109/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/20100412194109/http://blog.aztec-project.org/2009/08/12/testen-von-nicht-offentlichen-methoden/" rel="prev">Testen von nicht öffentlichen Methoden</a></div>
<div class="alignright"><a href="https://web.archive.org/web/20100412194109/http://blog.aztec-project.org/2009/09/07/unit-tests-fur-webforms/" rel="next">Unit-Tests für WebForms</a>&nbsp;»</div>
</div>
<div class="post" id="post-592">
<div class="postinfo">
<div class="datestamp">
<div>
<span class="cal1 cal1x">Aug</span>
<span class="cal2">26</span>
<span class="cal3">2009</span>
</div>
</div>
<span class="switch-post">
<a href="javascript:toggleSidebars();" class="switch-sidebars"><img src="./alt-net-energien_files/bullet_sidebars_hide.png" alt="" class="png"></a><a href="javascript:togglePost(592);" id="switch-post-592"><img src="./alt-net-energien_files/bullet_toggle_minus.png" alt="" class="png"></a>
</span>
<h2 class="posttitle"><a href="https://web.archive.org/web/20100412194109/http://blog.aztec-project.org/2009/08/26/gibt-es-negative-energien-in-der-deutschen-alt-net-bewegung/" rel="bookmark" title="Permanent Link: Gibt es negative Energien in der deutschen ALT.NET Bewegung?">Gibt es negative Energien in der deutschen ALT.NET Bewegung?</a></h2>
<small>
Geschrieben von <a href="https://web.archive.org/web/20100412194109/http://blog.aztec-project.org/author/sko/" title="Artikel von Stefan Kölle">Stefan Kölle</a> in <a href="https://web.archive.org/web/20100412194109/http://blog.aztec-project.org/category/clean-code-developing/" title="Alle Artikel in Clean Code Developing ansehen" rel="category tag">Clean Code Developing</a>, <a href="https://web.archive.org/web/20100412194109/http://blog.aztec-project.org/category/open-space/" title="Alle Artikel in Open Space ansehen" rel="category tag">Open Space</a> </small>
</div>
<div class="entry">
<p>Im Podcast <a href="https://web.archive.org/web/20100412194109/http://www.altnetpodcast.com/episodes/18-talking-with-jeremy-miller-about-alt-net" target="_blank">“Talking with Jeremy Miller about ALT.NET”</a> spricht James Avery mit Jeremy Miller über ALT.NET und die Community allgemein.</p>
<p>Beim ALT.NET Open Spaces in Seattle wurde wieder eine sehr negative Session angesetzt, “Why so mean?”. Scott Hanselman stellt hier sehr provokant die Frage, warum die Community immer mehr Energie aufwendet um zu Kritisieren, anstatt die neuen Technologien positiv nach aussen zu tragen. Dies kann ich nach meinen jetzigen Erfahrungen beim .NET Open Spaces in Ulm nicht bestätigen. Bei uns habe ich keinerlei negative Energie gespürt.</p>
<p>Andererseits sehe ich es genauso wie Jeremy: Ansätze, die teilweise gegeneinander arbeiten. DDD widerspricht meiner Meinung nach oft den bisher genutzten Kapselungen. Was nun besser oder schlechter ist kann ich derzeit noch nicht sagen, dazu kenne ich selbst DDD zu wenig. Die Mehrheit der ALT.NET Community hat wohl noch nicht einen allgemeingültigen Weg zur Verfügung, der aus dem bisher eingebrachten Wissen entstanden ist.</p>
<p>Was wohl langfristig nötig ist, dass wir uns über den Grundgedanken von ALT.NET wieder bewusst werden. Der entstehende Code soll clean, korrekt und erweiterbar sein. Also eine auf den Code zentrierte Produktentwicklung. Der Weg mit CCD sehe ich damit als den Richtigen und CCD spricht auch gerade einen positiven Aspekt an.</p>
<p>Seht ihr ähnliche Tendenzen wie Jeremy in der deutschen Community?</p>
<p><a href="https://web.archive.org/web/20100412194109/http://dotnet-kicks.de/kick/?url=http%3a%2f%2fblog.aztec-project.org%2f2009%2f08%2f26%2fgibt-es-negative-energien-in-der-deutschen-alt-net-bewegung%2f"><img src="./alt-net-energien_files/KickItImageGenerator.ashx" border="0" alt="kick it on dotnet-kicks.de"></a></p>
<p class="postmetadata alt clear">
<small>
Geschrieben am Mittwoch, 26. August 2009 um 4:33 pm und ist zu finden in <a href="https://web.archive.org/web/20100412194109/http://blog.aztec-project.org/category/clean-code-developing/" title="Alle Artikel in Clean Code Developing ansehen" rel="category tag">Clean Code Developing</a>, <a href="https://web.archive.org/web/20100412194109/http://blog.aztec-project.org/category/open-space/" title="Alle Artikel in Open Space ansehen" rel="category tag">Open Space</a>. Du kannst die Antworten zu diesem Thema verfolgen unter <a href="https://web.archive.org/web/20100412194109/http://blog.aztec-project.org/2009/08/26/gibt-es-negative-energien-in-der-deutschen-alt-net-bewegung/feed/">RSS 2.0</a> feed. Du kannst <a href="https://web.archive.org/web/20100412194109/http://blog.aztec-project.org/2009/08/26/gibt-es-negative-energien-in-der-deutschen-alt-net-bewegung/#respond">Antwort</a>, oder <a href="https://web.archive.org/web/20100412194109/http://blog.aztec-project.org/2009/08/26/gibt-es-negative-energien-in-der-deutschen-alt-net-bewegung/trackback/" rel="trackback">trackback</a> von deiner Seite.
</small>
</p>
</div>
</div>
<div id="comments">
3 Antworten zu “Gibt es negative Energien in der deutschen ALT.NET Bewegung?”
</div>
<ol class="commentlist" id="commentlist">
<li class="comment byuser comment-author-chi even thread-even depth-1 alt" id="comment-43">
<div id="div-comment-43" class="comment-body">
<span class="switch-post"><a href="https://web.archive.org/web/20100412194109/http://blog.aztec-project.org/2009/08/26/gibt-es-negative-energien-in-der-deutschen-alt-net-bewegung/#"><img src="./alt-net-energien_files/bullet_toggle_minus(1).png" alt="" class="png"></a></span><div class="comment-author vcard">
<img alt="" src="./alt-net-energien_files/fa211026bf1d16166d537ba69b2f6f23.jpeg" class="avatar avatar-32 photo" height="32" width="32"> <cite class="fn">Christina Hirth</cite> <span class="says">sagt:</span> </div>
<div class="comment-meta commentmetadata"><a href="https://web.archive.org/web/20100412194109/http://blog.aztec-project.org/2009/08/26/gibt-es-negative-energien-in-der-deutschen-alt-net-bewegung/comment-page-1/#comment-43">August 27, 2009 um 7:45 pm</a></div>
<div class="comment"><p>Es scheint, dass ALT.NET die FDP der Softwareentwicklungswelt ist: die Opposition von der (gefühlten) Herrschaft vom Microsoft <img src="./alt-net-energien_files/icon_wink.gif" alt=";)" class="wp-smiley"> Und als solche, ist seine Rolle unabdingbar!<br>
Das heißt aber noch lange nicht, dass alles was die (CSU) Microsoft tut BÖSE ist, auch wenn sie jedem Amateur das Programieren ermöglichen. Ich meine, Dreamweaver hatte bereits vor 10 Jahren fertige Codeschnipsel für Datenbankanbindung bereitgestellt aber man musste den NICHT nutzen, man konnte es auch selbst ausprogrammieren. Also anders gesagt: keine zwingt dich, oder?<br>
Eins ist sicher: es gibt den Heiligen Gral der Softwareentwicklung noch nicht. Und das bedeutet, man sollte alles mit Obacht genießen und sich vergewissern, dass der gewählte Weg zu dem bestimmten Projekt und zu dem bestimmten Team passt. Dann kann man auch den richtigen Code schreiben und danach ruhig schlafen, egal ob es um Microsoft-Framework oder um Castle-AddOns geht. Und die Amateur-Coder werden ihrer Arbeit nicht lange verkaufen können, wenn diese unpflegbar und unwartbar ist.</p></div>
<div class="comment"><p>ALT.NET existiert nur weil Microsoft existiert. Solange die Community das Ziel hat, den Weg zu dem perfekten Code zu finden, können wir alle davon profitieren: sowohl pro- als auch kontra-Microsoft-Coder.</p></div>
<div class="comment"><div class="reply">
</div></div>
</div>
</li>
<li class="comment odd alt thread-odd thread-alt depth-1" id="comment-45">
<div id="div-comment-45" class="comment-body">
<span class="switch-post"><a href="https://web.archive.org/web/20100412194109/http://blog.aztec-project.org/2009/08/26/gibt-es-negative-energien-in-der-deutschen-alt-net-bewegung/#"><img src="./alt-net-energien_files/bullet_toggle_minus(1).png" alt="" class="png"></a></span><div class="comment-author vcard">
<img alt="" src="./alt-net-energien_files/7897792234ea882b9a00ec2b9720ffa8" class="avatar avatar-32 photo" height="32" width="32"> <cite class="fn"><a href="https://web.archive.org/web/20100412194109/http://blog.thomasbandt.de/" rel="external nofollow" class="url">Thomas</a></cite> <span class="says">sagt:</span> </div>
<div class="comment-meta commentmetadata"><a href="https://web.archive.org/web/20100412194109/http://blog.aztec-project.org/2009/08/26/gibt-es-negative-energien-in-der-deutschen-alt-net-bewegung/comment-page-1/#comment-45">August 29, 2009 um 3:06 pm</a></div>
<div class="comment"><p>Ich glaube dass sowohl ALT.NET als auch bei uns CCD dazu führen, dass man sich als Entwickler einfach bewusster mit seiner Arbeit auseinandersetzt und eben “Prinzipien, Regeln und Praktiken für bessere Software” entwickelt und einsetzt, wie es bei CCD so schön heißt. Das hilft vor allem auch bei einer objektiveren Bewertung der Technologien, die MS so aus seinem Headquarter auf unsere Entwicklerrechner streamt Jahr für Jahr.</p></div>
<div class="comment"><p>Praktisches Beispiel: DataReader, DataSet, TypedDataset, xDataSource, LINQ to SQL oder Entity Framework das alles in nicht einmal 6 Jahren. Jeweils für “the next big thing” verkauft oder gepriesen. Jetzt kann ich hergehen und jedes Mal den aktuellsten Liebling verkaufen und preisen, oder ich greife ganz pragmatisch eben zu dem für mich gerade besten und kapsele es einfach in einem Repository, so dass es beliebig austauschbar ist. Um dahin zu kommen, muss man sich aber ein paar Gedanken rund um seinen Code bzw. die Architektur des selben machen und eben nicht alles ungeprüft nachplappern oder die unsäglichen Beispiele übernehmen. Das versetzt mich dann gleichzeitig auch mal in die Lage zu sagen, dass das Entity Framework eben immer noch scheiße ist, dass die ASP.NET-MVC-Sample-Apps zusammengestümpert sind usw. Und im Übrigen macht es MS selbst auch ein ganzes Stück besser, da sie wohl nirgendwo so schonungsloses Feedback für ihre eigenen Produkte bekommen. Von den “Zusammenklickern” können sie das jedenfalls nicht erwarten.</p></div>
<div class="comment"><p>War das jetzt eigentlich noch die Frage? Egal, ich drücke einfach mal den Absenden-Button <img src="./alt-net-energien_files/icon_wink.gif" alt=";-)" class="wp-smiley"> .</p></div>
<div class="comment"><div class="reply">
</div></div>
</div>
</li>
<li class="comment byuser comment-author-sko bypostauthor even thread-even depth-1 alt" id="comment-47">
<div id="div-comment-47" class="comment-body">
<span class="switch-post"><a href="https://web.archive.org/web/20100412194109/http://blog.aztec-project.org/2009/08/26/gibt-es-negative-energien-in-der-deutschen-alt-net-bewegung/#"><img src="./alt-net-energien_files/bullet_toggle_minus(1).png" alt="" class="png"></a></span><div class="comment-author vcard">
<img alt="" src="./alt-net-energien_files/dd231104fe0e1a7b87be55834a7c0c86.jpeg" class="avatar avatar-32 photo" height="32" width="32"> <cite class="fn">Stefan Kölle</cite> <span class="says">sagt:</span> </div>
<div class="comment-meta commentmetadata"><a href="https://web.archive.org/web/20100412194109/http://blog.aztec-project.org/2009/08/26/gibt-es-negative-energien-in-der-deutschen-alt-net-bewegung/comment-page-1/#comment-47">August 31, 2009 um 7:28 pm</a></div>
<div class="comment"><p>Spannend wohin sich meine provokante Fragestellung entwickelt. </p></div>
<div class="comment"><p>Ich sehe also grundsaetzlich, die deutsche Community mag zwar MS auch nicht immer, aber man geht viel objektiver mit dem Thema um. Ich sehe in Amerika das Problem, dass durch eine grundsaetzlich negative Einstellung auch der spirit von ALT.NET langfristig als negativ empfunden wird.</p></div>
<div class="comment"><p>Genau dies freut mich in der CCD Bewegung!</p></div>
<div class="comment"><p>Gruss<br>
Stefan</p></div>
<div class="comment"><div class="reply">
</div></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/20100412194109/http://blog.aztec-project.org/2009/08/26/gibt-es-negative-energien-in-der-deutschen-alt-net-bewegung/#respond" style="display:none;">Click here to cancel reply</a></small>
</div>
<form action="https://web.archive.org/web/20100412194109/http://blog.aztec-project.org/wp-comments-post.php" method="post" id="commentform">
<input type="hidden" name="comment_post_ID" value="592" 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="592">
</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/20100412194109/http://blog.aztec-project.org/wp-content/themes/mandigo/images/icons/bullet_toggle_minus.png" alt="" class="png" /><\/a><\/span>');
});
// ]]> -->
</script>
</td>
<script src="./alt-net-energien_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/20100412194109/http://wordpress.org/">WordPress</a>, <a href="https://web.archive.org/web/20100412194109/http://www.onehertz.com/portfolio/wordpress/" target="_blank" title="WordPress themes">Mandigo theme</a> by tom.
<br><a href="https://web.archive.org/web/20100412194109/http://blog.aztec-project.org/feed/"><img src="./alt-net-energien_files/rss_s.gif" alt=""> Einträge (RSS)</a>
und <a href="https://web.archive.org/web/20100412194109/http://blog.aztec-project.org/comments/feed/"><img src="./alt-net-energien_files/rss_s.gif" alt=""> Kommentare (RSS)</a>.
</p>
</div>
</div>
<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/20100412194109/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/20100412194109/https://ssl." : "https://web.archive.org/web/20100412194109/http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script><script src="./alt-net-energien_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></body></html>
File diff suppressed because one or more lines are too long
+527
View File
@@ -0,0 +1,527 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- saved from url=(0119)https://web.archive.org/web/20200809061640/https://blog.aztec-project.org/2009/10/30/asp-mvc-2-bei-munchener-usergroup/ -->
<html xmlns="http://www.w3.org/1999/xhtml" class=" fbrmozna idc0_350"><head profile="http://gmpg.org/xfn/11"><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><script src="./asp-mvc-2_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-app202.us.archive.org';v.server_ms=484;archive_analytics.send_pageview({});});</script>
<script type="text/javascript" src="./asp-mvc-2_files/bundle-playback.js.Download" charset="utf-8"></script>
<script type="text/javascript" src="./asp-mvc-2_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="./asp-mvc-2_files/ruffle.js.Download"></script>
<script type="text/javascript">
__wm.init("https://web.archive.org/web");
__wm.wombat("https://blog.aztec-project.org/2009/10/30/asp-mvc-2-bei-munchener-usergroup/","20200809061640","https://web.archive.org/","web","/_static/",
"1596953800");
</script>
<link rel="stylesheet" type="text/css" href="./asp-mvc-2_files/banner-styles.css">
<link rel="stylesheet" type="text/css" href="./asp-mvc-2_files/iconochive.css">
<!-- End Wayback Rewrite JS Include -->
<title>build broken » ASP.MVC 2 Vortrag von Albert bei münchener UserGroup</title>
<meta name="generator" content="WordPress 5.3.1">
<meta name="theme" content="Mandigo 1.41">
<link rel="stylesheet" href="./asp-mvc-2_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/20200809061640im_/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/20200809061640im_/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/20200809061640im_/http://blog.aztec-project.org/wp-content/themes/mandigo/images/bg-1024.png);
width: 957px;
}
#footer {
background: url(https://web.archive.org/web/20200809061640im_/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/20200809061640im_/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/20200809061640im_/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/20200809061640im_/http://blog.aztec-project.org/wp-content/themes/mandigo/images/head_overlay.png);
}
<br />
<b>Warning</b>: Use of undefined constant WPLANG - assumed 'WPLANG' (this will throw an Error in a future version of PHP) in <b>/homepages/24/d13434269/htdocs/clickandbuilds/buildbroken/wp-content/themes/mandigo/style.css.php</b> on line <b>384</b><br />
</style>
<link rel="stylesheet" href="./asp-mvc-2_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/20200809061640/https://blog.aztec-project.org/feed/">
<link rel="pingback" href="https://blog.aztec-project.org/xmlrpc.php">
<link rel="dns-prefetch" href="https://web.archive.org/web/20200809061640/https://s0.wp.com/">
<link rel="dns-prefetch" href="https://web.archive.org/web/20200809061640/https://s.w.org/">
<link rel="alternate" type="application/rss+xml" title="build broken » ASP.MVC 2 Vortrag von Albert bei münchener UserGroup Comments Feed" href="https://web.archive.org/web/20200809061640/https://blog.aztec-project.org/2009/10/30/asp-mvc-2-bei-munchener-usergroup/feed/">
<script type="text/javascript">
window._wpemojiSettings = {"baseUrl":"https:\/\/web.archive.org\/web\/20200809061640\/https:\/\/s.w.org\/images\/core\/emoji\/12.0.0-1\/72x72\/","ext":".png","svgUrl":"https:\/\/web.archive.org\/web\/20200809061640\/https:\/\/s.w.org\/images\/core\/emoji\/12.0.0-1\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/web.archive.org\/web\/20200809061640\/http:\/\/blog.aztec-project.org\/wp-includes\/js\/wp-emoji-release.min.js?ver=5.3.1"}};
!function(e,a,t){var r,n,o,i,p=a.createElement("canvas"),s=p.getContext&&p.getContext("2d");function c(e,t){var a=String.fromCharCode;s.clearRect(0,0,p.width,p.height),s.fillText(a.apply(this,e),0,0);var r=p.toDataURL();return s.clearRect(0,0,p.width,p.height),s.fillText(a.apply(this,t),0,0),r===p.toDataURL()}function l(e){if(!s||!s.fillText)return!1;switch(s.textBaseline="top",s.font="600 32px Arial",e){case"flag":return!c([127987,65039,8205,9895,65039],[127987,65039,8203,9895,65039])&&(!c([55356,56826,55356,56819],[55356,56826,8203,55356,56819])&&!c([55356,57332,56128,56423,56128,56418,56128,56421,56128,56430,56128,56423,56128,56447],[55356,57332,8203,56128,56423,8203,56128,56418,8203,56128,56421,8203,56128,56430,8203,56128,56423,8203,56128,56447]));case"emoji":return!c([55357,56424,55356,57342,8205,55358,56605,8205,55357,56424,55356,57340],[55357,56424,55356,57342,8203,55358,56605,8203,55357,56424,55356,57340])}return!1}function d(e){var t=a.createElement("script");t.src=e,t.defer=t.type="text/javascript",a.getElementsByTagName("head")[0].appendChild(t)}for(i=Array("flag","emoji"),t.supports={everything:!0,everythingExceptFlag:!0},o=0;o<i.length;o++)t.supports[i[o]]=l(i[o]),t.supports.everything=t.supports.everything&&t.supports[i[o]],"flag"!==i[o]&&(t.supports.everythingExceptFlag=t.supports.everythingExceptFlag&&t.supports[i[o]]);t.supports.everythingExceptFlag=t.supports.everythingExceptFlag&&!t.supports.flag,t.DOMReady=!1,t.readyCallback=function(){t.DOMReady=!0},t.supports.everything||(n=function(){t.readyCallback()},a.addEventListener?(a.addEventListener("DOMContentLoaded",n,!1),e.addEventListener("load",n,!1)):(e.attachEvent("onload",n),a.attachEvent("onreadystatechange",function(){"complete"===a.readyState&&t.readyCallback()})),(r=t.source||{}).concatemoji?d(r.concatemoji):r.wpemoji&&r.twemoji&&(d(r.twemoji),d(r.wpemoji)))}(window,document,window._wpemojiSettings);
</script><script src="./asp-mvc-2_files/wp-emoji-release.min.js.Download" type="text/javascript" defer=""></script>
<style type="text/css">
img.wp-smiley,
img.emoji {
display: inline !important;
border: none !important;
box-shadow: none !important;
height: 1em !important;
width: 1em !important;
margin: 0 .07em !important;
vertical-align: -0.1em !important;
background: none !important;
padding: 0 !important;
}
</style>
<link rel="stylesheet" id="wp-block-library-css" href="./asp-mvc-2_files/style.min.css" type="text/css" media="all">
<link rel="stylesheet" id="jetpack_css-css" href="./asp-mvc-2_files/jetpack.css" type="text/css" media="all">
<link rel="https://api.w.org/" href="https://blog.aztec-project.org/wp-json/">
<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="prev" title="Design by Contract jetzt auch mit C#" href="https://web.archive.org/web/20200809061640/https://blog.aztec-project.org/2009/10/26/design-by-contract-mit-c/">
<link rel="next" title="prio.conference 2009 München" href="https://web.archive.org/web/20200809061640/https://blog.aztec-project.org/2009/10/31/prio-conference-2009-munchen/">
<meta name="generator" content="WordPress 5.3.1">
<link rel="canonical" href="https://web.archive.org/web/20200809061640/https://blog.aztec-project.org/2009/10/30/asp-mvc-2-bei-munchener-usergroup/">
<link rel="shortlink" href="https://web.archive.org/web/20200809061640/https://blog.aztec-project.org/?p=692">
<link rel="alternate" type="application/json+oembed" href="https://web.archive.org/web/20200809061640/https://blog.aztec-project.org/wp-json/oembed/1.0/embed?url=http%3A%2F%2Fblog.aztec-project.org%2F2009%2F10%2F30%2Fasp-mvc-2-bei-munchener-usergroup%2F">
<link rel="alternate" type="text/xml+oembed" href="https://web.archive.org/web/20200809061640/https://blog.aztec-project.org/wp-json/oembed/1.0/embed?url=http%3A%2F%2Fblog.aztec-project.org%2F2009%2F10%2F30%2Fasp-mvc-2-bei-munchener-usergroup%2F&amp;format=xml">
<style type="text/css">img#wpstats{display:none}</style>
<script type="text/javascript" src="./asp-mvc-2_files/jquery.js.Download"></script>
<script type="text/javascript" src="./asp-mvc-2_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"></head>
<body><!-- 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/20200809061640/https%3A//blog.aztec-project.org/2009/10/30/asp-mvc-2-bei-munchener-usergroup/" 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="https://blog.aztec-project.org/2009/10/30/asp-mvc-2-bei-munchener-usergroup/" onfocus="this.focus();this.select();" style="flex:1;" autocomplete="off"><input type="hidden" name="type" value="replay"><input type="hidden" name="date" value="20200809061640"><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/*/https://blog.aztec-project.org/2009/10/30/asp-mvc-2-bei-munchener-usergroup/" title="See a list of every capture for this URL">1 capture</a><div class="r" title="Timespan for captures of this URL">9 Aug 2020</div></div>
<div class="k">
<a href="https://web.archive.org/web/20200809061640/https://blog.aztec-project.org/2009/10/30/asp-mvc-2-bei-munchener-usergroup/" 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">Jul</td>
<td class="c" id="displayMonthEl" title="You are here: 06:16:40 Aug 09, 2020">AUG</td>
<td class="f" nowrap="nowrap">Sep</td>
</tr>
<!-- NEXT/PREV CAPTURE NAV AND DAY OF MONTH INDICATOR -->
<tr class="d">
<td class="b" nowrap="nowrap"><img src="https://web.archive.org/_static/images/toolbar/wm_tb_prv_off.png" alt="Previous capture" width="14" height="16" border="0"></td>
<td class="c" id="displayDayEl" style="width:34px;font-size:22px;white-space:nowrap;" title="You are here: 06:16:40 Aug 09, 2020">09</td>
<td class="f" nowrap="nowrap"><img src="https://web.archive.org/_static/images/toolbar/wm_tb_nxt_off.png" alt="Next capture" width="14" height="16" border="0"></td>
</tr>
<!-- NEXT/PREV YEAR NAV AND YEAR INDICATOR -->
<tr class="y">
<td class="b" nowrap="nowrap">2019</td>
<td class="c" id="displayYearEl" title="You are here: 06:16:40 Aug 09, 2020">2020</td>
<td class="f" nowrap="nowrap">2021</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/20200809061640/https://blog.aztec-project.org/2009/10/30/asp-mvc-2-bei-munchener-usergroup/#" 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/20200809061640/https://blog.aztec-project.org/2009/10/30/asp-mvc-2-bei-munchener-usergroup/#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/20200809061640/http://web.archive.org/screenshot/https://blog.aztec-project.org/2009/10/30/asp-mvc-2-bei-munchener-usergroup/" id="wm-screenshot" title="screenshot" style="visibility: hidden;">
<span class="wm-icon-screen-shot"></span>
</a>
<a href="https://web.archive.org/web/20200809061640/https://blog.aztec-project.org/2009/10/30/asp-mvc-2-bei-munchener-usergroup/#" id="wm-video" title="video">
<span class="iconochive-movies"></span>
</a>
<a id="wm-share-facebook" href="https://web.archive.org/web/20200809061640/https://blog.aztec-project.org/2009/10/30/asp-mvc-2-bei-munchener-usergroup/#" data-url="https://web.archive.org/web/20200809061640/https://blog.aztec-project.org/2009/10/30/asp-mvc-2-bei-munchener-usergroup/" 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/20200809061640/https://blog.aztec-project.org/2009/10/30/asp-mvc-2-bei-munchener-usergroup/#" data-url="https://web.archive.org/web/20200809061640/https://blog.aztec-project.org/2009/10/30/asp-mvc-2-bei-munchener-usergroup/" 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/20200809061640/https://blog.aztec-project.org/2009/10/30/asp-mvc-2-bei-munchener-usergroup/#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:49%;">
<span class="c-logo" style="background-image:url(https://archive.org/services/img/commoncrawl)"></span>
<div>Collection: <a style="color:#33f;" href="https://archive.org/details/commoncrawl" target="_new"><span class="wm-title">Common Crawl</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>
Web crawl data from Common Crawl.
</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="./asp-mvc-2_files/banner-styles.css"><link rel="stylesheet" type="text/css" href="./asp-mvc-2_files/iconochive.css"><div class="wb-autocomplete-suggestions "></div></template>
</div><div id="wm-ipp-print">The Wayback Machine - https://web.archive.org/web/20200809061640/https://blog.aztec-project.org/2009/10/30/asp-mvc-2-bei-munchener-usergroup/</div>
<script type="text/javascript">//<![CDATA[
__wm.bt(750,27,25,2,"web","https://blog.aztec-project.org/2009/10/30/asp-mvc-2-bei-munchener-usergroup/","20200809061640",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/20200809061640/https://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/20200809061640/https://blog.aztec-project.org/">Home</a></li>
<li class="page_item page-item-2"><a href="https://web.archive.org/web/20200809061640/https://blog.aztec-project.org/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/20200809061640/https://blog.aztec-project.org/2009/10/26/design-by-contract-mit-c/" rel="prev">Design by Contract jetzt auch mit C#</a></div>
<div class="alignright"><a href="https://web.archive.org/web/20200809061640/https://blog.aztec-project.org/2009/10/31/prio-conference-2009-munchen/" rel="next">prio.conference 2009 München</a>&nbsp;»</div>
</div>
<div class="post" id="post-692">
<div class="postinfo">
<div class="datestamp">
<div>
<span class="cal1 cal1x">Oct</span>
<span class="cal2">30</span>
<span class="cal3">2009</span>
</div>
</div>
<span class="switch-post">
<a href="javascript:toggleSidebars();" class="switch-sidebars"><img src="./asp-mvc-2_files/bullet_sidebars_hide.png" alt="" class="png"></a><a href="javascript:togglePost(692);" id="switch-post-692"><img src="./asp-mvc-2_files/bullet_toggle_minus.png" alt="" class="png"></a>
</span>
<h2 class="posttitle"><a href="https://web.archive.org/web/20200809061640/https://blog.aztec-project.org/2009/10/30/asp-mvc-2-bei-munchener-usergroup/" rel="bookmark" title="Permanent Link: ASP.MVC 2 Vortrag von Albert bei münchener UserGroup">ASP.MVC 2 Vortrag von Albert bei münchener UserGroup</a></h2>
<small>
Posted by <a href="https://web.archive.org/web/20200809061640/https://blog.aztec-project.org/author/chi/" title="Posts by Christina Hirth">Christina Hirth</a> in <a href="https://web.archive.org/web/20200809061640/https://blog.aztec-project.org/category/mvc/" rel="category tag">MVC</a>, tags: <a href="https://web.archive.org/web/20200809061640/https://blog.aztec-project.org/tag/dot-net/" rel="tag">.NET</a>, <a href="https://web.archive.org/web/20200809061640/https://blog.aztec-project.org/tag/community/" rel="tag">Community</a>, <a href="https://web.archive.org/web/20200809061640/https://blog.aztec-project.org/tag/mvc/" rel="tag">MVC</a>, <a href="https://web.archive.org/web/20200809061640/https://blog.aztec-project.org/tag/veranstaltung/" rel="tag">Veranstaltung</a> </small>
</div>
<div class="entry">
<p>Gestern Abend waren wir alle bei einem super Vortrag von <a href="https://web.archive.org/web/20200809061640/http://der-albert.com/" target="_blank">Albert</a> über ASP.MVC v2. Die neue Version soll am 22. März zusammen mit .NET 4.0 rauskommen.<br>
Ich will jetzt nicht über all die Neuigkeiten sprechen, die wir gestern erfahren haben und worüber wir uns jetzt schon freuen müssen, nur über einen speziellen Teil: die Validierung der Daten durch Attribute.</p>
<p>Der Grund ist folgender: wir haben uns vor ca. 1 Jahr ein eigenes Attribut namens <code>ObligatoryFieldAttribut</code> gebaut. Dieses wird über die Properties gesetzt, die wir für die Speicherung als unerheblich markieren möchten. Die Überprüfung erfolgt dann durch Reflection.</p>
<p>Und was haben wir gestern erfahren? In der neue MVC-Version gibt es ein neues Attribut namens <code>Required</code>, das genau das tut!</p>
<p>Ihr könnt euch sicher vorstellen, was wir uns gestern gedacht haben: wir lagen genau richtig und wir waren unserer Zeit voraus! Oder haben unsere Büro-Nachbarn die eine <em>Microsoft Subsidiary</em> sind Kameras bei uns installiert 😉 ?</p>
<p class="postmetadata alt clear">
<small>
This entry was posted on Friday, October 30th, 2009 at 10:50 am and is filed under <a href="https://web.archive.org/web/20200809061640/https://blog.aztec-project.org/category/mvc/" rel="category tag">MVC</a>. You can follow any responses to this entry through the <a href="https://web.archive.org/web/20200809061640/https://blog.aztec-project.org/2009/10/30/asp-mvc-2-bei-munchener-usergroup/feed/">RSS 2.0</a> feed. You can <a href="https://web.archive.org/web/20200809061640/https://blog.aztec-project.org/2009/10/30/asp-mvc-2-bei-munchener-usergroup/#respond">leave a response</a>, or <a href="https://web.archive.org/web/20200809061640/https://blog.aztec-project.org/2009/10/30/asp-mvc-2-bei-munchener-usergroup/trackback/" rel="trackback">trackback</a> from your own site.
</small>
</p>
</div>
</div>
<div id="respond">
<div class="title">Leave a Reply</div>
<div class="cancel-comment-reply">
<small><a rel="nofollow" id="cancel-comment-reply-link" href="https://web.archive.org/web/20200809061640/https://blog.aztec-project.org/2009/10/30/asp-mvc-2-bei-munchener-usergroup/#respond" style="display:none;">Click here to cancel reply</a></small>
</div>
<form action="https://web.archive.org/web/20200809061640/https://blog.aztec-project.org/wp-comments-post.php" method="post" id="commentform">
<input type="hidden" name="comment_post_ID" value="692" 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 (required)</small></label></p>
<p><input type="text" name="email" id="email" value="" size="22" tabindex="2">
<label for="email"><small>E-mail (will not be published) (required)</small></label></p>
<p><input type="text" name="url" id="url" value="" size="22" tabindex="3">
<label for="url"><small>Website</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="Submit Comment">
<input type="hidden" name="comment_post_ID" value="692">
</p>
<p style="display: none;"><input type="hidden" id="akismet_comment_nonce" name="akismet_comment_nonce" value="f5dcd5d1a5"></p><p style="display: none;"></p> <br class="clear">
<input type="hidden" id="ak_js" name="ak_js" value="1596953820497"></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/20200809061640/http://blog.aztec-project.org/wp-content/themes/mandigo/images/icons/bullet_toggle_minus.png" alt="" class="png" /><\/a><\/span>');
});
// ]]> -->
</script>
</td>
</tr>
</tbody></table>
</div>
<div id="footer" class="png">
<p>
Powered by <a href="https://web.archive.org/web/20200809061640/https://wordpress.org/">WordPress</a>, <a href="https://web.archive.org/web/20200809061640/http://www.onehertz.com/portfolio/wordpress/" target="_blank" title="WordPress themes">Mandigo theme</a> by tom.
<br><a href="https://web.archive.org/web/20200809061640/https://blog.aztec-project.org/feed/"><img src="./asp-mvc-2_files/rss_s.gif" alt=""> Entries (RSS)</a>
and <a href="https://web.archive.org/web/20200809061640/https://blog.aztec-project.org/comments/feed/"><img src="./asp-mvc-2_files/rss_s.gif" alt=""> Comments (RSS)</a>.
</p>
</div>
</div>
<script type="text/javascript" src="./asp-mvc-2_files/comment-reply.min.js.Download"></script>
<script type="text/javascript" src="./asp-mvc-2_files/devicepx-jetpack.js.Download"></script>
<script type="text/javascript" src="./asp-mvc-2_files/wp-embed.min.js.Download"></script>
<script async="async" type="text/javascript" src="./asp-mvc-2_files/form.js.Download"></script>
<script type="text/javascript" src="./asp-mvc-2_files/e-202032.js.Download" async="async" defer="defer"></script>
<script type="text/javascript">
_stq = window._stq || [];
_stq.push([ 'view', {v:'ext',j:'1:8.0',blog:'170418232',post:'692',tz:'2',srv:'blog.aztec-project.org'} ]);
_stq.push([ 'clickTrackerInit', '170418232', '692' ]);
</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/20200809061640/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/20200809061640/https://ssl." : "https://web.archive.org/web/20200809061640/http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script><script src="./asp-mvc-2_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>
<img src="./asp-mvc-2_files/g.gif" alt=":)" width="6" height="5" id="wpstats"><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></body></html>
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1019 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1019 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

@@ -0,0 +1,565 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- saved from url=(0106)https://web.archive.org/web/20091119203536/http://blog.aztec-project.org/2009/07/14/clean-code-developing/ -->
<html xmlns="http://www.w3.org/1999/xhtml" class=" kdfdvfck idc0_350"><head profile="http://gmpg.org/xfn/11"><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><script src="./clean-code-developer-yellow-brick-road_files/athena.js.Download" type="592d31962d7ef6f404e4c747-text/javascript"></script>
<script type="592d31962d7ef6f404e4c747-text/javascript">window.addEventListener('DOMContentLoaded',function(){var v=archive_analytics.values;v.service='wb';v.server_name='wwwb-app218.us.archive.org';v.server_ms=387;archive_analytics.send_pageview({});});</script>
<script type="592d31962d7ef6f404e4c747-text/javascript" src="./clean-code-developer-yellow-brick-road_files/bundle-playback.js.Download" charset="utf-8"></script>
<script type="592d31962d7ef6f404e4c747-text/javascript" src="./clean-code-developer-yellow-brick-road_files/wombat.js.Download" charset="utf-8"></script>
<script type="592d31962d7ef6f404e4c747-text/javascript">window.RufflePlayer=window.RufflePlayer||{};window.RufflePlayer.config={"autoplay":"on","unmuteOverlay":"hidden"};</script>
<script type="592d31962d7ef6f404e4c747-text/javascript" src="./clean-code-developer-yellow-brick-road_files/ruffle.js.Download"></script>
<script type="592d31962d7ef6f404e4c747-text/javascript">
__wm.init("https://web.archive.org/web");
__wm.wombat("http://blog.aztec-project.org:80/2009/07/14/clean-code-developing/","20091119203536","https://web.archive.org/","web","/_static/",
"1258662936");
</script>
<link rel="stylesheet" type="text/css" href="./clean-code-developer-yellow-brick-road_files/banner-styles.css">
<link rel="stylesheet" type="text/css" href="./clean-code-developer-yellow-brick-road_files/iconochive.css">
<!-- End Wayback Rewrite JS Include -->
<title>build broken » Clean Code Developer The Yellow Brick Road of the Coder</title>
<meta name="generator" content="WordPress 2.8.6">
<meta name="theme" content="Mandigo 1.41">
<link rel="stylesheet" href="./clean-code-developer-yellow-brick-road_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/20091119203536im_/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/20091119203536im_/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/20091119203536im_/http://blog.aztec-project.org/wp-content/themes/mandigo/images/bg-1024.png);
width: 957px;
}
#footer {
background: url(https://web.archive.org/web/20091119203536im_/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/20091119203536im_/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/20091119203536im_/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/20091119203536im_/http://blog.aztec-project.org/wp-content/themes/mandigo/images/head_overlay.png);
}
</style>
<link rel="stylesheet" href="./clean-code-developer-yellow-brick-road_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/20091119203536/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 » Clean Code Developer The Yellow Brick Road of the Coder Kommentar Feed" href="https://web.archive.org/web/20091119203536/http://blog.aztec-project.org/2009/07/14/clean-code-developing/feed/">
<script type="592d31962d7ef6f404e4c747-text/javascript" src="./clean-code-developer-yellow-brick-road_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="Bericht zum Open Space Süd 2009" href="https://web.archive.org/web/20091119203536/http://blog.aztec-project.org/2009/07/13/bericht-zum-open-space-sud-2009/">
<link rel="next" title="Clean Code Teil 1" href="https://web.archive.org/web/20091119203536/http://blog.aztec-project.org/2009/08/11/clean-code-teil-1/">
<meta name="generator" content="WordPress 2.8.6">
<script type="592d31962d7ef6f404e4c747-text/javascript" src="./clean-code-developer-yellow-brick-road_files/jquery.js.Download"></script>
<script type="592d31962d7ef6f404e4c747-text/javascript" src="./clean-code-developer-yellow-brick-road_files/jquery.ifixpng.js.Download"></script>
<script type="592d31962d7ef6f404e4c747-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>
</head>
<body><!-- BEGIN WAYBACK TOOLBAR INSERT -->
<script type="592d31962d7ef6f404e4c747-text/javascript">__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;" class="">
<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/20091119203536/http%3A//blog.aztec-project.org/2009/07/14/clean-code-developing/" 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/2009/07/14/clean-code-developing/" onfocus="if (!window.__cfRLUnblockHandlers) return false; this.focus();this.select();" style="flex:1;" autocomplete="off" data-cf-modified-592d31962d7ef6f404e4c747-=""><input type="hidden" name="type" value="replay"><input type="hidden" name="date" value="20091119203536"><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/2009/07/14/clean-code-developing/" title="See a list of every capture for this URL">11 captures</a><div class="r" title="Timespan for captures of this URL">17 Jul 2009 - 7 May 2021</div></div>
<div class="k">
<a href="https://web.archive.org/web/20101001000000/http://blog.aztec-project.org/2009/07/14/clean-code-developing/" 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; left: 350px;"></div><div class="mt" style="display: none; width: 2px; height: 27px; left: 369px;"></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/20090919151234/http://blog.aztec-project.org:80/2009/07/14/clean-code-developing/" title="19 Sep 2009"><strong>Sep</strong></a></td>
<td class="c" id="displayMonthEl" title="You are here: 20:35:36 Nov 19, 2009">Nov</td>
<td class="f" nowrap="nowrap"><a href="https://web.archive.org/web/20121009004548/http://blog.aztec-project.org:80/2009/07/14/clean-code-developing/" title="09 Oct 2012"><strong>Oct</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/20090919151234/http://blog.aztec-project.org:80/2009/07/14/clean-code-developing/" title="15:12:34 Sep 19, 2009"><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: 20:35:36 Nov 19, 2009">19</td>
<td class="f" nowrap="nowrap"><a href="https://web.archive.org/web/20121009004548/http://blog.aztec-project.org:80/2009/07/14/clean-code-developing/" title="00:45:48 Oct 09, 2012"><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">2008</td>
<td class="c" id="displayYearEl" title="You are here: 20:35:36 Nov 19, 2009">2009</td>
<td class="f" nowrap="nowrap"><a href="https://web.archive.org/web/20121009004548/http://blog.aztec-project.org:80/2009/07/14/clean-code-developing/" title="09 Oct 2012"><strong>2012</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/20091119203536/http://blog.aztec-project.org/2009/07/14/clean-code-developing/#" 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/20091119203536/http://blog.aztec-project.org/2009/07/14/clean-code-developing/#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/20091119203536/http://web.archive.org/screenshot/http://blog.aztec-project.org/2009/07/14/clean-code-developing/" id="wm-screenshot" title="screenshot" style="visibility: hidden;">
<span class="wm-icon-screen-shot"></span>
</a>
<a href="https://web.archive.org/web/20091119203536/http://blog.aztec-project.org/2009/07/14/clean-code-developing/#" id="wm-video" title="video">
<span class="iconochive-movies"></span>
</a>
<a id="wm-share-facebook" href="https://web.archive.org/web/20091119203536/http://blog.aztec-project.org/2009/07/14/clean-code-developing/#" data-url="https://web.archive.org/web/20091119203536/http://blog.aztec-project.org:80/2009/07/14/clean-code-developing/" 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/20091119203536/http://blog.aztec-project.org/2009/07/14/clean-code-developing/#" data-url="https://web.archive.org/web/20091119203536/http://blog.aztec-project.org:80/2009/07/14/clean-code-developing/" 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/20091119203536/http://blog.aztec-project.org/2009/07/14/clean-code-developing/#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/alexa_web_2009)"></span>
<div>Collection: <a style="color:#33f;" href="https://archive.org/details/alexa_web_2009" target="_new"><span class="wm-title">alexa_web_2009</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>
this data is currently not publicly accessible.
</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="./clean-code-developer-yellow-brick-road_files/banner-styles.css"><link rel="stylesheet" type="text/css" href="./clean-code-developer-yellow-brick-road_files/iconochive.css"><div class="wb-autocomplete-suggestions "></div></template>
</div><div id="wm-ipp-print">The Wayback Machine - https://web.archive.org/web/20091119203536/http://blog.aztec-project.org:80/2009/07/14/clean-code-developing/</div>
<script type="592d31962d7ef6f404e4c747-text/javascript">//<![CDATA[
__wm.bt(750,27,25,2,"web","http://blog.aztec-project.org/2009/07/14/clean-code-developing/","20091119203536",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/20091119203536/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/20091119203536/http://blog.aztec-project.org/">Home</a></li>
<li class="page_item page-item-2"><a href="https://web.archive.org/web/20091119203536/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/20091119203536/http://blog.aztec-project.org/2009/07/13/bericht-zum-open-space-sud-2009/">Bericht zum Open Space Süd 2009</a></div>
<div class="alignright"><a href="https://web.archive.org/web/20091119203536/http://blog.aztec-project.org/2009/08/11/clean-code-teil-1/">Clean Code Teil 1</a>&nbsp;»</div>
</div>
<div class="post" id="post-455">
<div class="postinfo">
<div class="datestamp">
<div>
<span class="cal1 cal1x">Jul</span>
<span class="cal2">14</span>
<span class="cal3">2009</span>
</div>
</div>
<span class="switch-post">
<a href="javascript:toggleSidebars();" class="switch-sidebars"><img src="./clean-code-developer-yellow-brick-road_files/bullet_sidebars_hide.png" alt="" class="png"></a><a href="javascript:togglePost(455);" id="switch-post-455"><img src="./clean-code-developer-yellow-brick-road_files/bullet_toggle_minus.png" alt="" class="png"></a>
</span>
<h2 class="posttitle"><a href="https://web.archive.org/web/20091119203536/http://blog.aztec-project.org/2009/07/14/clean-code-developing/" rel="bookmark" title="Permanent Link: Clean Code Developer The Yellow Brick Road of the Coder">Clean Code Developer The Yellow Brick Road of the Coder</a></h2>
<small>
Geschrieben von <a href="https://web.archive.org/web/20091119203536/http://blog.aztec-project.org/author/chi/" title="Artikel von Christina Hirth">Christina Hirth</a> in <a href="https://web.archive.org/web/20091119203536/http://blog.aztec-project.org/category/clean-code-developing/" title="Alle Artikel in Clean Code Developing ansehen" rel="category tag">Clean Code Developing</a>, tags: <a href="https://web.archive.org/web/20091119203536/http://blog.aztec-project.org/tag/ccd/" rel="tag">CCD</a>, <a href="https://web.archive.org/web/20091119203536/http://blog.aztec-project.org/tag/community/" rel="tag">Community</a> </small>
</div>
<div class="entry">
<p>Seit dem ich Code schreibe, steht für mich ein klarer und verständlicher Code an oberster Stelle. Ich hatte dann vor ca. eineinhalb Jahren <a href="https://web.archive.org/web/20091119203536/http://www.amazon.de/Code-Complete-Deutsche-Ausgabe-Second/dp/386063593X/ref=sr_1_2?ie=UTF8&amp;s=books&amp;qid=1247574862&amp;sr=8-2" target="_blank">Code Complete</a> und <a href="https://web.archive.org/web/20091119203536/http://www.amazon.de/Pragmatische-Programmierer-Andrew-Hunt/dp/3446223096/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1247574887&amp;sr=1-1" target="_blank">The Pragmatic Programmer</a> gelesen und dadurch die ersten Antworten bekommen, WIE man den Code unter Kontrolle hält. Anfang 2009 sind wir ich und Stefan durch den <a href="https://web.archive.org/web/20091119203536/http://www.hanselman.com/blog/HanselminutesPodcast145SOLIDPrinciplesWithUncleBobRobertCMartin.aspx" target="_blank">Podcast von Hanselman und Uncle Bob</a> auf das Thema SOLID gestoßen und darüber auch eine ausgiebige Diskussion geführt. Eins war uns klar: die Ideen, die dahinter stecken, könnten die Antwort auf unsere Suche sein.</p>
<p>Deshalb hat mich sehr gefreut, als ich von der Seite <a href="https://web.archive.org/web/20091119203536/http://blog.aztec-project.org/2009/06/06/clean-code-developer/" target="_blank">Clean Code Developer</a> erfahren habe. Ihr Inhalt hat mich sofort begeistert. Sie beschreibt einen wahrscheinlich DEN möglichen Weg um ein <strong>professioneller Softwareentwickler</strong> zu werden.</p>
<p>Am letzten Wochenende auf dem <a href="https://web.archive.org/web/20091119203536/http://ulm.netopenspace.de/" target="_blank">.NET Open-Space-Süd</a> habe ich das große Vergnügen gehabt, <a href="https://web.archive.org/web/20091119203536/http://www.lieser-online.de/blog/" target="_blank">Stefan Lieser</a>, einen der Gründer von <a href="https://web.archive.org/web/20091119203536/http://clean-code-developer.de/" target="_blank">Clean Code Developer</a>-Seite kennen zu lernen und so konnte ich in den 2 Tagen viel über den Weg von einem <em>Creepy-Code-Programmer</em> zu einem <em>Clean-Code-Programmer</em> erfahren.</p>
<p>Die Grundidee ist ganz einfach: genauso wie ein Arzt oder ein Architekt, muss auch ein professioneller Softwareentwickler Verantwortung für seine Arbeit und für die Ergebnisse dieser Arbeit übernehmen. Er/sie muss sicherstellen, dass der Code korrekt, evolvierbar und effizient ist und dass er selbst immer sein Bestes gibt. Damit ist nicht gemeint, dass jeder ein Guru sein muss. Nein, professioneller Softwareentwickler ist derjenige, der an einem Wertesystem festhält und immer die Qualität des Codes vor den Augen hat.</p>
<p>Viele werden sagen “Wozu die Mühe, es funktioniert auch so!”. Klar, wenn man nur für den Jetzt programmiert. Dann, nach kurzer Zeit passiert das unvermeidliche: jemand oder der Entwickler selbst muss den furchterregend schlechten Code bugfixen/verändern. All diese Entwickler, die solche Aufgaben hatten, werden Tests zu schätzen wissen. Diese Tests kosten zwar etwas Mühe aber bescheren einem einen ruhigen Schlaf.</p>
<p>Zu einem genauso großen Problem führt, wenn man das elementarste aller Prinzipien nicht respektiert: <strong>D</strong>ont-<strong>R</strong>epeat-<strong>Y</strong>ourself (<a href="https://web.archive.org/web/20091119203536/http://de.wikipedia.org/wiki/Don%E2%80%99t_repeat_yourself" target="_blank">DRY</a>). Wie oft passiert, dass man eine Methode, ein Verhalten anpassen muss und überall nach verstreuten Kopien vom Code suchen muss? Könnt ihr jedes Mal garantieren, dass ihr alle erwischt habt? Das wäre keine Frage, wenn der Entwickler des Codes das DRY-Prinzip respektiert.</p>
<p>Der Code, den ein Entwickler schreibt, gehört meistens nicht ihm. Ich bin sicher, keiner von uns möchte als “Creepy-Coder” beschimpft werden, wenn jemand anderer unserer Code verstehen oder weiterentwickeln muss.</p>
<p>Nimmt eure Arbeit ernst und werdet ein professioneller Entwickler. Ihr werdet nach kürzester Zeit die Freude an einem korrekten und qualitativen Code entdecken und auch eure Teamkollegen und Chefs werden dafür dankbar sein.</p>
<p><a href="https://web.archive.org/web/20091119203536/http://dotnet-kicks.de/kick/?url=http%3a%2f%2fblog.aztec-project.org%2f2009%2f07%2f14%2fclean-code-developing%2f"><img src="./clean-code-developer-yellow-brick-road_files/KickItImageGenerator.ashx" border="0" alt="kick it on dotnet-kicks.de"></a></p>
<p class="postmetadata alt clear">
<small>
Geschrieben am Dienstag, 14. Juli 2009 um 3:14 pm und ist zu finden in <a href="https://web.archive.org/web/20091119203536/http://blog.aztec-project.org/category/clean-code-developing/" title="Alle Artikel in Clean Code Developing ansehen" rel="category tag">Clean Code Developing</a>. Du kannst die Antworten zu diesem Thema verfolgen unter <a href="https://web.archive.org/web/20091119203536/http://blog.aztec-project.org/2009/07/14/clean-code-developing/feed/">RSS 2.0</a> feed. Du kannst <a href="https://web.archive.org/web/20091119203536/http://blog.aztec-project.org/2009/07/14/clean-code-developing/#respond">Antwort</a>, oder <a href="https://web.archive.org/web/20091119203536/http://blog.aztec-project.org/2009/07/14/clean-code-developing/trackback/" rel="trackback">trackback</a> von deiner Seite.
</small>
</p>
</div>
</div>
<div id="comments">
Eine Antwort zu “Clean Code Developer The Yellow Brick Road of the Coder”
</div>
<ol class="commentlist" id="commentlist">
<li class="pingback even thread-even depth-1 alt" id="comment-31">
<div id="div-comment-31" class="comment-body">
<span class="switch-post"><a href="https://web.archive.org/web/20091119203536/http://blog.aztec-project.org/2009/07/14/clean-code-developing/#"><img src="./clean-code-developer-yellow-brick-road_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/20091119203536/http://blog.aztec-project.org/2009/08/11/clean-code-teil-1/" rel="external nofollow" class="url">build broken » Clean Code Teil 1</a></cite> <span class="says">sagt:</span> </div>
<div class="comment-meta commentmetadata"><a href="https://web.archive.org/web/20091119203536/http://blog.aztec-project.org/2009/07/14/clean-code-developing/comment-page-1/#comment-31">August 11, 2009 um 12:03 pm</a></div>
<p>[...] «&nbsp;Clean Code Developer The Yellow Brick Road of the Coder Aug 11 2009 [...]</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/20091119203536/http://blog.aztec-project.org/2009/07/14/clean-code-developing/#respond" style="display:none;">Click here to cancel reply</a></small>
</div>
<form action="https://web.archive.org/web/20091119203536/http://blog.aztec-project.org/wp-comments-post.php" method="post" id="commentform">
<input type="hidden" name="comment_post_ID" value="455" 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="455">
</p>
<br class="clear">
</form>
</div>
<script type="592d31962d7ef6f404e4c747-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/20091119203536/http://blog.aztec-project.org/wp-content/themes/mandigo/images/icons/bullet_toggle_minus.png" alt="" class="png" /><\/a><\/span>');
});
// ]]> -->
</script>
</td>
</tr>
</tbody></table>
</div>
<div id="footer" class="png">
<p>
Unterstützt von <a href="https://web.archive.org/web/20091119203536/http://wordpress.org/">WordPress</a>, <a href="https://web.archive.org/web/20091119203536/http://www.onehertz.com/portfolio/wordpress/" target="_blank" title="WordPress themes">Mandigo theme</a> by tom.
<br><a href="https://web.archive.org/web/20091119203536/http://blog.aztec-project.org/feed/"><img src="./clean-code-developer-yellow-brick-road_files/rss_s.gif" alt=""> Einträge (RSS)</a>
und <a href="https://web.archive.org/web/20091119203536/http://blog.aztec-project.org/comments/feed/"><img src="./clean-code-developer-yellow-brick-road_files/rss_s.gif" alt=""> Kommentare (RSS)</a>.
</p>
</div>
</div>
<script type="592d31962d7ef6f404e4c747-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/20091119203536/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="592d31962d7ef6f404e4c747-text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://web.archive.org/web/20091119203536/https://ssl." : "https://web.archive.org/web/20091119203536/http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script><script src="./clean-code-developer-yellow-brick-road_files/ga.js.Download" type="592d31962d7ef6f404e4c747-text/javascript"></script>
<script type="592d31962d7ef6f404e4c747-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 src="/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js" data-cf-settings="592d31962d7ef6f404e4c747-|49" defer></script></body></html>
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+591
View File
@@ -0,0 +1,591 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- saved from url=(0119)https://web.archive.org/web/20090718234545/http://blog.aztec-project.org/2009/06/06/visual-studio-code-in-html-wandeln/ -->
<html xmlns="http://www.w3.org/1999/xhtml" class=" sxwtxqsi idc0_350"><head profile="http://gmpg.org/xfn/11"><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><script src="./code-to-html_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-app210.us.archive.org';v.server_ms=477;archive_analytics.send_pageview({});});</script>
<script type="text/javascript" src="./code-to-html_files/bundle-playback.js.Download" charset="utf-8"></script>
<script type="text/javascript" src="./code-to-html_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="./code-to-html_files/ruffle.js.Download"></script>
<script type="text/javascript">
__wm.init("https://web.archive.org/web");
__wm.wombat("http://blog.aztec-project.org:80/2009/06/06/visual-studio-code-in-html-wandeln/","20090718234545","https://web.archive.org/","web","/_static/",
"1247960745");
</script>
<link rel="stylesheet" type="text/css" href="./code-to-html_files/banner-styles.css">
<link rel="stylesheet" type="text/css" href="./code-to-html_files/iconochive.css">
<!-- End Wayback Rewrite JS Include -->
<title>build broken » Visual Studio Code in HTML umwandeln</title>
<meta name="generator" content="WordPress 2.8.1">
<meta name="theme" content="Mandigo 1.41">
<link rel="stylesheet" href="./code-to-html_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/20090718234545im_/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/20090718234545im_/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/20090718234545im_/http://blog.aztec-project.org/wp-content/themes/mandigo/images/bg-1024.png);
width: 957px;
}
#footer {
background: url(https://web.archive.org/web/20090718234545im_/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/20090718234545im_/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/20090718234545im_/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/20090718234545im_/http://blog.aztec-project.org/wp-content/themes/mandigo/images/head_overlay.png);
}
</style>
<link rel="stylesheet" href="./code-to-html_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/20090718234545/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 » Kommentare-Feed zu Visual Studio Code in HTML umwandeln" href="https://web.archive.org/web/20090718234545/http://blog.aztec-project.org/2009/06/06/visual-studio-code-in-html-wandeln/feed/">
<script type="text/javascript" src="./code-to-html_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="Dynamisches Laden von Assemblies" href="https://web.archive.org/web/20090718234545/http://blog.aztec-project.org/2009/06/05/dynamisches-laden-von-assemblies/">
<link rel="next" title="Clean-Code-Developer" href="https://web.archive.org/web/20090718234545/http://blog.aztec-project.org/2009/06/06/clean-code-developer/">
<meta name="generator" content="WordPress 2.8.1">
<script type="text/javascript" src="./code-to-html_files/jquery.js.Download"></script>
<script type="text/javascript" src="./code-to-html_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>
</head>
<body><!-- 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;" class="">
<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/20090718234545/http%3A//blog.aztec-project.org/2009/06/06/visual-studio-code-in-html-wandeln/" 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/2009/06/06/visual-studio-code-in-html-wandeln/" onfocus="this.focus();this.select();" style="flex:1;" autocomplete="off"><input type="hidden" name="type" value="replay"><input type="hidden" name="date" value="20090718234545"><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/2009/06/06/visual-studio-code-in-html-wandeln/" title="See a list of every capture for this URL">1 capture</a><div class="r" title="Timespan for captures of this URL">18 Jul 2009</div></div>
<div class="k">
<a href="https://web.archive.org/web/20100401000000/http://blog.aztec-project.org/2009/06/06/visual-studio-code-in-html-wandeln/" 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; left: 350px;"></div><div class="mt" style="display: none; width: 2px; height: 27px; left: 357px;"></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">Jun</td>
<td class="c" id="displayMonthEl" title="You are here: 23:45:45 Jul 18, 2009">Jul</td>
<td class="f" nowrap="nowrap">Aug</td>
</tr>
<!-- NEXT/PREV CAPTURE NAV AND DAY OF MONTH INDICATOR -->
<tr class="d">
<td class="b" nowrap="nowrap"><img src="https://web.archive.org/_static/images/toolbar/wm_tb_prv_off.png" alt="Previous capture" width="14" height="16" border="0"></td>
<td class="c" id="displayDayEl" style="width:34px;font-size:22px;white-space:nowrap;" title="You are here: 23:45:45 Jul 18, 2009">18</td>
<td class="f" nowrap="nowrap"><img src="https://web.archive.org/_static/images/toolbar/wm_tb_nxt_off.png" alt="Next capture" width="14" height="16" border="0"></td>
</tr>
<!-- NEXT/PREV YEAR NAV AND YEAR INDICATOR -->
<tr class="y">
<td class="b" nowrap="nowrap">2008</td>
<td class="c" id="displayYearEl" title="You are here: 23:45:45 Jul 18, 2009">2009</td>
<td class="f" nowrap="nowrap">2010</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/20090718234545/http://blog.aztec-project.org/2009/06/06/visual-studio-code-in-html-wandeln/#" 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/20090718234545/http://blog.aztec-project.org/2009/06/06/visual-studio-code-in-html-wandeln/#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/20090718234545/http://web.archive.org/screenshot/http://blog.aztec-project.org/2009/06/06/visual-studio-code-in-html-wandeln/" id="wm-screenshot" title="screenshot" style="visibility: hidden;">
<span class="wm-icon-screen-shot"></span>
</a>
<a href="https://web.archive.org/web/20090718234545/http://blog.aztec-project.org/2009/06/06/visual-studio-code-in-html-wandeln/#" id="wm-video" title="video">
<span class="iconochive-movies"></span>
</a>
<a id="wm-share-facebook" href="https://web.archive.org/web/20090718234545/http://blog.aztec-project.org/2009/06/06/visual-studio-code-in-html-wandeln/#" data-url="https://web.archive.org/web/20090718234545/http://blog.aztec-project.org:80/2009/06/06/visual-studio-code-in-html-wandeln/" 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/20090718234545/http://blog.aztec-project.org/2009/06/06/visual-studio-code-in-html-wandeln/#" data-url="https://web.archive.org/web/20090718234545/http://blog.aztec-project.org:80/2009/06/06/visual-studio-code-in-html-wandeln/" 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/20090718234545/http://blog.aztec-project.org/2009/06/06/visual-studio-code-in-html-wandeln/#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/alexa_web_2009)"></span>
<div>Collection: <a style="color:#33f;" href="https://archive.org/details/alexa_web_2009" target="_new"><span class="wm-title">alexa_web_2009</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>
this data is currently not publicly accessible.
</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="./code-to-html_files/banner-styles.css"><link rel="stylesheet" type="text/css" href="./code-to-html_files/iconochive.css"><div class="wb-autocomplete-suggestions "></div></template>
</div><div id="wm-ipp-print">The Wayback Machine - https://web.archive.org/web/20090718234545/http://blog.aztec-project.org:80/2009/06/06/visual-studio-code-in-html-wandeln/</div>
<script type="text/javascript">//<![CDATA[
__wm.bt(750,27,25,2,"web","http://blog.aztec-project.org/2009/06/06/visual-studio-code-in-html-wandeln/","20090718234545",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/20090718234545/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">we should think of a subtitle :)</h6><span class="blogdesc text-stroke-br">we should think of a subtitle :)</span><span class="blogdesc text-stroke-bl">we should think of a subtitle :)</span><span class="blogdesc text-stroke-tr">we should think of a subtitle :)</span><span class="blogdesc text-stroke-tl">we should think of a subtitle :)</span>
<ul class="pages png head_overlay">
<li class="page_item"><a href="https://web.archive.org/web/20090718234545/http://blog.aztec-project.org/">Home</a></li>
<li class="page_item page-item-2"><a href="https://web.archive.org/web/20090718234545/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/20090718234545/http://blog.aztec-project.org/2009/06/05/dynamisches-laden-von-assemblies/">Dynamisches Laden von Assemblies</a></div>
<div class="alignright"><a href="https://web.archive.org/web/20090718234545/http://blog.aztec-project.org/2009/06/06/clean-code-developer/">Clean-Code-Developer</a>&nbsp;»</div>
</div>
<div class="post" id="post-70">
<div class="postinfo">
<div class="datestamp">
<div>
<span class="cal1 cal1x">Jun</span>
<span class="cal2">06</span>
<span class="cal3">2009</span>
</div>
</div>
<span class="switch-post">
<a href="javascript:toggleSidebars();" class="switch-sidebars"><img src="./code-to-html_files/bullet_sidebars_hide.png" alt="" class="png"></a><a href="javascript:togglePost(70);" id="switch-post-70"><img src="./code-to-html_files/bullet_toggle_minus.png" alt="" class="png"></a>
</span>
<h2 class="posttitle"><a href="https://web.archive.org/web/20090718234545/http://blog.aztec-project.org/2009/06/06/visual-studio-code-in-html-wandeln/" rel="bookmark" title="Permanent Link: Visual Studio Code in HTML umwandeln">Visual Studio Code in HTML umwandeln</a></h2>
<small>
Geschrieben von <a href="https://web.archive.org/web/20090718234545/http://blog.aztec-project.org/author/ase/" title="Beiträge von Andreas Seebauer">Andreas Seebauer</a> in <a href="https://web.archive.org/web/20090718234545/http://blog.aztec-project.org/category/visual-studio-addins/" title="Alle Artikel in Visual Studio Addins anzeigen" rel="category tag">Visual Studio Addins</a>, tags: <a href="https://web.archive.org/web/20090718234545/http://blog.aztec-project.org/tag/addin/" rel="tag">Addin</a>, <a href="https://web.archive.org/web/20090718234545/http://blog.aztec-project.org/tag/html/" rel="tag">HTML</a>, <a href="https://web.archive.org/web/20090718234545/http://blog.aztec-project.org/tag/sourcecode/" rel="tag">Sourcecode</a>, <a href="https://web.archive.org/web/20090718234545/http://blog.aztec-project.org/tag/visual-studio/" rel="tag">Visual Studio</a>, <a href="https://web.archive.org/web/20090718234545/http://blog.aztec-project.org/tag/wordpress/" rel="tag">Wordpress</a> </small>
</div>
<div class="entry">
<p>Da wir kein geeignetes Plugin für Wordpress gefunden haben, um .NET-Code wie in Visual Studio darzustellen, habe ich ein wenig gegooglet und bin auf ein Addin namens “Copy Source As HTML” für Visual Studio 2008 gestoßen. Mit diesem Addin ist es möglich, seinen Sourcecode schön formatiert in HTML umzuwandeln.</p>
<p>Downloadlink und Anleitung findet man <a href="https://web.archive.org/web/20090718234545/http://www.jtleigh.com/people/colin/software/CopySourceAsHtml/" target="_blank">hier</a>.</p>
<p style="margin: 0px;">Nach der Installation steht im Kontextmenü neben Copy, Paste usw. auch der Punkt “Copy As HTML…” zur Verfügung. Bevor der umgewandelte Sourcecode in den Zwischenspeicher gespeichert wird, hat man die Möglichkeit, seine Konfiguration anzupassen.</p>
<p style="margin: 0px;">
</p><p style="margin: 0px;">Hierfür habe ich folgende Konfiguration verwendet:</p>
<p style="margin: 0px;">
</p><p><img src="./code-to-html_files/config.jpg" alt="Config" border="0"></p>
<p style="margin: 0px;">
</p><p style="margin: 0px;">Nach der Bestätigung der Konfiguration sieht das Ergebnis folgendermaßen aus :</p>
<p style="margin: 0px;">&nbsp;</p>
<div style="font-family: Courier New; font-size: 10pt; color: black; background: white;">
<pre style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;12</span>&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: gray;">///</span><span style="color: green;"> </span><span style="color: gray;">&lt;summary&gt;</span></pre>
<pre style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;13</span>&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: gray;">///</span><span style="color: green;"> Summary</span></pre>
<pre style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;14</span>&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: gray;">///</span><span style="color: green;"> </span><span style="color: gray;">&lt;/summary&gt;</span></pre>
<pre style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;15</span>&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: blue;">class</span> <span style="color: #2b91af;">Program</span> {</pre>
<pre style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;16</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">static</span> <span style="color: blue;">void</span> Main() {</pre>
<pre style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;17</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: green;">// Kommentar</span></pre>
<pre style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;18</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">Console</span>.WriteLine(<span style="color: #a31515;">"Hello World"</span>);</pre>
<pre style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;19</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</pre>
<pre style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;20</span>&nbsp;&nbsp;&nbsp;&nbsp; }</pre>
</div>
<p style="margin: 0px;">
</p><p class="postmetadata alt clear">
<small>
Geschrieben am Samstag, 6. Juni 2009 um 10:28 und ist zu finden in <a href="https://web.archive.org/web/20090718234545/http://blog.aztec-project.org/category/visual-studio-addins/" title="Alle Artikel in Visual Studio Addins anzeigen" rel="category tag">Visual Studio Addins</a>. Du kannst die Antworten zu diesem Thema verfolgen unter <a href="https://web.archive.org/web/20090718234545/http://blog.aztec-project.org/2009/06/06/visual-studio-code-in-html-wandeln/feed/">RSS 2.0</a> feed. Du kannst <a href="https://web.archive.org/web/20090718234545/http://blog.aztec-project.org/2009/06/06/visual-studio-code-in-html-wandeln/#respond">Antwort</a>, oder <a href="https://web.archive.org/web/20090718234545/http://blog.aztec-project.org/2009/06/06/visual-studio-code-in-html-wandeln/trackback/" rel="trackback">trackback</a> von deiner Seite.
</small>
</p>
</div>
</div>
<div id="comments">
2 Antworten zu “Visual Studio Code in HTML umwandeln”
</div>
<ol class="commentlist" id="commentlist">
<li class="comment byuser comment-author-sko even thread-even depth-1 alt" id="comment-2">
<div id="div-comment-2" class="comment-body">
<span class="switch-post"><a href="https://web.archive.org/web/20090718234545/http://blog.aztec-project.org/2009/06/06/visual-studio-code-in-html-wandeln/#"><img src="./code-to-html_files/bullet_toggle_minus(1).png" alt="" class="png"></a></span><div class="comment-author vcard">
<img alt="" src="./code-to-html_files/dd231104fe0e1a7b87be55834a7c0c86.jpeg" class="avatar avatar-32 photo" height="32" width="32"> <cite class="fn">Stefan Kölle</cite> <span class="says">sagt:</span> </div>
<div class="comment-meta commentmetadata"><a href="https://web.archive.org/web/20090718234545/http://blog.aztec-project.org/2009/06/06/visual-studio-code-in-html-wandeln/comment-page-1/#comment-2">Juni 9, 2009 um 12:23 </a></div>
<div class="comment"><p>Leider kann man den Code vom Blog dann nur schwer wieder in Visual Studio zurueck kopieren.</p></div>
<div class="comment"><div class="reply">
</div></div>
</div>
</li>
<li class="comment byuser comment-author-tch odd alt thread-odd thread-alt depth-1" id="comment-4">
<div id="div-comment-4" class="comment-body">
<span class="switch-post"><a href="https://web.archive.org/web/20090718234545/http://blog.aztec-project.org/2009/06/06/visual-studio-code-in-html-wandeln/#"><img src="./code-to-html_files/bullet_toggle_minus(1).png" alt="" class="png"></a></span><div class="comment-author vcard">
<img alt="" src="./code-to-html_files/ad516503a11cd5ca435acc9bb6523536.png" class="avatar avatar-32 photo" height="32" width="32"> <cite class="fn">Thomas Christian</cite> <span class="says">sagt:</span> </div>
<div class="comment-meta commentmetadata"><a href="https://web.archive.org/web/20090718234545/http://blog.aztec-project.org/2009/06/06/visual-studio-code-in-html-wandeln/comment-page-1/#comment-4">Juni 10, 2009 um 11:45 </a></div>
<div class="comment"><p>Wenn man die “Number lines from” weglässt, dann kann man den Code wieder gut aus der Seite kopieren.</p></div>
<div class="comment"><div class="reply">
</div></div>
</div>
</li>
<li style="display: none;" class="alt">&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/20090718234545/http://blog.aztec-project.org/2009/06/06/visual-studio-code-in-html-wandeln/#respond" style="display:none;">Click here to cancel reply</a></small>
</div>
<form action="https://web.archive.org/web/20090718234545/http://blog.aztec-project.org/wp-comments-post.php" method="post" id="commentform">
<input type="hidden" name="comment_post_ID" value="70" 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="70">
</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/20090718234545/http://blog.aztec-project.org/wp-content/themes/mandigo/images/icons/bullet_toggle_minus.png" alt="" class="png" /><\/a><\/span>');
});
// ]]> -->
</script>
</td>
</tr>
</tbody></table>
</div>
<div id="footer" class="png">
<p>
Unterstützt von <a href="https://web.archive.org/web/20090718234545/http://wordpress.org/">WordPress</a>, <a href="https://web.archive.org/web/20090718234545/http://www.onehertz.com/portfolio/wordpress/" target="_blank" title="WordPress themes">Mandigo theme</a> by tom.
<br><a href="https://web.archive.org/web/20090718234545/http://blog.aztec-project.org/feed/"><img src="./code-to-html_files/rss_s.gif" alt=""> Einträge (RSS)</a>
und <a href="https://web.archive.org/web/20090718234545/http://blog.aztec-project.org/comments/feed/"><img src="./code-to-html_files/rss_s.gif" alt=""> Kommentare (RSS)</a>.
</p>
</div>
</div>
<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/20090718234545/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/20090718234545/https://ssl." : "https://web.archive.org/web/20090718234545/http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script><script src="./code-to-html_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></body></html>
Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

@@ -0,0 +1,663 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- saved from url=(0110)https://web.archive.org/web/20100312070014/http://blog.aztec-project.org/2009/11/05/design-by-contract-teil-2/ -->
<html xmlns="http://www.w3.org/1999/xhtml" class=" ybzqiqr idc0_350"><head profile="http://gmpg.org/xfn/11"><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><script src="./design-by-contract-teil2_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-app215.us.archive.org';v.server_ms=408;archive_analytics.send_pageview({});});</script>
<script type="text/javascript" src="./design-by-contract-teil2_files/bundle-playback.js.Download" charset="utf-8"></script>
<script type="text/javascript" src="./design-by-contract-teil2_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="./design-by-contract-teil2_files/ruffle.js.Download"></script>
<script type="text/javascript">
__wm.init("https://web.archive.org/web");
__wm.wombat("http://blog.aztec-project.org:80/2009/11/05/design-by-contract-teil-2/","20100312070014","https://web.archive.org/","web","/_static/",
"1268377214");
</script>
<link rel="stylesheet" type="text/css" href="./design-by-contract-teil2_files/banner-styles.css">
<link rel="stylesheet" type="text/css" href="./design-by-contract-teil2_files/iconochive.css">
<!-- End Wayback Rewrite JS Include -->
<title>build broken » Design by Contract jetzt auch mit C# Teil 2</title>
<meta name="generator" content="WordPress abc">
<meta name="theme" content="Mandigo 1.41">
<link rel="stylesheet" href="./design-by-contract-teil2_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/20100312070014im_/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/20100312070014im_/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/20100312070014im_/http://blog.aztec-project.org/wp-content/themes/mandigo/images/bg-1024.png);
width: 957px;
}
#footer {
background: url(https://web.archive.org/web/20100312070014im_/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/20100312070014im_/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/20100312070014im_/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/20100312070014im_/http://blog.aztec-project.org/wp-content/themes/mandigo/images/head_overlay.png);
}
</style>
<link rel="stylesheet" href="./design-by-contract-teil2_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/20100312070014/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 » Design by Contract jetzt auch mit C# Teil 2 Kommentar Feed" href="https://web.archive.org/web/20100312070014/http://blog.aztec-project.org/2009/11/05/design-by-contract-teil-2/feed/">
<script type="text/javascript" src="./design-by-contract-teil2_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="Clean Code Teil 2" href="https://web.archive.org/web/20100312070014/http://blog.aztec-project.org/2009/11/04/clean-code-teil-2/">
<link rel="next" title="MVP mit WinForms (Model-View-Presenter)" href="https://web.archive.org/web/20100312070014/http://blog.aztec-project.org/2009/12/02/mvp-mit-winforms-model-view-presenter/">
<link rel="canonical" href="https://web.archive.org/web/20100312070014/http://blog.aztec-project.org/2009/11/05/design-by-contract-teil-2/">
<script type="text/javascript" src="./design-by-contract-teil2_files/jquery.js.Download"></script>
<script type="text/javascript" src="./design-by-contract-teil2_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>
</head>
<body><!-- 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;" class="">
<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/20100312070014/http%3A//blog.aztec-project.org/2009/11/05/design-by-contract-teil-2/" 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/2009/11/05/design-by-contract-teil-2/" onfocus="this.focus();this.select();" style="flex:1;" autocomplete="off"><input type="hidden" name="type" value="replay"><input type="hidden" name="date" value="20100312070014"><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/2009/11/05/design-by-contract-teil-2/" title="See a list of every capture for this URL">11 captures</a><div class="r" title="Timespan for captures of this URL">8 Nov 2009 - 7 May 2021</div></div>
<div class="k">
<a href="https://web.archive.org/web/20030701000000/http://blog.aztec-project.org/2009/11/05/design-by-contract-teil-2/" 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; left: 175px;"></div><div class="mt" style="display: none; width: 2px; height: 27px; left: 188px;"></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/20091109094541/http://blog.aztec-project.org:80/2009/11/05/design-by-contract-teil-2/" title="09 Nov 2009"><strong>Nov</strong></a></td>
<td class="c" id="displayMonthEl" title="You are here: 07:00:14 Mar 12, 2010">Mar</td>
<td class="f" nowrap="nowrap"><a href="https://web.archive.org/web/20140804121108/http://blog.aztec-project.org:80/2009/11/05/design-by-contract-teil-2" title="04 Aug 2014"><strong>Aug</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/20091109094541/http://blog.aztec-project.org:80/2009/11/05/design-by-contract-teil-2/" title="09:45:41 Nov 09, 2009"><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: 07:00:14 Mar 12, 2010">12</td>
<td class="f" nowrap="nowrap"><a href="https://web.archive.org/web/20140804121108/http://blog.aztec-project.org:80/2009/11/05/design-by-contract-teil-2" title="12:11:08 Aug 04, 2014"><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">2009</td>
<td class="c" id="displayYearEl" title="You are here: 07:00:14 Mar 12, 2010">2010</td>
<td class="f" nowrap="nowrap"><a href="https://web.archive.org/web/20140804121108/http://blog.aztec-project.org:80/2009/11/05/design-by-contract-teil-2" title="04 Aug 2014"><strong>2014</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/20100312070014/http://blog.aztec-project.org/2009/11/05/design-by-contract-teil-2/#" 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/20100312070014/http://blog.aztec-project.org/2009/11/05/design-by-contract-teil-2/#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/20100312070014/http://web.archive.org/screenshot/http://blog.aztec-project.org/2009/11/05/design-by-contract-teil-2/" id="wm-screenshot" title="screenshot" style="visibility: hidden;">
<span class="wm-icon-screen-shot"></span>
</a>
<a href="https://web.archive.org/web/20100312070014/http://blog.aztec-project.org/2009/11/05/design-by-contract-teil-2/#" id="wm-video" title="video">
<span class="iconochive-movies"></span>
</a>
<a id="wm-share-facebook" href="https://web.archive.org/web/20100312070014/http://blog.aztec-project.org/2009/11/05/design-by-contract-teil-2/#" data-url="https://web.archive.org/web/20100312070014/http://blog.aztec-project.org:80/2009/11/05/design-by-contract-teil-2/" 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/20100312070014/http://blog.aztec-project.org/2009/11/05/design-by-contract-teil-2/#" data-url="https://web.archive.org/web/20100312070014/http://blog.aztec-project.org:80/2009/11/05/design-by-contract-teil-2/" 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/20100312070014/http://blog.aztec-project.org/2009/11/05/design-by-contract-teil-2/#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/alexa_web_2010)"></span>
<div>Collection: <a style="color:#33f;" href="https://archive.org/details/alexa_web_2010" target="_new"><span class="wm-title">alexa_web_2010</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>
this data is currently not publicly accessible.
</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="./design-by-contract-teil2_files/banner-styles.css"><link rel="stylesheet" type="text/css" href="./design-by-contract-teil2_files/iconochive.css"><div class="wb-autocomplete-suggestions "></div></template>
</div><div id="wm-ipp-print">The Wayback Machine - https://web.archive.org/web/20100312070014/http://blog.aztec-project.org:80/2009/11/05/design-by-contract-teil-2/</div>
<script type="text/javascript">//<![CDATA[
__wm.bt(750,27,25,2,"web","http://blog.aztec-project.org/2009/11/05/design-by-contract-teil-2/","20100312070014",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/20100312070014/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/20100312070014/http://blog.aztec-project.org/">Home</a></li>
<li class="page_item page-item-2"><a href="https://web.archive.org/web/20100312070014/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/20100312070014/http://blog.aztec-project.org/2009/11/04/clean-code-teil-2/" rel="prev">Clean Code Teil 2</a></div>
<div class="alignright"><a href="https://web.archive.org/web/20100312070014/http://blog.aztec-project.org/2009/12/02/mvp-mit-winforms-model-view-presenter/" rel="next">MVP mit WinForms (Model-View-Presenter)</a>&nbsp;»</div>
</div>
<div class="post" id="post-801">
<div class="postinfo">
<div class="datestamp">
<div>
<span class="cal1 cal1x">Nov</span>
<span class="cal2">05</span>
<span class="cal3">2009</span>
</div>
</div>
<span class="switch-post">
<a href="javascript:toggleSidebars();" class="switch-sidebars"><img src="./design-by-contract-teil2_files/bullet_sidebars_hide.png" alt="" class="png"></a><a href="javascript:togglePost(801);" id="switch-post-801"><img src="./design-by-contract-teil2_files/bullet_toggle_minus.png" alt="" class="png"></a>
</span>
<h2 class="posttitle"><a href="https://web.archive.org/web/20100312070014/http://blog.aztec-project.org/2009/11/05/design-by-contract-teil-2/" rel="bookmark" title="Permanent Link: Design by Contract jetzt auch mit C# Teil 2">Design by Contract jetzt auch mit C# Teil 2</a></h2>
<small>
Geschrieben von <a href="https://web.archive.org/web/20100312070014/http://blog.aztec-project.org/author/chi/" title="Artikel von Christina Hirth">Christina Hirth</a> in <a href="https://web.archive.org/web/20100312070014/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/20100312070014/http://blog.aztec-project.org/category/clean-code-developing/" title="Alle Artikel in Clean Code Developing ansehen" rel="category tag">Clean Code Developing</a>, tags: <a href="https://web.archive.org/web/20100312070014/http://blog.aztec-project.org/tag/architektur/" rel="tag">Architektur</a>, <a href="https://web.archive.org/web/20100312070014/http://blog.aztec-project.org/tag/clean-code/" rel="tag">Clean Code</a>, <a href="https://web.archive.org/web/20100312070014/http://blog.aztec-project.org/tag/unit-tests/" rel="tag">Unit-Tests</a> </small>
</div>
<div class="entry">
<p>Der vorherige DbC-Artikel ist ziemlich “abstrakt” ausgefallen, es haben einfach Beispiele gefehlt. Das möchte ich hiermit nachholen.</p>
<p>Erstens muss man die IDE anpassen: im März kommt .NET 4.0 raus und da wird Design by Contract mitgeliefert. Man kann das Konzept aber jetzt schon anwenden, wenn man die <a href="https://web.archive.org/web/20100312070014/http://msdn.microsoft.com/en-us/devlabs/dd491992.aspx" target="_blank">Assembly</a> zusätzlich installiert. Danach muss man die dll referenzieren und im Eigenschaftenfenster des Projektes im neuen Tab <i>Code Contracts</i> das Runtime Checking einstellen.</p>
<p>Jetzt zum Code: Nehmen wir eine ganz einfache Klasse <code>Bill</code> deren Objekte mit einem <code>IRepository</code> gespeichert bzw. geladen werden.</p>
<div style="font-family: Courier New; font-size: 9pt; color: black; background: white;">
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;&nbsp;1</span>&nbsp;<span style="color: blue;">using</span> System.Diagnostics.Contracts;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;&nbsp;2</span>&nbsp;<span style="color: blue;">namespace</span> ContractsPrototyp</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;&nbsp;3</span>&nbsp;{</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;&nbsp;4</span>&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: blue;">public</span> <span style="color: blue;">class</span> <span style="color: #2b91af;">Bill</span></p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;&nbsp;5</span>&nbsp;&nbsp;&nbsp;&nbsp; {</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;&nbsp;6</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">public</span> <span style="color: blue;">int</span> Id { <span style="color: blue;">get</span>; <span style="color: blue;">set</span>; }</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;&nbsp;7</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">public</span> <span style="color: blue;">string</span> Number { <span style="color: blue;">get</span>; <span style="color: blue;">set</span>; }</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;&nbsp;8</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">public</span> <span style="color: blue;">double</span> Value { <span style="color: blue;">get</span>; <span style="color: blue;">set</span>; }</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;&nbsp;9</span>&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;10</span>&nbsp;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;11</span></p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;12</span>&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: blue;">public</span> <span style="color: blue;">interface</span> <span style="color: #2b91af;">IRepository</span></p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;13</span>&nbsp;&nbsp;&nbsp;&nbsp; {</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;14</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">Bill</span> GetBill(<span style="color: blue;">string</span> number);</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;15</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">void</span> SaveBill(<span style="color: #2b91af;">Bill</span> bill);</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;16</span>&nbsp;&nbsp;&nbsp;&nbsp; }</p>
</div>
<p>Die Kontrakte kann man in den einzelnen Methoden oder für eine ganze Klasse schreiben (unter dem Attribut <code>ContractInvariantMethode</code>) aber ich finde am schönsten, dass man die auch auslagern kann: durch eine gegenseitige Markierung können Kontrakt-Klassen und Interfaces als “Paare” definiert werden:</p>
<div style="font-family: Courier New; font-size: 9pt; color: black; background: white;">
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;11</span>&nbsp;&nbsp;&nbsp;&nbsp; [<span style="color: #2b91af;">ContractClass</span>(<span style="color: blue;">typeof</span>(<span style="color: #2b91af;">RepositoryContracts</span>))]</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;12</span>&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: blue;">public</span> <span style="color: blue;">interface</span> <span style="color: #2b91af;">IRepository</span></p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;13</span>&nbsp;&nbsp;&nbsp;&nbsp; {</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;14</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">Bill</span> GetBill(<span style="color: blue;">string</span> number);</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;15</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">void</span> SaveBill(<span style="color: #2b91af;">Bill</span> bill);</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;16</span>&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;17</span>&nbsp;&nbsp;&nbsp;&nbsp; [<span style="color: #2b91af;">ContractClassFor</span>(<span style="color: blue;">typeof</span>(<span style="color: #2b91af;">IRepository</span>))]</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;18</span>&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: blue;">public</span> <span style="color: blue;">class</span> <span style="color: #2b91af;">RepositoryContracts</span>:<span style="color: #2b91af;">IRepository</span></p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;19</span>&nbsp;&nbsp;&nbsp;&nbsp; {</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;20</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">public</span> <span style="color: #2b91af;">Bill</span> GetBill(<span style="color: blue;">string</span> number)</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;21</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;22</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">Contract</span>.Requires(!<span style="color: blue;">string</span>.IsNullOrEmpty(number));</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;23</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">return</span> <span style="color: blue;">null</span>;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;24</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;25</span>&nbsp;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;26</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">public</span> <span style="color: blue;">void</span> SaveBill(<span style="color: #2b91af;">Bill</span> bill)</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;27</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;28</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">Contract</span>.Ensures(bill.Id &gt; 0);</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;29</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;30</span>&nbsp;&nbsp;&nbsp;&nbsp; }</p>
</div>
<p>Eine Vorbedingung wird mit <code>Contract.Requires</code> und eine Nachbedingung mit <code>Contract.Ensures</code> definiert. Beide Methoden bekommen boolische Ausdrücke. Diese Ausdrücke müssen frei von Seiteneffekten sein. </p>
<p>Die eigentliche Implementierung der Klasse schaut dann so aus:</p>
<div style="font-family: Courier New; font-size: 9pt; color: black; background: white;">
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;31</span>&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: blue;">public</span> <span style="color: blue;">class</span> <span style="color: #2b91af;">Repository</span>:<span style="color: #2b91af;">IRepository</span></p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;32</span>&nbsp;&nbsp;&nbsp;&nbsp; {</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;33</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">public</span> <span style="color: #2b91af;">Bill</span> GetBill(<span style="color: blue;">string</span> nummer)</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;34</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;35</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: green;">//Würde das Objekt aus Datenhaltung laden</span></p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;36</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">return</span> <span style="color: blue;">new</span> <span style="color: #2b91af;">Bill</span>();</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;37</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;38</span>&nbsp;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;39</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">public</span> <span style="color: blue;">void</span> SaveBill(<span style="color: #2b91af;">Bill</span> bill)</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;40</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;41</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: green;">//Würde das Objekt speichern und ihm eine Id zuweisen</span></p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;42</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">if</span> (BillIsValid( bill )) bill.Id++;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;43</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;44</span>&nbsp;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;45</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">private</span> <span style="color: blue;">static</span> <span style="color: blue;">bool</span> BillIsValid(<span style="color: #2b91af;">Bill</span> bill)</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;46</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;47</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">return</span> !<span style="color: blue;">string</span>.IsNullOrEmpty(bill.Nummer);</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;48</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;49</span>&nbsp;&nbsp;&nbsp;&nbsp; }</p>
</div>
<p>Woher können wir wissen, dass das funktioniert? Es ist einfach, wir schreiben ein Paar Tests dazu!<br>
Bei Kontraktverletzung wird eine Exception geworfen. Um diese und dadurch die genaue Verletzung überprüfen zu können braucht man etwas Workaround:</p>
<div style="font-family: Courier New; font-size: 9pt; color: black; background: white;">
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;55</span>&nbsp;&nbsp;&nbsp;&nbsp; [<span style="color: #2b91af;">TestFixture</span>]</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;56</span>&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: blue;">public</span> <span style="color: blue;">class</span> <span style="color: #2b91af;">BillTests</span></p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;57</span>&nbsp;&nbsp;&nbsp;&nbsp; {</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;58</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">private</span> <span style="color: #2b91af;">IRepository</span> m_repository;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;59</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">private</span> <span style="color: blue;">string</span> m_message;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;60</span>&nbsp;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;61</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; [<span style="color: #2b91af;">SetUp</span>]</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;62</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">public</span> <span style="color: blue;">void</span> Setup()</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;63</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;64</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; m_repository = <span style="color: blue;">new</span> <span style="color: #2b91af;">Repository</span>();</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;65</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; m_message = <span style="color: blue;">string</span>.Empty;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;66</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">Contract</span>.ContractFailed += ( sender, e ) =&gt;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;67</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;68</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; e.SetUnwind();</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;69</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; m_message = e.Message;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;70</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; };</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;71</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p>
</div>
<p>Danach sind die Tests dann einfach:</p>
<div style="font-family: Courier New; font-size: 9pt; color: black; background: white;">
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;73</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; [<span style="color: #2b91af;">Test</span>]</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;74</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">public</span> <span style="color: blue;">void</span> Laden_mit_leerer_Nummer_verletzt_Kontrakt()</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;75</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;76</span>&nbsp;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;77</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">try</span></p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;78</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;79</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; m_repository.GetBill( <span style="color: blue;">null</span> );</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;80</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;81</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">catch</span></p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;82</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;83</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: green;">//Nichts </span></p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;84</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;85</span>&nbsp;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;86</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">Assert</span>.That( m_message, <span style="color: #2b91af;">Is</span>.EqualTo( <span style="color: #a31515;">"Precondition failed: !string.IsNullOrEmpty(number)"</span> ) );</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;87</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;88</span>&nbsp;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;89</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; [<span style="color: #2b91af;">Test</span>]</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;90</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">public</span> <span style="color: blue;">void</span> Speichern_Rechnung_ohne_Nummer_verletzt_Kontrakt()</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;91</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;92</span>&nbsp;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;93</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">try</span></p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;94</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;95</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; m_repository.SaveBill( <span style="color: blue;">new</span> <span style="color: #2b91af;">Bill</span>{Value = 25} );</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;96</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;97</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">catch</span></p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;98</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;99</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: green;">//Nichts </span></p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;100</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;101</span>&nbsp;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;102</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">Assert</span>.That( m_message, <span style="color: #2b91af;">Is</span>.EqualTo( <span style="color: #a31515;">"Postcondition failed: bill.Id &gt; 0"</span> ) );</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;103</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p>
</div>
<p>Ich hoffe, das Beispiel ist ausführlich genug, um die Vorteile von DbC zu highlighten. <a href="https://web.archive.org/web/20100312070014/http://www.lieser-online.de/blog/" target="_blank">Stefan</a>, vielen dank noch mal für den Artikel, ich habe mich natürlich von dir inspirieren lassen.</p>
<p><a href="https://web.archive.org/web/20100312070014/http://dotnet-kicks.de/kick/?url=http%3a%2f%2fblog.aztec-project.org%2f2009%2f11%2f05%2fdesign-by-contract-teil-2%2f" target="_blank"><img src="./design-by-contract-teil2_files/KickItImageGenerator.ashx" alt="kick it on dotnet-kicks.de" border="0"></a></p>
<p class="postmetadata alt clear">
<small>
Geschrieben am Donnerstag, 5. November 2009 um 9:51 am und ist zu finden in <a href="https://web.archive.org/web/20100312070014/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/20100312070014/http://blog.aztec-project.org/category/clean-code-developing/" title="Alle Artikel in Clean Code Developing ansehen" rel="category tag">Clean Code Developing</a>. Du kannst die Antworten zu diesem Thema verfolgen unter <a href="https://web.archive.org/web/20100312070014/http://blog.aztec-project.org/2009/11/05/design-by-contract-teil-2/feed/">RSS 2.0</a> feed. Du kannst <a href="https://web.archive.org/web/20100312070014/http://blog.aztec-project.org/2009/11/05/design-by-contract-teil-2/#respond">Antwort</a>, oder <a href="https://web.archive.org/web/20100312070014/http://blog.aztec-project.org/2009/11/05/design-by-contract-teil-2/trackback/" rel="trackback">trackback</a> von deiner Seite.
</small>
</p>
</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/20100312070014/http://blog.aztec-project.org/2009/11/05/design-by-contract-teil-2/#respond" style="display:none;">Click here to cancel reply</a></small>
</div>
<form action="https://web.archive.org/web/20100312070014/http://blog.aztec-project.org/wp-comments-post.php" method="post" id="commentform">
<input type="hidden" name="comment_post_ID" value="801" 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="801">
</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/20100312070014/http://blog.aztec-project.org/wp-content/themes/mandigo/images/icons/bullet_toggle_minus.png" alt="" class="png" /><\/a><\/span>');
});
// ]]> -->
</script>
</td>
<script src="./design-by-contract-teil2_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/20100312070014/http://wordpress.org/">WordPress</a>, <a href="https://web.archive.org/web/20100312070014/http://www.onehertz.com/portfolio/wordpress/" target="_blank" title="WordPress themes">Mandigo theme</a> by tom.
<br><a href="https://web.archive.org/web/20100312070014/http://blog.aztec-project.org/feed/"><img src="./design-by-contract-teil2_files/rss_s.gif" alt=""> Einträge (RSS)</a>
und <a href="https://web.archive.org/web/20100312070014/http://blog.aztec-project.org/comments/feed/"><img src="./design-by-contract-teil2_files/rss_s.gif" alt=""> Kommentare (RSS)</a>.
</p>
</div>
</div>
<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/20100312070014/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/20100312070014/https://ssl." : "https://web.archive.org/web/20100312070014/http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script><script src="./design-by-contract-teil2_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></body></html>
@@ -0,0 +1,619 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- saved from url=(0109)https://web.archive.org/web/20100412202601/http://blog.aztec-project.org/2009/10/26/design-by-contract-mit-c/ -->
<html xmlns="http://www.w3.org/1999/xhtml" class=" sgfcrs idc0_350"><head profile="http://gmpg.org/xfn/11"><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><script src="./design-by-contract_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-app215.us.archive.org';v.server_ms=568;archive_analytics.send_pageview({});});</script>
<script type="text/javascript" src="./design-by-contract_files/bundle-playback.js.Download" charset="utf-8"></script>
<script type="text/javascript" src="./design-by-contract_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="./design-by-contract_files/ruffle.js.Download"></script>
<script type="text/javascript">
__wm.init("https://web.archive.org/web");
__wm.wombat("http://blog.aztec-project.org:80/2009/10/26/design-by-contract-mit-c/","20100412202601","https://web.archive.org/","web","/_static/",
"1271103961");
</script>
<link rel="stylesheet" type="text/css" href="./design-by-contract_files/banner-styles.css">
<link rel="stylesheet" type="text/css" href="./design-by-contract_files/iconochive.css">
<!-- End Wayback Rewrite JS Include -->
<title>build broken » Design by Contract jetzt auch mit C#</title>
<meta name="generator" content="WordPress abc">
<meta name="theme" content="Mandigo 1.41">
<link rel="stylesheet" href="./design-by-contract_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/20100412202601im_/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/20100412202601im_/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/20100412202601im_/http://blog.aztec-project.org/wp-content/themes/mandigo/images/bg-1024.png);
width: 957px;
}
#footer {
background: url(https://web.archive.org/web/20100412202601im_/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/20100412202601im_/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/20100412202601im_/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/20100412202601im_/http://blog.aztec-project.org/wp-content/themes/mandigo/images/head_overlay.png);
}
</style>
<link rel="stylesheet" href="./design-by-contract_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/20100412202601/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 » Design by Contract jetzt auch mit C# Kommentar Feed" href="https://web.archive.org/web/20100412202601/http://blog.aztec-project.org/2009/10/26/design-by-contract-mit-c/feed/">
<script type="text/javascript" src="./design-by-contract_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=".NET Open Space 2009 in Leipzig" href="https://web.archive.org/web/20100412202601/http://blog.aztec-project.org/2009/10/23/net-open-space-2009-in-leipzig/">
<link rel="next" title="ASP.MVC 2 Vortrag von Albert bei münchener UserGroup" href="https://web.archive.org/web/20100412202601/http://blog.aztec-project.org/2009/10/30/asp-mvc-2-bei-munchener-usergroup/">
<link rel="canonical" href="https://web.archive.org/web/20100412202601/http://blog.aztec-project.org/2009/10/26/design-by-contract-mit-c/">
<script type="text/javascript" src="./design-by-contract_files/jquery.js.Download"></script>
<script type="text/javascript" src="./design-by-contract_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>
</head>
<body><!-- 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/20100412202601/http%3A//blog.aztec-project.org/2009/10/26/design-by-contract-mit-c/" 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/2009/10/26/design-by-contract-mit-c/" onfocus="this.focus();this.select();" style="flex:1;" autocomplete="off"><input type="hidden" name="type" value="replay"><input type="hidden" name="date" value="20100412202601"><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/2009/10/26/design-by-contract-mit-c/" title="See a list of every capture for this URL">7 captures</a><div class="r" title="Timespan for captures of this URL">29 Oct 2009 - 7 May 2021</div></div>
<div class="k">
<a href="https://web.archive.org/web/20100412202601/http://blog.aztec-project.org/2009/10/26/design-by-contract-mit-c/" 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/20091029161809/http://blog.aztec-project.org:80/2009/10/26/design-by-contract-mit-c/" title="29 Oct 2009"><strong>Oct</strong></a></td>
<td class="c" id="displayMonthEl" title="You are here: 20:26:01 Apr 12, 2010">APR</td>
<td class="f" nowrap="nowrap"><a href="https://web.archive.org/web/20130923052522/http://blog.aztec-project.org/2009/10/26/design-by-contract-mit-c/" 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/20091029161809/http://blog.aztec-project.org:80/2009/10/26/design-by-contract-mit-c/" title="16:18:09 Oct 29, 2009"><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: 20:26:01 Apr 12, 2010">12</td>
<td class="f" nowrap="nowrap"><a href="https://web.archive.org/web/20130923052522/http://blog.aztec-project.org/2009/10/26/design-by-contract-mit-c/" title="05:25:22 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">2009</td>
<td class="c" id="displayYearEl" title="You are here: 20:26:01 Apr 12, 2010">2010</td>
<td class="f" nowrap="nowrap"><a href="https://web.archive.org/web/20130923052522/http://blog.aztec-project.org/2009/10/26/design-by-contract-mit-c/" 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/20100412202601/http://blog.aztec-project.org/2009/10/26/design-by-contract-mit-c/#" 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/20100412202601/http://blog.aztec-project.org/2009/10/26/design-by-contract-mit-c/#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/20100412202601/http://web.archive.org/screenshot/http://blog.aztec-project.org/2009/10/26/design-by-contract-mit-c/" id="wm-screenshot" title="screenshot" style="visibility: hidden;">
<span class="wm-icon-screen-shot"></span>
</a>
<a href="https://web.archive.org/web/20100412202601/http://blog.aztec-project.org/2009/10/26/design-by-contract-mit-c/#" id="wm-video" title="video">
<span class="iconochive-movies"></span>
</a>
<a id="wm-share-facebook" href="https://web.archive.org/web/20100412202601/http://blog.aztec-project.org/2009/10/26/design-by-contract-mit-c/#" data-url="https://web.archive.org/web/20100412202601/http://blog.aztec-project.org:80/2009/10/26/design-by-contract-mit-c/" 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/20100412202601/http://blog.aztec-project.org/2009/10/26/design-by-contract-mit-c/#" data-url="https://web.archive.org/web/20100412202601/http://blog.aztec-project.org:80/2009/10/26/design-by-contract-mit-c/" 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/20100412202601/http://blog.aztec-project.org/2009/10/26/design-by-contract-mit-c/#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/alexa_web_2010)"></span>
<div>Collection: <a style="color:#33f;" href="https://archive.org/details/alexa_web_2010" target="_new"><span class="wm-title">alexa_web_2010</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>
this data is currently not publicly accessible.
</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="./design-by-contract_files/banner-styles.css"><link rel="stylesheet" type="text/css" href="./design-by-contract_files/iconochive.css"><div class="wb-autocomplete-suggestions "></div></template>
</div><div id="wm-ipp-print">The Wayback Machine - https://web.archive.org/web/20100412202601/http://blog.aztec-project.org:80/2009/10/26/design-by-contract-mit-c/</div>
<script type="text/javascript">//<![CDATA[
__wm.bt(750,27,25,2,"web","http://blog.aztec-project.org/2009/10/26/design-by-contract-mit-c/","20100412202601",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/20100412202601/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/20100412202601/http://blog.aztec-project.org/">Home</a></li>
<li class="page_item page-item-2"><a href="https://web.archive.org/web/20100412202601/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/20100412202601/http://blog.aztec-project.org/2009/10/23/net-open-space-2009-in-leipzig/" rel="prev">.NET Open Space 2009 in Leipzig</a></div>
<div class="alignright"><a href="https://web.archive.org/web/20100412202601/http://blog.aztec-project.org/2009/10/30/asp-mvc-2-bei-munchener-usergroup/" rel="next">ASP.MVC 2 Vortrag von Albert bei münchener UserGroup</a>&nbsp;»</div>
</div>
<div class="post" id="post-674">
<div class="postinfo">
<div class="datestamp">
<div>
<span class="cal1 cal1x">Okt</span>
<span class="cal2">26</span>
<span class="cal3">2009</span>
</div>
</div>
<span class="switch-post">
<a href="javascript:toggleSidebars();" class="switch-sidebars"><img src="./design-by-contract_files/bullet_sidebars_hide.png" alt="" class="png"></a><a href="javascript:togglePost(674);" id="switch-post-674"><img src="./design-by-contract_files/bullet_toggle_minus.png" alt="" class="png"></a>
</span>
<h2 class="posttitle"><a href="https://web.archive.org/web/20100412202601/http://blog.aztec-project.org/2009/10/26/design-by-contract-mit-c/" rel="bookmark" title="Permanent Link: Design by Contract jetzt auch mit C#">Design by Contract jetzt auch mit C#</a></h2>
<small>
Geschrieben von <a href="https://web.archive.org/web/20100412202601/http://blog.aztec-project.org/author/chi/" title="Artikel von Christina Hirth">Christina Hirth</a> in <a href="https://web.archive.org/web/20100412202601/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/20100412202601/http://blog.aztec-project.org/category/clean-code-developing/" title="Alle Artikel in Clean Code Developing ansehen" rel="category tag">Clean Code Developing</a>, tags: <a href="https://web.archive.org/web/20100412202601/http://blog.aztec-project.org/tag/dot-net/" rel="tag">.NET</a>, <a href="https://web.archive.org/web/20100412202601/http://blog.aztec-project.org/tag/architektur/" rel="tag">Architektur</a>, <a href="https://web.archive.org/web/20100412202601/http://blog.aztec-project.org/tag/clean-code/" rel="tag">Clean Code</a> </small>
</div>
<div class="entry">
<p>Bald kommt .NET 4.0 raus, zusammen mit einem für C# neuen Konzept: Kontrakte im Code mit <b>Spec#</b> festzulegen. </p>
<p>Wikipedia definiert DbC folgendermaßen:</p>
<blockquote><p>Design by contract (kurz DbC; englisch Entwurf gemäß Vertrag) oder Programming by Contract ist ein Konzept aus dem Bereich der Softwareentwicklung. Ziel ist das reibungslose Zusammenspiel einzelner Programmmodule durch die Definition formaler „Verträge“ zur Verwendung von Schnittstellen, die über deren statische Definition hinausgehen. Entwickelt und eingeführt wurde es von Bertrand Meyer mit der Entwicklung der Programmiersprache Eiffel.</p></blockquote>
<p><a href="https://web.archive.org/web/20100412202601/http://www.lieser-online.de/blog/" target="_blank">Stefan Lieser</a> hat über das neue Konzept einen sehr guten Artikel in <a href="https://web.archive.org/web/20100412202601/http://www.visualstudio1.de/" target="_blank">www.visualstudio1.de</a> geschrieben, mit Begriffsklärung und Anwendungsbeispiele. Kurz zusammengefasst ist die Rede von Folgendem: anstelle, dass man in jeder Methode auf not-null or not-empty usw. prüft, schreibt man die Erwartungen als Code hin. Diese werden von Tools wie z.B. Resharper erkannt und bei fehlerhaften Aufruf der Methode, wird der Entwickler gewarnt. Am besten finde ich, dass man den Kontrakt-Code z.B. für einen Interface in eine separate Klasse schreiben kann und diese wird durch Attribute (<code>ContractClassFor</code>) gefunden. Also wird dadurch der eigentliche Code nicht größer.</p>
<p>Das soll nicht bedeuten, dass der Entwickler der Methode die Verantwortung von sich schiebt <img src="./design-by-contract_files/icon_wink.gif" alt=";)" class="wp-smiley"> , sondern dass er Bedingungen der “Nutzung” offenlegt, Informationen, die bisher nur durch das Anschauen des Codes oder durch mündliche/schriftliche Mitteilung möglich war. Mit <b>Spec#</b> kann man die <b>Intention-Revealing Interfaces</b> ganz genau schreiben: mit veröffentlichten und kompilierten Bedingungen.</p>
<p><a href="https://web.archive.org/web/20100412202601/http://dotnet-kicks.de/kick/?url=http%3a%2f%2fblog.aztec-project.org%2f2009%2f10%2f26%2fdesign-by-contract-mit-c%2f" target="_blank"><img src="./design-by-contract_files/KickItImageGenerator.ashx" border="0" alt="kick it on dotnet-kicks.de"></a></p>
<p class="postmetadata alt clear">
<small>
Geschrieben am Montag, 26. Oktober 2009 um 10:03 am und ist zu finden in <a href="https://web.archive.org/web/20100412202601/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/20100412202601/http://blog.aztec-project.org/category/clean-code-developing/" title="Alle Artikel in Clean Code Developing ansehen" rel="category tag">Clean Code Developing</a>. Du kannst die Antworten zu diesem Thema verfolgen unter <a href="https://web.archive.org/web/20100412202601/http://blog.aztec-project.org/2009/10/26/design-by-contract-mit-c/feed/">RSS 2.0</a> feed. Du kannst <a href="https://web.archive.org/web/20100412202601/http://blog.aztec-project.org/2009/10/26/design-by-contract-mit-c/#respond">Antwort</a>, oder <a href="https://web.archive.org/web/20100412202601/http://blog.aztec-project.org/2009/10/26/design-by-contract-mit-c/trackback/" rel="trackback">trackback</a> von deiner Seite.
</small>
</p>
</div>
</div>
<div id="comments">
4 Antworten zu “Design by Contract jetzt auch mit C#”
</div>
<ol class="commentlist" id="commentlist">
<li class="comment even thread-even depth-1 alt" id="comment-67">
<div id="div-comment-67" class="comment-body">
<span class="switch-post"><a href="https://web.archive.org/web/20100412202601/http://blog.aztec-project.org/2009/10/26/design-by-contract-mit-c/#"><img src="./design-by-contract_files/bullet_toggle_minus(1).png" alt="" class="png"></a></span><div class="comment-author vcard">
<img alt="" src="./design-by-contract_files/daef1e9cdc6e7023e810849c14a81c98" class="avatar avatar-32 photo" height="32" width="32"> <cite class="fn"><a href="https://web.archive.org/web/20100412202601/http://dotnet-forum.de/blogs/rainerhilmer/default.aspx" rel="external nofollow" class="url">Rainer Hilmer</a></cite> <span class="says">sagt:</span> </div>
<div class="comment-meta commentmetadata"><a href="https://web.archive.org/web/20100412202601/http://blog.aztec-project.org/2009/10/26/design-by-contract-mit-c/comment-page-1/#comment-67">Oktober 26, 2009 um 11:33 am</a></div>
<div class="comment"><p>CodeContracts kommen nicht erst mit .NET Framework 4. Es gibt sie schon eine ganze Weile bei DevLabs. Dieses ist mittlerweile in .NET 4 eingeflossen.<br>
<a href="https://web.archive.org/web/20100412202601/http://msdn.microsoft.com/en-us/devlabs/dd491992.aspx" rel="nofollow">http://msdn.microsoft.com/en-us/devlabs/dd491992.aspx</a><br>
Wer mit der Einflechtung von CodeContracts nicht bis VS2010 warten möchte, kann es sich dort ziehen.</p></div>
<div class="comment"><p>Ich habe dazu auch eine Quick Reference geschrieben.<br>
<a href="https://web.archive.org/web/20100412202601/http://dotnet-forum.de/blogs/rainerhilmer/archive/2009/10/15/code-contracts-quick-reference.aspx" rel="nofollow">http://dotnet-forum.de/blogs/rainerhilmer/archive/2009/10/15/code-contracts-quick-reference.aspx</a></p></div>
<div class="comment"><div class="reply">
</div></div>
</div>
</li>
<li class="comment byuser comment-author-chi bypostauthor odd alt thread-odd thread-alt depth-1" id="comment-68">
<div id="div-comment-68" class="comment-body">
<span class="switch-post"><a href="https://web.archive.org/web/20100412202601/http://blog.aztec-project.org/2009/10/26/design-by-contract-mit-c/#"><img src="./design-by-contract_files/bullet_toggle_minus(1).png" alt="" class="png"></a></span><div class="comment-author vcard">
<img alt="" src="./design-by-contract_files/fa211026bf1d16166d537ba69b2f6f23.jpeg" class="avatar avatar-32 photo" height="32" width="32"> <cite class="fn">Christina Hirth</cite> <span class="says">sagt:</span> </div>
<div class="comment-meta commentmetadata"><a href="https://web.archive.org/web/20100412202601/http://blog.aztec-project.org/2009/10/26/design-by-contract-mit-c/comment-page-1/#comment-68">Oktober 26, 2009 um 1:55 pm</a></div>
<div class="comment"><p>Hallo Rainer,</p></div>
<div class="comment"><p>danke für den Hinweis, das ist mir schon bekannt. Steht auch in den o.g. Artikel, den ich hier nicht abschreiben wollte, er ist ja nicht von mir <img src="./design-by-contract_files/icon_smile.gif" alt=":)" class="wp-smiley"> . Außerdem würde ich ja nie über Code schreiben, den ich selbst nicht ausprobiert habe, also ist es klar, dass es jetzt schon geht.<br>
Der andere Grund, warum ich das nicht speziell erwähnt habe, ist, dass es z.Z. zwar möglich ist, das Konzept anzuwenden, aber die Unterstützung seitens VS fehlt, es sei denn, du nutzt TSF.</p></div>
<div class="comment"><p>Mir ging es eigentlich darum, dass es endlich möglich ist, Anforderungen als Code zu implementieren und als solche schriftlich festhalten, verfolgen und auswerten.</p></div>
<div class="comment"><div class="reply">
</div></div>
</div>
</li>
<li class="comment even thread-even depth-1 alt" id="comment-69">
<div id="div-comment-69" class="comment-body">
<span class="switch-post"><a href="https://web.archive.org/web/20100412202601/http://blog.aztec-project.org/2009/10/26/design-by-contract-mit-c/#"><img src="./design-by-contract_files/bullet_toggle_minus(1).png" alt="" class="png"></a></span><div class="comment-author vcard">
<img alt="" src="./design-by-contract_files/daef1e9cdc6e7023e810849c14a81c98" class="avatar avatar-32 photo" height="32" width="32"> <cite class="fn"><a href="https://web.archive.org/web/20100412202601/http://dotnet-forum.de/blogs/rainerhilmer/default.aspx" rel="external nofollow" class="url">Rainer Hilmer</a></cite> <span class="says">sagt:</span> </div>
<div class="comment-meta commentmetadata"><a href="https://web.archive.org/web/20100412202601/http://blog.aztec-project.org/2009/10/26/design-by-contract-mit-c/comment-page-1/#comment-69">Oktober 26, 2009 um 3:29 pm</a></div>
<div class="comment"><p>Hallo Christina,<br>
ich habe eine gute Nachricht: Es gibt eine kostenfreie academic license, die den static Checker auch auf VS 2008 pro zur Verfügung stellt (mit der aktuellen Version vom 24.10.2009 auch auf VS2010 Beta 2). Die academic license darf nur nicht kommerziell eingesetzt werden.<br>
<a href="https://web.archive.org/web/20100412202601/http://research.microsoft.com/en-us/downloads/4ed7dd5f-490b-489e-8ca8-109324279968/default.aspx" rel="nofollow">http://research.microsoft.com/en-us/downloads/4ed7dd5f-490b-489e-8ca8-109324279968/default.aspx</a></p></div>
<div class="comment"><div class="reply">
</div></div>
</div>
</li>
<li class="comment byuser comment-author-chi bypostauthor odd alt thread-odd thread-alt depth-1" id="comment-70">
<div id="div-comment-70" class="comment-body">
<span class="switch-post"><a href="https://web.archive.org/web/20100412202601/http://blog.aztec-project.org/2009/10/26/design-by-contract-mit-c/#"><img src="./design-by-contract_files/bullet_toggle_minus(1).png" alt="" class="png"></a></span><div class="comment-author vcard">
<img alt="" src="./design-by-contract_files/fa211026bf1d16166d537ba69b2f6f23.jpeg" class="avatar avatar-32 photo" height="32" width="32"> <cite class="fn">Christina Hirth</cite> <span class="says">sagt:</span> </div>
<div class="comment-meta commentmetadata"><a href="https://web.archive.org/web/20100412202601/http://blog.aztec-project.org/2009/10/26/design-by-contract-mit-c/comment-page-1/#comment-70">Oktober 26, 2009 um 7:45 pm</a></div>
<div class="comment"><p>Hallo Rainer,</p></div>
<div class="comment"><p>jetzt hast du mich erwischt, das wusste ich tatsächlich nicht!</p></div>
<div class="comment"><div class="reply">
</div></div>
</div>
</li>
<li style="display: none;" class="alt">&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/20100412202601/http://blog.aztec-project.org/2009/10/26/design-by-contract-mit-c/#respond" style="display:none;">Click here to cancel reply</a></small>
</div>
<form action="https://web.archive.org/web/20100412202601/http://blog.aztec-project.org/wp-comments-post.php" method="post" id="commentform">
<input type="hidden" name="comment_post_ID" value="674" 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="674">
</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/20100412202601/http://blog.aztec-project.org/wp-content/themes/mandigo/images/icons/bullet_toggle_minus.png" alt="" class="png" /><\/a><\/span>');
});
// ]]> -->
</script>
</td>
<script src="./design-by-contract_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/20100412202601/http://wordpress.org/">WordPress</a>, <a href="https://web.archive.org/web/20100412202601/http://www.onehertz.com/portfolio/wordpress/" target="_blank" title="WordPress themes">Mandigo theme</a> by tom.
<br><a href="https://web.archive.org/web/20100412202601/http://blog.aztec-project.org/feed/"><img src="./design-by-contract_files/rss_s.gif" alt=""> Einträge (RSS)</a>
und <a href="https://web.archive.org/web/20100412202601/http://blog.aztec-project.org/comments/feed/"><img src="./design-by-contract_files/rss_s.gif" alt=""> Kommentare (RSS)</a>.
</p>
</div>
</div>
<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/20100412202601/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/20100412202601/https://ssl." : "https://web.archive.org/web/20100412202601/http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script><script src="./design-by-contract_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></body></html>
+534
View File
@@ -0,0 +1,534 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- saved from url=(0104)https://web.archive.org/web/20090718214137/http://blog.aztec-project.org/2009/06/09/dime-casts-webcasts/ -->
<html xmlns="http://www.w3.org/1999/xhtml" class=" uyigci idc0_350"><head profile="http://gmpg.org/xfn/11"><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><script src="./dime-casts_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-app214.us.archive.org';v.server_ms=715;archive_analytics.send_pageview({});});</script>
<script type="text/javascript" src="./dime-casts_files/bundle-playback.js.Download" charset="utf-8"></script>
<script type="text/javascript" src="./dime-casts_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="./dime-casts_files/ruffle.js.Download"></script>
<script type="text/javascript">
__wm.init("https://web.archive.org/web");
__wm.wombat("http://blog.aztec-project.org:80/2009/06/09/dime-casts-webcasts/","20090718214137","https://web.archive.org/","web","/_static/",
"1247953297");
</script>
<link rel="stylesheet" type="text/css" href="./dime-casts_files/banner-styles.css">
<link rel="stylesheet" type="text/css" href="./dime-casts_files/iconochive.css">
<!-- End Wayback Rewrite JS Include -->
<title>build broken » Dime Casts WebCasts</title>
<meta name="generator" content="WordPress 2.8.1">
<meta name="theme" content="Mandigo 1.41">
<link rel="stylesheet" href="./dime-casts_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/20090718214137im_/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/20090718214137im_/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/20090718214137im_/http://blog.aztec-project.org/wp-content/themes/mandigo/images/bg-1024.png);
width: 957px;
}
#footer {
background: url(https://web.archive.org/web/20090718214137im_/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/20090718214137im_/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/20090718214137im_/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/20090718214137im_/http://blog.aztec-project.org/wp-content/themes/mandigo/images/head_overlay.png);
}
</style>
<link rel="stylesheet" href="./dime-casts_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/20090718214137/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 » Kommentare-Feed zu Dime Casts WebCasts" href="https://web.archive.org/web/20090718214137/http://blog.aztec-project.org/2009/06/09/dime-casts-webcasts/feed/">
<script type="text/javascript" src="./dime-casts_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="Clean-Code-Developer" href="https://web.archive.org/web/20090718214137/http://blog.aztec-project.org/2009/06/06/clean-code-developer/">
<link rel="next" title="Anonyme Datentypen" href="https://web.archive.org/web/20090718214137/http://blog.aztec-project.org/2009/06/10/anonyme-datentypen/">
<meta name="generator" content="WordPress 2.8.1">
<script type="text/javascript" src="./dime-casts_files/jquery.js.Download"></script>
<script type="text/javascript" src="./dime-casts_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>
</head>
<body><!-- 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/20090718214137/http%3A//blog.aztec-project.org/2009/06/09/dime-casts-webcasts/" 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/2009/06/09/dime-casts-webcasts/" onfocus="this.focus();this.select();" style="flex:1;" autocomplete="off"><input type="hidden" name="type" value="replay"><input type="hidden" name="date" value="20090718214137"><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/2009/06/09/dime-casts-webcasts/" title="See a list of every capture for this URL">1 capture</a><div class="r" title="Timespan for captures of this URL">18 Jul 2009</div></div>
<div class="k">
<a href="https://web.archive.org/web/20090718214137/http://blog.aztec-project.org/2009/06/09/dime-casts-webcasts/" 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">Jun</td>
<td class="c" id="displayMonthEl" title="You are here: 21:41:37 Jul 18, 2009">JUL</td>
<td class="f" nowrap="nowrap">Aug</td>
</tr>
<!-- NEXT/PREV CAPTURE NAV AND DAY OF MONTH INDICATOR -->
<tr class="d">
<td class="b" nowrap="nowrap"><img src="https://web.archive.org/_static/images/toolbar/wm_tb_prv_off.png" alt="Previous capture" width="14" height="16" border="0"></td>
<td class="c" id="displayDayEl" style="width:34px;font-size:22px;white-space:nowrap;" title="You are here: 21:41:37 Jul 18, 2009">18</td>
<td class="f" nowrap="nowrap"><img src="https://web.archive.org/_static/images/toolbar/wm_tb_nxt_off.png" alt="Next capture" width="14" height="16" border="0"></td>
</tr>
<!-- NEXT/PREV YEAR NAV AND YEAR INDICATOR -->
<tr class="y">
<td class="b" nowrap="nowrap">2008</td>
<td class="c" id="displayYearEl" title="You are here: 21:41:37 Jul 18, 2009">2009</td>
<td class="f" nowrap="nowrap">2010</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/20090718214137/http://blog.aztec-project.org/2009/06/09/dime-casts-webcasts/#" 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/20090718214137/http://blog.aztec-project.org/2009/06/09/dime-casts-webcasts/#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/20090718214137/http://web.archive.org/screenshot/http://blog.aztec-project.org/2009/06/09/dime-casts-webcasts/" id="wm-screenshot" title="screenshot" style="visibility: hidden;">
<span class="wm-icon-screen-shot"></span>
</a>
<a href="https://web.archive.org/web/20090718214137/http://blog.aztec-project.org/2009/06/09/dime-casts-webcasts/#" id="wm-video" title="video">
<span class="iconochive-movies"></span>
</a>
<a id="wm-share-facebook" href="https://web.archive.org/web/20090718214137/http://blog.aztec-project.org/2009/06/09/dime-casts-webcasts/#" data-url="https://web.archive.org/web/20090718214137/http://blog.aztec-project.org:80/2009/06/09/dime-casts-webcasts/" 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/20090718214137/http://blog.aztec-project.org/2009/06/09/dime-casts-webcasts/#" data-url="https://web.archive.org/web/20090718214137/http://blog.aztec-project.org:80/2009/06/09/dime-casts-webcasts/" 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/20090718214137/http://blog.aztec-project.org/2009/06/09/dime-casts-webcasts/#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/alexa_web_2009)"></span>
<div>Collection: <a style="color:#33f;" href="https://archive.org/details/alexa_web_2009" target="_new"><span class="wm-title">alexa_web_2009</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>
this data is currently not publicly accessible.
</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="./dime-casts_files/banner-styles.css"><link rel="stylesheet" type="text/css" href="./dime-casts_files/iconochive.css"><div class="wb-autocomplete-suggestions "></div></template>
</div><div id="wm-ipp-print">The Wayback Machine - https://web.archive.org/web/20090718214137/http://blog.aztec-project.org:80/2009/06/09/dime-casts-webcasts/</div>
<script type="text/javascript">//<![CDATA[
__wm.bt(750,27,25,2,"web","http://blog.aztec-project.org/2009/06/09/dime-casts-webcasts/","20090718214137",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/20090718214137/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">we should think of a subtitle :)</h6><span class="blogdesc text-stroke-br">we should think of a subtitle :)</span><span class="blogdesc text-stroke-bl">we should think of a subtitle :)</span><span class="blogdesc text-stroke-tr">we should think of a subtitle :)</span><span class="blogdesc text-stroke-tl">we should think of a subtitle :)</span>
<ul class="pages png head_overlay">
<li class="page_item"><a href="https://web.archive.org/web/20090718214137/http://blog.aztec-project.org/">Home</a></li>
<li class="page_item page-item-2"><a href="https://web.archive.org/web/20090718214137/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/20090718214137/http://blog.aztec-project.org/2009/06/06/clean-code-developer/">Clean-Code-Developer</a></div>
<div class="alignright"><a href="https://web.archive.org/web/20090718214137/http://blog.aztec-project.org/2009/06/10/anonyme-datentypen/">Anonyme Datentypen</a>&nbsp;»</div>
</div>
<div class="post" id="post-169">
<div class="postinfo">
<div class="datestamp">
<div>
<span class="cal1 cal1x">Jun</span>
<span class="cal2">09</span>
<span class="cal3">2009</span>
</div>
</div>
<span class="switch-post">
<a href="javascript:toggleSidebars();" class="switch-sidebars"><img src="./dime-casts_files/bullet_sidebars_hide.png" alt="" class="png"></a><a href="javascript:togglePost(169);" id="switch-post-169"><img src="./dime-casts_files/bullet_toggle_minus.png" alt="" class="png"></a>
</span>
<h2 class="posttitle"><a href="https://web.archive.org/web/20090718214137/http://blog.aztec-project.org/2009/06/09/dime-casts-webcasts/" rel="bookmark" title="Permanent Link: Dime Casts WebCasts">Dime Casts WebCasts</a></h2>
<small>
Geschrieben von <a href="https://web.archive.org/web/20090718214137/http://blog.aztec-project.org/author/sko/" title="Beiträge von Stefan Kölle">Stefan Kölle</a> in <a href="https://web.archive.org/web/20090718214137/http://blog.aztec-project.org/category/tipps/" title="Alle Artikel in Tipps anzeigen" rel="category tag">Tipps</a>, tags: <a href="https://web.archive.org/web/20090718214137/http://blog.aztec-project.org/tag/patterns/" rel="tag">Patterns</a>, <a href="https://web.archive.org/web/20090718214137/http://blog.aztec-project.org/tag/webcast/" rel="tag">WebCast</a> </small>
</div>
<div class="entry">
<p>Ich bin gerade auf eine sehr interessante Seite mit einzelnen WebCasts zu .NET Themen aufmerksam geworden.</p>
<p><a href="https://web.archive.org/web/20090718214137/http://www.dimecasts.net/" target="_blank">http://www.dimecasts.net/</a></p>
<p>Habe mir dort gleich mal <a href="https://web.archive.org/web/20090718214137/http://www.dimecasts.net/Content/WatchEpisode/106" target="_blank">“#106 Learning the Adapter Pattern”</a> angesehen, dort wird sehr schön in nur 9 Minuten erklärt wie man das AdapterPattern einsetzt.</p>
<p class="postmetadata alt clear">
<small>
Geschrieben am Dienstag, 9. Juni 2009 um 12:23 und ist zu finden in <a href="https://web.archive.org/web/20090718214137/http://blog.aztec-project.org/category/tipps/" title="Alle Artikel in Tipps anzeigen" rel="category tag">Tipps</a>. Du kannst die Antworten zu diesem Thema verfolgen unter <a href="https://web.archive.org/web/20090718214137/http://blog.aztec-project.org/2009/06/09/dime-casts-webcasts/feed/">RSS 2.0</a> feed. Du kannst <a href="https://web.archive.org/web/20090718214137/http://blog.aztec-project.org/2009/06/09/dime-casts-webcasts/#respond">Antwort</a>, oder <a href="https://web.archive.org/web/20090718214137/http://blog.aztec-project.org/2009/06/09/dime-casts-webcasts/trackback/" rel="trackback">trackback</a> von deiner Seite.
</small>
</p>
</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/20090718214137/http://blog.aztec-project.org/2009/06/09/dime-casts-webcasts/#respond" style="display:none;">Click here to cancel reply</a></small>
</div>
<form action="https://web.archive.org/web/20090718214137/http://blog.aztec-project.org/wp-comments-post.php" method="post" id="commentform">
<input type="hidden" name="comment_post_ID" value="169" 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="169">
</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/20090718214137/http://blog.aztec-project.org/wp-content/themes/mandigo/images/icons/bullet_toggle_minus.png" alt="" class="png" /><\/a><\/span>');
});
// ]]> -->
</script>
</td>
</tr>
</tbody></table>
</div>
<div id="footer" class="png">
<p>
Unterstützt von <a href="https://web.archive.org/web/20090718214137/http://wordpress.org/">WordPress</a>, <a href="https://web.archive.org/web/20090718214137/http://www.onehertz.com/portfolio/wordpress/" target="_blank" title="WordPress themes">Mandigo theme</a> by tom.
<br><a href="https://web.archive.org/web/20090718214137/http://blog.aztec-project.org/feed/"><img src="./dime-casts_files/rss_s.gif" alt=""> Einträge (RSS)</a>
und <a href="https://web.archive.org/web/20090718214137/http://blog.aztec-project.org/comments/feed/"><img src="./dime-casts_files/rss_s.gif" alt=""> Kommentare (RSS)</a>.
</p>
</div>
</div>
<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/20090718214137/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/20090718214137/https://ssl." : "https://web.archive.org/web/20090718214137/http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script><script src="./dime-casts_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></body></html>
@@ -0,0 +1,544 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- saved from url=(0104)https://web.archive.org/web/20091108074845/http://blog.aztec-project.org/2009/08/12/net-open-space-2009/ -->
<html xmlns="http://www.w3.org/1999/xhtml" class=" itnsceakq idc0_350"><head profile="http://gmpg.org/xfn/11"><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><script src="./dotnet-openspace-leipzig-2009-buchung_files/athena.js.Download" type="924ac53bb9de214140ed7181-text/javascript"></script>
<script type="924ac53bb9de214140ed7181-text/javascript">window.addEventListener('DOMContentLoaded',function(){var v=archive_analytics.values;v.service='wb';v.server_name='wwwb-app214.us.archive.org';v.server_ms=630;archive_analytics.send_pageview({});});</script>
<script type="924ac53bb9de214140ed7181-text/javascript" src="./dotnet-openspace-leipzig-2009-buchung_files/bundle-playback.js.Download" charset="utf-8"></script>
<script type="924ac53bb9de214140ed7181-text/javascript" src="./dotnet-openspace-leipzig-2009-buchung_files/wombat.js.Download" charset="utf-8"></script>
<script type="924ac53bb9de214140ed7181-text/javascript">window.RufflePlayer=window.RufflePlayer||{};window.RufflePlayer.config={"autoplay":"on","unmuteOverlay":"hidden"};</script>
<script type="924ac53bb9de214140ed7181-text/javascript" src="./dotnet-openspace-leipzig-2009-buchung_files/ruffle.js.Download"></script>
<script type="924ac53bb9de214140ed7181-text/javascript">
__wm.init("https://web.archive.org/web");
__wm.wombat("http://blog.aztec-project.org:80/2009/08/12/net-open-space-2009/","20091108074845","https://web.archive.org/","web","/_static/",
"1257666525");
</script>
<link rel="stylesheet" type="text/css" href="./dotnet-openspace-leipzig-2009-buchung_files/banner-styles.css">
<link rel="stylesheet" type="text/css" href="./dotnet-openspace-leipzig-2009-buchung_files/iconochive.css">
<!-- End Wayback Rewrite JS Include -->
<title>build broken » .NET Open Space 2009</title>
<meta name="generator" content="WordPress 2.8.5">
<meta name="theme" content="Mandigo 1.41">
<link rel="stylesheet" href="./dotnet-openspace-leipzig-2009-buchung_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/20091108074845im_/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/20091108074845im_/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/20091108074845im_/http://blog.aztec-project.org/wp-content/themes/mandigo/images/bg-1024.png);
width: 957px;
}
#footer {
background: url(https://web.archive.org/web/20091108074845im_/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/20091108074845im_/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/20091108074845im_/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/20091108074845im_/http://blog.aztec-project.org/wp-content/themes/mandigo/images/head_overlay.png);
}
</style>
<link rel="stylesheet" href="./dotnet-openspace-leipzig-2009-buchung_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/20091108074845/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 » .NET Open Space 2009 Kommentar Feed" href="https://web.archive.org/web/20091108074845/http://blog.aztec-project.org/2009/08/12/net-open-space-2009/feed/">
<script type="924ac53bb9de214140ed7181-text/javascript" src="./dotnet-openspace-leipzig-2009-buchung_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="Clean Code Teil 1" href="https://web.archive.org/web/20091108074845/http://blog.aztec-project.org/2009/08/11/clean-code-teil-1/">
<link rel="next" title="Testen von nicht öffentlichen Methoden" href="https://web.archive.org/web/20091108074845/http://blog.aztec-project.org/2009/08/12/testen-von-nicht-offentlichen-methoden/">
<meta name="generator" content="WordPress 2.8.5">
<script type="924ac53bb9de214140ed7181-text/javascript" src="./dotnet-openspace-leipzig-2009-buchung_files/jquery.js.Download"></script>
<script type="924ac53bb9de214140ed7181-text/javascript" src="./dotnet-openspace-leipzig-2009-buchung_files/jquery.ifixpng.js.Download"></script>
<script type="924ac53bb9de214140ed7181-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>
</head>
<body><!-- BEGIN WAYBACK TOOLBAR INSERT -->
<script type="924ac53bb9de214140ed7181-text/javascript">__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;" class="">
<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/20091108074845/http%3A//blog.aztec-project.org/2009/08/12/net-open-space-2009/" 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/2009/08/12/net-open-space-2009/" onfocus="if (!window.__cfRLUnblockHandlers) return false; this.focus();this.select();" style="flex:1;" autocomplete="off" data-cf-modified-924ac53bb9de214140ed7181-=""><input type="hidden" name="type" value="replay"><input type="hidden" name="date" value="20091108074845"><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/2009/08/12/net-open-space-2009/" title="See a list of every capture for this URL">3 captures</a><div class="r" title="Timespan for captures of this URL">1 Sep 2009 - 10 Oct 2012</div></div>
<div class="k">
<a href="https://web.archive.org/web/20050601000000/http://blog.aztec-project.org/2009/08/12/net-open-space-2009/" 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; left: 225px;"></div><div class="mt" style="display: none; width: 2px; height: 27px; left: 236px;"></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/20090901145249/http://blog.aztec-project.org:80/2009/08/12/net-open-space-2009/" title="01 Sep 2009"><strong>Sep</strong></a></td>
<td class="c" id="displayMonthEl" title="You are here: 07:48:45 Nov 08, 2009">Nov</td>
<td class="f" nowrap="nowrap"><a href="https://web.archive.org/web/20121010000702/http://blog.aztec-project.org:80/2009/08/12/net-open-space-2009/" title="10 Oct 2012"><strong>Oct</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/20090901145249/http://blog.aztec-project.org:80/2009/08/12/net-open-space-2009/" title="14:52:49 Sep 01, 2009"><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: 07:48:45 Nov 08, 2009">08</td>
<td class="f" nowrap="nowrap"><a href="https://web.archive.org/web/20121010000702/http://blog.aztec-project.org:80/2009/08/12/net-open-space-2009/" title="00:07:02 Oct 10, 2012"><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">2008</td>
<td class="c" id="displayYearEl" title="You are here: 07:48:45 Nov 08, 2009">2009</td>
<td class="f" nowrap="nowrap"><a href="https://web.archive.org/web/20121010000702/http://blog.aztec-project.org:80/2009/08/12/net-open-space-2009/" title="10 Oct 2012"><strong>2012</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/20091108074845/http://blog.aztec-project.org/2009/08/12/net-open-space-2009/#" 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/20091108074845/http://blog.aztec-project.org/2009/08/12/net-open-space-2009/#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/20091108074845/http://web.archive.org/screenshot/http://blog.aztec-project.org/2009/08/12/net-open-space-2009/" id="wm-screenshot" title="screenshot" style="visibility: hidden;">
<span class="wm-icon-screen-shot"></span>
</a>
<a href="https://web.archive.org/web/20091108074845/http://blog.aztec-project.org/2009/08/12/net-open-space-2009/#" id="wm-video" title="video">
<span class="iconochive-movies"></span>
</a>
<a id="wm-share-facebook" href="https://web.archive.org/web/20091108074845/http://blog.aztec-project.org/2009/08/12/net-open-space-2009/#" data-url="https://web.archive.org/web/20091108074845/http://blog.aztec-project.org:80/2009/08/12/net-open-space-2009/" 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/20091108074845/http://blog.aztec-project.org/2009/08/12/net-open-space-2009/#" data-url="https://web.archive.org/web/20091108074845/http://blog.aztec-project.org:80/2009/08/12/net-open-space-2009/" 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/20091108074845/http://blog.aztec-project.org/2009/08/12/net-open-space-2009/#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/alexa_web_2009)"></span>
<div>Collection: <a style="color:#33f;" href="https://archive.org/details/alexa_web_2009" target="_new"><span class="wm-title">alexa_web_2009</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>
this data is currently not publicly accessible.
</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="./dotnet-openspace-leipzig-2009-buchung_files/banner-styles.css"><link rel="stylesheet" type="text/css" href="./dotnet-openspace-leipzig-2009-buchung_files/iconochive.css"><div class="wb-autocomplete-suggestions "></div></template>
</div><div id="wm-ipp-print">The Wayback Machine - https://web.archive.org/web/20091108074845/http://blog.aztec-project.org:80/2009/08/12/net-open-space-2009/</div>
<script type="924ac53bb9de214140ed7181-text/javascript">//<![CDATA[
__wm.bt(750,27,25,2,"web","http://blog.aztec-project.org/2009/08/12/net-open-space-2009/","20091108074845",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/20091108074845/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/20091108074845/http://blog.aztec-project.org/">Home</a></li>
<li class="page_item page-item-2"><a href="https://web.archive.org/web/20091108074845/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/20091108074845/http://blog.aztec-project.org/2009/08/11/clean-code-teil-1/">Clean Code Teil 1</a></div>
<div class="alignright"><a href="https://web.archive.org/web/20091108074845/http://blog.aztec-project.org/2009/08/12/testen-von-nicht-offentlichen-methoden/">Testen von nicht öffentlichen Methoden</a>&nbsp;»</div>
</div>
<div class="post" id="post-561">
<div class="postinfo">
<div class="datestamp">
<div>
<span class="cal1 cal1x">Aug</span>
<span class="cal2">12</span>
<span class="cal3">2009</span>
</div>
</div>
<span class="switch-post">
<a href="javascript:toggleSidebars();" class="switch-sidebars"><img src="./dotnet-openspace-leipzig-2009-buchung_files/bullet_sidebars_hide.png" alt="" class="png"></a><a href="javascript:togglePost(561);" id="switch-post-561"><img src="./dotnet-openspace-leipzig-2009-buchung_files/bullet_toggle_minus.png" alt="" class="png"></a>
</span>
<h2 class="posttitle"><a href="https://web.archive.org/web/20091108074845/http://blog.aztec-project.org/2009/08/12/net-open-space-2009/" rel="bookmark" title="Permanent Link: .NET Open Space 2009">.NET Open Space 2009</a></h2>
<small>
Geschrieben von <a href="https://web.archive.org/web/20091108074845/http://blog.aztec-project.org/author/chi/" title="Artikel von Christina Hirth">Christina Hirth</a> in <a href="https://web.archive.org/web/20091108074845/http://blog.aztec-project.org/category/open-space/" title="Alle Artikel in Open Space ansehen" rel="category tag">Open Space</a>, tags: <a href="https://web.archive.org/web/20091108074845/http://blog.aztec-project.org/tag/community/" rel="tag">Community</a>, <a href="https://web.archive.org/web/20091108074845/http://blog.aztec-project.org/tag/open-space/" rel="tag">Open Space</a>, <a href="https://web.archive.org/web/20091108074845/http://blog.aztec-project.org/tag/veranstaltung/" rel="tag">Veranstaltung</a> </small>
</div>
<div class="entry">
<p>Wir haben es gerade geschafft, die ganzen Infos vom .NET Open Space Süd zu ordnen, und schon ging es mit der Anmeldung für den nächsten <a href="https://web.archive.org/web/20091108074845/http://netopenspace.de/2009/" target="_blank">Open Space in Leipzig</a> los!<br>
Der Andrang war so groß, dass innerhalb von ein paar Tagen die Teilnehmerliste voll wurde.<br>
Nach meiner Erfahrungen in <a href="https://web.archive.org/web/20091108074845/http://blog.aztec-project.org/category/open-space/">Ulm</a>, kann ich das voll verstehen, da wird einem das Wissen mit goldenem Löffel serviert <img src="./dotnet-openspace-leipzig-2009-buchung_files/icon_wink.gif" alt=";)" class="wp-smiley"> Und man darf auch noch selbst bestimmen, über welches Thema und wie detailliert man erfahren möchte. Und das von den besten Köpfen der Branche, eventuell sogar neben einem Bier, was möchte man/frau mehr ??</p>
<p>Unter dem Titel Agenda steht folgendes:</p>
<blockquote><p>
* wir fangen Samstag und Sonntag um 9 Uhr an, der Rest findet sich, die Organisation ist jeweils schon ab 8 Uhr da und führt Smalltalk mit dir und dem Rest, wenn du Lust hast<br>
* auf den .NET Open Space kommen die richtigen Leute, denn es kommen nur die, die in den benannten Themenbereichen motiviert sind der Rest bleibt Zuhause oder geht woanders hin<br>
* am .NET Open Space kannst du teilnehmen, ohne ein Guru zu sein, deine Motivation zählt<br>
* erachtest du dein Thema als wichtig, nimmst du eine mögliche Diskussion selbst in die Hand und findest interessierte Teilnehmer<br>
* die Agenda wird von den Teilnehmenden zum Beginn des .NET Open Space selbst erstellt
</p></blockquote>
<p>Wir haben heute unsere Zimmer reserviert, Betten verteilt <img src="./dotnet-openspace-leipzig-2009-buchung_files/icon_wink.gif" alt=";)" class="wp-smiley"> . Mit einem Wort: wir sind bereit!</p>
<p>Kommst du mit?</p>
<p class="postmetadata alt clear">
<small>
Geschrieben am Mittwoch, 12. August 2009 um 10:52 am und ist zu finden in <a href="https://web.archive.org/web/20091108074845/http://blog.aztec-project.org/category/open-space/" title="Alle Artikel in Open Space ansehen" rel="category tag">Open Space</a>. Du kannst die Antworten zu diesem Thema verfolgen unter <a href="https://web.archive.org/web/20091108074845/http://blog.aztec-project.org/2009/08/12/net-open-space-2009/feed/">RSS 2.0</a> feed. Du kannst <a href="https://web.archive.org/web/20091108074845/http://blog.aztec-project.org/2009/08/12/net-open-space-2009/#respond">Antwort</a>, oder <a href="https://web.archive.org/web/20091108074845/http://blog.aztec-project.org/2009/08/12/net-open-space-2009/trackback/" rel="trackback">trackback</a> von deiner Seite.
</small>
</p>
</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/20091108074845/http://blog.aztec-project.org/2009/08/12/net-open-space-2009/#respond" style="display:none;">Click here to cancel reply</a></small>
</div>
<form action="https://web.archive.org/web/20091108074845/http://blog.aztec-project.org/wp-comments-post.php" method="post" id="commentform">
<input type="hidden" name="comment_post_ID" value="561" 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="561">
</p>
<br class="clear">
</form>
</div>
<script type="924ac53bb9de214140ed7181-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/20091108074845/http://blog.aztec-project.org/wp-content/themes/mandigo/images/icons/bullet_toggle_minus.png" alt="" class="png" /><\/a><\/span>');
});
// ]]> -->
</script>
</td>
</tr>
</tbody></table>
</div>
<div id="footer" class="png">
<p>
Unterstützt von <a href="https://web.archive.org/web/20091108074845/http://wordpress.org/">WordPress</a>, <a href="https://web.archive.org/web/20091108074845/http://www.onehertz.com/portfolio/wordpress/" target="_blank" title="WordPress themes">Mandigo theme</a> by tom.
<br><a href="https://web.archive.org/web/20091108074845/http://blog.aztec-project.org/feed/"><img src="./dotnet-openspace-leipzig-2009-buchung_files/rss_s.gif" alt=""> Einträge (RSS)</a>
und <a href="https://web.archive.org/web/20091108074845/http://blog.aztec-project.org/comments/feed/"><img src="./dotnet-openspace-leipzig-2009-buchung_files/rss_s.gif" alt=""> Kommentare (RSS)</a>.
</p>
</div>
</div>
<script type="924ac53bb9de214140ed7181-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/20091108074845/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="924ac53bb9de214140ed7181-text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://web.archive.org/web/20091108074845/https://ssl." : "https://web.archive.org/web/20091108074845/http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script><script src="./dotnet-openspace-leipzig-2009-buchung_files/ga.js.Download" type="924ac53bb9de214140ed7181-text/javascript"></script>
<script type="924ac53bb9de214140ed7181-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 src="/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js" data-cf-settings="924ac53bb9de214140ed7181-|49" defer></script></body></html>
@@ -0,0 +1,565 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- saved from url=(0115)https://web.archive.org/web/20100210073137/http://blog.aztec-project.org/2009/10/23/net-open-space-2009-in-leipzig/ -->
<html xmlns="http://www.w3.org/1999/xhtml"><head profile="http://gmpg.org/xfn/11"><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><script src="./dotnet-openspace-leipzig-2009_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-app215.us.archive.org';v.server_ms=341;archive_analytics.send_pageview({});});</script>
<script type="text/javascript" src="./dotnet-openspace-leipzig-2009_files/bundle-playback.js.Download" charset="utf-8"></script>
<script type="text/javascript" src="./dotnet-openspace-leipzig-2009_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="./dotnet-openspace-leipzig-2009_files/ruffle.js.Download"></script>
<script type="text/javascript">
__wm.init("https://web.archive.org/web");
__wm.wombat("http://blog.aztec-project.org:80/2009/10/23/net-open-space-2009-in-leipzig/","20100210073137","https://web.archive.org/","web","/_static/",
"1265787097");
</script>
<link rel="stylesheet" type="text/css" href="./dotnet-openspace-leipzig-2009_files/banner-styles.css">
<link rel="stylesheet" type="text/css" href="./dotnet-openspace-leipzig-2009_files/iconochive.css">
<!-- End Wayback Rewrite JS Include -->
<title>build broken » .NET Open Space 2009 in Leipzig</title>
<meta name="generator" content="WordPress abc">
<meta name="theme" content="Mandigo 1.41">
<link rel="stylesheet" href="./dotnet-openspace-leipzig-2009_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/20100210073137im_/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/20100210073137im_/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/20100210073137im_/http://blog.aztec-project.org/wp-content/themes/mandigo/images/bg-1024.png);
width: 957px;
}
#footer {
background: url(https://web.archive.org/web/20100210073137im_/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/20100210073137im_/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/20100210073137im_/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/20100210073137im_/http://blog.aztec-project.org/wp-content/themes/mandigo/images/head_overlay.png);
}
</style>
<link rel="stylesheet" href="./dotnet-openspace-leipzig-2009_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/20100210073137/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 » .NET Open Space 2009 in Leipzig Kommentar Feed" href="https://web.archive.org/web/20100210073137/http://blog.aztec-project.org/2009/10/23/net-open-space-2009-in-leipzig/feed/">
<script type="text/javascript" src="./dotnet-openspace-leipzig-2009_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="Unit-Tests für WebForms" href="https://web.archive.org/web/20100210073137/http://blog.aztec-project.org/2009/09/07/unit-tests-fur-webforms/">
<link rel="next" title="Design by Contract jetzt auch mit C#" href="https://web.archive.org/web/20100210073137/http://blog.aztec-project.org/2009/10/26/design-by-contract-mit-c/">
<link rel="canonical" href="https://web.archive.org/web/20100210073137/http://blog.aztec-project.org/2009/10/23/net-open-space-2009-in-leipzig/">
<script type="text/javascript" src="./dotnet-openspace-leipzig-2009_files/jquery.js.Download"></script>
<script type="text/javascript" src="./dotnet-openspace-leipzig-2009_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>
</head>
<body><!-- 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;" class="">
<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/20100210073137/http%3A//blog.aztec-project.org/2009/10/23/net-open-space-2009-in-leipzig/" 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/2009/10/23/net-open-space-2009-in-leipzig/" onfocus="this.focus();this.select();" style="flex:1;" autocomplete="off"><input type="hidden" name="type" value="replay"><input type="hidden" name="date" value="20100210073137"><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/2009/10/23/net-open-space-2009-in-leipzig/" title="See a list of every capture for this URL">7 captures</a><div class="r" title="Timespan for captures of this URL">8 Nov 2009 - 19 Apr 2021</div></div>
<div class="k">
<a href="https://web.archive.org/web/20100101000000/http://blog.aztec-project.org/2009/10/23/net-open-space-2009-in-leipzig/" 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; left: 350px;"></div><div class="mt" style="display: none; width: 2px; height: 27px; left: 351px;"></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/20091108130845/http://blog.aztec-project.org:80/2009/10/23/net-open-space-2009-in-leipzig/" title="08 Nov 2009"><strong>Nov</strong></a></td>
<td class="c" id="displayMonthEl" title="You are here: 07:31:37 Feb 10, 2010">Feb</td>
<td class="f" nowrap="nowrap"><a href="https://web.archive.org/web/20140720074021/http://blog.aztec-project.org:80/2009/10/23/net-open-space-2009-in-leipzig/" title="20 Jul 2014"><strong>Jul</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/20091108130845/http://blog.aztec-project.org:80/2009/10/23/net-open-space-2009-in-leipzig/" title="13:08:45 Nov 08, 2009"><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: 07:31:37 Feb 10, 2010">10</td>
<td class="f" nowrap="nowrap"><a href="https://web.archive.org/web/20140720074021/http://blog.aztec-project.org:80/2009/10/23/net-open-space-2009-in-leipzig/" title="07:40:21 Jul 20, 2014"><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">2009</td>
<td class="c" id="displayYearEl" title="You are here: 07:31:37 Feb 10, 2010">2010</td>
<td class="f" nowrap="nowrap"><a href="https://web.archive.org/web/20140720074021/http://blog.aztec-project.org:80/2009/10/23/net-open-space-2009-in-leipzig/" title="20 Jul 2014"><strong>2014</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/20100210073137/http://blog.aztec-project.org/2009/10/23/net-open-space-2009-in-leipzig/#" title="Share via My Web Archive">
<span class="iconochive-web"></span>
</a>
<a href="https://archive.org/account/login.php" title="Sign In" id="wm-sign-in">
<span class="iconochive-person"></span>
</a>
<span id="wm-save-snapshot-in-progress" class="iconochive-web"></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/20100210073137/http://blog.aztec-project.org/2009/10/23/net-open-space-2009-in-leipzig/#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/20100210073137/http://web.archive.org/screenshot/http://blog.aztec-project.org/2009/10/23/net-open-space-2009-in-leipzig/" id="wm-screenshot" title="screenshot" style="visibility: hidden;">
<span class="wm-icon-screen-shot"></span>
</a>
<a href="https://web.archive.org/web/20100210073137/http://blog.aztec-project.org/2009/10/23/net-open-space-2009-in-leipzig/#" id="wm-video" title="video">
<span class="iconochive-movies"></span>
</a>
<a id="wm-share-facebook" href="https://web.archive.org/web/20100210073137/http://blog.aztec-project.org/2009/10/23/net-open-space-2009-in-leipzig/#" data-url="https://web.archive.org/web/20100210073137/http://blog.aztec-project.org:80/2009/10/23/net-open-space-2009-in-leipzig/" 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/20100210073137/http://blog.aztec-project.org/2009/10/23/net-open-space-2009-in-leipzig/#" data-url="https://web.archive.org/web/20100210073137/http://blog.aztec-project.org:80/2009/10/23/net-open-space-2009-in-leipzig/" 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/20100210073137/http://blog.aztec-project.org/2009/10/23/net-open-space-2009-in-leipzig/#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/alexa_web_2010)"></span>
<div>Collection: <a style="color:#33f;" href="https://archive.org/details/alexa_web_2010" target="_new"><span class="wm-title">alexa_web_2010</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>
this data is currently not publicly accessible.
</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="./dotnet-openspace-leipzig-2009_files/banner-styles.css"><link rel="stylesheet" type="text/css" href="./dotnet-openspace-leipzig-2009_files/iconochive.css"><div class="wb-autocomplete-suggestions "></div></template>
</div><div id="wm-ipp-print">The Wayback Machine - https://web.archive.org/web/20100210073137/http://blog.aztec-project.org:80/2009/10/23/net-open-space-2009-in-leipzig/</div>
<script type="text/javascript">//<![CDATA[
__wm.bt(750,27,25,2,"web","http://blog.aztec-project.org/2009/10/23/net-open-space-2009-in-leipzig/","20100210073137",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/20100210073137/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/20100210073137/http://blog.aztec-project.org/">Home</a></li>
<li class="page_item page-item-2"><a href="https://web.archive.org/web/20100210073137/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/20100210073137/http://blog.aztec-project.org/2009/09/07/unit-tests-fur-webforms/" rel="prev">Unit-Tests für WebForms</a></div>
<div class="alignright"><a href="https://web.archive.org/web/20100210073137/http://blog.aztec-project.org/2009/10/26/design-by-contract-mit-c/" rel="next">Design by Contract jetzt auch mit C#</a>&nbsp;»</div>
</div>
<div class="post" id="post-650">
<div class="postinfo">
<div class="datestamp">
<div>
<span class="cal1 cal1x">Okt</span>
<span class="cal2">23</span>
<span class="cal3">2009</span>
</div>
</div>
<span class="switch-post">
<a href="javascript:toggleSidebars();" class="switch-sidebars"><img src="./dotnet-openspace-leipzig-2009_files/bullet_sidebars_hide.png" alt="" class="png"></a><a href="javascript:togglePost(650);" id="switch-post-650"><img src="./dotnet-openspace-leipzig-2009_files/bullet_toggle_minus.png" alt="" class="png"></a>
</span>
<h2 class="posttitle"><a href="https://web.archive.org/web/20100210073137/http://blog.aztec-project.org/2009/10/23/net-open-space-2009-in-leipzig/" rel="bookmark" title="Permanent Link: .NET Open Space 2009 in Leipzig">.NET Open Space 2009 in Leipzig</a></h2>
<small>
Geschrieben von <a href="https://web.archive.org/web/20100210073137/http://blog.aztec-project.org/author/sko/" title="Artikel von Stefan Kölle">Stefan Kölle</a> in <a href="https://web.archive.org/web/20100210073137/http://blog.aztec-project.org/category/open-space/" title="Alle Artikel in Open Space ansehen" rel="category tag">Open Space</a>, <a href="https://web.archive.org/web/20100210073137/http://blog.aztec-project.org/category/stupiddb/" title="Alle Artikel in StupidDB ansehen" rel="category tag">StupidDB</a>, tags: <a href="https://web.archive.org/web/20100210073137/http://blog.aztec-project.org/tag/community/" rel="tag">Community</a>, <a href="https://web.archive.org/web/20100210073137/http://blog.aztec-project.org/tag/open-space/" rel="tag">Open Space</a>, <a href="https://web.archive.org/web/20100210073137/http://blog.aztec-project.org/tag/veranstaltung/" rel="tag">Veranstaltung</a> </small>
</div>
<div class="entry">
<p><a href="https://web.archive.org/web/20100210073137/http://netopenspace.de/" title=".NET Open Space vom 17.10. bis 18.10.2009 in Leipzig"><br>
<img src="./dotnet-openspace-leipzig-2009_files/GetFile.aspx" alt=".NET Open Space vom 17.10. bis 18.10.2009 in Leipzig" align="right" class="alignright"><br>
</a></p>
<p>Das <a href="https://web.archive.org/web/20100210073137/http://netopenspace.de/2009" target="_blank">.NET Open Space in Leipzig</a> ging vergangenes Wochenende nun bereits in die erste Wiederholung und das <a href="https://web.archive.org/web/20100210073137/http://de.wikipedia.org/wiki/Open_Space" target="_blank">Konzept “Open Space”</a> scheint sich immer weiter zu verbreiten. Auch das <a href="https://web.archive.org/web/20100210073137/http://barcampmunich.mixxt.de/" target="_blank">Barcamp in München</a> am gleichen Wochenende war als “Open Space” organisiert.</p>
<p>Der Besuch in Leipzig ist in diesem Jahr schon der zweite .NET Open Space für uns. Auch diesmal war der Erkenntnisgewinn riesig, zumal man auch wirklich nette Leute aus ganz Deutschland trifft und oft merkt, die anderen Kochen auch nur mit Wasser und haben die gleichen Probleme.</p>
<p>Das Session-Highlight aus meiner Sicht war das Coding Dojo, in dieser Session waren nahezu alle Teilnehmer. Bearbeitet wurde das <a href="https://web.archive.org/web/20100210073137/http://codingdojo.org/cgi-bin/wiki.pl?KataPotter" target="_blank">KataPotter</a> und wie zu erwarten war, stand nach gut einer Stunde nicht einmal ansatzweise ein brauchbarer Code-Teil. Sinn der Session war jedoch gar nicht wirklich die Programmierarbeit sondern die Kommunikation der Teilnehmer, was sehr aufschlussreich war. Selbst nach der Session wurde überall weiter über das Kata diskutiert.</p>
<p>In den Pausen des Open Spaces wurde auch über das <a href="https://web.archive.org/web/20100210073137/http://ralfw.blogspot.com/2009/08/entspannte-persistenz-lounge-repository.html" target="_blank">Lounge Repository</a> von Ralf und unsere <a href="https://web.archive.org/web/20100210073137/http://blog.aztec-project.org/2009/07/13/stupiddb-object-persistence-framework/" target="_blank">StupidDB</a> gesprochen, wie sich zeigt ist dafür Interesse und Bedarf vorhanden. Eine unsere Tasks die wir aus dem Open Space mitgenommen haben ist daher mehr über die StupidDB zu schreiben, das Konzept genauer darzulegen und Einsatzbereiche genauer vorzustellen. Auch Democode könnte sicher vielen helfen.</p>
<p class="postmetadata alt clear">
<small>
Geschrieben am Freitag, 23. Oktober 2009 um 12:35 pm und ist zu finden in <a href="https://web.archive.org/web/20100210073137/http://blog.aztec-project.org/category/open-space/" title="Alle Artikel in Open Space ansehen" rel="category tag">Open Space</a>, <a href="https://web.archive.org/web/20100210073137/http://blog.aztec-project.org/category/stupiddb/" title="Alle Artikel in StupidDB ansehen" rel="category tag">StupidDB</a>. Du kannst die Antworten zu diesem Thema verfolgen unter <a href="https://web.archive.org/web/20100210073137/http://blog.aztec-project.org/2009/10/23/net-open-space-2009-in-leipzig/feed/">RSS 2.0</a> feed. Du kannst <a href="https://web.archive.org/web/20100210073137/http://blog.aztec-project.org/2009/10/23/net-open-space-2009-in-leipzig/#respond">Antwort</a>, oder <a href="https://web.archive.org/web/20100210073137/http://blog.aztec-project.org/2009/10/23/net-open-space-2009-in-leipzig/trackback/" rel="trackback">trackback</a> von deiner Seite.
</small>
</p>
</div>
</div>
<div id="comments">
Eine Antwort zu “.NET Open Space 2009 in Leipzig”
</div>
<ol class="commentlist" id="commentlist">
<li class="pingback even thread-even depth-1 alt" id="comment-66">
<div id="div-comment-66" class="comment-body">
<span class="switch-post"><a href="https://web.archive.org/web/20100210073137/http://blog.aztec-project.org/2009/10/23/net-open-space-2009-in-leipzig/#"><img src="./dotnet-openspace-leipzig-2009_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/20100210073137/http://topsy.com/tb/bit.ly/fA3cM" rel="external nofollow" class="url">Tweets that mention build broken » .NET Open Space 2009 in Leipzig -- Topsy.com</a></cite> <span class="says">sagt:</span> </div>
<div class="comment-meta commentmetadata"><a href="https://web.archive.org/web/20100210073137/http://blog.aztec-project.org/2009/10/23/net-open-space-2009-in-leipzig/comment-page-1/#comment-66">Oktober 23, 2009 um 1:16 pm</a></div>
<p>[...] This post was mentioned on Twitter by .NET German Bloggers, Stefan Koelle. Stefan Koelle said: Kurz gebloggt ueber #netos2009 <a href="https://web.archive.org/web/20100210073137/http://bit.ly/fA3cM" rel="nofollow">http://bit.ly/fA3cM</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/20100210073137/http://blog.aztec-project.org/2009/10/23/net-open-space-2009-in-leipzig/#respond" style="display:none;">Click here to cancel reply</a></small>
</div>
<form action="https://web.archive.org/web/20100210073137/http://blog.aztec-project.org/wp-comments-post.php" method="post" id="commentform">
<input type="hidden" name="comment_post_ID" value="650" 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="650">
</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/20100210073137/http://blog.aztec-project.org/wp-content/themes/mandigo/images/icons/bullet_toggle_minus.png" alt="" class="png" /><\/a><\/span>');
});
// ]]> -->
</script>
</td>
<script src="./dotnet-openspace-leipzig-2009_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/20100210073137/http://wordpress.org/">WordPress</a>, <a href="https://web.archive.org/web/20100210073137/http://www.onehertz.com/portfolio/wordpress/" target="_blank" title="WordPress themes">Mandigo theme</a> by tom.
<br><a href="https://web.archive.org/web/20100210073137/http://blog.aztec-project.org/feed/"><img src="./dotnet-openspace-leipzig-2009_files/rss_s.gif" alt=""> Einträge (RSS)</a>
und <a href="https://web.archive.org/web/20100210073137/http://blog.aztec-project.org/comments/feed/"><img src="./dotnet-openspace-leipzig-2009_files/rss_s.gif" alt=""> Kommentare (RSS)</a>.
</p>
</div>
</div>
<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/20100210073137/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/20100210073137/https://ssl." : "https://web.archive.org/web/20100210073137/http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script><script src="./dotnet-openspace-leipzig-2009_files/ga.js.Download" type="text/javascript"></script><script defer src="https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" 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>
@@ -0,0 +1,725 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- saved from url=(0108)https://web.archive.org/web/20100726205645/http://blog.aztec-project.org/2009/07/10/net-open-space-sud-2009/ -->
<html xmlns="http://www.w3.org/1999/xhtml" class=" cmpgdmcm idc0_350"><head profile="http://gmpg.org/xfn/11"><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><script src="./dotnet-openspace-sued-2009-buchung_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-app218.us.archive.org';v.server_ms=904;archive_analytics.send_pageview({});});</script>
<script type="text/javascript" src="./dotnet-openspace-sued-2009-buchung_files/bundle-playback.js.Download" charset="utf-8"></script>
<script type="text/javascript" src="./dotnet-openspace-sued-2009-buchung_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="./dotnet-openspace-sued-2009-buchung_files/ruffle.js.Download"></script>
<script type="text/javascript">
__wm.init("https://web.archive.org/web");
__wm.wombat("http://blog.aztec-project.org:80/2009/07/10/net-open-space-sud-2009/","20100726205645","https://web.archive.org/","web","/_static/",
"1280177805");
</script>
<link rel="stylesheet" type="text/css" href="./dotnet-openspace-sued-2009-buchung_files/banner-styles.css">
<link rel="stylesheet" type="text/css" href="./dotnet-openspace-sued-2009-buchung_files/iconochive.css">
<!-- End Wayback Rewrite JS Include -->
<title>build broken » .NET Open Space Süd 2009</title>
<meta name="generator" content="WordPress abc">
<meta name="theme" content="Mandigo 1.41">
<link rel="stylesheet" href="./dotnet-openspace-sued-2009-buchung_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/20100726205645im_/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/20100726205645im_/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/20100726205645im_/http://blog.aztec-project.org/wp-content/themes/mandigo/images/bg-1024.png);
width: 957px;
}
#footer {
background: url(https://web.archive.org/web/20100726205645im_/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/20100726205645im_/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/20100726205645im_/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/20100726205645im_/http://blog.aztec-project.org/wp-content/themes/mandigo/images/head_overlay.png);
}
</style>
<link rel="stylesheet" href="./dotnet-openspace-sued-2009-buchung_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/20100726205645/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 » .NET Open Space Süd 2009 Kommentar Feed" href="https://web.archive.org/web/20100726205645/http://blog.aztec-project.org/2009/07/10/net-open-space-sud-2009/feed/">
<script type="text/javascript" src="./dotnet-openspace-sued-2009-buchung_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="Wozu dient Reflection" href="https://web.archive.org/web/20100726205645/http://blog.aztec-project.org/2009/06/24/wozu-dient-reflection/">
<link rel="next" title="StupidDB object-persistence-framework" href="https://web.archive.org/web/20100726205645/http://blog.aztec-project.org/2009/07/13/stupiddb-object-persistence-framework/">
<link rel="canonical" href="https://web.archive.org/web/20100726205645/http://blog.aztec-project.org/2009/07/10/net-open-space-sud-2009/">
<link rel="shortlink" href="https://web.archive.org/web/20100726205645/http://blog.aztec-project.org/?p=400">
<meta property="og:site_name" content="build broken"><meta property="og:url" content="https://web.archive.org/web/20100726205645/http://blog.aztec-project.org/2009/07/10/net-open-space-sud-2009/"><meta property="og:title" content=".NET Open Space Süd 2009">
<script type="text/javascript" src="./dotnet-openspace-sued-2009-buchung_files/jquery.js.Download"></script>
<script type="text/javascript" src="./dotnet-openspace-sued-2009-buchung_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"><style type="text/css">.fb_hidden{position:absolute;top:-10000px;z-index:10001}
.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{position:absolute;top:-10000px;z-index:10001}
.fb_dialog_advanced{background:rgba(82, 82, 82, .7);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/20100726205645/http://static.ak.fbcdn.net/rsrc.php/zA63Q/hash/8o4lssjn.gif) no-repeat scroll 3px 0 transparent;cursor:pointer;display:block;height:16px;position:absolute;right:19px;top:18px;width:14px;top:10px\9;right:7px\9}
.fb_dialog_close_icon:hover{background:url(https://web.archive.org/web/20100726205645/http://static.ak.fbcdn.net/rsrc.php/zA63Q/hash/8o4lssjn.gif) no-repeat scroll -10px 0 transparent}
.fb_dialog_loader{background-color:#f2f2f2;border:1px solid #606060;font-size:24px;padding:20px}
#fb_dialog_loader_close{background:url(https://web.archive.org/web/20100726205645/http://static.ak.fbcdn.net/rsrc.php/z2APY/hash/41s5ptdj.gif) no-repeat scroll left top transparent;cursor:pointer;display:-moz-inline-block;display:inline-block;height:9px;margin-left:20px;position:relative;vertical-align:middle;width:9px}
#fb_dialog_loader_close:hover{background-image:url(https://web.archive.org/web/20100726205645/http://static.ak.fbcdn.net/rsrc.php/z7ZL1/hash/bf2f4q72.png)}
.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/20100726205645/http://static.ak.fbcdn.net/rsrc.php/zEYDZ/hash/4xk9rts8.png) no-repeat 0 0;left:-10px;top:-10px}
.fb_dialog_top_right{background:url(https://web.archive.org/web/20100726205645/http://static.ak.fbcdn.net/rsrc.php/zEYDZ/hash/4xk9rts8.png) no-repeat 0 -10px;right:-10px;top:-10px}
.fb_dialog_bottom_left{background:url(https://web.archive.org/web/20100726205645/http://static.ak.fbcdn.net/rsrc.php/zEYDZ/hash/4xk9rts8.png) no-repeat 0 -20px;bottom:-10px;left:-10px}
.fb_dialog_bottom_right{background:url(https://web.archive.org/web/20100726205645/http://static.ak.fbcdn.net/rsrc.php/zEYDZ/hash/4xk9rts8.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_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/20100726205645/http://static.ak.fbcdn.net/rsrc.php/z5R48/hash/ejut8v2y.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/20100726205645/http://static.ak.fbcdn.net/rsrc.php/z6IY3/hash/5gh7aaaq.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/20100726205645/http://static.ak.fbcdn.net/rsrc.php/zDYYQ/hash/deh9tyqv.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/20100726205645/http://static.ak.fbcdn.net/rsrc.php/zDYYQ/hash/deh9tyqv.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_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{left:-4px;position:absolute}
.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/20100726205645/http://static.ak.fbcdn.net/rsrc.php/zCXBS/hash/89zgzk50.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/20100726205645/http://static.ak.fbcdn.net/rsrc.php/zAQB0/hash/1a8txe26.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}</style></head>
<body><!-- 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/20100726205645/http%3A//blog.aztec-project.org/2009/07/10/net-open-space-sud-2009/" 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/2009/07/10/net-open-space-sud-2009/" onfocus="this.focus();this.select();" style="flex:1;" autocomplete="off"><input type="hidden" name="type" value="replay"><input type="hidden" name="date" value="20100726205645"><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/2009/07/10/net-open-space-sud-2009/" title="See a list of every capture for this URL">7 captures</a><div class="r" title="Timespan for captures of this URL">17 Jul 2009 - 1 Mar 2021</div></div>
<div class="k">
<a href="https://web.archive.org/web/20100726205645/http://blog.aztec-project.org/2009/07/10/net-open-space-sud-2009/" 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/20090717235659/http://blog.aztec-project.org:80/2009/07/10/net-open-space-sud-2009/" title="17 Jul 2009"><strong>Jul</strong></a></td>
<td class="c" id="displayMonthEl" title="You are here: 20:56:45 Jul 26, 2010">JUL</td>
<td class="f" nowrap="nowrap"><a href="https://web.archive.org/web/20120919055623/http://blog.aztec-project.org:80/2009/07/10/net-open-space-sud-2009/" title="19 Sep 2012"><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/20090717235659/http://blog.aztec-project.org:80/2009/07/10/net-open-space-sud-2009/" title="23:56:59 Jul 17, 2009"><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: 20:56:45 Jul 26, 2010">26</td>
<td class="f" nowrap="nowrap"><a href="https://web.archive.org/web/20120919055623/http://blog.aztec-project.org:80/2009/07/10/net-open-space-sud-2009/" title="05:56:23 Sep 19, 2012"><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/20090717235659/http://blog.aztec-project.org:80/2009/07/10/net-open-space-sud-2009/" title="17 Jul 2009"><strong>2009</strong></a></td>
<td class="c" id="displayYearEl" title="You are here: 20:56:45 Jul 26, 2010">2010</td>
<td class="f" nowrap="nowrap"><a href="https://web.archive.org/web/20120919055623/http://blog.aztec-project.org:80/2009/07/10/net-open-space-sud-2009/" title="19 Sep 2012"><strong>2012</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/20100726205645/http://blog.aztec-project.org/2009/07/10/net-open-space-sud-2009/#" 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/20100726205645/http://blog.aztec-project.org/2009/07/10/net-open-space-sud-2009/#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/20100726205645/http://web.archive.org/screenshot/http://blog.aztec-project.org/2009/07/10/net-open-space-sud-2009/" id="wm-screenshot" title="screenshot" style="visibility: hidden;">
<span class="wm-icon-screen-shot"></span>
</a>
<a href="https://web.archive.org/web/20100726205645/http://blog.aztec-project.org/2009/07/10/net-open-space-sud-2009/#" id="wm-video" title="video">
<span class="iconochive-movies"></span>
</a>
<a id="wm-share-facebook" href="https://web.archive.org/web/20100726205645/http://blog.aztec-project.org/2009/07/10/net-open-space-sud-2009/#" data-url="https://web.archive.org/web/20100726205645/http://blog.aztec-project.org:80/2009/07/10/net-open-space-sud-2009/" 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/20100726205645/http://blog.aztec-project.org/2009/07/10/net-open-space-sud-2009/#" data-url="https://web.archive.org/web/20100726205645/http://blog.aztec-project.org:80/2009/07/10/net-open-space-sud-2009/" 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/20100726205645/http://blog.aztec-project.org/2009/07/10/net-open-space-sud-2009/#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/alexa_web_2010)"></span>
<div>Collection: <a style="color:#33f;" href="https://archive.org/details/alexa_web_2010" target="_new"><span class="wm-title">alexa_web_2010</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>
this data is currently not publicly accessible.
</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="./dotnet-openspace-sued-2009-buchung_files/banner-styles.css"><link rel="stylesheet" type="text/css" href="./dotnet-openspace-sued-2009-buchung_files/iconochive.css"><div class="wb-autocomplete-suggestions "></div></template>
</div><div id="wm-ipp-print">The Wayback Machine - https://web.archive.org/web/20100726205645/http://blog.aztec-project.org:80/2009/07/10/net-open-space-sud-2009/</div>
<script type="text/javascript">//<![CDATA[
__wm.bt(750,27,25,2,"web","http://blog.aztec-project.org/2009/07/10/net-open-space-sud-2009/","20100726205645",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/20100726205645/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/20100726205645/http://blog.aztec-project.org/">Home</a></li>
<li class="page_item page-item-2"><a href="https://web.archive.org/web/20100726205645/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/20100726205645/http://blog.aztec-project.org/2009/06/24/wozu-dient-reflection/" rel="prev">Wozu dient Reflection</a></div>
<div class="alignright"><a href="https://web.archive.org/web/20100726205645/http://blog.aztec-project.org/2009/07/13/stupiddb-object-persistence-framework/" rel="next">StupidDB object-persistence-framework</a>&nbsp;»</div>
</div>
<div class="post" id="post-400">
<div class="postinfo">
<div class="datestamp">
<div>
<span class="cal1 cal1x">Jul</span>
<span class="cal2">10</span>
<span class="cal3">2009</span>
</div>
</div>
<span class="switch-post">
<a href="javascript:toggleSidebars();" class="switch-sidebars"><img src="./dotnet-openspace-sued-2009-buchung_files/bullet_sidebars_hide.png" alt="" class="png"></a><a href="javascript:togglePost(400);" id="switch-post-400"><img src="./dotnet-openspace-sued-2009-buchung_files/bullet_toggle_minus.png" alt="" class="png"></a>
</span>
<h2 class="posttitle"><a href="https://web.archive.org/web/20100726205645/http://blog.aztec-project.org/2009/07/10/net-open-space-sud-2009/" rel="bookmark" title="Permanent Link: .NET Open Space Süd 2009">.NET Open Space Süd 2009</a></h2>
<small>
Geschrieben von <a href="https://web.archive.org/web/20100726205645/http://blog.aztec-project.org/author/chi/" title="Artikel von Christina Hirth">Christina Hirth</a> in <a href="https://web.archive.org/web/20100726205645/http://blog.aztec-project.org/category/open-space/" title="Alle Artikel in Open Space ansehen" rel="category tag">Open Space</a>, tags: <a href="https://web.archive.org/web/20100726205645/http://blog.aztec-project.org/tag/open-space/" rel="tag">Open Space</a>, <a href="https://web.archive.org/web/20100726205645/http://blog.aztec-project.org/tag/veranstaltung/" rel="tag">Veranstaltung</a> </small>
</div>
<div class="entry">
<p>Es ist soweit, morgen geht es los: unsere erste <a href="https://web.archive.org/web/20100726205645/http://ulm.netopenspace.de/2009/" target="_blank">Open Space Veranstaltung</a>. </p>
<p><a href="https://web.archive.org/web/20100726205645/http://ulm.netopenspace.de/" title=".NET Open Space Süd vom 11.07. bis 12.07.2009 in Ulm" target="_blank"><br>
<img src="./dotnet-openspace-sued-2009-buchung_files/nos-logo-1-2009.png" alt=".NET Open Space vom 11.07. bis 12.07.2009 in Ulm"><br>
</a></p>
<p>Wir fahren zu viert hin, alle sehr gespannt und erwartungsvoll, mit sehr viele Fragen in den Taschen. </p>
<p>Ich habe auch noch eine geheime Frage, worauf ich eine Antwort finden hoffe: warum sind außer mir keine Frauen dabei !! <img src="./dotnet-openspace-sued-2009-buchung_files/icon_smile.gif" alt=":)" class="wp-smiley"> </p>
<fb:like href="http://blog.aztec-project.org/2009/07/10/net-open-space-sud-2009/" 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="f7dbf86a314dbf8" name="f187eb3602634f5" style="border: none; overflow: hidden; height: 80px; width: 450px;" allow="autoplay &#39;self&#39;; fullscreen &#39;self&#39;" src="./dotnet-openspace-sued-2009-buchung_files/like.html"></iframe></span></fb:like>
<p class="postmetadata alt clear">
<small>
Geschrieben am Freitag, 10. Juli 2009 um 6:35 pm und ist zu finden in <a href="https://web.archive.org/web/20100726205645/http://blog.aztec-project.org/category/open-space/" title="Alle Artikel in Open Space ansehen" rel="category tag">Open Space</a>. Du kannst die Antworten zu diesem Thema verfolgen unter <a href="https://web.archive.org/web/20100726205645/http://blog.aztec-project.org/2009/07/10/net-open-space-sud-2009/feed/">RSS 2.0</a> feed. Du kannst <a href="https://web.archive.org/web/20100726205645/http://blog.aztec-project.org/2009/07/10/net-open-space-sud-2009/#respond">Antwort</a>, oder <a href="https://web.archive.org/web/20100726205645/http://blog.aztec-project.org/2009/07/10/net-open-space-sud-2009/trackback/" rel="trackback">trackback</a> von deiner Seite.
</small>
</p>
</div>
</div>
<div id="comments">
2 Antworten zu “.NET Open Space Süd 2009”
</div>
<ol class="commentlist" id="commentlist">
<li class="comment byuser comment-author-sko even thread-even depth-1 alt" id="comment-10">
<div id="div-comment-10" class="comment-body">
<span class="switch-post"><a href="https://web.archive.org/web/20100726205645/http://blog.aztec-project.org/2009/07/10/net-open-space-sud-2009/#"><img src="./dotnet-openspace-sued-2009-buchung_files/bullet_toggle_minus(1).png" alt="" class="png"></a></span><div class="comment-author vcard">
<img alt="" src="./dotnet-openspace-sued-2009-buchung_files/dd231104fe0e1a7b87be55834a7c0c86.jpeg" class="avatar avatar-32 photo" height="32" width="32"> <cite class="fn">Stefan Kölle</cite> <span class="says">sagt:</span> </div>
<div class="comment-meta commentmetadata"><a href="https://web.archive.org/web/20100726205645/http://blog.aztec-project.org/2009/07/10/net-open-space-sud-2009/comment-page-1/#comment-10">
Juli 11, 2009 um 10:10 pm</a> </div>
<div class="comment"><p>Sehr informativer erster Tag!</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-476">
<div id="div-comment-476" class="comment-body">
<span class="switch-post"><a href="https://web.archive.org/web/20100726205645/http://blog.aztec-project.org/2009/07/10/net-open-space-sud-2009/#"><img src="./dotnet-openspace-sued-2009-buchung_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/20100726205645/http://www.yellow-brick-code.org/?p=160" rel="external nofollow" class="url">TheYellowBrickCode » NOS Sued kommt: Ulm heißt heuer Karlsruhe</a></cite> <span class="says">sagt:</span> </div>
<div class="comment-meta commentmetadata"><a href="https://web.archive.org/web/20100726205645/http://blog.aztec-project.org/2009/07/10/net-open-space-sud-2009/comment-page-1/#comment-476">
Mai 17, 2010 um 7:17 pm</a> </div>
<p>[...] der Community, ihr werdet es nicht bereuen! P.S.: wenn ich die Teilnehmerliste anschauen, muss ich die Frage vom letzten Jahr wiederholen: gibt es keine Entwicklerinnen in diesem Teil des [...]</p>
<div class="reply">
</div>
</div>
</li>
<li style="display: none;" class="alt">&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/20100726205645/http://blog.aztec-project.org/2009/07/10/net-open-space-sud-2009/#respond" style="display:none;">Click here to cancel reply</a></small>
</div>
<form action="https://web.archive.org/web/20100726205645/http://blog.aztec-project.org/wp-comments-post.php" method="post" id="commentform">
<input type="hidden" name="comment_post_ID" value="400" 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="400">
</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/20100726205645/http://blog.aztec-project.org/wp-content/themes/mandigo/images/icons/bullet_toggle_minus.png" alt="" class="png" /><\/a><\/span>');
});
// ]]> -->
</script>
</td>
<script src="./dotnet-openspace-sued-2009-buchung_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/20100726205645/http://wordpress.org/">WordPress</a>, <a href="https://web.archive.org/web/20100726205645/http://www.onehertz.com/portfolio/wordpress/" target="_blank" title="WordPress themes">Mandigo theme</a> by tom.
<br><a href="https://web.archive.org/web/20100726205645/http://blog.aztec-project.org/feed/"><img src="./dotnet-openspace-sued-2009-buchung_files/rss_s.gif" alt=""> Einträge (RSS)</a>
und <a href="https://web.archive.org/web/20100726205645/http://blog.aztec-project.org/comments/feed/"><img src="./dotnet-openspace-sued-2009-buchung_files/rss_s.gif" alt=""> Kommentare (RSS)</a>.
</p>
</div>
</div>
<div id="fb-root"><script src="./dotnet-openspace-sued-2009-buchung_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/20100726205645/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/20100726205645/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/20100726205645/https://ssl." : "https://web.archive.org/web/20100726205645/http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script><script src="./dotnet-openspace-sued-2009-buchung_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></body></html>
@@ -0,0 +1,550 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- saved from url=(0116)https://web.archive.org/web/20090719062757/http://blog.aztec-project.org/2009/07/13/bericht-zum-open-space-sud-2009/ -->
<html xmlns="http://www.w3.org/1999/xhtml" class=" wsbkvoob idc0_350"><head profile="http://gmpg.org/xfn/11"><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><script src="./dotnet-openspace-sued-2009_files/athena.js.Download" type="c9eba190cd9e797e8a76c400-text/javascript"></script>
<script type="c9eba190cd9e797e8a76c400-text/javascript">window.addEventListener('DOMContentLoaded',function(){var v=archive_analytics.values;v.service='wb';v.server_name='wwwb-app210.us.archive.org';v.server_ms=260;archive_analytics.send_pageview({});});</script>
<script type="c9eba190cd9e797e8a76c400-text/javascript" src="./dotnet-openspace-sued-2009_files/bundle-playback.js.Download" charset="utf-8"></script>
<script type="c9eba190cd9e797e8a76c400-text/javascript" src="./dotnet-openspace-sued-2009_files/wombat.js.Download" charset="utf-8"></script>
<script type="c9eba190cd9e797e8a76c400-text/javascript">window.RufflePlayer=window.RufflePlayer||{};window.RufflePlayer.config={"autoplay":"on","unmuteOverlay":"hidden"};</script>
<script type="c9eba190cd9e797e8a76c400-text/javascript" src="./dotnet-openspace-sued-2009_files/ruffle.js.Download"></script>
<script type="c9eba190cd9e797e8a76c400-text/javascript">
__wm.init("https://web.archive.org/web");
__wm.wombat("http://blog.aztec-project.org:80/2009/07/13/bericht-zum-open-space-sud-2009/","20090719062757","https://web.archive.org/","web","/_static/",
"1247984877");
</script>
<link rel="stylesheet" type="text/css" href="./dotnet-openspace-sued-2009_files/banner-styles.css">
<link rel="stylesheet" type="text/css" href="./dotnet-openspace-sued-2009_files/iconochive.css">
<!-- End Wayback Rewrite JS Include -->
<title>build broken » Bericht zum Open Space Süd 2009</title>
<meta name="generator" content="WordPress 2.8.1">
<meta name="theme" content="Mandigo 1.41">
<link rel="stylesheet" href="./dotnet-openspace-sued-2009_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/20090719062757im_/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/20090719062757im_/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/20090719062757im_/http://blog.aztec-project.org/wp-content/themes/mandigo/images/bg-1024.png);
width: 957px;
}
#footer {
background: url(https://web.archive.org/web/20090719062757im_/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/20090719062757im_/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/20090719062757im_/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/20090719062757im_/http://blog.aztec-project.org/wp-content/themes/mandigo/images/head_overlay.png);
}
</style>
<link rel="stylesheet" href="./dotnet-openspace-sued-2009_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/20090719062757/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 » Kommentare-Feed zu Bericht zum Open Space Süd 2009" href="https://web.archive.org/web/20090719062757/http://blog.aztec-project.org/2009/07/13/bericht-zum-open-space-sud-2009/feed/">
<script type="c9eba190cd9e797e8a76c400-text/javascript" src="./dotnet-openspace-sued-2009_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="StupidDB object-persistence-framework" href="https://web.archive.org/web/20090719062757/http://blog.aztec-project.org/2009/07/13/stupiddb-object-persistence-framework/">
<link rel="next" title="Clean Code Developer The Yellow Brick Road of the Coder" href="https://web.archive.org/web/20090719062757/http://blog.aztec-project.org/2009/07/14/clean-code-developing/">
<meta name="generator" content="WordPress 2.8.1">
<script type="c9eba190cd9e797e8a76c400-text/javascript" src="./dotnet-openspace-sued-2009_files/jquery.js.Download"></script>
<script type="c9eba190cd9e797e8a76c400-text/javascript" src="./dotnet-openspace-sued-2009_files/jquery.ifixpng.js.Download"></script>
<script type="c9eba190cd9e797e8a76c400-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>
</head>
<body><!-- BEGIN WAYBACK TOOLBAR INSERT -->
<script type="c9eba190cd9e797e8a76c400-text/javascript">__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/20090719062757/http%3A//blog.aztec-project.org/2009/07/13/bericht-zum-open-space-sud-2009/" 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/2009/07/13/bericht-zum-open-space-sud-2009/" onfocus="if (!window.__cfRLUnblockHandlers) return false; this.focus();this.select();" style="flex:1;" autocomplete="off" data-cf-modified-c9eba190cd9e797e8a76c400-=""><input type="hidden" name="type" value="replay"><input type="hidden" name="date" value="20090719062757"><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/2009/07/13/bericht-zum-open-space-sud-2009/" title="See a list of every capture for this URL">9 captures</a><div class="r" title="Timespan for captures of this URL">16 Jul 2009 - 1 Mar 2021</div></div>
<div class="k">
<a href="https://web.archive.org/web/20090719062757/http://blog.aztec-project.org/2009/07/13/bericht-zum-open-space-sud-2009/" 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">Jun</td>
<td class="c" id="displayMonthEl" title="You are here: 06:27:57 Jul 19, 2009">JUL</td>
<td class="f" nowrap="nowrap"><a href="https://web.archive.org/web/20161124184711/http://blog.aztec-project.org/2009/07/13/bericht-zum-open-space-sud-2009/" title="24 Nov 2016"><strong>Nov</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/20090716183859/http://blog.aztec-project.org:80/2009/07/13/bericht-zum-open-space-sud-2009/" title="18:38:59 Jul 16, 2009"><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: 06:27:57 Jul 19, 2009">19</td>
<td class="f" nowrap="nowrap"><a href="https://web.archive.org/web/20161124184711/http://blog.aztec-project.org/2009/07/13/bericht-zum-open-space-sud-2009/" title="18:47:11 Nov 24, 2016"><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">2008</td>
<td class="c" id="displayYearEl" title="You are here: 06:27:57 Jul 19, 2009">2009</td>
<td class="f" nowrap="nowrap"><a href="https://web.archive.org/web/20161124184711/http://blog.aztec-project.org/2009/07/13/bericht-zum-open-space-sud-2009/" title="24 Nov 2016"><strong>2016</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/20090719062757/http://blog.aztec-project.org/2009/07/13/bericht-zum-open-space-sud-2009/#" 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/20090719062757/http://blog.aztec-project.org/2009/07/13/bericht-zum-open-space-sud-2009/#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/20090719062757/http://web.archive.org/screenshot/http://blog.aztec-project.org/2009/07/13/bericht-zum-open-space-sud-2009/" id="wm-screenshot" title="screenshot" style="visibility: hidden;">
<span class="wm-icon-screen-shot"></span>
</a>
<a href="https://web.archive.org/web/20090719062757/http://blog.aztec-project.org/2009/07/13/bericht-zum-open-space-sud-2009/#" id="wm-video" title="video">
<span class="iconochive-movies"></span>
</a>
<a id="wm-share-facebook" href="https://web.archive.org/web/20090719062757/http://blog.aztec-project.org/2009/07/13/bericht-zum-open-space-sud-2009/#" data-url="https://web.archive.org/web/20090719062757/http://blog.aztec-project.org:80/2009/07/13/bericht-zum-open-space-sud-2009/" 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/20090719062757/http://blog.aztec-project.org/2009/07/13/bericht-zum-open-space-sud-2009/#" data-url="https://web.archive.org/web/20090719062757/http://blog.aztec-project.org:80/2009/07/13/bericht-zum-open-space-sud-2009/" 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/20090719062757/http://blog.aztec-project.org/2009/07/13/bericht-zum-open-space-sud-2009/#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/alexa_web_2009)"></span>
<div>Collection: <a style="color:#33f;" href="https://archive.org/details/alexa_web_2009" target="_new"><span class="wm-title">alexa_web_2009</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>
this data is currently not publicly accessible.
</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="./dotnet-openspace-sued-2009_files/banner-styles.css"><link rel="stylesheet" type="text/css" href="./dotnet-openspace-sued-2009_files/iconochive.css"><div class="wb-autocomplete-suggestions "></div></template>
</div><div id="wm-ipp-print">The Wayback Machine - https://web.archive.org/web/20090719062757/http://blog.aztec-project.org:80/2009/07/13/bericht-zum-open-space-sud-2009/</div>
<script type="c9eba190cd9e797e8a76c400-text/javascript">//<![CDATA[
__wm.bt(750,27,25,2,"web","http://blog.aztec-project.org/2009/07/13/bericht-zum-open-space-sud-2009/","20090719062757",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/20090719062757/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">we should think of a subtitle :)</h6><span class="blogdesc text-stroke-br">we should think of a subtitle :)</span><span class="blogdesc text-stroke-bl">we should think of a subtitle :)</span><span class="blogdesc text-stroke-tr">we should think of a subtitle :)</span><span class="blogdesc text-stroke-tl">we should think of a subtitle :)</span>
<ul class="pages png head_overlay">
<li class="page_item"><a href="https://web.archive.org/web/20090719062757/http://blog.aztec-project.org/">Home</a></li>
<li class="page_item page-item-2"><a href="https://web.archive.org/web/20090719062757/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/20090719062757/http://blog.aztec-project.org/2009/07/13/stupiddb-object-persistence-framework/">StupidDB object-persistence-framework</a></div>
<div class="alignright"><a href="https://web.archive.org/web/20090719062757/http://blog.aztec-project.org/2009/07/14/clean-code-developing/">Clean Code Developer The Yellow Brick Road of the Coder</a>&nbsp;»</div>
</div>
<div class="post" id="post-406">
<div class="postinfo">
<div class="datestamp">
<div>
<span class="cal1 cal1x">Jul</span>
<span class="cal2">13</span>
<span class="cal3">2009</span>
</div>
</div>
<span class="switch-post">
<a href="javascript:toggleSidebars();" class="switch-sidebars"><img src="./dotnet-openspace-sued-2009_files/bullet_sidebars_hide.png" alt="" class="png"></a><a href="javascript:togglePost(406);" id="switch-post-406"><img src="./dotnet-openspace-sued-2009_files/bullet_toggle_minus.png" alt="" class="png"></a>
</span>
<h2 class="posttitle"><a href="https://web.archive.org/web/20090719062757/http://blog.aztec-project.org/2009/07/13/bericht-zum-open-space-sud-2009/" rel="bookmark" title="Permanent Link: Bericht zum Open Space Süd 2009">Bericht zum Open Space Süd 2009</a></h2>
<small>
Geschrieben von <a href="https://web.archive.org/web/20090719062757/http://blog.aztec-project.org/author/ase/" title="Beiträge von Andreas Seebauer">Andreas Seebauer</a> in <a href="https://web.archive.org/web/20090719062757/http://blog.aztec-project.org/category/open-space/" title="Alle Artikel in Open Space anzeigen" rel="category tag">Open Space</a>, tags: <a href="https://web.archive.org/web/20090719062757/http://blog.aztec-project.org/tag/open-space/" rel="tag">Open Space</a>, <a href="https://web.archive.org/web/20090719062757/http://blog.aztec-project.org/tag/veranstaltung/" rel="tag">Veranstaltung</a> </small>
</div>
<div class="entry">
<p>Wir sind zu viert früh morgens in München aufgebrochen, um bei unserer ersten <a href="https://web.archive.org/web/20090719062757/http://ulm.netopenspace.de/2009/" target="_blank">.NET Open Space</a>-Veranstaltung teilzunehmen.</p>
<p>Da wir eine relativ lange Anfahrt hatten, waren fast alle schon da, als wir ankamen. Es waren um die 60 Leute.<br>
Während der Vorstellungsrunde haben wir gemerkt, dass das Open Space nicht nur von Gurus besucht wird, sondern auch von Einsteigern. Wir hatten befürchtet, dass wir dort fehl am Platz sind, da wir relativ neu in der .NET-Community sind und noch relativ wenig Wissen weitergeben können. Aber wir wurden freundlich aufgenommen und können Jedem nur empfehlen, beim nächsten Mal dort hinzugehen. Einen schnelleren Weg, Wissen aufzubauen, gibt es nicht!</p>
<p>Falls sich jemand nicht mehr an uns erinnert, hier ein Bild von uns <img src="./dotnet-openspace-sued-2009_files/icon_smile.gif" alt=":)" class="wp-smiley"> </p>
<p><img src="./dotnet-openspace-sued-2009_files/16787936.jpg" border="0" alt=""><br>
(von links nach rechts: <a href="https://web.archive.org/web/20090719062757/http://www.xing.com/profile/Andreas_Seebauer2" target="_blank">Andreas Seebauer</a>, <a href="https://web.archive.org/web/20090719062757/http://www.xing.com/profile/Stefan_Koelle" target="_blank">Stefan Kölle</a>, <a href="https://web.archive.org/web/20090719062757/http://www.xing.com/profile/Thomas_Christian9" target="_blank">Thomas Christian</a>, <a href="https://web.archive.org/web/20090719062757/http://www.xing.com/profile/Christina_Hirth2" target="_blank">Christina Hirth</a>)</p>
<p>Es gab zwar keine vorher festgelegten Themen, aber diese wurden vor Ort vorgeschlagen und danach demokratisch bestimmt. Es wurden sehr interessante Bereiche besprochen, aber leider konnte man nicht in jeden Open Space gleichzeitig. <img src="./dotnet-openspace-sued-2009_files/icon_smile.gif" alt=":)" class="wp-smiley"> </p>
<p>Für uns am interessantesten waren:<br>
MVC, DDD, IoC und DI (danke an <a href="https://web.archive.org/web/20090719062757/http://der-albert.com/" target="_blank">Albert</a>, <a href="https://web.archive.org/web/20090719062757/http://mortslikeus.blogspot.com/" target="_blank">Markus</a>, <a href="https://web.archive.org/web/20090719062757/http://blog.thomasbandt.de/" target="_blank">Thomas</a>, <a href="https://web.archive.org/web/20090719062757/http://www.aspnetzone.de/blogs/peterbucher/" target="_blank">Peter</a>, <a href="https://web.archive.org/web/20090719062757/http://lieser-online.de/" target="_blank">Stefan</a> und <a href="https://web.archive.org/web/20090719062757/http://shishkin.org/" target="_blank">Sergey</a>)</p>
<p>Das Themenboard :</p>
<p><img src="./dotnet-openspace-sued-2009_files/P1010477.JPG" border="0" alt=""></p>
<p>Am Sonntag hat uns besonders die Clean-Code-Development-Runde gefallen. Wir sind dabei, dies in unserem Team umzusetzen. Für alle, die es nicht kennen, gibt es <a href="https://web.archive.org/web/20090719062757/http://www.clean-code-developer.de/" target="_blank">hier</a> alle Informationen.</p>
<p>Die Organisation war einwandfrei. Das Essen war lecker und Getränke waren massenhaft vorhanden. Danke an <a href="https://web.archive.org/web/20090719062757/http://www.artiso.com/problog/" target="_blank">Thomas</a> und <a href="https://web.archive.org/web/20090719062757/http://blog.alexonasp.net/" target="_blank">Alex</a>.</p>
<p>Raum 5 war auch das absolute Highlight. Es war immer sehr entspannend da oben.<br>
Leider haben wir die Party verpasst, da wir nicht dort übernachtet haben. Wir hätten zu gerne Alberts Bauchtanz gesehen. <img src="./dotnet-openspace-sued-2009_files/icon_smile.gif" alt=":)" class="wp-smiley"> </p>
<p>Beim Gewinnspiel hat natürlich Stefan den Hauptpreis (eine Telerik-Lizenz) gewonnen. <img src="./dotnet-openspace-sued-2009_files/icon_smile.gif" alt=":)" class="wp-smiley"> </p>
<p>Auch einen Tag nach dem .NET Open Space Süd sind wir immer noch voller Begeisterung und müssen das Erlernte erst einmal verarbeiten. Für uns ist jetzt schon klar, dass wir unbedingt beim nächsten Mal wieder dabei sein wollen.</p>
<p>Wir raten wirklich jedem Programmierer, der besser werden möchte, das nächste Open Space zu besuchen. Man trifft dort freundliche und teilweise sehr erfahrene Entwickler, die ihr Wissen gerne weitergeben.</p>
<p>Bis zum nächsten Mal.</p>
<p class="postmetadata alt clear">
<small>
Geschrieben am Montag, 13. Juli 2009 um 3:45 und ist zu finden in <a href="https://web.archive.org/web/20090719062757/http://blog.aztec-project.org/category/open-space/" title="Alle Artikel in Open Space anzeigen" rel="category tag">Open Space</a>. Du kannst die Antworten zu diesem Thema verfolgen unter <a href="https://web.archive.org/web/20090719062757/http://blog.aztec-project.org/2009/07/13/bericht-zum-open-space-sud-2009/feed/">RSS 2.0</a> feed. Du kannst <a href="https://web.archive.org/web/20090719062757/http://blog.aztec-project.org/2009/07/13/bericht-zum-open-space-sud-2009/#respond">Antwort</a>, oder <a href="https://web.archive.org/web/20090719062757/http://blog.aztec-project.org/2009/07/13/bericht-zum-open-space-sud-2009/trackback/" rel="trackback">trackback</a> von deiner Seite.
</small>
</p>
</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/20090719062757/http://blog.aztec-project.org/2009/07/13/bericht-zum-open-space-sud-2009/#respond" style="display:none;">Click here to cancel reply</a></small>
</div>
<form action="https://web.archive.org/web/20090719062757/http://blog.aztec-project.org/wp-comments-post.php" method="post" id="commentform">
<input type="hidden" name="comment_post_ID" value="406" 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="406">
</p>
<br class="clear">
</form>
</div>
<script type="c9eba190cd9e797e8a76c400-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/20090719062757/http://blog.aztec-project.org/wp-content/themes/mandigo/images/icons/bullet_toggle_minus.png" alt="" class="png" /><\/a><\/span>');
});
// ]]> -->
</script>
</td>
</tr>
</tbody></table>
</div>
<div id="footer" class="png">
<p>
Unterstützt von <a href="https://web.archive.org/web/20090719062757/http://wordpress.org/">WordPress</a>, <a href="https://web.archive.org/web/20090719062757/http://www.onehertz.com/portfolio/wordpress/" target="_blank" title="WordPress themes">Mandigo theme</a> by tom.
<br><a href="https://web.archive.org/web/20090719062757/http://blog.aztec-project.org/feed/"><img src="./dotnet-openspace-sued-2009_files/rss_s.gif" alt=""> Einträge (RSS)</a>
und <a href="https://web.archive.org/web/20090719062757/http://blog.aztec-project.org/comments/feed/"><img src="./dotnet-openspace-sued-2009_files/rss_s.gif" alt=""> Kommentare (RSS)</a>.
</p>
</div>
</div>
<script type="c9eba190cd9e797e8a76c400-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/20090719062757/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="c9eba190cd9e797e8a76c400-text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://web.archive.org/web/20090719062757/https://ssl." : "https://web.archive.org/web/20090719062757/http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script><script src="./dotnet-openspace-sued-2009_files/ga.js.Download" type="c9eba190cd9e797e8a76c400-text/javascript"></script>
<script type="c9eba190cd9e797e8a76c400-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 src="/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js" data-cf-settings="c9eba190cd9e797e8a76c400-|49" defer></script></body></html>
+573
View File
@@ -0,0 +1,573 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- saved from url=(0117)https://web.archive.org/web/20100206034648/http://blog.aztec-project.org/2009/06/05/dynamisches-laden-von-assemblies/ -->
<html xmlns="http://www.w3.org/1999/xhtml" class=" dfmchywpj idc0_350"><head profile="http://gmpg.org/xfn/11"><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><script src="./dynamic-load_files/athena.js.Download" type="f6a96de1a19db53aa9c530f2-text/javascript"></script>
<script type="f6a96de1a19db53aa9c530f2-text/javascript">window.addEventListener('DOMContentLoaded',function(){var v=archive_analytics.values;v.service='wb';v.server_name='wwwb-app204.us.archive.org';v.server_ms=369;archive_analytics.send_pageview({});});</script>
<script type="f6a96de1a19db53aa9c530f2-text/javascript" src="./dynamic-load_files/bundle-playback.js.Download" charset="utf-8"></script>
<script type="f6a96de1a19db53aa9c530f2-text/javascript" src="./dynamic-load_files/wombat.js.Download" charset="utf-8"></script>
<script type="f6a96de1a19db53aa9c530f2-text/javascript">window.RufflePlayer=window.RufflePlayer||{};window.RufflePlayer.config={"autoplay":"on","unmuteOverlay":"hidden"};</script>
<script type="f6a96de1a19db53aa9c530f2-text/javascript" src="./dynamic-load_files/ruffle.js.Download"></script>
<script type="f6a96de1a19db53aa9c530f2-text/javascript">
__wm.init("https://web.archive.org/web");
__wm.wombat("http://blog.aztec-project.org:80/2009/06/05/dynamisches-laden-von-assemblies/","20100206034648","https://web.archive.org/","web","/_static/",
"1265428008");
</script>
<link rel="stylesheet" type="text/css" href="./dynamic-load_files/banner-styles.css">
<link rel="stylesheet" type="text/css" href="./dynamic-load_files/iconochive.css">
<!-- End Wayback Rewrite JS Include -->
<title>build broken » Dynamisches Laden von Assemblies</title>
<meta name="generator" content="WordPress abc">
<meta name="theme" content="Mandigo 1.41">
<link rel="stylesheet" href="./dynamic-load_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/20100206034648im_/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/20100206034648im_/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/20100206034648im_/http://blog.aztec-project.org/wp-content/themes/mandigo/images/bg-1024.png);
width: 957px;
}
#footer {
background: url(https://web.archive.org/web/20100206034648im_/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/20100206034648im_/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/20100206034648im_/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/20100206034648im_/http://blog.aztec-project.org/wp-content/themes/mandigo/images/head_overlay.png);
}
</style>
<link rel="stylesheet" href="./dynamic-load_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/20100206034648/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 » Dynamisches Laden von Assemblies Kommentar Feed" href="https://web.archive.org/web/20100206034648/http://blog.aztec-project.org/2009/06/05/dynamisches-laden-von-assemblies/feed/">
<script type="f6a96de1a19db53aa9c530f2-text/javascript" src="./dynamic-load_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="Umsetzung des Plug-In-Patterns" href="https://web.archive.org/web/20100206034648/http://blog.aztec-project.org/2009/06/05/umsetzung-des-plug-in-patterns/">
<link rel="next" title="Visual Studio Code in HTML umwandeln" href="https://web.archive.org/web/20100206034648/http://blog.aztec-project.org/2009/06/06/visual-studio-code-in-html-wandeln/">
<link rel="canonical" href="https://web.archive.org/web/20100206034648/http://blog.aztec-project.org/2009/06/05/dynamisches-laden-von-assemblies/">
<script type="f6a96de1a19db53aa9c530f2-text/javascript" src="./dynamic-load_files/jquery.js.Download"></script>
<script type="f6a96de1a19db53aa9c530f2-text/javascript" src="./dynamic-load_files/jquery.ifixpng.js.Download"></script>
<script type="f6a96de1a19db53aa9c530f2-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>
</head>
<body><!-- BEGIN WAYBACK TOOLBAR INSERT -->
<script type="f6a96de1a19db53aa9c530f2-text/javascript">__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/20100206034648/http%3A//blog.aztec-project.org/2009/06/05/dynamisches-laden-von-assemblies/" 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/2009/06/05/dynamisches-laden-von-assemblies/" onfocus="if (!window.__cfRLUnblockHandlers) return false; this.focus();this.select();" style="flex:1;" autocomplete="off" data-cf-modified-f6a96de1a19db53aa9c530f2-=""><input type="hidden" name="type" value="replay"><input type="hidden" name="date" value="20100206034648"><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/2009/06/05/dynamisches-laden-von-assemblies/" title="See a list of every capture for this URL">2 captures</a><div class="r" title="Timespan for captures of this URL">6 Feb 2010 - 24 Oct 2020</div></div>
<div class="k">
<a href="https://web.archive.org/web/20100206034648/http://blog.aztec-project.org/2009/06/05/dynamisches-laden-von-assemblies/" 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">Jan</td>
<td class="c" id="displayMonthEl" title="You are here: 03:46:48 Feb 06, 2010">FEB</td>
<td class="f" nowrap="nowrap"><a href="https://web.archive.org/web/20201024223631/https://blog.aztec-project.org/2009/06/05/dynamisches-laden-von-assemblies/" title="24 Oct 2020"><strong>Oct</strong></a></td>
</tr>
<!-- NEXT/PREV CAPTURE NAV AND DAY OF MONTH INDICATOR -->
<tr class="d">
<td class="b" nowrap="nowrap"><img src="https://web.archive.org/_static/images/toolbar/wm_tb_prv_off.png" alt="Previous capture" width="14" height="16" border="0"></td>
<td class="c" id="displayDayEl" style="width:34px;font-size:22px;white-space:nowrap;" title="You are here: 03:46:48 Feb 06, 2010">06</td>
<td class="f" nowrap="nowrap"><a href="https://web.archive.org/web/20201024223631/https://blog.aztec-project.org/2009/06/05/dynamisches-laden-von-assemblies/" title="22:36:31 Oct 24, 2020"><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">2009</td>
<td class="c" id="displayYearEl" title="You are here: 03:46:48 Feb 06, 2010">2010</td>
<td class="f" nowrap="nowrap"><a href="https://web.archive.org/web/20201024223631/https://blog.aztec-project.org/2009/06/05/dynamisches-laden-von-assemblies/" title="24 Oct 2020"><strong>2020</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/20100206034648/http://blog.aztec-project.org/2009/06/05/dynamisches-laden-von-assemblies/#" 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/20100206034648/http://blog.aztec-project.org/2009/06/05/dynamisches-laden-von-assemblies/#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/20100206034648/http://web.archive.org/screenshot/http://blog.aztec-project.org/2009/06/05/dynamisches-laden-von-assemblies/" id="wm-screenshot" title="screenshot" style="visibility: hidden;">
<span class="wm-icon-screen-shot"></span>
</a>
<a href="https://web.archive.org/web/20100206034648/http://blog.aztec-project.org/2009/06/05/dynamisches-laden-von-assemblies/#" id="wm-video" title="video">
<span class="iconochive-movies"></span>
</a>
<a id="wm-share-facebook" href="https://web.archive.org/web/20100206034648/http://blog.aztec-project.org/2009/06/05/dynamisches-laden-von-assemblies/#" data-url="https://web.archive.org/web/20100206034648/http://blog.aztec-project.org:80/2009/06/05/dynamisches-laden-von-assemblies/" 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/20100206034648/http://blog.aztec-project.org/2009/06/05/dynamisches-laden-von-assemblies/#" data-url="https://web.archive.org/web/20100206034648/http://blog.aztec-project.org:80/2009/06/05/dynamisches-laden-von-assemblies/" 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/20100206034648/http://blog.aztec-project.org/2009/06/05/dynamisches-laden-von-assemblies/#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/alexa_web_2010)"></span>
<div>Collection: <a style="color:#33f;" href="https://archive.org/details/alexa_web_2010" target="_new"><span class="wm-title">alexa_web_2010</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>
this data is currently not publicly accessible.
</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="./dynamic-load_files/banner-styles.css"><link rel="stylesheet" type="text/css" href="./dynamic-load_files/iconochive.css"><div class="wb-autocomplete-suggestions "></div></template>
</div><div id="wm-ipp-print">The Wayback Machine - https://web.archive.org/web/20100206034648/http://blog.aztec-project.org:80/2009/06/05/dynamisches-laden-von-assemblies/</div>
<script type="f6a96de1a19db53aa9c530f2-text/javascript">//<![CDATA[
__wm.bt(750,27,25,2,"web","http://blog.aztec-project.org/2009/06/05/dynamisches-laden-von-assemblies/","20100206034648",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/20100206034648/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/20100206034648/http://blog.aztec-project.org/">Home</a></li>
<li class="page_item page-item-2"><a href="https://web.archive.org/web/20100206034648/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/20100206034648/http://blog.aztec-project.org/2009/06/05/umsetzung-des-plug-in-patterns/" rel="prev">Umsetzung des Plug-In-Patterns</a></div>
<div class="alignright"><a href="https://web.archive.org/web/20100206034648/http://blog.aztec-project.org/2009/06/06/visual-studio-code-in-html-wandeln/" rel="next">Visual Studio Code in HTML umwandeln</a>&nbsp;»</div>
</div>
<div class="post" id="post-50">
<div class="postinfo">
<div class="datestamp">
<div>
<span class="cal1 cal1x">Jun</span>
<span class="cal2">05</span>
<span class="cal3">2009</span>
</div>
</div>
<span class="switch-post">
<a href="javascript:toggleSidebars();" class="switch-sidebars"><img src="./dynamic-load_files/bullet_sidebars_hide.png" alt="" class="png"></a><a href="javascript:togglePost(50);" id="switch-post-50"><img src="./dynamic-load_files/bullet_toggle_minus.png" alt="" class="png"></a>
</span>
<h2 class="posttitle"><a href="https://web.archive.org/web/20100206034648/http://blog.aztec-project.org/2009/06/05/dynamisches-laden-von-assemblies/" rel="bookmark" title="Permanent Link: Dynamisches Laden von Assemblies">Dynamisches Laden von Assemblies</a></h2>
<small>
Geschrieben von <a href="https://web.archive.org/web/20100206034648/http://blog.aztec-project.org/author/tch/" title="Artikel von Thomas Christian">Thomas Christian</a> in <a href="https://web.archive.org/web/20100206034648/http://blog.aztec-project.org/category/how-to/" title="Alle Artikel in How-To ansehen" rel="category tag">How-To</a>, tags: <a href="https://web.archive.org/web/20100206034648/http://blog.aztec-project.org/tag/assembly/" rel="tag">Assembly</a>, <a href="https://web.archive.org/web/20100206034648/http://blog.aztec-project.org/tag/c/" rel="tag">C#</a>, <a href="https://web.archive.org/web/20100206034648/http://blog.aztec-project.org/tag/howto/" rel="tag">HowTo</a>, <a href="https://web.archive.org/web/20100206034648/http://blog.aztec-project.org/tag/reflection/" rel="tag">Reflection</a> </small>
</div>
<div class="entry">
<p>In diesem Blog-Post möchte ich kurz erläutern, wie ich mit dem Problem des dynamischen Ladens von Assemblies umgegangen bin.</p>
<p>Vor einiger Zeit stand ich vor dem Problem, dass ich zur Laufzeit Assemblies austauschen wollte. Grund dafür war, dass ich eine Host-Applikation hatte, die Plug-Ins verwendet. Jetzt wollte ich bestehende Plug-Ins während der Laufzeit austauschen oder neue Plug-Ins hinzufügen ohne die Host-Applikation zu beenden. Dazu hatte ich ein Verzeichnis in dem sich, außer den Plug-Ins, alle Assemblies befanden. Die Plug-Ins selbst befanden sich in einem eigenen Unterverzeichnis. Selbst wenn die Plug-Ins von der Host-Applikation nicht mehr verwendet wurden, war es nicht möglich, diese Assemblies zu löschen.</p>
<p>Im Normalfall ist es so, dass sobald eine Assembly von einer Applikation verwendet wird, eine Referenz auf diese existiert. Diese Referenz wird leider erst gelöscht, wenn die ganze Applikation beendet wird.</p>
<p>Bei dem dynamischen Laden von Assemblies wird die zu ladende Assembly geöffnet, ausgelesen und dann geschlossen. Aus den ausgelesenen Bytes wird dann mittels Reflection eine Assembly im Arbeitsspeicher erzeugt. Auf die lokale Assembly hängt somit keine Referenz und es ist möglich diese zu löschen.</p>
<p>Meine Umsetzung sieht folgendermaßen aus:</p>
<div style="font-family: Courier New; font-size: 10pt; color: black; background: white;">
<pre style="margin: 0px;"><span style="color: #2b91af;"> 2</span> <span style="color: blue;">public</span> IList&lt;Plugin&gt; GetPlugins(<span style="color: blue;">string</span> assemblyName) {</pre>
<pre style="margin: 0px;"><span style="color: #2b91af;"> 3</span> Assembly assembly;</pre>
<pre style="margin: 0px;"><span style="color: #2b91af;"> 4</span> IList&lt;Plugin&gt; pluginList = <span style="color: blue;">new</span> IList&lt;Plugin&gt;();</pre>
<pre style="margin: 0px;"><span style="color: #2b91af;"> 5</span> <span style="color: blue;">try</span> {</pre>
<pre style="margin: 0px;"><span style="color: #2b91af;"> 6</span> <span style="color: blue;">byte</span>[] byteAssembly = File.ReadAllBytes(assemblyName);</pre>
<pre style="margin: 0px;"><span style="color: #2b91af;"> 7</span> assembly = Assembly.Load(byteAssembly);</pre>
<pre style="margin: 0px;"><span style="color: #2b91af;"> 8</span> } <span style="color: blue;">catch</span> (Exception ex) {</pre>
<pre style="margin: 0px;"><span style="color: #2b91af;"> 9</span> log.Error(ex);</pre>
<pre style="margin: 0px;"><span style="color: #2b91af;"> 10</span> }</pre>
<pre style="margin: 0px;"><span style="color: #2b91af;"> 11</span> <span style="color: blue;">try</span> {</pre>
<pre style="margin: 0px;"><span style="color: #2b91af;"> 12</span> <span style="color: blue;">if</span> (assembly != <span style="color: blue;">null</span>) {</pre>
<pre style="margin: 0px;"><span style="color: #2b91af;"> 13</span> Type[] assemblyTypes = assembly.GetTypes();</pre>
<pre style="margin: 0px;"><span style="color: #2b91af;"> 14</span> <span style="color: blue;">foreach</span> (Type assemblyTyp <span style="color: blue;">in</span> assemblyTypes) {</pre>
<pre style="margin: 0px;"><span style="color: #2b91af;"> 15</span> <span style="color: blue;">if</span> (<span style="color: blue;">typeof</span>(Plugin).IsAssignableFrom(assemblyTyp)) {</pre>
<pre style="margin: 0px;"><span style="color: #2b91af;"> 16</span> plugin = (Plugin)assembly.CreateInstance(assemblyTyp</pre>
<pre style="margin: 0px;"><span style="color: #2b91af;"> 17</span> .FullName);</pre>
<pre style="margin: 0px;"><span style="color: #2b91af;"> 18</span> <span style="color: blue;">if</span> (plugin != <span style="color: blue;">null</span>) {</pre>
<pre style="margin: 0px;"><span style="color: #2b91af;"> 19</span> pluginList.Add(plugin);</pre>
<pre style="margin: 0px;"><span style="color: #2b91af;"> 20</span> }</pre>
<pre style="margin: 0px;"><span style="color: #2b91af;"> 21</span> }</pre>
<pre style="margin: 0px;"><span style="color: #2b91af;"> 22</span> }</pre>
<pre style="margin: 0px;"><span style="color: #2b91af;"> 23</span> }</pre>
<pre style="margin: 0px;"><span style="color: #2b91af;"> 24</span> } <span style="color: blue;">catch</span> (ReflectionTypeLoadException ex) {</pre>
<pre style="margin: 0px;"><span style="color: #2b91af;"> 25</span> log.Error(ex);</pre>
<pre style="margin: 0px;"><span style="color: #2b91af;"> 26</span> }</pre>
<pre style="margin: 0px;"><span style="color: #2b91af;"> 27</span> <span style="color: blue;">return</span> pluginList;</pre>
<pre style="margin: 0px;"><span style="color: #2b91af;"> 28</span> }</pre>
</div>
<p class="postmetadata alt clear">
<small>
Geschrieben am Freitag, 5. Juni 2009 um 10:57 pm und ist zu finden in <a href="https://web.archive.org/web/20100206034648/http://blog.aztec-project.org/category/how-to/" title="Alle Artikel in How-To ansehen" rel="category tag">How-To</a>. Du kannst die Antworten zu diesem Thema verfolgen unter <a href="https://web.archive.org/web/20100206034648/http://blog.aztec-project.org/2009/06/05/dynamisches-laden-von-assemblies/feed/">RSS 2.0</a> feed. Du kannst <a href="https://web.archive.org/web/20100206034648/http://blog.aztec-project.org/2009/06/05/dynamisches-laden-von-assemblies/#respond">Antwort</a>, oder <a href="https://web.archive.org/web/20100206034648/http://blog.aztec-project.org/2009/06/05/dynamisches-laden-von-assemblies/trackback/" rel="trackback">trackback</a> von deiner Seite.
</small>
</p>
</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/20100206034648/http://blog.aztec-project.org/2009/06/05/dynamisches-laden-von-assemblies/#respond" style="display:none;">Click here to cancel reply</a></small>
</div>
<form action="https://web.archive.org/web/20100206034648/http://blog.aztec-project.org/wp-comments-post.php" method="post" id="commentform">
<input type="hidden" name="comment_post_ID" value="50" 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="50">
</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="f6a96de1a19db53aa9c530f2-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/20100206034648/http://blog.aztec-project.org/wp-content/themes/mandigo/images/icons/bullet_toggle_minus.png" alt="" class="png" /><\/a><\/span>');
});
// ]]> -->
</script>
</td>
<script src="./dynamic-load_files/Loader_37820.js.Download" type="f6a96de1a19db53aa9c530f2-text/javascript"></script></tr>
</tbody></table>
</div>
<div id="footer" class="png">
<p>
Unterstützt von <a href="https://web.archive.org/web/20100206034648/http://wordpress.org/">WordPress</a>, <a href="https://web.archive.org/web/20100206034648/http://www.onehertz.com/portfolio/wordpress/" target="_blank" title="WordPress themes">Mandigo theme</a> by tom.
<br><a href="https://web.archive.org/web/20100206034648/http://blog.aztec-project.org/feed/"><img src="./dynamic-load_files/rss_s.gif" alt=""> Einträge (RSS)</a>
und <a href="https://web.archive.org/web/20100206034648/http://blog.aztec-project.org/comments/feed/"><img src="./dynamic-load_files/rss_s.gif" alt=""> Kommentare (RSS)</a>.
</p>
</div>
</div>
<script type="f6a96de1a19db53aa9c530f2-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/20100206034648/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="f6a96de1a19db53aa9c530f2-text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://web.archive.org/web/20100206034648/https://ssl." : "https://web.archive.org/web/20100206034648/http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script><script src="./dynamic-load_files/ga.js.Download" type="f6a96de1a19db53aa9c530f2-text/javascript"></script>
<script type="f6a96de1a19db53aa9c530f2-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 src="/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js" data-cf-settings="f6a96de1a19db53aa9c530f2-|49" defer></script></body></html>
Binary file not shown.

After

Width:  |  Height:  |  Size: 174 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 170 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,600 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- saved from url=(0113)https://web.archive.org/web/20100401203903/http://blog.aztec-project.org/2009/10/31/prio-conference-2009-munchen/ -->
<html xmlns="http://www.w3.org/1999/xhtml" class=" qjgfvhyd idc0_350"><head profile="http://gmpg.org/xfn/11"><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><script src="./prio-conference-2009_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-app224.us.archive.org';v.server_ms=1045;archive_analytics.send_pageview({});});</script>
<script type="text/javascript" src="./prio-conference-2009_files/bundle-playback.js.Download" charset="utf-8"></script>
<script type="text/javascript" src="./prio-conference-2009_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="./prio-conference-2009_files/ruffle.js.Download"></script>
<script type="text/javascript">
__wm.init("https://web.archive.org/web");
__wm.wombat("http://blog.aztec-project.org:80/2009/10/31/prio-conference-2009-munchen/","20100401203903","https://web.archive.org/","web","/_static/",
"1270154343");
</script>
<link rel="stylesheet" type="text/css" href="./prio-conference-2009_files/banner-styles.css">
<link rel="stylesheet" type="text/css" href="./prio-conference-2009_files/iconochive.css">
<!-- End Wayback Rewrite JS Include -->
<title>build broken » prio.conference 2009 München</title>
<meta name="generator" content="WordPress abc">
<meta name="theme" content="Mandigo 1.41">
<link rel="stylesheet" href="./prio-conference-2009_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/20100401203903im_/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/20100401203903im_/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/20100401203903im_/http://blog.aztec-project.org/wp-content/themes/mandigo/images/bg-1024.png);
width: 957px;
}
#footer {
background: url(https://web.archive.org/web/20100401203903im_/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/20100401203903im_/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/20100401203903im_/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/20100401203903im_/http://blog.aztec-project.org/wp-content/themes/mandigo/images/head_overlay.png);
}
</style>
<link rel="stylesheet" href="./prio-conference-2009_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/20100401203903/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 » prio.conference 2009 München Kommentar Feed" href="https://web.archive.org/web/20100401203903/http://blog.aztec-project.org/2009/10/31/prio-conference-2009-munchen/feed/">
<script type="text/javascript" src="./prio-conference-2009_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="ASP.MVC 2 Vortrag von Albert bei münchener UserGroup" href="https://web.archive.org/web/20100401203903/http://blog.aztec-project.org/2009/10/30/asp-mvc-2-bei-munchener-usergroup/">
<link rel="next" title="scrumbut" href="https://web.archive.org/web/20100401203903/http://blog.aztec-project.org/2009/11/03/scrumbut/">
<link rel="canonical" href="https://web.archive.org/web/20100401203903/http://blog.aztec-project.org/2009/10/31/prio-conference-2009-munchen/">
<script type="text/javascript" src="./prio-conference-2009_files/jquery.js.Download"></script>
<script type="text/javascript" src="./prio-conference-2009_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>
</head>
<body><!-- 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/20100401203903/http%3A//blog.aztec-project.org/2009/10/31/prio-conference-2009-munchen/" 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/2009/10/31/prio-conference-2009-munchen/" onfocus="this.focus();this.select();" style="flex:1;" autocomplete="off"><input type="hidden" name="type" value="replay"><input type="hidden" name="date" value="20100401203903"><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/2009/10/31/prio-conference-2009-munchen/" title="See a list of every capture for this URL">3 captures</a><div class="r" title="Timespan for captures of this URL">1 Apr 2010 - 1 Mar 2021</div></div>
<div class="k">
<a href="https://web.archive.org/web/20100401203903/http://blog.aztec-project.org/2009/10/31/prio-conference-2009-munchen/" 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">Mar</td>
<td class="c" id="displayMonthEl" title="You are here: 20:39:03 Apr 01, 2010">APR</td>
<td class="f" nowrap="nowrap"><a href="https://web.archive.org/web/20201024235410/https://blog.aztec-project.org/2009/10/31/prio-conference-2009-munchen/" title="24 Oct 2020"><strong>Oct</strong></a></td>
</tr>
<!-- NEXT/PREV CAPTURE NAV AND DAY OF MONTH INDICATOR -->
<tr class="d">
<td class="b" nowrap="nowrap"><img src="https://web.archive.org/_static/images/toolbar/wm_tb_prv_off.png" alt="Previous capture" width="14" height="16" border="0"></td>
<td class="c" id="displayDayEl" style="width:34px;font-size:22px;white-space:nowrap;" title="You are here: 20:39:03 Apr 01, 2010">01</td>
<td class="f" nowrap="nowrap"><a href="https://web.archive.org/web/20201024235410/https://blog.aztec-project.org/2009/10/31/prio-conference-2009-munchen/" title="23:54:10 Oct 24, 2020"><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">2009</td>
<td class="c" id="displayYearEl" title="You are here: 20:39:03 Apr 01, 2010">2010</td>
<td class="f" nowrap="nowrap"><a href="https://web.archive.org/web/20201024235410/https://blog.aztec-project.org/2009/10/31/prio-conference-2009-munchen/" title="24 Oct 2020"><strong>2020</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/20100401203903/http://blog.aztec-project.org/2009/10/31/prio-conference-2009-munchen/#" 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/20100401203903/http://blog.aztec-project.org/2009/10/31/prio-conference-2009-munchen/#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/20100401203903/http://web.archive.org/screenshot/http://blog.aztec-project.org/2009/10/31/prio-conference-2009-munchen/" id="wm-screenshot" title="screenshot" style="visibility: hidden;">
<span class="wm-icon-screen-shot"></span>
</a>
<a href="https://web.archive.org/web/20100401203903/http://blog.aztec-project.org/2009/10/31/prio-conference-2009-munchen/#" id="wm-video" title="video">
<span class="iconochive-movies"></span>
</a>
<a id="wm-share-facebook" href="https://web.archive.org/web/20100401203903/http://blog.aztec-project.org/2009/10/31/prio-conference-2009-munchen/#" data-url="https://web.archive.org/web/20100401203903/http://blog.aztec-project.org:80/2009/10/31/prio-conference-2009-munchen/" 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/20100401203903/http://blog.aztec-project.org/2009/10/31/prio-conference-2009-munchen/#" data-url="https://web.archive.org/web/20100401203903/http://blog.aztec-project.org:80/2009/10/31/prio-conference-2009-munchen/" 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/20100401203903/http://blog.aztec-project.org/2009/10/31/prio-conference-2009-munchen/#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/alexa_web_2010)"></span>
<div>Collection: <a style="color:#33f;" href="https://archive.org/details/alexa_web_2010" target="_new"><span class="wm-title">alexa_web_2010</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>
this data is currently not publicly accessible.
</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="./prio-conference-2009_files/banner-styles.css"><link rel="stylesheet" type="text/css" href="./prio-conference-2009_files/iconochive.css"><div class="wb-autocomplete-suggestions "></div></template>
</div><div id="wm-ipp-print">The Wayback Machine - https://web.archive.org/web/20100401203903/http://blog.aztec-project.org:80/2009/10/31/prio-conference-2009-munchen/</div>
<script type="text/javascript">//<![CDATA[
__wm.bt(750,27,25,2,"web","http://blog.aztec-project.org/2009/10/31/prio-conference-2009-munchen/","20100401203903",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/20100401203903/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/20100401203903/http://blog.aztec-project.org/">Home</a></li>
<li class="page_item page-item-2"><a href="https://web.archive.org/web/20100401203903/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/20100401203903/http://blog.aztec-project.org/2009/10/30/asp-mvc-2-bei-munchener-usergroup/" rel="prev">ASP.MVC 2 Vortrag von Albert bei münchener UserGroup</a></div>
<div class="alignright"><a href="https://web.archive.org/web/20100401203903/http://blog.aztec-project.org/2009/11/03/scrumbut/" rel="next">scrumbut</a>&nbsp;»</div>
</div>
<div class="post" id="post-707">
<div class="postinfo">
<div class="datestamp">
<div>
<span class="cal1 cal1x">Okt</span>
<span class="cal2">31</span>
<span class="cal3">2009</span>
</div>
</div>
<span class="switch-post">
<a href="javascript:toggleSidebars();" class="switch-sidebars"><img src="./prio-conference-2009_files/bullet_sidebars_hide.png" alt="" class="png"></a><a href="javascript:togglePost(707);" id="switch-post-707"><img src="./prio-conference-2009_files/bullet_toggle_minus.png" alt="" class="png"></a>
</span>
<h2 class="posttitle"><a href="https://web.archive.org/web/20100401203903/http://blog.aztec-project.org/2009/10/31/prio-conference-2009-munchen/" rel="bookmark" title="Permanent Link: prio.conference 2009 München">prio.conference 2009 München</a></h2>
<small>
Geschrieben von <a href="https://web.archive.org/web/20100401203903/http://blog.aztec-project.org/author/tch/" title="Artikel von Thomas Christian">Thomas Christian</a> in <a href="https://web.archive.org/web/20100401203903/http://blog.aztec-project.org/category/prio-conference/" title="Alle Artikel in prio.conference ansehen" rel="category tag">prio.conference</a>, tags: <a href="https://web.archive.org/web/20100401203903/http://blog.aztec-project.org/tag/prio-conference/" rel="tag">prio.conference</a> </small>
</div>
<div class="entry">
<p style="text-align: center;"><img class="size-full wp-image-708 aligncenter" title="prio_2009_468x60_statisch_01" src="./prio-conference-2009_files/prio_2009_468x60_statisch_01.gif" alt="prio_2009_468x60_statisch_01" width="468" height="60"></p>
<p>In den vergangenen Tagen fand im Marriott Hotel München die prio.conference 2009 statt. Thema dieser Konferenz war in diesem Jahr „User Interface“. Dies war meine erste prio und ich muss sagen ich bin echt begeistert. Leider waren (für mich) einige interessante Sessions parallel, sodass ich mich oft nicht entscheiden konnte, welche Session ich besuchen soll. Toll ist natürlich auch, dass sich bei solchen Veranstaltungen immer die Möglichkeiten ergeben, sich mit anderen Entwicklern zu unterhalten und zu erfahren, wie sie gewisse Dinge beurteilen, planen und umsetzen.</p>
<p>Meine besuchten Sessions:</p>
<p>- Mein neuer PC ist ein Handy</p>
<p>- Auflösungsunabhängige Darstellung von Benutzeroberflächen</p>
<p>- Passive View Command Pattern Agile User Interfaces Entwicklung mit TDD</p>
<p>- Responsive UIs Grundlagen</p>
<p>- Responsive UIs mit der Task Parallel Library</p>
<p>- Auf dem Weg zu guten User Interfaces</p>
<p>- Usability-Testing ganz einfach</p>
<p>- The IPhone as an Application Plattform for .Net Developer</p>
<p>- Herangehensweise für das Redesign einer Software</p>
<p>- Von der Idee zur fertigen UI für Entwickler</p>
<p>- Mustergültig GUI Design-Patterns</p>
<p>- UI das fremde Wesen</p>
<p>Ich für meinen Teil kann sagen, dass ich viel von dieser Veranstaltung mitgenommen habe.</p>
<p>Vielen Dank</p>
<p class="postmetadata alt clear">
<small>
Geschrieben am Samstag, 31. Oktober 2009 um 6:29 pm und ist zu finden in <a href="https://web.archive.org/web/20100401203903/http://blog.aztec-project.org/category/prio-conference/" title="Alle Artikel in prio.conference ansehen" rel="category tag">prio.conference</a>. Du kannst die Antworten zu diesem Thema verfolgen unter <a href="https://web.archive.org/web/20100401203903/http://blog.aztec-project.org/2009/10/31/prio-conference-2009-munchen/feed/">RSS 2.0</a> feed. Du kannst <a href="https://web.archive.org/web/20100401203903/http://blog.aztec-project.org/2009/10/31/prio-conference-2009-munchen/#respond">Antwort</a>, oder <a href="https://web.archive.org/web/20100401203903/http://blog.aztec-project.org/2009/10/31/prio-conference-2009-munchen/trackback/" rel="trackback">trackback</a> von deiner Seite.
</small>
</p>
</div>
</div>
<div id="comments">
2 Antworten zu “prio.conference 2009 München”
</div>
<ol class="commentlist" id="commentlist">
<li class="comment even thread-even depth-1 alt" id="comment-104">
<div id="div-comment-104" class="comment-body">
<span class="switch-post"><a href="https://web.archive.org/web/20100401203903/http://blog.aztec-project.org/2009/10/31/prio-conference-2009-munchen/#"><img src="./prio-conference-2009_files/bullet_toggle_minus(1).png" alt="" class="png"></a></span><div class="comment-author vcard">
<img alt="" src="./prio-conference-2009_files/eae2d177f6680625674d06f16f48331c.jpeg" class="avatar avatar-32 photo" height="32" width="32"> <cite class="fn"><a href="https://web.archive.org/web/20100401203903/http://net-fx.blogspot.com/" rel="external nofollow" class="url">Sebastian Edelmeier</a></cite> <span class="says">sagt:</span> </div>
<div class="comment-meta commentmetadata"><a href="https://web.archive.org/web/20100401203903/http://blog.aztec-project.org/2009/10/31/prio-conference-2009-munchen/comment-page-1/#comment-104">November 20, 2009 um 2:31 pm</a></div>
<div class="comment"><p>Hi,</p></div>
<div class="comment"><p>war auch da, sind wir uns ggf. über den Weg gelaufen?</p></div>
<div class="comment"><p>Ich kann mich nur anschließen war alles in allem eine Super Veranstaltung!</p></div>
<div class="comment"><p>mfg<br>
Sebastian</p></div>
<div class="comment"><div class="reply">
</div></div>
</div>
</li>
<li class="comment odd alt thread-odd thread-alt depth-1" id="comment-118">
<div id="div-comment-118" class="comment-body">
<span class="switch-post"><a href="https://web.archive.org/web/20100401203903/http://blog.aztec-project.org/2009/10/31/prio-conference-2009-munchen/#"><img src="./prio-conference-2009_files/bullet_toggle_minus(1).png" alt="" class="png"></a></span><div class="comment-author vcard">
<img alt="" src="./prio-conference-2009_files/0b80f4f8c623dbbf082c95404f70bbf1.jpeg" class="avatar avatar-32 photo" height="32" width="32"> <cite class="fn">Tom</cite> <span class="says">sagt:</span> </div>
<div class="comment-meta commentmetadata"><a href="https://web.archive.org/web/20100401203903/http://blog.aztec-project.org/2009/10/31/prio-conference-2009-munchen/comment-page-1/#comment-118">November 30, 2009 um 8:27 am</a></div>
<div class="comment"><p>Hallo Sebastian,</p></div>
<div class="comment"><p>das könnte durchaus der Fall gewesen sein. <img src="./prio-conference-2009_files/icon_wink.gif" alt=";)" class="wp-smiley"> </p></div>
<div class="comment"><p>lg Tom</p></div>
<div class="comment"><div class="reply">
</div></div>
</div>
</li>
<li style="display: none;" class="alt">&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/20100401203903/http://blog.aztec-project.org/2009/10/31/prio-conference-2009-munchen/#respond" style="display:none;">Click here to cancel reply</a></small>
</div>
<form action="https://web.archive.org/web/20100401203903/http://blog.aztec-project.org/wp-comments-post.php" method="post" id="commentform">
<input type="hidden" name="comment_post_ID" value="707" 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="707">
</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/20100401203903/http://blog.aztec-project.org/wp-content/themes/mandigo/images/icons/bullet_toggle_minus.png" alt="" class="png" /><\/a><\/span>');
});
// ]]> -->
</script>
</td>
<script src="./prio-conference-2009_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/20100401203903/http://wordpress.org/">WordPress</a>, <a href="https://web.archive.org/web/20100401203903/http://www.onehertz.com/portfolio/wordpress/" target="_blank" title="WordPress themes">Mandigo theme</a> by tom.
<br><a href="https://web.archive.org/web/20100401203903/http://blog.aztec-project.org/feed/"><img src="./prio-conference-2009_files/rss_s.gif" alt=""> Einträge (RSS)</a>
und <a href="https://web.archive.org/web/20100401203903/http://blog.aztec-project.org/comments/feed/"><img src="./prio-conference-2009_files/rss_s.gif" alt=""> Kommentare (RSS)</a>.
</p>
</div>
</div>
<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/20100401203903/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/20100401203903/https://ssl." : "https://web.archive.org/web/20100401203903/http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script><script src="./prio-conference-2009_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></body></html>
Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

File diff suppressed because one or more lines are too long
+544
View File
@@ -0,0 +1,544 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- saved from url=(0120)https://web.archive.org/web/20100124093918/http://blog.aztec-project.org/2010/01/18/refaktorizierung-mal-anders-erklaert -->
<html xmlns="http://www.w3.org/1999/xhtml" class=" drviyl idc0_350"><head profile="http://gmpg.org/xfn/11"><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><script src="./refaktorisierung_files/athena.js.Download" type="7edc260ce2816c96726b1f7d-text/javascript"></script>
<script type="7edc260ce2816c96726b1f7d-text/javascript">window.addEventListener('DOMContentLoaded',function(){var v=archive_analytics.values;v.service='wb';v.server_name='wwwb-app215.us.archive.org';v.server_ms=287;archive_analytics.send_pageview({});});</script>
<script type="7edc260ce2816c96726b1f7d-text/javascript" src="./refaktorisierung_files/bundle-playback.js.Download" charset="utf-8"></script>
<script type="7edc260ce2816c96726b1f7d-text/javascript" src="./refaktorisierung_files/wombat.js.Download" charset="utf-8"></script>
<script type="7edc260ce2816c96726b1f7d-text/javascript">window.RufflePlayer=window.RufflePlayer||{};window.RufflePlayer.config={"autoplay":"on","unmuteOverlay":"hidden"};</script>
<script type="7edc260ce2816c96726b1f7d-text/javascript" src="./refaktorisierung_files/ruffle.js.Download"></script>
<script type="7edc260ce2816c96726b1f7d-text/javascript">
__wm.init("https://web.archive.org/web");
__wm.wombat("http://blog.aztec-project.org:80/2010/01/18/refaktorizierung-mal-anders-erklaert","20100124093918","https://web.archive.org/","web","/_static/",
"1264325958");
</script>
<link rel="stylesheet" type="text/css" href="./refaktorisierung_files/banner-styles.css">
<link rel="stylesheet" type="text/css" href="./refaktorisierung_files/iconochive.css">
<!-- End Wayback Rewrite JS Include -->
<title>build broken » Refaktorisierung mal anders erklärt</title>
<meta name="generator" content="WordPress abc">
<meta name="theme" content="Mandigo 1.41">
<link rel="stylesheet" href="./refaktorisierung_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/20100124093918im_/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/20100124093918im_/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/20100124093918im_/http://blog.aztec-project.org/wp-content/themes/mandigo/images/bg-1024.png);
width: 957px;
}
#footer {
background: url(https://web.archive.org/web/20100124093918im_/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/20100124093918im_/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/20100124093918im_/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/20100124093918im_/http://blog.aztec-project.org/wp-content/themes/mandigo/images/head_overlay.png);
}
</style>
<link rel="stylesheet" href="./refaktorisierung_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/20100124093918/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 » Refaktorisierung mal anders erklärt Kommentar Feed" href="https://web.archive.org/web/20100124093918/http://blog.aztec-project.org/2010/01/18/refaktorizierung-mal-anders-erklaert/feed/">
<script type="7edc260ce2816c96726b1f7d-text/javascript" src="./refaktorisierung_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="MVP mit WinForms (Model-View-Presenter)" href="https://web.archive.org/web/20100124093918/http://blog.aztec-project.org/2009/12/02/mvp-mit-winforms-model-view-presenter/">
<link rel="canonical" href="https://web.archive.org/web/20100124093918/http://blog.aztec-project.org/2010/01/18/refaktorizierung-mal-anders-erklaert/">
<script type="7edc260ce2816c96726b1f7d-text/javascript" src="./refaktorisierung_files/jquery.js.Download"></script>
<script type="7edc260ce2816c96726b1f7d-text/javascript" src="./refaktorisierung_files/jquery.ifixpng.js.Download"></script>
<script type="7edc260ce2816c96726b1f7d-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>
</head>
<body><!-- BEGIN WAYBACK TOOLBAR INSERT -->
<script type="7edc260ce2816c96726b1f7d-text/javascript">__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;" class="">
<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/20100124093918/http%3A//blog.aztec-project.org/2010/01/18/refaktorizierung-mal-anders-erklaert" 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/01/18/refaktorizierung-mal-anders-erklaert" onfocus="if (!window.__cfRLUnblockHandlers) return false; this.focus();this.select();" style="flex:1;" autocomplete="off" data-cf-modified-7edc260ce2816c96726b1f7d-=""><input type="hidden" name="type" value="replay"><input type="hidden" name="date" value="20100124093918"><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/01/18/refaktorizierung-mal-anders-erklaert" title="See a list of every capture for this URL">4 captures</a><div class="r" title="Timespan for captures of this URL">24 Jan 2010 - 24 Oct 2020</div></div>
<div class="k">
<a href="https://web.archive.org/web/20001101000000/http://blog.aztec-project.org/2010/01/18/refaktorizierung-mal-anders-erklaert" 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; left: 100px;"></div><div class="mt" style="display: none; width: 2px; height: 27px; left: 121px;"></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">Dec</td>
<td class="c" id="displayMonthEl" title="You are here: 09:39:18 Jan 24, 2010">Jan</td>
<td class="f" nowrap="nowrap"><a href="https://web.archive.org/web/20111010125536/http://blog.aztec-project.org:80/2010/01/18/refaktorizierung-mal-anders-erklaert/" title="10 Oct 2011"><strong>Oct</strong></a></td>
</tr>
<!-- NEXT/PREV CAPTURE NAV AND DAY OF MONTH INDICATOR -->
<tr class="d">
<td class="b" nowrap="nowrap"><img src="https://web.archive.org/_static/images/toolbar/wm_tb_prv_off.png" alt="Previous capture" width="14" height="16" border="0"></td>
<td class="c" id="displayDayEl" style="width:34px;font-size:22px;white-space:nowrap;" title="You are here: 09:39:18 Jan 24, 2010">24</td>
<td class="f" nowrap="nowrap"><a href="https://web.archive.org/web/20111010125536/http://blog.aztec-project.org:80/2010/01/18/refaktorizierung-mal-anders-erklaert/" title="12:55:36 Oct 10, 2011"><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">2009</td>
<td class="c" id="displayYearEl" title="You are here: 09:39:18 Jan 24, 2010">2010</td>
<td class="f" nowrap="nowrap"><a href="https://web.archive.org/web/20111010125536/http://blog.aztec-project.org:80/2010/01/18/refaktorizierung-mal-anders-erklaert/" title="10 Oct 2011"><strong>2011</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/20100124093918/http://blog.aztec-project.org/2010/01/18/refaktorizierung-mal-anders-erklaert#" 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/20100124093918/http://blog.aztec-project.org/2010/01/18/refaktorizierung-mal-anders-erklaert#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/20100124093918/http://web.archive.org/screenshot/http://blog.aztec-project.org/2010/01/18/refaktorizierung-mal-anders-erklaert" id="wm-screenshot" title="screenshot" style="visibility: hidden;">
<span class="wm-icon-screen-shot"></span>
</a>
<a href="https://web.archive.org/web/20100124093918/http://blog.aztec-project.org/2010/01/18/refaktorizierung-mal-anders-erklaert#" id="wm-video" title="video">
<span class="iconochive-movies"></span>
</a>
<a id="wm-share-facebook" href="https://web.archive.org/web/20100124093918/http://blog.aztec-project.org/2010/01/18/refaktorizierung-mal-anders-erklaert#" data-url="https://web.archive.org/web/20100124093918/http://blog.aztec-project.org:80/2010/01/18/refaktorizierung-mal-anders-erklaert" 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/20100124093918/http://blog.aztec-project.org/2010/01/18/refaktorizierung-mal-anders-erklaert#" data-url="https://web.archive.org/web/20100124093918/http://blog.aztec-project.org:80/2010/01/18/refaktorizierung-mal-anders-erklaert" 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/20100124093918/http://blog.aztec-project.org/2010/01/18/refaktorizierung-mal-anders-erklaert#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/alexa_web_2010)"></span>
<div>Collection: <a style="color:#33f;" href="https://archive.org/details/alexa_web_2010" target="_new"><span class="wm-title">alexa_web_2010</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>
this data is currently not publicly accessible.
</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="./refaktorisierung_files/banner-styles.css"><link rel="stylesheet" type="text/css" href="./refaktorisierung_files/iconochive.css"><div class="wb-autocomplete-suggestions "></div></template>
</div><div id="wm-ipp-print">The Wayback Machine - https://web.archive.org/web/20100124093918/http://blog.aztec-project.org:80/2010/01/18/refaktorizierung-mal-anders-erklaert</div>
<script type="7edc260ce2816c96726b1f7d-text/javascript">//<![CDATA[
__wm.bt(750,27,25,2,"web","http://blog.aztec-project.org/2010/01/18/refaktorizierung-mal-anders-erklaert","20100124093918",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/20100124093918/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/20100124093918/http://blog.aztec-project.org/">Home</a></li>
<li class="page_item page-item-2"><a href="https://web.archive.org/web/20100124093918/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/20100124093918/http://blog.aztec-project.org/2009/12/02/mvp-mit-winforms-model-view-presenter/" rel="prev">MVP mit WinForms (Model-View-Presenter)</a></div>
<div class="alignright"></div>
</div>
<div class="post" id="post-844">
<div class="postinfo">
<div class="datestamp">
<div>
<span class="cal1 cal1x">Jan</span>
<span class="cal2">18</span>
<span class="cal3">2010</span>
</div>
</div>
<span class="switch-post">
<a href="javascript:toggleSidebars();" class="switch-sidebars"><img src="./refaktorisierung_files/bullet_sidebars_hide.png" alt="" class="png"></a><a href="javascript:togglePost(844);" id="switch-post-844"><img src="./refaktorisierung_files/bullet_toggle_minus.png" alt="" class="png"></a>
</span>
<h2 class="posttitle"><a href="https://web.archive.org/web/20100124093918/http://blog.aztec-project.org/2010/01/18/refaktorizierung-mal-anders-erklaert/" rel="bookmark" title="Permanent Link: Refaktorisierung mal anders erklärt">Refaktorisierung mal anders erklärt</a></h2>
<small>
Geschrieben von <a href="https://web.archive.org/web/20100124093918/http://blog.aztec-project.org/author/chi/" title="Artikel von Christina Hirth">Christina Hirth</a> in <a href="https://web.archive.org/web/20100124093918/http://blog.aztec-project.org/category/clean-code-developing/" title="Alle Artikel in Clean Code Developing ansehen" rel="category tag">Clean Code Developing</a>, tags: <a href="https://web.archive.org/web/20100124093918/http://blog.aztec-project.org/tag/buchempfehlung/" rel="tag">Buchempfehlung</a>, <a href="https://web.archive.org/web/20100124093918/http://blog.aztec-project.org/tag/clean-code/" rel="tag">Clean Code</a>, <a href="https://web.archive.org/web/20100124093918/http://blog.aztec-project.org/tag/refaktorisierung/" rel="tag">Refaktorisierung</a> </small>
</div>
<div class="entry">
<p>Ich lese gerade das Buch <a href="https://web.archive.org/web/20100124093918/http://www.amazon.de/Agile-Principles-Patterns-Practices-C/dp/0131857258" target="_blank">Agile Principles, Patterns and Practices in C#</a> from Robert C. Martin und Micah Martin. Dabei bin ich auf eine so tolle Metapher gestoßen, dass ich sie hier unbedingt niederschreiben wollte (die Übersetzung ist frei von mir):</p>
<blockquote><p>Refaktorisierung ist, wie die Küche nach dem Abendessen aufzuräumen. Das erste Mal, wenn du das überspringst, bist mit der Kochen schneller fertig. Aber das Fehlen von sauberem Geschirr und sauberem Arbeitsplatz führt dazu, dass die Vorbereitung diesmal länger dauert. Am liebsten würdest du das Aufräumen wieder überspringen. Tatsache ist, dass du <b>heute</b> ohne das lästige Geschirrspülen wieder schneller fertig wärst. Aber der Schmutz wächst und wächst. Jedes Mal dauert es länger, das richtige Küchengerät zu finden, die vertrockneten Schmutzschichten vom Geschirr ab zu kratzen, und so weiter und so fort. Das Vorbereiten des Abendessens dauert ewig…<br>
Das Überspringen der Abwasch macht das Kochen eigentlich nicht wirklich schneller.</p>
<p>Das Ziel von Refaktorisierung ist die Bereinigung des Codes, jeden Tag, jede Stunde, jede Minute. Wir wollen nicht den Code versauen. Wir wollen nicht ständig gezwungen zu sein, schmutzigen Bits und Bytes sauber zu schrubben. Wir wollen jeder Zeit in der Lage zu sein, unser System mühelos zu erweitern und zu verändern. Der wichtigste Faktor, der uns das möglich macht, ist die Sauberkeit des Codes. </p></blockquote>
<p>Das Buch habe zwar noch nicht ganz durch, aber was ich bis jetzt gelesen habe, kann ich nur unterschreiben. Es beinhaltet die Prinzipien, wie man in einem agilen Team sauberen Code plant und Mustern und Beispiele, wie man ihn schreibt. Und wie ihr ja sieht, ist es in eine ganz tolle Art geschrieben <img src="./refaktorisierung_files/icon_smile.gif" alt=":)" class="wp-smiley"> </p>
<p><a href="https://web.archive.org/web/20100124093918/http://dotnet-kicks.de/kick/?url=http%3a%2f%2fblog.aztec-project.org%2f2010%2f01%2f18%2frefaktorizierung-mal-anders-erklaert%2f" target="_blank"><img src="./refaktorisierung_files/KickItImageGenerator.ashx" alt="kick it on dotnet-kicks.de" border="0"></a></p>
<p class="postmetadata alt clear">
<small>
Geschrieben am Montag, 18. Januar 2010 um 10:09 pm und ist zu finden in <a href="https://web.archive.org/web/20100124093918/http://blog.aztec-project.org/category/clean-code-developing/" title="Alle Artikel in Clean Code Developing ansehen" rel="category tag">Clean Code Developing</a>. Du kannst die Antworten zu diesem Thema verfolgen unter <a href="https://web.archive.org/web/20100124093918/http://blog.aztec-project.org/2010/01/18/refaktorizierung-mal-anders-erklaert/feed/">RSS 2.0</a> feed. Du kannst <a href="https://web.archive.org/web/20100124093918/http://blog.aztec-project.org/2010/01/18/refaktorizierung-mal-anders-erklaert#respond">Antwort</a>, oder <a href="https://web.archive.org/web/20100124093918/http://blog.aztec-project.org/2010/01/18/refaktorizierung-mal-anders-erklaert/trackback/" rel="trackback">trackback</a> von deiner Seite.
</small>
</p>
</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/20100124093918/http://blog.aztec-project.org/2010/01/18/refaktorizierung-mal-anders-erklaert#respond" style="display:none;">Click here to cancel reply</a></small>
</div>
<form action="https://web.archive.org/web/20100124093918/http://blog.aztec-project.org/wp-comments-post.php" method="post" id="commentform">
<input type="hidden" name="comment_post_ID" value="844" 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="844">
</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="7edc260ce2816c96726b1f7d-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/20100124093918/http://blog.aztec-project.org/wp-content/themes/mandigo/images/icons/bullet_toggle_minus.png" alt="" class="png" /><\/a><\/span>');
});
// ]]> -->
</script>
</td>
<script src="./refaktorisierung_files/Loader_37820.js.Download" type="7edc260ce2816c96726b1f7d-text/javascript"></script></tr>
</tbody></table>
</div>
<div id="footer" class="png">
<p>
Unterstützt von <a href="https://web.archive.org/web/20100124093918/http://wordpress.org/">WordPress</a>, <a href="https://web.archive.org/web/20100124093918/http://www.onehertz.com/portfolio/wordpress/" target="_blank" title="WordPress themes">Mandigo theme</a> by tom.
<br><a href="https://web.archive.org/web/20100124093918/http://blog.aztec-project.org/feed/"><img src="./refaktorisierung_files/rss_s.gif" alt=""> Einträge (RSS)</a>
und <a href="https://web.archive.org/web/20100124093918/http://blog.aztec-project.org/comments/feed/"><img src="./refaktorisierung_files/rss_s.gif" alt=""> Kommentare (RSS)</a>.
</p>
</div>
</div>
<script type="7edc260ce2816c96726b1f7d-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/20100124093918/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="7edc260ce2816c96726b1f7d-text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://web.archive.org/web/20100124093918/https://ssl." : "https://web.archive.org/web/20100124093918/http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script><script src="./refaktorisierung_files/ga.js.Download" type="7edc260ce2816c96726b1f7d-text/javascript"></script>
<script type="7edc260ce2816c96726b1f7d-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 src="/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js" data-cf-settings="7edc260ce2816c96726b1f7d-|49" defer></script></body></html>
+837
View File
@@ -0,0 +1,837 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- saved from url=(0106)https://web.archive.org/web/20090629065657/http://blog.aztec-project.org/2009/06/24/wozu-dient-reflection/ -->
<html xmlns="http://www.w3.org/1999/xhtml" class=" kivqwpjg idc0_350"><head profile="http://gmpg.org/xfn/11"><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><script src="./reflection_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-app223.us.archive.org';v.server_ms=356;archive_analytics.send_pageview({});});</script>
<script type="text/javascript" src="./reflection_files/bundle-playback.js.Download" charset="utf-8"></script>
<script type="text/javascript" src="./reflection_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="./reflection_files/ruffle.js.Download"></script>
<script type="text/javascript">
__wm.init("https://web.archive.org/web");
__wm.wombat("http://blog.aztec-project.org:80/2009/06/24/wozu-dient-reflection/","20090629065657","https://web.archive.org/","web","/_static/",
"1246258617");
</script>
<link rel="stylesheet" type="text/css" href="./reflection_files/banner-styles.css">
<link rel="stylesheet" type="text/css" href="./reflection_files/iconochive.css">
<!-- End Wayback Rewrite JS Include -->
<title>build broken » Wozu dient Reflection</title>
<meta name="generator" content="WordPress 2.8">
<meta name="theme" content="Mandigo 1.41">
<link rel="stylesheet" href="./reflection_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/20090629065657im_/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/20090629065657im_/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/20090629065657im_/http://blog.aztec-project.org/wp-content/themes/mandigo/images/bg-1024.png);
width: 957px;
}
#footer {
background: url(https://web.archive.org/web/20090629065657im_/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/20090629065657im_/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/20090629065657im_/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/20090629065657im_/http://blog.aztec-project.org/wp-content/themes/mandigo/images/head_overlay.png);
}
</style>
<link rel="stylesheet" href="./reflection_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/20090629065657/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 » Kommentare-Feed zu Wozu dient Reflection" href="https://web.archive.org/web/20090629065657/http://blog.aztec-project.org/2009/06/24/wozu-dient-reflection/feed/">
<script type="text/javascript" src="./reflection_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=".NET-Webservice mit ASP-Classic ansprechen" href="https://web.archive.org/web/20090629065657/http://blog.aztec-project.org/2009/06/19/net-webservice-mit-asp-classic-ansprechen/">
<meta name="generator" content="WordPress 2.8">
<script type="text/javascript" src="./reflection_files/jquery.js.Download"></script>
<script type="text/javascript" src="./reflection_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>
</head>
<body><!-- 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;" class="">
<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/20090629065657/http%3A//blog.aztec-project.org/2009/06/24/wozu-dient-reflection/" 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/2009/06/24/wozu-dient-reflection/" onfocus="this.focus();this.select();" style="flex:1;" autocomplete="off"><input type="hidden" name="type" value="replay"><input type="hidden" name="date" value="20090629065657"><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/2009/06/24/wozu-dient-reflection/" title="See a list of every capture for this URL">9 captures</a><div class="r" title="Timespan for captures of this URL">29 Jun 2009 - 1 Mar 2021</div></div>
<div class="k">
<a href="https://web.archive.org/web/20040301000000/http://blog.aztec-project.org/2009/06/24/wozu-dient-reflection/" 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; left: 200px;"></div><div class="mt" style="display: none; width: 2px; height: 27px; left: 205px;"></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">May</td>
<td class="c" id="displayMonthEl" title="You are here: 06:56:57 Jun 29, 2009">Jun</td>
<td class="f" nowrap="nowrap"><a href="https://web.archive.org/web/20120917014223/http://blog.aztec-project.org:80/2009/06/24/wozu-dient-reflection" title="17 Sep 2012"><strong>Sep</strong></a></td>
</tr>
<!-- NEXT/PREV CAPTURE NAV AND DAY OF MONTH INDICATOR -->
<tr class="d">
<td class="b" nowrap="nowrap"><img src="https://web.archive.org/_static/images/toolbar/wm_tb_prv_off.png" alt="Previous capture" width="14" height="16" border="0"></td>
<td class="c" id="displayDayEl" style="width:34px;font-size:22px;white-space:nowrap;" title="You are here: 06:56:57 Jun 29, 2009">29</td>
<td class="f" nowrap="nowrap"><a href="https://web.archive.org/web/20120917014223/http://blog.aztec-project.org:80/2009/06/24/wozu-dient-reflection" title="01:42:23 Sep 17, 2012"><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">2008</td>
<td class="c" id="displayYearEl" title="You are here: 06:56:57 Jun 29, 2009">2009</td>
<td class="f" nowrap="nowrap"><a href="https://web.archive.org/web/20120917014223/http://blog.aztec-project.org:80/2009/06/24/wozu-dient-reflection" title="17 Sep 2012"><strong>2012</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/20090629065657/http://blog.aztec-project.org/2009/06/24/wozu-dient-reflection/#" 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/20090629065657/http://blog.aztec-project.org/2009/06/24/wozu-dient-reflection/#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/20090629065657/http://web.archive.org/screenshot/http://blog.aztec-project.org/2009/06/24/wozu-dient-reflection/" id="wm-screenshot" title="screenshot" style="visibility: hidden;">
<span class="wm-icon-screen-shot"></span>
</a>
<a href="https://web.archive.org/web/20090629065657/http://blog.aztec-project.org/2009/06/24/wozu-dient-reflection/#" id="wm-video" title="video">
<span class="iconochive-movies"></span>
</a>
<a id="wm-share-facebook" href="https://web.archive.org/web/20090629065657/http://blog.aztec-project.org/2009/06/24/wozu-dient-reflection/#" data-url="https://web.archive.org/web/20090629065657/http://blog.aztec-project.org:80/2009/06/24/wozu-dient-reflection/" 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/20090629065657/http://blog.aztec-project.org/2009/06/24/wozu-dient-reflection/#" data-url="https://web.archive.org/web/20090629065657/http://blog.aztec-project.org:80/2009/06/24/wozu-dient-reflection/" 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/20090629065657/http://blog.aztec-project.org/2009/06/24/wozu-dient-reflection/#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/alexa_web_2009)"></span>
<div>Collection: <a style="color:#33f;" href="https://archive.org/details/alexa_web_2009" target="_new"><span class="wm-title">alexa_web_2009</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>
this data is currently not publicly accessible.
</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="./reflection_files/banner-styles.css"><link rel="stylesheet" type="text/css" href="./reflection_files/iconochive.css"><div class="wb-autocomplete-suggestions "></div></template>
</div><div id="wm-ipp-print">The Wayback Machine - https://web.archive.org/web/20090629065657/http://blog.aztec-project.org:80/2009/06/24/wozu-dient-reflection/</div>
<script type="text/javascript">//<![CDATA[
__wm.bt(750,27,25,2,"web","http://blog.aztec-project.org/2009/06/24/wozu-dient-reflection/","20090629065657",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/20090629065657/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">we should think of a subtitle :)</h6><span class="blogdesc text-stroke-br">we should think of a subtitle :)</span><span class="blogdesc text-stroke-bl">we should think of a subtitle :)</span><span class="blogdesc text-stroke-tr">we should think of a subtitle :)</span><span class="blogdesc text-stroke-tl">we should think of a subtitle :)</span>
<ul class="pages png head_overlay">
<li class="page_item"><a href="https://web.archive.org/web/20090629065657/http://blog.aztec-project.org/">Home</a></li>
<li class="page_item page-item-2"><a href="https://web.archive.org/web/20090629065657/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/20090629065657/http://blog.aztec-project.org/2009/06/19/net-webservice-mit-asp-classic-ansprechen/">.NET-Webservice mit ASP-Classic ansprechen</a></div>
<div class="alignright"></div>
</div>
<div class="post" id="post-280">
<div class="postinfo">
<div class="datestamp">
<div>
<span class="cal1 cal1x">Jun</span>
<span class="cal2">24</span>
<span class="cal3">2009</span>
</div>
</div>
<span class="switch-post">
<a href="javascript:toggleSidebars();" class="switch-sidebars"><img src="./reflection_files/bullet_sidebars_hide.png" alt="" class="png"></a><a href="javascript:togglePost(280);" id="switch-post-280"><img src="./reflection_files/bullet_toggle_minus.png" alt="" class="png"></a>
</span>
<h2 class="posttitle"><a href="https://web.archive.org/web/20090629065657/http://blog.aztec-project.org/2009/06/24/wozu-dient-reflection/" rel="bookmark" title="Permanent Link: Wozu dient Reflection">Wozu dient Reflection</a></h2>
<small>
Geschrieben von <a href="https://web.archive.org/web/20090629065657/http://blog.aztec-project.org/author/tch/" title="Beiträge von Thomas Christian">Thomas Christian</a> in <a href="https://web.archive.org/web/20090629065657/http://blog.aztec-project.org/category/how-to/" title="Alle Artikel in How-To anzeigen" rel="category tag">How-To</a>, tags: <a href="https://web.archive.org/web/20090629065657/http://blog.aztec-project.org/tag/assemblies/" rel="tag">Assemblies</a>, <a href="https://web.archive.org/web/20090629065657/http://blog.aztec-project.org/tag/assemby/" rel="tag">Assemby</a>, <a href="https://web.archive.org/web/20090629065657/http://blog.aztec-project.org/tag/c/" rel="tag">C#</a>, <a href="https://web.archive.org/web/20090629065657/http://blog.aztec-project.org/tag/reflection/" rel="tag">Reflection</a> </small>
</div>
<div class="entry">
<h2><span style="color: #ffffff;">.</span></h2>
<h2>Vorbereitung</h2>
<p>Über Reflection kann man zur Laufzeit relativ einfach an alle Informationen eines Assembly herankommen. So ist es möglich, dass man von einem Assembly den Namen, Klassen, Methoden mit ihren Parametern, Eigenschaften und Rückgabewerte, usw. auslesen kann. Aber nicht nur das Auslesen ist möglich, sondern auch das Setzen.</p>
<p>Jetzt stellt sich für den einen oder anderen vielleicht die Frage, warum man zur Laufzeit auf diese Daten zugreifen kann. Jede Assembly verfügt über Module in denen sich die einzelnen Typen(Klassen) befinden. Für jedes Modul gibt es Metadaten, in denen die einzelnen Typen beschrieben werden. Die Assembly selbst verfügt noch über ein Manifest, in dem sich alle Informationen zum Assembly (z.B. Name, Version) befinden. Wenn man über Reflection auf Assemblies zugreift, dann werden diese Metadaten und das Manifest dafür herangezogen. Die Metadaten verfügen zwar noch über die Informationen, welche Modifizierer für Methoden, Properties, usw. verwendet wurden, aber der MSIL-Code (die Zwischensprache, die vom Endcompiler in die plattformspezifische Sprache übersetzt wird) nicht mehr. Die Modifizierer sind nur für den Compiler relevant und werden nach dem Kompilieren nicht mehr berücksichtigt. Somit ist es auch möglich über Reflection Properties, Methoden, usw. zu verwenden, die nicht öffentlich sind.</p>
<p>Für dieses Beispiel habe ich eine kleine Konsolen-Anwendung geschrieben (TestApplication), welche eine Referenz auf das Assembly TestProject.dll hat. Dieses Assembly hat zwei von mir erstellte Typen (Klassen) TestClass und SecondTestClass. In den beiden Klassen steckt keine Logik. Sie sind ausschließlich für dieses Beispiel erstellt worden, um ein paar Daten zu modifizieren und um zu zeigen wie die Informationen aus dem Assembly ausgelesen und verändert werden können und dass es möglich ist an nicht-öffentliche Methoden heranzukommen.</p>
<p><span style="text-decoration: underline;"><strong>TestClass.cs</strong></span></p>
<div style="background: white none repeat scroll 0% 0%; font-family: Courier New; font-size: 10pt; color: black;">
<pre style="margin: 0px;"><span style="color: blue;">using</span> System.Security.Cryptography;</pre>
<pre style="margin: 0px;"><span style="color: blue;">using</span> System.Text;</pre>
<pre style="margin: 0px;"><span style="color: blue;">namespace</span> TestProject {</pre>
<pre style="margin: 0px;"><span style="color: blue;">class</span> <span style="color: #2b91af;">TestClass</span> {</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; <span style="color: blue;">public</span> <span style="color: blue;">string</span> Name { <span style="color: blue;">get</span>; <span style="color: blue;">set</span>; }</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; <span style="color: blue;">public</span> <span style="color: blue;">string</span> Surname { <span style="color: blue;">get</span>; <span style="color: blue;">set</span>; }</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; <span style="color: blue;">private</span> <span style="color: blue;">string</span> Password { <span style="color: blue;">get</span>; <span style="color: blue;">set</span>; }</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; <span style="color: blue;">public</span> <span style="color: blue;">string</span> GetFullName() {</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">return</span> <span style="color: blue;">string</span>.Format(<span style="color: #a31515;">"{0} {1}"</span>, Name ?? <span style="color: blue;">string</span>.Empty, Surname ?? <span style="color: blue;">string</span>.Empty).Trim();</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; }</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; <span style="color: blue;">public</span> <span style="color: blue;">void</span> SetPasswort(<span style="color: blue;">string</span> password){</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Password = password;</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; }</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; <span style="color: blue;">private</span> <span style="color: blue;">static</span> <span style="color: blue;">string</span> CalcPassword(<span style="color: blue;">string</span> password){</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">MD5</span> md5 = <span style="color: #2b91af;">MD5</span>.Create();</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">byte</span>[] data = md5.ComputeHash(<span style="color: #2b91af;">Encoding</span>.Default.GetBytes(password));</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">StringBuilder</span> hashPassword = <span style="color: blue;">new</span> <span style="color: #2b91af;">StringBuilder</span>();</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">foreach</span> (<span style="color: blue;">byte</span> b <span style="color: blue;">in</span> data){</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; hashPassword.Append(b);</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">return</span> hashPassword.ToString();</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; }</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; <span style="color: blue;">public</span> <span style="color: blue;">static</span> <span style="color: blue;">string</span> DoSomething(<span style="color: blue;">string</span> value) {</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: green;">// do something</span></pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">return</span> value;</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; }</pre>
<pre style="margin: 0px;">}</pre>
</div>
<p><span style="text-decoration: underline;"><strong>SecondTestClass.cs</strong></span></p>
<div style="background: white none repeat scroll 0% 0%; font-family: Courier New; font-size: 10pt; color: black;">
<pre style="margin: 0px;"><span style="color: blue;">namespace</span> TestProject {</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; <span style="color: blue;">public</span> <span style="color: blue;">class</span> <span style="color: #2b91af;">SecondTestClass</span> {</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">public</span> <span style="color: blue;">int</span> Addition(<span style="color: blue;">int</span> a, <span style="color: blue;">int</span> b) {</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">return</span> a + b;</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">public</span> <span style="color: blue;">int</span> Multiply(<span style="color: blue;">int</span> a, <span style="color: blue;">int</span> b) {</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">return</span> a * b;</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">public</span> <span style="color: blue;">double</span> Divide(<span style="color: blue;">int</span> a, <span style="color: blue;">int</span> b) {</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">if</span> (b == 0) <span style="color: blue;">return</span> 0;</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">return</span> a / b;</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; }</pre>
<pre style="margin: 0px;">}
<span style="color: #ffffff;">.
.</span></pre>
</div>
<h2>Auslesen von Assembly- Type-Informationen</h2>
<p>Mit der Methode Thread.GetDomain().GetAssemblies() bekommt man alle referenzierten Assemblies der aktuellen Domäne. Damit die TestProject-Assembly auch in dieser Domäne vorhanden ist, muss vor dem Aufruf dieser Methode eine Instanz von einem Objekt dieses Assemblies erzeugt werden.</p>
<p>Um sich nun alle Assemblies der aktuellen Domäne anzeigen zu lassen, könnte man folgendes schreiben:</p>
<div style="background: white none repeat scroll 0% 0%; font-family: Courier New; font-size: 10pt; color: black;">
<pre style="margin: 0px;"><span style="color: blue;">static</span> <span style="color: blue;">void</span> Main(<span style="color: blue;">string</span>[] args) {</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">SecondTestClass</span> secondTestClass = <span style="color: blue;">new</span> <span style="color: #2b91af;">SecondTest</span><span style="color: #2b91af;">&nbsp;</span><span style="color: #2b91af;">Class</span>();</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">Assembly</span>[] assemblies = <span style="color: #2b91af;">Thread</span>.GetDomain().GetAssemblies();</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; <span style="color: blue;">foreach</span> (<span style="color: blue;">var</span> assembly <span style="color: blue;">in</span> assemblies) {</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">Console</span>.WriteLine(<span style="color: blue;">string</span>.Format(<span style="color: #a31515;">"-- {0} ver.: {1}"</span>, assembly.GetName().Name
, assembly.GetName().Version));</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; }</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">Console</span>.ReadLine();</pre>
<pre style="margin: 0px;">}
<img class="size-full wp-image-281 aligncenter" src="./reflection_files/1.png" alt="1" width="549" height="120"></pre>
</div>
<p><span style="color: #ffffff;">.</span></p>
<p>Nun könnte man noch alle zur Verfügung stehenden Typen(Klassen) aus der TestProject-Assembly anzeigen.</p>
<div style="background: white none repeat scroll 0% 0%; font-family: Courier New; font-size: 10pt; color: black;">
<div style="background: white none repeat scroll 0% 0%; font-family: Courier New; font-size: 10pt; color: black;">
<pre style="margin: 0px;"><span style="color: blue;">static</span> <span style="color: blue;">void</span> Main(<span style="color: blue;">string</span>[] args) {</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">SecondTestClass</span> secondTestClass = <span style="color: blue;">new</span> <span style="color: #2b91af;">SecondTestClass</span>();</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">Assembly</span>[] assemblies = <span style="color: #2b91af;">Thread</span>.GetDomain().GetAssemblies();</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; <span style="color: blue;">foreach</span> (<span style="color: blue;">var</span> assembly <span style="color: blue;">in</span> assemblies) {</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">Console</span>.WriteLine(<span style="color: blue;">string</span>.Format(<span style="color: #a31515;">"-- {0} ver.: {1}"</span>, assembly.GetName().Name
<pre style="margin: 0px;"> , assembly.GetName().Version));</pre>
</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">if</span> (assembly.GetName().Name.Equals(<span style="color: #a31515;">"TestProject"</span>)) {</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">Type</span>[] types = assembly.GetTypes();</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">foreach</span> (<span style="color: blue;">var</span> type <span style="color: blue;">in</span> types) {</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">Console</span>.WriteLine(<span style="color: #a31515;">"&nbsp; ++{0}"</span>, type.Name);</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; }</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">Console</span>.ReadLine();</pre>
<pre style="margin: 0px; text-align: left;">}
<img class="size-full wp-image-284 aligncenter" title="2" src="./reflection_files/2.png" alt="2" width="533" height="130"></pre>
</div>
</div>
<p><span style="color: #ffffff;">.</span></p>
<p>Wenn man nun allerdings Informationen eines bestimmten Types haben möchte, so werden diese Informationen aus den Metadaten des Moduls geladen, in dem sich der Type befindet. Um zum Beispiel alle öffentlichen Methoden eines Types anzuzeigen, könnte man folgendes schreiben:</p>
<div style="background: white none repeat scroll 0% 0%; font-family: Courier New; font-size: 10pt; color: black;">
<pre style="margin: 0px;"><span style="color: blue;">static</span> <span style="color: blue;">void</span> Main(<span style="color: blue;">string</span>[] args) {</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">SecondTestClass</span> secondTestClass = <span style="color: blue;">new</span> <span style="color: #2b91af;">SecondTestClass</span>();</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">Assembly</span>[] assemblies = <span style="color: #2b91af;">Thread</span>.GetDomain().GetAssemblies();</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; <span style="color: blue;">foreach</span> (<span style="color: blue;">var</span> assembly <span style="color: blue;">in</span> assemblies) {</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">Console</span>.WriteLine(<span style="color: blue;">string</span>.Format(<span style="color: #a31515;">"-- {0} ver.: {1}"</span>, assembly.GetName().Name
, assembly.GetName().Version));</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">if</span> (assembly.GetName().Name.Equals(<span style="color: #a31515;">"TestProject"</span>)) {</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">Type</span>[] types = assembly.GetTypes();</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">foreach</span> (<span style="color: blue;">var</span> type <span style="color: blue;">in</span> types) {</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">Console</span>.WriteLine(<span style="color: #a31515;">"&nbsp; ++ {0}"</span>, type.Name);</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">MethodInfo</span>[] methodInfos = type.GetMethods();</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">foreach</span> (<span style="color: blue;">var</span> info <span style="color: blue;">in</span> methodInfos) {</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">Console</span>.WriteLine(<span style="color: #a31515;">"&nbsp;&nbsp;&nbsp; ++ {0}"</span>, info.Name);</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; }</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">Console</span>.ReadLine();</pre>
<pre style="margin: 0px;">}</pre>
</div>
<p align="center">
</p><p style="text-align: center;"><img class="size-full wp-image-285 aligncenter" title="3" src="./reflection_files/3.png" alt="3" width="629" height="383"></p>
<p><span style="color: #ffffff;">.</span></p>
<p>Es fällt auf, dass auch die Methoden ToString, Equals, GetHashCode und GetType in beiden Klassen angezeigt werden, obwohl diese in den Klassen überhaupt nicht deklariert wurden. Das liegt daran, dass alle Typen von <span style="color: blue;">object </span>ableiten und <span style="color: blue;">object</span> diese Methoden implementiert. Was noch auffällt ist, dass nur öffentliche Methoden angezeigt werden. Möchte man sich auch die privaten Methoden anzeigen lassen, so muss man der Methode type.GetMethods Parameter übergeben. Diese Methode verlangt BindingFlags, die man mit dem Bitweise ODER-Operator (|) miteinander verknüpfen kann. Um sich nun öffentliche und private Methoden anzeigen zu lassen, muss der Aufruf der Methode type.GetMethods folgendermaßen lauten:</p>
<div style="background: white none repeat scroll 0% 0%; font-family: Courier New; font-size: 10pt; color: black; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">
<pre style="margin: 0px;"><span style="color: #2b91af;">MethodInfo</span>[] methodInfos = type.GetMethods(<span style="color: #2b91af;">BindingFlags</span>.Public | <span style="color: #2b91af;">BindingFlags</span>.NonPublic | <span style="color: #2b91af;">BindingFlags</span>.Instance);</pre>
</div>
<p>Dieser Aufruf gibt an, dass man alle öffentlichen und nicht-öffentlichen Instanz-Methoden bekommen möchte. Instanz-Methoden bedeutet, dass es sich um Methoden handelt, die nur mit dem Instanzieren eines Objektes zur Verfügung stehen. D.h. es werden keine static-Methoden angezeigt. Es gibt noch weitere BindingFlags, auf die ich hier allerdings nicht weiter eingehen möchte.</p>
<p>Das ganze könnte man natürlich noch in der Form weiter treiben, dass man sich die kompletten Methodensignaturen mit Modifizierer, Schlüsselwort und Rückgabewert anzeigen lässt:</p>
<div style="background: white none repeat scroll 0% 0%; font-family: Courier New; font-size: 10pt; color: black;">
<pre style="margin: 0px;"><span style="color: blue;">static</span> <span style="color: blue;">void</span> Main(<span style="color: blue;">string</span>[] args) {</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">SecondTestClass</span> secondTestClass = <span style="color: blue;">new</span> <span style="color: #2b91af;">SecondTestClass</span>();</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">Assembly</span>[] assemblies = <span style="color: #2b91af;">Thread</span>.GetDomain().GetAssemblies();</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; <span style="color: blue;">foreach</span> (<span style="color: blue;">var</span> assembly <span style="color: blue;">in</span> assemblies) {</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">Console</span>.WriteLine(<span style="color: blue;">string</span>.Format(<span style="color: #a31515;">"-- {0} ver.: {1}"</span>, assembly.GetName().Name, assembly.GetName().Version));</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">if</span> (assembly.GetName().Name.Equals(<span style="color: #a31515;">"TestProject"</span>)) {</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">Type</span>[] types = assembly.GetTypes();</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">foreach</span> (<span style="color: blue;">var</span> type <span style="color: blue;">in</span> types) {</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">Console</span>.WriteLine(<span style="color: #a31515;">"&nbsp; ++ {0}"</span>, type.Name);</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">MethodInfo</span>[] methodInfos = type.GetMethods(<span style="color: #2b91af;">BindingFlags</span>.Public | <span style="color: #2b91af;">BindingFlags</span>.NonPublic
| <span style="color: #2b91af;">BindingFlags</span>.Instance
<pre style="margin: 0px;"> | <span style="color: #2b91af;">BindingFlags</span>.Static);</pre>
</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">foreach</span> (<span style="color: blue;">var</span> info <span style="color: blue;">in</span> methodInfos) {</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">string</span> modifier = GetModifier(info);</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">string</span> keyword = GetKeyword(info);</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">string</span> parameters = GetParameters(info);</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">if</span> (!<span style="color: blue;">string</span>.IsNullOrEmpty(keyword)) {</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; keyword = <span style="color: blue;">string</span>.Format(<span style="color: #a31515;">"{0} "</span>, keyword);</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">Console</span>.WriteLine(<span style="color: #a31515;">"&nbsp;&nbsp;&nbsp; ++ {0} {1}{2}{3}({4})"</span>, modifier, keyword
, info.ReturnParameter, info.Name, parameters);</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; }</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">Console</span>.ReadLine();</pre>
<pre style="margin: 0px;">}</pre>
<pre style="margin: 0px;"><span style="color: blue;">private</span> <span style="color: blue;">static</span> <span style="color: blue;">string</span> GetModifier(<span style="color: #2b91af;">MethodInfo</span> info) {</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; <span style="color: blue;">if</span> (info.IsPublic) <span style="color: blue;">return</span> <span style="color: #a31515;">"public"</span>;</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; <span style="color: blue;">return</span> <span style="color: #a31515;">"private"</span>;</pre>
<pre style="margin: 0px;">}</pre>
<pre style="margin: 0px;"><span style="color: blue;">private</span> <span style="color: blue;">static</span> <span style="color: blue;">string</span> GetKeyword(<span style="color: #2b91af;">MethodInfo</span> info) {</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; <span style="color: blue;">if</span> (info.IsStatic) <span style="color: blue;">return</span> <span style="color: #a31515;">"static"</span>;</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; <span style="color: blue;">if</span> (info.IsVirtual) <span style="color: blue;">return</span> <span style="color: #a31515;">"virtual"</span>;</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; <span style="color: blue;">return</span> <span style="color: blue;">string</span>.Empty;</pre>
<pre style="margin: 0px;">}</pre>
<pre style="margin: 0px;"><span style="color: blue;">private</span> <span style="color: blue;">static</span> <span style="color: blue;">string</span> GetParameters(<span style="color: #2b91af;">MethodInfo</span> info) {</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">StringBuilder</span> parameters = <span style="color: blue;">new</span> <span style="color: #2b91af;">StringBuilder</span>();</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">ParameterInfo</span>[] parameterInfos = info.GetParameters();</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; <span style="color: blue;">if</span> (parameterInfos != <span style="color: blue;">null</span>) {</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">foreach</span> (<span style="color: #2b91af;">ParameterInfo</span> parameterInfo <span style="color: blue;">in</span> parameterInfos) {</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">if</span> (!<span style="color: blue;">string</span>.IsNullOrEmpty(parameters.ToString())) {</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; parameters.Append(<span style="color: #a31515;">", "</span>);</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; parameters.AppendFormat(<span style="color: #a31515;">"{0} {1}"</span>, parameterInfo.ParameterType.Name, parameterInfo.Name);</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; }</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; <span style="color: blue;">return</span> parameters.ToString();</pre>
<pre style="margin: 0px;">}</pre>
</div>
<p style="text-align: center;"><img class="size-full wp-image-287 aligncenter" title="4" src="./reflection_files/4.png" alt="4" width="605" height="443"></p>
<p><span style="color: #ffffff;">.</span></p>
<p>Nicht immer ist bereits während der Entwicklung bekannt, aus welchem Assembly man Informationen benötigt. Sodass die Methode Thread.GetDomain().GetAssemblies() nicht verwendet werden kann. Eine weitere Möglichkeit an ein Assembly zu kommen ist es direkt zu laden. Dafür bietet die Klasse Assembly die statische Methode Assembly.LoadFrom zum Laden von Assemblies. Statt dem Laden des Assembly über die aktuelle Domäne, wird das nächste Beispiel so modifiziert, dass die TestProject-Assembly direkt aus einem Verzeichnis heraus geladen wird.</p>
<div style="background: white none repeat scroll 0% 0%; font-family: Courier New; font-size: 10pt; color: black; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">
<pre style="margin: 0px;"><span style="color: blue;">static</span> <span style="color: blue;">void</span> Main(<span style="color: blue;">string</span>[] args) {</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">Assembly</span> assembly = <span style="color: #2b91af;">Assembly</span>.LoadFrom(<span style="color: #a31515;">@"c:\TestProject.dll"</span>);</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; <span style="color: blue;">if</span> (assembly != <span style="color: blue;">null</span>) {</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">Console</span>.WriteLine(<span style="color: blue;">string</span>.Format(<span style="color: #a31515;">"-- {0} ver.: {1}"</span>, assembly.GetName().Name, assembly.GetName().Version));</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">Type</span>[] types = assembly.GetTypes();</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">foreach</span> (<span style="color: blue;">var</span> type <span style="color: blue;">in</span> types) {</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">Console</span>.WriteLine(<span style="color: #a31515;">"&nbsp; ++ {0}"</span>, type.Name);</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">MethodInfo</span>[] methodInfos =</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; type.GetMethods(<span style="color: #2b91af;">BindingFlags</span>.Public | <span style="color: #2b91af;">BindingFlags</span>.NonPublic | <span style="color: #2b91af;">BindingFlags</span>.Instance |</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">BindingFlags</span>.Static);</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">foreach</span> (<span style="color: blue;">var</span> info <span style="color: blue;">in</span> methodInfos) {</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">string</span> modifier = GetModifier(info);</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">string</span> keyword = GetKeyword(info);</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">string</span> parameters = GetParameters(info);</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">if</span> (!<span style="color: blue;">string</span>.IsNullOrEmpty(keyword)) {</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; keyword = <span style="color: blue;">string</span>.Format(<span style="color: #a31515;">"{0} "</span>, keyword);</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">Console</span>.WriteLine(<span style="color: #a31515;">"&nbsp;&nbsp;&nbsp; ++ {0} {1}{2}{3}({4})"</span>, modifier, keyword, info.ReturnParameter,</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; info.Name, parameters);</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; }</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">Console</span>.ReadLine();</pre>
<pre style="margin: 0px;">}</pre>
</div>
<p align="center">
</p><div id="attachment_288" class="wp-caption aligncenter" style="width: 687px"><img class="size-full wp-image-288" title="5" src="./reflection_files/5.png" alt="5" width="677" height="419"><p class="wp-caption-text">Man sieht, dass die gleiche Ausgabe wie bereits im vorherigen Beispiel generiert wird.</p></div>
<p style="text-align: center;">
</p><h2><span style="color: #ffffff;">.</span></h2>
<h2>Interaktionen</h2>
<p>Nachdem die Vorgehensweise nun klar sein sollte, möchte ich nun den eigentlich interessanten Teil demonstrieren. Wie kann man nun auf Methoden usw. zugreifen und wie können Werte aus einem Type gelesen und veränder werden? Wenn man die Methode SecondTestClass.Addition(int a, int b) aufrufen möchte, dann braucht man die Methodeninformationen von dem Type SecondTestClass aus dem TestProject-Assembly. D.h. man muss wie in den obigen Beispielen auch über alle Typen iterieren, um an den gesuchten Type SecondTestClass zu kommen. Hat man den gesuchten Type gefunden, so kann man sich von diesem alle Methoden in einem Array zurückgeben lassen. Dieses Array kann dann wieder ganz normal durchlaufen und nach der gewünschten Methode durchsucht werden. Hat man die Methode gefunden so muss zuerst eine Instanz von dem Objekt erzeugt werden und dafür gibt es den Activator, der die statische Methode CreateInstance beinhaltet. Als Parameter übergibt man ihr den Type von dem eine Instanz erzeugt werden soll. Jetzt kann man über die MethodInfo die Methode aufrufen. Dazu muss der Methode die Instanz des Objektes übergeben werden, von welchem die Methode aufgerufen werden soll und zusätzlich noch ein Array von Objekten, welche die zu übergebenen Parameter beinhaltet. Hat die Methode keine Parameter, so muss null übergeben werden. Dabei muss der Rückgabewert in den erwarteten Wert gecastet werden. Das ganze könnte dann folgendermaßen aussehen:</p>
<div style="background: white none repeat scroll 0% 0%; font-family: Courier New; font-size: 10pt; color: black; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">
<pre style="margin: 0px;"><span style="color: blue;">static</span> <span style="color: blue;">void</span> Main(<span style="color: blue;">string</span>[] args) {</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">Assembly</span> assembly = <span style="color: #2b91af;">Assembly</span>.LoadFrom(<span style="color: #a31515;">@"c:\TestProject.dll"</span>);</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; <span style="color: blue;">if</span> (assembly != <span style="color: blue;">null</span>) {</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">Console</span>.WriteLine(<span style="color: blue;">string</span>.Format(<span style="color: #a31515;">"-- {0} ver.: {1}"</span>, assembly.GetName().Name, assembly.GetName().Version));</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">Type</span>[] types = assembly.GetTypes();</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">foreach</span> (<span style="color: blue;">var</span> type <span style="color: blue;">in</span> types) {</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">if</span> (type.Name.Equals(<span style="color: #a31515;">"SecondTestClass"</span>)) {</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">Console</span>.WriteLine(<span style="color: #a31515;">"&nbsp; ++ {0}"</span>, type.Name);</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">MethodInfo</span>[] methodInfos = type.GetMethods();</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">foreach</span> (<span style="color: blue;">var</span> info <span style="color: blue;">in</span> methodInfos) {</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">if</span> (info.Name.Equals(<span style="color: #a31515;">"Addition"</span>)) {</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">object</span> obj = <span style="color: #2b91af;">Activator</span>.CreateInstance(type);</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">int</span> value = (<span style="color: blue;">int</span>)info.Invoke(obj, <span style="color: blue;">new</span> <span style="color: blue;">object</span>[] { 2, 5 });</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">Console</span>.WriteLine(<span style="color: #a31515;">"&nbsp;&nbsp;&nbsp; ++ {0}(2 + 5) = {1}"</span>, info.Name, value);</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; }</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">Console</span>.ReadLine();</pre>
<pre style="margin: 0px;">}</pre>
</div>
<p align="center">
</p><div id="attachment_289" class="wp-caption aligncenter" style="width: 543px"><img class="size-full wp-image-289" title="6" src="./reflection_files/6.png" alt="6" width="533" height="143"><p class="wp-caption-text">Aufruf der Methode Addition</p></div>
<p style="text-align: center;">
</p><p><span style="color: #ffffff;">.</span></p>
<p>Bei statischen Methoden kann das Erzeugen der Instanz weggelassen werden und für den Parameter des Instanz-Objektes kann null übergeben werden.</p>
<div style="background: white none repeat scroll 0% 0%; font-family: Courier New; font-size: 10pt; color: black; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">
<pre style="margin: 0px;"><span style="color: blue;">if</span> (type.Name.Equals(<span style="color: #a31515;">"TestClass"</span>)) {</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">Console</span>.WriteLine(<span style="color: #a31515;">"&nbsp; ++ {0}"</span>, type.Name);</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">MethodInfo</span>[] methodInfos = type.GetMethods(<span style="color: #2b91af;">BindingFlags</span>.NonPublic | <span style="color: #2b91af;">BindingFlags</span>.Static);</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; <span style="color: blue;">foreach</span> (<span style="color: blue;">var</span> info <span style="color: blue;">in</span> methodInfos) {</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">if</span> (info.Name.Equals(<span style="color: #a31515;">"CalcPassword"</span>)) {</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">string</span> value = (<span style="color: blue;">string</span>)info.Invoke(<span style="color: blue;">null</span>, <span style="color: blue;">new</span> <span style="color: blue;">object</span>[] { <span style="color: #a31515;">"myPassword"</span> });</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">Console</span>.WriteLine(<span style="color: #a31515;">"&nbsp;&nbsp;&nbsp; ++ {0}(\"myPassword\") = {1}"</span>, info.Name, value);</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; }</pre>
<pre style="margin: 0px;">}</pre>
</div>
<p align="center">
</p><div id="attachment_290" class="wp-caption aligncenter" style="width: 687px"><img class="size-full wp-image-290" title="7" src="./reflection_files/7.png" alt="7" width="677" height="155"><p class="wp-caption-text">Das übergebene Passwort wurde über eine statische Methode gehashed.</p></div>
<p style="text-align: center;">
</p><p><span style="color: #ffffff;">.</span></p>
<p>Um den Wert einer Property auszulesen, muss anstelle von MethodInfo die PropertyInfo verwendet werden. Aus dieser kann dann über die Methode PropertyInfo.GetValue der aktuelle Wert zurückgegeben werden. Da in diesem Beispiel nach dem Instanzieren des Objektes noch keine Werte zugewiesen wurden, sind die Properties leer.</p>
<div style="background: white none repeat scroll 0% 0%; font-family: Courier New; font-size: 10pt; color: black; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">
<pre style="margin: 0px;"><span style="color: blue;">static</span> <span style="color: blue;">void</span> Main(<span style="color: blue;">string</span>[] args) {</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">Assembly</span> assembly = <span style="color: #2b91af;">Assembly</span>.LoadFrom(<span style="color: #a31515;">@"C:\ TestProject.dll"</span>);</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; <span style="color: blue;">if</span> (assembly != <span style="color: blue;">null</span>) {</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">Console</span>.WriteLine(<span style="color: blue;">string</span>.Format(<span style="color: #a31515;">"-- {0} ver.: {1}"</span>, assembly.GetName().Name, assembly.GetName().Version));</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">Type</span>[] types = assembly.GetTypes();</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">foreach</span> (<span style="color: blue;">var</span> type <span style="color: blue;">in</span> types) {</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">if</span> (type.Name.Equals(<span style="color: #a31515;">"TestClass"</span>)) {</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">Console</span>.WriteLine(<span style="color: #a31515;">"&nbsp; ++ {0}"</span>, type.Name);
<pre style="margin: 0px;"><span style="color: blue;"> object</span> obj = <span style="color: #2b91af;">Activator</span>.CreateInstance(type);</pre>
</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">PropertyInfo</span>[] propertyInfos = type.GetProperties(<span style="color: #2b91af;">BindingFlags</span>.Public | <span style="color: #2b91af;">BindingFlags</span>.NonPublic
| <span style="color: #2b91af;">BindingFlags</span>.Instance);</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">foreach</span> (<span style="color: blue;">var</span> info <span style="color: blue;">in</span> propertyInfos) {</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">Console</span>.WriteLine(<span style="color: #a31515;">"&nbsp;&nbsp;&nbsp; ++ {0} = {1}"</span>, info.Name, info.GetValue(obj, <span style="color: blue;">null</span>));</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; }</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">Console</span>.ReadLine();</pre>
<pre style="margin: 0px;">}
<img class="aligncenter size-full wp-image-373" title="8" src="./reflection_files/8.png" alt="8" width="517" height="203"></pre>
</div>
<p><span style="color: #ffffff;">.</span></p>
<p>Wenn man nun die Properties mit Werten belegen möchte, so muss man analog zur Methode PropertyInfo.GetValue, die Methode PropertyInfo. SetValue verwenden.</p>
<div style="background: white none repeat scroll 0% 0%; font-family: Courier New; font-size: 10pt; color: black; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">
<pre style="margin: 0px;"><span style="color: blue;">if</span> (type.Name.Equals(<span style="color: #a31515;">"TestClass"</span>)) {</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">Console</span>.WriteLine(<span style="color: #a31515;">"&nbsp; ++ {0}"</span>, type.Name);</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">PropertyInfo</span>[] propertyInfos = type.GetProperties(<span style="color: #2b91af;">BindingFlags</span>.Public | <span style="color: #2b91af;">BindingFlags</span>.NonPublic
| <span style="color: #2b91af;">BindingFlags</span>.Instance);</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; propertyInfos[0].SetValue(obj, <span style="color: #a31515;">"Peter"</span>, <span style="color: blue;">null</span>);</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; propertyInfos[1].SetValue(obj, <span style="color: #a31515;">"Müller"</span>, <span style="color: blue;">null</span>);</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; propertyInfos[2].SetValue(obj, <span style="color: #a31515;">"myPassword"</span>, <span style="color: blue;">null</span>);</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; <span style="color: blue;">foreach</span> (<span style="color: blue;">var</span> info <span style="color: blue;">in</span> propertyInfos) {</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">Console</span>.WriteLine(<span style="color: #a31515;">"&nbsp;&nbsp;&nbsp; ++ {0} = {1}"</span>, info.Name, info.GetValue(obj, <span style="color: blue;">null</span>));</pre>
<pre style="margin: 0px;">&nbsp;&nbsp;&nbsp; }</pre>
<pre style="margin: 0px;">}
<img class="aligncenter size-full wp-image-374" title="9" src="./reflection_files/9.png" alt="9" width="477" height="167"></pre>
</div>
<p><strong> </strong></p>
<h2><span style="color: #ffffff;">.</span></h2>
<p><span style="color: #ffffff;">.<br>
</span></p>
<h2>Wozu braucht man jetzt aber nun die Reflection?</h2>
<p>Nun ja, die meisten Programme werden Reflection wohl nie benötigen oder verwenden. Es wird vorallem bei dem Entwickeln von Debuggern, Interpretern, TestTools, Logger oder auch für O/R-Mapper verwendet. Es wird also überall dort gebraucht, wo während der Laufzeit nicht klar ist, welche Assemblies verwendet werden und welche Informationen man aus diesen lesen oder manipulieren möchte.</p>
<h2><span style="color: #ffffff;">.</span></h2>
<h2>kurze Zusammenfassung:</h2>
<p>Wie man gesehen hat, ist der Aufbau einer Assembly mit ihren Typen hierarchisch. Um zb. an einen Parameter einer Methode eines Types zu kommen, braucht man zuerst das Assembly welches den Typ enthält. Von diesem lässt man sich ein Array von Typen geben. Von dem gesuchten Typ lässt man sich dann ein Array von Methoden geben. Von der gesuchten Methode holt man sich nun ein Array von allen Parametern. Dieses Array kann dann nach dem gewünschten Parameter durchsucht werden.</p>
<p>Es gibt natürlich für all diese Methoden auch Methoden, mit denen man sich den Type, die Methodeninformation, die Parameterinformation, usw. direkt mit der entsprechenden Bezeichnung holen kann. Ich wollte hier nur auf die Hierarchie aufmerksam machen.</p>
<p>Wie man in diesen Beispielen erkennen konnte, ist es möglich, ohne Probleme auf alle Informationen von einem Assembly zuzgreifen, sich die Types zu laden, dessen öffentliche und auch nicht-öffentliche Werte zu lesen und zu manipulieren und auch Methoden auszuführen. Man kann sich auch lokale Werte anzeigen lassen, in dem man sich den MethodBody des Objekte geben lässt, von denen man die lokalen Werte ermitteln möchte.</p>
<p class="postmetadata alt clear">
<small>
Geschrieben am Mittwoch, 24. Juni 2009 um 12:13 und ist zu finden in <a href="https://web.archive.org/web/20090629065657/http://blog.aztec-project.org/category/how-to/" title="Alle Artikel in How-To anzeigen" rel="category tag">How-To</a>. Du kannst die Antworten zu diesem Thema verfolgen unter <a href="https://web.archive.org/web/20090629065657/http://blog.aztec-project.org/2009/06/24/wozu-dient-reflection/feed/">RSS 2.0</a> feed. Du kannst <a href="https://web.archive.org/web/20090629065657/http://blog.aztec-project.org/2009/06/24/wozu-dient-reflection/#respond">Antwort</a>, oder <a href="https://web.archive.org/web/20090629065657/http://blog.aztec-project.org/2009/06/24/wozu-dient-reflection/trackback/" rel="trackback">trackback</a> von deiner Seite.
</small>
</p>
</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/20090629065657/http://blog.aztec-project.org/2009/06/24/wozu-dient-reflection/#respond" style="display:none;">Click here to cancel reply</a></small>
</div>
<form action="https://web.archive.org/web/20090629065657/http://blog.aztec-project.org/wp-comments-post.php" method="post" id="commentform">
<input type="hidden" name="comment_post_ID" value="280" 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="280">
</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/20090629065657/http://blog.aztec-project.org/wp-content/themes/mandigo/images/icons/bullet_toggle_minus.png" alt="" class="png" /><\/a><\/span>');
});
// ]]> -->
</script>
</td>
</tr>
</tbody></table>
</div>
<div id="footer" class="png">
<p>
Unterstützt von <a href="https://web.archive.org/web/20090629065657/http://wordpress.org/">WordPress</a>, <a href="https://web.archive.org/web/20090629065657/http://www.onehertz.com/portfolio/wordpress/" target="_blank" title="WordPress themes">Mandigo theme</a> by tom.
<br><a href="https://web.archive.org/web/20090629065657/http://blog.aztec-project.org/feed/"><img src="./reflection_files/rss_s.gif" alt=""> Einträge (RSS)</a>
und <a href="https://web.archive.org/web/20090629065657/http://blog.aztec-project.org/comments/feed/"><img src="./reflection_files/rss_s.gif" alt=""> Kommentare (RSS)</a>.
</p>
</div>
</div>
<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/20090629065657/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/20090629065657/https://ssl." : "https://web.archive.org/web/20090629065657/http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script><script src="./reflection_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></body></html>
Binary file not shown.

After

Width:  |  Height:  |  Size: 278 B

+597
View File
@@ -0,0 +1,597 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- saved from url=(0092)https://web.archive.org/web/20100330012458/http://blog.aztec-project.org/2009/11/03/scrumbut -->
<html xmlns="http://www.w3.org/1999/xhtml" class=" rnpwpqgy idc0_350"><head profile="http://gmpg.org/xfn/11"><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><script src="./scrumbut_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-app225.us.archive.org';v.server_ms=322;archive_analytics.send_pageview({});});</script>
<script type="text/javascript" src="./scrumbut_files/bundle-playback.js.Download" charset="utf-8"></script>
<script type="text/javascript" src="./scrumbut_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="./scrumbut_files/ruffle.js.Download"></script>
<script type="text/javascript">
__wm.init("https://web.archive.org/web");
__wm.wombat("http://blog.aztec-project.org:80/2009/11/03/scrumbut","20100330012458","https://web.archive.org/","web","/_static/",
"1269912298");
</script>
<link rel="stylesheet" type="text/css" href="./scrumbut_files/banner-styles.css">
<link rel="stylesheet" type="text/css" href="./scrumbut_files/iconochive.css">
<!-- End Wayback Rewrite JS Include -->
<title>build broken » scrumbut</title>
<meta name="generator" content="WordPress abc">
<meta name="theme" content="Mandigo 1.41">
<link rel="stylesheet" href="./scrumbut_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/20100330012458im_/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/20100330012458im_/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/20100330012458im_/http://blog.aztec-project.org/wp-content/themes/mandigo/images/bg-1024.png);
width: 957px;
}
#footer {
background: url(https://web.archive.org/web/20100330012458im_/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/20100330012458im_/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/20100330012458im_/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/20100330012458im_/http://blog.aztec-project.org/wp-content/themes/mandigo/images/head_overlay.png);
}
</style>
<link rel="stylesheet" href="./scrumbut_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/20100330012458/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 » scrumbut Kommentar Feed" href="https://web.archive.org/web/20100330012458/http://blog.aztec-project.org/2009/11/03/scrumbut/feed/">
<script type="text/javascript" src="./scrumbut_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="prio.conference 2009 München" href="https://web.archive.org/web/20100330012458/http://blog.aztec-project.org/2009/10/31/prio-conference-2009-munchen/">
<link rel="next" title="Clean Code Teil 2" href="https://web.archive.org/web/20100330012458/http://blog.aztec-project.org/2009/11/04/clean-code-teil-2/">
<link rel="canonical" href="https://web.archive.org/web/20100330012458/http://blog.aztec-project.org/2009/11/03/scrumbut/">
<script type="text/javascript" src="./scrumbut_files/jquery.js.Download"></script>
<script type="text/javascript" src="./scrumbut_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>
</head>
<body><!-- 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/20100330012458/http%3A//blog.aztec-project.org/2009/11/03/scrumbut" 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/2009/11/03/scrumbut" onfocus="this.focus();this.select();" style="flex:1;" autocomplete="off"><input type="hidden" name="type" value="replay"><input type="hidden" name="date" value="20100330012458"><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/2009/11/03/scrumbut" title="See a list of every capture for this URL">12 captures</a><div class="r" title="Timespan for captures of this URL">6 Nov 2009 - 1 Mar 2021</div></div>
<div class="k">
<a href="https://web.archive.org/web/20100330012458/http://blog.aztec-project.org/2009/11/03/scrumbut" 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/20091108074850/http://blog.aztec-project.org:80/2009/11/03/scrumbut/" title="08 Nov 2009"><strong>Nov</strong></a></td>
<td class="c" id="displayMonthEl" title="You are here: 01:24:58 Mar 30, 2010">MAR</td>
<td class="f" nowrap="nowrap"><a href="https://web.archive.org/web/20100921065336/http://blog.aztec-project.org:80/2009/11/03/scrumbut/" title="21 Sep 2010"><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/20091108074850/http://blog.aztec-project.org:80/2009/11/03/scrumbut/" title="07:48:50 Nov 08, 2009"><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: 01:24:58 Mar 30, 2010">30</td>
<td class="f" nowrap="nowrap"><a href="https://web.archive.org/web/20100401203914/http://blog.aztec-project.org:80/2009/11/03/scrumbut/" title="20:39:14 Apr 01, 2010"><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">2009</td>
<td class="c" id="displayYearEl" title="You are here: 01:24:58 Mar 30, 2010">2010</td>
<td class="f" nowrap="nowrap"><a href="https://web.archive.org/web/20131208145021/http://blog.aztec-project.org/2009/11/03/scrumbut/" title="08 Dec 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/20100330012458/http://blog.aztec-project.org/2009/11/03/scrumbut#" 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/20100330012458/http://blog.aztec-project.org/2009/11/03/scrumbut#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/20100330012458/http://web.archive.org/screenshot/http://blog.aztec-project.org/2009/11/03/scrumbut" id="wm-screenshot" title="screenshot" style="visibility: hidden;">
<span class="wm-icon-screen-shot"></span>
</a>
<a href="https://web.archive.org/web/20100330012458/http://blog.aztec-project.org/2009/11/03/scrumbut#" id="wm-video" title="video">
<span class="iconochive-movies"></span>
</a>
<a id="wm-share-facebook" href="https://web.archive.org/web/20100330012458/http://blog.aztec-project.org/2009/11/03/scrumbut#" data-url="https://web.archive.org/web/20100330012458/http://blog.aztec-project.org:80/2009/11/03/scrumbut" 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/20100330012458/http://blog.aztec-project.org/2009/11/03/scrumbut#" data-url="https://web.archive.org/web/20100330012458/http://blog.aztec-project.org:80/2009/11/03/scrumbut" 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/20100330012458/http://blog.aztec-project.org/2009/11/03/scrumbut#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/alexa_web_2010)"></span>
<div>Collection: <a style="color:#33f;" href="https://archive.org/details/alexa_web_2010" target="_new"><span class="wm-title">alexa_web_2010</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>
this data is currently not publicly accessible.
</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="./scrumbut_files/banner-styles.css"><link rel="stylesheet" type="text/css" href="./scrumbut_files/iconochive.css"><div class="wb-autocomplete-suggestions "></div></template>
</div><div id="wm-ipp-print">The Wayback Machine - https://web.archive.org/web/20100330012458/http://blog.aztec-project.org:80/2009/11/03/scrumbut</div>
<script type="text/javascript">//<![CDATA[
__wm.bt(750,27,25,2,"web","http://blog.aztec-project.org/2009/11/03/scrumbut","20100330012458",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/20100330012458/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/20100330012458/http://blog.aztec-project.org/">Home</a></li>
<li class="page_item page-item-2"><a href="https://web.archive.org/web/20100330012458/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/20100330012458/http://blog.aztec-project.org/2009/10/31/prio-conference-2009-munchen/" rel="prev">prio.conference 2009 München</a></div>
<div class="alignright"><a href="https://web.archive.org/web/20100330012458/http://blog.aztec-project.org/2009/11/04/clean-code-teil-2/" rel="next">Clean Code Teil 2</a>&nbsp;»</div>
</div>
<div class="post" id="post-7">
<div class="postinfo">
<div class="datestamp">
<div>
<span class="cal1 cal1x">Nov</span>
<span class="cal2">03</span>
<span class="cal3">2009</span>
</div>
</div>
<span class="switch-post">
<a href="javascript:toggleSidebars();" class="switch-sidebars"><img src="./scrumbut_files/bullet_sidebars_hide.png" alt="" class="png"></a><a href="javascript:togglePost(7);" id="switch-post-7"><img src="./scrumbut_files/bullet_toggle_minus.png" alt="" class="png"></a>
</span>
<h2 class="posttitle"><a href="https://web.archive.org/web/20100330012458/http://blog.aztec-project.org/2009/11/03/scrumbut/" rel="bookmark" title="Permanent Link: scrumbut">scrumbut</a></h2>
<small>
Geschrieben von <a href="https://web.archive.org/web/20100330012458/http://blog.aztec-project.org/author/sko/" title="Artikel von Stefan Kölle">Stefan Kölle</a> in <a href="https://web.archive.org/web/20100330012458/http://blog.aztec-project.org/category/scrum/" title="Alle Artikel in SCRUM ansehen" rel="category tag">SCRUM</a>, tags: <a href="https://web.archive.org/web/20100330012458/http://blog.aztec-project.org/tag/scrum/" rel="tag">SCRUM</a> </small>
</div>
<div class="entry">
<p>Seit Anfang des Jahres setzen wir nun SCRUM ein, wobei es, wie man jetzt merkt, doch nur SCRUMBUT war.</p>
<blockquote><p>I call that phenomena “Scrumbut”. It shows up in the following way:<br>
“Were doing Scrum but…”<br>
* our sprints are 12 weeks long…<br>
* we do two normal sprints and one bugfix sprint…<br>
* we do all our planning up front…<br>
* we skip the daily meeting…<br>
* our managers decide whats in each sprint…<br>
* we havent read the books yet…<br>
* our team has 30 people…<br>
<a href="https://web.archive.org/web/20100330012458/http://blogs.msdn.com/ericgu/archive/2006/10/13/scrumbut.aspx">http://blogs.msdn.com/ericgu/archive/2006/10/13/scrumbut.aspx</a></p></blockquote>
<p>Auch bei uns wurden Anpassungen an SCRUM durchgeführt, was dazu geführt hat, dass die letzten Sprints immer schlechter wurden. Gerade die Retrospektive wurde fast nie durchgeführt, da es angeblich nichts zu besprechen gab.</p>
<p>Wir sind nun in Sprint 21 und nach 2 Open Spaces um ausreichenden Erfahrungsaustausch reicher. Wir halten wieder die Retrospektive-Meetings und bei dem letzten haben wir folgende Anpassungen beschlossen:</p>
<ul>
<li>Es wurde eine “Definition-of-done” Richtlinie am Whiteboard erstellt.</li>
<li>Pair-Programming wird häufiger eingesetzt.</li>
<li>Zu jedem Backlog-Item werden gemeinsam die Architekturveränderungen und die notwendigen Tasks besprochen. Bisher wurde mit den Produkt-Backlogkarten direkt gearbeitet.</li>
</ul>
<p>Ich rate allen, die SCRUM einführen wollen, sich wirklich so nah wie möglich an SCRUM zu halten. Die Sprints 1 15 wirkten bei uns auch sehr gut, doch erst danach fiel uns auf, dass gerade die Sprint-Retrospektive ein sehr wichtiges Meeting ist. All diese Regeln sind durch mehrjährige Erfahrungen entstanden und sie haben sich schon in größeren Firmen bewährt. Warum dann nicht davon profitieren?</p>
<p><a href="https://web.archive.org/web/20100330012458/http://dotnet-kicks.de/kick/?url=http%3a%2f%2fblog.aztec-project.org%2f2009%2f11%2f03%2fscrumbut%2f"><img src="./scrumbut_files/KickItImageGenerator.ashx" border="0" alt="kick it on dotnet-kicks.de"></a></p>
<p class="postmetadata alt clear">
<small>
Geschrieben am Dienstag, 3. November 2009 um 11:34 am und ist zu finden in <a href="https://web.archive.org/web/20100330012458/http://blog.aztec-project.org/category/scrum/" title="Alle Artikel in SCRUM ansehen" rel="category tag">SCRUM</a>. Du kannst die Antworten zu diesem Thema verfolgen unter <a href="https://web.archive.org/web/20100330012458/http://blog.aztec-project.org/2009/11/03/scrumbut/feed/">RSS 2.0</a> feed. Du kannst <a href="https://web.archive.org/web/20100330012458/http://blog.aztec-project.org/2009/11/03/scrumbut#respond">Antwort</a>, oder <a href="https://web.archive.org/web/20100330012458/http://blog.aztec-project.org/2009/11/03/scrumbut/trackback/" rel="trackback">trackback</a> von deiner Seite.
</small>
</p>
</div>
</div>
<div id="comments">
2 Antworten zu “scrumbut”
</div>
<ol class="commentlist" id="commentlist">
<li class="comment even thread-even depth-1 alt" id="comment-78">
<div id="div-comment-78" class="comment-body">
<span class="switch-post"><a href="https://web.archive.org/web/20100330012458/http://blog.aztec-project.org/2009/11/03/scrumbut#"><img src="./scrumbut_files/bullet_toggle_minus(1).png" alt="" class="png"></a></span><div class="comment-author vcard">
<img alt="" src="./scrumbut_files/ddec25b3a317217b97ffc45a62ae8980.jpeg" class="avatar avatar-32 photo" height="32" width="32"> <cite class="fn">Mike Bild</cite> <span class="says">sagt:</span> </div>
<div class="comment-meta commentmetadata"><a href="https://web.archive.org/web/20100330012458/http://blog.aztec-project.org/2009/11/03/scrumbut/comment-page-1/#comment-78">November 3, 2009 um 2:53 pm</a></div>
<div class="comment"><p>Ja, dass kenn ich nur zu gut. Wenige Regeln, schön! Doch damit ist jede menge Arbeit an der Disziplin nötig. Daher bestätigt sich hier meine Erkenntnis Jedes noch so kleine Element von SCRUM ist zum erfolgreichen umsetzen Elementar nötig. Hier und da was weglassen!? Geht nicht! Meine manchmal schmerzlichen Erfahrungen zeigten mir eben auch; Akzeptanz- oder Done -Kriterien auf, oder neben, den User Stories sind ein äußerst wichtiges Artefakt zur Reflektion und Kommunikation zwischen Team und Product Owner. In diesem Sinne, wie heißt es so schön: -Kontinuierliche Weiterentwicklung von Software und Entwicklungsprozess-! Banzai!</p></div>
<div class="comment"><div class="reply">
</div></div>
</div>
</li>
<li class="comment byuser comment-author-sko bypostauthor odd alt thread-odd thread-alt depth-1" id="comment-79">
<div id="div-comment-79" class="comment-body">
<span class="switch-post"><a href="https://web.archive.org/web/20100330012458/http://blog.aztec-project.org/2009/11/03/scrumbut#"><img src="./scrumbut_files/bullet_toggle_minus(1).png" alt="" class="png"></a></span><div class="comment-author vcard">
<img alt="" src="./scrumbut_files/dd231104fe0e1a7b87be55834a7c0c86.jpeg" class="avatar avatar-32 photo" height="32" width="32"> <cite class="fn">Stefan Kölle</cite> <span class="says">sagt:</span> </div>
<div class="comment-meta commentmetadata"><a href="https://web.archive.org/web/20100330012458/http://blog.aztec-project.org/2009/11/03/scrumbut/comment-page-1/#comment-79">November 3, 2009 um 4:06 pm</a></div>
<div class="comment"><p>@MikeBild: Genau, so sehe ich das mittlerweile auch. Kontinuierliche Weiterentwicklung Die Akzeptanzkriterien sollten wir bei uns auch noch genauer definieren.</p></div>
<div class="comment"><div class="reply">
</div></div>
</div>
</li>
<li style="display: none;" class="alt">&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/20100330012458/http://blog.aztec-project.org/2009/11/03/scrumbut#respond" style="display:none;">Click here to cancel reply</a></small>
</div>
<form action="https://web.archive.org/web/20100330012458/http://blog.aztec-project.org/wp-comments-post.php" method="post" id="commentform">
<input type="hidden" name="comment_post_ID" value="7" 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="7">
</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/20100330012458/http://blog.aztec-project.org/wp-content/themes/mandigo/images/icons/bullet_toggle_minus.png" alt="" class="png" /><\/a><\/span>');
});
// ]]> -->
</script>
</td>
<script src="./scrumbut_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/20100330012458/http://wordpress.org/">WordPress</a>, <a href="https://web.archive.org/web/20100330012458/http://www.onehertz.com/portfolio/wordpress/" target="_blank" title="WordPress themes">Mandigo theme</a> by tom.
<br><a href="https://web.archive.org/web/20100330012458/http://blog.aztec-project.org/feed/"><img src="./scrumbut_files/rss_s.gif" alt=""> Einträge (RSS)</a>
und <a href="https://web.archive.org/web/20100330012458/http://blog.aztec-project.org/comments/feed/"><img src="./scrumbut_files/rss_s.gif" alt=""> Kommentare (RSS)</a>.
</p>
</div>
</div>
<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/20100330012458/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/20100330012458/https://ssl." : "https://web.archive.org/web/20100330012458/http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script><script src="./scrumbut_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></body></html>
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

File diff suppressed because one or more lines are too long
+700
View File
@@ -0,0 +1,700 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- saved from url=(0123)https://web.archive.org/web/20210419185530/https://blog.aztec-project.org/2009/07/13/stupiddb-object-persistence-framework/ -->
<html xmlns="http://www.w3.org/1999/xhtml" class=" mnbxsr idc0_350"><head profile="http://gmpg.org/xfn/11"><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><script src="./stupiddb1_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-app202.us.archive.org';v.server_ms=423;archive_analytics.send_pageview({});});</script>
<script type="text/javascript" src="./stupiddb1_files/bundle-playback.js.Download" charset="utf-8"></script>
<script type="text/javascript" src="./stupiddb1_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="./stupiddb1_files/ruffle.js.Download"></script>
<script type="text/javascript">
__wm.init("https://web.archive.org/web");
__wm.wombat("https://blog.aztec-project.org/2009/07/13/stupiddb-object-persistence-framework/","20210419185530","https://web.archive.org/","web","/_static/",
"1618858530");
</script>
<link rel="stylesheet" type="text/css" href="./stupiddb1_files/banner-styles.css">
<link rel="stylesheet" type="text/css" href="./stupiddb1_files/iconochive.css">
<!-- End Wayback Rewrite JS Include -->
<title>build broken » StupidDB object-persistence-framework</title>
<meta name="generator" content="WordPress 5.3.1">
<meta name="theme" content="Mandigo 1.41">
<link rel="stylesheet" href="./stupiddb1_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/20210419185530im_/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/20210419185530im_/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/20210419185530im_/http://blog.aztec-project.org/wp-content/themes/mandigo/images/bg-1024.png);
width: 957px;
}
#footer {
background: url(https://web.archive.org/web/20210419185530im_/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/20210419185530im_/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/20210419185530im_/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/20210419185530im_/http://blog.aztec-project.org/wp-content/themes/mandigo/images/head_overlay.png);
}
<br />
<b>Warning</b>: Use of undefined constant WPLANG - assumed 'WPLANG' (this will throw an Error in a future version of PHP) in <b>/homepages/24/d13434269/htdocs/clickandbuilds/buildbroken/wp-content/themes/mandigo/style.css.php</b> on line <b>384</b><br />
</style>
<link rel="stylesheet" href="./stupiddb1_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/20210419185530/https://blog.aztec-project.org/feed/">
<link rel="pingback" href="https://blog.aztec-project.org/xmlrpc.php">
<link rel="dns-prefetch" href="https://web.archive.org/web/20210419185530/https://s0.wp.com/">
<link rel="dns-prefetch" href="https://web.archive.org/web/20210419185530/https://s.w.org/">
<link rel="alternate" type="application/rss+xml" title="build broken » StupidDB object-persistence-framework Comments Feed" href="https://web.archive.org/web/20210419185530/https://blog.aztec-project.org/2009/07/13/stupiddb-object-persistence-framework/feed/">
<script type="text/javascript">
window._wpemojiSettings = {"baseUrl":"https:\/\/web.archive.org\/web\/20210419185530\/https:\/\/s.w.org\/images\/core\/emoji\/12.0.0-1\/72x72\/","ext":".png","svgUrl":"https:\/\/web.archive.org\/web\/20210419185530\/https:\/\/s.w.org\/images\/core\/emoji\/12.0.0-1\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/web.archive.org\/web\/20210419185530\/http:\/\/blog.aztec-project.org\/wp-includes\/js\/wp-emoji-release.min.js?ver=5.3.1"}};
!function(e,a,t){var r,n,o,i,p=a.createElement("canvas"),s=p.getContext&&p.getContext("2d");function c(e,t){var a=String.fromCharCode;s.clearRect(0,0,p.width,p.height),s.fillText(a.apply(this,e),0,0);var r=p.toDataURL();return s.clearRect(0,0,p.width,p.height),s.fillText(a.apply(this,t),0,0),r===p.toDataURL()}function l(e){if(!s||!s.fillText)return!1;switch(s.textBaseline="top",s.font="600 32px Arial",e){case"flag":return!c([127987,65039,8205,9895,65039],[127987,65039,8203,9895,65039])&&(!c([55356,56826,55356,56819],[55356,56826,8203,55356,56819])&&!c([55356,57332,56128,56423,56128,56418,56128,56421,56128,56430,56128,56423,56128,56447],[55356,57332,8203,56128,56423,8203,56128,56418,8203,56128,56421,8203,56128,56430,8203,56128,56423,8203,56128,56447]));case"emoji":return!c([55357,56424,55356,57342,8205,55358,56605,8205,55357,56424,55356,57340],[55357,56424,55356,57342,8203,55358,56605,8203,55357,56424,55356,57340])}return!1}function d(e){var t=a.createElement("script");t.src=e,t.defer=t.type="text/javascript",a.getElementsByTagName("head")[0].appendChild(t)}for(i=Array("flag","emoji"),t.supports={everything:!0,everythingExceptFlag:!0},o=0;o<i.length;o++)t.supports[i[o]]=l(i[o]),t.supports.everything=t.supports.everything&&t.supports[i[o]],"flag"!==i[o]&&(t.supports.everythingExceptFlag=t.supports.everythingExceptFlag&&t.supports[i[o]]);t.supports.everythingExceptFlag=t.supports.everythingExceptFlag&&!t.supports.flag,t.DOMReady=!1,t.readyCallback=function(){t.DOMReady=!0},t.supports.everything||(n=function(){t.readyCallback()},a.addEventListener?(a.addEventListener("DOMContentLoaded",n,!1),e.addEventListener("load",n,!1)):(e.attachEvent("onload",n),a.attachEvent("onreadystatechange",function(){"complete"===a.readyState&&t.readyCallback()})),(r=t.source||{}).concatemoji?d(r.concatemoji):r.wpemoji&&r.twemoji&&(d(r.twemoji),d(r.wpemoji)))}(window,document,window._wpemojiSettings);
</script><script src="./stupiddb1_files/wp-emoji-release.min.js.Download" type="text/javascript" defer=""></script>
<style type="text/css">
img.wp-smiley,
img.emoji {
display: inline !important;
border: none !important;
box-shadow: none !important;
height: 1em !important;
width: 1em !important;
margin: 0 .07em !important;
vertical-align: -0.1em !important;
background: none !important;
padding: 0 !important;
}
</style>
<link rel="stylesheet" id="wp-block-library-css" href="./stupiddb1_files/style.min.css" type="text/css" media="all">
<link rel="stylesheet" id="jetpack_css-css" href="./stupiddb1_files/jetpack.css" type="text/css" media="all">
<link rel="https://api.w.org/" href="https://blog.aztec-project.org/wp-json/">
<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="prev" title=".NET Open Space Süd 2009" href="https://web.archive.org/web/20210419185530/https://blog.aztec-project.org/2009/07/10/net-open-space-sud-2009/">
<link rel="next" title="Bericht zum Open Space Süd 2009" href="https://web.archive.org/web/20210419185530/https://blog.aztec-project.org/2009/07/13/bericht-zum-open-space-sud-2009/">
<meta name="generator" content="WordPress 5.3.1">
<link rel="canonical" href="https://web.archive.org/web/20210419185530/https://blog.aztec-project.org/2009/07/13/stupiddb-object-persistence-framework/">
<link rel="shortlink" href="https://web.archive.org/web/20210419185530/https://blog.aztec-project.org/?p=407">
<link rel="alternate" type="application/json+oembed" href="https://web.archive.org/web/20210419185530/https://blog.aztec-project.org/wp-json/oembed/1.0/embed?url=http%3A%2F%2Fblog.aztec-project.org%2F2009%2F07%2F13%2Fstupiddb-object-persistence-framework%2F">
<link rel="alternate" type="text/xml+oembed" href="https://web.archive.org/web/20210419185530/https://blog.aztec-project.org/wp-json/oembed/1.0/embed?url=http%3A%2F%2Fblog.aztec-project.org%2F2009%2F07%2F13%2Fstupiddb-object-persistence-framework%2F&amp;format=xml">
<style type="text/css">img#wpstats{display:none}</style>
<script type="text/javascript" src="./stupiddb1_files/jquery.js.Download"></script>
<script type="text/javascript" src="./stupiddb1_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"></head>
<body><!-- 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/20210419185530/https%3A//blog.aztec-project.org/2009/07/13/stupiddb-object-persistence-framework/" 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="https://blog.aztec-project.org/2009/07/13/stupiddb-object-persistence-framework/" onfocus="this.focus();this.select();" style="flex:1;" autocomplete="off"><input type="hidden" name="type" value="replay"><input type="hidden" name="date" value="20210419185530"><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/*/https://blog.aztec-project.org/2009/07/13/stupiddb-object-persistence-framework/" title="See a list of every capture for this URL">22 captures</a><div class="r" title="Timespan for captures of this URL">16 Jul 2009 - 19 Apr 2021</div></div>
<div class="k">
<a href="https://web.archive.org/web/20210419185530/https://blog.aztec-project.org/2009/07/13/stupiddb-object-persistence-framework/" 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/20210117160948/https://blog.aztec-project.org/2009/07/13/stupiddb-object-persistence-framework/" title="17 Jan 2021"><strong>Jan</strong></a></td>
<td class="c" id="displayMonthEl" title="You are here: 18:55:30 Apr 19, 2021">APR</td>
<td class="f" nowrap="nowrap">May</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/20210117160948/https://blog.aztec-project.org/2009/07/13/stupiddb-object-persistence-framework/" title="16:09:48 Jan 17, 2021"><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: 18:55:30 Apr 19, 2021">19</td>
<td class="f" nowrap="nowrap"><img src="https://web.archive.org/_static/images/toolbar/wm_tb_nxt_off.png" alt="Next capture" width="14" height="16" border="0"></td>
</tr>
<!-- NEXT/PREV YEAR NAV AND YEAR INDICATOR -->
<tr class="y">
<td class="b" nowrap="nowrap"><a href="https://web.archive.org/web/20161013224421/http://blog.aztec-project.org/2009/07/13/stupiddb-object-persistence-framework/" title="13 Oct 2016"><strong>2016</strong></a></td>
<td class="c" id="displayYearEl" title="You are here: 18:55:30 Apr 19, 2021">2021</td>
<td class="f" nowrap="nowrap">2022</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/20210419185530/https://blog.aztec-project.org/2009/07/13/stupiddb-object-persistence-framework/#" title="Share via My Web Archive" style="display: inline-block;">
<span class="iconochive-web"></span>
</a>
<a href="https://archive.org/account/login.php" title="Sign In" id="wm-sign-in" style="display: none;">
<span class="iconochive-person"></span>
</a>
<span id="wm-save-snapshot-in-progress" class="iconochive-web"></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/20210419185530/https://blog.aztec-project.org/2009/07/13/stupiddb-object-persistence-framework/#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/20210419185530/http://web.archive.org/screenshot/https://blog.aztec-project.org/2009/07/13/stupiddb-object-persistence-framework/" id="wm-screenshot" title="screenshot" style="visibility: hidden;">
<span class="wm-icon-screen-shot"></span>
</a>
<a href="https://web.archive.org/web/20210419185530/https://blog.aztec-project.org/2009/07/13/stupiddb-object-persistence-framework/#" id="wm-video" title="video">
<span class="iconochive-movies"></span>
</a>
<a id="wm-share-facebook" href="https://web.archive.org/web/20210419185530/https://blog.aztec-project.org/2009/07/13/stupiddb-object-persistence-framework/#" data-url="https://web.archive.org/web/20210419185530/https://blog.aztec-project.org/2009/07/13/stupiddb-object-persistence-framework/" 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/20210419185530/https://blog.aztec-project.org/2009/07/13/stupiddb-object-persistence-framework/#" data-url="https://web.archive.org/web/20210419185530/https://blog.aztec-project.org/2009/07/13/stupiddb-object-persistence-framework/" 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/20210419185530/https://blog.aztec-project.org/2009/07/13/stupiddb-object-persistence-framework/#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:49%;">
<span class="c-logo" style="background-image:url(https://archive.org/services/img/commoncrawl)"></span>
<div>Collection: <a style="color:#33f;" href="https://archive.org/details/commoncrawl" target="_new"><span class="wm-title">Common Crawl</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>
Web crawl data from Common Crawl.
</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="./stupiddb1_files/banner-styles.css"><link rel="stylesheet" type="text/css" href="./stupiddb1_files/iconochive.css"><div class="wb-autocomplete-suggestions "></div></template>
</div><div id="wm-ipp-print">The Wayback Machine - https://web.archive.org/web/20210419185530/https://blog.aztec-project.org/2009/07/13/stupiddb-object-persistence-framework/</div>
<script type="text/javascript">//<![CDATA[
__wm.bt(750,27,25,2,"web","https://blog.aztec-project.org/2009/07/13/stupiddb-object-persistence-framework/","20210419185530",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/20210419185530/https://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/20210419185530/https://blog.aztec-project.org/">Home</a></li>
<li class="page_item page-item-2"><a href="https://web.archive.org/web/20210419185530/https://blog.aztec-project.org/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/20210419185530/https://blog.aztec-project.org/2009/07/10/net-open-space-sud-2009/" rel="prev">.NET Open Space Süd 2009</a></div>
<div class="alignright"><a href="https://web.archive.org/web/20210419185530/https://blog.aztec-project.org/2009/07/13/bericht-zum-open-space-sud-2009/" rel="next">Bericht zum Open Space Süd 2009</a>&nbsp;»</div>
</div>
<div class="post" id="post-407">
<div class="postinfo">
<div class="datestamp">
<div>
<span class="cal1 cal1x">Jul</span>
<span class="cal2">13</span>
<span class="cal3">2009</span>
</div>
</div>
<span class="switch-post">
<a href="javascript:toggleSidebars();" class="switch-sidebars"><img src="./stupiddb1_files/bullet_sidebars_hide.png" alt="" class="png"></a><a href="javascript:togglePost(407);" id="switch-post-407"><img src="./stupiddb1_files/bullet_toggle_minus.png" alt="" class="png"></a>
</span>
<h2 class="posttitle"><a href="https://web.archive.org/web/20210419185530/https://blog.aztec-project.org/2009/07/13/stupiddb-object-persistence-framework/" rel="bookmark" title="Permanent Link: StupidDB object-persistence-framework">StupidDB object-persistence-framework</a></h2>
<small>
Posted by <a href="https://web.archive.org/web/20210419185530/https://blog.aztec-project.org/author/sko/" title="Posts by Stefan Kölle">Stefan Kölle</a> in <a href="https://web.archive.org/web/20210419185530/https://blog.aztec-project.org/category/release/" rel="category tag">Release</a>, <a href="https://web.archive.org/web/20210419185530/https://blog.aztec-project.org/category/stupiddb/" rel="category tag">StupidDB</a>, tags: <a href="https://web.archive.org/web/20210419185530/https://blog.aztec-project.org/tag/stupiddb/" rel="tag">StupidDB</a> </small>
</div>
<div class="entry">
<p>Angeregt durch die Diskussion auf dem Open-Spaces zum Thema schemalose Datenbanken, werden wir heute bereits die Vorabversion unserer StupidDB als open-source releasen.</p>
<p>Die StupidDB entstand bei uns aus der Notwendigkeit, immer wieder Objekte und Files schnell und einfach zu speichern, dies serverlos und trotzdem skalierbar und hochverfügbar vorzuhalten. Die StupidDB lässt sich am besten wie folgt beschreiben:</p>
<blockquote><p>StupidDB ist ein einfaches Objektspeicherungs-Framework auf dem Filesystem. Vergleichbar mit dem WebCache kann man in der StupidDB jegliches Objekt ablegen, welches kosteneffizient auf dem Filesystem gespeichert wird. Geladen werden können Objekte und Binärdaten mit einem eindeutigen Key und einer Partition. Den echten Speicherort auf der Festplatte ermittelt StupidDB selbst. Durch Replikation des Filesystems z.B. per Windows-DFS ist zudem eine einfache Hochverfügbarkeit und Skalierbarkeit der Datenbasis herzustellen.</p></blockquote>
<p>Angeregt durch einen <a href="https://web.archive.org/web/20210419185530/http://techblog.tilllate.com/2008/08/14/webtuesday-lightning-talk-slides/" target="_blank">Blogeintrag von tilllate.com</a> letztes Jahr, entstand bereits vor einem Jahr die erste Version von StupidDB, welches bis zum Blogeintrag nur aus einem Konzept bestand. Leo Büttiker hat zwar ein leicht anderes Konzept als unsere Implementierung, in den Kernpunkten ähnelt sich aber das Design. StupidDB bekam durch diesen Blogpost damals jedoch seinen Namen.</p>
<p>Für folgende Anwendungsszenarien sehen wir StupidDB als geeignet:</p>
<ul>
<li> Userdaten wie Fotos und Mediadaten, die eine Datenbank nur unnötig aufblähen</li>
<li> temporäre Daten</li>
<li> Statusdaten</li>
<li>Versionierung von Daten</li>
</ul>
<p>Als Vorteile gegenüber z.B. MogileFS, CouchDB zählt für uns vor allem, dass kein zentraler Server für die Datenbank benötigt wird, sondern nur ein Share im Netz. Die Implementierung ist dadurch enorm vereinfacht. Mit weiteren Windows-Board-Mitteln kann man danach das ganze System um Hochverfügbarkeit und Skalierbarkeit einfach ausbauen.</p>
<p>Die Nutzung selbst ist denkbar einfach. Folgendes Mitarbeiter-Objekt möchte ich speichern.</p>
<div style="font-family: Courier New; font-size: 10pt; color: black; background: white;">
<p style="margin: 0px;"><span style="color: #2b91af;"> 65</span> <span style="color: blue;">public</span> <span style="color: blue;">class</span> <span style="color: #2b91af;">Mitarbeiter</span></p>
<p style="margin: 0px;"><span style="color: #2b91af;"> 66</span> {</p>
<p style="margin: 0px;"><span style="color: #2b91af;"> 67</span> <span style="color: blue;">public</span> <span style="color: blue;">int</span> Id { <span style="color: blue;">get</span>; <span style="color: blue;">set</span>; }</p>
<p style="margin: 0px;"><span style="color: #2b91af;"> 68</span> <span style="color: blue;">public</span> <span style="color: blue;">string</span> Name { <span style="color: blue;">get</span>; <span style="color: blue;">set</span>; }</p>
<p style="margin: 0px;"><span style="color: #2b91af;"> 69</span> <span style="color: blue;">public</span> <span style="color: blue;">string</span> Vorname { <span style="color: blue;">get</span>; <span style="color: blue;">set</span>; }</p>
<p style="margin: 0px;"><span style="color: #2b91af;"> 70</span> <span style="color: blue;">public</span> <span style="color: blue;">string</span> Ort { <span style="color: blue;">get</span>; <span style="color: blue;">set</span>; }</p>
<p style="margin: 0px;"><span style="color: #2b91af;"> 71</span> <span style="color: blue;">public</span> <span style="color: blue;">string</span> Plz { <span style="color: blue;">get</span>; <span style="color: blue;">set</span>; }</p>
<p style="margin: 0px;"><span style="color: #2b91af;"> 72</span></p>
<p style="margin: 0px;"><span style="color: #2b91af;"> 73</span> <span style="color: blue;">public</span> <span style="color: blue;">string</span> VollerName</p>
<p style="margin: 0px;"><span style="color: #2b91af;"> 74</span> {</p>
<p style="margin: 0px;"><span style="color: #2b91af;"> 75</span> <span style="color: blue;">get</span> { <span style="color: blue;">return</span> <span style="color: blue;">string</span>.Format(<span style="color: #a31515;">“{0} {1}”</span>, Vorname, Name); }</p>
<p style="margin: 0px;"><span style="color: #2b91af;"> 76</span> }</p>
<p style="margin: 0px;"><span style="color: #2b91af;"> 77</span> }</p>
</div>
<p>Dazu nutzt man die Put-Methode der StupidDB.</p>
<div style="font-family: Courier New; font-size: 10pt; color: black; background: white;">
<p style="margin: 0px;"><span style="color: #2b91af;"> 20</span> <span style="color: #2b91af;">IStupidDB</span> stupidDB = <span style="color: blue;">new</span> <span style="color: #2b91af;">StupidDB</span>(<span style="color: #a31515;">“test”</span>);</p>
<p style="margin: 0px;"><span style="color: #2b91af;"> 21</span> <span style="color: #2b91af;">Mitarbeiter</span> mitarbeiter = <span style="color: blue;">new</span> <span style="color: #2b91af;">Mitarbeiter</span></p>
<p style="margin: 0px;"><span style="color: #2b91af;"> 22</span> {</p>
<p style="margin: 0px;"><span style="color: #2b91af;"> 23</span> Id = 1,</p>
<p style="margin: 0px;"><span style="color: #2b91af;"> 24</span> Name = <span style="color: #a31515;">“Christian”</span>,</p>
<p style="margin: 0px;"><span style="color: #2b91af;"> 25</span> Vorname = <span style="color: #a31515;">“Thomas”</span>,</p>
<p style="margin: 0px;"><span style="color: #2b91af;"> 26</span> Ort = <span style="color: #a31515;">“Rosenheim”</span>,</p>
<p style="margin: 0px;"><span style="color: #2b91af;"> 27</span> Plz = <span style="color: #a31515;">“83026”</span></p>
<p style="margin: 0px;"><span style="color: #2b91af;"> 28</span> };</p>
<p style="margin: 0px;"><span style="color: #2b91af;"> 29</span> stupidDB.Put( <span style="color: #a31515;">“TestPartition”</span>, <span style="color: #a31515;">“EinMitarbeiter”</span>, mitarbeiter );</p>
</div>
<p>Um das gleiche Objekt wieder zu lesen, nutzt man mal eine Get Methode. Die Parameter sind Partition und Key:</p>
<div style="font-family: Courier New; font-size: 10pt; color: black; background: white;">
<p style="margin: 0px;"><span style="color: #2b91af;"> 32</span> <span style="color: #2b91af;">Mitarbeiter</span> mitarbeiterAusgelesen =</p>
<p style="margin: 0px;"><span style="color: #2b91af;"> 33</span> (<span style="color: #2b91af;">Mitarbeiter</span>)stupidDB.GetObject(</p>
<p style="margin: 0px;"><span style="color: #2b91af;"> 34</span> <span style="color: #a31515;">“TestPartition”</span>,</p>
<p style="margin: 0px;"><span style="color: #2b91af;"> 35</span> <span style="color: #a31515;">“EinMitarbeiter”</span>,</p>
<p style="margin: 0px;"><span style="color: #2b91af;"> 36</span> <span style="color: blue;">typeof</span>(<span style="color: #2b91af;">Mitarbeiter</span>)</p>
<p style="margin: 0px;"><span style="color: #2b91af;"> 37</span> );</p>
<p style="margin: 0px;"><span style="color: #2b91af;"> 38</span> <span style="color: blue;">if</span> (mitarbeiterAusgelesen != <span style="color: blue;">null</span>)</p>
<p style="margin: 0px;"><span style="color: #2b91af;"> 39</span> {</p>
<p style="margin: 0px;"><span style="color: #2b91af;"> 40</span> <span style="color: #2b91af;">Console</span>.WriteLine(<span style="color: #a31515;">“Name des Mitarbeiters: {0}”</span>,</p>
<p style="margin: 0px;"><span style="color: #2b91af;"> 41</span> mitarbeiterAusgelesen.VollerName);</p>
<p style="margin: 0px;"><span style="color: #2b91af;"> 42</span> }</p>
</div>
<p>Die StupidDB selbst wird über die app.config definiert.</p>
<div style="font-family: Courier New; font-size: 10pt; color: black; background: white;">
<p style="margin: 0px;"><span style="color: #2b91af;"> 3</span> <span style="color: blue;">&lt;</span><span style="color: #a31515;">configuration</span><span style="color: blue;">&gt;</span></p>
<p style="margin: 0px;"><span style="color: #2b91af;"> 4</span> <span style="color: blue;"> &lt;</span><span style="color: #a31515;">configSections</span><span style="color: blue;">&gt;</span></p>
<p style="margin: 0px;"><span style="color: #2b91af;"> 5</span> <span style="color: blue;"> &lt;</span><span style="color: #a31515;">section</span><span style="color: blue;"> </span><span style="color: red;">name</span><span style="color: blue;">=</span><span style="color: blue;">stupidDB</span><span style="color: blue;"> </span><span style="color: red;">type</span><span style="color: blue;">=</span><span style="color: blue;">Aztec.StupidDB.DBConfigCollection, Aztec.StupidDB, Version=1.0.0.0, Culture=neutral</span><span style="color: blue;"> </span><span style="color: red;">allowLocation</span><span style="color: blue;">=</span><span style="color: blue;">true</span><span style="color: blue;"> </span><span style="color: red;">allowDefinition</span><span style="color: blue;">=</span><span style="color: blue;">Everywhere</span><span style="color: blue;">/&gt;</span></p>
<p style="margin: 0px;"><span style="color: #2b91af;"> 6</span> <span style="color: blue;"> &lt;/</span><span style="color: #a31515;">configSections</span><span style="color: blue;">&gt;</span></p>
<p style="margin: 0px;"><span style="color: #2b91af;"> 7</span> <span style="color: blue;"> &lt;</span><span style="color: #a31515;">stupidDB</span><span style="color: blue;">&gt;</span></p>
<p style="margin: 0px;"><span style="color: #2b91af;"> 8</span> <span style="color: blue;"> &lt;</span><span style="color: #a31515;">DB</span><span style="color: blue;"> </span><span style="color: red;">name</span><span style="color: blue;">=</span><span style="color: blue;">test</span><span style="color: blue;"> </span><span style="color: red;">root</span><span style="color: blue;">=</span><span style="color: blue;">temp\test</span><span style="color: blue;"> </span><span style="color: red;">tiefe</span><span style="color: blue;">=</span><span style="color: blue;">3</span><span style="color: blue;"> </span><span style="color: red;">versionierung</span><span style="color: blue;">=</span><span style="color: blue;">false</span><span style="color: blue;"> /&gt;</span></p>
<p style="margin: 0px;"><span style="color: #2b91af;"> 9</span> <span style="color: blue;"> &lt;/</span><span style="color: #a31515;">stupidDB</span><span style="color: blue;">&gt;</span></p>
<p style="margin: 0px;"><span style="color: #2b91af;"> 10</span> <span style="color: blue;">&lt;/</span><span style="color: #a31515;">configuration</span><span style="color: blue;">&gt;</span></p>
</div>
<p>Wer sich den aktuellen Code einmal ansehen möchte, kann dies gerne unter folgendem Link ansehen:<a href="https://web.archive.org/web/20210419185530/https://stupiddb.svn.sourceforge.net/svnroot/stupiddb/trunk"><br>
https://stupiddb.svn.sourceforge.net/svnroot/stupiddb/trunk</a></p>
<p><a href="https://web.archive.org/web/20210419185530/http://dotnet-kicks.de/kick/?url=http%3a%2f%2fblog.aztec-project.org%2f2009%2f07%2f13%2fstupiddb-object-persistence-framework%2f"><img src="./stupiddb1_files/KickItImageGenerator.ashx" border="0" alt="kick it on dotnet-kicks.de"></a></p>
<p class="postmetadata alt clear">
<small>
This entry was posted on Monday, July 13th, 2009 at 3:30 pm and is filed under <a href="https://web.archive.org/web/20210419185530/https://blog.aztec-project.org/category/release/" rel="category tag">Release</a>, <a href="https://web.archive.org/web/20210419185530/https://blog.aztec-project.org/category/stupiddb/" rel="category tag">StupidDB</a>. You can follow any responses to this entry through the <a href="https://web.archive.org/web/20210419185530/https://blog.aztec-project.org/2009/07/13/stupiddb-object-persistence-framework/feed/">RSS 2.0</a> feed. You can <a href="https://web.archive.org/web/20210419185530/https://blog.aztec-project.org/2009/07/13/stupiddb-object-persistence-framework/#respond">leave a response</a>, or <a href="https://web.archive.org/web/20210419185530/https://blog.aztec-project.org/2009/07/13/stupiddb-object-persistence-framework/trackback/" rel="trackback">trackback</a> from your own site.
</small>
</p>
</div>
</div>
<div id="comments">
7 Responses to “StupidDB object-persistence-framework”
</div>
<ol class="commentlist" id="commentlist">
<li class="comment even thread-even depth-1 alt" id="comment-322">
<div id="div-comment-322" class="comment-body">
<span class="switch-post"><a href="https://web.archive.org/web/20210419185530/https://blog.aztec-project.org/2009/07/13/stupiddb-object-persistence-framework/#"><img src="./stupiddb1_files/bullet_toggle_minus(1).png" alt="" class="png"></a></span><div class="comment-author vcard">
<img alt="" src="./stupiddb1_files/fd26012e9b6baacc2b78bcdb1740a61a" srcset="https://web.archive.org/web/20210419185530im_/http://0.gravatar.com/avatar/fd26012e9b6baacc2b78bcdb1740a61a?s=64&amp;d=identicon&amp;r=g 2x" class="avatar avatar-32 photo" height="32" width="32"> <cite class="fn">Doku</cite> <span class="says">says:</span> </div>
<div class="comment-meta commentmetadata"><a href="https://web.archive.org/web/20210419185530/https://blog.aztec-project.org/2009/07/13/stupiddb-object-persistence-framework/#comment-322">
March 1, 2010 at 9:59 am </a>
</div>
<div class="comment"><p>Coole Sache, gibt es dazu eine Doku der Funktionen wie .Backup<br>
und der möglichen werte, wie Tiefe, Versionierung etc?</p></div>
<div class="comment"><p>Vielen Dank.</p></div>
</div>
</li>
<li class="comment byuser comment-author-sko bypostauthor odd alt thread-odd thread-alt depth-1" id="comment-324">
<div id="div-comment-324" class="comment-body">
<span class="switch-post"><a href="https://web.archive.org/web/20210419185530/https://blog.aztec-project.org/2009/07/13/stupiddb-object-persistence-framework/#"><img src="./stupiddb1_files/bullet_toggle_minus(1).png" alt="" class="png"></a></span><div class="comment-author vcard">
<img alt="" src="./stupiddb1_files/dd231104fe0e1a7b87be55834a7c0c86.jpeg" srcset="https://web.archive.org/web/20210419185530im_/http://1.gravatar.com/avatar/dd231104fe0e1a7b87be55834a7c0c86?s=64&amp;d=identicon&amp;r=g 2x" class="avatar avatar-32 photo" height="32" width="32"> <cite class="fn"><a href="https://web.archive.org/web/20210419185530/http://www.stefankoelle.de/" rel="external nofollow ugc" class="url">Stefan Kölle</a></cite> <span class="says">says:</span> </div>
<div class="comment-meta commentmetadata"><a href="https://web.archive.org/web/20210419185530/https://blog.aztec-project.org/2009/07/13/stupiddb-object-persistence-framework/#comment-324">
March 1, 2010 at 12:21 pm </a>
</div>
<div class="comment"><p>Es gibt aktuell noch keine Doku, im Code wird einiges erklaert jedoch sicher nicht ausreichend. </p></div>
<div class="comment"><p>In der aktuellen Ausgabe der dotnetpro gibt es jedoch einen Artikel zu StupidDB, dort erklaere ich die Parameter noch einmal genauer. Auch das Thema Tiefe, Versionierung usw. <a href="https://web.archive.org/web/20210419185530/http://www.dotnetpro.de/CurrentIssue.aspx" rel="nofollow ugc">http://www.dotnetpro.de/CurrentIssue.aspx</a></p></div>
</div>
</li>
<li class="comment even thread-even depth-1 alt" id="comment-349">
<div id="div-comment-349" class="comment-body">
<span class="switch-post"><a href="https://web.archive.org/web/20210419185530/https://blog.aztec-project.org/2009/07/13/stupiddb-object-persistence-framework/#"><img src="./stupiddb1_files/bullet_toggle_minus(1).png" alt="" class="png"></a></span><div class="comment-author vcard">
<img alt="" src="./stupiddb1_files/d1bda30d19e96280487c119546a5facc" srcset="https://web.archive.org/web/20210419185530im_/http://1.gravatar.com/avatar/d1bda30d19e96280487c119546a5facc?s=64&amp;d=identicon&amp;r=g 2x" class="avatar avatar-32 photo" height="32" width="32"> <cite class="fn">UweD</cite> <span class="says">says:</span> </div>
<div class="comment-meta commentmetadata"><a href="https://web.archive.org/web/20210419185530/https://blog.aztec-project.org/2009/07/13/stupiddb-object-persistence-framework/#comment-349">
March 9, 2010 at 5:47 pm </a>
</div>
<div class="comment"><p>Scheint ja wirklich toll zu sein. Leider findet man im Web noch nicht allzuviel darüber. Der Artikel in der dotnetpro sagt einiges, aber zu dem Pfad kann ich nirgends etwas finden.<br>
Wenn ich root=“temp\test“ angebe, wo liegt das dann physisch?</p></div>
</div>
</li>
<li class="comment byuser comment-author-sko bypostauthor odd alt thread-odd thread-alt depth-1" id="comment-350">
<div id="div-comment-350" class="comment-body">
<span class="switch-post"><a href="https://web.archive.org/web/20210419185530/https://blog.aztec-project.org/2009/07/13/stupiddb-object-persistence-framework/#"><img src="./stupiddb1_files/bullet_toggle_minus(1).png" alt="" class="png"></a></span><div class="comment-author vcard">
<img alt="" src="./stupiddb1_files/dd231104fe0e1a7b87be55834a7c0c86.jpeg" srcset="https://web.archive.org/web/20210419185530im_/http://1.gravatar.com/avatar/dd231104fe0e1a7b87be55834a7c0c86?s=64&amp;d=identicon&amp;r=g 2x" class="avatar avatar-32 photo" height="32" width="32"> <cite class="fn"><a href="https://web.archive.org/web/20210419185530/http://www.stefankoelle.de/" rel="external nofollow ugc" class="url">Stefan Kölle</a></cite> <span class="says">says:</span> </div>
<div class="comment-meta commentmetadata"><a href="https://web.archive.org/web/20210419185530/https://blog.aztec-project.org/2009/07/13/stupiddb-object-persistence-framework/#comment-350">
March 9, 2010 at 5:52 pm </a>
</div>
<div class="comment"><p>Hallo, Uwe,</p></div>
<div class="comment"><p>man kann bei root einfach einen absoluten Pfad angeben, z.B. c:\temp\stupiddb\</p></div>
<div class="comment"><p>Ohne der Angabe eines Pfades wird die StupidDB im Ausfuehrungsverzeichnis angelegt.</p></div>
<div class="comment"><p>Gruss<br>
Stefan</p></div>
</div>
</li>
<li class="comment even thread-even depth-1 alt" id="comment-503">
<div id="div-comment-503" class="comment-body">
<span class="switch-post"><a href="https://web.archive.org/web/20210419185530/https://blog.aztec-project.org/2009/07/13/stupiddb-object-persistence-framework/#"><img src="./stupiddb1_files/bullet_toggle_minus(1).png" alt="" class="png"></a></span><div class="comment-author vcard">
<img alt="" src="./stupiddb1_files/0506b93e46367ba426b9351036ff69ef" srcset="https://web.archive.org/web/20210419185530im_/http://0.gravatar.com/avatar/0506b93e46367ba426b9351036ff69ef?s=64&amp;d=identicon&amp;r=g 2x" class="avatar avatar-32 photo" height="32" width="32"> <cite class="fn">Uwe</cite> <span class="says">says:</span> </div>
<div class="comment-meta commentmetadata"><a href="https://web.archive.org/web/20210419185530/https://blog.aztec-project.org/2009/07/13/stupiddb-object-persistence-framework/#comment-503">
January 4, 2011 at 11:17 am </a>
</div>
<div class="comment"><p>Hallo,<br>
ich bin nun nicht so firm in C#. Gibt es Beispiel für IStupidDB.Dir ?</p></div>
<div class="comment"><p>Danke<br>
Uwe</p></div>
</div>
</li>
<li class="comment byuser comment-author-ase odd alt thread-odd thread-alt depth-1" id="comment-504">
<div id="div-comment-504" class="comment-body">
<span class="switch-post"><a href="https://web.archive.org/web/20210419185530/https://blog.aztec-project.org/2009/07/13/stupiddb-object-persistence-framework/#"><img src="./stupiddb1_files/bullet_toggle_minus(1).png" alt="" class="png"></a></span><div class="comment-author vcard">
<img alt="" src="./stupiddb1_files/8e8da2fc0bc939d05e03fcaa078b3859.jpeg" srcset="https://web.archive.org/web/20210419185530im_/http://2.gravatar.com/avatar/8e8da2fc0bc939d05e03fcaa078b3859?s=64&amp;d=identicon&amp;r=g 2x" class="avatar avatar-32 photo" height="32" width="32"> <cite class="fn"><a href="https://web.archive.org/web/20210419185530/http://www.in-your-face.org/" rel="external nofollow ugc" class="url">Andreas Seebauer</a></cite> <span class="says">says:</span> </div>
<div class="comment-meta commentmetadata"><a href="https://web.archive.org/web/20210419185530/https://blog.aztec-project.org/2009/07/13/stupiddb-object-persistence-framework/#comment-504">
January 12, 2011 at 12:05 pm </a>
</div>
<div class="comment"><p>Hallo, Uwe,</p></div>
<div class="comment"><p>hier ein kleines Beispiel für die Verwendung von IStupidDB.Dir in C#:</p></div>
<div class="comment"><p>IStupidDB sdb = new StupidDB(“meinDbName”);<br>
string partition = “Beispielpartition”;<br>
string key = “Beispielkey”;<br>
// Speichern des strings “Beispiel” unter Key “Beispielkey” in Partition “Beispielpartition”<br>
sdb.Put(partition, key, “Beispiel”);<br>
// Auflisten aller Keys in Partition “Beispielpartition”<br>
List<string> listKeys = sdb.Dir(partition);</string></p></div>
<div class="comment"><p>Mit den zurückgelieferten Keys können dann die Objekte via GetObject ausgelesen werden.<br>
Ich hoffe das beantwortet deine Frage.</p></div>
<div class="comment"><p>Gruß<br>
Andreas</p></div>
</div>
</li>
<li class="comment even thread-even depth-1 alt" id="comment-505">
<div id="div-comment-505" class="comment-body">
<span class="switch-post"><a href="https://web.archive.org/web/20210419185530/https://blog.aztec-project.org/2009/07/13/stupiddb-object-persistence-framework/#"><img src="./stupiddb1_files/bullet_toggle_minus(1).png" alt="" class="png"></a></span><div class="comment-author vcard">
<img alt="" src="./stupiddb1_files/0506b93e46367ba426b9351036ff69ef" srcset="https://web.archive.org/web/20210419185530im_/http://0.gravatar.com/avatar/0506b93e46367ba426b9351036ff69ef?s=64&amp;d=identicon&amp;r=g 2x" class="avatar avatar-32 photo" height="32" width="32"> <cite class="fn">Uwe</cite> <span class="says">says:</span> </div>
<div class="comment-meta commentmetadata"><a href="https://web.archive.org/web/20210419185530/https://blog.aztec-project.org/2009/07/13/stupiddb-object-persistence-framework/#comment-505">
January 12, 2011 at 4:23 pm </a>
</div>
<div class="comment"><p>Hallo Andreas,<br>
nein, nicht ganz!<br>
Laut Doc gibt es<br>
Dir Listet alle Schlüssel einer Partition) und<br>
Dir Liefert ein IDictionary aller Schlüssel mit zugehörigem Objekt .</p></div>
<div class="comment"><p>Mit geht es um das 2. Dir.</p></div>
<div class="comment"><p>Uwe</p></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">Leave a Reply</div>
<div class="cancel-comment-reply">
<small><a rel="nofollow" id="cancel-comment-reply-link" href="https://web.archive.org/web/20210419185530/https://blog.aztec-project.org/2009/07/13/stupiddb-object-persistence-framework/#respond" style="display:none;">Click here to cancel reply</a></small>
</div>
<form action="https://web.archive.org/web/20210419185530/https://blog.aztec-project.org/wp-comments-post.php" method="post" id="commentform">
<input type="hidden" name="comment_post_ID" value="407" 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 (required)</small></label></p>
<p><input type="text" name="email" id="email" value="" size="22" tabindex="2">
<label for="email"><small>E-mail (will not be published) (required)</small></label></p>
<p><input type="text" name="url" id="url" value="" size="22" tabindex="3">
<label for="url"><small>Website</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="Submit Comment">
<input type="hidden" name="comment_post_ID" value="407">
</p>
<p style="display: none;"><input type="hidden" id="akismet_comment_nonce" name="akismet_comment_nonce" value="d53453affb"></p><p style="display: none;"></p> <br class="clear">
<input type="hidden" id="ak_js" name="ak_js" value="1618858531818"></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/20210419185530/http://blog.aztec-project.org/wp-content/themes/mandigo/images/icons/bullet_toggle_minus.png" alt="" class="png" /><\/a><\/span>');
});
// ]]> -->
</script>
</td>
</tr>
</tbody></table>
</div>
<div id="footer" class="png">
<p>
Powered by <a href="https://web.archive.org/web/20210419185530/https://wordpress.org/">WordPress</a>, <a href="https://web.archive.org/web/20210419185530/http://www.onehertz.com/portfolio/wordpress/" target="_blank" title="WordPress themes">Mandigo theme</a> by tom.
<br><a href="https://web.archive.org/web/20210419185530/https://blog.aztec-project.org/feed/"><img src="./stupiddb1_files/rss_s.gif" alt=""> Entries (RSS)</a>
and <a href="https://web.archive.org/web/20210419185530/https://blog.aztec-project.org/comments/feed/"><img src="./stupiddb1_files/rss_s.gif" alt=""> Comments (RSS)</a>.
</p>
</div>
</div>
<script type="text/javascript" src="./stupiddb1_files/comment-reply.min.js.Download"></script>
<script type="text/javascript" src="./stupiddb1_files/devicepx-jetpack.js.Download"></script>
<script type="text/javascript" src="./stupiddb1_files/wp-embed.min.js.Download"></script>
<script async="async" type="text/javascript" src="./stupiddb1_files/form.js.Download"></script>
<script type="text/javascript" src="./stupiddb1_files/e-202116.js.Download" async="async" defer="defer"></script>
<script type="text/javascript">
_stq = window._stq || [];
_stq.push([ 'view', {v:'ext',j:'1:8.0',blog:'170418232',post:'407',tz:'2',srv:'blog.aztec-project.org'} ]);
_stq.push([ 'clickTrackerInit', '170418232', '407' ]);
</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/20210419185530/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/20210419185530/https://ssl." : "https://web.archive.org/web/20210419185530/http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script><script src="./stupiddb1_files/ga.js.Download" type="text/javascript"></script><img src="./stupiddb1_files/g.gif" alt=":)" width="6" height="5" id="wpstats">
<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></body></html>
+648
View File
@@ -0,0 +1,648 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- saved from url=(0104)https://web.archive.org/web/20210419190605/https://blog.aztec-project.org/2010/02/22/nosql-mit-stupiddb/ -->
<html xmlns="http://www.w3.org/1999/xhtml" class=" pvhtqwk idc0_350"><head profile="http://gmpg.org/xfn/11"><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><script src="./stupiddb2_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-app215.us.archive.org';v.server_ms=601;archive_analytics.send_pageview({});});</script>
<script type="text/javascript" src="./stupiddb2_files/bundle-playback.js.Download" charset="utf-8"></script>
<script type="text/javascript" src="./stupiddb2_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="./stupiddb2_files/ruffle.js.Download"></script>
<script type="text/javascript">
__wm.init("https://web.archive.org/web");
__wm.wombat("https://blog.aztec-project.org/2010/02/22/nosql-mit-stupiddb/","20210419190605","https://web.archive.org/","web","/_static/",
"1618859165");
</script>
<link rel="stylesheet" type="text/css" href="./stupiddb2_files/banner-styles.css">
<link rel="stylesheet" type="text/css" href="./stupiddb2_files/iconochive.css">
<!-- End Wayback Rewrite JS Include -->
<title>build broken » NoSQL mit StupidDB</title>
<meta name="generator" content="WordPress 5.3.1">
<meta name="theme" content="Mandigo 1.41">
<link rel="stylesheet" href="./stupiddb2_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/20210419190605im_/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/20210419190605im_/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/20210419190605im_/http://blog.aztec-project.org/wp-content/themes/mandigo/images/bg-1024.png);
width: 957px;
}
#footer {
background: url(https://web.archive.org/web/20210419190605im_/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/20210419190605im_/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/20210419190605im_/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/20210419190605im_/http://blog.aztec-project.org/wp-content/themes/mandigo/images/head_overlay.png);
}
<br />
<b>Warning</b>: Use of undefined constant WPLANG - assumed 'WPLANG' (this will throw an Error in a future version of PHP) in <b>/homepages/24/d13434269/htdocs/clickandbuilds/buildbroken/wp-content/themes/mandigo/style.css.php</b> on line <b>384</b><br />
</style>
<link rel="stylesheet" href="./stupiddb2_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/20210419190605/https://blog.aztec-project.org/feed/">
<link rel="pingback" href="https://blog.aztec-project.org/xmlrpc.php">
<link rel="dns-prefetch" href="https://web.archive.org/web/20210419190605/https://s0.wp.com/">
<link rel="dns-prefetch" href="https://web.archive.org/web/20210419190605/https://s.w.org/">
<link rel="alternate" type="application/rss+xml" title="build broken » NoSQL mit StupidDB Comments Feed" href="https://web.archive.org/web/20210419190605/https://blog.aztec-project.org/2010/02/22/nosql-mit-stupiddb/feed/">
<script type="text/javascript">
window._wpemojiSettings = {"baseUrl":"https:\/\/web.archive.org\/web\/20210419190605\/https:\/\/s.w.org\/images\/core\/emoji\/12.0.0-1\/72x72\/","ext":".png","svgUrl":"https:\/\/web.archive.org\/web\/20210419190605\/https:\/\/s.w.org\/images\/core\/emoji\/12.0.0-1\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/web.archive.org\/web\/20210419190605\/http:\/\/blog.aztec-project.org\/wp-includes\/js\/wp-emoji-release.min.js?ver=5.3.1"}};
!function(e,a,t){var r,n,o,i,p=a.createElement("canvas"),s=p.getContext&&p.getContext("2d");function c(e,t){var a=String.fromCharCode;s.clearRect(0,0,p.width,p.height),s.fillText(a.apply(this,e),0,0);var r=p.toDataURL();return s.clearRect(0,0,p.width,p.height),s.fillText(a.apply(this,t),0,0),r===p.toDataURL()}function l(e){if(!s||!s.fillText)return!1;switch(s.textBaseline="top",s.font="600 32px Arial",e){case"flag":return!c([127987,65039,8205,9895,65039],[127987,65039,8203,9895,65039])&&(!c([55356,56826,55356,56819],[55356,56826,8203,55356,56819])&&!c([55356,57332,56128,56423,56128,56418,56128,56421,56128,56430,56128,56423,56128,56447],[55356,57332,8203,56128,56423,8203,56128,56418,8203,56128,56421,8203,56128,56430,8203,56128,56423,8203,56128,56447]));case"emoji":return!c([55357,56424,55356,57342,8205,55358,56605,8205,55357,56424,55356,57340],[55357,56424,55356,57342,8203,55358,56605,8203,55357,56424,55356,57340])}return!1}function d(e){var t=a.createElement("script");t.src=e,t.defer=t.type="text/javascript",a.getElementsByTagName("head")[0].appendChild(t)}for(i=Array("flag","emoji"),t.supports={everything:!0,everythingExceptFlag:!0},o=0;o<i.length;o++)t.supports[i[o]]=l(i[o]),t.supports.everything=t.supports.everything&&t.supports[i[o]],"flag"!==i[o]&&(t.supports.everythingExceptFlag=t.supports.everythingExceptFlag&&t.supports[i[o]]);t.supports.everythingExceptFlag=t.supports.everythingExceptFlag&&!t.supports.flag,t.DOMReady=!1,t.readyCallback=function(){t.DOMReady=!0},t.supports.everything||(n=function(){t.readyCallback()},a.addEventListener?(a.addEventListener("DOMContentLoaded",n,!1),e.addEventListener("load",n,!1)):(e.attachEvent("onload",n),a.attachEvent("onreadystatechange",function(){"complete"===a.readyState&&t.readyCallback()})),(r=t.source||{}).concatemoji?d(r.concatemoji):r.wpemoji&&r.twemoji&&(d(r.twemoji),d(r.wpemoji)))}(window,document,window._wpemojiSettings);
</script><script src="./stupiddb2_files/wp-emoji-release.min.js.Download" type="text/javascript" defer=""></script>
<style type="text/css">
img.wp-smiley,
img.emoji {
display: inline !important;
border: none !important;
box-shadow: none !important;
height: 1em !important;
width: 1em !important;
margin: 0 .07em !important;
vertical-align: -0.1em !important;
background: none !important;
padding: 0 !important;
}
</style>
<link rel="stylesheet" id="wp-block-library-css" href="./stupiddb2_files/style.min.css" type="text/css" media="all">
<link rel="stylesheet" id="jetpack_css-css" href="./stupiddb2_files/jetpack.css" type="text/css" media="all">
<link rel="https://api.w.org/" href="https://blog.aztec-project.org/wp-json/">
<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="prev" title="Beispiel Model-View-Presenter mit WinForms" href="https://web.archive.org/web/20210419190605/https://blog.aztec-project.org/2010/02/16/beispiel-model-view-presenter-winforms/">
<link rel="next" title="(Spreu + Weizen).Select(Programmierer)" href="https://web.archive.org/web/20210419190605/https://blog.aztec-project.org/2010/03/14/spreu-weizen-selectprogrammierer/">
<meta name="generator" content="WordPress 5.3.1">
<link rel="canonical" href="https://web.archive.org/web/20210419190605/https://blog.aztec-project.org/2010/02/22/nosql-mit-stupiddb/">
<link rel="shortlink" href="https://web.archive.org/web/20210419190605/https://blog.aztec-project.org/?p=916">
<link rel="alternate" type="application/json+oembed" href="https://web.archive.org/web/20210419190605/https://blog.aztec-project.org/wp-json/oembed/1.0/embed?url=http%3A%2F%2Fblog.aztec-project.org%2F2010%2F02%2F22%2Fnosql-mit-stupiddb%2F">
<link rel="alternate" type="text/xml+oembed" href="https://web.archive.org/web/20210419190605/https://blog.aztec-project.org/wp-json/oembed/1.0/embed?url=http%3A%2F%2Fblog.aztec-project.org%2F2010%2F02%2F22%2Fnosql-mit-stupiddb%2F&amp;format=xml">
<style type="text/css">img#wpstats{display:none}</style>
<script type="text/javascript" src="./stupiddb2_files/jquery.js.Download"></script>
<script type="text/javascript" src="./stupiddb2_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"></head>
<body><!-- 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/20210419190605/https%3A//blog.aztec-project.org/2010/02/22/nosql-mit-stupiddb/" 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="https://blog.aztec-project.org/2010/02/22/nosql-mit-stupiddb/" onfocus="this.focus();this.select();" style="flex:1;" autocomplete="off"><input type="hidden" name="type" value="replay"><input type="hidden" name="date" value="20210419190605"><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/*/https://blog.aztec-project.org/2010/02/22/nosql-mit-stupiddb/" title="See a list of every capture for this URL">19 captures</a><div class="r" title="Timespan for captures of this URL">25 Feb 2010 - 19 Apr 2021</div></div>
<div class="k">
<a href="https://web.archive.org/web/20210419190605/https://blog.aztec-project.org/2010/02/22/nosql-mit-stupiddb/" 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/20210117155704/https://blog.aztec-project.org/2010/02/22/nosql-mit-stupiddb/" title="17 Jan 2021"><strong>Jan</strong></a></td>
<td class="c" id="displayMonthEl" title="You are here: 19:06:05 Apr 19, 2021">APR</td>
<td class="f" nowrap="nowrap">May</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/20210117155704/https://blog.aztec-project.org/2010/02/22/nosql-mit-stupiddb/" title="15:57:04 Jan 17, 2021"><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: 19:06:05 Apr 19, 2021">19</td>
<td class="f" nowrap="nowrap"><img src="https://web.archive.org/_static/images/toolbar/wm_tb_nxt_off.png" alt="Next capture" width="14" height="16" border="0"></td>
</tr>
<!-- NEXT/PREV YEAR NAV AND YEAR INDICATOR -->
<tr class="y">
<td class="b" nowrap="nowrap"><a href="https://web.archive.org/web/20161013221921/http://blog.aztec-project.org/2010/02/22/nosql-mit-stupiddb/" title="13 Oct 2016"><strong>2016</strong></a></td>
<td class="c" id="displayYearEl" title="You are here: 19:06:05 Apr 19, 2021">2021</td>
<td class="f" nowrap="nowrap">2022</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/20210419190605/https://blog.aztec-project.org/2010/02/22/nosql-mit-stupiddb/#" title="Share via My Web Archive" style="display: inline-block;">
<span class="iconochive-web"></span>
</a>
<a href="https://archive.org/account/login.php" title="Sign In" id="wm-sign-in" style="display: none;">
<span class="iconochive-person"></span>
</a>
<span id="wm-save-snapshot-in-progress" class="iconochive-web"></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/20210419190605/https://blog.aztec-project.org/2010/02/22/nosql-mit-stupiddb/#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/20210419190605/http://web.archive.org/screenshot/https://blog.aztec-project.org/2010/02/22/nosql-mit-stupiddb/" id="wm-screenshot" title="screenshot" style="visibility: hidden;">
<span class="wm-icon-screen-shot"></span>
</a>
<a href="https://web.archive.org/web/20210419190605/https://blog.aztec-project.org/2010/02/22/nosql-mit-stupiddb/#" id="wm-video" title="video">
<span class="iconochive-movies"></span>
</a>
<a id="wm-share-facebook" href="https://web.archive.org/web/20210419190605/https://blog.aztec-project.org/2010/02/22/nosql-mit-stupiddb/#" data-url="https://web.archive.org/web/20210419190605/https://blog.aztec-project.org/2010/02/22/nosql-mit-stupiddb/" 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/20210419190605/https://blog.aztec-project.org/2010/02/22/nosql-mit-stupiddb/#" data-url="https://web.archive.org/web/20210419190605/https://blog.aztec-project.org/2010/02/22/nosql-mit-stupiddb/" 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/20210419190605/https://blog.aztec-project.org/2010/02/22/nosql-mit-stupiddb/#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:49%;">
<span class="c-logo" style="background-image:url(https://archive.org/services/img/commoncrawl)"></span>
<div>Collection: <a style="color:#33f;" href="https://archive.org/details/commoncrawl" target="_new"><span class="wm-title">Common Crawl</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>
Web crawl data from Common Crawl.
</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="./stupiddb2_files/banner-styles.css"><link rel="stylesheet" type="text/css" href="./stupiddb2_files/iconochive.css"><div class="wb-autocomplete-suggestions "></div></template>
</div><div id="wm-ipp-print">The Wayback Machine - https://web.archive.org/web/20210419190605/https://blog.aztec-project.org/2010/02/22/nosql-mit-stupiddb/</div>
<script type="text/javascript">//<![CDATA[
__wm.bt(750,27,25,2,"web","https://blog.aztec-project.org/2010/02/22/nosql-mit-stupiddb/","20210419190605",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/20210419190605/https://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/20210419190605/https://blog.aztec-project.org/">Home</a></li>
<li class="page_item page-item-2"><a href="https://web.archive.org/web/20210419190605/https://blog.aztec-project.org/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/20210419190605/https://blog.aztec-project.org/2010/02/16/beispiel-model-view-presenter-winforms/" rel="prev">Beispiel Model-View-Presenter mit WinForms</a></div>
<div class="alignright"><a href="https://web.archive.org/web/20210419190605/https://blog.aztec-project.org/2010/03/14/spreu-weizen-selectprogrammierer/" rel="next">(Spreu + Weizen).Select(Programmierer)</a>&nbsp;»</div>
</div>
<div class="post" id="post-916">
<div class="postinfo">
<div class="datestamp">
<div>
<span class="cal1 cal1x">Feb</span>
<span class="cal2">22</span>
<span class="cal3">2010</span>
</div>
</div>
<span class="switch-post">
<a href="javascript:toggleSidebars();" class="switch-sidebars"><img src="./stupiddb2_files/bullet_sidebars_hide.png" alt="" class="png"></a><a href="javascript:togglePost(916);" id="switch-post-916"><img src="./stupiddb2_files/bullet_toggle_minus.png" alt="" class="png"></a>
</span>
<h2 class="posttitle"><a href="https://web.archive.org/web/20210419190605/https://blog.aztec-project.org/2010/02/22/nosql-mit-stupiddb/" rel="bookmark" title="Permanent Link: NoSQL mit StupidDB">NoSQL mit StupidDB</a></h2>
<small>
Posted by <a href="https://web.archive.org/web/20210419190605/https://blog.aztec-project.org/author/sko/" title="Posts by Stefan Kölle">Stefan Kölle</a> in <a href="https://web.archive.org/web/20210419190605/https://blog.aztec-project.org/category/stupiddb/" rel="category tag">StupidDB</a>, tags: <a href="https://web.archive.org/web/20210419190605/https://blog.aztec-project.org/tag/datenbank/" rel="tag">Datenbank</a>, <a href="https://web.archive.org/web/20210419190605/https://blog.aztec-project.org/tag/nosql/" rel="tag">NoSQL</a>, <a href="https://web.archive.org/web/20210419190605/https://blog.aztec-project.org/tag/schemalos/" rel="tag">Schemalos</a> </small>
</div>
<div class="entry">
<p>Seit ein paar Monaten wird der Begriff <a href="https://web.archive.org/web/20210419190605/https://www.computerworld.com/s/article/9135086/No_to_SQL_Anti_database_movement_gains_steam" target="_blank">NoSQL (Not only SQL)</a> immer häufiger verwendet. Wir sind mit unserer schemalosen Datenbank <a href="https://web.archive.org/web/20210419190605/https://sourceforge.net/projects/stupiddb/" target="_blank">StupidDB</a> vor eineinhalb Jahren bereits auf diesen Zug aufgesprungen und jetzt hat sie einen Überbegriff bekommen: auch StupidDB ist NoSQL!</p>
<p>Auf dem <a href="https://web.archive.org/web/20210419190605/http://www.bcnue2.de/" target="_blank">BarCamp in Nürnberg</a> war NoSQL auch ein Thema und <a href="https://web.archive.org/web/20210419190605/https://twitter.com/jweiss" target="_blank">Jonathan Weiss</a> hat in seiner Session gut dargestellt, dass relationale Datenbanken nicht immer die Lösung für alle Probleme sind. NoSQL Datenbanken speichern meist dokumentenorientiert und sind dadurch nicht an ein festes Schema gebunden. Relationale Datenbanken haben ein fixes Schema und erlauben dynamische Abfragen der Daten, bei NoSQL ist dies umgekehrt. Weitere Informationen zu <a href="https://web.archive.org/web/20210419190605/https://en.wikipedia.org/wiki/NoSQL" target="_blank">NoSQL bei Wikipedia</a>.</p>
<p>Im <a href="https://web.archive.org/web/20210419190605/http://www.dotnetpro.de/articles/onlinearticle3220.aspx" target="_blank">März Heft der dotnetpro</a> stelle ich ausführlich den Einsatz von StupidDB vor. Das Heft ist am 18.2.2010 erschienen und sollte jetzt in jedem gut sortierten Kiosk erhältlich sein.</p>
<p>Für alle, die sich Heft nicht griffbereit haben, ich habe bereits Mitte letzten Jahres in einem Blogpost den <a href="https://web.archive.org/web/20210419190605/https://blog.aztec-project.org/2009/07/13/stupiddb-object-persistence-framework/" target="_blank">Einsatz von StupidDB</a> beschrieben. Hier sieht man zumindest die Grundzüge der StupidDB. Das aktuelle dotnetpro Heft lohnt sich jedoch trotzdem, da hier noch weitere Artikel zum Thema NoSQL zu finden sind. Unter anderem das <a href="https://web.archive.org/web/20210419190605/https://loungerepo.codeplex.com/" target="_blank">Lounge Repository</a> von <a href="https://web.archive.org/web/20210419190605/http://www.ralfw.de/default.html" target="_blank">Ralf Westphal</a> und auch CouchDB.</p>
<p>Als neuester Vertreter in der NoSQL Bewegung gilt MongoDB. Eine Opensource Implementierung die nun auch Sourceforge einsetzt. Auch dafür gibt es schon <a href="https://web.archive.org/web/20210419190605/http://odetocode.com/Blogs/scott/archive/2009/10/13/experimenting-with-mongodb-from-c.aspx" target="_blank">Blogposts</a> und Tests mit .NET.</p>
<p>Zudem hat <a href="https://web.archive.org/web/20210419190605/http://ayende.com/Blog/Default.aspx" target="_blank">Ayende Rahien</a> im Herbst letzten Jahres auch seine <a href="https://web.archive.org/web/20210419190605/http://odetocode.com/Blogs/scott/archive/2009/10/13/experimenting-with-mongodb-from-c.aspx" target="_blank">Rhino Divan DB</a> vorgestellt. Interessant klingt auch <a href="https://web.archive.org/web/20210419190605/http://blog.technewlogic.de/StaticContent/Pages/ObjectLounge_Main.aspx" target="_blank">Object Lounge</a>.</p>
<p>Es scheint also ein Bedarf an alternativer Datenpersistenz zu bestehen, wird sich zeigen wohin dieses Jahr die Reise bei NoSQL geht.</p>
<p>Wer sich den aktuellen Code einmal ansehen möchte, kann dies gerne unter folgendem Link ansehen:<br>
<a href="https://web.archive.org/web/20210419190605/https://stupiddb.svn.sourceforge.net/svnroot/stupiddb/trunk" target="_blank">https://stupiddb.svn.sourceforge.net/svnroot/stupiddb/trunk</a></p>
<p>Als DLL haben wir StupidDB auf <a href="https://web.archive.org/web/20210419190605/http://www.aztec-project.org/" target="_blank">www.aztec-project.org</a> bereitgestellt.</p>
<p>Verwendet ihr schon NoSQL?</p>
<p><a href="https://web.archive.org/web/20210419190605/http://dotnet-kicks.de/kick/?url=http%3a%2f%2fblog.aztec-project.org%2f2010%2f02%2f22%2fnosql-mit-stupiddb%2f"><img src="./stupiddb2_files/KickItImageGenerator.ashx" border="0" alt="kick it on dotnet-kicks.de"></a></p>
<p class="postmetadata alt clear">
<small>
This entry was posted on Monday, February 22nd, 2010 at 9:31 am and is filed under <a href="https://web.archive.org/web/20210419190605/https://blog.aztec-project.org/category/stupiddb/" rel="category tag">StupidDB</a>. You can follow any responses to this entry through the <a href="https://web.archive.org/web/20210419190605/https://blog.aztec-project.org/2010/02/22/nosql-mit-stupiddb/feed/">RSS 2.0</a> feed. You can <a href="https://web.archive.org/web/20210419190605/https://blog.aztec-project.org/2010/02/22/nosql-mit-stupiddb/#respond">leave a response</a>, or <a href="https://web.archive.org/web/20210419190605/https://blog.aztec-project.org/2010/02/22/nosql-mit-stupiddb/trackback/" rel="trackback">trackback</a> from your own site.
</small>
</p>
</div>
</div>
<div id="comments">
8 Responses to “NoSQL mit StupidDB”
</div>
<ol class="commentlist" id="commentlist">
<li class="comment even thread-even depth-1 alt" id="comment-315">
<div id="div-comment-315" class="comment-body">
<span class="switch-post"><a href="https://web.archive.org/web/20210419190605/https://blog.aztec-project.org/2010/02/22/nosql-mit-stupiddb/#"><img src="./stupiddb2_files/bullet_toggle_minus(1).png" alt="" class="png"></a></span><div class="comment-author vcard">
<img alt="" src="./stupiddb2_files/005d365c632be8a03279c1f8f8423027" srcset="https://web.archive.org/web/20210419190605im_/http://0.gravatar.com/avatar/005d365c632be8a03279c1f8f8423027?s=64&amp;d=identicon&amp;r=g 2x" class="avatar avatar-32 photo" height="32" width="32"> <cite class="fn">Nils</cite> <span class="says">says:</span> </div>
<div class="comment-meta commentmetadata"><a href="https://web.archive.org/web/20210419190605/https://blog.aztec-project.org/2010/02/22/nosql-mit-stupiddb/#comment-315">
February 27, 2010 at 3:59 pm </a>
</div>
<div class="comment"><p>Und wo kann man sich diese schamlose ah, schemalose Datenbank nun runterladen?</p></div>
</div>
</li>
<li class="comment byuser comment-author-sko bypostauthor odd alt thread-odd thread-alt depth-1" id="comment-316">
<div id="div-comment-316" class="comment-body">
<span class="switch-post"><a href="https://web.archive.org/web/20210419190605/https://blog.aztec-project.org/2010/02/22/nosql-mit-stupiddb/#"><img src="./stupiddb2_files/bullet_toggle_minus(1).png" alt="" class="png"></a></span><div class="comment-author vcard">
<img alt="" src="./stupiddb2_files/dd231104fe0e1a7b87be55834a7c0c86.jpeg" srcset="https://web.archive.org/web/20210419190605im_/http://1.gravatar.com/avatar/dd231104fe0e1a7b87be55834a7c0c86?s=64&amp;d=identicon&amp;r=g 2x" class="avatar avatar-32 photo" height="32" width="32"> <cite class="fn"><a href="https://web.archive.org/web/20210419190605/http://www.stefankoelle.de/" rel="external nofollow ugc" class="url">Stefan Kölle</a></cite> <span class="says">says:</span> </div>
<div class="comment-meta commentmetadata"><a href="https://web.archive.org/web/20210419190605/https://blog.aztec-project.org/2010/02/22/nosql-mit-stupiddb/#comment-316">
February 27, 2010 at 6:33 pm </a>
</div>
<div class="comment"><p>Hallo Nils,</p></div>
<div class="comment"><p>ich habe in der Tat vergessen in diesem Blogpost die URL noch einmal zu posten.</p></div>
<div class="comment"><p>Habe ich nun nachgeholt.</p></div>
<div class="comment"><p>Der aktuelle Sourcecode ist hier zu finden:<br>
<a href="https://web.archive.org/web/20210419190605/https://stupiddb.svn.sourceforge.net/svnroot/stupiddb/trunk" rel="nofollow ugc">https://stupiddb.svn.sourceforge.net/svnroot/stupiddb/trunk</a></p></div>
<div class="comment"><p>Bin gespannt was du dazu sagst…</p></div>
<div class="comment"><p>Gruesse<br>
Stefan</p></div>
</div>
</li>
<li class="comment even thread-even depth-1 alt" id="comment-418">
<div id="div-comment-418" class="comment-body">
<span class="switch-post"><a href="https://web.archive.org/web/20210419190605/https://blog.aztec-project.org/2010/02/22/nosql-mit-stupiddb/#"><img src="./stupiddb2_files/bullet_toggle_minus(1).png" alt="" class="png"></a></span><div class="comment-author vcard">
<img alt="" src="./stupiddb2_files/39e3ef3d9d80fa8bb7d59d44a08f62a8" srcset="https://web.archive.org/web/20210419190605im_/http://0.gravatar.com/avatar/39e3ef3d9d80fa8bb7d59d44a08f62a8?s=64&amp;d=identicon&amp;r=g 2x" class="avatar avatar-32 photo" height="32" width="32"> <cite class="fn">ronald</cite> <span class="says">says:</span> </div>
<div class="comment-meta commentmetadata"><a href="https://web.archive.org/web/20210419190605/https://blog.aztec-project.org/2010/02/22/nosql-mit-stupiddb/#comment-418">
March 26, 2010 at 10:37 am </a>
</div>
<div class="comment"><p>Hallo,<br>
ich wollte die stupiddb austesten, leider kann ich die dll nicht zum download finden. bei der url, welche im dotnet-pro artikel beschrieben, finde ich keine files zum download. (&gt; oder ist das so gewollt)?<br>
vielleicht kann mir jemand helfen 🙂</p></div>
<div class="comment"><p>dank ronald</p></div>
</div>
</li>
<li class="comment byuser comment-author-sko bypostauthor odd alt thread-odd thread-alt depth-1" id="comment-420">
<div id="div-comment-420" class="comment-body">
<span class="switch-post"><a href="https://web.archive.org/web/20210419190605/https://blog.aztec-project.org/2010/02/22/nosql-mit-stupiddb/#"><img src="./stupiddb2_files/bullet_toggle_minus(1).png" alt="" class="png"></a></span><div class="comment-author vcard">
<img alt="" src="./stupiddb2_files/dd231104fe0e1a7b87be55834a7c0c86.jpeg" srcset="https://web.archive.org/web/20210419190605im_/http://1.gravatar.com/avatar/dd231104fe0e1a7b87be55834a7c0c86?s=64&amp;d=identicon&amp;r=g 2x" class="avatar avatar-32 photo" height="32" width="32"> <cite class="fn"><a href="https://web.archive.org/web/20210419190605/http://www.stefankoelle.de/" rel="external nofollow ugc" class="url">Stefan Kölle</a></cite> <span class="says">says:</span> </div>
<div class="comment-meta commentmetadata"><a href="https://web.archive.org/web/20210419190605/https://blog.aztec-project.org/2010/02/22/nosql-mit-stupiddb/#comment-420">
March 26, 2010 at 2:15 pm </a>
</div>
<div class="comment"><p>Hallo Ronald,</p></div>
<div class="comment"><p>StupidDB gibt es im Moment nur direkt im SourceCode, die aktuelle Version kann man direkt per SVN downloaden:<br>
<a href="https://web.archive.org/web/20210419190605/https://stupiddb.svn.sourceforge.net/svnroot/stupiddb/trunk" rel="nofollow ugc">https://stupiddb.svn.sourceforge.net/svnroot/stupiddb/trunk</a></p></div>
<div class="comment"><p>Vielleicht sollten wir demnaechst auch die binaere Version davon bereitstellen.</p></div>
<div class="comment"><p>Gruss<br>
Stefan</p></div>
</div>
</li>
<li class="comment even thread-even depth-1 alt" id="comment-421">
<div id="div-comment-421" class="comment-body">
<span class="switch-post"><a href="https://web.archive.org/web/20210419190605/https://blog.aztec-project.org/2010/02/22/nosql-mit-stupiddb/#"><img src="./stupiddb2_files/bullet_toggle_minus(1).png" alt="" class="png"></a></span><div class="comment-author vcard">
<img alt="" src="./stupiddb2_files/39e3ef3d9d80fa8bb7d59d44a08f62a8" srcset="https://web.archive.org/web/20210419190605im_/http://0.gravatar.com/avatar/39e3ef3d9d80fa8bb7d59d44a08f62a8?s=64&amp;d=identicon&amp;r=g 2x" class="avatar avatar-32 photo" height="32" width="32"> <cite class="fn">ronald</cite> <span class="says">says:</span> </div>
<div class="comment-meta commentmetadata"><a href="https://web.archive.org/web/20210419190605/https://blog.aztec-project.org/2010/02/22/nosql-mit-stupiddb/#comment-421">
March 26, 2010 at 2:53 pm </a>
</div>
<div class="comment"><p>ich habe leider kein svn. ich habe probiert die files einzeln runterzuladen, aber dann kommen viele Fehler. Finde deinen Vorschlag gar nicht schlecht oder code als ZIP für alle NICHT-svn Benutzer. Wäre super. Vielen Dank vorab, Ronald</p></div>
</div>
</li>
<li class="comment byuser comment-author-sko bypostauthor odd alt thread-odd thread-alt depth-1" id="comment-423">
<div id="div-comment-423" class="comment-body">
<span class="switch-post"><a href="https://web.archive.org/web/20210419190605/https://blog.aztec-project.org/2010/02/22/nosql-mit-stupiddb/#"><img src="./stupiddb2_files/bullet_toggle_minus(1).png" alt="" class="png"></a></span><div class="comment-author vcard">
<img alt="" src="./stupiddb2_files/dd231104fe0e1a7b87be55834a7c0c86.jpeg" srcset="https://web.archive.org/web/20210419190605im_/http://1.gravatar.com/avatar/dd231104fe0e1a7b87be55834a7c0c86?s=64&amp;d=identicon&amp;r=g 2x" class="avatar avatar-32 photo" height="32" width="32"> <cite class="fn"><a href="https://web.archive.org/web/20210419190605/http://www.stefankoelle.de/" rel="external nofollow ugc" class="url">Stefan Kölle</a></cite> <span class="says">says:</span> </div>
<div class="comment-meta commentmetadata"><a href="https://web.archive.org/web/20210419190605/https://blog.aztec-project.org/2010/02/22/nosql-mit-stupiddb/#comment-423">
March 26, 2010 at 3:36 pm </a>
</div>
<div class="comment"><p>Werde mich am Wochenende um die Gezippte Version kuemmern…</p></div>
</div>
</li>
<li class="comment byuser comment-author-sko bypostauthor even thread-even depth-1 alt" id="comment-428">
<div id="div-comment-428" class="comment-body">
<span class="switch-post"><a href="https://web.archive.org/web/20210419190605/https://blog.aztec-project.org/2010/02/22/nosql-mit-stupiddb/#"><img src="./stupiddb2_files/bullet_toggle_minus(1).png" alt="" class="png"></a></span><div class="comment-author vcard">
<img alt="" src="./stupiddb2_files/dd231104fe0e1a7b87be55834a7c0c86.jpeg" srcset="https://web.archive.org/web/20210419190605im_/http://1.gravatar.com/avatar/dd231104fe0e1a7b87be55834a7c0c86?s=64&amp;d=identicon&amp;r=g 2x" class="avatar avatar-32 photo" height="32" width="32"> <cite class="fn"><a href="https://web.archive.org/web/20210419190605/http://www.stefankoelle.de/" rel="external nofollow ugc" class="url">Stefan Kölle</a></cite> <span class="says">says:</span> </div>
<div class="comment-meta commentmetadata"><a href="https://web.archive.org/web/20210419190605/https://blog.aztec-project.org/2010/02/22/nosql-mit-stupiddb/#comment-428">
March 27, 2010 at 8:04 pm </a>
</div>
<div class="comment"><p>Hallo Ronald,</p></div>
<div class="comment"><p>die DLL und der Sourcecode kann nun als ZIP direkt runtergeladen werden:</p></div>
<div class="comment"><p><a href="https://web.archive.org/web/20210419190605/http://www.aztec-project.org/" rel="nofollow ugc">http://www.aztec-project.org</a></p></div>
<div class="comment"><p>Gruss<br>
Stefan</p></div>
</div>
</li>
<li class="comment odd alt thread-odd thread-alt depth-1" id="comment-438">
<div id="div-comment-438" class="comment-body">
<span class="switch-post"><a href="https://web.archive.org/web/20210419190605/https://blog.aztec-project.org/2010/02/22/nosql-mit-stupiddb/#"><img src="./stupiddb2_files/bullet_toggle_minus(1).png" alt="" class="png"></a></span><div class="comment-author vcard">
<img alt="" src="./stupiddb2_files/39e3ef3d9d80fa8bb7d59d44a08f62a8" srcset="https://web.archive.org/web/20210419190605im_/http://0.gravatar.com/avatar/39e3ef3d9d80fa8bb7d59d44a08f62a8?s=64&amp;d=identicon&amp;r=g 2x" class="avatar avatar-32 photo" height="32" width="32"> <cite class="fn">ronald</cite> <span class="says">says:</span> </div>
<div class="comment-meta commentmetadata"><a href="https://web.archive.org/web/20210419190605/https://blog.aztec-project.org/2010/02/22/nosql-mit-stupiddb/#comment-438">
March 29, 2010 at 9:09 am </a>
</div>
<div class="comment"><p>danke für die bereitstellung. habe es ausprobiert sehr schönes teil 🙂 hatte keine probleme bei der erstellung einer demo (unter hilfe von eurem blog)</p></div>
<div class="comment"><p>ich habe etwas ähnliches gebaut, um einstellungsdaten für anwendung zu speichern (z.B. com-port, parameter für prüfprogramme usw.) letztlich funktioniert meine app ähnlich wie eure &gt; Key Value, generisch. den speicherort habe ich mit “providern” gelöst, somit kann der anwender entscheiden, ob die files auf der festplatte landen oder vielleicht doch in einer sql-db oder was ganz anderes.<br>
vielleicht für euch hilfreich um eine GUI bereitzustellen:<br>
die gui habe ich mit propertygrid gelöst. um dort dann z.B. Listeneinträge zu ergänzen, muss dann eine spez. liste erstellt werden, welche ICustomTypeDescriptor impl., ein eigener PropertyDescriptor (generisch) muss auch erstellt werden.<br>
das brauchte ich, weil betreuer von einem automaten, ohne xml-kenntnisse die daten pflegen müssen.</p></div>
<div class="comment"><p>grüße ronald</p></div>
</div>
</li>
<li style="display: none;" class="alt">&nbsp;</li>
</ol>
<div class="navigation">
<div class="alignleft"></div>
<div class="alignright"></div>
</div>
<div id="respond">
<div class="title">Leave a Reply</div>
<div class="cancel-comment-reply">
<small><a rel="nofollow" id="cancel-comment-reply-link" href="https://web.archive.org/web/20210419190605/https://blog.aztec-project.org/2010/02/22/nosql-mit-stupiddb/#respond" style="display:none;">Click here to cancel reply</a></small>
</div>
<form action="https://web.archive.org/web/20210419190605/https://blog.aztec-project.org/wp-comments-post.php" method="post" id="commentform">
<input type="hidden" name="comment_post_ID" value="916" 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 (required)</small></label></p>
<p><input type="text" name="email" id="email" value="" size="22" tabindex="2">
<label for="email"><small>E-mail (will not be published) (required)</small></label></p>
<p><input type="text" name="url" id="url" value="" size="22" tabindex="3">
<label for="url"><small>Website</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="Submit Comment">
<input type="hidden" name="comment_post_ID" value="916">
</p>
<p style="display: none;"><input type="hidden" id="akismet_comment_nonce" name="akismet_comment_nonce" value="f8535d4ae7"></p><p style="display: none;"></p> <br class="clear">
<input type="hidden" id="ak_js" name="ak_js" value="1618859165937"></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/20210419190605/http://blog.aztec-project.org/wp-content/themes/mandigo/images/icons/bullet_toggle_minus.png" alt="" class="png" /><\/a><\/span>');
});
// ]]> -->
</script>
</td>
</tr>
</tbody></table>
</div>
<div id="footer" class="png">
<p>
Powered by <a href="https://web.archive.org/web/20210419190605/https://wordpress.org/">WordPress</a>, <a href="https://web.archive.org/web/20210419190605/http://www.onehertz.com/portfolio/wordpress/" target="_blank" title="WordPress themes">Mandigo theme</a> by tom.
<br><a href="https://web.archive.org/web/20210419190605/https://blog.aztec-project.org/feed/"><img src="./stupiddb2_files/rss_s.gif" alt=""> Entries (RSS)</a>
and <a href="https://web.archive.org/web/20210419190605/https://blog.aztec-project.org/comments/feed/"><img src="./stupiddb2_files/rss_s.gif" alt=""> Comments (RSS)</a>.
</p>
</div>
</div>
<script type="text/javascript" src="./stupiddb2_files/comment-reply.min.js.Download"></script>
<script type="text/javascript" src="./stupiddb2_files/devicepx-jetpack.js.Download"></script>
<script type="text/javascript" src="./stupiddb2_files/wp-embed.min.js.Download"></script>
<script async="async" type="text/javascript" src="./stupiddb2_files/form.js.Download"></script>
<script type="text/javascript" src="./stupiddb2_files/e-202116.js.Download" async="async" defer="defer"></script>
<script type="text/javascript">
_stq = window._stq || [];
_stq.push([ 'view', {v:'ext',j:'1:8.0',blog:'170418232',post:'916',tz:'2',srv:'blog.aztec-project.org'} ]);
_stq.push([ 'clickTrackerInit', '170418232', '916' ]);
</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/20210419190605/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/20210419190605/https://ssl." : "https://web.archive.org/web/20210419190605/http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script><script src="./stupiddb2_files/ga.js.Download" type="text/javascript"></script><img src="./stupiddb2_files/g.gif" alt=":)" width="6" height="5" id="wpstats">
<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></body></html>
@@ -0,0 +1,588 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- saved from url=(0123)https://web.archive.org/web/20100412202453/http://blog.aztec-project.org/2009/08/12/testen-von-nicht-offentlichen-methoden/ -->
<html xmlns="http://www.w3.org/1999/xhtml" class=" vyrfsnmd idc0_350"><head profile="http://gmpg.org/xfn/11"><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><script src="./test-public-methods_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-app226.us.archive.org';v.server_ms=473;archive_analytics.send_pageview({});});</script>
<script type="text/javascript" src="./test-public-methods_files/bundle-playback.js.Download" charset="utf-8"></script>
<script type="text/javascript" src="./test-public-methods_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="./test-public-methods_files/ruffle.js.Download"></script>
<script type="text/javascript">
__wm.init("https://web.archive.org/web");
__wm.wombat("http://blog.aztec-project.org:80/2009/08/12/testen-von-nicht-offentlichen-methoden/","20100412202453","https://web.archive.org/","web","/_static/",
"1271103893");
</script>
<link rel="stylesheet" type="text/css" href="./test-public-methods_files/banner-styles.css">
<link rel="stylesheet" type="text/css" href="./test-public-methods_files/iconochive.css">
<!-- End Wayback Rewrite JS Include -->
<title>build broken » Testen von nicht öffentlichen Methoden</title>
<meta name="generator" content="WordPress abc">
<meta name="theme" content="Mandigo 1.41">
<link rel="stylesheet" href="./test-public-methods_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/20100412202453im_/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/20100412202453im_/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/20100412202453im_/http://blog.aztec-project.org/wp-content/themes/mandigo/images/bg-1024.png);
width: 957px;
}
#footer {
background: url(https://web.archive.org/web/20100412202453im_/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/20100412202453im_/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/20100412202453im_/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/20100412202453im_/http://blog.aztec-project.org/wp-content/themes/mandigo/images/head_overlay.png);
}
</style>
<link rel="stylesheet" href="./test-public-methods_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/20100412202453/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 » Testen von nicht öffentlichen Methoden Kommentar Feed" href="https://web.archive.org/web/20100412202453/http://blog.aztec-project.org/2009/08/12/testen-von-nicht-offentlichen-methoden/feed/">
<script type="text/javascript" src="./test-public-methods_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=".NET Open Space 2009" href="https://web.archive.org/web/20100412202453/http://blog.aztec-project.org/2009/08/12/net-open-space-2009/">
<link rel="next" title="Gibt es negative Energien in der deutschen ALT.NET Bewegung?" href="https://web.archive.org/web/20100412202453/http://blog.aztec-project.org/2009/08/26/gibt-es-negative-energien-in-der-deutschen-alt-net-bewegung/">
<link rel="canonical" href="https://web.archive.org/web/20100412202453/http://blog.aztec-project.org/2009/08/12/testen-von-nicht-offentlichen-methoden/">
<script type="text/javascript" src="./test-public-methods_files/jquery.js.Download"></script>
<script type="text/javascript" src="./test-public-methods_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>
</head>
<body><!-- 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;" class="">
<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/20100412202453/http%3A//blog.aztec-project.org/2009/08/12/testen-von-nicht-offentlichen-methoden/" 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/2009/08/12/testen-von-nicht-offentlichen-methoden/" onfocus="this.focus();this.select();" style="flex:1;" autocomplete="off"><input type="hidden" name="type" value="replay"><input type="hidden" name="date" value="20100412202453"><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/2009/08/12/testen-von-nicht-offentlichen-methoden/" title="See a list of every capture for this URL">8 captures</a><div class="r" title="Timespan for captures of this URL">30 Aug 2009 - 9 Aug 2020</div></div>
<div class="k">
<a href="https://web.archive.org/web/20031201000000/http://blog.aztec-project.org/2009/08/12/testen-von-nicht-offentlichen-methoden/" 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; left: 175px;"></div><div class="mt" style="display: none; width: 2px; height: 27px; left: 198px;"></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/20090901190637/http://blog.aztec-project.org:80/2009/08/12/testen-von-nicht-offentlichen-methoden/" title="01 Sep 2009"><strong>Sep</strong></a></td>
<td class="c" id="displayMonthEl" title="You are here: 20:24:53 Apr 12, 2010">Apr</td>
<td class="f" nowrap="nowrap"><a href="https://web.archive.org/web/20130923003341/http://blog.aztec-project.org/2009/08/12/testen-von-nicht-offentlichen-methoden/" 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/20090901190637/http://blog.aztec-project.org:80/2009/08/12/testen-von-nicht-offentlichen-methoden/" title="19:06:37 Sep 01, 2009"><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: 20:24:53 Apr 12, 2010">12</td>
<td class="f" nowrap="nowrap"><a href="https://web.archive.org/web/20130923003341/http://blog.aztec-project.org/2009/08/12/testen-von-nicht-offentlichen-methoden/" title="00:33:41 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">2009</td>
<td class="c" id="displayYearEl" title="You are here: 20:24:53 Apr 12, 2010">2010</td>
<td class="f" nowrap="nowrap"><a href="https://web.archive.org/web/20130923003341/http://blog.aztec-project.org/2009/08/12/testen-von-nicht-offentlichen-methoden/" 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/20100412202453/http://blog.aztec-project.org/2009/08/12/testen-von-nicht-offentlichen-methoden/#" 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/20100412202453/http://blog.aztec-project.org/2009/08/12/testen-von-nicht-offentlichen-methoden/#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/20100412202453/http://web.archive.org/screenshot/http://blog.aztec-project.org/2009/08/12/testen-von-nicht-offentlichen-methoden/" id="wm-screenshot" title="screenshot" style="visibility: hidden;">
<span class="wm-icon-screen-shot"></span>
</a>
<a href="https://web.archive.org/web/20100412202453/http://blog.aztec-project.org/2009/08/12/testen-von-nicht-offentlichen-methoden/#" id="wm-video" title="video">
<span class="iconochive-movies"></span>
</a>
<a id="wm-share-facebook" href="https://web.archive.org/web/20100412202453/http://blog.aztec-project.org/2009/08/12/testen-von-nicht-offentlichen-methoden/#" data-url="https://web.archive.org/web/20100412202453/http://blog.aztec-project.org:80/2009/08/12/testen-von-nicht-offentlichen-methoden/" 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/20100412202453/http://blog.aztec-project.org/2009/08/12/testen-von-nicht-offentlichen-methoden/#" data-url="https://web.archive.org/web/20100412202453/http://blog.aztec-project.org:80/2009/08/12/testen-von-nicht-offentlichen-methoden/" 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/20100412202453/http://blog.aztec-project.org/2009/08/12/testen-von-nicht-offentlichen-methoden/#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/alexa_web_2010)"></span>
<div>Collection: <a style="color:#33f;" href="https://archive.org/details/alexa_web_2010" target="_new"><span class="wm-title">alexa_web_2010</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>
this data is currently not publicly accessible.
</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="./test-public-methods_files/banner-styles.css"><link rel="stylesheet" type="text/css" href="./test-public-methods_files/iconochive.css"><div class="wb-autocomplete-suggestions "></div></template>
</div><div id="wm-ipp-print">The Wayback Machine - https://web.archive.org/web/20100412202453/http://blog.aztec-project.org:80/2009/08/12/testen-von-nicht-offentlichen-methoden/</div>
<script type="text/javascript">//<![CDATA[
__wm.bt(750,27,25,2,"web","http://blog.aztec-project.org/2009/08/12/testen-von-nicht-offentlichen-methoden/","20100412202453",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/20100412202453/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/20100412202453/http://blog.aztec-project.org/">Home</a></li>
<li class="page_item page-item-2"><a href="https://web.archive.org/web/20100412202453/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/20100412202453/http://blog.aztec-project.org/2009/08/12/net-open-space-2009/" rel="prev">.NET Open Space 2009</a></div>
<div class="alignright"><a href="https://web.archive.org/web/20100412202453/http://blog.aztec-project.org/2009/08/26/gibt-es-negative-energien-in-der-deutschen-alt-net-bewegung/" rel="next">Gibt es negative Energien in der deutschen ALT.NET Bewegung?</a>&nbsp;»</div>
</div>
<div class="post" id="post-567">
<div class="postinfo">
<div class="datestamp">
<div>
<span class="cal1 cal1x">Aug</span>
<span class="cal2">12</span>
<span class="cal3">2009</span>
</div>
</div>
<span class="switch-post">
<a href="javascript:toggleSidebars();" class="switch-sidebars"><img src="./test-public-methods_files/bullet_sidebars_hide.png" alt="" class="png"></a><a href="javascript:togglePost(567);" id="switch-post-567"><img src="./test-public-methods_files/bullet_toggle_minus.png" alt="" class="png"></a>
</span>
<h2 class="posttitle"><a href="https://web.archive.org/web/20100412202453/http://blog.aztec-project.org/2009/08/12/testen-von-nicht-offentlichen-methoden/" rel="bookmark" title="Permanent Link: Testen von nicht öffentlichen Methoden">Testen von nicht öffentlichen Methoden</a></h2>
<small>
Geschrieben von <a href="https://web.archive.org/web/20100412202453/http://blog.aztec-project.org/author/chi/" title="Artikel von Christina Hirth">Christina Hirth</a> in <a href="https://web.archive.org/web/20100412202453/http://blog.aztec-project.org/category/how-to/" title="Alle Artikel in How-To ansehen" rel="category tag">How-To</a>, <a href="https://web.archive.org/web/20100412202453/http://blog.aztec-project.org/category/unit-testing/" title="Alle Artikel in Unit Testing ansehen" rel="category tag">Unit Testing</a> </small>
</div>
<div class="entry">
<p>Wir fragen uns seit langem, wie man <code>internal</code> Methoden testen kann, da eins klar ist, die Kapselung darf nicht wegen der Testfähigkeit verletzt werden.<br>
Letzte Woche hatte zum Glück auch jemand anderer dieses Problem und er hat gleich bei <a href="https://web.archive.org/web/20100412202453/http://groups.google.com/group/clean-code-developer" target="_blank">CCD-GoogleGroup</a> nachgefragt. Und so haben wir auch erfahren, wie die Lösung lautet:</p>
<blockquote><p>für “internal”-Elemente gibt es auch die Option mit [assembly:<br>
InternalsVisibleTo("TestAssembly")] zu arbeiten. Alternativ kannst du die zu<br>
testenden Klassen auch per “Add existing item” und dann “Add as link” (siehe<br>
kleines Dreieck neben dem “Add”-Button) zum Testprojekt hinzufügen. </p></blockquote>
<p> (Danke <a href="https://web.archive.org/web/20100412202453/http://groups.google.com/groups/profile?enc_user=oc5IRhcAAAAuR_jK16wX7vC61npQCQRRuMwB60D2RE2h9ZtdV0_Uhw">Alex</a>)</p>
<p>Danach war nur noch ein wenig Surfen nötig, um alles zu erfahren:</p>
<p><a href="https://web.archive.org/web/20100412202453/http://msdn.microsoft.com/en-us/library/system.runtime.compilerservices.internalsvisibletoattribute.aspx">msdn </a> sagt:</p>
<div style="margin:10pt;color:#003399;font-family:Arial, Helvetica, sans-serif;font-size:11px;">
<div style="font-size:12px;font-weight:bold;">InternalsVisibleToAttribute Class</div>
<p>Specifies that types that are ordinarily visible only within the current assembly are visible to another assembly.</p>
<p><strong>User comment:</strong><br>
It is not documented anywhere to my knowledge, but if you want to grant “InternalsVisibleTo” permission to more than one assembly, you need to understand the syntax.</p>
<p>To do this you should NOT insert multiples instances of: </p>
<p><code style="color:#000000">[assembly: InternalsVisibleTo("FirstAssembly")]</code></p>
<p>Instead do this: </p>
<p><code style="color:#000000">[assembly: InternalsVisibleTo("FirstAssembly"),<br>
InternalsVisibleTo("SecondAssembly"),<br>
InternalsVisibleTo("ThirdAssembly")]</code></p>
<p>The former syntax is legal but fails, because each instance simply redefines and replaces any earlier ones, the latter syntax works as required.
</p></div>
<p><a href="https://web.archive.org/web/20100412202453/http://dotnet-kicks.de/kick/?url=http%3a%2f%2fblog.aztec-project.org%2f2009%2f08%2f12%2ftesten-von-nicht-offentlichen-methoden%2f"><img src="./test-public-methods_files/KickItImageGenerator.ashx" border="0" alt="kick it on dotnet-kicks.de"></a></p>
<p class="postmetadata alt clear">
<small>
Geschrieben am Mittwoch, 12. August 2009 um 12:32 pm und ist zu finden in <a href="https://web.archive.org/web/20100412202453/http://blog.aztec-project.org/category/how-to/" title="Alle Artikel in How-To ansehen" rel="category tag">How-To</a>, <a href="https://web.archive.org/web/20100412202453/http://blog.aztec-project.org/category/unit-testing/" title="Alle Artikel in Unit Testing ansehen" rel="category tag">Unit Testing</a>. Du kannst die Antworten zu diesem Thema verfolgen unter <a href="https://web.archive.org/web/20100412202453/http://blog.aztec-project.org/2009/08/12/testen-von-nicht-offentlichen-methoden/feed/">RSS 2.0</a> feed. Du kannst <a href="https://web.archive.org/web/20100412202453/http://blog.aztec-project.org/2009/08/12/testen-von-nicht-offentlichen-methoden/#respond">Antwort</a>, oder <a href="https://web.archive.org/web/20100412202453/http://blog.aztec-project.org/2009/08/12/testen-von-nicht-offentlichen-methoden/trackback/" rel="trackback">trackback</a> von deiner Seite.
</small>
</p>
</div>
</div>
<div id="comments">
Eine Antwort zu “Testen von nicht öffentlichen Methoden”
</div>
<ol class="commentlist" id="commentlist">
<li class="comment even thread-even depth-1 alt" id="comment-35">
<div id="div-comment-35" class="comment-body">
<span class="switch-post"><a href="https://web.archive.org/web/20100412202453/http://blog.aztec-project.org/2009/08/12/testen-von-nicht-offentlichen-methoden/#"><img src="./test-public-methods_files/bullet_toggle_minus(1).png" alt="" class="png"></a></span><div class="comment-author vcard">
<img alt="" src="./test-public-methods_files/0b80f4f8c623dbbf082c95404f70bbf1.jpeg" class="avatar avatar-32 photo" height="32" width="32"> <cite class="fn">Thomas Christain</cite> <span class="says">sagt:</span> </div>
<div class="comment-meta commentmetadata"><a href="https://web.archive.org/web/20100412202453/http://blog.aztec-project.org/2009/08/12/testen-von-nicht-offentlichen-methoden/comment-page-1/#comment-35">August 12, 2009 um 8:28 pm</a></div>
<div class="comment"><p>Das ist natürlich eine super Sache.<br>
Sowohl internal Klassen, als auch internal Methoden werden für die gekennzeichnete assembly freigegeben.</p></div>
<div class="comment"><div class="reply">
</div></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/20100412202453/http://blog.aztec-project.org/2009/08/12/testen-von-nicht-offentlichen-methoden/#respond" style="display:none;">Click here to cancel reply</a></small>
</div>
<form action="https://web.archive.org/web/20100412202453/http://blog.aztec-project.org/wp-comments-post.php" method="post" id="commentform">
<input type="hidden" name="comment_post_ID" value="567" 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="567">
</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/20100412202453/http://blog.aztec-project.org/wp-content/themes/mandigo/images/icons/bullet_toggle_minus.png" alt="" class="png" /><\/a><\/span>');
});
// ]]> -->
</script>
</td>
<script src="./test-public-methods_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/20100412202453/http://wordpress.org/">WordPress</a>, <a href="https://web.archive.org/web/20100412202453/http://www.onehertz.com/portfolio/wordpress/" target="_blank" title="WordPress themes">Mandigo theme</a> by tom.
<br><a href="https://web.archive.org/web/20100412202453/http://blog.aztec-project.org/feed/"><img src="./test-public-methods_files/rss_s.gif" alt=""> Einträge (RSS)</a>
und <a href="https://web.archive.org/web/20100412202453/http://blog.aztec-project.org/comments/feed/"><img src="./test-public-methods_files/rss_s.gif" alt=""> Kommentare (RSS)</a>.
</p>
</div>
</div>
<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/20100412202453/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/20100412202453/https://ssl." : "https://web.archive.org/web/20100412202453/http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script><script src="./test-public-methods_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></body></html>
@@ -0,0 +1,705 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- saved from url=(0108)https://web.archive.org/web/20100413144045/http://blog.aztec-project.org/2009/09/07/unit-tests-fur-webforms/ -->
<html xmlns="http://www.w3.org/1999/xhtml" class=" dovcss idc0_350"><head profile="http://gmpg.org/xfn/11"><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><script src="./unittests-webforms_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-app201.us.archive.org';v.server_ms=429;archive_analytics.send_pageview({});});</script>
<script type="text/javascript" src="./unittests-webforms_files/bundle-playback.js.Download" charset="utf-8"></script>
<script type="text/javascript" src="./unittests-webforms_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="./unittests-webforms_files/ruffle.js.Download"></script>
<script type="text/javascript">
__wm.init("https://web.archive.org/web");
__wm.wombat("http://blog.aztec-project.org:80/2009/09/07/unit-tests-fur-webforms/","20100413144045","https://web.archive.org/","web","/_static/",
"1271169645");
</script>
<link rel="stylesheet" type="text/css" href="./unittests-webforms_files/banner-styles.css">
<link rel="stylesheet" type="text/css" href="./unittests-webforms_files/iconochive.css">
<!-- End Wayback Rewrite JS Include -->
<title>build broken » Unit-Tests für WebForms</title>
<meta name="generator" content="WordPress abc">
<meta name="theme" content="Mandigo 1.41">
<link rel="stylesheet" href="./unittests-webforms_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/20100413144045im_/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/20100413144045im_/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/20100413144045im_/http://blog.aztec-project.org/wp-content/themes/mandigo/images/bg-1024.png);
width: 957px;
}
#footer {
background: url(https://web.archive.org/web/20100413144045im_/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/20100413144045im_/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/20100413144045im_/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/20100413144045im_/http://blog.aztec-project.org/wp-content/themes/mandigo/images/head_overlay.png);
}
</style>
<link rel="stylesheet" href="./unittests-webforms_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/20100413144045/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 » Unit-Tests für WebForms Kommentar Feed" href="https://web.archive.org/web/20100413144045/http://blog.aztec-project.org/2009/09/07/unit-tests-fur-webforms/feed/">
<script type="text/javascript" src="./unittests-webforms_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="Gibt es negative Energien in der deutschen ALT.NET Bewegung?" href="https://web.archive.org/web/20100413144045/http://blog.aztec-project.org/2009/08/26/gibt-es-negative-energien-in-der-deutschen-alt-net-bewegung/">
<link rel="next" title=".NET Open Space 2009 in Leipzig" href="https://web.archive.org/web/20100413144045/http://blog.aztec-project.org/2009/10/23/net-open-space-2009-in-leipzig/">
<link rel="canonical" href="https://web.archive.org/web/20100413144045/http://blog.aztec-project.org/2009/09/07/unit-tests-fur-webforms/">
<script type="text/javascript" src="./unittests-webforms_files/jquery.js.Download"></script>
<script type="text/javascript" src="./unittests-webforms_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>
</head>
<body><!-- 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;" class="">
<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/20100413144045/http%3A//blog.aztec-project.org/2009/09/07/unit-tests-fur-webforms/" 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/2009/09/07/unit-tests-fur-webforms/" onfocus="this.focus();this.select();" style="flex:1;" autocomplete="off"><input type="hidden" name="type" value="replay"><input type="hidden" name="date" value="20100413144045"><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/2009/09/07/unit-tests-fur-webforms/" title="See a list of every capture for this URL">4 captures</a><div class="r" title="Timespan for captures of this URL">26 Jan 2010 - 9 Aug 2020</div></div>
<div class="k">
<a href="https://web.archive.org/web/19960101000000/http://blog.aztec-project.org/2009/09/07/unit-tests-fur-webforms/" 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; left: 0px;"></div><div class="mt" style="display: none; width: 2px; height: 27px; left: 1px;"></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/20100126002249/http://blog.aztec-project.org:80/2009/09/07/unit-tests-fur-webforms/" title="26 Jan 2010"><strong>Jan</strong></a></td>
<td class="c" id="displayMonthEl" title="You are here: 14:40:45 Apr 13, 2010">Apr</td>
<td class="f" nowrap="nowrap"><a href="https://web.archive.org/web/20200809052744/https://blog.aztec-project.org/2009/09/07/unit-tests-fur-webforms/" title="09 Aug 2020"><strong>Aug</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/20100126002249/http://blog.aztec-project.org:80/2009/09/07/unit-tests-fur-webforms/" title="00:22:49 Jan 26, 2010"><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: 14:40:45 Apr 13, 2010">13</td>
<td class="f" nowrap="nowrap"><a href="https://web.archive.org/web/20200809052744/https://blog.aztec-project.org/2009/09/07/unit-tests-fur-webforms/" title="05:27:44 Aug 09, 2020"><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">2009</td>
<td class="c" id="displayYearEl" title="You are here: 14:40:45 Apr 13, 2010">2010</td>
<td class="f" nowrap="nowrap"><a href="https://web.archive.org/web/20200809052744/https://blog.aztec-project.org/2009/09/07/unit-tests-fur-webforms/" title="09 Aug 2020"><strong>2020</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/20100413144045/http://blog.aztec-project.org/2009/09/07/unit-tests-fur-webforms/#" 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/20100413144045/http://blog.aztec-project.org/2009/09/07/unit-tests-fur-webforms/#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/20100413144045/http://web.archive.org/screenshot/http://blog.aztec-project.org/2009/09/07/unit-tests-fur-webforms/" id="wm-screenshot" title="screenshot" style="visibility: hidden;">
<span class="wm-icon-screen-shot"></span>
</a>
<a href="https://web.archive.org/web/20100413144045/http://blog.aztec-project.org/2009/09/07/unit-tests-fur-webforms/#" id="wm-video" title="video">
<span class="iconochive-movies"></span>
</a>
<a id="wm-share-facebook" href="https://web.archive.org/web/20100413144045/http://blog.aztec-project.org/2009/09/07/unit-tests-fur-webforms/#" data-url="https://web.archive.org/web/20100413144045/http://blog.aztec-project.org:80/2009/09/07/unit-tests-fur-webforms/" 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/20100413144045/http://blog.aztec-project.org/2009/09/07/unit-tests-fur-webforms/#" data-url="https://web.archive.org/web/20100413144045/http://blog.aztec-project.org:80/2009/09/07/unit-tests-fur-webforms/" 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/20100413144045/http://blog.aztec-project.org/2009/09/07/unit-tests-fur-webforms/#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/alexa_web_2010)"></span>
<div>Collection: <a style="color:#33f;" href="https://archive.org/details/alexa_web_2010" target="_new"><span class="wm-title">alexa_web_2010</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>
this data is currently not publicly accessible.
</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="./unittests-webforms_files/banner-styles.css"><link rel="stylesheet" type="text/css" href="./unittests-webforms_files/iconochive.css"><div class="wb-autocomplete-suggestions "></div></template>
</div><div id="wm-ipp-print">The Wayback Machine - https://web.archive.org/web/20100413144045/http://blog.aztec-project.org:80/2009/09/07/unit-tests-fur-webforms/</div>
<script type="text/javascript">//<![CDATA[
__wm.bt(750,27,25,2,"web","http://blog.aztec-project.org/2009/09/07/unit-tests-fur-webforms/","20100413144045",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/20100413144045/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/20100413144045/http://blog.aztec-project.org/">Home</a></li>
<li class="page_item page-item-2"><a href="https://web.archive.org/web/20100413144045/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/20100413144045/http://blog.aztec-project.org/2009/08/26/gibt-es-negative-energien-in-der-deutschen-alt-net-bewegung/" rel="prev">Gibt es negative Energien in der deutschen ALT.NET Bewegung?</a></div>
<div class="alignright"><a href="https://web.archive.org/web/20100413144045/http://blog.aztec-project.org/2009/10/23/net-open-space-2009-in-leipzig/" rel="next">.NET Open Space 2009 in Leipzig</a>&nbsp;»</div>
</div>
<div class="post" id="post-606">
<div class="postinfo">
<div class="datestamp">
<div>
<span class="cal1 cal1x">Sep</span>
<span class="cal2">07</span>
<span class="cal3">2009</span>
</div>
</div>
<span class="switch-post">
<a href="javascript:toggleSidebars();" class="switch-sidebars"><img src="./unittests-webforms_files/bullet_sidebars_hide.png" alt="" class="png"></a><a href="javascript:togglePost(606);" id="switch-post-606"><img src="./unittests-webforms_files/bullet_toggle_minus.png" alt="" class="png"></a>
</span>
<h2 class="posttitle"><a href="https://web.archive.org/web/20100413144045/http://blog.aztec-project.org/2009/09/07/unit-tests-fur-webforms/" rel="bookmark" title="Permanent Link: Unit-Tests für WebForms">Unit-Tests für WebForms</a></h2>
<small>
Geschrieben von <a href="https://web.archive.org/web/20100413144045/http://blog.aztec-project.org/author/chi/" title="Artikel von Christina Hirth">Christina Hirth</a> in <a href="https://web.archive.org/web/20100413144045/http://blog.aztec-project.org/category/how-to/" title="Alle Artikel in How-To ansehen" rel="category tag">How-To</a>, <a href="https://web.archive.org/web/20100413144045/http://blog.aztec-project.org/category/unit-testing/" title="Alle Artikel in Unit Testing ansehen" rel="category tag">Unit Testing</a>, <a href="https://web.archive.org/web/20100413144045/http://blog.aztec-project.org/category/webanwendungen/" title="Alle Artikel in Webanwendungen ansehen" rel="category tag">Webanwendungen</a>, tags: <a href="https://web.archive.org/web/20100413144045/http://blog.aztec-project.org/tag/unit-tests/" rel="tag">Unit-Tests</a>, <a href="https://web.archive.org/web/20100413144045/http://blog.aztec-project.org/tag/webapplication/" rel="tag">Webapplication</a> </small>
</div>
<div class="entry">
<p>Obwohl die allgemeine Meinung ist, dass es sehr schwierig sei, kann man mit folgendem Workaround Webforms sehr einfach und sehr umfangreich testen. Bedingung 1: als Projekt kein Web Site Project sondern eine Web Application erstellen. Bedingung 2: Business Logic in die entsprechende Schicht auslagern.</p>
<p>Nehmen wir zum Beispiel ein einfaches Formular. Nach Absenden des Formulars sollen die Werte aus den 2 Feldern addiert werden. Wenn man per QueryString einen Parameter <code>multiple</code> übergibt, soll das Ergebnis damit multipliziert werden.</p>
<p><img src="./unittests-webforms_files/TestableWebForm.jpg" alt="Testable WebForm"> &nbsp; <img src="./unittests-webforms_files/TestableWebForm_Sent.jpg" alt="Testable WebForm Sent"></p>
<p>Und nun zum Quellcode: Die automatisch erstellte .designer.cs muss entfernt werden, was man sowieso tun sollte, da man automatisch erstellten Code also Code, den keiner außer Microsoft unter Kontrolle hat vermeiden sollte.<br>
Die Inhalte der .designer.cs also die Definitionen der Web-Elemente werden in der Klasse als <code>Public Properties</code> erstellt und instantiiert, um bei Zugriffen wie <code>TextBox.Text</code> keine NullReferenceException zu bekommen.</p>
<div style="font-family: Courier New; font-size: 9pt; color: black; background: white;">
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;&nbsp;1</span>&nbsp;<span style="color: blue;">using</span> System;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;&nbsp;2</span>&nbsp;<span style="color: blue;">using</span> System.Web.UI.HtmlControls;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;&nbsp;3</span>&nbsp;<span style="color: blue;">using</span> System.Web.UI.WebControls;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;&nbsp;4</span>&nbsp;<span style="color: blue;">using</span> framework.Testable.Web.UI;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;&nbsp;5</span>&nbsp;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;&nbsp;6</span>&nbsp;<span style="color: blue;">namespace</span> TestableWebForm</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;&nbsp;7</span>&nbsp;{</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;&nbsp;8</span>&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: blue;">public</span> <span style="color: blue;">class</span> <span style="color: #2b91af;">DefaultPage</span> : System.Web.UI.<span style="color: #2b91af;">Page</span></p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;&nbsp;9</span>&nbsp;&nbsp;&nbsp;&nbsp; {</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;10</span>&nbsp;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;11</span>&nbsp;<span style="color: blue;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; #region</span> Controls</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;12</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">public</span> <span style="color: #2b91af;">HtmlForm</span> Formular;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;13</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">public</span> <span style="color: #2b91af;">TextBox</span> Value1 = <span style="color: blue;">new</span> <span style="color: #2b91af;">TextBox</span>();</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;14</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">public</span> <span style="color: #2b91af;">TextBox</span> Value2 = <span style="color: blue;">new</span> <span style="color: #2b91af;">TextBox</span>();</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;15</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">public</span> <span style="color: #2b91af;">Label</span> Result = <span style="color: blue;">new</span> <span style="color: #2b91af;">Label</span>();</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;16</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">public</span> <span style="color: #2b91af;">Button</span> Submit = <span style="color: blue;">new</span> <span style="color: #2b91af;">Button</span>();</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;17</span>&nbsp;<span style="color: blue;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; #endregion</span></p>
</div>
<p>Um das Verhalten testen zu können, haben wir Adapter für die Klassen <code>System.Web.UI.Page</code>, <code>System.Web.HttpRequest</code> und <code>System.Web.HttpResponse</code> geschrieben, und zwar für die Properties und Methoden die uns vorerst interessieren: z.B. <code>Page.IsPostBack, Page.Request, Response.Redirect(string url, bool endResponse)</code>. Bei der Benennung haben wir einfach den Namespace <code>System</code> mit <code>framework.Testable</code> ersetzt und wir haben natürlich zu jedem Testable-Objekt einen Interface erstellt.</p>
<div style="font-family: Courier New; font-size: 9pt; color: black; background: white;">
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;&nbsp;1</span>&nbsp;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;&nbsp;2</span>&nbsp;<span style="color: blue;">namespace</span> framework.Testable.Web</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;&nbsp;3</span>&nbsp;{</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;&nbsp;4</span>&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: blue;">namespace</span> UI</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;&nbsp;5</span>&nbsp;&nbsp;&nbsp;&nbsp; {</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;&nbsp;6</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">public</span> <span style="color: blue;">interface</span> <span style="color: #2b91af;">IPage</span></p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;&nbsp;7</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;&nbsp;8</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">bool</span> IsPostBack{ <span style="color: blue;">get</span>; }</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;&nbsp;9</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">IHttpRequest</span> Request{ <span style="color: blue;">get</span>; <span style="color: blue;">set</span>; }</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;10</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">IHttpResponse</span> Response{ <span style="color: blue;">get</span>; <span style="color: blue;">set</span>; }</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;11</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;12</span>&nbsp;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;13</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">public</span> <span style="color: blue;">class</span> <span style="color: #2b91af;">Page</span> : <span style="color: #2b91af;">IPage</span></p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;14</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;15</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">private</span> <span style="color: blue;">readonly</span> System.Web.UI.<span style="color: #2b91af;">Page</span> m_page;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;16</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">private</span> <span style="color: #2b91af;">IHttpRequest</span> m_request;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;17</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">private</span> <span style="color: #2b91af;">IHttpResponse</span> m_response;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;18</span>&nbsp;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;19</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">public</span> Page( System.Web.UI.<span style="color: #2b91af;">Page</span> page )</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;20</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;21</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; m_page = page;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;22</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; m_request = <span style="color: blue;">new</span> <span style="color: #2b91af;">HttpRequest</span>( m_page );</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;23</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; m_response = <span style="color: blue;">new</span> <span style="color: #2b91af;">HttpResponse</span>( m_page );</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;24</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;25</span>&nbsp;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;26</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">public</span> <span style="color: blue;">bool</span> IsPostBack</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;27</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;28</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">get</span>{ <span style="color: blue;">return</span> m_page.IsPostBack; }</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;29</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;30</span>&nbsp;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;31</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">public</span> <span style="color: #2b91af;">IHttpRequest</span> Request</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;32</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;33</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">get</span>{ <span style="color: blue;">return</span> m_request; }</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;34</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">set</span> { m_request = <span style="color: blue;">value</span>; }</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;35</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;36</span>&nbsp;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;37</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">public</span> <span style="color: #2b91af;">IHttpResponse</span> Response</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;38</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;39</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">get</span>{ <span style="color: blue;">return</span> m_response; }</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;40</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">set</span> { m_response = <span style="color: blue;">value</span>; }</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;41</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;42</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;43</span>&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;44</span>&nbsp;}</p>
</div>
<p>Um alle gemockte Objekte setzen zu können, haben wir unserer <code>Page</code>-Klasse auch Setter für <code>Request</code> und <code>Response</code> gegeben. Da man <code>Request.Params</code> nicht setzen kann, d.h. <code>Request.Params[]</code> immer ein NullReferenceException verursachen würde, haben wir das Auslesen der <code>Request</code>-Parameter in eine Methode <code>Request.GetParamValue(string name)</code> ausgelagert.</p>
<p>Das war ungefähr alles: in der Seite nutzt man dann anstelle der eigenen Request und Response-Objekten die <code>Testable</code>-Objekte.</p>
<div style="font-family: Courier New; font-size: 9pt; color: black; background: white;">
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;&nbsp;8</span>&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: blue;">public</span> <span style="color: blue;">class</span> <span style="color: #2b91af;">DefaultPage</span> : System.Web.UI.<span style="color: #2b91af;">Page</span></p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;&nbsp;9</span>&nbsp;&nbsp;&nbsp;&nbsp; {</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;</span></p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;19</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">private</span> <span style="color: #2b91af;">IPage</span> m_page;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;20</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">public</span> <span style="color: blue;">void</span> SetTestableObjects( <span style="color: #2b91af;">IPage</span> page )</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;21</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;22</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; m_page = page;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;23</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;24</span>&nbsp;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;25</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">public</span> <span style="color: blue;">void</span> Page_Load( <span style="color: blue;">object</span> sender, <span style="color: #2b91af;">EventArgs</span> e )</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;26</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;27</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">if</span> (m_page == <span style="color: blue;">null</span>) m_page = <span style="color: blue;">new</span> <span style="color: #2b91af;">Page</span>( <span style="color: blue;">this</span> );</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;28</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">int</span> multiple = 1;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;29</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">if</span> (!<span style="color: blue;">string</span>.IsNullOrEmpty( m_page.Request.GetParamValue( <span style="color: #a31515;">"multiple"</span> ) )) multiple = <span style="color: #2b91af;">Convert</span>.ToInt32( m_page.Request.GetParamValue( <span style="color: #a31515;">"multiple"</span> ) );</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;30</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">if</span> (m_page.IsPostBack)</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;31</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;32</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Result.Text = ( (<span style="color: #2b91af;">Convert</span>.ToInt32( Value1.Text ) + <span style="color: #2b91af;">Convert</span>.ToInt32( Value2.Text ))*multiple ).ToString();</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;33</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;34</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p>
</div>
<p>Damit ist die Web-Anwendung bereit zum Testen. So schaut zum Beispiel ein Test für das Laden der Seite aus:</p>
<div style="font-family: Courier New; font-size: 9pt; color: black; background: white;">
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;&nbsp;1</span>&nbsp;<span style="color: blue;">using</span> framework.Testable.Web;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;&nbsp;2</span>&nbsp;<span style="color: blue;">using</span> framework.Testable.Web.UI;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;&nbsp;3</span>&nbsp;<span style="color: blue;">using</span> NUnit.Framework;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;&nbsp;4</span>&nbsp;<span style="color: blue;">using</span> Rhino.Mocks;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;&nbsp;5</span>&nbsp;<span style="color: blue;">using</span> TestableWebForm;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;&nbsp;6</span>&nbsp;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;&nbsp;7</span>&nbsp;<span style="color: blue;">namespace</span> Tests</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;&nbsp;8</span>&nbsp;{</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;&nbsp;9</span>&nbsp;&nbsp;&nbsp;&nbsp; [<span style="color: #2b91af;">TestFixture</span>]</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;10</span>&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: blue;">public</span> <span style="color: blue;">class</span> <span style="color: #2b91af;">WebFormTests</span></p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;11</span>&nbsp;&nbsp;&nbsp;&nbsp; {</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;12</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">private</span> <span style="color: #2b91af;">IPage</span> m_page;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;13</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">private</span> <span style="color: #2b91af;">IHttpRequest</span> m_request;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;14</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">private</span> <span style="color: #2b91af;">IHttpResponse</span> m_response;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;15</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">private</span> <span style="color: #2b91af;">DefaultPage</span> m_defaultPage;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;16</span>&nbsp;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;17</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; [<span style="color: #2b91af;">SetUp</span>]</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;18</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">public</span> <span style="color: blue;">void</span> Init()</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;19</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;20</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; m_page = <span style="color: #2b91af;">MockRepository</span>.GenerateStub&lt;<span style="color: #2b91af;">IPage</span>&gt;();</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;21</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; m_request = <span style="color: #2b91af;">MockRepository</span>.GenerateStub&lt;<span style="color: #2b91af;">IHttpRequest</span>&gt;();</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;22</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; m_response = <span style="color: #2b91af;">MockRepository</span>.GenerateStub&lt;<span style="color: #2b91af;">IHttpResponse</span>&gt;();</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;23</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; m_page.Request = m_request;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;24</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; m_page.Response = m_response;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;25</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;26</span>&nbsp;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;27</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; [<span style="color: #2b91af;">Test</span>]</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;28</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">public</span> <span style="color: blue;">void</span> PageLoad_Loading_EmptyFields()</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;29</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;30</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: green;">// Arrange</span></p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;31</span>&nbsp;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;32</span>&nbsp;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;33</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: green;">// Act</span></p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;34</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; m_defaultPage = <span style="color: blue;">new</span> <span style="color: #2b91af;">DefaultPage</span>();</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;35</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; m_defaultPage.SetTestableObjects(m_page);</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;36</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; m_defaultPage.Page_Load( <span style="color: blue;">null</span>, <span style="color: blue;">null</span> );</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;37</span>&nbsp;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;38</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: green;">// Assert</span></p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;39</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">Assert</span>.IsEmpty( m_defaultPage.Value1.Text );</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;40</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">Assert</span>.IsEmpty( m_defaultPage.Value2.Text );</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;41</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">Assert</span>.IsEmpty(m_defaultPage.Result.Text);</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;42</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p>
</div>
<p>Und so für PostBack inklusive QueryString-Parameter:</p>
<div style="font-family: Courier New; font-size: 9pt; color: black; background: white;">
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;63</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; [<span style="color: #2b91af;">Test</span>]</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;64</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">public</span> <span style="color: blue;">void</span> PageLoad_PostBackWithRequestValue_ResultIsCorrect()</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;65</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;66</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: green;">// Arrange</span></p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;67</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">const</span> <span style="color: blue;">int</span> value1 = 1;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;68</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">const</span> <span style="color: blue;">int</span> value2 = 2;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;69</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">const</span> <span style="color: blue;">int</span> value3 = 3;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;70</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; m_request.Expect( a =&gt; a.GetParamValue( <span style="color: #a31515;">"multiple"</span> ) ).IgnoreArguments().Repeat.Twice().Return( value3.ToString() );</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;71</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; m_page.Expect( a =&gt; a.IsPostBack ).Return( <span style="color: blue;">true</span> );</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;72</span>&nbsp;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;73</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: green;">// Act</span></p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;74</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; m_defaultPage = <span style="color: blue;">new</span> <span style="color: #2b91af;">DefaultPage</span>();</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;75</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; m_defaultPage.SetTestableObjects( m_page );</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;76</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; m_defaultPage.Value1.Text = value1.ToString();</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;77</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; m_defaultPage.Value2.Text = value2.ToString();</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;78</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; m_defaultPage.Page_Load( <span style="color: blue;">null</span>, <span style="color: blue;">null</span> );</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;79</span>&nbsp;</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;80</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: green;">// Assert</span></p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;81</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #2b91af;">Assert</span>.IsTrue( m_defaultPage.Result.Text == ( (value1 + value2)*value3 ).ToString() );</p>
<p style="margin: 0px;"><span style="color: #2b91af;">&nbsp;&nbsp;&nbsp;82</span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p>
</div>
<p>Dieses Vorgehen hat uns nicht nur den seit langen gesuchten Weg zum Testen von Webanwendungen geebnet, sondern zwingt auch den Entwickler dazu, alle Funktionalitäten, die nicht in einer Webseite sondern in die dll-s gehören, auszulagern. Damit dürfte es auch der richtige Weg der Clean Code Developers für die Arbeit mit WebForms sein.</p>
<p>Was die Adapter-Klassen betrifft: inzwischen haben wir auch System.IO “adaptiert” und bald werden die anderen System-Klassen folgen, je nach Bedarf.<br>
<a href="https://web.archive.org/web/20100413144045/http://blog.aztec-project.org/wp-content/uploads/2009/09/TestableWebForm.zip">Download VS2008-Projekt</a></p>
<p><a href="https://web.archive.org/web/20100413144045/http://dotnet-kicks.de/kick/?url=http%3a%2f%2fblog.aztec-project.org%2f2009%2f09%2f07%2ftesten-von-webforms%2f"><img src="./unittests-webforms_files/KickItImageGenerator.ashx" border="0" alt="kick it on dotnet-kicks.de"></a></p>
<p class="postmetadata alt clear">
<small>
Geschrieben am Montag, 7. September 2009 um 9:22 am und ist zu finden in <a href="https://web.archive.org/web/20100413144045/http://blog.aztec-project.org/category/how-to/" title="Alle Artikel in How-To ansehen" rel="category tag">How-To</a>, <a href="https://web.archive.org/web/20100413144045/http://blog.aztec-project.org/category/unit-testing/" title="Alle Artikel in Unit Testing ansehen" rel="category tag">Unit Testing</a>, <a href="https://web.archive.org/web/20100413144045/http://blog.aztec-project.org/category/webanwendungen/" title="Alle Artikel in Webanwendungen ansehen" rel="category tag">Webanwendungen</a>. Du kannst die Antworten zu diesem Thema verfolgen unter <a href="https://web.archive.org/web/20100413144045/http://blog.aztec-project.org/2009/09/07/unit-tests-fur-webforms/feed/">RSS 2.0</a> feed. Du kannst <a href="https://web.archive.org/web/20100413144045/http://blog.aztec-project.org/2009/09/07/unit-tests-fur-webforms/#respond">Antwort</a>, oder <a href="https://web.archive.org/web/20100413144045/http://blog.aztec-project.org/2009/09/07/unit-tests-fur-webforms/trackback/" rel="trackback">trackback</a> von deiner Seite.
</small>
</p>
</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/20100413144045/http://blog.aztec-project.org/2009/09/07/unit-tests-fur-webforms/#respond" style="display:none;">Click here to cancel reply</a></small>
</div>
<form action="https://web.archive.org/web/20100413144045/http://blog.aztec-project.org/wp-comments-post.php" method="post" id="commentform">
<input type="hidden" name="comment_post_ID" value="606" 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="606">
</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/20100413144045/http://blog.aztec-project.org/wp-content/themes/mandigo/images/icons/bullet_toggle_minus.png" alt="" class="png" /><\/a><\/span>');
});
// ]]> -->
</script>
</td>
<script src="./unittests-webforms_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/20100413144045/http://wordpress.org/">WordPress</a>, <a href="https://web.archive.org/web/20100413144045/http://www.onehertz.com/portfolio/wordpress/" target="_blank" title="WordPress themes">Mandigo theme</a> by tom.
<br><a href="https://web.archive.org/web/20100413144045/http://blog.aztec-project.org/feed/"><img src="./unittests-webforms_files/rss_s.gif" alt=""> Einträge (RSS)</a>
und <a href="https://web.archive.org/web/20100413144045/http://blog.aztec-project.org/comments/feed/"><img src="./unittests-webforms_files/rss_s.gif" alt=""> Kommentare (RSS)</a>.
</p>
</div>
</div>
<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/20100413144045/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/20100413144045/https://ssl." : "https://web.archive.org/web/20100413144045/http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script><script src="./unittests-webforms_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></body></html>
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long