.NET-Software-Entwicklung - DotNetNuke - Business-Develoment
# Saturday, April 02, 2005

Fuer jeden Satz mit x gibt es auch eine Loesung

Heute habe ich mich noch mal um die Suche in Benutzerprofilen bzw. in der Tabelle ASPNET_PROFILE gekümmert. Um wirklich eine gute Performance zu erreichen. wird man nicht eine redundanten Datenhaltung nicht vermeiden können.

Um nicht den DotNetNuke - Core, Tabellen oder aber die Stored Proceduren von DNN zu verändern, habe ich mich dann für Trigger direkt im MS SQL Server entschieden.

Die Erstellung des Triggers war zunächst etwas problematisch, da man innerhalb eines Trigger nicht auf ein Feld vom Typ "nText" zugreifen kann. Änder der Datentypen wollte ich ja vermeiden und so habe ich einfach die Daten aus der Orginaltabelle gelesen.

Klappt perfekt und die redundante Datenhaltung tut jetzt auch schon fast gar nicht mehr weh :)

Wichtig ist nur das man mit einem Trigger arbeitet, der ausgelöst wird nachdem die Aktion insert ode update durchgeführt wurde.

Beispielhaft sieht das dann so aus:

CREATE TRIGGER GaliNeo_ASPPROFILE_Update  ON [dbo].[aspnet_Profile] FOR INSERT, UPDATE
AS

DECLAR @sPostalCode varchar(5)

DECLARE @sUserId char(100)
DECLARE @iUserId int
DECLARE @sUserName nvarchar(50)

/*die aktuelle UserId ermittlen, die vom update betroffen ist */
select @sUserId=Userid from inserted

/*Benutzername aus der Tabelle ermittlen, damit die DNN-UserId ermittelt werden kann*/
SELECT @sUserName = [UserName] FROM ASPNET_USERS WHERE [UserId] = @sUserId

/*Die DNN-UserId wird ermittlet */
SELECT @iUserId = [UserId] FROM Users WHERE [UserName] = @sUserName

/*Ermitteln der geänderten Daten direkt aus der Orginaltabelle */
SELECT
 @sPostalCode=dbo.fn_GetProfileElement('PostalCode',PropertyNames,PropertyValuesString)
FROM ASPNET_PROFILE
WHERE [USERID] = @sUserId

 

IF ((SELECT count(*) FROM GaliNeo_User_Profile WHERE [UserId] = @iUserId)= 0)
begin
 INSERT INTO GaliNeo_User_Profile
 (
 [UserId],
 [PostalCode],
 )
 VALUES
 (
 @iUserId,
 @sPostalCode,
 )
end
else
begin

 UPDATE GaliNeo_User_Profile SET

 [PostalCode] = @sPostalCode
 
 WHERE [UserId] = @iUserId

end

 

 


Saturday, April 02, 2005 7:58:13 PM (W. Europe Daylight Time, UTC+02:00)  #    - Trackback
Datenbank | DotNetNuke
# Thursday, March 31, 2005

Der beruehmte Satz mit "x" ....

Mal wieder das alte Problem der Suche in einem Benutzerprofil in DotNetNuke..... zuerst sah die ganze Geschichte noch recht brauchbar aus, allerdings wird das unter "Druck" ziemlich langsam. Eine Suchanfrage dauert da schon mal 8 Sekunden und das um gerade mal 10 - 15 Datensätze zu ermittlen. Ich finde das ist nicht akzeptable, zumal ich jetzt noch mit keiner großen Datenmengen > 30.000 arbeite.

Also hat sich mein Verdacht bestätigt, dass die Lösung einfach nicht performant genug ist. Das ermittlen der benötigten PLZ geht recht schnell, nur leider dann das zerpflücken der Daten aus der Tabelle ASPNET_PROFILE dauert und dauert. Nun hier kann man aber dem guten SQL-Server keine Schuld geben, für das was dort passiert ist er immer noch verdammt gut  ;-)

Na jetzt muss aber eine andere Lösung her damit DotNetNuke bzw. meine Lösung hier etwas mehr Spaß macht!

