Laden...
Avatar #avatar-2533.jpg
schaedld myCSharp.de - Member
.NET Web Developer Schweiz Dabei seit 05.04.2006 1.433 Beiträge
Benutzerbeschreibung

Forenbeiträge von schaedld Ingesamt 1.433 Beiträge

25.04.2008 - 06:37 Uhr

Hi,
ich habe eine ComboBox die über die ItemSource an eine Klasse gebunden ist und von dieser das Feld "PersonalNr" anzeigt. Im TextBlock nebenan würde ich jetzt gerne den Namen des in der ComboBox ausgewählten anzeigen, habe aber momentan leider keine Idee wie das geht... ?(

[EDIT]
habs mit ein bischen rumspielen selbst rausgefunden:

<TextBlock Text={Binding Path=SelectedItem.Name,ElementName=cmbPersNr}/>

Kann geclosed / gelöscht werden hab keinen Knopf gefunden 😉

Ist auch gut so, wenn Du die Lösung selber gefunden hast. Jetzt noch gemäss Forenrichtlinien ein [Gelöst] in den Titel rein und sauber 👍

25.04.2008 - 06:33 Uhr

Und wie kann ich mit dem ManagementStudio die Bilder zur Kontrolle ausgeben? Meiner Meinung nach dürfte das gar nicht möglich sein, zumal Du ja die Bilder als Bitstream in die DB geladen hast. Dann müsste dass Management Studio einen entsprechenden "Wandler" haben und dass denke ich ist über den Funktionsumfang hinaus (sonst wäre es sicherlich kostenpflichtig)

22.04.2008 - 06:29 Uhr

Wie Du's gemacht hast wäre auch nicht schlecht zu sehen. Steht übrigens soviel ich weiss in den Wie poste ich richtig?-Regeln 9. Eigene Lösungen posten

21.04.2008 - 14:42 Uhr

Eventuell was für Dich?

21.04.2008 - 08:31 Uhr

Constraints und Stored Procedures abdecken kannst. Da würde ich eher abraten, meine vorgängige Firma hat dies gemacht und ist ziemlich auf die Schnauze gefallen.

Meiner Meinung nach ist wie Rainbird gesagt hat, LINQ eine gute Hilfe aber sicherlich kein Ersatz für Business-Logik /Business-Layer. Diesen würde ich so oder so immer machen, da so dann die Modularität gewährleistet wird.

18.04.2008 - 07:16 Uhr

Nein, WPF und SL sind nicht kompatibel! Die einzige wirkliche Gemeinsamkeit ist XAML als Beschreibungssprache, aber technisch sind das zwei verschiedene Dinge. WPF baut auf das normale Framework auf, während Silverlight eine eigene Frameworkimplementation mitbringt die im Vergleich zu dem Standardframework mächtig abgespeckt ist. Deshalb ist es nicht möglich WPF Elemente in SIlverlight zu verwenden. Wenn XAML das einzige ist was beide geminsam haben, dann kann ich ja mit XAML meine Elemente definieren oder nicht? Wenn ich das ganze dann kompiliere wird mir ja ne xbap Datei generiert die ich dann verwenden kann.

Das würde auch implizieren, dass am Zielrechner das komplette .NET Framework installiert sein muss. Und genau das sollte ja bei Silverlight vermieden werden. Entweder steht ich auf dem Schlauch oder versteh was falsch: Wenn ich eine SL 2.0 Anwendung kompiliere, dann habe ich ja eine Xbap Datei, wenn ich eine WPF-Anwendung fürs Web kompiliere, dann hab ich ja auch eine. Die verwendeten Komponenten sind dort ja bereist enthalten.

17.04.2008 - 07:39 Uhr

Hallo herbivore
Danke Dir recht herzlich (hier habe ich dem .NET zuviel zugemutet, da ich der Meinung war, wenn er merkt dass das Property geändert hat, er selber ein löschen und neu laden macht).

Die Datei sieht nun so aus und es funktioniert:

Form1.cs


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Sample.INotifyChangedProperty.WindowsForms.Klassen;

namespace Sample.INotifyChangedProperty.WindowsForms {
    public partial class Form1 : Form {
        //Initialisierung von GuidGenerator.cs.
        GuidGenerator guidgenerator;
        Binding bnd;
        public Form1() {
            InitializeComponent();
        }

        /// <summary>
        /// Methode die auf das Click_Event des Button gelegt worden ist.
        /// </summary>
        /// <param name="sender">sendendes Objekt, hier der Button</param>
        /// <param name="e">Standard EventArgs.</param>
        private void Event_Guid_Generate(object sender, EventArgs e) {
            // Abonnieren des Ereignisses OnPropertyChanged in der Klasse
            // GuidGenerator. Zuerst wird aber ein Objekt des GuidGenerators benötigt.
            guidgenerator = new GuidGenerator();

            // Verknüpfung mit dem Event in der Klasse GuidGenerators und Erstellung eines neuen
            // EventHandlers.
            guidgenerator.PropertyChanged += new PropertyChangedEventHandler(guidgenerator_PropertyChanged);
            guidgenerator.GenerateGuids();
        }

        /// <summary>
        /// Hier wird die Methode ausgeführt, die mit dem Ereignis OnPropertyChanged in der
        /// GuidGenerator Klasse erstellt worden ist. Hier wird dann auch das DataBinding
        /// an ein Control vorgenommen.
        /// </summary>
        /// <param name="sender">Der Sender selber ist das Event.</param>
        /// <param name="e">Als Übergabe des Events wird der Propertyname übergeben.</param>
        void guidgenerator_PropertyChanged(object sender, PropertyChangedEventArgs e) {            
            // Erstellen eines neuen Databindings.
            // DataBinding.Add(Eingeschaft des Controls an die geunden werden soll, welches Objekt wird gebunden?, wie heisst die Eigenschaft
            // die gebunden werden soll (in unserem Fall e.PropertyName, Textformatierung, Wie ist die die UpdateMehtode des Controls?).
            //DataBindings.Add("Text", guidgenerator, e.PropertyName, true, DataSourceUpdateMode.OnPropertyChanged);
            // Danach wird das Ganze an die Textbox gebunden.
            bnd = new Binding("Text", guidgenerator, e.PropertyName, true, DataSourceUpdateMode.OnPropertyChanged);

            // Fragt ab ob bereits ein Binding erfolgt ist. Wenn ja wird es gelöscht.
            if (txtGuidHolder.DataBindings != null) {
                txtGuidHolder.DataBindings.Clear();
            }
            txtGuidHolder.DataBindings.Add(bnd);
        }
    }
}

17.04.2008 - 07:13 Uhr

Hy
Ist eigentlich auch nicht SL 2.0, sollte aber von der Technik her gehen, da SL 2.0 ja eine xbap-Datei kompiliert und das ist nichts anderes als WPF, somit sollten eigentlich auch die meisten Controls von WPF zur Verfügung stehen (wenn auch nur in XAML).

17.04.2008 - 07:09 Uhr

Hallo zusammen
Ich weiss nicht ob ihr mit teeren und federn wollt, aber ich stell die Frage nun doch mal. Ich habe folgende Klassen:


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Sample.INotifyChangedProperty.WindowsForms.Klassen;

namespace Sample.INotifyChangedProperty.WindowsForms {
    public partial class Form1 : Form {
        //Initialisierung von GuidGenerator.cs.
        GuidGenerator guidgenerator;

        public Form1() {
            InitializeComponent();
        }

        /// <summary>
        /// Methode die auf das Click_Event des Button gelegt worden ist.
        /// </summary>
        /// <param name="sender">sendendes Objekt, hier der Button</param>
        /// <param name="e">Standard EventArgs.</param>
        private void Event_Guid_Generate(object sender, EventArgs e) {
            // Abonnieren des Ereignisses OnPropertyChanged in der Klasse
            // GuidGenerator. Zuerst wird aber ein Objekt des GuidGenerators benötigt.
            guidgenerator = new GuidGenerator();

            // Verknüpfung mit dem Event in der Klasse GuidGenerators und Erstellung eines neuen
            // EventHandlers.
            guidgenerator.PropertyChanged += new PropertyChangedEventHandler(guidgenerator_PropertyChanged);
            guidgenerator.GenerateGuids();
        }

        /// <summary>
        /// Hier wird die Methode ausgeführt, die mit dem Ereignis OnPropertyChanged in der
        /// GuidGenerator Klasse erstellt worden ist. Hier wird dann auch das DataBinding
        /// an ein Control vorgenommen.
        /// </summary>
        /// <param name="sender">Der Sender selber ist das Event.</param>
        /// <param name="e">Als Übergabe des Events wird der Propertyname übergeben.</param>
        void guidgenerator_PropertyChanged(object sender, PropertyChangedEventArgs e) {            
            // Erstellen eines neuen Databindings.
            // DataBinding.Add(Eingeschaft des Controls an die geunden werden soll, welches Objekt wird gebunden?, wie heisst die Eigenschaft
            // die gebunden werden soll (in unserem Fall e.PropertyName, Textformatierung, Wie ist die die UpdateMehtode des Controls?).
            //DataBindings.Add("Text", guidgenerator, e.PropertyName, true, DataSourceUpdateMode.OnPropertyChanged);
            // Danach wird das Ganze an die Textbox gebunden.
            txtGuidHolder.DataBindings.Add("Text", guidgenerator, e.PropertyName, true, DataSourceUpdateMode.OnPropertyChanged);
        }
   

GuidGenerator.cs


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Sample.INotifyChangedProperty.WindowsForms.Klassen {
    
    internal class GuidGenerator : System.ComponentModel.INotifyPropertyChanged {

        #region INotifyPropertyChanged Member
        /// <summary>
        /// Importieren des Interfaces INotifyChangegProperty (nicht explizit).
        /// </summary>
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;

        /// <summary>
        /// Erstellgen des Events und auslösen, falls keines vorhanden ist.
        /// Als Übergabe-Parameter ist der Propertyname als string hinterlegt.
        /// </summary>
        protected virtual void OnPropertyChanged(string PropertyName) {
            if (PropertyChanged != null) {
                PropertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(PropertyName));
            }
        }
        #endregion

        #region Felder und Properties initialisieren
        /// <summary>
        /// Privates Feld für die Guid Speicherung und Hinterlegung des Wertes.
        /// </summary>
        private Guid _generatedGuid;

        /// <summary>
        /// Öffentliche Eigenschaft zum Setzen der Property.
        /// </summary>
        public Guid GeneratedGuid { 
            get { return _generatedGuid;
            }
            set {
                if (value != this._generatedGuid) {
                    _generatedGuid = value;
                    OnPropertyChanged("GeneratedGuid");
                }
            }
        }
        #endregion        

        /// <summary>
        /// Öffentliche Methode, damit eine zufällige Guid erstellt werden kann, die
        /// dann an das Property gebunden wird.
        /// Immer wenn eine neue Guid generiert wird, löst der Vorgang die Methode
        /// OnPropertyChanged(PropertyName) aus.
        /// </summary>
        public Guid GenerateGuids() {            
            //OnPropertyChanged("GeneratedGuid");
            GeneratedGuid = Guid.NewGuid();
            return GeneratedGuid;
        }
    }
}

Leider erhalte ich, wenn ich den Button ein zweites Mal klicke die folgende Fehlermeldung:

Dies führt dazu, dass sich zwei Bindungen der Auflistung an dieselbe Eigenschaft binden.
Parametername: binding

Bis ich auf die INotifyChangedProperty gestossen bin habe ich mir immer eine EventKlasse gebaut, dieser Ein Property, sowie einen Konstruktor mitgegeben und dann diese Klasse implementiert. Da es mit INotifyChanged ein bisschen weniger Aufwand gibt, wäre ich froh wenn ich das Ganze auch hinkriegen würde. Ich danke euch für die Hilfe.

14.04.2008 - 11:24 Uhr

willst du dies direkt nach einem PostBack oder AjaxPostback machen ? Postback

oder willst du ganz was anderes ?

Genau das möchte ich, aber ohne JavaScript schreiben zu müssen (eher nicht wollen 😉 )

14.04.2008 - 10:47 Uhr

Hallo zusammen
Ich bin gerade dran einen Dialog anzeigen zu wollen. Hierfür habe ich den ControlPopUpExtender des AJAXToolkit gewählt. Nun dieser scheint nicht mit Codebehind angezeigt werden zu können so wie der ModalPopUpExtender.

Meine Frage: Weiss jemand wie ich diesen PopExtender mittels Codebehind anzeigen könnte?

Danke für eure Hilfe.

11.04.2008 - 06:34 Uhr

Vielleicht hilft Dir das weiter.

10.04.2008 - 12:54 Uhr

Wunderbar, jetzt wo ich's nochmals gelesen habe ist's mir auch aufgefallen... War wohl die Mittagsmüdigkeit

10.04.2008 - 12:33 Uhr

Wieso eigentlich die 14 Alternativen? Weil gemäss Spezifikation 14 Möglichkeiten bestehen müssen.

Ist das das zu erwartende Mittel an Mitarbeitern gleichen Namens oder willst du nur ne große Auswahl an Kürzeln ? Falls wird 13 Hans Muster haben die alle schon ein Kürzel haben, soll der 14 ein anderes erhalten und dann wird es dann vergeben.

Jedenfalls kannst du dir die Zuweisung von "Initialen" in den Add-Aufrufen sparen.
Die Variable hat am Ende ohnehin den wert des letzten Add-Aufrufs. Nicht wirklich oder? Denn die Klasse selber ist eine Liste mit mehreren Elementen.

10.04.2008 - 07:52 Uhr

Hy Golo
Hättest Du nicht auch ein Frame verwenden und bei Bedarf den Content des Frames wechseln können?

<Window x:Class="SimpleNavigationTest.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="312" Width="513">
    <Grid>
        <Frame Margin="105,0,0,0" x:Name="frame1" />
        <Button Height="23" HorizontalAlignment="Left" Margin="11,16,0,0" x:Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click">Seite 1</Button>
        <Button Height="23" HorizontalAlignment="Left" Margin="11,54,0,0" x:Name="button2" VerticalAlignment="Top" Width="75" Click="button2_Click">Seite 2</Button>
    </Grid>
</Window>
namespace SimpleNavigationTest
{
    /// <summary>
    /// Interaktionslogik für Window1.xaml
    /// </summary>
    public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, RoutedEventArgs e)
        {
            Page1 pg1 = new Page1();
            frame1.Content = pg1;
        }

        private void button2_Click(object sender, RoutedEventArgs e)
        {
            Page2 pg2 = new Page2();
            frame1.Content = pg2;
        }
    }
}
09.04.2008 - 16:29 Uhr

