Laden...
H
HappyLil myCSharp.de - Member
Entwickler Schweiz Dabei seit 03.07.2007 154 Beiträge
Benutzerbeschreibung

Forenbeiträge von HappyLil Ingesamt 154 Beiträge

22.01.2008 - 16:41 Uhr

Hallo,
ich hatte kürzlich ein "Phenomen" welches ich mir nicht erklären kann und ich auch meine dass das Verhalten von ADO.NET falsch ist.

Ich habe eine typisierte DataTable mit einem select abgefüllt. der select hat etwa so
ausgesehen: select * from a inner join b on a.x = b.y.
Der Fehler den ich gemacht habe wa,r dass ich select * anstelle von select a.* geschrieben habe.
Soweit so gut.
ADO.NET füllt die DataTable ab und hängt einfach alle attribute von b auch noch an, obwohl ich es wie gesagt in ein typisiertes DataSet abgefüllt habe.
Ich finde, dass wenn der select spalten zurückliefert die er nicht in die typisierte DataTable mappen kann, soll eine Exception geschossen werden.

Sehe ich das falsch?

cheers

17.01.2008 - 10:03 Uhr

... ich beginne zu verstehen.... 🙂

17.01.2008 - 08:48 Uhr

mann ich habs gefunden....

also: anscheinend hab ich auf dem form, den button der den openfiledialog öffnet, versehentlich mal als cancel button gesetzt. das hab ich allerdings gleich wieder geändert. die sache ist nur: wenn ein button mal als cancel butten gesetzt wurde,
wird auf dem button das property DialogResult auf Cancel gesetzt UND nicht mehr geändert, auch wenn der button nicht mehr als cancelbutton auf dem form gesetzt ist.
hrrrrrrrrrrr.....

danke für eure hilfe und die mentale unterstützung
🙂

17.01.2008 - 08:24 Uhr

welche buttons meinst du? ich hatte mal die accept und cancel buttons properties auf dem form gesetzt gehabt. jetzt sind sie wieder au [none].

Im Form gibt es effektiv nix mehr zu finden. Hab den code angehängt.

das mit dem showDialog() habe ich auch probiert. nützt alles nix.

Also wenn das nicht verhext ist???

16.01.2008 - 17:03 Uhr

haaaaaaalt stop...
der workaround geht nicht. der sender ist nicht der openfiledialog sondern das form.

o wehhh - jetzt wirds psychologisch. bin ich wirklich der erste erdenmensch der sowas tut????

16.01.2008 - 17:00 Uhr

Hi,

debugged hab ich schon. finde aber gar nichts gescheites raus. hab mal einen breakpoint auf base.onclosing gesetzt. aber im callstack schauts etwa so aus:

bei TarifAdminClient.module.import_export.ImportForm.OnClosing(CancelEventArgs e) in D:\Work\VS2005\TarifAdmin\TarifAdminClient\module\import_export\ImportForm.cs:Zeile 34.
bei System.Windows.Forms.Form.CheckCloseDialog(Boolean closingOnly)
bei System.Windows.Forms.Application.ThreadContext.System.Windows.Forms. UnsafeNativeMethods.IMsoComponent.FContinueMessageLoop(Int32 reason, Int32 pvLoopData, MSG[] msgPeeked)
bei System.Windows.Forms.Application.ComponentManager.System.Windows.Forms. UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
bei System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
bei System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
bei System.Windows.Forms.Form.ShowDialog(IWin32Window owner)
bei System.Windows.Forms.Form.ShowDialog()

Auf alle Fälle wird dann diese methode im form aus der UnsafeNativemethode aufgerufen:


internal bool CheckCloseDialog(bool closingOnly)
{
    if ((this.dialogResult == DialogResult.None) && base.Visible)
    {
        return false;
    }
    try
    {
        FormClosingEventArgs e = new FormClosingEventArgs(this.closeReason, false);
        if (!this.CalledClosing)
        {
            this.OnClosing(e);
            this.OnFormClosing(e);
            if (e.Cancel)
            {
                this.dialogResult = DialogResult.None;
            }
            else
            {
                this.CalledClosing = true;
            }
        }
        if (!closingOnly && (this.dialogResult != DialogResult.None))
        {
            FormClosedEventArgs args2 = new FormClosedEventArgs(this.closeReason);
            this.OnClosed(args2);
            this.OnFormClosed(args2);
            this.CalledClosing = false;
        }
    }
    catch (Exception exception)
    {
        this.dialogResult = DialogResult.None;
        if (NativeWindow.WndProcShouldBeDebuggable)
        {
            throw;
        }
        Application.OnThreadException(exception);
    }
    if (this.dialogResult == DialogResult.None)
    {
        return !base.Visible;
    }
    return true;
}


somit kann ich einen workaround bauen indem ich im closingevent den sender prüfe und cancel auf true setze.

naja - ich finds etwas wirrgeistig

cheers

16.01.2008 - 16:29 Uhr