Meine Idee ist jetzt einfach mit einer redundanten Tabelle zu arbeiten, in denen ich die Daten aus der Tabelle ASPNET_PROFILE speichere. Um aber dafür nichts im Core-Bereich zu modifzieren, werde ich versuchen die Daten via Trigger in die neue Tabelle zu schreiben.

Ob mir das geklingt und wie das wird .. na klar, gibt es hier auf dieser Welle!


Thursday, March 31, 2005 1:01:16 AM (W. Europe Daylight Time, UTC+02:00)  #    - Trackback
Datenbank | DotNetNuke

Alternative zu SelfHtml

SelfHtml ist eine der bekanntesten Anlaufpunkte für Leute die sich mit HTML rumschlagen dürfen. Gerade habe ich beim Surfen folgende Alternative gesehen:

http://www.htmlbasis.de/frame_l.htm


Thursday, March 31, 2005 12:10:13 AM (W. Europe Daylight Time, UTC+02:00)  #    - Trackback
Allgemein
# Friday, March 25, 2005

Stored Procedure "WHERE IN" Parameter übergeben

Wie kann man an eine Strored Procedure eine List übergeben, die für einen WHERE Part benötigt werden.

WHERE PLZ IN '22222','22222'

Zunächst unterstützen Stored Procedure keine Array's, deswegen muss man ein wenig tricksen.

Create Procedure Gibmaluser

@sParamList nvarchar(400)

AS   

DECLARE @sqlStr nvarchar(4000)

@sqlStr = 'SELECT * FROM Meiner_Tabelle WHERE Name In (' +  @sParamList + ')'
EXEC @sqlStr

go

Um diese SP nun aufzurufen muss man dann lediglich folgendes machen:

sp_GetVendorsByList '''1'',''2'',''3'''

Die ganze Geschichte brauche ich, wie sollte es auch anders sein, für DotNetNuke und der Suche nach Benutzernprofilen.

PS:
Das ist natürlich jetzt kein Hexenwerk und man findet schon jede Menge Stuff darüber bei google, aber ich gebe doch so gerne auch meine Senf dazu ;-)


Friday, March 25, 2005 10:15:54 PM (W. Europe Standard Time, UTC+01:00)  #    - Trackback
.NET | Datenbank

Löschen von permanente Module in DotNetNuke

So, nachdem ich das erste Modul zur Sortierung von den wie ich sie getauft habe "permanten Modulen" fertig hatte, habe ich mich an das nächste gemacht. Schon mal versucht ein solches Modul wieder aus dem Portal bzw. aus einzelenen Seiten zu entfernen? Herzlichen Glückwunsch, so billig können Aushilfskräfte gar nicht sein ;-)

Also musste ein Admin-Modul her, womit ich ein solches Modul schnell entfernen kann.

Der Ablauf ist recht simpel, man wählt das Modul aus, bekommt eine Liste mit allen Seiten und wählt dann aus ob auf allen oder nur auf bestimmten Seiten, das Modul gelöscht werden soll.

Mein nächstes Vorhaben ist etwas kniffliger, denn ich möchte das nach dem Erstellen / Hinzufügen einer Seite, diese direkt alle permanten Module so konfiguriert, wie auf einer "Schablone" definiert.
Ja natürlich kopiert DNN die Module auf die neue Seite, aber leider ist die Sortierreihenfolge immer falsch bzw. wird auf -1 gesetzt und das eine oder andere Mal hatte ich auch trouble mit den Skins.

Die Kunst ist hierbei natürlich nicht in den Core einzugreifen... mal schauen wie das wird....


Friday, March 25, 2005 3:39:53 PM (W. Europe Standard Time, UTC+01:00)  #    - Trackback
DotNetNuke
# Thursday, March 24, 2005

Loesung: Suchen in der ASPNET_PROFILE Table / DotNetNuke Profil

So, nach ein wenig google etwas Arbeit habe ich jetzt ein Lösung gefunden, die sogar recht performant aussieht.

Zunächst noch ein paar Basics:

