Laden...
S
Stefan O. myCSharp.de - Member
Bergisch Gladbach Dabei seit 08.11.2009 72 Beiträge
Benutzerbeschreibung

Forenbeiträge von Stefan O. Ingesamt 72 Beiträge

10.08.2010 - 21:56 Uhr

Hallo cyc,

man sollte Exceptions nicht verwenden um den Programmfluss zu steuern.
Abgesehen davon, sollte man keine öffentlichen Felder machen. Verletzt die Kapselung der OO.

10.08.2010 - 17:36 Uhr

Hallo Mimetype,

vielleicht solltest du über einen eigenen MembershipProvider nachdenken?

10.08.2010 - 16:41 Uhr

allo hitsuji,

JavaScript löst nicht die Serverseitige Validierung ab.
mMn sollte man beides machen.

07.08.2010 - 16:42 Uhr

Hallo #coder#,

eine .ascx Datei kann man leider nicht ohne weiteres in eine dll auslagern.
Es gibt die Möglichkeit, aber dazu müsstest du bitte google bemühen. Hab die Links grad nicht zur Hand.

Ansonsten ist es möglich CustomControls zu programmieren, welche in dlls ausgelagert werden können.

05.08.2010 - 09:56 Uhr

@ FZelle

Danke für die ausführliche Erläuterung.
Ich versuche derzeit für mich selbst abzuklären ob es sinnvoll ist private zu testen.
Zum Beispiel wurde im "Lernen von anderen" Artikel der dotNetPro 01/2010 auch private bzw. internal getestet.

Aber ich denke auch, dass das Testen von privaten Methoden "unsinnig" ist.

@spike24

Da musst du mich missverstanden haben. Natürlich sollte es private/internal Klassen nur geben wenn Sie auch verwendet werden. Ansonsten sind sie "müll".

04.08.2010 - 17:43 Uhr

(...)
Aber wenn etwas so wichtig ist, das man meint es testen zu müssen, dann ist es automatisch falsch als privat oder internal deklariert.

Und das ist eben einer der Aspekte von TDD, man sieht beim Erstellen des Kontraktes ( denn der kommt zuerst ) was zu testen ist, und alles was zu testen ist ist eben öffentlich.

Und was nicht öffentlich ist, braucht auch nicht getestet werden.
(...)

Hallo FZelle,

deine Aussage würde aber bedeuten, das Hilfsklassen einer Assembly, welche internal sind, nie getestet werden. Oder würdest du diese auch implizit durch die öffentlichen Kontrakte mittesten?

30.07.2010 - 09:48 Uhr

Hallo digi333,

ist es möglich das du einfach eine 2te Instanz der Klasse erstellst?

Ansonsten müsstest du mal nach Deep Copy googlen. Vielleicht gibts da ein Tool oder so, das solche arbeiten erledigen kann.

Gruß
Stefan O.

30.07.2010 - 08:34 Uhr

Hallo zusammen,

Zuerst einmal der Beispielcode, damit ihr wisst was genau ich will.


    public class Foo {
        public Foo(string string1) {
            String1 = string1;
        }
    }
    public class Bar {
        public Bar(int int1) {
            Int1 = int1;
        }
    }
    public class FooBar {
        public FooBar(Bar bar, Foo foo) {
            mBar = bar;
            mFoo = foo;
        }
    }

Zu diesem Code gibt es folgende Registierung:


builder.Register<Foo>();
builder.Register<Bar>();
builder.Register<FooBar>();

Nun möchte ich mir von LightCore FooBar auflösen lassen. Beim Auflösen wiederum möchte ich aber die Konstruktorparameter von Foo und Bar mitgeben, da diese zur Registrierung nicht bekannt sind.
Ist das möglich? Ich hab schon die Auflösung von FooBar mittels übergebener Parameters (params, AnonymerTyp) probiert, aber da handel ich mir eine Exception ein.
Hat jemand eine Idee oder übersehe ich einfach etwas ganz offensichtliches?

Grüße
Stefan O.

15.07.2010 - 23:29 Uhr

Hallo liebe Community,

heute hat sich für mich auf der Arbeit eine Interessante Frage für die Verwaltung von Versionsabhängigem Quellcode gestellt.
Da ich leider keine befriedigende Lösung finde, würde ich euch gerne um Rat/Erfahrungen oder Tipps & Tricks bitten.

Die Frage ist folgende:
Wie verwalte ich meinen Quellcode eines Tools, welches ich in der .Net Version anhebe aber noch weiterhin in der alten Version supporten (hauptsächlich Bugfixing) möchte?