Wo Du recht hast, hast Du recht (Wo ist der Wald, ich seh nur Bäume... 🤔 )


        private void AddKurzzeichenToList() {

            this.Add(Initialen = Nachname.Substring(0, 1) + Vorname.Substring(0, 1));     
            this.Add(Initialen = Nachname.Substring(0, 1) + Nachname.Substring(Nachname.Length - 1, 1)); 
            this.Add(Initialen = Nachname.Substring(0, 1) + Vorname.Substring(Vorname.Length - 1, 1));    
            this.Add(Initialen = Nachname.Substring(0, 3));  
            this.Add(Initialen = Nachname.Substring(0, 2) + Vorname.Substring(0, 1));    
            this.Add(Initialen = Nachname.Substring(0, 1) + Vorname.Substring(0, 2));
            this.Add(Initialen = Nachname.Substring(0, 2) + Nachname.Substring(Nachname.Length - 1, 1));      
            this.Add(Initialen = Nachname.Substring(0, 2) + Vorname.Substring(Vorname.Length - 1, 1));
            if (Nachname.Length < 4) {
                
            }
            else {
                this.Add(Initialen = Nachname.Substring(0, 4));
            }            
            this.Add(Initialen = Nachname.Substring(0, 3) + Vorname.Substring(0, 1));         
            this.Add(Initialen = Nachname.Substring(0, 2) + Vorname.Substring(0, 2));            
            this.Add(Initialen = Nachname.Substring(0, 1) + Vorname.Substring(0, 3));            
            this.Add(Initialen = Nachname.Substring(0, 3) + Nachname.Substring(Nachname.Length - 1, 1));            
            this.Add(Initialen = Nachname.Substring(0, 3) + Vorname.Substring(Vorname.Length - 1, 1));        
        }

