Laden...
Avatar #avatar-1597.jpg
nitronic myCSharp.de - Member
Software Architect / Program Manager Österreich Dabei seit 14.03.2004 354 Beiträge
Benutzerbeschreibung

Forenbeiträge von nitronic Ingesamt 354 Beiträge

17.02.2006 - 09:39 Uhr

Hier kann ich dir einen hilfreichen Link geben:
http://www.codeproject.com/csharp/processescpuusage.asp

Hoffe, das hilft dir weiter.

17.02.2006 - 09:34 Uhr

Ich könnte mir hier folgendes vorstellen:

  1. Den Usern, die auf die Datenbank über deine Anwendung zugreifen müssen einen eigenen Datenbank-User zur Verfügung stellen. Dieser hat nur eingeschränkte Rechte und darf auch nur auf diese eine bestimmte Datenbank zugreifen. Dann ist das Problem nur mehr halb so schlimm.

  2. Das Passwort hartgecoded in den Source zu nehmen ist nicht so besonders fein. Was du allerdings machen könntest ist, den ConnectionString (ich denke, dass der User auch nicht unbedingt die Datenbank etc. aussuchen können muss, wird ja vermutlich immer die gleiche sein, oder?) verschlüsselt in eine Config-Datei schreiben. Muss nichts Aufwendiges sein. Der Otto-Normal-User kriegt das Passwort da nicht mehr raus.

  3. Die dritte und aufwändigere (aber auch schönste) Variante ist, dass du dir einen Server baust. Das heißt, deine Applikation redet nicht mehr direkt mit der Datenbank, sondern mit deinem Server. Dieser besitzt im Idealfall auch die Business-Logik und so können Funktionalitäten auch einfach ausgetauscht werden. ABER zumindest könntest dort die Datenbank-Connectivity einbauen. So gibt es Datenbank-Zugriffs-Informationen nur auf dem Server. Nicht jedoch am Client. Dieser besitzt nur die Information, wie er auf deinen Server zugreifen kann.

Just my 2 cents.

15.02.2006 - 15:22 Uhr

Bei den Custom Actions kannst du eine VBScript ausführen lassen. Dieses musst halt sebst erstellen und dort einfügen. Soweit ich mich erinnen kann, kann man dort auch einstellen, ob das Script vor oder nach der Installation ausgeführt werden soll.

15.02.2006 - 14:30 Uhr

Zum Thema Click-Once:

Muss auf einem IIS laufen und kann zusätzlich nur mit einem IE durchgeführt werden, da nur der IE die Anwendung als .NET Anwendung erkennt und sie nach dem Download in einer Sandbox ausführt.

Zusätzlich kann es sein, dass die Rechte in der .NET Rechteverwaltung entsprechend angepasst werden müssen.

15.02.2006 - 14:28 Uhr

Entweder erstellst du dir ein VBScript, was du nicht willst, oder du erweiterst das Setup insofern, als dass du das im Lieferumfang enthaltene Setup-Projekt nach deinen Wünschen anpasst.

15.02.2006 - 14:27 Uhr

Vielleicht postest einen Screenshot, dann kann man sich das "durchschimmern" besser "vorstellen".

15.02.2006 - 14:25 Uhr

Was genau passiert an der Stelle

RM_SqlEdit.cs:line 100

Eventuell findet sich dort ein entsprechender Hinweis: Nicht geöffnete Connection etc.

13.02.2006 - 12:13 Uhr

Und diese Idee wäre welche?

13.02.2006 - 12:12 Uhr

Gehts dir um die Anzeige im Eigenschaften-Fenster oder soll die Eigenschaft auch via Code ausgeblendet sein?

Für das Eigenschaften-Fenster ist es recht einfach. Die entsprechende Methode mit override überschreiben und alles an die Basis-Eigenschaft weiterleiten bzw. von ihr zurückgeben.. Zusätzlich noch das Attribute
[Browsable(false)] über die Eigenschaft und schon ists aus dem Eigenschaften-Fenster verschwunden. Via Code ist der Zugriff dann allerdings noch immer erlaubt.

13.02.2006 - 11:09 Uhr

