samples

Generic List(Of ClassName) im Repeater

Manchmal ist es ganz praktisch eine Generic List im Repeater zu nutzen. Mit <%# eval("Parameter")%> kommt man aber nicht weit. Mit <%# Container.DataItem.Value1 %>aber schon: Public Class ClassName      Public Value1 As String      Public Value2 As String End Class Dim Listname As New List(Of ClassName) Dim Item1 As New ClassName Item1.Value1 = "TestValue1" Item1.Value2 = "TestValue2" Listname.Add(Item1) Repeater1.DataSource = Listname Repeater1.DataBind()   <asp:Repeater ID="Repeater1" runat="server">    <ItemTemplate>          <%#Container.DataItem.Value1%>    </ItemTemplate> </asp:Repeater>

posted @ Thursday, August 27, 2009 4:51 PM | Feedback (0)

Fulltext-Search in SQLExpress aktivieren

Wenn man im SQL Management Studio eine SQLExpress Datenbank verwaltet, dann werden die Volltextfeatures und Dialoge nicht angezeigt. Dennoch sind sie aber vollständig vorhanden und nutzbar. --- Erst einen Katalog erstellen CREATE FULLTEXT CATALOG [TestKatalog] WITH ACCENT_SENSITIVITY = OFF --- Die Tabelle dem erstellten Katalog zuordnen und den PrimaryKey --- (hier [PK_CMS_Key]) angeben FULLTEXT INDEX ON [dbo].[CMS_Tabellenname] KEY INDEX [PK_CMS_Key] ON ([TestKatalog]) WITH (CHANGE_TRACKING AUTO) Go --- die Spalten hinzufgen, die im Index enthalten sein sollen ALTER FULLTEXT INDEX ON [dbo].[CMS_Tabellenname]  ADD ([Body],[Headline] LANGUAGE [German]) Go --- und das Ganze aktivieren ALTER FULLTEXT INDEX ON [dbo].[CMS_Tabellenname] ENABLE --- Warten bis der Index erstellt ist (der Taskmanager geht --- dabei...

posted @ Sunday, August 16, 2009 10:42 AM | Feedback (0)

Crop und Resize Image mit ASP.NET - zum letzten Mal!

Ich mache das ja schon lange.... und ich habe auch schon einiges mit Bildern zu tun gehabt. Aber jedes mal wieder fummele ich mir aus alten Codes oder dem Internet die Funktionen für Größenveränderungen heraus. Meist sind diese (vor allem bei gegoogelten Beispielen) gespickt mit Spezialfunktionalität. Diesemal habe ich mir die Mühe gemacht - ein für alle Mal - drei Funktionen zu generieren, die sowohl Cropping, Resizing oder aber beides gleichzeitig in bestmöglicher Qualität zu liefern. Und da ich meißt nur ein Stream oder Byte() benötige, bekomme ich as Rückgabewert auch ein MemoryStream. Diesen kann ich in die Datenbank schieben oder per BinaryWrite direkt ausgeben.      1 Imports...

posted @ Sunday, July 05, 2009 10:45 AM | Feedback (2)

Session verwalten bzw. Wildwuchs in Bezeichnungen eindämmen

In meinen Webprojeten benutze ich natürlich auch immer wieder Session-Variablen, die dann wiederum an anderer Stelle abgerufen werden. Abgesehen von möglichen Schreibfehlern, bin ich auch imer wieder auf der Suche nach der richtigen Bezeichnung. Die wichtigsten lagere ich jetzt in eine kleine Klasse aus:       1 Public Class Properties     2     Public Enum VariableName     3         UserID = 1     4         UserName = 2     5         'usw.     6     End Enum     7      8     Public Shared Property Session(ByVal name As VariableName) As Object     9         Get    10             Return HttpContext.Current.Session _    11                     ("adjustment.properties.session." & name.ToString)    12         End Get    13         Set(ByVal value As Object)    14             HttpContext.Current.Session _    15                     ("adjustment.properties.session." &...

posted @ Thursday, June 25, 2009 10:09 AM | Feedback (0)

VPN nach Energiesparmodus oder Ruhezustand automatisch wieder herstellen

Ich habe heute wieder meine Recherche aufgenommen um ein VPN automatisch zu verbinden, nachdem der Computer im Ruhezustand oder im Energiesparmodus war. (Inspiriert durch einen Blogeintrag von Bernd Hengelein.) Wenn eine z.B. WLan-Verbindung abbricht (und damit auch das VPN getrennt wird) oder verbunden wird  tritt dieses Ereignis ein. System.Net.NetworkInformation.NetworkChange.NetworkAvailabilityChanged  Mit folgender Routine kann man dann die Connection wieder herstellen  3     Sub startVPN(ByVal ConnectionName as String)   '  4         Process.Start("RasPhone.exe", "-d " & ConnectionName)  5     End Sub Eine sehr einfache Umsetzung einer Consolen-Anwendung (z.B. im Autostart) könnte dann folgendermaßen aussehen: (Zumindest im Debugmodus hat dies problemlos funktioniert)     1 Imports System.Net.NetworkInformation     2      3 Module Module1     4     Sub Main()     5      6         AddHandler NetworkChange.NetworkAvailabilityChanged, _     7                 AddressOf NetworkChange_NetworkAvailabilityChanged     8      9        ...

posted @ Thursday, June 25, 2009 8:50 AM | Feedback (1)

HierarchyID in LinqToSQL oder Entity-Framework nutzen // MSSQL Server 2008

Leider gibt es noch keinen Weg, in LinqToSQL oder Entity Framework den neuen Datentyp HierarchyID in MSSQL-Server 2008 zu nutzen. (Microsoft am 12.5.2009) Da der Datentyp sehr praktisch, schnell und immer wieder Hierarchien bei Kommentaren, Menüstrukturen usw. auftreten, will ich ihn natürlich trotzdem nutzen. Hierfür erstelle ich erst einmal eine Tabelle, die eine ContentID enthät, welche die Integer-ID meines Contents enthält, die HierarchyID natürlich und eine assoziationTypeID, da ich diese Tabelle für unterschiedlichen Content nutzen möchte. CREATE TABLE [dbo].[t_C_ContentHierarchy](     [d_C_ContentHierarchyID] [int] IDENTITY(1,1) NOT NULL,     [d_ContentID] [int] NOT NULL,     [d_hierarchyID] [hierarchyid] NOT NULL,     [d_I_assoziationTypeID] [int] NOT NULL,  CONSTRAINT [PK_t_C_UserContentHirarchy] PRIMARY KEY CLUSTERED (     [d_C_ContentHierarchyID] ASC )WITH (PAD_INDEX  = OFF,...

posted @ Sunday, May 31, 2009 10:37 AM | Feedback (0)

Websites in ASP.NET - Fallstudien in ASP.NET

Hier ein paar Websites, die in ASP.NET programmiert sind: www.myspace.de www.monster.com www.match.com http://www.handelsblatt.com http://www.faz.net http://www.immowelt.de www.bmwgroup.com www.lego.com  www.dell.com www.xerox.com www.ebay.com   http://www.buy.com  Weitere Fallstudien auf Microsoft.com http://www.microsoft.com/casestudies/search.aspx?Keywords=ASP.NET http://msdn.microsoft.com/en-us/asp.net/aa336563.aspx       

posted @ Friday, March 27, 2009 5:29 PM | Feedback (0)

Im SqlMembershipProvider den Applictionname auf den Hostname setzen

Ich habe eine Anwendung, die die entsprechende Contentdatenbanken jeweils per Hostname auswählt. Da ich prinzipiell den SqlMembershipProvider nutze, möchte ich wenn möglich, den Applicationname des Mebershipproviders entsprechend anpassen. Hier ist der entsprechende Providder dazu: Imports System Imports System.Web Imports System.Data Imports System.Configuration Imports System.Collections Imports System.Web.Security Imports System.Collections.Specialized Imports System.Data.SqlClient Class myMembershipProvider     Inherits System.Web.Security.SqlMembershipProvider     Public Overrides Property ApplicationName() As String         Get             Return HttpContext.Current.Request.Url.Host         End Get         Set(ByVal value As String)             MyBase.ApplicationName = HttpContext.Current.Request.Url.Host         End Set     End Property   End Class

posted @ Friday, March 27, 2009 2:09 PM | Feedback (0)

Control ermitteln welches den Postback ausgelöst hat

Mit der folgenden Funktion kann man ermitteln, welches Control einen Postback ausgelöst hat.    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load                Response.Write(getPostBackControl.ID)     End Sub  Private Function getPostBackControl() As Control          Dim ctlM As Control = Nothing         Dim ctl_Name As String = Page.Request.Params("__EVENTTARGET")         If ctl_Name IsNot Nothing AndAlso ctl_Name <> "" Then             ctlM = Page.FindControl(ctl_Name)         Else             Dim cx As Control = Nothing             Dim ctrlStr As String = ""             For Each ctl As String In Page.Request.Form                 If ctl.EndsWith(".x") OrElse ctl.EndsWith(".y") Then                     ctrlStr = ctl.Substring(0, ctl.Length - 2)                     cx = Page.FindControl(ctrlStr)                 Else                     cx = Page.FindControl(ctl)                 End If                 If TypeOf cx Is System.Web.UI.WebControls.Button _                        ...

posted @ Tuesday, December 09, 2008 2:00 PM | Feedback (0)

Web.Config für die Verwendung von Linq erweitern

Um in einer ASP.NET Website Linq verwenden zu können müssen neben der Umstellung auf .NET 3.5 auch noch folgende Eiträge in der Web.Config gemacht werden: <system.web>        <compilation debug="true">               <assemblies>                       <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />                      <add assembly="System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />               </assemblies>        </compilation>        <pages>            <namespaces>                  <add namespace="System.Linq" />                  <add namespace="System.Data.Linq" />                  <add namespace="System.Xml.Linq" />             </namespaces>        </pages> </system.web>   

posted @ Wednesday, October 29, 2008 6:08 PM | Feedback (0)

Alle Events aus der global.asax.

In Der Global.asax gibt es mehr Events als nur die 4, die standardmäßig in der global.asax aufgeführt sind. Hier ist eine Liste aller mir bekannten Events: Application_Start: Tritt ein, wenn die Application gestartet wird Application_Init: Tritt ein nach _Start Application_Disposed: Tritt ein bevor die Instanz zerstört wird Application_Error: Tritt ein wenn unbehandelte Fehler auftreten. z.B. für Cusom-Errorpage Redirect. Application_End: Tritt ein, wenn die Application beendet wird Application_BeginRequest: Tritt ein, bei jedem Request den ein User macht. Das Session-Objekt ist hier noch nicht verfügbar. Application_EndRequest: Dannach ist der Request vollständig beendet. Application_PreRequestHandlerExecute: Unmittelbar dannach wird die Page oder der Webservice durch den ASP.Net handler  initialisiert. Das Sessionobjekt ist hier bereits verfügbar Application_PostRequestHandlerExecute: Nach dem ausführen des...

posted @ Tuesday, September 09, 2008 6:58 PM | Feedback (0)

Microsoft Sync Framework

Mit Visual Studio 2008 wurden auch die Assemblies des ADO.NET Sync Services installiert. Mit Hilfe dieser API lassen sich (z.B. mobile) Anwendungen die nicht ständig mit der Datenbank verbunden sind einfach mit dem Server syncronisieren. Mit Hilfe eines Assistenten kann man innerhalb weniger Minuten alle notwendigen Routinen und Trigger zur Aktualisierung der ClientDatenbank und der ServerDatenbank erstellen. Auf Channel9 ist ein 18 Minuten Video von Daniel Moth für den Schnelleinstig mit dem Microsoft Sync Framework erschienen. Den Assistenten kann man aufrufen in dem man ein neues  Element "Local Database Cache"  hinzufügt. Im Code wird dann nur noch ein "syncAgent.Synchronize();" benötigt um die Synchronisierung durchzuführen.  

posted @ Friday, February 22, 2008 4:10 PM | Feedback (0)