Hi,
hab ein Form geschrieben mit folgendem code:


 public partial class ImportForm : Form
    {
        public ImportForm()
        {
            InitializeComponent();
        }

        private void fileopenbutton3_Click(object sender, EventArgs e)
        {
            if (openFileDialog1.ShowDialog(this) == DialogResult.OK)
            {
                filenametextBox1.Text = openFileDialog1.FileName;
            }
        }

        protected override void OnClosing(CancelEventArgs e)
        {
            base.OnClosing(e);
        }
    }

Dieses Form öffne ich im "Haupt"-Form ebenfalls mit showDialog().
Nun kommts: Nachdem ich im OpenFileDialog "öffnen" oder "abbrechen" drücke - schliesst mir das ImportForm ebenfalls. Soll es aber nicht.

Ist das ein Bug - oder was tue ich falsches...

cheers

15.01.2008 - 08:30 Uhr

hallo,
schleppe schon länger ein problem mit mir rum, welches ich auch im ms-developer forum angesprochen haben, aber immer noch keine lösung gefunden haben.
es geht um folgendes:

habe einen workflow runner geschrieben der xoml's von der db hochlädt und startet.
die custom activities sind in libraries. die libraries kann ich im appconfig.config angeben, so dass jeder benutzer des programms seine libraries dynamisch hinzufügen kann.

damit die laufzeitumgebung die activites findet, kriegt der workflow runner einen type provider wie folgt:


TypeProvider typeProvider = new TypeProvider(workflowRuntime);
NameValueCollection col = NameValueCollection)ConfigurationManager.GetSection("ActivityLib");
foreach (string lib in col.AllKeys)
{
  string[] libfilearray = col.GetValues(lib);
  foreach (string libfile in libfilearray)
  {
      typeProvider.AddAssemblyReference(libfile);
  }
}
workflowRuntime.AddService(typeProvider);

desweitern hab ich der AppDomain.CurrentDomain.AssemblyResolve einen assembly resolver hinzugefügt wie folgt:


public Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
{
    AssemblyName assname = new AssemblyName(args.Name);
           
   NameValueCollection col =   (NameValueCollection)ConfigurationManager.GetSection("ActivityLib");
            foreach (string lib in col.AllKeys)
            {
                if (assname.Name.Equals(lib))
                {
                    string[] libfilearray = col.GetValues(lib);
                    return Assembly.LoadFile(libfilearray[0]);
                }
            }
            return null;
    }

Jetzt kommts: auf meinem rechner, und auf rechnern eineiger meiner arbeitskollegen läuft das wunderbar. auf anderen maschinen nicht. dort muss ich dann die activite-libraries ins aktuelle verzeichnis (dort wo dass running-assembly gestartet wird) kopieren. dann klappts.
Das verrückte ist: auf den "problematischen" rechnern kann die runtimeumgebung das xoml einlesen, kompilieren und starten -> d.h. er findet alle activies. knallen tut es dann beim ausführen einer while activity, hier der auszug aus dem stacktrace:

System.IO.FileNotFoundException: Die Datei oder Assembly M2ActivityLibrary, Version=1.0.0.0, Culture=neutral, PublicKeyT
oken=null oder eine Abhängigkeit davon wurde nicht gefunden. Das System kann die angegebene Datei nicht finden.
Dateiname: M2ActivityLibrary, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
bei System.Reflection.Assembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly loca
tionHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection)
bei System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stac
kMark, Boolean forIntrospection)
bei System.Reflection.Assembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMa
rk, Boolean forIntrospection)
bei System.Reflection.Assembly.Load(String assemblyString)
bei System.UnitySerializationHolder.GetRealObject(StreamingContext context)
bei System.Runtime.Serialization.ObjectManager.ResolveObjectReference(ObjectHolder holder)
bei System.Runtime.Serialization.ObjectManager.DoFixups()
bei System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler handler, __BinaryParser ser
Parser, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
bei System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream, HeaderHand
ler handler, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
bei System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream)
bei System.Workflow.ComponentModel.Activity.Load(Stream stream, Activity outerActivity, IFormatter formatter)
bei System.Workflow.ComponentModel.Activity.Clone()
bei System.Workflow.ComponentModel.ActivityExecutionContextManager.CreateExecutionContext(Activity activity)
bei System.Workflow.Activities.WhileActivity.TryNextIteration(ActivityExecutionContext context)
bei System.Workflow.Activities.WhileActivity.Execute(ActivityExecutionContext executionContext)
bei System.Workflow.ComponentModel.ActivityExecutor1.Execute(T activity, ActivityExecutionContext executionContext) bei System.Workflow.ComponentModel.CompositeActivityExecutor1.Execute(T activity, ActivityExecutionContext execution
Context)

hat mir einer von euch einen tip? ich meine, warum klappt es auf meinem rechner und auf anderen nicht? irre nicht?

HappyLIL

14.01.2008 - 12:51 Uhr

vielleicht findest du eine c# Library die das kann und die du einbinden könntest.

evtl. kann das c# von haus aus, schau dir mal die grafikprogrammierung an.