Sonst eine Idee wie man es eleganter gestalten könnte? Rein nach Spezifikation würde es so reichen, aber ich denke dass wir spätestens, nach dem 14ten gleichen Angestellten (Muster Hans) ein Problem mit der Kurzzeichenvergabe haben werden und dass möchte ich eigentlich schon jetzt im Keim ersticken.

09.04.2008 - 16:12 Uhr

Vorteil von WPF ist natürlich aus, dass eine WPF Anwendung die auf einem Client installiert werden kann, die Darstellung für die weitere Verwendung (wenn notwendig) in eine Silverlight 2.0 Anwendung verwenden, ohne dass Design nochmals erledigen zu müssen.

09.04.2008 - 16:09 Uhr

Noch ein Hinweis: Bekomme in letzter Zeit öfter Probleme, dass die Pfadangaben in meiner Solution nicht stimmen, dann hilft meist ein erneutes Erstellen, was aber auch nervig ist, aber es funktioniert....?!? Scheint bei MS so zu sein. Hatte bei den letzten Techdays einen Redner der gesagt hat: "If it doesn't not built correctly the you have to rebuild it..."

09.04.2008 - 16:00 Uhr

Wenn Du ein DataSet mit TableAdapters hast dann aktualisiert Visual Studio diesen nicht oder fügt bei einem neuen DateSet einen weiteren Connection String hinzu. Wenn Du die neue Connectin verwenden willst, kannst Du dass in den Eigenschaften des jeweiligen DataTableAdapters ändern.