Also Datenoverhead erzeugst durch den direkten Zugriff auf die Datenbank weniger als wenn du über ein Webservice fährst. XML bläst die Daten dann doch schön auf. Abhilfe schafft hier beispielsweise ein BinarySerializer, dem man zusätzlich auch noch sagen kann, welche Properties (Felder) er generell weglassen kann.

Aber das geht dann vermutlich schon wieder zu tief in die Materie. Ausserdem ist es auch abhängig von den zukünftigen Weiterentwicklungen. Ein WebService macht nicht immer Sinn.

13.02.2006 - 10:19 Uhr

Ich denke, dass Visible und Enable auch unter 2.0 noch immer keinen Einfluss auf die TabPages haben. Ergo kannst du eigentlich nur eine Referenz auf die TabPages halten und via RemoveAt entladen bzw. bei Bedarf wieder hinzufügen. Zwar nicht die schönste Art und Weise, funktioniert allerdings.

13.02.2006 - 10:14 Uhr

Prinzipiell kein Problem. Einfach nur den ConnectionString anpassen und schon sollte es funktionieren.

Ein Problem das ich allerdings dabei sehe ist die (vermutlich) unsichere Verbindung. Ohne entsprechende Sicherheitsmassnahmen werden die Daten unverschlüsselt übertragen und können daher von etwaigen Angreifern ausgelesen werden.

Eine Variante dies zu verhindern, wäre, wenn deine Anwendung mit einem Server kommuniziert, der ebenfalls in z.B. in Berlin steht, deine Anfragen entgegen nimmt, mit dem Datenbankserver abgleicht und an die Applikation zurückgibt. Die Verbindung zwischen Applikation (Client) und Server könnte dabei verschlüsselt erfolgen.

Dies hängt jedoch auch alles sehr davon ab, wie sensibel die Daten sind ...

10.02.2006 - 09:38 Uhr

Hi,

also wenns eine Application Config ist, kannst mit


ConfigurationSettings.AppSettings["Name"]

darauf zugreifen. Wenn es eine selbst erstellte XML-Datei ist, dann einfach System.Xml Namespace einbinden, die Daten in ein XmlDocument laden und dann via den Methoden SelectSingleNode oder SelectNodes auslesen.

Die ComboBox hat eine Items-Auflistung, an die kannst du dann deine Einträge anhängen.

29.01.2006 - 19:59 Uhr

Ich habe mich sehr lange mit diversen Coding-Styles befasst - vor allem weil ich in einem Team arbeite und daher der Sourcecode auch entsprechend lesbar sein sollte. Dabei einigt sich man auf einen Style mit dem jeder leben kann - immerhin hat jeder bestimmte Vorlieben bzw. Aversionen.

Persönlich hab ich mir aus mehreren Styleguides die Dinge rausgesucht, die mir als sinnvoll erscheinen und so verwende ich sie.

29.01.2006 - 18:21 Uhr

Ich programmiere meistens an Frameworks rum, daher ists es für mich nur nervig, wenn ich die Maus benutzen muss. Der Typ im Namen ist daher schon recht praktisch - mach ich aber auch nicht immer.

Und nein, ich verwende definitiv keine Unterstriche. Dadurch geht beim Tippen nur Zeit verloren und ich finds sehr unübersichtlich.

29.01.2006 - 16:31 Uhr

Ist mir nicht unbekannt. Allerdings stehe ich nicht besonders darauf, meine Member-Variablen mit m_ zu kennzeichnen. Ist mir auf Dauer einfach zuviel Schreibarbeit. Da sehe ich es schon als sinnvoller an, den Typ der Variable mit in den Namen zu packen.

27.01.2006 - 09:30 Uhr

Hi,

ein guter Anfangspunkt ist immer das MSDN. Dort gibts zu allen Klassen, Methoden und Properties Beschreibungen und Beispiele.

Zum Thema String könntest du dir als einfach http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemstringclasstopic.asp ansehen und durchsuchen. Da sollte das notwenige drinnen sein.

19.01.2006 - 11:55 Uhr

Dabei würde ich allerdings sehr aufpassen ...

19.01.2006 - 11:54 Uhr

Kann doch eigentlich alles das Management Studio vom SQL Server 2005. Wieso nicht diesen verwenden?

19.01.2006 - 11:50 Uhr

