Laden...
Avatar #avatar-3295.gif
Benutzerbeschreibung
Speaker - Developer - Consultant - Trainer

Forenbeiträge von Coffeebean Ingesamt 2.207 Beiträge

11.04.2018 - 10:57 Uhr

Hallo Killerkrümel,

mit dynamic verschleierst du dein Problem nur 😉

ASP.NET serialisiert nun in irgendetwas, was du castest. Lass das doch ASP.NET machen.

auch fügst du das, was du als Body mitschicken willst, zweimal hinzu (glaube ich. Kenne RESTSharp zu wenig.)

restRequest.AddParameter("application/json", JsonConvert.SerializeObject(request, Formatting.None), ParameterType.RequestBody);
restRequest.AddBody(JsonConvert.SerializeObject(request, Formatting.None));

Gruss

Coffeebean

11.04.2018 - 10:30 Uhr

Hallo Killerkrümel,

hast du mal mit Postman o.ä. probiert einen PUT Request an deine API zu schicken? Ob das geht?

Gruss

Coffeebean

11.04.2018 - 08:45 Uhr

Hallo Killerkrümel,

hast du das mit dem Body mal probiert? Siehe mein voriger Beitrag.

{"LabContainerCodes" : ["00000031"]}

ist in C#


public class BodyObject
{
    public List<string> LabContainerCodes { get; set; }
}

Gruss

Coffeebean

11.04.2018 - 08:25 Uhr

Hallo Killerkrümel,

ich bin mir gerade nicht sicher, ob wir aneinander vorbei reden. Du brauchst, wenn du den Body richtig schickst, nicht explizit auf den Request zugreifen. Das steht automatisch in den labContainerCodes. Da sagst du ja schon explizit [FromBody]. Da serialisierst du ja rein, was du im Body mitgibst. In dem Fall ein Objekt mit einem Property "LabContainerCodes" drauf vom Typ string[]. Du gibst derzeit ein Array direkt rein.

Dein Body wäre sowas wie


public class BodyObject
{
    public List<string> LabContainerCodes { get; set; }
}

Gruss

Coffeebean

11.04.2018 - 08:15 Uhr

Hallo Killerkrümel,

hast du mal


var request = new RestRequest(<url>, Method.PUT);
request.AddJsonBody(<deinBody>);
var response = client.Execute(request);

probiert? Ich kenne RESTSharp nicht aber es sieht komisch aus wenn man mit "AddParameter()" einen Body hinzufügt und dann auch noch mit "undefined" arbeitet.

Gruss Coffeebean

11.04.2018 - 07:19 Uhr

Hallo Killerkrümel,

was meinst du mit "Content eines RestRequests"? Du gibst doch im Body mit, was du mit dem PUT-Request an den Server schickst. Das sollte in dem Parameter der Funktion

GetAnalyticalDetails([FromBody] IEnumerable<string> labContainerCodes)

enthalten sein.

Du verwendest es mit

var result = repo.GetDetails(labContainerCodes);

doch schon.

Gruss

Coffeebean

09.04.2018 - 11:05 Uhr

Hallo Bradley,

"gut" ist halt immer relativ. Es muss halt für deinen UseCase passen. Aber WIX ist recht bekannt, es gibt viel Doku und ist oft vertreten. Daher probiers mal an einem kleinen Projekt aus und schau mal ob es dir langt.

Gruss

Coffeebean

03.04.2018 - 16:44 Uhr

Hallo Bradley,

habe jetzt auch ein wenig mit VSTS gearbeitet und muss sagen, dass ich es sehr liebgewonnen habe und immer noch dabei bin alle meine Projekte zu migrieren. Ich finde es genial. Beruflich habe ich viel mit OnPremise zu tun (aktuell bei einem Kunden mit einer enorm grossen TFS-Landschaft) und die sind auch sehr glücklich damit.

Wenn du spezifischer werden willst musst du genauere Fragen stellen 😃

Gruss

Coffeebean

03.04.2018 - 07:51 Uhr

Hallo KleeSchulz,

irgendwann landen wir auch hier wieder bei Scopes und die diskutieren wir auch gerade hier [gelöst] Klasse als Array: Der Name (Array) ist im aktuellen Kontext nicht vorhanden

Lies dir das mal durch. Auch wenn 123Thomas' Antwort sicherlich stimmt: Mach bitte nicht alles global.