09.04.2008 - 15:53 Uhr

@JAck30lena

warum die forschleife und dann das switch Weil ich gemäss Spezifikation genau 14 Fälle abdecken muss. Wenn auftrund des Zählers dann der Case eintritt, welcher der Spezifikation entspricht, dann fällt er in den jeweiligen Case.

richtig.

  
C#-Code:   
Nachname.Substring(0, 1)    
  

->

  
C#-Code:   
Nachname[0]    
  

und außerdem noch eine abfrage, ob die namen überhaupt lang genug sind (für den unwahrscheinlichen fall). Danke für den Hinweis.

Eigentlich wäre mir vorgeschwebt, dass das MUSS-Kriterium der erste Buchstabe des Nachnamens sind und dann aus dem Nachname und dem Vornamen ein einzelner String gebildet wird und dann aus diesem die restlichen Buchstaben für die Bildung des Kurzzeichens verwendet wird.

09.04.2008 - 14:44 Uhr

Hallo zusammen
In inserer Business-Logik wird einem neuen Mitarbeiter ein Kurzzeichen erstellt. Dieses Kurzzeichen muss eindeutig für einen Namen (als. Beispiel Hans Muster) sein. Gemäss Spezifikation wurden 14 Möglichkeiten aufgezeigt, die ein individuelles Kurzzeichen generieren sollen. Die Implementation habe ich jetzt so vorgenommen.