Meine erste Idee war, ich baue ungefähr folgende Ordnerstruktur auf:

Libs

  • 2.0
    -- ToolFoo
    -- ToolBar
  • 3.5
    -- ToolFoo1

Ich habe also für jede .Net Version einen Ordner wo die Projekte der entsprechenden Version liegen.
Wenn ich nun ein Projekt von 2.0 auf 3.5 heben will (Ich weiß, dass diese Versionen kompatibel sind, für meine Frage gehen wir aber mal davon aus das Sie es nicht sind), würde ich den Code einmal in den 3.5 Ordner kopieren und dort entsprechend anpassen damit es für diese Version läuft.
Wenn ich nun aber einen Bug finde, der in beiden Versionen vorhanden ist, muss ich ihn in beiden Projekten beheben. Das erzeugt Aufwand und ist m.M.n. auch nicht sehr DRY.

Eine weitere Möglichkeit wäre auch Quellcodeshareing. Damit habe ich aber bislang keinerlei Erfahrung. Auch wäre bei dieser Lösung meine einzige Idee das beheben eines Bugs über bedingte Kompilierungen zu lösen (Falls sich die Lösungswege unterscheiden).

Ich hoffe ich habe mich verständlich ausgedrückt und ihr versteht was ich meine/worauf ich hinaus will.

Habt ihr eine Idee? Geht es vielleicht gänzlich anders und einfacher?

Grüße
Stefan O.

06.07.2010 - 17:36 Uhr

Hallo MrSparkle,

wenn das Projekt auch "dir" gehört kannst du folgendes verwenden: InternalsVisibleTo

02.07.2010 - 20:40 Uhr

Hallo Diräkt,

wie wäre es mit den Projekteigenschaften? Dort kannst du unter "Erstellen" -> "Symbole für bedingte Kompilierung" einfügen.

02.07.2010 - 16:50 Uhr

Hallo Kaji,

gehört die Validierung zum Controller oder zum Model? Meiner Meinung nach zum Model (was nicht bedeutet das es IN diesem Implementiert sein muss).

Auch kann ich dir noch das Tutorial (NerdDinner) aus diesem Thread ASP.NET MVC 1, Beispiele in Visual Stuio 2010 empfehlen. Bin auch gerade dabei dieses durchzuarbeiten.

01.07.2010 - 18:09 Uhr

Hallo Kaji,

ich bin auch gerade dabei mich mit MVC (2) zu beschäftigen.
Meiner Erkentniss/Meinung nach ist das ViewModel lediglich eine Aggregierung um die Darstellung von "mehr" als einer Model-Klasse zu realisieren. Oder ist es möglich einer View mehrere Typen von Model beizubringen? Schätze nicht, dann müsste es ja eine Models Collection innerhalb der View geben.

Ich dachte immer es geht diesen Weg Model->Controller->View und View->Controller->Model und nie View->Model.

Es geht auch der Weg View -> Model bzw. Model -> View, wobei zu beachten ist das jegliche Model-Klassen Aktualisierng über den Controller läuft.
Der View muss ja wissen "was" für Daten er darzustellen hat. Das Model wiederum kann dem View mitteilen: "Hey. Ich habe mich geändert. Bitte aktualisiere dich."

MfG
Stefan O.

27.06.2010 - 12:36 Uhr

hallo oliversharp,

ich hatte mir zum angucken von MVC2 folgendes Tutorial durchgeschaut: MvcMusicStore - Codeplex

21.06.2010 - 19:06 Uhr

Ich muss fielding & HannesB zustimmen.

Ich finde es teilweise recht schwierig "korrekte" Unittests zu schreiben und auch im "richtigen" Maße.

Der Dotnet Pro Artikel von RalfW mit Golo Roden war schon hilfreich was die ungefähre Richtung der Unittests angeht. Aber irgendwie fehlt da noch das "Ah! So sollte das laufen"-Effekt.

Gruß
Stefan

23.03.2010 - 18:41 Uhr

Hallo bert21,

bitte poste mal den Code der zu dem Kontext passt (nicht alles!).

Ansonsten müsste die Antwort von winSharp93 schon passen ^^.

14.03.2010 - 14:11 Uhr

Hallo Apfelschorle,

da weiß ich leider nicht.
Wäre aber auch interessant zu wissen. 😃

14.03.2010 - 13:55 Uhr