EDIT: Ah, 123Thomas' Edit macht es ein wenig besser. Halte dich trotzem an die [Artikel] C#: Richtlinien für die Namensvergabe und schreib vor allem Methoden gross etc. 😉

Gruss

Coffeebean

03.04.2018 - 07:39 Uhr

Hallo TigerCrow,

arbeite mit usings, dann sparst du dir die ganzen manuellen Disposing()-Aufrufe.

Gruss

Coffeebean

29.03.2018 - 10:46 Uhr

Hallo bbb,

geht um die URL. Schau dir mal REST an. Die URL hat normalerweise kein "GET" mehr im Namen. Das ist mehr SOAP-Stil. 😉 Das GET legt ja das HTTP-Verb schon fest. Verb, Router und Content-Type sind die Keys bei REST.

Gruss

Coffeebean

27.03.2018 - 12:18 Uhr

Hallo TigerCrow,

ich bin mir sicher, dass du weisst, was das bedeutet wenn du mal liest.

Du hast:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <appSettings>
    ...
  </appSettings>
  <configSections>
    ...
  </configSections>
</configuration>

Die Meldung sagt jetzt, dass das ConfigSections-Element, sofern vorhanden, das erste untergeordnete Element des Stamm-<configuration>-Elements sein muss.

Deine Aufgabe ist jetzt, das <configSections> Element an die erste Stelle zu setzen. Aber das sagt auch die Fehlermeldung 😃

Gruss

Coffeebean

27.03.2018 - 09:57 Uhr

Hallo TigerCrow,

wenn ich mir die Fehlermeldung anschaue, sagt diese:

Fehlermeldung:
<configSections>-Element [...] muss, sofern vorhanden, das erste untergeordnete Element des Stamm-<configuration>-Elements sein.

Hast du das mal probiert?

Gruss

Coffeebean

23.03.2018 - 13:25 Uhr

Hallo Krummnix,

hast du https://regex101.com/ mal probiert?

Gruss

Coffeebean

22.03.2018 - 15:10 Uhr

Hallo mankingwwe,

View --> Solution Explorer hilft?

Gruss

Coffeebean

19.03.2018 - 15:58 Uhr

Hallo Krumnix,

du hast nicht eine Frage von mir beantwortet 😃 bitte hilf mir ein bisschen den Titel entsprechend deines Problems zu formulieren! Nochmal: War dein Problem in den Textboxen zu scrollen oder gab es ein Problem bei einem zu langem Text? Gab es eine Stackoverflowexception?

Hilfesuchende sehen nur den Titel und entscheiden dann ob der Thread hilfreich ist oder nicht. Deine Problemlösung passt derzeit nicht auf den Titel. Daher: Was war denn dein Problem?

Gruss

Coffeebean

19.03.2018 - 15:11 Uhr

Hallo Krumnix,

ich habe den Thread nur überflogen.

Es läuft zwar, [...] aber

Kannst du dann bitte deine Frage präzisieren? Um was geht es genau? Was genau läuft nicht? Kannst du nicht parallel scrollen? Oder kannst du parallel Scrollen aber bei zuviel Text passiert etwas unerwartetes? Wenn ja: Was passiert?

Gruss

Coffeebean

19.03.2018 - 14:18 Uhr

Hallo Davaaron,

Dir fehlt in deiner tsconfig das "outdir" Property. Das besagt, wo die *.js Dateien nach dem Transpilieren hingelegt werden sollen. Von da aus kannst du deine Methoden dann in deinen Views ansprechen.

Schau auch mal hier: http://www.mithunvp.com/using-typescript-with-asp-net-mvc5/

Aber allgemein: Dank Angular, Vue, React etc. ist es möglich auch komplexe Architekturen und somit auch mehr Logik geordnet auf den Client zu bringen. Kompletter Frontend-Code ist dann viel mehr als nur ein paar zusammengeschachtelte Javascript-Dateien. Da die Browser, stand jetzt, Javascript aber am besten unterstützen müssen wir, egal mit welchen XyzScript man arbeitet, immer nach *.js transpilieren.

Klassisches MVC ist aber eine serverseitige Technologie. Sprich: Der Call kommt, deine komplette View wird auf dem Server (!) fertiggemacht und an den Client gesendet. Klickt der Client etwas, geht der Call an den Server, Server macht die komplette HTML auf dem Server fertig, runter an Client und so weiter. Das resultiert in einem kompletten Reload der Page nach jedem Klick. Da man das immer weniger will macht man mit Javascript AJAX-Calls, shows/hides, um die Seiten etwas dynamischer zu bekommen.