Du könntest höchstens bei T-Online nachfragen, ob es eine entsprechende Schnittstelle gibt und ob bzw. wie du diese verwenden kannst. Es gibt einige Protokolle für derartige Einsatzbereiche.

19.01.2006 - 11:49 Uhr

Ich lege meine Testklassen immer in einem separaten Projekt ab und geb dem ganzen natürlich auch noch einen eigenen Namespace.

Wenn du NUnit verwendest, hätte ich als Empfehlung TestDriven.NET für dich. Das ist ein Addin fürs Visual Studio und kommt mit einigen Features daher, die mehr als brauchbar sind. Zusätzlich ist das Tool kostenlos.

Zu finden unter: http://www.testdriven.net/

11.01.2006 - 14:43 Uhr

Vielleicht genügt ja SharpPDF deinen Ansprüchen.

10.01.2006 - 17:21 Uhr

Ich hab mir den Sourcecode nicht näher angesehen, aber ich muss sagen, wenn du wirklich erst so kurz programmierst, ist die Leistung schon beachtlich. Keine Frage. Gefällt mir.

10.01.2006 - 14:28 Uhr

Das hätte ich auch nicht unbedingt als Überladung gesehen. void gibt nichts zurück (obwohl es einen Rückgabewert darstellt). Die zweite Methode hat einen Rückgabewert und daher können die beiden Methoden voneinander unterschieden werden. Das macht schon Sinn so, der Programmierer verwirrt sich aber höchstens selbst wenn er seine Methodennamen derartig nennt 😉

10.01.2006 - 13:37 Uhr

Kein Problem. Ich denke, das haben wir schon alle einmal verwechselt. Aber immerhin bin ich dir dankbar. Musste gleich einen Blog-Eintrag dazu schreiben kicher

10.01.2006 - 13:36 Uhr

Ich hab das entsprechende Buch von der Microsoft Press, welches nicht so schlecht ist. Allerdings glaube ich persönlich (aber vielleicht kann ja hier jemand der das weiß Auskunft geben), dass die Prüfung in diesem Buch einfacher dargestellt wird, als sie in der Tat ist.

10.01.2006 - 13:32 Uhr

@ikaros: Du hast es nicht verstanden. Microsoft schreibt das gleich wie ich. Beim Überladen wird die Anzahl bzw. die Typen der Parameter geändert. Und ja, es kann dann mehrere Methoden geben, die den gleichen Rückgabewert besitzen, den gleichen Methodennamen aufweisen, nur eine unterschiedliche Anzahl von Parametern haben bzw. gleiche Anzahl von Parametern, aber unterschiedliche Typen.

Beim Überschreiben (siehe in dem von dir geliefertem Sourcecode das Schlüsselwort OVERRIDE) wird die Funktionalität einer Methode geändert. Die Signatur bleibt allerdings ident.

10.01.2006 - 13:11 Uhr

@ikaros: Das was du hier gezeigt hast ist eine Überschreibung und keine Überladung. Vorsicht. Das sind zwei unterschiedliche paar Schuhe.

10.01.2006 - 12:35 Uhr

Die Templates liegen bei den Wizards dabei. Das wäre in dem Fall beispielsweise:

C:%PROGRAM FILES%\Microsoft Visual Studio .NET 2003\VC#\VC#Wizards\CSharpAddClassWiz\Templates\1033

Hier für den "New Class Wizard". Unter C#Wizards sind alle Wizards für C# drinnen. Darunter wird unterteilt in Scripts und Templates. Im Templates-Ordner findest du dann die jeweiligen Vorlagen.

Darin Änderungen vorgenommen hab ich noch nicht. Sollte aber duchaus funktionieren.

Du kannst unter Visual Studio auch eigene Wizards erstellen, die dann natürlich auch auf eigene Templates zurückgreifen. Genauere Informationen findest du hier.

10.01.2006 - 12:10 Uhr

Properties sind auch nicht zu überladen.

Der Grund liegt darin:


public int X 
{
   get { return x; }
}

wird umgewandelt zu einem


public int GetX() 
{
   return x;
}

Einmal mit int und einmal mit double und gleicher Funktionsname geht nicht. Der Rückgabewert muss der gleiche sein. Zuweilen eine Überladung nur den Parameter-Teil der Signatur betrifft.