ich finde http://www.codeproject.com immer wieder gut.

14.01.2008 - 12:43 Uhr

nun columnstyles hab ich ned gefunden. aber so was wie datagridviewcolumn.celltamplate und so.
oder was hattest den du gemeint?

14.01.2008 - 10:16 Uhr

nur eine floskel. natürlich= sorry hab's vergessen genau anzugeben. 🙂

14.01.2008 - 09:03 Uhr

hallo,

natürlich datagridview - sorry

11.01.2008 - 14:48 Uhr

Hallo,

binde ich ein decimal-property an eine textbox, kann ich unter advanced databinding einstellen, dass es ein numeric value ist und dass er 2 nachkommastellen hat. schön und gut.
das ganze möchte ich gerne in einem datagrid verwenden.

kennt sich da einer aus?

dankeeeeeeee

09.01.2008 - 10:24 Uhr

Hallo,

untersuche grad mit ProfileSharp eine Applikation. Leider meldet der NortonAntivirus eine Attacke wenn ich das Profilen starte.

Meldung:
SYMANTEC MANIPULATIONSSCHUTZ WARNMELDUNG

Ziel: C:\Programme\Gemeinsame Dateien\Symantec Shared\ccSetMgr.exe
Ereignisinfo: Reservierung Arbeitsspeicher
Durchgeführte Aktion: Blockiert
Angreifender Prozess: C:\Programme\SoftProdigy\ProfileSharp Enterprise Edition v1.3\ProfileSharpServer.exe (PID 2532)
Zeit: Mittwoch, 9. Januar 2008 10:22:39

Ich vermute mal dass es deshalb nicht klappt mit dem Profilen.

Kennt einer von euch dieses Problem und weiss einen rat?

vielen Dank und gruss
Lil

09.01.2008 - 10:09 Uhr

hallo,
ich nehm immer den Lutz Roeder's .net reflector.

http://www.aisto.com/roeder/dotnet/

saupraktisch

cheers

08.01.2008 - 09:33 Uhr

Hallo,
danke für die Antwort. Zuerst mal - ja: windows.form UserControl 🙂

In diesem Fall handelt es sich bei meinen UserControl eher um wiederverwendbare Views innerhalb eines mvc patterns. Den Datenbankzugriff mach ich nur für eine ComboBox die ParameterDaten (keine bewegungsdaten) enthält. Ansonsten mach ich es wie von dir vorgeschlagen. ich hab eine methode setModel (xyzrow aRow) und dann mittels binding.

wie gesagt die UserControls sind keine für alle Entwickler und in jedem Projekt wiederverwendbare Controls. Würdest du das anders lösen?

cheers

08.01.2008 - 08:37 Uhr

Hi,

habe immer mal wieder Probleme mit UserControls die ich in die Toolbox lade um sie weiterverwenden zu können (logisch).
Die Probleme tauchen an folgenden stellen auf:

  1. Constructor:
    habe versucht im Constructor einen Connection String zu erstellen
    (string configString = ConfigurationManager.ConnectionStrings["M2"].ConnectionString )

um eine DB verbindung aufzubauen um dann eine DataTable zu laden und um diese als Datasource an eine ComboBox zu hängen.

-> Problem: Ziehe ich nun dieses UserControl von der Toolbox in ein Form oder anderes UserControl, knallt mir der VS Designer. Und zwar beim erstellen des configString (siehe oben). Ok, ich kann das Problem umgehen, indem ich teste ob (ConfigurationManager.ConnectionStrings["M2"]) null zurück gibt oder nicht.

  1. Load Event
    ich hab dann irgendwo gelesen, man soll solche sachen nicht im constructor sondern besser im load-Event machen (war glaub sogar in diesem forum)
    das hab ich dann gemacht, leider mit dem selben effekt.

Nun meine frage:
Was darf man denn eigentlich im constructor und load event tun und was nicht? Bzw. wo kann ich solche initialisierungen mit db-zugriff machen und wo nicht?

hat da wer ein rezept?

vielen danke und gruss
lil

05.01.2008 - 11:35 Uhr

Ja, es ging um AppServer, aber eben auch um die Frage: Warum hat MS keinen (oder hat ihn doch, aber verteilt über Windows, IIS und COM+) und warum braucht man vielleicht gar keinen (bzw. in welchen Fällen). Oder anders: Ist der monolithische AppServer (in Java ein zwingender Ansatz) eigentlich nur positiv zu bewerten, welche Nachteile ergeben sich und wie sieht die Zukunft in Zeiten von SOA aus? Dort haben Komponentenmodelle ja ausgedient, weil sie nicht die notwendige Uptime liefern. Die Kritik von SOA an Komponenten kommt ja nicht von ungefähr: Das Versprechen über Modellharmonisierung besser zu Integrieren konnte nicht eingelöst werden. Migration ist und bleibt ein Thema und konnte von keiner komponentenbasierten Technologie eingelöst werden. Man kann vermuten, dass J2EE ebentuell den Weg von CORBA gehen wird...