Die Tabelle ASPNET_PROFILE beinhaltet folgende Felder:

  • UserId
  • PropertyNames
  • PropertyValuesString
  • PropertyValuesBinary
  • LastUpdatedDate

Das Feld PropertyNames beinhaltet eine mit ":" separierte Zeichenfolge, die definiert welche Benutzereigenschaften / -properties gespeichert werden. Zusätzlich wird die Position dort angegeben. Ein Beispiel:

FirstName:S:39:7

Dieser (Teil-)Eintrage besagt das die Property den Namen "FirstName" hat, vom Typ String "S" ist, an der Postion 39 anfängt und 7 Zeichen lang ist.

Um nun einzelene Daten zur extrahieren, habe ich mir eine die Funktionalität der UDF (User Defined Functions) vom Microsoft SQL Server bzw. der MSDE zu nutze gemacht. Diese Funktionen können direkt aus SQL-Statements aufgerufen werden.

CREATE FUNCTION dbo.GaliNeo_UDF_GetElement
(
@ord AS INT,
@strToParse AS VARCHAR(8000),
@seperator AS VARCHAR(1)
)
RETURNS INT
AS
BEGIN

  -- Wenn die Eingabeparatemer null sind, wird auch null zurück gegeben
  IF  @strToParse IS NULL
      OR LEN(@strToParse) = 0
      OR @ord IS NULL
      OR @ord < 1
       OR @ord > LEN(@strToParse) - LEN(REPLACE(@strToParse, @seperator, '')) + 1
    RETURN NULL

  DECLARE @ipos AS INT, @curord AS INT

  SELECT @ipos = 1, @curord = 1

  -- nächsts Element suchen
  WHILE @curord < @ord
    SELECT
      @ipos    = CHARINDEX(@seperator, @strToParse, @ipos) + 1,
      @curord = @curord + 1
  RETURN    CAST(SUBSTRING(@strToParse, @ipos, CHARINDEX(@seperator, @strToParse + @seperator, @ipos) - @ipos) AS INT)
END

Die GaliNeo_UDF_GetElement ist eine sehr allgemein Funktion um mit separierte Strings in SQL-Queries zu arbeiten. Sehr hilfreich war dabei ein Artikel auf der Seite WindowsItPro.

Diese Funktion können wir nun in der eigentlichen UDF "GaliNeo_UDF_GetProfileElement" nutzen:

CREATE FUNCTION dbo.GaliNeo_UDF_GetProfileElement
(
@fieldName AS NVARCHAR(100),
@fields AS NVARCHAR(4000),
@values AS NVARCHAR(4000)
)
RETURNS NVARCHAR(4000)
AS
BEGIN

  IF  @fieldName IS NULL
      OR LEN(@fieldName) = 0
      OR @fields IS NULL
      OR LEN(@fields) = 0
      OR @values IS NULL
      OR LEN(@values) = 0
    RETURN NULL

DECLARE @fieldNameToken AS NVARCHAR(20)
DECLARE @fieldNameStart AS INTEGER, @valueStart AS INTEGER, @valueLength AS INTEGER

SET @fieldNameStart = CHARINDEX(@fieldName + ':S',@Fields,0)

IF @fieldNameStart = 0 RETURN NULL
SET @fieldNameStart = @fieldNameStart + LEN(@fieldName) + 3

SET @fieldNameToken = SUBSTRING(@Fields,@fieldNameStart,LEN(@Fields)-@fieldNameStart)

SET @valueStart = dbo.GaliNeo_UDF_GetElement(1,@fieldNameToken,':')
SET @valueLength = dbo.GaliNeo_UDF_GetElement(2,@fieldNameToken,':')

IF @valueLength = 0 RETURN ''

RETURN SUBSTRING(@values, @valueStart+1, @valueLength)
END

Aus einer SQL Query kann jetzt diese Funktion wie folgt genutzt werden:
SELECT dbo.GaliNeo_UDF_GetProfileElement('PostalCode',PropertyNames,PropertyValuesString) FROM aspnet_Profile

So, das tat doch mal wieder fast nicht weh und bei 10.000 Profilen ist es von der Performance noch in Ordnung. Mal schauen wie es sich verhält, wenn man etwas mehr Daten in er DB hat.

 


