Laden...

Forenbeiträge von serial Ingesamt 902 Beiträge

25.05.2009 - 00:06 Uhr

Hallo,

DoEvents ist schlecht.
Die Berechnung solltest du in einen eigenen Thread legen (nimm am besten den BackgroundWorker), und lass dich Benachrichtigen vom Thread und aktualisiere danndeine Form.

Der BackgroundWorker bietet extra Events dafür an....
BEnutze mal die Suche,

mfg
serial

22.05.2009 - 14:36 Uhr

Ja diese ist ANSI, also Encoding.Default quasi?!

mfg
serial

22.05.2009 - 13:38 Uhr

Hallo,

danke für eure Antworten.
Habe auf Default gestellt, und er haut mir mein ö trotzdem noch weg =(

mfg
serial

22.05.2009 - 12:21 Uhr

HAllo,

ich verzweifel gerade und habe wohl einen Knick im Kopf.

Ich will eine .txt Datei mit umlauten einlesen:


content = File.ReadAllLines(filePath,Encoding.UTF8);

Dateiinhalt:

Söhne Mannheims - Titel

trotzdem wird das ö nicht genommen...
irgendwas habe ich wohl vergessen...oder?

mfg
serial

17.05.2009 - 15:25 Uhr

sag uns dochmal, wieso du das so machen willst, vielleicht ist auchnur deine vorgehensweise dumm?!

mfg
serial

15.05.2009 - 11:19 Uhr

wenn es wirklich externe, nicht .net anwendungen sind, kannst du dir mal die Win32 Funktionen FindWindow und SetParent anschauen.

Gibt hier im Forum sicher auch schon Beispiele.

mfg
serial

12.05.2009 - 18:29 Uhr

Sollte es nicht ein Interface für Controller und eins für Model geben, welches eben unterschiedliche Models und COntroller implementieren, du aber nur auf ein Interface programmierst?

Das laden der Komponente könnte zB ein Microkernel machen....

Allerdings vertrete ich die Meinung, das in einer Windowsform - Anwendung die Ereignissbehandlung des Forms der Controller ist.

mfg
serial

10.05.2009 - 16:40 Uhr

Ich kann mir nicht vorstellen, das ParameterizedThreadStart nicht funktioniert hat...

mfg
serial

06.05.2009 - 18:56 Uhr

hallo,

das ist ja eine interessante aussage!
Meinst du das komplette asynchrone muster, oder nur dieses aus dem beispiel mit den SendOrPostCallbacks etc...?

Oder anders gefragt, wenn du Klassen implementierst, die ihre aktionen async ausführen, welches muster verwendest du? IAsyncResult mit Delegaten? ThreadPool?

mfg
serial

06.05.2009 - 18:02 Uhr

Hallo,

ich habe mir gerade mal ein paar artikel zum eventbased asyncpattern durchgelesen.

Viele beispiele sind immer sehr simpel, und in der MSDN bin ich auf das beispiel mit dem SendOrPostCallback gekommen.

MSDN: Exemplarische Vorgehensweise: Implementieren einer Komponente, die das ereignisbasierte asynchrone Muster unterstützt

Nun meine Frage, wann muss/sollte man dieses muster verwenden...bzw wann kann ich auf diese methodik verzichten?

mfg
serial

06.05.2009 - 10:07 Uhr

@herbivore: ich habs ja nicht ausgeschlossen, war mir nur nicht sicher ob es wirklich eine "saubere" lösung ist.

Nun weiß ichs ja =)

mfg
serial

05.05.2009 - 19:15 Uhr

Nein eher in die richtung:



abstract class KlassenOnkel
{
 public abstract void Add(int i);
 int Test{get;set;};
}

public class RichtigerOnkel:KlassenOnkel
{
 public void Add(int i)
 {
   //hier deine intelligenz
 }

 public int Test
{ get {return irgendwas;}
   set{irgendwas=value;}
}
}

public class OnkelProxy:KlassenOnkel
{
  private KlassenOnkel _onkel = new RichtigerOnkel();
  public void Add(int i)
 {
   throw new OperationException("Darfst du nicht");
 }

