Neues rund um's Thema .Net, Team Foundation Server und SCRUM RSS 2.0
# Friday, May 16, 2008

Für eine ASP.Net Anwendung möchte ich gerne die Versionen meiner Anwendung und aller referenzierten Assemblies ausgeben. Bei Winforms kann ich für die Anwendung mit Application.ProductVersion die Version meiner Anwendung abfragen, die ich in der AssemblyInfo.cs eingestellt habe. Das geht bei ASP.Net nicht. Hier die Lösung, wie man das im Web macht, gleich mit Sortierung:

Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly();

if (assembly != null)
{
    lblProductVersion.Text = assembly.GetName().Name + " - " + assembly.GetName().Version.ToString();

    var referenceAssemblies = from a in assembly.GetReferencedAssemblies()
            orderby a.Name 
            select a;
    foreach (AssemblyName referenceAssemblyName in referenceAssemblies)
    {
        lblProductVersion.Text += "<br>" + referenceAssemblyName.Name + " - " + referenceAssemblyName.Version;
    }
}

 

Die Ausgabe sieht dann ungefähr so aus:

MyApplication - 1.0.3058.30144
AjaxControlToolkit - 1.0.10618.0
ArtisoAssertLib - 1.0.0.0
CommonComponents - 1.0.3056.28557
CommonContracts - 1.0.3056.28555
CrystalDecisions.CrystalReports.Engine - 11.5.3700.0
CrystalDecisions.ReportSource - 11.5.3700.0
CrystalDecisions.Shared - 11.5.3700.0
cTextBox - 1.0.3058.27781
DataContracts - 1.0.0.0
Infragistics35.WebUI.Misc.v8.1 - 8.1.20081.1000
Infragistics35.WebUI.Shared.v8.1 - 8.1.20081.1000
Infragistics35.WebUI.UltraWebChart.v8.1 - 8.1.20081.1000
Infragistics35.WebUI.UltraWebGrid.v8.1 - 8.1.20081.1000
Infragistics35.WebUI.UltraWebNavigator.v8.1 - 8.1.20081.1000
Infragistics35.WebUI.UltraWebTab.v8.1 - 8.1.20081.1000
Infragistics35.WebUI.UltraWebToolbar.v8.1 - 8.1.20081.1000
Infragistics35.WebUI.WebDataInput.v8.1 - 8.1.20081.1000
Infragistics35.WebUI.WebDateChooser.v8.1 - 8.1.20081.1000
ListValuesComponents - 1.0.3057.30147
ListValuesContracts - 1.0.3057.30146
LoginManagerComponents - 1.0.3033.29632
LoginManagerContracts - 1.0.0.0
mscorlib - 2.0.0.0
NavigationComponents - 1.0.3058.27781
NavigationContracts - 1.0.3058.27780
PCMAreaComponents - 1.0.3058.27781
PCMAreaContracts - 1.0.3058.27779
ProductsAreaComponents - 1.0.3058.27779
ProjectsAreaComponents - 1.0.3058.27780
ProjectsAreaContracts - 1.0.3058.27778
ReportingComponents - 1.0.3058.27781
ReportingContracts - 1.0.3058.27780
SearchComponents - 1.0.3058.27779
SearchContracts - 1.0.3058.27779
System - 2.0.0.0
System.Configuration - 2.0.0.0
System.Core - 3.5.0.0
System.Data - 2.0.0.0
System.Data.DataSetExtensions - 3.5.0.0
System.Data.Linq - 3.5.0.0
System.Drawing - 2.0.0.0
System.Web - 2.0.0.0
System.Web.Extensions - 3.5.0.0
System.Web.Services - 2.0.0.0
System.Xml - 2.0.0.0
TaskListComponent - 1.0.3056.28564
TaskListContract - 1.0.3056.28560
TypesComponents - 1.0.3057.30147
TypesContracts - 1.0.3057.30147
UserManagementContracts - 1.0.0.0
Validators - 1.0.0.0
wwDataBinder - 1.0.2908.21817

Friday, May 16, 2008 5:50:11 PM (Mitteleuropäische Sommerzeit, UTC+02:00)  #    Comments [0] -
ASP.Net | Tipps und Tricks
# Monday, February 04, 2008