using System;
using System.Collections.Generic;
using System.Text;

namespace KurzzeichenGenerator.Klassen {

    public class Generator : List<string> {

        private string _vorname;
        private string _nachname;
        private string _initialen;

        public string Vorname {
            get { return _vorname; }
            set { _vorname = value; }
        }       

        public string Nachname {
            get { return _nachname; }
            set { _nachname = value; }
        }        

        public string Initialen {
            get { return _initialen; }
            set { _initialen = value; }
        }

        public Generator GenerateKurzzeichen() {
            AddKurzzeichenToList();
            return this;
        }

        private void AddKurzzeichenToList() {
            for (int i = 1; i < 14; i++) {

                switch (i) {
                    case 1:
                        this.Add(Initialen = Nachname.Substring(0, 1) + Vorname.Substring(0, 1));
                        break;
                    case 2:
                        this.Add(Initialen = Nachname.Substring(0, 1) + Nachname.Substring(Nachname.Length - 1, 1));
                        break;
                    case 3:
                        this.Add(Initialen = Nachname.Substring(0, 1) + Vorname.Substring(Vorname.Length - 1, 1));
                        break;
                    case 4:
                        this.Add(Initialen = Nachname.Substring(0, 3));
                        break;
                    case 5:
                        this.Add(Initialen = Nachname.Substring(0, 2) + Vorname.Substring(0, 1));
                        break;
                    case 6:
                        this.Add(Initialen = Nachname.Substring(0, 1) + Vorname.Substring(0, 2));
                        break;
                    case 7:
                        this.Add(Initialen = Nachname.Substring(0, 2) + Nachname.Substring(Nachname.Length - 1, 1));
                        break;
                    case 8:
                        this.Add(Initialen = Nachname.Substring(0, 2) + Vorname.Substring(Vorname.Length - 1, 1));
                        break;
                    case 9:
                        if (Nachname.Length < 4) {
                            break;
                        }
                        else {
                            this.Add(Initialen = Nachname.Substring(0, 4));
                        }
                        break;
                    case 10:
                        this.Add(Initialen = Nachname.Substring(0, 3) + Vorname.Substring(0, 1));
                        break;
                    case 11:
                        this.Add(Initialen = Nachname.Substring(0, 2) + Vorname.Substring(0, 2));
                        break;
                    case 12:
                        this.Add(Initialen = Nachname.Substring(0, 1) + Vorname.Substring(0, 3));
                        break;
                    case 13:
                        this.Add(Initialen = Nachname.Substring(0, 3) + Nachname.Substring(Nachname.Length - 1, 1));
                        break;
                    case 14:
                        this.Add(Initialen = Nachname.Substring(0, 3) + Vorname.Substring(Vorname.Length - 1, 1));
                        break;
                }
            }
        }
    }
}