Nur deswegen kommt überhaupt SOA auf, das - rein technisch gesehen eher ein Rückschritt zu sein scheint, aber eben "leichtgewichtig" daherkommt und nur versucht neue Antworten auf die wirklich entscheidenden Fragen zu geben.

zugegeben, sun beschreibt beans als software komponenten. in wirklilchkeit lässt sich doch nicht einfacher als mit einem j2ee container eine soa entwickeln.
was ist schon soa? services (sessionbeans) die über eine standardisierte technologie ( jndi), angesprochen werden können, die über einen contract (remote interface) verfügen, und zur laufzeit gebunden werden (container). ok - plattformunabhängig ist
er nicht, wenn man das als zwingendes kirterium für eine soa aufnehmen will.

Klar braucht nicht jeder einen app-server. dass meine ich nicht. aber für ein kleines fibu programm oder eine handwerker auftragsbearbeitungslösung oder ähnliches brauch ich auch kein wcf, wwf, wpf und service factory und und und.
ich glaube schon, dass ms in den highend markt rein will. sonst würden sie ja nicht all die wirklich gelungenen framworks (wwf,wcf,wpf etc...) entwickeln. mir fehlt jetzt nur noch das "Ding" drum-herum welches mir die komplexität wieder reduziert.

04.01.2008 - 16:43 Uhr

@LASTGentleman:
versuch mal folgendes:

  • geh zur jobss homepage
  • hohl dir den server runter
  • installier in
  • führ die start bat aus
    -> fertig: er wird laufen.
    dauer: 5min.

zum deployen etc..: einfaches beispiel mit hilfe eines buches, zB das jboss entwicklerheft von o'reilly denke ich mal kriegst du innert tagen was hin. keine monate oder so.
(interface schreiben, seassionbean implementiere, ear builden, deployen fertig, evtl. deskriptoren wenn nicht ejb 3.0)

UND: der thread ist wirklich interessant, ich sollte mir auch gedanken über die neue architektur hier machen. bin deshalb sehr gespannt wo es hingeht....

04.01.2008 - 15:39 Uhr

Komplexität verursachte Kosten. Komplexität braucht gute und erfahrene Mitarbeiter, die sich ihre Qualifikation teuer bezahlen lassen. Komplexität verursacht aber vor allem Kosten in der Wartungs- und Erweiterungsphase, wenn die Erstentwickler an neuen Projekten sitzen oder die Firma verlassen haben und Neulinge sich durch das System wühlen müssen.

Jetzt verstehe ich dich wirklich nicht mehr - sorry 🙂. aber, wer app-server selber bauen will, sich um kommunikation, failover, XA etc.. selber kümmern muss, DER bring enorme komplexität in seine applikation, DER braucht teure + erfahrene Mitarbeiter. Gerade Deshalb gibts ja die App-Server damit man sich auf die kernaufgabe - das schreiben von Geschäftslogik konzentrieren kann.

Ich glaube, du hast mich nicht verstanden. Man muss als Entwickler immer abwägen. Auf der einen Seite steht das eiserne Gesetz, die Dinge nicht unnötig kompliziert zu machen ("keep it stupid, keep it simple"). Auf der anderen Seite muss man das, um skalierbar und erweiterbar zu bleiben und damit neue Kunden zu erschließen zu können (ob mans tut ist unbekannt). Es ist letztlich eine Aufgabe des Produktmanagements ein Zukunftszenario zu entwerfen, das maximalen Profit bei minimalem Risiko verspricht. Ob es hält steht auf einem anderen Blatt. Beispiel sind daher nicht geeignet um irgendwas zu beweisen. Es gibt allerdings etliche Untersuichungen, die zeigen, dass Systeme oftmal viele Funktionalitäten besitzen die kaum oder nicht genutzt werden. System tendieren in der Praxis eher zum "Überdesign" - zumindest im professionellen Sektor. Bei Anfängern sieht das natürlich anders aus. Um es auf den Punkt zu treiben: Du wirst sicher nicht J2EE mit x Schichten einsetzen, wenn dich jemand mit einer Desktop-Lösung beauftragt. Oder noch anders: Ich kaufe mit als Paketzusteller auch keinen 18-Tonner, nur weil vielleicht irgendwann jemand eine 10-Tonnen-Lieferung aufgeben will.

könnte ich alles unterschreiben - aber in DIESEM thread geht es ja um app-server. und darum das der kollege einen schreiben will - und ich sage: nimm doch einen.

04.01.2008 - 13:31 Uhr

Wieso keinen fetten JBoss bei einem kleinen/mittleren Unternehmen einsetzen?