...sollte man sich mal die AsyncPostbackTriggers anschaen, evtl. liegt das Proble dort begraben. Aber erst mal der Reihe nach.

Ich hatte eine Web-Seite, die sich plötzlich nicht mehr aufrufen lies. Ich habe unterschiedliche Fehler erhalten. Mit dem IIS wurde einfach angezeigt, dass die Seite nicht verfügbar ist, im Debug meldete Visual Studio eine OutOfMemoryException und der Developer Web Server ist gleich mal abgeschmiert. Nach einigem Suchen haben wir dann das Problem entdeckt. Auf der Seite war ein AsyncPostbackTrigger auf eine Textbox eingetragen. Diese Textbox wurde aber irgendwann entfernt. Dies scheint das oben beschriebene Problem ausgelöst zu haben.

Vielleicht hat ja mal jemend einen ähnlichen Fehler und kann ihn mit dieser Info schnell beheben.

Monday, February 04, 2008 12:23:28 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0] -
ASP.Net
# Thursday, November 29, 2007

Folgende Anforderung: Ich möchte in einer Tabelle, die über die gesamte Bildschirmbreite geht, den Inhalt einer Zelle scrollbar haben.

Mein Ansatz: Ich mache in die Tabellenzelle ein DIV mit Overflow:auto

Problem: Das funktioniert zwar im FireFox, aber nicht im IE. Der IE geht wohl her und schaut sich den Inhalt des DIVs an und macht die Tabelle dann so breit, dass der gesamte Inhalt reinpasst und berücksichtigt dabei nicht, dass das DIV ja auch scrollen könnte. Dieser Effekt tritt auf, wenn das DIV eine prozentuale Breite hat.

Folgender Code verdeutlichd das Problem. Das obere DIV verhällt sich korrekt, da es nicht in eine Tabelle eingebettet ist. Bei den unteren beiden tritt aber das beschriebene Problem auf.

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="ValuePlanner_2008.Web.ProductArea.WebForm1" %>

<html>
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div style="width: 100%; overflow: auto">
        aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<br />
        <br />
    </div>

    <script language="javascript" type="text/javascript">
   1:  
   2:    function fnRefreshScrollPosition(source)
   3:         {
   4:             document.getElementById("staticUnits").scrollLeft = source;
   5:         }
   6:     
</script> <div style="width: 100%"> <table style="width: 100%"> <tr> <td style="width: 100%; height: 50px;"> <div id="staticUnits" style="width: 100%; overflow: auto;"> bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb<br /> <br /> </div> </td> </tr> </table> <table style="width: 100%"> <tr> <td style="width: 100%; height: 50px;"> <div id="units" style="width: 100%; overflow: auto;" onscroll="fnRefreshScrollPosition(this.scrollLeft);"> cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc<br /> <br /> </div> </td> </tr> </table> </div> </form> </body> </html>

 

Lösung 1:
Ich kann den DIVs eine feste Breite geben. Aber eigentlich will ich ja, dass der gesamte zur Verfügung stehende Platz genutzt wird und wenn dieser nicht ausreicht gescrollt wird. Um das zu erreichen müsste ich über ein Resitze-Event die Breite der Tabellenzeile ermitteln und diese dann jedesmal auf die DIVs anwenden. Das wird aber schnell sehr hässlich wenn Margins etc. mit berücksichtigt werden müssen.

Lösung 2:
Ich positioniere die DIVs einfach absolut. Dann werden Sie nicht mehr als Inhalt der Tabelle berücksichtigt und die Tabelle erstreckt sich über genau 100% der Breite. Gut nutzen kann man hier den Effekt, dass die Positionsangaben bei absoluter Poistionierung sich immer auf den Container, also in unserem Fall auf die Tabellenzelle beziehen. Ein Stolperstein dabei ist, dass das DIV natürlich auch keinen Einfluss mehr auf die Höhe der Tabellenzelle hat. Diese muss man nun explizit angeben, ich habe da einfach mal 50px vorgegeben. Der Code sieht dann so aus. Hier scrollen nun alle 3 DIVs wie gewünscht.

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="ValuePlanner_2008.Web.ProductArea.WebForm1" %>