Platformen wie Angular gehen voll in diese Richtung und sagen, dass sie den Server kaum mehr brauchen um Views zu generieren (SSR nehmen wir mal raus hier). Man lädt das (generierte) Javascript einmal und dann wird es auf dem Client ausgeführt. Das Backend gibt mir nicht mehr HTML-Views zurück, sondern JSON-Daten, also ohne UI-Beschreibung, zurück und der Client kann dank Logik und Architektur die Views aufbauen, Tabellen darstellen etc. Dann bist du im Bereich Single Page Application (SPA) und REST-Backends.

Das meint Abt mit

Server-seitig und Client-seitig.

Viele Projekte gehen mit reinem MVC los und werden dann mit Javascript weiter und weiter "angereichert", so dass es ziemlich kompliziert wird das zu warten und man sehr viel Aufwand hat Server und Client zu trennen.

Ich hoffe das bringt ein wenig mehr Verständnis für die Webprogrammierung.

Gruss

Coffeebean

19.03.2018 - 13:29 Uhr

Hallo Krumnix,

wo sind wir? Forms? WPF?

Gruss

Coffeebean

19.03.2018 - 08:21 Uhr

Hallo alex0321,

Ich verstehe ihn allerdings nicht warum er auftritt.

Der Fehler tritt auf, weil du auf einen Index zugreifst, den es nicht gibt. Das sagt der Fehler ja auch 😃 Sprich: Hast du beispielsweise ein Array mit 5 Items und du greifst auf Item Nummer 6 zu (mit dem Index 5) dann kommt genau der Fehler.

Vielleicht klärt das deine Frage.

Gruss

Coffeebean

19.03.2018 - 07:21 Uhr

Hallo Saftsack,

wie wäre es denn, wenn du von SqlServerCe weggehst, da es seit 2013 nicht mehr entwickelt wird. Ich weiss, das löst dein konkretes Problem nicht aber mit SQLite hättest du mMn sicher etwas schneller Erfolgserlebnisse.

Schaue auch mal hier: [Artikel] Drei-Schichten-Architektur

Gruss

Coffeebean

16.03.2018 - 10:29 Uhr

Hallo camelord,

Jetzt wäre es doch super, wenn der von Razor generierte HTML Code dem Theme entsprechen würde..

Genau das kannst du ja mit Razor machen 😃 Loops über deine Items etc. so dass am Ende das HTML rauskommt, was du wolltest.

Gruss

Coffeebean

14.03.2018 - 13:17 Uhr

Hallo patrick.schultz,

wieso machst du dir nicht eine Methode, die das einfach prüft?

Du willst ja wohl einfach sicherstellen, dass die Ordner erstellt sind, oder?

Irgendwie sowas wie


public void EnsureDirectoryCreated(string directory)
{
	if (!Directory.Exists(directory))
	{
		Directory.CreateDirectory(directory);
	}
}

einfach mal runtergetippt hier im Editor. Die rufst du einfach auf und dann werden die Ordner erstellt.

Ist das eine Option? Finde ich lesbarer und die Klammern tun keinem weh 😉

Gruss

Coffeebean

14.03.2018 - 10:46 Uhr

Hallo schuppsl,

wohl einfach eine WebAPI die auf den vollen .NET Framework basiert und erreichbar ist. Und die kommunizert dann mit SAP.

Gruss

Coffeebean

14.03.2018 - 09:20 Uhr

Hallo schuppsl,

wie sieht die Klasse denn aus? Sind die Properties public?

Gruss

Coffeebean

14.03.2018 - 08:36 Uhr

Hallo schuppsl,

hast du mal mit dem Debugger geschaut, was er dir im Ok() zurück gibt? Steht überhaupt was in der Antwort?

Gruss

Coffeebean

14.03.2018 - 08:25 Uhr

Hallo schuppsl,

dann arbeite mit IHttpActionResult


[HttpGet]
[Route("...")]
public IHttpActionResult List()
{
		return Ok(...);
   
}

und in deiner WebApiConfig File kannst du sicher