Thursday, March 24, 2005 1:42:25 AM (W. Europe Standard Time, UTC+01:00)  #    - Trackback
ASP.NET | DotNetNuke
# Wednesday, March 23, 2005

Erweiterte DotNetNuke Benutzerprofile

Ich habe ein Modul geschrieben, dass es einem Portalbenutzer erlaubt mehr über sich zu verraten. Dabei nutze ich zum einen die von DNN Core-Team eingesetzt Whidby Implementierung um verschiedene Daten abzuspeichern.

Jetzt wollte ich noch eine Suche programmieren mit der Möglichkeit sich alle Benutzer im Umkreis von x-KM anzeigen zu lassen (also eine klassische Umkreissuche). Nach einer langen Nacht, ziemlich viel Mathe (oh man studiere ich etwa wieder -)) und google ist die Umkreissuche aus kein Thema.
Aber wie komme ich nun an die PLZ der einzelnen Benutzer ran. Diese sind mit allen anderen Informationen wie Stadt, Telefon, usw. in einem Text-Feld gespeichert.

Ich hoffe nicht, dass ich jetzt jedes Textfeld zerlegen muss um an die PLZ zu kommen. Das macht bei mehrere zehntausend Profilen keinen Spaß :(
Eine weiter Idee ist mir gekommen, dass ich beim speichern der Profile einen Trigger anwerfe der die PLZ in eine neue Tabelle schreibt.

Frage: Wer hat sich so eine Form der Datenspeicherung einfallen lassen?????

Weiter Infos und die Lösung dieses Problems gibt es hier im Block....


Wednesday, March 23, 2005 5:08:29 PM (W. Europe Standard Time, UTC+01:00)  #    - Trackback
DotNetNuke
# Saturday, March 19, 2005

Fertig: DotNetNuke permanente Module

So, jetzt ist das Admin-Modul online und wird beim Kunden getestet. Bei der Entwicklung sind mir noch ne ganze Menge mehr Szenarien eingefallen, die man bei der Verwaltung von DNN - Modulen einstetzen kann z.B.:
Schon mal versucht ein permanantes Module zu löschen? Okay, bei 10 Seiten geht das noch aber bei größeren Portalen macht das wirklich keinen Spaß!

Werde mich damit in den nächsten Wochen nach und nach befassen und hoffe somit das DotNetNuke noch besser zu administrieren sein wird. Nicht das DNN schlecht wäre aber es handelt sich halt um ein universelles System.

Die Basis von DotNetNuke ist einfach klasse und das Potential sehr groß!

 


Saturday, March 19, 2005 5:36:22 PM (W. Europe Standard Time, UTC+01:00)  #    - Trackback
DotNetNuke
# Thursday, March 17, 2005

DotNetNuke permanente Module

Na da habe ich doch wieder etwas entdeckt, was an DotNetNuke nicht so super toll funktioniert bzw. schwer zu handel ist. Bei einem Projekt habe ich eine zweite Navigation aufgebaut, die ich mit dem Link-Modul realisiert habe. Diese Module bzw. die Container sollen jetzt auf allen Seiten erscheinen - gut das ist kein Problem, denn DotNetNuke bietet mir ja die Möglichkeit in den Moduleoptionen dieses zu definieren "Show on all Tabs". Das macht DotNetNuke auch ganz brav, nur leider wird die Reihenfolge der einzelnen Module, immer etwas nach dem Zufallsprinzip ermittelt.

Aus diesem Grund habe ich mich heute Abend hingesetzt um für solche Anwendungsfälle ein Modul zu entwicklen, dass die Reihenfolge eines Modul auf allen Seiten neu setzt.

Zunächst wählt man ein Modul und bekommt anschließend eine Liste mit allen Tabs auf denen das Modul angezeigt wird. Nun hat man die Möglichkeit entweder für jedes Tab einzeln eine neue Platzierung anzugeben oder aber für alle Tabs auf einmal.

Natürlich ist das nicht ganz ungefährlich, da es ja auch durch aus sein, dass hier Konflikte auftreten können, wenn ein einzelnes Modul zwischen den permanten Modulen exisitert. Allerdings wird dieser Anwendungsfall im ersten Schritt bewußt auser Acht gelassen. Derzeit (also im aktuellen Projekt) kommt es halt nicht vor.

In diesem Modul steckt mit Sicherheit noch einiges an Potential, um die Usability von DNN zu verbessern ...

Hoffe das ich morgen die ersten Ergebnisse und die Reaktion von DotNetNuke berichten kann...


Thursday, March 17, 2005 11:05:48 PM (W. Europe Standard Time, UTC+01:00)  #    - Trackback
DotNetNuke
# Monday, March 14, 2005

DotNetNuke 3.0.12

Nach langem warten ist es endlich so weit, die Portalsoftware DotNetNuke wurde in der Version 3.0.12 freigegeben und diesmal ohne ein lästiges "Beta" dahinter!

Zudem hat das Core-Team eine Erweiterung der Modul-Palette angekündigt. Darauf darf man sehr gespannt sein!


Monday, March 14, 2005 2:59:31 AM (W. Europe Standard Time, UTC+01:00)  #    - Trackback
DotNetNuke
# Sunday, March 13, 2005

Posting form data von einer ASP.NET Seite zu einer anderen URL

Für verschiedene Szenarien ist es notwendig, dass Sie den Inhalt einer <form /> zu fremden URL posten müssen. Ein Beispiel für eine solche Anwendung wäre z.B. die Einbindung von Payment-Systemen.
Die Problematik besteht darin, dass bei ASPX-Seiten kein anderes Ziel als sich selber erlauben bzw. einstellbar sind. Natürlich gibt es für solche Momente auch eine Lösung - ja sogar mehrere:

Eine Lösung wäre folgende Methode:

RemotePost myremotepost =  new RemotePost()
myremotepost.Url = "http://www.galineo.de/demo/HttpRequestDemoServer.aspx"
myremotepost.Add("Name","Mustermann")
myremotepost.Add("Vorname","Fritz")
myremotepost.Post() 

Die RemotePost - Klasse ist sehr gut für solche Zwecke geeignet.

Die Empfangsseite kann wie gewohnt die Inhalte auslesen:

<%@ Page Language="C#" %>

<script runat="server">

void Page_Load(object sender, EventArgs e){
if (Request.Form["Name" != null ){
Response.Write("Name : " + Request.Form["Name" + "")}

if(Request.Form["Vorname" != null ){
Response.Write("Vorname: " +Request.Form["Vorname" + "")}
}
</script>

 

 


Sunday, March 13, 2005 1:27:14 PM (W. Europe Standard Time, UTC+01:00)  #    - Trackback
.NET
# Saturday, March 12, 2005

Dotnetnuke erweiterte Benutzerprofile

Derzeit arbeite ich daran eine Communtiy auf Basis von DNN zu erstellen. Es handelt sich dabei (wie schon mal weiter unten geschrieben) um eine Community rund um das Thema Ernährung, Fitness, usw. (www.lowfett.de). Was ich für DNN nicht gefunden habe ware so etwas wie erweiterte Benutzerprofile, also die Anforderung z.B. auch ein Bild von sich online zu stellen.

Jetzt habe ich ein einges Modul dafür entwickel. Dabei habe ich zunächst das Profil um folgende Angaben erweitert

  • Geburtstag
  • Geschlecht
  • Größe
  • Gewicht
  • Sternzeichen
  • Haarfarbe
  • Augenfarbe
  • Bild

Diese Informationen werde über die "Whidbey" Implementierung gespeichert. Da dieses allerdings sehr statisch ist und nicht ohne zu programmieren erweitert geändert werden kann, musste noch dynamischer aufgebaut werden.

Nun habe ich mich hingesetzt und eine Verwaltung geschrieben, die es einem Benutzer - oder viel mehr Admin - erlaubt ein komplett eigenes Profil zu erstellen. Dabei stehen als Antwortmöglichkeiten folgendes zur Verfügung:

  • Checkboxen (also Mehrfachauswahl)
  • Radiobutton (Einfachauswahl)
  • Comboboxen
  • Freies Textfeld

Wenn ich es schaffe, werde ich in den nächsten Tagen davon ein paar Screenshots machen.

Durch diesen Mechanismus kann man jetzt weitere Eigenschaften dem Profil hinzufügen (z.B. Hobbies, Interessen, usw.).


Saturday, March 12, 2005 3:18:53 PM (W. Europe Standard Time, UTC+01:00)  #    - Trackback
DotNetNuke
# Thursday, March 10, 2005

Shop / Store bzw. Ecommerce Löung für DotNetNuke in C#

Für die DotNetNuke Plattform gibt es nur eine limitierte Anzahl von ECommererce-Lösungen.

Folgende sind derzeit erhältlich:

Nun wird eine weitere Lösung hinzukommen. Da mich keine der Lösungen total überzeugt hat (obwohl CataLook schon fast ein Knaller ist) werde ich nun eine eigenen Implementieren. Eine Schwachstelle soll von Beginn an nicht auftretten: schlechte Usability.

Es wird mit Sicherheit noch einige Zeit dauern bis die Lösung fertig ist aber wer noch Zeit zu warten hat .. soll warten :)

Ach, es wird ein 100% DNN Modul(e) und komplett in C# entwickelt. Will hier keine Glaubenskrieg oder wilde Diskussionen lostretten, aber ich mag C# lieber ... auch wenn es nur wenige Punkte Vorsprung hat zu VB.Net ;-)

 


Thursday, March 10, 2005 4:04:37 PM (W. Europe Standard Time, UTC+01:00)  #    - Trackback
.NET | DotNetNuke
# Wednesday, March 09, 2005

Microsoft .NET bei ERP-Software

Ganz interessant, wo Microsoft mit der ERP-Software unter .NET noch so überall hin will. Michael Gandke berichtet über die aktuelle Berichterstattung in der Fachpresse und über Microsoft in Siegerlaune.
Wednesday, March 09, 2005 8:45:25 PM (W. Europe Standard Time, UTC+01:00)  #    - Trackback
.NET
# Sunday, March 06, 2005

DotNetNuke / DotNet Tools

Hier ist eine Liste von coolen Tools, die einem so bei der täglichen Arbeit helfen können ;-)

 


Sunday, March 06, 2005 1:12:00 PM (W. Europe Standard Time, UTC+01:00)  #    - Trackback
Allgemein

Deutsche DotNetNuke Community wächst

Seitdem  6. Dezember ist die deutschesprachige Seite dnnportal.de online. Mittlerweile verzeichnet diese Seite täglich 10.000 Zugriffe und die Benutzeranzahl wächst von Tag zu Tag ...

Fragen / Antworten / Diskussionen / News .. all das findet man auf dieser Seite.

Das ist ein gute Beweis dafür, dass sich DotNetNuke immer mehr durchsetzt und als Portallösung ernst genommen wird.


Sunday, March 06, 2005 12:47:40 PM (W. Europe Standard Time, UTC+01:00)  #    - Trackback
DotNetNuke
# Wednesday, March 02, 2005

FreeTextbox in DotNetNuke / Images / Folders

Bei der Imagegallery der FreeTextBox innerhalb von DNN trat immer das Problem auf, dass Ordner ab der zweiten Ebene nicht mehr angezeigt wurden. Egal welche DNN - Berechtigungen gesetzt wurden, lediglich der Host konnte immer alle Ordner sehen.

Das Problem bzw. die Lösung ist ganz einfach:

In der Datenbank werden die Ordner so abgelegt "MeinOrdner/SubOrdner", bei der Überprüfung der Rechte wird aber "MeinOrdner\SubOrdner" übergeben. Dadurch wird natürlich keine Berechtigung gefunden und die Ordner werden nicht angezeigt.

Eine Zeile Code im Projekt "Provider.Ftb3HtmlEditorProvider" ist nötig und schon läuft es wieder. Öffnen der Datei "ftb.imagegallery.aspx.vb" und die Funktion "Page_PreRender" eine Zeile Code einfügen:

strDirectory = strDirectory.Replace("\", "/")

 

Die komplette Funktion sieht dann so aus:

 

Private Sub Page_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.PreRender

' Obtain PortalSettings from Current Context
Dim _portalSettings As PortalSettings = CType(Context.Items("PortalSettings"), PortalSettings)

'Get the list of sub-directories
Dim strDirectories As String() = System.IO.Directory.GetDirectories(Server.MapPath(imgGallery.CurrentImagesFolder), "*")
Dim alDirectories As ArrayList = New ArrayList
Dim strDirectory As String
Dim roles As String
Dim i As Integer
Dim s As String

'Parse directories (only adding those we have permission for
For i = 0 To strDirectories.Length - 1

   If PortalSettings.ActiveTab.ParentId = PortalSettings.SuperTabId Then
      strDirectory = strDirectories(i).Substring(Common.Globals.HostMapPath.Length)
   Else
      strDirectory = strDirectories(i).Substring(PortalSettings.HomeDirectoryMapPath.Length)
   End If

   'DANFIX 
   strDirectory = strDirectory.Replace("\", "/")

   roles = FileSystemUtils.GetRoles(strDirectory, _portalSettings.PortalId, "READ")

   If PortalSecurity.IsInRoles(roles) Then
      
alDirectories.Add(strDirectory)
   End If

Next

imgGallery.CurrentDirectories = CType(alDirectories.ToArray(GetType(System.String)), String())

End Sub


Wednesday, March 02, 2005 7:11:46 PM (W. Europe Standard Time, UTC+01:00)  #    - Trackback
DotNetNuke
# Monday, February 28, 2005

Oracle hat eine neue Website für .NET Entwickler

Das Oracle Technology Network hat eine neue Webseite mit dem Namen ".NET Developer Center" online gestellt. Hier gibt es alle wichtigen Informationen für die Entwicklung von .NET-Anwendungen, die Oracle-Datenbanken nutzen.

Um optimal mit einer Oracle-Datenbank zusammen zuarbeiten gibt es ein Visual Studio Plug-In zum freien Download.

http://www.oracle.com/technology/tech/dotnet/


Monday, February 28, 2005 1:28:19 AM (W. Europe Standard Time, UTC+01:00)  #    - Trackback
.NET | Datenbank

Microsoft SQL Server 2005 für verschiedene Kundensegmente

Die neue Version des MS SQL Servers wird für verschiedene Anforderungen der Kunden verfügbar sein. Microsoft hat eine Unterteilung in vier Gruppen vorgenommen und will damit jede Zielgruppe optimal bedienen:

  1. SQL Server 2005 Enterprise Edition: komplette Daten- und Analyseplattform für umfangreiche Unternehmensanwendungen
  2. SQL Server 2005 Standard Edition: komplette Daten und Analyseplattform speziell für mittelständische Unternehmen
  3. SQL Server 2005 Workgroup Edition: preisgünstigere und einfach zu handhabende Datenbank-Lösung für die Ansprüche kleiner und mittelständischer Unternehmen
  4. SQL Server 2005 Express Edition: kostenlose, einfach zu handhabende Version, die für den Aufbau von einfachen datengestützten Anwendungen entwickelt wurde

Mehr Informationen findet man unter: http://www.microsoft.com/sql/


Monday, February 28, 2005 12:38:44 AM (W. Europe Standard Time, UTC+01:00)  #    - Trackback
Datenbank
# Thursday, February 24, 2005

DotNetNuke Version 3.0.11 Beta

Das DotNetNuke - Team hat einen neue Betaversion (BETA 3.0.11) lanciert. Diese findet man wie immer unter http://www.dotnetnuke.com.
Die Installation verläuft wie immer ohne Probleme, selbst ein Update von der 3.0.10 war möglich.

Dieses ist laut Ankündigung die letzte Beta (!) die nächst Version soll eine die 3.0 Final sein.

 


Thursday, February 24, 2005 2:46:15 PM (W. Europe Standard Time, UTC+01:00)  #    - Trackback
.NET | DotNetNuke