<html>
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div style="width: 100%; overflow: auto">
        aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<br />
        <br />
    </div>

    <script language="javascript" type="text/javascript">
   1:  
   2:    function fnRefreshScrollPosition(source)
   3:         {
   4:             document.getElementById("staticUnits").scrollLeft = source;
   5:         }
   6:     
</script> <div style="width: 100%"> <table style="width: 100%"> <tr> <td style="width: 100%; height: 50px;"> <div id="staticUnits" style="width: 100%; overflow: auto; position: absolute"> bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb<br /> <br /> </div> </td> </tr> </table> <table style="width: 100%"> <tr> <td style="width: 100%; height: 50px;"> <div id="units" style="width: 100%; overflow: auto; position: absolute;" onscroll="fnRefreshScrollPosition(this.scrollLeft);"> cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc<br /> <br /> </div> </td> </tr> </table> </div> </form> </body> </html>
Thursday, November 29, 2007 2:28:56 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0] -
ASP.Net
# Wednesday, November 28, 2007

Events in eigene WebUserControls (.ascx) einzubauen ist im Prinzip ganz einfach:

   1: public event ClickEventHandler Clicked;
   2: public delegate void ClickEventHandler(object sender, EventArgs e);
   3: protected virtual void OnClicked(EventArgs e)
   4: {
   5:     if (Clicked != null)
   6:         Clicked(this, e);
   7: }


Man deviniert ein Event mit einem Eventhandler-Typ (Zeile1), definiert einen Delegaten für den Eventhandler (Zeile 2) und kann dann eine Methode definieren, die den Event auslöst. Diese Methode ruft man dann auf, wenn das Event ausgelöst werden soll.

Wenn man das UserControl in eine Seite einbaut kann man jetzt im CodeBehind ganz einfach einen Eventhandler auf den Event registrieren und fertig:

this.ucButton.Clicked += new ClickEventHandler(ucButton_Clicked);


Auch im Markup kann man den Event angeben, vorausgesetzt man hat den entsprechenden Eventhandler angelegt.

<uc3:ucButton ID="ucButton" runat="server" Text="Gross" ImageURL="~/Images/Status/GreenBox.png" OnClicked="ucButton_Clicked" />

Was bei mir aber nicht funktioniert, ist der Designtime-Support. Bei anderen Controls kann ich die Events im Property-Grid sehen und ich kann per Doppelclick auch einen Standard-Eventhandler einrichten und registrieren. Das geht bei mir nicht. Hat jemand dafür eine Lösung? Wenn ja, dann bitte her damit.
Wednesday, November 28, 2007 4:04:12 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [5] -
ASP.Net

Sicher ein alter Hut, aber für mich war's gerade neu und ich finde das echt klasse. Mit CSS kann man Elemente auch mit einem Abstand zum rechten Rand positionieren.

<DIV style="position:absolute; right:20px; top:350px; width:300px; height:150px;"></DIV>

erzeugt ein DIV das immer exakt 20px vom Rechten Rand entfernt ist, auch nach einem Resize des Fensters. Genauc das was ich gerade brauche. Man muss dabei nur beschten, dass right offensichtlich die schwächste Einstellung ist, d.h. wenn left und width ebenfalls angegeben sind, wird right ignoriert. Wenn aber nur zwei der Werte angegeben sind, wird der dritte automatisch ermittelt, also z.B. bei left und right wird die Breite automatisch angepasst. Das selbe funktioniert natürlich auch mit top, bottom und height.

Wednesday, November 28, 2007 11:46:03 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0] -
ASP.Net
# Tuesday, November 27, 2007

Dieser Artikel beschreibt ein paar Punkte, die bei der Erstellung von ASP.NET Server Controls berücksichtigt werden sollten und gibt verschiedene Tipps.

Writing Good ASP.NET Server Controls « Enter the Tatrix

Tuesday, November 27, 2007 10:21:24 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0] -
ASP.Net
# Tuesday, November 13, 2007

Damit Ich habe ein Web User Control bei dem ich eine TextBox als Property nach außen geben möchte, damit man die Eigenschaften der Textbox editieren kann. Das kann man durch ein paar Attribute erreichen.