Hallo Apfelschorle,

  1. Hast du in den Projekteinstellungen eingestellt das die XML-Kommentare mit ausgegeben werden ?
  2. Die XML-Datei muss im gleichen Ordner liegen wie die Dll, damit Visual Studio die Intellisense korrekt erkennt.
14.03.2010 - 12:36 Uhr

Hallo CrazyDoc,

ohne mir alles genauer durchglesen zu haben, solltest du mit dem Strategy-Pattern weiterkommen.

12.03.2010 - 18:54 Uhr

Hallo morphious,

Projekt Eigenschaften -> Build -> XML documentation file

08.03.2010 - 06:41 Uhr

Hallo dein.Tod,

wenn du versuchst eine Tabelle anzulegen kenne ich nur den weg über MSDN - Create Table und die von dir geschriebene "Art" wäre mir gänzlich neu.

Gruß
Stefan

05.03.2010 - 23:01 Uhr

Hallo Yheeky,

antwort auf deine Frage: Keine Ahnung. Aus deiner Beschreibung wird man nicht schlau 😉

Aber wenn du einen Index anlegen willst, mache es entweder über das Management Studio oder aber per SQL. Und der SQL lautet wie folgt -> MSDN - Create Index

04.03.2010 - 22:20 Uhr

Hallo Andybritten,

was versuchst du da überhaupt?
Das sieht mir irgendwie nach wilder umcasterei von Objekten aus.
Von wo nach wo soll es überhaupt gehen?

Zusätzlich würde ich dich gerne auf Punkt 5 der Regeln hinweisen. [Hinweis] Wie poste ich richtig?

04.03.2010 - 22:04 Uhr

Hallo Andybritten,

mir fällt gerade nur MSDN - BitConverter ein.

04.03.2010 - 21:03 Uhr

Hallo Andybritten,

ich glaube du verwechselst da irgendwas. Du rufst eine Methode auf, wie willst du dieser also nun Werte mitgeben die in keiner Variable stehen???


var var1, var2, var3, var4;

CryptUnprotectData(ref var1, null, ref var2, var3, ref var4, 0, ref Ors);

04.03.2010 - 18:44 Uhr

Hallo schuppsl,

meiner Meinung nach gibt es da eine sehr schöne Ansatzstelle (habe ich zuminest für mich vor kurzer Zeit entdeckt ^^): MSDN: IHttpModule

Dazu gleich noch ein kleiner Link (die verlinkten Sachen von Peter Bucher).

Und noch ein Thread von mir wegen Instanzierung eines HttpModules.
[Gelöst] IHttpModule implementierende Klassen und deren Lebens- bzw. Verwendungszeit

Gruß
Stefan

02.03.2010 - 22:57 Uhr

Hallo,

ich habe auch meine 2 Ausgaben bekommen.
Nach kurzem E-Mail Verkehr mit Herrn Silvio Sommer, sind diese Probehefte absolut unverbindlich und ohne anschliessendes Abo zu beziehen. Zur Info

Gruß
Stefan

02.03.2010 - 06:33 Uhr

Hallo flyAway,

wenn ich mich nicht irre musst du dabei lediglich beachten, dass in der web.config Debug="false" ist.

Gruß
Stefan

01.03.2010 - 18:04 Uhr

Da könnte dir - wenn es in einer dll vorliegt - der Reflector bei helfen 😉

28.02.2010 - 12:48 Uhr

Hallo ChrisB_BT,

Kann das unter umständen daran liegen, dass this.Request.Url.Query nicht funktioniert?

Das weiß ich jetzt so auf die schnelle nicht.

Aber wäre es nicht einfacher die

Request.QueryString

-Collection an deine Navigation zu übergeben?

28.02.2010 - 12:19 Uhr

Hallo ChrisB_BT,

ich behaupte mal es hat nichts mit dem HTTPS zu tun, weil dies lediglich die Übertragungsart ist und nichts an den Übertragenen Daten ändern sollte.

Wie genau ist denn deine Page_Load aufgebaut?
Kleiner Ausschnitt wäre gut.

27.02.2010 - 20:41 Uhr

Hallo ostems,

kurze Anmerkung zur Verwendung vom StreamReader.

Ich würde das ganze ungefähr so machen:


using(StreamReader sr = new StreamReader(...)){
    while(!sr.EndOfStream){
        sr.ReadLine();
    }
}

Gruß
Stefan

27.02.2010 - 12:01 Uhr

Hallo Akunz,

