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
Hallo Killerkrümel,
hast du mal mit Postman o.ä. probiert einen PUT Request an deine API zu schicken? Ob das geht?
Gruss
Coffeebean
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
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
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
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
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
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
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
Hallo TigerCrow,
arbeite mit usings, dann sparst du dir die ganzen manuellen Disposing()-Aufrufe.
Gruss
Coffeebean
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
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
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
Hallo mankingwwe,
View --> Solution Explorer hilft?
Gruss
Coffeebean
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
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
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
Hallo Krumnix,
wo sind wir? Forms? WPF?
Gruss
Coffeebean
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
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
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
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
Hallo schuppsl,
wohl einfach eine WebAPI die auf den vollen .NET Framework basiert und erreichbar ist. Und die kommunizert dann mit SAP.
Gruss
Coffeebean
Hallo schuppsl,
wie sieht die Klasse denn aus? Sind die Properties public?
Gruss
Coffeebean
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
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
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
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
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
Oft nennt man sie nicht umsonst die "grünen Lügen". 👍
mankingwwe du siehst, auch hier gehen die Meinungen auseinander 😃
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
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
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
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
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
Hallo d.jonas,
du kannst auch mit Tools wie "Fiddler" nachschauen, welche HTTP-Requests rausgehen und die Requests mal vergleichen.
Gruss
Coffeebean
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
Hallo UltraEdit,
fängst du echt damit ein neues Projekt an? Oder kannst du nicht anders?
Gruss
Coffeebean
Hallo Munro,
[FAQ] Wie finde ich den Einstieg in C#?
[Hinweis] Bitte schau in die SDK-/MSDN-Doku
Gruss
Coffeebean
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
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
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
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
Hallo Turmoil,
meinst du die TryParse(...)
-Methoden?
Gruss
Coffeebean
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
Hallo Henri,
dann installiere die log4Net Abhängigkeit, am besten über Nuget.
Gruss
Coffeebean
... 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