[Browsable(true),
NotifyParentProperty(true),
PersistenceMode(PersistenceMode.InnerProperty),
DesignerSerializationVisibility(DesignerSerializationVisibility.Content), 
RefreshProperties(RefreshProperties.Repaint)]
public TextBox DropDownTextbox
{
    get
    {
        return this.TextBox1;
    }
    set
    {
        this.TextBox1 = value;                
    }
}
 
Damit werden auf dem UserControls zusätzliche Properties angelegt und zwar alle Properties einer Textbox mit dem Prefix "DropDownTexbox" also dem Namen des Properties auf dem Control.
 
image
 
Im Markup werden die Properties ganz normal als Attribute eingefügt. Was mich allerdings etwas gewundert hat war, dass ich im Markup über Intellisense die Textbox allerdings auch als separates Tag angeben kann und darauf meine Attribute definiere. Allerding wird das denn im Designer nicht mehr sauber gerendert.

 

<uc1:WebUserControl1 ID="WebUserControl11" runat="server" DropDownTextBox-BackColor="#FFCC00">
    <DropDownTextbox BackColor="red"></DropDownTextbox>
</uc1:WebUserControl1>

Tuesday, November 13, 2007 5:53:32 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0] -
ASP.Net | Tipps und Tricks
# Saturday, October 06, 2007

Möchte man ASP.Net Anwendungen mit VS2008 debuggen, dann ist entscheidend, welchen Servermode man in den Einstellungen für das Web-Projekt ausgewählt hat.

image

Mit dem Visual Studio Developer Server hat das bei mir auf anhieb funktioniert. Allerdings mit dem IIs gab es Probleme. Hier habe ich zuerst diese NMeldung bekommen:

Unable to start debugging on the web server. Strong name validation failed.

Diesen Fehler kann man beheben indem man folgendes Procedere durchführt:

  1. Visual Studio beenden!
  2. Den "Visual Studio Command Prompt" mit "Run as Administrator" starten.
  3. Dann folgenden Befehl ausführen: sn.exe -Vr "%ProgramFiles%\Microsoft Visual Studio 9.0\Common7\IDE\iisresolver.dll"

Damit sollte diese Meldung behoben sein. Dann kam aber bei mir der nächste Fehler:

Unable to start debugging on the web server. IIS does not list an application that matches the launched URL.

Um diesen Fehler zu beseitigen muss man die Windows Authentification aktivieren. Dazu geht man folgendermaßen vor:

  1. Im Explorer auf "Computer" Rechtsklick und dann "Manage"
  2. Den IIS Manager öffnen und die entsprechende Anwendung auswählen

    image
  3. "Authentication" unter IIS doppelklicken und dann "Windows Athentication" auf Enabled setzen

    image

Damit hat bei mir das Debuggen dann auch mit dem IIS funktioniert.

Saturday, October 06, 2007 5:39:24 PM (Mitteleuropäische Sommerzeit, UTC+02:00)  #    Comments [0] -
ASP.Net | VS 2008
# Monday, August 20, 2007

 Will man mit Visual Studio 2008 einem UserControl ein StyleSheet zuordnen, sieht das normalerweise so aus:

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="WebUserControl1.ascx.cs"
    Inherits="Controls.WebUserControl1" %>
<head>
    <link href="../App_Themes/style.css" rel="stylesheet" type="text/css" />
</head>
<asp:Button ID="Button1" runat="server" Text="Button" /><asp:TextBox ID="TextBox1"
    runat="server"></asp:TextBox>


Damit scheint aber der Designer von Visual Studio 2008 Beta 2 Probleme zu haben. Sowohl im Split-View als auch im Design-View wird nach einem Refresh nichts mehr angezeigt.

image

Bei mir hat hier ein kleiner Trick geholfen. Man verschiebt einfach das Link-Tag mit dem Stylesheet ganz an's Ende des Codes. Dann kann man mit Hilfe der Refresh-Funktion aus dem Kontext-Menü des Design-Panes die Anzeige aktualisieren und siehe da, Button und Textbox werden wieder angezeigt.

image

Monday, August 20, 2007 4:45:30 PM (Mitteleuropäische Sommerzeit, UTC+02:00)  #    Comments [3] -
ASP.Net | VS 2008