 public int Test
{ get {return _onkel.irgendwas;}
   set{_onkel.irgendwas = value;}
}
}

05.05.2009 - 18:59 Uhr

nein, schau dir nochmal den link genau an den ich dir geschickt habe =)

mfg
serial

05.05.2009 - 18:36 Uhr

Dann mach einen Proxy um diese Klassen welche deine Hauptklasse zurückgibt, dieser Proxy verhindert die Intelligenzfunktionen.

http://www.dofactory.com/Patterns/PatternProxy.aspx

Edit: oder wohl unsauber: Mach ein Interface welches die erlaubten Methoden hat(welche auch von ausserhalb aufgerufen werden können) und gib nur das Interface zurück.
Intern castest du immer in den richtigen Klassentyp und kannst auf alle Member zugreifen (also auch auf die, welche nicht im Interface deklariert sind und somit von ausserhalb nicht aufrufbar).

mfg
serial

03.05.2009 - 22:38 Uhr

blöde frage, aber kannst du in userState nicht alles reinpacken??

mfg
serial

28.04.2009 - 21:05 Uhr

das wundert mich, der von mir gepostete code funktioniert wunderbar, und das attribut ist dabei nicht im interface sondern in der klasse.

Das GetType() liefert mmn den typ des konkreten objektes, nicht den des interfaces...darum funktioniert mein code auch.

Ist bei dir vielleicht noch irgendwo ein anderes problem?

mfg serial

[Edit]
Du holst dir ja hier die Propertys der Eigenschaftentypen, diese werden wohl das Descriptionattribute nicht implementieren...

28.04.2009 - 18:03 Uhr

oder geht sowas:


  public interface IKunde
    {
        string Name { get;set;}
    }


 class Kunde:IKunde
    {
        string _name;
        #region IKunde Member

        [Description("Test")]
        public string Name
        {
            get
            {
                return _name;
            }
            set
            {
                _name = value;
            }
        }

        #endregion
    }


 private string GetKundenDesc(IKunde kunde)
        {
            Type t = kunde.GetType();
            PropertyInfo[] props = t.GetProperties();
            foreach (PropertyInfo info in props)
            {
                object[] o = info.GetCustomAttributes(typeof(DescriptionAttribute), false);
                if (o.Length > 0)
                    return ((DescriptionAttribute)o[0]).Description;
            }
           
          
            return string.Empty;
        }

serial

27.04.2009 - 11:52 Uhr

ich weiss, nur tritt es leider in der entwicklung nicht auf, und live kann ich den code nicht raushauen.

mfg
serial

27.04.2009 - 11:48 Uhr