Nun meine Frage: Hätte man nicht eventuell einen eleganteren Weg um dies zu realisieren? Wenn ja wäre ich für einen Denkanstoss sehr dankbar.

04.04.2008 - 15:14 Uhr

Form1.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        Form2 frm2 = new Form2();

        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            frm2.Show();            
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }
    }
}

Form2.cs


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form2 : Form
    {
        

        public Form2()
        {
            InitializeComponent();
        }

        private void Form2_Load(object sender, EventArgs e)
        {
            textBox1.Focus();
        }
    }
}

Denn Rest müsstest Du mit Events lösen, denn dann kann die Form1 Events von Form2 abonnieren und entweder daruf reagieren oder auch nicht. Genau gleich kannst Du dass für Form2 machen.

04.04.2008 - 08:08 Uhr

Hallo Pel

Webcasts und MSDN-Solve sind gute Quellen und teilweise auch auf deutsch.

03.04.2008 - 11:00 Uhr

Selbst mit Admin-Rechten und aktivierter UAC muss immer eine Bestätigung für die Manipulation in den oben erwähnten Verzeichnissen gegeben werden.

02.04.2008 - 10:14 Uhr

Wo werden denn die Werte in der ListBox selektiert? Ich sehe, dass beim Button Event nicht, oder sollte dies bereits nach Eingabekriterien geschehen und der Webservice holt sich dann nur die selektierten?

02.04.2008 - 09:02 Uhr

Meiner Meinung nach könntest Du im VS 2005 ein leeres Projekt erstellen, dann die ein existierendes Item hinzufügen und dann unter den Verweisen /Refrences auf Windows Forms verweisen und alles was Du sonst noch brauchst. Wenn Du dann kompilierst wird das ganz ja zusammengepackt und wird dann sicherlich auch nicht so gross.

02.04.2008 - 07:57 Uhr

du kannst die Silverlight Applikation ja in einem ASPX-Webprojekt laufen lassen und dann dort über die Zugriffsberechtigungen /Logins entscheiden werd was sehen darf. In Visual Studio 2008 wird ja bei der Erstellung einer Silverlight Applikation ja gefragt ob man ein neues Web-Projekt anlegen will, oder man nur eine einfache HTML Seite für das Testen haben möchte.

02.04.2008 - 07:53 Uhr

Man, man, man, der war wirklich gut (Das widerspricht der These dass herbivore selber ein Bot ist 😉, zumal Bots ja keinen Sinn für Humor hätten). 👅

01.04.2008 - 13:31 Uhr