Ist eine ASP.Net Seite scrollbar, gibt es den unschönen Effekt, dass die Seite nach dem Postback wieder ganz oben steht. Ich habe mal eine kleine Beispiel-Seite, die diesen Effekt demonstriert:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm2.aspx.cs" Inherits="ValuePlanner_2008.Web.INN_ProjectArea.WebForm2" %>
<%@ Register Assembly="cTextBox" Namespace="artiso_lib.UserControls" TagPrefix="cc1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
 <head runat="server">
 
 <title>Untitled Page</title>
 </head>
 <body>
 
<form id="form1" runat="server">
 
 <div> 
    <%

   1:  for (int i = 0; i < 50; i++)
   2:        {
   3:            Response.Write(i + "<br>");
   4:        } 
   5:         
    %> 
   </div>
  </form>
 </body>
</html>


Dieses Problem kann man ganz einfach umgehen, indem man in der Page-Direktive das Attribut MaintainScrollPositionOnPostback="true" einfügt, also:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm2.aspx.cs" Inherits="ValuePlanner_2008.Web.INN_ProjectArea.WebForm2" MaintainScrollPositionOnPostback="true"  %>

Monday, August 20, 2007 11:58:20 AM (Mitteleuropäische Sommerzeit, UTC+02:00)  #    Comments [1] -
ASP.Net | Tipps und Tricks
# Saturday, August 18, 2007

Im ASP.Net AJAX Toolkit findet man ein ModalPopup, das sehr gute Dienste leistet, will man Meldungen etwas eleganter ausgeben als mit einem schlichten alert(). Die Handhabung ist relativ einfach. Man nehme ein beliebiges Serverseitiges Control und weise diesem den ModalPopupExtender zu. Dann gibt man noch mindestens die ID des Controls an, das den Inhalt des Popups repräsentieren soll und fertig. Will man das Popup allerdings client-seitig per Java-Script aufrufen, muss man ein wenig in die Trickkiste greifen. Das Problem dabei ist, dass der ModalPopupExtender immer ein TargetControl braucht. Ich habe dafür einfach ein unsichtbares DIV erzeugt, das mit runat="server" auch auf dem Server sichtbar gemacht wurde. Dann kann man mit $Find('<ID des ModalPopupExtenders>').show() das Popup aufrufen.

Neu war an diesem Beispiel für mich auch der Style filter: alpha(opacity = 70) mit dem man eine Transparenz erzeugen kann.

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="ValuePlanner_2008.Web.INN_ProjectArea.WebForm1" %>

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Untitled Page</title>
    <style type="text/css">
        .modalBackground
        {
            filter: alpha(opacity = 70);
            background-color: #CCCCCC;
        }
        .ErrorMessage
        {
            background-color: #800000;
            color: #FFFFFF;
        }
    </style>
</head>

<script language="javascript" type="text/javascript">
   1:  
   2: function okScript()
   3: {
   4:     alert ("OK-Button wurde gedrückt");
   5: }
</script> <body> <form id="form1" runat="server"> <div id="PopupPseudoPanel" style="display: none" runat="server"> </div> <cc1:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server"> </cc1:ToolkitScriptManager> <cc1:ModalPopupExtender ID="ModalPopupExtender" runat="server" PopupControlID="Panel1" DynamicServicePath="" Enabled="True" TargetControlID="PopupPseudoPanel" BackgroundCssClass="modalBackground" OkControlID="OkButton" CancelControlID="CancelButton" OnOkScript="okScript();"> </cc1:ModalPopupExtender> <br /> <br /> <input id="Button2" type="button" value="button" onclick="$find('ModalPopupExtender').show();" /> <asp:Panel ID="Panel1" runat="server" CssClass="ErrorMessage" style="display:none"> <h1> Popup</h1> <p> Das ist ein Popup!</p> <center> <asp:Button ID="OkButton" runat="server" Text="OK"></asp:Button> <asp:Button ID="CancelButton" runat="server" Text="Cancel"></asp:Button> </center> </asp:Panel> </form> </body> </html>

 

Saturday, August 18, 2007 1:57:57 PM (Mitteleuropäische Sommerzeit, UTC+02:00)  #    Comments [0] -
ASP.Net | Tipps und Tricks
# Thursday, August 16, 2007