Zur Erklärung für diejenigen, die das nicht wissen:
Die Signatur ist die Defintion der Methode bzw. Property. Beispiel:
public int GetX()

10.01.2006 - 11:51 Uhr

@norman_timo:
Das ist natürlich durchaus richtig. Nur hat die Überladung von Properties hat generell wenig Sinn. Es bleibt immer noch die Möglichkeit, die Properties unterschiedlich zu benennen, oder aber, wie bereits angesprochen, er verwendet Generics.

10.01.2006 - 11:01 Uhr

Wenn dein Blog schlecht wäre, hätte ich keinen Link darauf (wie viele andere auch). Das sollte dir zu denken geben 😉

Eventuell vielleicht ein wenig regelmäßiger bloggen - hin und wieder wartet man schon recht lange auf einen neuen Eintrag 😉

10.01.2006 - 10:33 Uhr

Es kommt aufs Projekt an. Wenn dein Projekt schon von VB nach VB.NET nicht funktioniert, dann gehts natürlich auch nicht weiter. Das ist schon klar.

Nur weil es bei dir nicht funktioniert hat, heißt es noch lange nicht, dass es beim Fragesteller nicht funktioniert. Zudem ist auch klar, dass bei solchen Umstellungen IMMER händische Arbeit notwendig ist.

10.01.2006 - 10:32 Uhr

Wieso machst nicht gleich einen double? Der verkraftet auch einen int 😉

10.01.2006 - 10:11 Uhr

Diese Frage könnten jetzt einige für ihre eigenen Blogs stellen .. btw. würde mich bezgl. meines Blogs auch interessieren (sofern es konstruktive Kritik ist).

Bei dir, Eisbär, stört mich eigentlich hauptsächlich eines: Du kannst zwar sehr gut englisch, aber dennoch würde ich es lieber sehen, würdest du in deutsch schreiben. Zuaml es wenig Blogs gibt, die auf deutsch gutes .NET Wissen vermitteln. Zumal mir die meisten Blogs mittlerweile zu seicht sind. Deines ist aber schon ok so .. bis auf die 100 Treffer zu "Eisbär" auf einer Seite 😉

10.01.2006 - 09:58 Uhr

Properties sind dafür gedacht, wie public fields (öffentliche Variablen) zu arbeiten. Daher ist ein Overloading nicht möglich. Warum solltest du das auch brauchen?

Wenn du eine Property hast, die beispielsweise ein Object (sagen wir ein UserObjekt zum Speichern von Userdaten) bearbeitet, du aber nur den Usernamen übergeben willst, dann musst du dir eine zweite Property erstellen, die einen String annimmt. Dabei muss allerdings beachtet werden, ob das UserObjekt bereits besteht.

10.01.2006 - 09:46 Uhr