public static void Register(HttpConfiguration config)
        {
            // Web API configuration and services

            config.Formatters.Clear();
            config.Formatters.Add(new JsonMediaTypeFormatter());
            var jsonFormatter = config.Formatters.OfType<JsonMediaTypeFormatter>().First();
            jsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();

            // Web API routes
            config.MapHttpAttributeRoutes();

            config.Routes.MapHttpRoute(
               name: "DefaultRouting",
               routeTemplate: "api/{controller}/{id}",
               defaults: new { id = RouteParameter.Optional }
           );
        }

oder ähnliches machen.

Gruss

Coffeebean

14.03.2018 - 07:50 Uhr

Hallo schuppsl,

reden wir von ASP.NET Core? Je nachdem, ob du AddMvc() oder AddMvcCore() aufrufst in deiner Startup wird der JSONSerializer automatisch hinzugefügt ( AddMvc() ) oder du musst es selber tun ( AddMvcCore() ) Deine Antwort wird also schon automatisch als JSON an den Client geschickt und der Body des Posts in dein "SapWriteData".

Wie Abt sagt sollte

public IActionResult Post([FromBody]SapWriteData SapWriteData)
        {
           //...
       return Ok(myModel);

        }

tun was du magst.

Willst du die Helper (wie Ok(), NotFound() ) verwenden willst musst du die Klasse zwingend von Controller ableiten glaube ich.

Gruss

Coffeebean

13.03.2018 - 13:13 Uhr

Hallo Davaaron,

bisher habe ich kein Projekt kennengelernt, das langfristig mit sowas glücklich war. Irgendwann musste man irgendwas anpassen und dann ging das Gefrickel los. Evaluiere lieber gründlich.

Gruss

Coffeebean

13.03.2018 - 12:54 Uhr

Hallo Davaaron,

Also falls du beispielsweise sowas wie ein Grid meinst, was CRUD Operationen machen kann...Kendo ist so ein Framework, weiss aber nicht, ob das kostenlos ist. Kommt glaube ich auch drauf an wie du es verwendest. Eventuell Telerik? Aber so ein bisschen was selber schreiben musst du schon... DevExpress evtl? Infragistics? Meinst du sowas?

Allgemein habe ich mit solchen Frameworks immer schlechte Erfahrungen gemacht. Man ist bis zu einem gewissen Punkt hin sehr schnell. Sobald du was anpassen willst bist du aufgeschmissen.

Gruss

Coffeebean

24.02.2018 - 15:58 Uhr

Oft nennt man sie nicht umsonst die "grünen Lügen". 👍

23.02.2018 - 19:18 Uhr

mankingwwe du siehst, auch hier gehen die Meinungen auseinander 😃

23.02.2018 - 19:09 Uhr

Hallo mankingwwe,

In meiner ersten Abteilung wurde mir gesagt Kommentare gehören nicht in den Code. Wenn man Kommentare braucht hat man nicht genug über die Benennung seiner Methoden etc nachgedacht, der Code muss sich selbst wie eine Dokumentation lesen.

Ich bin einer, der zu 99% dieser Abteilung angehört. Code sowie das Testing sollte eine Dokumentation des Codes geben. Ganz ausschliessen kann man es nie. Aber ich habe nur ganz ganz selten wirklich sinnvolle Kommentare gesehen. Mich stören sie eher beim Lesen und sie werden sehr oft nicht mit gewartet - gehen einfach vergessen.

Musste auch schonmal Properties kommentieren a la


// gets and sets the name
public string Name { get; set; }

was nun wirklich sinnfrei war.

Falls du aber eine Lib auf NuGet o.ä. zur Verfügung stellst wäre es schon sinnvoll öffentliche Methoden zu beschreiben. Was sie tun, wie der Rückgabetyp ist etc. bei sowas finde ich es schon sinnvoll. https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/xmldoc/xml-documentation-comments . Aber auch da finde ich es nur für "öffentliche" (in- oder extern) Softwarepakete wirklich angebracht.

Gruss

Coffeebean

23.02.2018 - 09:23 Uhr

Hallo HardcoreJan,

man sollte gerade bei static wissen, was es macht und wofür es da ist. Gerade am Anfang benutzt man das gern, weil ja dann die Variablen immer und überall verfügbar sind 😉

Vermeide static, wo es geht. Dann hast du solche Effekte nicht.

Gruss

Coffeebean

22.02.2018 - 08:55 Uhr

Hallo Wax,