Weil schwergewichtige Lösungen (und dazu gehört J2EE ohne Frage) immer mehr Kosten verursachen, wenn sie ihr Gewicht nicht benötigen. Skalierbarkeit ist sicher ein Argument, aber kein Killer-Argument. Auch anderen Lösungen skalieren durchaus. Kosten muss _immer _ein ROI entgegen stehen. Wenn der überhaupt nicht absehbar oder völlig unwahrscheinlich ist (wird meine kleine Handwerkslösung mit 10 Clients wirklich jemals einem Großkonzern mit 300.000 Mitarbeitern laufen?), dann macht es oft mehr Sinn, die Architektur so zu gestalten, dass eine Migration auf eine Enterprise-Lösung wenigstens ohne völliges Neuschreiben der Business-Logik machbar ist. Denn hier steckt meist die Kernkompetenz der Anwendung. Der Rest ist Technik, und die wandelt sich eh.

Wenn vielleicht in 10 Jahren alle SOA machen dann ist EJB so kalt wie ein Teller Gazpacho. Wie Cobol-Mainframes das in Zeiten von C/S-Systemen wurden.

Bedenke: Weder Google noch Yahoo setzen J2EE ein. Und das Zeug skaliert durchaus.

Hallo,
was an J2EE ist denn so schwergewichtig? Und warum soll das kosten verursachen?
JBoss ist GRATIS!!
SessionBeans und EntityBeans - fertig.
OK - ob sich 10 Client einen Server teilen sollen ist sicher fraglich. Wie gesagt, die Architektur soll ein wachstum zulassen. Meine Erfahrung der letzten 8 Jahre hat folgendes gezeigt: Wir haben eine Lösung geschrieben die anfänglich 3 Sachbearbeiter nutzen und heute bei einem RZ läuft und beim grössten Kunden ca 1000 Sachbearbeiter bedient. Hätten wir damals so argumentiert wie du, wäre das nie möglich gewesen.

Wo ich dir hingegen 100% recht gebe ist, dass Businesslogik so geschrieben werden soll dass sie "Hype-Neutral" ist (SessionBean ruft Service auf etc..), so dass wir in 10 Jahren problemlos auf die modellgetriebeneserviceobjektworkflowkomponentenarchitektur migrieren können.

04.01.2008 - 13:01 Uhr

Die Architektur sollte vorallem so gewählt sein, dass meine Applikation skalierbar ist.
Eine Architektur die "nur" kleinen/mittleren Unternehmen genügt, kann für ein Softwareunternehmen fatale folgen haben, nähmlich dann, wenn die Architektur dem Wachstum des Unternehmens im Wege steht. Was dann folgt: Umbauen, entweder die alten kunden migrieren oder 2 Software Produkte pflegen (ihhhhhhhhh).
Wieso keinen fetten JBoss bei einem kleinen/mittleren Unternehmen einsetzen? Was tut da so weh? Ich nehm ja auch einen SqlServer, obwohl der für viel mehr Last designed ist als nötig.
Und sooooo schlimm kann und ist die parametrierung nicht - dafür sind doch schon viel zu viele im einsatz...

WCF gefällt mir ebenfalls sehr gut, überhaupt hat .net 3.0 so allerhand zu bieten. was mir noch fehlt ist eine wirklich fähiger Persistenzlayer. Die MS ansätze sind mir immer etwas zu fett.

04.01.2008 - 09:24 Uhr

Hallo Svenson,

Komme selber aus dem java-enterprise umfeld. bin deiner meinung. ms verschläft das total und werfen tonnenweise technologien auf den markt. seit ich auf .net entwickle komme ich mir manchmal vor wie die mönche in der vergangenheit die seitenweise bücher abgetippt haben. alles muss man selber schreiben. ich meine, warum sonst dieser thread? mal ehrlich - wer in der java welt käme auf die idee einen app-server zu schreiben????
Wichtig im j2ee umfeld ist halt, das der entwickler eine entwicklungsumgebung hat, bei der er seine services nicht zu deployen braucht damit er nicht dauernd warten muss.
Bei meinem letzten arbeitgeber hatten wir so eine umgebung. kommerziell gibt es das wohl noch nicht.

wieso baut ms keine gescheiten app-server? keine ahnung, denn soviel können die nicht. ein bisschen service pooling etc.. aber so was von hexerei ist das nicht. aber vielleicht würde es für ms langsam aber sicher etwas peinlich werden, wenn sie schon wieder was abkupfern würden. solang sie das tun sind sie ja keine alternative. ich persönlich erwarte von ms mehr innovationen. echte alternativen im applikationsbau.

cheers

03.01.2008 - 10:00 Uhr

kleine bemerkung zum thema dataset/o-r mapper.
wenn du es wichtig findest das zu verwenden was es gibt, nimm doch einen Java-AppServer 🙂

mir geht es in sachen dataset genau umgekehrt. Mir fehlt die möglichkeit der vererbung bzw das implementieren von interfaces enorm. dadurch meine ich, ist es schwierig, bzw mühsam generische businesslogik zu schreiben.

dein projekt finde ich interessant, eigentlich möchte ich auch schon länger an dem thema was machen - nur fehlt irgendwie die zeit und lust zuhause was zu machen. und beruflich hab ich keine zeit.

weiterhin viel spass.

03.01.2008 - 09:01 Uhr