Ach mit der Umstellung kann man leben. Ich denke wenn MyCSharp eine Bank wäre und aufgrund von grossen Anfragen die Performance leidet, dann möchte sicherlich jeder dass die jeweiligen Gegenmassnahmen ergriffen werden. Nun ist MyCSharp ähnlich einer Bank, nur nicht monetär sondern mit Hilfe und dass finde ich ist auch ein Kapital, dass es zu schützen gilt (wenn der Server nicht verfügbar ist, dass ist auch das Kapital von MyCsharp nicth verfügbar). Hoffentlich ist der Kern der Aussage rübergekommen 😉

01.04.2008 - 06:18 Uhr

Soweit ich weiss ist dieses Buch

Windows Presentation Unleashed so oder so eine Bibel wenn man mit WPF arbeiten will. Früher oder später werde ich mir dies auch zulegen müssen /dürfen /sollen 😉

01.04.2008 - 06:14 Uhr

Das ganze hat ja mit Datenbindung zu tun, vielleicht hilft Dir dieser Artikel /Tutorial weiter.

01.04.2008 - 06:10 Uhr

Glaub mir die gibt es nicht und mit den paar Tagen wirst du auch nicht hinkommen 😉 MSI "Entwicklung" ist System Engineering auf hohem Nievau (auch wenn man es nicht glauben mag) und erst nach 2 bis 3 Jahren hat man sich dann ein bisschen mit den Tücken von MSI angefreundet und /oder hasst sie...

31.03.2008 - 14:37 Uhr

Es geht darum, dass ich eine Anwendung entwerfen soll mit der jeder beliebige User (egal welche Vorkentnisse) aus einem Ordner mit Dateien ein MSI Paket erstellen kann. Dieses MSI Paket wird man anschließend über eine Windows Domain verteilen. So dass sich jeder Rechner mit den zugehörigen Rechten dieses MSI Paket vom Server holt und installiert. Das finde ich jetzt nicht so klug, da zum einen MSI sehr viel umfangreicher ist als man denkt und zum anderen Wise Package Studio schon sehr umfangreiche und komplexe MSI's erstellen kann (nested MSI's, WiseScript etc.).

Ich finde es nicht ganz geschickt Benutzer die keine Ahnung von Software-Paketierung haben einfach ein Paket zu erstellen. Wie sieht es denn aus: Soll es eine All-User Installation mit Advertised Shortcuts werden? order sollen Install-Shield MSI Pakete umpaketiert werden sodass diese dann nur noch MSI verwenden und nicht mehr die Install-Shield Routine (Version 7.0, 8.0, 9.0 oder 10.0 und jede hat mehr oder weniger immer andere Funktionen und Features).

Wer Dir den Auftrag gegeben hat, hat sich meinern Meinung nicht viel dabei überlegt.

Sorry, wenn ich so heftig reagiere, aber ich hatte viel mit MSI zu tun und auch mit Leuten die versucht haben eines zu erstellen. Es genügt einfach nicht Snapshot-Programm starten - Programm installieren - After Snapshot erstellen...

31.03.2008 - 14:29 Uhr

Wie gesagt, mit new Grid() funktioniert es, aber die Einstellungen sind weg und
die Default einstellungen vom Grid werden verwendet. Weil Du mit New Grid ein neues Objekt generierst, dass die Attribute Deines, wohl im Designer erstellten Grid's gar nicht kennt.

Ich würde Dir vorschlagen, dass Du vier Grid's erstellst und dann je nach DataBind() das eine oder andere lädst.

28.03.2008 - 06:14 Uhr

Vielleicht hilft Dir dass hier weiter: Wake Up on LAN Codeproject

27.03.2008 - 11:06 Uhr

Ich denke dass Du die Datenbindung Deiner ComboBox noch machen musst

 <%# Eval("Name")%>

wobei dass nur ein Einweg-Binding ist. Dies muss Du dann in der XML-Datei Deiner Webseite anpassen.

27.03.2008 - 10:39 Uhr

Kannst auch eine CheckBoxList nehmen.

27.03.2008 - 10:35 Uhr

