samples
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>
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...
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...
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." &...
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 ...
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,...
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
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
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 _
...
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>
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...
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.