hallo chausfreak,

vielen dank für den hinweis. ja, das hätte ich wohl prüfen müssen. shit.
danke nochmals und frohes neues jahr

03.01.2008 - 08:59 Uhr

habe mit folgendem workaround erfolg gehabt (ohne transaction scope, mit eigener Transaction):

            string configString = ConfigurationManager.ConnectionStrings["M2"].ConnectionString;  
            FbConnection mycon = new FbConnection(configString);  
            m_LeieinheitAdapter.InsertCommand.Connection = mycon;  
            m_LeieinheitAdapter.UpdateCommand.Connection = mycon;  

            m_TarifDefAdapter.InsertCommand.Connection = mycon;  
            m_TarifDefAdapter.UpdateCommand.Connection = mycon;  
              
            mycon.Open();  
            FbTransaction trx = mycon.BeginTransaction();  
            m_LeieinheitAdapter.InsertCommand.Transaction = trx;  
            m_LeieinheitAdapter.UpdateCommand.Transaction = trx;  
            m_TarifDefAdapter.UpdateCommand.Transaction = trx;  
            m_TarifDefAdapter.InsertCommand.Transaction = trx;  
              
            try  
            {  
                writeLeieinheitInternal(leieinheitTab);  
                writeTarifDefInternal(tarifdefTab);  
            }  
            catch (Exception ex)  
            {  
                trx.Rollback();  
                throw ex;  
            }  
            trx.Commit();  
              
            mycon.Close();
03.01.2008 - 08:45 Uhr

.. hallo,
na das hat nichts gebracht. hätte mich auch gewundert, denn soviel ich weiss schliest der DataAdapter die Connection eh schon. (er öffnet sie auch, die Open Anweisung ist vermutlich auch schon überflüssig)

danke trotzdem.

02.01.2008 - 17:58 Uhr

verwendetes Datenbanksystem: DB:
IBExpert mit FirbirdSql.Dta.FirebirdClient, ADO.Net 2.0

Hi,

ich insert in 2 Tabellen in einem TransactionScope. Unschön ist, dass die erste Tabelle nach ausführen der update-Methode auf dem FbDataAdapter bereits geschrieben ist, und nicht kein rollback mehr gemacht wird wenn es beim schreiben der 2ten Tabelle knallt.

Frage: hat mir jemand einen Tip, was ich tun muss, damit nur beide oder keine Tabelle committed wird. (so wie mans ja erwarten würde...)

Hier noch der Sourcecode (m_LeieinheitAdabter und m_TarifDefAdapter sind vom Typ FbDataAdapter und werden initial erstellt)

using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required))
{

            string configString =   ConfigurationManager.ConnectionStrings["M2"].ConnectionString;  
            FbConnection mycon = new FbConnection(configString);  
              
            m_LeieinheitAdapter.InsertCommand.Connection = mycon;  
            m_LeieinheitAdapter.UpdateCommand.Connection = mycon;  

            m_TarifDefAdapter.InsertCommand.Connection = mycon;  
            m_TarifDefAdapter.UpdateCommand.Connection = mycon;  
            mycon.Open();  

            m_LeieinheitAdapter.Update(leieinheitTab);            
            m_TarifDefAdapter.Update(tarifdefTab);  
            scope.Complete();  

}

21.12.2007 - 13:12 Uhr

Besten Dank auch noch...
und frohe Weihnachten!!

21.12.2007 - 09:03 Uhr

hallo Andreas,

du kennst also mein Problem: JA es soll auch greifen wenn der Focus zB auf einer Combobox liegt.

20.12.2007 - 13:46 Uhr

das problem ist doch wenn der focus in einem anderen element ist, wer kriegt dann den event?

20.12.2007 - 13:43 Uhr

Hallo,
TabPage Wechsel per Tastatur lässt sich ja gut per strg+Tabulator machen.
Ich möchte die einzelnen TabPages per qualifizierte Tastenkombination machen um die einzelnen Pages absolut anzusprechen.
zB strg+ Page = page 1 etc...

Hatte das von euch schonmal jemand durchlitten?

viele Grüsse

18.12.2007 - 16:41 Uhr

... dummerweise hab ich mit rauchen aufgehört 🙂

ja - den "trick" kenn ich auch. ich finds einfach nur umständlich und verstehe nicht warum die M-Softler den nicht gefixt haben.

18.12.2007 - 15:52 Uhr

Ciao,

kennt jemand einen wirklich guten workaround für den visualstudio bug, der UserControls die in einem SolutionFolder stecken. nicht in der Toolbox darstellt?
https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=144156

Ich hab mir mal so ein Tool names RazorToolbox angeschaut, aber das funzt irgendwie auf meiner vs2005 installation nicht.
http://www.istaysharp.net/index.php?title=IStaySharp.RazorToolbox

ich meine, klar, man kann die binaries manuel zur toolbox hinzufügen. ich dachte ich
frag einfach mal ob es was gescheiteres gäbe. so was wirklich tooles. so was das spass
macht - ihr wisst ja - oder?