ohne Code schwer zu sagen. Hast du keine absoluten Pfade im Code verwendet? Auch die Referenz-Pfade nicht nicht irgendwo auf dein "C:\dev"?

Gruss

Coffeebean

09.02.2018 - 09:54 Uhr

Hallo sugar76,

so verlockend die Click-Events auch sind: Arbeite mit vernünftigem Databinding und hänge ein Command an, das ausgelöst wird, wenn der Button geklickt wird. Ist ebenfalls im verlinkten Artikel in einem Kapitel beschrieben.

Gruss

Coffeebean

06.02.2018 - 17:31 Uhr

Hallo,

naja, ob Sinn oder nicht, musst du wissen 😃

[FAQ] C# Projektvorschläge (Anfänger, Schüler, Praktikanten)

Vielleicht ist ja da was dabei?

Gruss

Coffeebean

31.01.2018 - 09:10 Uhr

Hallo d.jonas,

du kannst auch mit Tools wie "Fiddler" nachschauen, welche HTTP-Requests rausgehen und die Requests mal vergleichen.

Gruss

Coffeebean

30.01.2018 - 15:13 Uhr

Hallo UltraEdit,

Ich bin schon fast 50 und Neues Zeug mal kurz lernen ist nicht mehr wie früher

Neue Sachen lernen geht heute einfacher als früher behaupte ich mal 😃 Gibt sehr viele Video-Contents und Blogs, die dir das lernen recht einfach machen. Aber man muss halt schauen wie man am besten lernt.

Bin mir nicht sicher, da ich WebForms ewig nicht angepackt habe, aber ich glaube einfach, dass ASP.NET Core da schon eher gepusht wird und du mehr Content finden wirst.

Gruss

Coffeebean

30.01.2018 - 12:33 Uhr

Hallo UltraEdit,

fängst du echt damit ein neues Projekt an? Oder kannst du nicht anders?

Gruss

Coffeebean

24.01.2018 - 19:08 Uhr

Hallo der_sharky,

die von Palin angesprochenen Sachen sind richtig, hier noch ein paar Links, die dir weiterhelfen.

[Artikel] MVVM und DataBinding [Artikel] Drei-Schichten-Architektur

Gruss

Coffeebean

20.01.2018 - 13:25 Uhr

Hallo App,

ich kenne deine Umgebung und die Umstände nicht, aber da du nicht weisst/wusstest, was git ist lege ich dir einfach Nahe dich mal damit auseinander zu setzen. Es wird recht oft verwendet und (richtig genutzt) vereinfacht es dir das Leben enorm.

Probiers mal aus, vielleicht ist es ja was für euch 😃

Gruss

Coffeebean

18.01.2018 - 15:09 Uhr

Hallo Josch_58,

mmh... ich suche hier den "Erledigt" Button???

Du kannst das Thema als erledigt markieren, indem du den Titel mit einem Prefix "[erledigt]" versiehst. Einen Button dafür gibt es nicht.

Gruss

Coffeebean

14.01.2018 - 18:47 Uhr

Hallo Marco24142,

na klar geht das. Was hast du schon probiert? Schonmal die String-Klassen in der MSDN angeschaut? Die helfen dir sicher. [FAQ] Wie finde ich den Einstieg in C#?

Gruss

Coffeebean

11.01.2018 - 16:15 Uhr

Hallo Turmoil,

meinst du die TryParse(...)-Methoden?

Gruss

Coffeebean

11.01.2018 - 07:30 Uhr

Hallo mardem80,

"Frage zu ..." ist niemals ein richtiger Titel für einen Thread. Er beschreibt dein Problem nicht. Bitte wähle vernünftige Titel, ich habe es mal nach bestem Wissen und Gewissen geändert. Kannst es gerne nochmal anpassen, wenn du magst.

Gruss

Coffeebean

07.01.2018 - 22:01 Uhr

Hallo Henri,

dann installiere die log4Net Abhängigkeit, am besten über Nuget.

Gruss

Coffeebean

25.12.2017 - 12:05 Uhr

... wünscht euch euer mycsharp.de-Team

Wir freuen uns auf ein neues Jahr, mit neuen Herausforderungen, neuen und alten Forenmitgliedern und vielen spannenden Themen.
Genießt die nächsten Tage, ruht euch aus und startet mit vollem Elan in das neue Jahr.

Grüße vom Team