Also ich finde Blogs sehr praktisch und teilweise erhält man viele und praktische Ansätze für bestimmte Probleme, oder einfach nur Information (ob witzig, für's tägliche Leben brauchbar etc.).

Hier setze ich meist auch auf RSS, um es quasi als "Speicher" zu verwenden. Meist surfe ich die Seiten direkt an. Ist zwar nicht persönlicher, aber viele Pages sehen dann doch besser aus, als es mein RSS-Reader tut 😉

BTW finde ich es nur schade, dass viele Blogs nicht gepflegt sind bzw. oft wenig sinnvolles verbreitet wird.

10.01.2006 - 09:40 Uhr

Es gäbe ein Tool (http://www.netcoole.com/vb6tocs.htm) mit dem du VB nach C# konvertieren kannst. Wie gut es ist kann ich dir allerdings nicht sagen.

Was du weiters machen könntest: Den VB.NET Upgrade Wizard verwenden und damit VB nach VB.NET transformieren. Danach VB.NET nach C#. Die Ergebnisse werden aber doch eher recht dürftig sein.

09.01.2006 - 14:26 Uhr

Die Plugins werden von mir bereits in eigene AppDomains geladen (sollen wieder entladen werden können).

Danke für die Postings. Schau mir das gleich an.

09.01.2006 - 10:37 Uhr

Darum gehts ansich gar nicht. Ich beschreib die Geschichte näher, ist vermutlich besser:

Eine Anwendung ist in mehrere Projekte unterteilt. Klassen wurden beispielsweise in ein common und in ein share Projekt zusammengefasst. Nun ist es möglich Plugins zu schreigen. Diese sollen die "share-Assembly" nutzen dürfen, die "common-Assembly" jedoch nicht. Zusätzlich soll das Plugin selbst keinen I/O Zugriff haben, sondern dies über die Anwendung in dem das Plugin gehostet wird tun.

09.01.2006 - 09:56 Uhr

Hallo,

zu folgenden Themen hab ich leider recht wenig im Internet gefunden. Eventuell kann mir jemand von Euch weiterhelfen.

  1. Wie kann ich eine Assembly so einschränken, dass sie nur von einer bestimmten Applikation geladen werden kann? Code Access Security erscheint mir hier nicht der richtige Ansatz zu sein.

  2. Wie kann ich von einer Applikation aus eine zu ladende Assembly so einschränken, dass aus dieser Assembly beispielsweise keine I/O-Zugriffe durchgeführt werden dürfen?

Für sachdienliche Hinweise wäre ich sehr dankbar.

05.01.2006 - 11:36 Uhr

Erstens mal ein try .. catch um das Parse.

Unter .NET 2 kannst du TryParse() verwenden.

Eine andere Möglichkeit besteht darin, durch das Char-Array (was ja ein String ist) durchiterieren und jeden jeden Char mit der Methode IsNumber() abfragen ob es sich hier um eine Zahl handelt.

05.01.2006 - 11:32 Uhr

Es gibt ein Mozilla ActiveX-Control. Hab den Link aber jetzt leider nicht bei der Hand. Sonst kenne ich nur GeckSharp, das dürfte aber fürs GTK+ sein (wenn ich mich recht erinnere).

05.01.2006 - 11:31 Uhr

Und warum verwendest du nicht gleich die Makro-Funktion von Visual Studio?

04.01.2006 - 15:51 Uhr

Das PropertyGrid ist ja nur Container für andere Controls. Wenn diese Controls, das Click-Ereigenis nicht weiterreichen, wirst du es für das PropertyGrid auch nicht bekommen.

Wozu genau brauchst du das Click-Ereignis?

04.01.2006 - 15:49 Uhr

Wenn wir wüssten was du machen willst, wärs vielleicht ein bisserl einfacher. Willst du einen Compiler bauen?

30.12.2005 - 15:36 Uhr

Änder mal die Zeile


string aktueller_Interpret= "\"" + txt_Interpret.Text +  "*\"";

in


string aktueller_Interpret= "'" + txt_Interpret.Text +  "*'";

Und den Command-Teil


OleDbCommand Command= new OleDbCommand();
            
//--Einlesen des SQL- Statements
Command.Connection=conn;
Command.CommandText=SqlAnweisung;
Command.CommandType=CommandType.Text;
Command.CommandTimeout=10;

ändere mal in


OdbcCommand Command = new OdbcCommand(SqlAnweisung, conn);
Command.CommandTimeout=10;

Wobei du natürlich eigenltich auch darauf achten solltest, dass lokale Variablen klein geschrieben werden sollte. Allein schon, um sie von Klassen unterscheiden zu können.

30.12.2005 - 14:57 Uhr

Wie sieht denn dein Sourcecode dazu aus? Vermutlich liegt darin der Hund begraben.

28.12.2005 - 20:44 Uhr

Hallo!

Ich entwickle gerade an einer Anwendung, die einzelne Module in mehrere AppDomains ladet. Dies hat den Hintergrund, dass diese zur Laufzeit auch wieder entladen werden können, wenn sie nicht mehr gebraucht werden.

Hier wäre es jetzt allerdings notwendig, zu messen, wieviel Speicher diese Module verbrauchen - und zwar permanent. Hinweis: Die Module ausserhalb der Host-Anwendung einzeln zu testen ist nicht das Ziel der Übung.

Das Problem ist jetzt, dass ich den Speicherverbrauch nur per Prozess rausbekomme, jedoch nicht weiter runterbrechen kann. Hat hier jemand vielleicht eine entsprechende Idee?

lG,
Nitronic

23.12.2005 - 09:59 Uhr

Jo, dann hat man JavaScript ausgeschalten und schon hat mans wieder gesehen 😉

Oder einfach weiter runtergescrollt 😉