du kannst nichts (ohne weiteres) umcasten, was nicht in einer Vererbungskette zieht.

Das einzige was mir jetzt einfallen würde wäre es mit MSDN - explicit (C#-Referenz) zu realisieren.

Gruß
Stefan

25.02.2010 - 15:50 Uhr

Hallo hExapod4,

ähh ich versteh die Frage nicht 8o.

Schau dir mal MSDN - IDbCommand an. Dort gibt es eine "ExecuteScalar" Methode. Die sollte das gewünschte Ergebnis bringen...

Ps: Du arbeitest wahrscheinlich mit dem SqlCommand 😉

Gruß
Stefan

25.02.2010 - 15:44 Uhr

Hallo Peter

Salute Stefan

Du kannst dir ohne Probleme Felder für die HttpApplication / HttpRequest, etc.. anlegen und in diesem Module benutzen, genau so wie du es gemacht hast.
Es gibt nur eine Instanz pro Modul in der Anwendung, das stimmt, hat aber nicht wirklich was mit deinem Problem zu tun, oder ich verstehe dich falsch.

Gruss Peter

Ich versuche es mal anhand eines Beispiels zu beschreiben:

Ich habe 2 Requests.

  • Request 1 geht durch die Pipeline (IHttpModule's).
  • Ich merke mir im Init das HttpApplication-Objekt in einem Feld
  • Request 2 kommt rein und ruft ebenso die Init() auf.
  • Request 2 schreibt auch sein HttpApplication-Objekt in das Feld.
  • Request 1 erhält ein Event

Frage: Wenn ich nun auf mein HttpApplication-Feld zugreife. Habe ich dann das Objekt von Request 1 oder (was ich vermute) von Request 2, da es sich um eine Instanz von dem Module handelt.

Ich hoffe das ist ein wenig verständlicher 8o

Gruß
Stefan

24.02.2010 - 13:13 Uhr

Hallo adk,

auch nach mehrmaligem durchlesen habe ich noch nicht so ganz verstanden was du damit erreichen willst.

Aber vielleicht hilft dir ja das Decorater-Pattern dabei weiter.

24.02.2010 - 10:55 Uhr

Hast du es mal mit neu installation von Visual Studio probiert?

23.02.2010 - 15:25 Uhr

Hallo sundawn,

ich meine das hier wäre ein 3-Schichten-Modell.
http://www.dotnetframework.de/dotnet/WorldWideWingsDrei.aspx

23.02.2010 - 13:43 Uhr

Hallo zusammen,

nach ein wenig rumgeteste und getüftel scheine ich die Lösung gefunden zu haben.

Es gibt pro "Anwendung" nur eine HttpModule Objekte wodruch alle Requests laufen.
Das bedeutet man kann sich die HttpApplication nicht in einem privaten Feld merken, weil diese sich bei jedem Request ändern würde.

Blöd 😕

Ps: Falls jemand zum gleichen Entschluss oder einem anderen gekommen ist, kann er das gerne noch kundtun!

Gruß
Sefan

23.02.2010 - 13:40 Uhr

Hallo Doltsche,

würde es dann nicht Sinn machen die XML-Datei anders zu strukturieren?

Zum Beispiel:


<BillingList>
    <SummaryData>
        <Datum>Februar</Datum>
    </SummaryData>
    <Billings>
          <Attribute ID="0">
              <PersNr>89799999</PersNr>
              <Name>Thomas</Name>
              <Vorname>Schuler</Vorname>
              <Betrag>0</Betrag>
              <EMail>e-mail adresse</EMail>
          </Attribute>
    </Billings>
</BillingList>

So hättest du zumindest die Daten auch korrekt getrennt und musst nicht mit nem Handstand versuchen innerhalb eines Knotens mehrere Formate abzudecken.

Guß
Stefan

23.02.2010 - 12:59 Uhr

Hallo Doltsche,

wozu brauchst du überhaupt diesen letzten Eintrag gesondert?
So auf den ersten Blick wäre es doch wahrscheinlich einfacher den Wert redundant in allen Einträgen mitzuführen und so erst gar nicht dieses Problem zu kriegen.

Gruß
Stefan

23.02.2010 - 12:29 Uhr

Hallo Doltsche,

du versuchst im letzten Attribute auch auf PersNr, Name usw. zuzugreifen.
Diese Elemente gibt es dort aber gar nicht, daher wahrscheinlich die NullReferenceException.

Gruß
Stefan

22.02.2010 - 18:44 Uhr

Hallo zusammen,

ich möchte mir gerade ein "ErrorLogModule" für ASP.Net schreiben und implementiere daher natürlich die IHttpModule-Schnittstelle.

Ich erhalte ja bei der Init Methode sowie bei allen abonnierten Ereignissen das HttpApplication Objekt zu diesem Request.

Ist es nun möglich - um das ganze casten zu sparen - mir innerhalb der Init-Methode das HttpApplication Objekt zu merken und in Ereignis-Handlern zu verwenden?

Oder bekomme ich schwierigkeiten, weil quasi jeder Request durch die gleiche IHttpModule Instanz läuft und ich so immer Probleme schaffe?

Hier ein wenig Code wie ich mir das ganze vorgestellt habe:


    public class ErrorLogModule : IHttpModule {
        #region [ Fields ]

        private HttpApplication mRequestHttpApplication = null;

        #endregion
        #region IHttpModule Members

        public void Dispose() {
        }

        public void Init(HttpApplication context) {
            mRequestHttpApplication = context;

            context.Error += new EventHandler(CurrentRequest_UnhandledError);
        }

        protected virtual void CurrentRequest_UnhandledError(object sender, EventArgs e) {
            Exception unhandledExeption = mRequestHttpApplication.Server.GetLastError();
            // Weiterer Vorgang zum protokollieren der Exception
        }

        #endregion
    }

Gruß
Stefan

22.02.2010 - 18:27 Uhr

Hallo St_W,

wie wäre es denn aus diesem ganzen static-Dschungel "normale" Klassen zu machen, welche du über ein Singleton verfügbar machst.

Damit hättest du quasi nur noch eine Statische Klasse bzw. Eigenschaften die auf die Instanzen verweisen mit denen du arbeiten kannst.

Und diese "normalen" Klassen solltest du dann doch nach XML kriegen oder?

Ps: Hab mich noch nie damit beschäftigt Klassenzustände nach XML zu "exportieren".

21.02.2010 - 22:59 Uhr

Hallo ElektroLui,

wie soll das denn funktionieren?

  1. Welchen Datentyp gibt dir Console.ReadLine() zurück ?
  2. Was für Links habe ich dir in meinem ersten Post gepostet ?

Damit solltest du alles nötige zusammen kriegen und es realisieren können.

Ps: Das ist nicht böse gemeint. Beim letzten mal von "zu viel Code posten" hab ich ne Schelte gekriegt gg 😉

Gruß
Stefan

21.02.2010 - 21:14 Uhr

Hallo ElektroLui,

hiermit kann man Strings in Datumswerte konvertieren.
MSDN - Convert.ToDateTime()
MSDN - DateTime.TryParse()

21.02.2010 - 16:02 Uhr

Hallo Yheeky,

auf den ersten Blick hast du auch ein merkwürdiges Kosntrukt (zumindest für mich ^^).
Der generelle Ablauf eines Page-Requestes ist dir bekannt?
Leider finde ich gerade nicht das passende Bild dafür, aber es wird erst die PageLoad() aufgerufen und anschliessend die Send_Click().

Dein Problem ist nun aber folgendes.
Wenn du dich erneut einloggst, hast du als Request noch immer action == "logout", das bedeutet das du die Session die gerade bei dieser Anfrage neu angefordert hast wieder killst.

Dieser "Kill" passiert aber anscheinend erst, nachdem der gesamte Lebenszyklus der Seite durchgelaufen ist. Deswegen hast du im Send_Click() noch eine Session, aber danach nicht mehr.

m.M.n. wäre es einfacher einen asp:Hyperlink einzubauen und über die Session zu steuern ob sich der Benutzer gerade ausgeloggt hat - bzw. es ist wahrscheinlich noch "schöner" das ganz über eine zwischen Seite zu machen, die den besagten Text anzeigt und dann per Meta-Tag einfach auf deine Login-Seite nach 5Sekunden weiterleitet.

Gruß
Stefan

21.02.2010 - 15:24 Uhr

Hallo Yheeky,

sind das denn die gleichen Seiten oder 2 Unterschiedliche?

Ich hab mir grad ein Beispiel gebaut wo auf der Default.aspx 2 Textboxen + Button war und eine WebForm1.aspx wo ich einfach die 2 SessionKeys ausgebe und bei einem Buttonklick Session.Abandon() aufrufe und zurück auf die Default.aspx gehe (per Response.Redirect()).

Funktioniert bei mir einwandfrei.