Denn es gilt: Qualität ist was Spass macht! (schon mal darüber nachgedacht?)

18.12.2007 - 12:58 Uhr

mit nicht unterstützen meine ich, er steht dort nicht zur auswahl, so wie all die anderen eventhändler (mouseclick, keydown eetc...).
die eventargs sind als eigene klasse im gleichen .cs file.

schnapp

18.12.2007 - 09:37 Uhr

Hallo,
hab ein UserControl mit einem Eventhandler wie folgt definiert:


public partial class ReferenceControl : UserControl
    {
        [Browsable(true)]
        [Category("Behavior")]
        public event EventHandler<ReferenceEventArgs> ReferenceChanged;
.....

nur leider wird dieser event (dort wo ich das usercontrol verwende) nicht unterstützt.

hat wer ne ahnung warum?

tschüss und gruss

17.12.2007 - 09:51 Uhr

Ich finde es schon lustig, wenn ein Java entwickler von Toll Layouteten Swing GUI's redet.

Die sehen nicht nur besch... aus, sie wiedersprechen meist jeglichen
Ergonomieansprüchen.

Aber das mal nur am rande.

... ob die gui letzten endes gut aussieht und ob sie ergonomisch ist liegt ja (und da sind wir uns hoffentlich einig) nicht an der sprache, sondern am entwickler.
(und übrigens finde ich es schade, wenn man nicht nach links oder rechts schauen kann, andere haben auch gute ideen und konzepte)

toll finde ich das konzept von swing. denn, baue ich eine applikation mit mehreren hundert screens, möchte ich doch, dass alle guis in etwa gleich aussehen. dh, ich möchte das layout so weit wie möglich vom entwickler entfernen (so gut es geht).

Ich suche immer noch nach geeigneten wegen, dies in c# zu machen. denn was ich bis heute gemacht habe, guis zu pinseln, ist mir zu aufwendig. aber wie gesagt, ich schliesse ja nicht aus dass man das sehr wohl produktiv machen kann - weiss nur noch nicht wie.

cheers

14.12.2007 - 15:58 Uhr

gehen tuts schon, nur wie...

... versuch mal einen tablelayoutpanel in die Zelle eines anderen tablelayoutpanel setzen.....

etc. etc.

ich möchte mich nicht mit absoluten koordinaten rumschlagen. alles was ich angeben will
sind layout verhalten. In java geht das sau gut. In c# könnte es auch, nur geht man im visual studio davon aus dass man guis zusammenklickt.

14.12.2007 - 11:50 Uhr

jaja ich weiss - ist alles etwas metaphysich was ich da schreibe 🙂

ist ja auch mehr so mein bauchgefühl.

swing ist gemacht um eine gui zu programmieren. deshalb gibt es dort layouter.
vorteil ist, dass die einzelnen elemente toll gelayoutet sind. guis lassen sich somit problemlos generisch erzeugen, weil wie gesagt - die gui eigentlich programmiert wird. natürlich gibt es klicker tools - aber die braucht man eigentlich nicht.
ebenso finde ich sehr schön, dass ein gui-element sein model hat. bei .net ist das zwar supergenerisch gelöst, aber das databindung ist irgendie fummelig.

überhaupt ist die .net sache gemacht um guis zusammenzuklicken. bei kleinen anwendugen mag das sehr sehr praktisch sein. bei grösserern mit hunderten von guis, meine ich, ist es nicht so toll.

14.12.2007 - 11:09 Uhr

Hallo,
mich nimmt nur eure Meinung wunder. Und bitte - ich bin absolut nicht religiös in sachen programmiersprachen bzw framworks etc.

Die letzten 8 jahre hab ich in java entwickelt. jetzt c#. ich meine die sprache ist cool. aber generische guis zu bauen ist irgendwie dermassen umständlich und manchmal fast nicht möglich - da vermisse ich meine swing schon sehr.

gerade jetzt bin ich an einem Such-Dialog drann. der aufwand für wiederverwendbare Usercontrols ist irgendwie sehr hoch.

seht ihr das anders? gehe ich falsch an die sache ran?
lil

14.12.2007 - 10:30 Uhr

Hallo,

ich habe folgendes Problem:
setze ich auf dem form das property localizable=true, werden fast alle properties (size, flatstyle etc..) ins form.resx file geschmissen. ich meine ich finds gut wenn bezeichnungen von buttons und labels dort sind, aber die technischen ?!?

nun denn, jetzt möchte ich generisch einen button hinzufügen.
Frage: muss ich nun auch alles ins resource file kippen? oder kann ich das irgendwie umgehen?

cheers

13.12.2007 - 16:25 Uhr

ok - bin einen schritt weiter.

die beiden UserControls die ich verwende, besitzen ein Property welches vom Typ
XYZDataRow ist.

Das scheint den ärger zu verursachen. nehme ich die raus, klappts wieder.
hmmmm

kann man irgendwie sagen, dass ein property kein gui-property ist?

13.12.2007 - 16:21 Uhr

OK - Klar doch.

ich versuchs mal mit beschreiben.

  1. habe mit einem EmptyProject gestartet und darunter ein windows projekt (der client) erstellt.

  2. im client gibt es einen ordner, darin habe ich 2 usercontrols erstellt. Da man so erstellte UserControls nicht automatisch in der toolbox sieht, musste ich sie manuell hinzufügen (choose item etc...)

  3. Ich erstelle nun ein drittes usercontrol, und füge die beiden zuerst erstellten UserControls hinzu. das klappt - der designer kann alles wunderbar darstellen.
    jetzt kommts: builde ich das ganze, fällt der designer auf den sack und kann mein 3tes user control nicht mehr darstellen.
    cool gell.

13.12.2007 - 15:54 Uhr

Hallo,

habe ein UserControl geschrieben. In diesem UserControl sind zwei weitere UserControls verwendet.
Hat bis anhin alles wunderbar funktioniert.
Nun kriege ich diese Exception, wenn ich das UserControl öffne.

at System.ComponentModel.ReflectPropertyDescriptor.SetValue(Object component, Object value)
at System.ComponentModel.Design.Serialization.CodeDomSerializerBase. DeserializeAssignStatement(IDesignerSerializationManager manager, CodeAssignStatement statement)
at System.ComponentModel.Design.Serialization.CodeDomSerializerBase. DeserializeStatement(IDesignerSerializationManager manager, CodeStatement statement)
13.12.2007 - 10:43 Uhr

danke für den tipp

12.12.2007 - 16:23 Uhr

Hallo,

schreibe ein eigenes UserControl. Mit einer Textbox und einem Button.
Verwende ich dieses usercontrol im designer kriege ich nicht die gewohnten ausrichtungslinien für den Text sondern nur die oben und unten am user control.

\======================   -------- diese krieg ich
 [TextBox    ][button]__________ diese fehlt
\=======================  --------- diese krieg ich

frasche: what can i do to get the fu... linie in mein UserControl.

Danke ein lot
Lil

11.12.2007 - 14:23 Uhr

ja genau - mein ich doch - nur es wird immer wieder behauptet, auch in diesem forum, datasetten und co seien perfomanter.
hm.

11.12.2007 - 14:02 Uhr

verwendetes Datenbanksystem: <SqlServer>
Warum wird eigentlich immer wieder behauptet, DataSet und Co. sei perfomanter als OR-Mapping?
Ich meine - habt ihr auch schon mal mit einem Reflector den DBAdabper angeschaut? Ist ja nichts anderes als ein OR Mapper. Nur dass das Objekt eine dicke, fette DataTable ist und kein schönes schlankes Eigenbau-Objekt. OK - für ein fertiges OR-Mapping Framework braucht es auch ein paar Zeilen code. klar. Nur eben - DataTAble ist nichts anderes als OR Mapping.
Kann mir jemand auf die Sprünge helfen?

Lil

13.11.2007 - 09:05 Uhr

Hi,

ich verwende den logging application block zwecks zentralem logging in ein file. Benutze den RollingFlatFileTraceListener um das File zu schreiben.
Ich wollte es so einrichten dass jeden tag (dann wenn das tagesdatum sich ändert) ein neues file geschrieben wird - so dass ich dem kunden sagen kann "sende mir doch das file vom tag x.y damit ich die fehler suchen kann..."

Nun ist es aber so dass wenn ich beim RollingFlat..Listener das RollInterval auf Day stelle, jeweils ein neues File geschrieben wird wenn das aktuelle einen Tag alt ist.
Starte ich nun meinen Server um 13.00, wird erst am folgenden Tag um 13.00 ein neues File erstellt. hm.

Frage an euch: Hatte jemand von euch ähnliche Anforderungen? Gibt es irgendwo in den tiefen des www einen FlatFileTrace listener der das kann? Oder muss ich einen selber schreiben? Oder wäre Log4net die adäquate Lösung?

danke für eure Antworten!
cheers mates!

07.09.2007 - 13:43 Uhr

hatte das gleiche problem wie der kollege unten. konnte so gelöst werden. offensichtlich liegt es daran dass ich ein deutsches windows und ein englisches VS habe.

I lost all my templates from C# language.

I have installed Visual Studio Team Edition for Software Developers onto a Visual Studio Professional Edition. Something like a upgrade namely.

But I notice when i wan to start a windows applications, all windows applications templates are gone.

The only one that wizzard suggest me was Crystal Report Form.

Reading this blog i was unable to repair or fix it running devenv /installvstemplates.

It´s runs quite but nothing happens. Same behaivor.

Trying to change the location of templates files, also helps anything.

The problem "in my case", was with this setting:

Tools/Options/Environmet/International Settings/Language:

It was setup as "Some as Microsoft Windows", while my Windows is in Spanish Language.

Turning it back to "English", fix the problem for me.

Now when i run and do New Project, i see all templates i was missing suddenly.

I hopes helps anybody. It´s my two cents.

cmf.