Wäre vielleicht das Einsatzgebiet und der Zweck vielleicht noch erwähnenswert, da sich nicht nur Profis sondern auch Einsteiger und weniger Erfahrene hier tummeln.

26.03.2008 - 09:31 Uhr

Schau Dir doch mal Infragistics NetAdvantage an. Die sind relativ mächtig aber auch ziemlich schwer zu beherrschen.

26.03.2008 - 09:25 Uhr

Generiere Dir doch wie bei der Windows Genuine Prüfung eine ID aus Hardwarekomponenten und einem zufällig generierten Schlüssel. Dann kannst Du immer noch sagen, dass der PC 5x installiert werden darf (wenn er abgeschmiert ist) und beim 6x mal halt wieder eine Aktivierung notwendig ist.

26.03.2008 - 09:12 Uhr
string formel = "40*POWER(1.5, user.WICHTIG WHERE user.ID = besitz.BESITZER)";
this.DBCmd.CommandText = "UPDATE `besitz` SET `besitz`.`BERECHNUNG` = "+ formel +", WHERE `besitz`.`ID` = '" + Reader[x, 0] + "'"; 

Stichwort SQL Injection

25.03.2008 - 13:50 Uhr

Ist ein für und ein gegen.

Vorteile:

  • AJAX
  • LINQ
  • Auswahl der .NET Umgebung für Projekte
  • CSS und JavaScript Intellisense Unterstützung

Nachteil(e):

  • Preis

Du kannst die Projekte nach Deinem Gusto in die .NET Laufzeitumgebung erstellen lassen, die Du einsetzt und kannst Beispielsweise ein .NET 2.0 Projekt mit wenigen Mausklicks auf die 3.5 bringen.

25.03.2008 - 13:46 Uhr

Zum Glück arbeiten wir ja in einem Umfeld wo auch andere den Code noch verstehen sollten und man nicht die kryptischste Schreibweise anwenden darf... 😉

13.03.2008 - 11:54 Uhr

@unimate
herbivore ist ein Bot und Bot's lachen nun mal nicht und antworten kurz und sachlich.

ist keine Beleidigung nur echte Frage. Da ich dich nicht kenne, probiere ich mir dieses Verhalten selbst zu erklären.

Ist herbivore ein Bot?

13.03.2008 - 06:57 Uhr

Hier noch die Suchergebnisse für Forumssuche nach guide style
Wenn Du in einer Firma arbeitest, hast Du so oder so Coding-Vorlagen die Du einhalten musst.

Bei uns gilt folgendes:

  • private Felder werden mit einem Unterstrich versehen und falls machbar (vom Variablennamen her) in CamelCase geschrieben.
  • Methodennamen sind immer in Pascalcase
  • Konstanten sind immer gross geschrieben.

Wenn der Code sehr gross wird kannst Du mit #region /#endregion für Dich logische Zusammenfassungen im Code erstellen umd die Übersichtlichkeit zu erhöhen.

13.03.2008 - 06:50 Uhr

Nvidia nTune gibts doch schon für das Auslesen.

Ich denke nicht dass das so einfach sein wird.

13.03.2008 - 06:32 Uhr

Generierter Code aus dem WMI Code Creator.

using System;
using System.Management;
using System.Windows.Forms;

namespace WMISample
{
    public class CallWMIMethod
    {
        public static void Main()
        {
            try
            {
                ManagementObject classInstance = 
                    new ManagementObject("root\\CIMV2", 
                    "Win32_ComputerSystem.ReplaceKeyPropery='ReplaceKeyPropertyValue'",
                    null);

                // Obtain in-parameters for the method
                ManagementBaseObject inParams = 
                    classInstance.GetMethodParameters("JoinDomainOrWorkgroup");

                // Add the input parameters.

                // Execute the method and obtain the return values.
                ManagementBaseObject outParams = 
                    classInstance.InvokeMethod("JoinDomainOrWorkgroup", inParams, null);

                // List outParams
                Console.WriteLine("Out parameters:");
                Console.WriteLine("ReturnValue: " + outParams["ReturnValue"]);
            }
            catch(ManagementException err)
            {
                MessageBox.Show("An error occurred while trying to execute the WMI method: " + err.Message);
            }
        }
    }
}