Scott Mitchell hat 75 Tutorials zum Thema Data Access mit ASP.Net 2.0 geschrieben. Hier ist praktisch alles an Technologie beschrieben, was für die Programmierung von datenbankbasierten Webanwendungen mit ASP.Net 2.0 notwendig ist. Einzig LINQ wird momentan noch ausgespart. Eine wirklich tolle Sammlung an guten Informationen.

image

Data Access Tutorials : The Official Microsoft ASP.NET 2.0 Site

Thursday, August 16, 2007 11:06:18 AM (Mitteleuropäische Sommerzeit, UTC+02:00)  #    Comments [0] -
ADO.Net | ASP.Net | Know-How | Lernen | SQL
# Monday, October 23, 2006

ASP.NT AJAX (früher ATLAS) ist jetzt als Beta 1 zum Donwload verfügbar.

Link to ASP.NET AJAX Web: The Official Microsoft ASP.NET AJAX Site : ASP.NET AJAX

Monday, October 23, 2006 9:49:26 AM (Mitteleuropäische Sommerzeit, UTC+02:00)  #    Comments [0] -
ASP.Net
# Monday, September 18, 2006

Das Tutorial steht für C# und VB.Net zur Verfügung. Unten finden Sie den Link für die erste Folge in C#. Von dort aus können links aus der Navigation die anderen Folgen aufgerufen werden.

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaspnettut/html/aspnet_tutorial01_dataaccesslayer_cs.asp

Monday, September 18, 2006 9:20:57 AM (Mitteleuropäische Sommerzeit, UTC+02:00)  #    Comments [0] -
ASP.Net
# Sunday, September 17, 2006

10 häufige Fallstricke bi der Veröffentlichung von ASP.Net Webseiten und deren Vermeidung, zum Teil auch der technische Hintergrund werden in folgendem Artikel beschrieben:

http://www.microsoft.com/germany/msdn/library/net/aspnet/StoerungsfreiAusgefuehrteSitesDurchVermeidenDieserZehnVerbreitetenASPNETFehlerquellen.mspx?mfr=true

Sunday, September 17, 2006 10:44:47 PM (Mitteleuropäische Sommerzeit, UTC+02:00)  #    Comments [0] -
ASP.Net | Know-How | Unbearbeitet
# Saturday, September 16, 2006

In einer 10-teilgen Web-Cast Serie erklärt Daniel Walzenbach wie ASP.Net Srever-Controls entwickelt werden.

http://www.microsoft.com/germany/MSDN/webcasts/library.aspx?id=1032303182

Saturday, September 16, 2006 10:28:33 PM (Mitteleuropäische Sommerzeit, UTC+02:00)  #    Comments [0] -
ASP.Net
# Friday, September 15, 2006

In einer 7-teiligen Webcast-Serie stellt Dr. Holger Schwichtenberg ASP.Net 2.0 vor

http://www.microsoft.com/germany/MSDN/webcasts/library.aspx?id=118767534

Friday, September 15, 2006 8:42:54 AM (Mitteleuropäische Sommerzeit, UTC+02:00)  #    Comments [0] -
ASP.Net | Lernen
# Tuesday, July 11, 2006

In diesem Artikel aus dem MSDN-Magazin werden 10 verbreitete Fallstricke beschrieben, die die Performance von ASP.Net Anwendungen negativ beeinflussen.

http://msdn.microsoft.com/msdnmag/issues/06/07/WebAppFollies/default.aspx

Tuesday, July 11, 2006 9:54:00 AM (Mitteleuropäische Sommerzeit, UTC+02:00)  #    Comments [0] -
ASP.Net
# Thursday, July 06, 2006
Archive
<February 2012>
SunMonTueWedThuFriSat
2930311234
567891011
12131415161718
19202122232425
26272829123
45678910
About the author/Disclaimer

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

© Copyright 2012
Thomas
Sign In
Statistics
Total Posts: 560
This Year: 3
This Month: 1
This Week: 3
Comments: 351
Themes
All Content © 2012, Thomas
DasBlog theme 'Business' created by Christoph De Baene (delarou)