jede änderung am codebehind bedeutet bei uns, das wir das system updaten müssen, dann sind ca 80 internetseiten für 30min nicht erreichbar.. =(

Achso, ich meinte damit die sache, code solange rauszuhauen, bis die exception nicht mehr kommt....das lock würde ich schon machen.

mfg
serial

27.04.2009 - 11:40 Uhr

das geht nicht so eifnach, da dieser fehelr nur im livebetrieb auftritt, und diese schleife ein wichtiger bestandteil ist.

Unsere kunden würde das sehr ärgern.....=(

mfg
serial

27.04.2009 - 11:37 Uhr

würde es mir was bringen, diese gesamte! schleife zu locken?

mfg
serial

27.04.2009 - 11:33 Uhr

Hier ein etwas abgeänderter code:


 NewsArtikelItems items = new NewsArtikelItems();
            try
            {
                
                string key = string.Format("MyKey_{0}_50", sender_id);
                items = (NewsArtikelItems)Cache[key];

                if (items == null)
                {
                    items = newsDB.SolveNewsFrontendItems(sender_id, 50);
                    Cache.Insert(key, items, null, DateTime.Now.AddMinutes(5),Cache.NoSlidingExpiration);
                }
                items.Sort(true);
            }
            catch (Exception ex)
            {
                Functions.SetErrorLog(string.Format("FE_NewsOverview-LoadOverview():Fehler beim lesen der Newsartikel aus Cache: {0}", ex.Message), sender_id);
            }

			foreach (NewsItem item in items)
			{
				if (i == 1)
				{
					Control werbungCtl = LoadControl("Werbung.ascx");
					Type t = werbungCtl.GetType();
					PropertyInfo property = t.GetProperty("Position");
					property.SetValue(werbungCtl, "News1", null);
					property = t.GetProperty("SenderID");
					property.SetValue(werbungCtl, sender_id, null);
					property = t.GetProperty("MenuID");
					property.SetValue(werbungCtl, menu_id, null);

					PlaceHolder1.Controls.Add(werbungCtl);
				}

				if (i == 4)
				{
					Control werbungCtl = LoadControl("FE_Werbung.ascx");
					Type t = werbungCtl.GetType();
					PropertyInfo property = t.GetProperty("Position");
					property.SetValue(werbungCtl, "News4", null);
					property = t.GetProperty("SenderID");
					property.SetValue(werbungCtl, sender_id, null);
					property = t.GetProperty("MenuID");
					property.SetValue(werbungCtl, menu_id, null);

					PlaceHolder1.Controls.Add(werbungCtl);
				}

				if (i < maxAnzahl)
					try
					{
						FE_NewsListItem contentCtl = LoadControl("FE_NewsListItem.ascx") as FE_NewsListItem;
					
						Type t = contentCtl.GetType();

						contentCtl.NewsHeader = item.NewsHeader;

						contentCtl.NewsForum = item.NewsForum;

						contentCtl.CountComment = GetBeitragCount("News", 0, item.NewsID);
						
						contentCtl.NewsTeaser = item.NewsTeaser;

						contentCtl.NewsID = item.NewsID;

						contentCtl.ShowMehrLink = item.ShowMehrLink;

						contentCtl.MenuID = item.NewsMenuID;

						contentCtl.SenderID = item.NewsSenderID;

						contentCtl.IsUserNews = item.NewsIsUserNews;
						contentCtl.NewsDatum = item.NewsDatum;

						contentCtl.NewsKategorieBez = item.NewsKategorieBez;

                        if (item.NewsVideos.Count > 0)
                        {
                            try
                            {
                                contentCtl.HasVideo = true;
                                contentCtl.NewsVideos = item.NewsVideos;
                            }
                            catch (Exception ex)
                            {
                                Functions.SetErrorLog(string.Format("Fehler beim erstellen von NewsListItem - NewsVideos: {0}", ex.Message), sender_id);
                            }
                        }
                        else
                        {
                            contentCtl.HasVideo = false;
                        }


						if (item.NewsImages.Count > 0)
						{
							string sender_str = String.Format("{0}", item.NewsSenderID);
							contentCtl.NewsImage =item.NewsImages[0].Val;
						}
						else
						{
							contentCtl.NewsImage = "";
						}

						contentCtl.NewsLinks = item.NewsLinks;

						

						if (item.NewsAudios.Count > 0)
						{
							contentCtl.HasAudio = true;
						}
						else
						{
							contentCtl.HasAudio = false;
						}

						PlaceHolder1.Controls.Add(contentCtl);
					}
					catch (Exception ex)
					{
						HtmlGenericControl txt = new HtmlGenericControl();
						txt.TagName = "div";
						txt.InnerHtml = ex.ToString();
						PlaceHolder1.Controls.Add(txt);
					}
				i++;
			}

mfg serial

PS: Ich hatte es in Web reingestellt, da ich mir nicht sicher war, ob es mit den einzelnen Requestthreads zu tun hat...

27.04.2009 - 11:25 Uhr

Hallo LaTino,

ich weiss, aber ich mache in der schleife nichts dergleichen....wirklich!
Kein Remove, kein Add, kein Insert...nichts....

mfg
serial

27.04.2009 - 11:18 Uhr

HAllo,

folgende Frage:

Ich habe in einem ascx Control eine Methode welche im PageLoad aufgerufen wird.
In dieser Methode ist eine foreach-schleife:


foreach(NewsItem item in NewsItems)
{
 //do something
}

in dieser schleife wird die auflistung NICHT verändert.

Allerdings bekomme ich häufig eine 404-Seite, wegen dem Fehler in der Überschrift.

Hat jemand eine idee, woran das liegen kann?
Nützt es etwas die schleife zu locken?

mfg
serial

26.04.2009 - 11:04 Uhr

und das du alle daten (server, username, pwd...) korrekt angegeben hast, da bist du dir sicher?

mfg
serial

17.04.2009 - 12:42 Uhr

musst du nicht OnClientClick, und AutoPostBack auf false?

serial

16.04.2009 - 16:49 Uhr

wenn du sie nur unsichtbar schalten willst, mach das doch mit css und javascript!

mfg
serial

16.04.2009 - 14:01 Uhr

muss die klasse public sein?

mfg
serial

12.04.2009 - 11:45 Uhr

Wieso machst du es nicht so:


<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
    <siteMapNode url="" title=""  description="">
      <siteMapNode url="page1.aspx" title="Page1"  description="" />

      <siteMapNode url="page2.aspx" title="Page2"  description="" />

      <siteMapNode url="page3.aspx" title="Page3"  description="" />

      <siteMapNode url="page4.aspx" title="Page4"  description="" />

    </siteMapNode>
</siteMap>

und stellst beim MenuControl die Eigenschaft StaticDisplayLevels auf 2.

mfg
serial

11.04.2009 - 16:43 Uhr

@Markus

das könnte ungefähr so aussehen:


public class PollingStream:Stream
    {
        private Stream _stream;
        private long _oldLenght;
        private Timer _timer = new Timer();

        public event EventHandler NewDataAvailable;
        
        private void OnNewDataAvailable()
        {
            if (NewDataAvailable != null)
                NewDataAvailable(this, new EventArgs());
        }

        private void _timer_Elapsed(object sender, EventArgs e)
        {
            if (_oldLenght != _stream.Length)
            {
                _oldLenght = _stream.Length;
                OnNewDataAvailable();
            }
        }

        public PollingStream(Stream baseStream)
        {
            _stream = baseStream;
            _oldLenght = _stream.Length;
            _timer.Elapsed+=new ElapsedEventHandler(_timer_Elapsed);
            _timer.Interval = 100;
        }

        public void StartPolling()
        {
            _timer.Start();
        }

        public void StopPolling()
        {
            _timer.Stop();
        }
}

anwenden kann man ihn dann ca so:


MemoryStream ms = new MemoryStream();
            PollingStream ps = new PollingStream(ms);
            ps.NewDataAvailable+=new EventHandler(ps_NewDataAvailable);
            ps.StartPolling();

            Console.ReadLine();
            ps.Write(new byte[] { 1 }, 0, 1);
            Console.ReadLine();

mfg serial

11.04.2009 - 16:26 Uhr

kostenloses was genau diese features hat kenn ich leider nicht.

Aber ich denke das kann man sich relativ einfach mit dem AjaxControlToolkit selsbt zusammenbasteln.

mfg
serial

11.04.2009 - 16:20 Uhr

Ich benutze den IIS6 (beruflich) und zur Entwicklung den VS integrierten.

mfg
serial

11.04.2009 - 11:55 Uhr

Wieso brauchst du denn eine alternative? Bzw was gefällt dir an dem Menücontrol nicht?

mfg
serial

06.04.2009 - 18:46 Uhr

...allerdings bietet List<> keine Events an.

allerdings BindingList<T>

mfg
serial

02.04.2009 - 16:50 Uhr

ja das ist mir klar, aber es werden hier ja keine softwarezellen miteinander verbunden! ich weiss aber was du meinst, das wenn ich noch keine fertige DAL zB habe, das ich ein Dummy schalten kann.

mfg
serial

02.04.2009 - 14:54 Uhr

Hallo Peter,

ich habe wohl keine konkrete Frage, aber ich höre immerwieder Microkernel im Zusammenhang mit Softwarezellen....hier würde sich der MK ja nur auf das "instanzieren" der BL vom View aus und der DAL aus der BL beschränken, oder?

mfg
serial

02.04.2009 - 13:12 Uhr

Hallo,

ich wollte mal wissen wie/ob man die 3 Schichtenlogik sinnvoll mit einem Microkernel aufbauen kann. (Irgendwie bin ich wohl geistig noch nicht ganz dahinter gestiegen)

mfg
serial

02.04.2009 - 13:11 Uhr

Hallo,

ich habe eine 3-Schichtenarchitektur (DAL, BL, VIEW).

Nun möchte ich die Daten aus der DAL über einen Webservice zugänglich machen.
Ist es nun richtig, das der Webservice die DAL benutzt und die BL den Webservice?
Oder denke ich in die falsche richtung?

mfg serial

21.03.2009 - 10:27 Uhr

Hallo,

all die fragen die Peter gestellt hat interessieren mich auch, vorallem wo PHP typsicherer ist.

mfg
serial

20.03.2009 - 22:15 Uhr

Ja leider muss es sein weil das Eventverhalten bei Asp.Net bei eigenen UserControls meiner Meinung nach nicht besonders Clever geregelt ist.
Und ein if-else bzw switch-konstrukt ist für mich nicht akzeptabel.

Wieso nicht clever gelöst? Da du aus PHO kommst denke ich einfach mal, das du mit "richtigen" kompilierten sprachen nicht so die erfahrung hast, und das mmn nicht clever gelöste vorgehen in php bevorzugst?!

Wieso ist ein if-else nicht akzeptabel, und was hast du eigentlich vor?

mfg
serial

17.03.2009 - 16:58 Uhr

hallo,

genau das habe ich schon probiert, und funktioniert eben nicht 😦
Muss ich nochmal schauen, vielleicht war ich blind...

mfg
serial

17.03.2009 - 16:21 Uhr

Hallo,

heute eine sicherlich triviale Frage:

Ich habe in meinen Projekten ausgiebig XML-Kommentare verwendet.
Innerhalb des Projektes (DLL) werden diese auch durch Intellisense angezeigt.

Binde ich diese DLL per Verweis in ein anderes Projekt ein, werden die KOmmentare nicht mehr mit Intellisense angezeigt.

Habe auch schon "Dokumentationsdatei erstellen" gewählt, was mache ich falsch??

mfg
serial

14.03.2009 - 11:06 Uhr

oh manchmal ist man blind!
Externe konsumenten bräuchten dann ja auch mindestens das interface....

danke fürs augen öffnen...

mfg serial

13.03.2009 - 18:01 Uhr

Hallo,

meine Frage:

Ich habe eine DAL welche mir zB DataTables zurückgibt für eine Anfrage. Diese DAL implementiert ein DALInterface.

Nun möchte ich die Abfragen über WebServices realisieren, sollte nun der WebSerice ein objekt der DAL selbst zurückgeben damit ich auf Interfaces in der BL programmieren kann, oder gibt er die ergebnisse der DAL selbst zurück, also die DataTables?

mfg
serial

10.03.2009 - 12:10 Uhr

ok danke, funktioniert dann also nicht 😦

mfg
serial

10.03.2009 - 10:28 Uhr

Hallo,

ich lade mir UserControls aus seperaten Assemblies:


 Control o = (Control)Activator.CreateInstance(t1);
 

nun wollte ich diese in einer seperaten AppDomain laden, allerdings bekomme ich da nur ein Transparenten Proxy:


Control o = (Control)domain.CreateInstanceAndUnwrap(asm.FullName, t1.FullName);

geht das was ich vorhaben überhaupt?

mfg
serial

02.03.2009 - 15:15 Uhr

richtig, und da du ziemlich viel code geschrieben hast, dachte ich ich frage nach dem anwendungsfall.
Denn sollte eine schon fertige methode deinen wünschen entsprechen, ist es sinnvoller diese bewährte technik auch zu verwenden.

mfg
serial

27.02.2009 - 17:24 Uhr

was genau hast du denn vor?

zB unterstützen die ASP-Controls (GridView, Repeater etc) ein Temlpatesystem.

mfg
serial